Home

Awesome

TensorRT-YOLOv4

demo

image image

Performance

modelinput_sizeGPUmodeinference Time
yolov4608x608gtx 1080Tifloat3223.3 ms
yolov4416x416gtx 1080Tifloat3213.0 ms
yolov3608x608gtx 1080Tifloat3218.2 ms
yolov3416x416gtx 1080Tifloat3210.0 ms
yolov3-tiny608x608gtx 1080Tifloat323.31 ms
yolov3-tiny416x416gtx 1080Tifloat322.01 ms
yolov3-tiny-prn608x608gtx 1080Tifloat323.05 ms
yolov3-tiny-prn416x416gtx 1080Tifloat322.01 ms
  1. Including pre-processing and post-processing time.

Enviroments

  1. gtx 1080Ti
ubuntu 1604
TensorRT 5.0
cuda 9.0
python3 onnx=1.4.1 

Models

  1. Add (infer_thresh) and (down_stride) to your .cfg.
[yolo]  ## small anchor
mask = 0,1,2
anchors = ...
down_stride = 8
infer_thresh = 0.5  
...
[yolo] ## mid anchor
mask = 3,4,5
anchors = ...
down_stride = 16
infer_thresh = 0.5
...
[yolo] ## big anchor
mask = 6,7,8
anchors = .....
down_stride = 32
infer_thresh = 0.5
  1. Convert darknet yolo to onnx.
python3 tools/yolo_to_onnx.py --cfg model/yolov4.cfg --weights model/yolov4.weights --out model/yolov4.onnx

Example

git clone https://github.com/CaoWGG/TensorRT-YOLOv4.git
cd TensorRT-YOLOv4
mkdir build
cd build && cmake .. && make
cd ..
## yolov3
./buildEngine -i model/yolov3.onnx -o model/yolov3.engine -b 1 -m 0
./runDet -i model/yolov3.engine -p dog.jpg -v nuscenes_mini.mp4
## yolov4
./buildEngine -i model/yolov4.onnx -o model/yolov4.engine -b 1 -m 0
./runDet -i model/yolov4.engine -p dog.jpg -v nuscenes_mini.mp4

Related projects