- Notifications
You must be signed in to change notification settings - Fork315
TensorRT8.Support Yolov5n,s,m,l,x .darknet -> tensorrt. Yolov4 Yolov3 use raw darknet *.weights and *.cfg fils. If the wrapper is useful to you,please Star it.
License
enazoe/yolo-tensorrt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
news: 2021.10.31:yolov5-v6.0 support
The project is the encapsulation of nvidia official yolo-tensorrtimplementation. And you must have the trained yolo model(.weights) and.cfg file from the darknet (yolov3 & yolov4). For theyolov5 ,you should prepare the model file (yolov5s.yaml) and the trained weight file (yolov5s.pt) from pytorch.
- yolov5n ,yolov5s , yolov5m , yolov5l , yolov5x ,yolov5-p6tutorial
- yolov4
- yolov3
- inequal net width and height
- batch inference
- support FP32,FP16,INT8
- dynamic input size
- windows 10
- ubuntu 18.04
- L4T (Jetson platform)
BENCHMARK
model | size | gpu | fp32 | fp16 | INT8 |
---|---|---|---|---|---|
yolov5s | 640x640 | 1080ti | 8ms | / | 7ms |
yolov5m | 640x640 | 1080ti | 13ms | / | 11ms |
yolov5l | 640x640 | 1080ti | 20ms | / | 15ms |
yolov5x | 640x640 | 1080ti | 30ms | / | 23ms |
model | size | gpu | fp32 | fp16 | INT8 |
---|---|---|---|---|---|
yolov3 | 416x416 | nx | 105ms/120ms | 30ms/48ms | 20ms/35ms |
yolov3-tiny | 416x416 | nx | 14ms/23ms | 8ms/15ms | 12ms/19ms |
yolov4-tiny | 416x416 | nx | 13ms/23ms | 7ms/16ms | 7ms/15ms |
yolov4 | 416x416 | nx | 111ms/125ms | 55ms/65ms | 47ms/57ms |
yolov5s | 416x416 | nx | 47ms/88ms | 33ms/74ms | 28ms/64ms |
yolov5m | 416x416 | nx | 110ms/145ms | 63ms/101ms | 49ms/91ms |
yolov5l | 416x416 | nx | 205ms/242ms | 95ms/123ms | 76ms/118ms |
yolov5x | 416x416 | nx | 351ms/405ms | 151ms/183ms | 114ms/149ms |
model | size | gpu | fp32 | fp16 | INT8 |
---|---|---|---|---|---|
yolov4 | 416x416 | titanv | 11ms/17ms | 8ms/15ms | 7ms/14ms |
yolov5s | 416x416 | titanv | 7ms/22ms | 5ms/20ms | 5ms/18ms |
yolov5m | 416x416 | titanv | 9ms/23ms | 8ms/22ms | 7ms/21ms |
yolov5l | 416x416 | titanv | 17ms/28ms | 11ms/23ms | 11ms/24ms |
yolov5x | 416x416 | titanv | 25ms/40ms | 15ms/27ms | 15ms/27ms |
Prepare the pretrained.weights and.cfg model.
Detector detector;Config config;std::vector<BatchResult> res;detector.detect(vec_image, res)
dependency : TensorRT 7.1.3.4 , cuda 11.0 , cudnn 8.0 , opencv4 , vs2015
build:
open MSVCsln/sln.sln file
- dll project : the trt yolo detector dll
- demo project : test of the dll
The project generate thelibdetector.so lib, and the sample code.If you want to use the libdetector.so lib in your own project,thiscmake file perhaps could help you .
git clone https://github.com/enazoe/yolo-tensorrt.gitcd yolo-tensorrt/mkdir buildcd build/cmake ..make./yolo-trt
structConfig{std::string file_model_cfg ="configs/yolov4.cfg";std::string file_model_weights ="configs/yolov4.weights";float detect_thresh =0.9;ModelType net_type = YOLOV4;Precision inference_precison = INT8;int gpu_id =0;std::string calibration_image_list_file_txt ="configs/calibration_images.txt";};classAPI Detector{public:explicitDetector();~Detector();voidinit(const Config &config);voiddetect(const std::vector<cv::Mat> &mat_image,std::vector<BatchResult> &vec_batch_result);private:Detector(const Detector &);const Detector &operator =(const Detector &);classImpl;Impl *_impl;};
- https://github.com/wang-xinyu/tensorrtx/tree/master/yolov4
- https://github.com/mj8ac/trt-yolo-app_win64
- https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps
微信关注公众号EigenVison,回复yolo获取交流群号
About
TensorRT8.Support Yolov5n,s,m,l,x .darknet -> tensorrt. Yolov4 Yolov3 use raw darknet *.weights and *.cfg fils. If the wrapper is useful to you,please Star it.