WongKinYiu / yolov9

Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
GNU General Public License v3.0
8.74k stars 1.35k forks source link

yolov5 yolov8 yolov9 speed test on T4 (tensorrt ) #178

Open ausk opened 5 months ago

ausk commented 5 months ago

yolov5 yolov8 yolov9 speed test on T4 (tensorrt )

platform : T4; c++ with nms ; nchw=(1,3,384,640); input (1920, 1080); 200 loops, (already warmed up)

id model fps size map (paper)
01 yolov5s-v6.1 fps = 398.41 size = 15.14 MB 37.4
02 yolov5x-v6.1 fps = 101.42 size = 168.02 MB 50.7
03 yolov8n-v8.1 fps = 404.86 size = 7.44 MB 37.3
04 yolov8s-v8.1 fps = 365.63 size = 22.57 MB 44.9
05 yolov8m-v8.1 fps = 202.63 size = 51.15 MB 50.2
06 yolov8l-v8.1 fps = 136.71 size = 85.21 MB 52.9
07 yolov8x-v8.1 fps = 82.64 size = 132.23 MB 53.9
08 yolov9-c-converted fps = 154.20 size = 50.99 MB 53.0
09 yolov9-e-converted fps = 73.45 size = 114.07 MB 55.6

Based on the data, yolov9-c-converted outperforms yolov8l-v8.1 and yolov5x-v6.1 in terms of both fps and model size. Additionally, yolov9-c-converted also slightly surpasses yolov8l-v8.1 and yolov5x-v6.1 in accuracy(MAP).


从数据上看,yolov9-c-converted在帧率和模型大小方面都表现优于yolov8l-v8.1和yolov5x-v6.1。同时,yolov9-c-converted在精度上也略高于yolov8l-v8.1, 高于 yolov5x-v6.1

WongKinYiu commented 5 months ago

You may use wrong scripts to convert yolov9 models to tensorrt. If your conversion is correct, size of yolov9-c-converted will be about 52% size of yolov8l-v8.1.

We have tested in multiple methods include with/without nms. yolov9-c-converted is about 15~25% faster than yolov8l-v8.1. I suggest you to use official yolov8 code, or tensorrt-yolo to examine speed. We have checked above implementation.

ausk commented 5 months ago

@WongKinYiu I check, and find the yolov9 trt's type is fp32, while others type is fp16. I'll update the table soon.

ausk commented 5 months ago

@WongKinYiu Updated, all of them are the type of fp16 now.

Based on the data, yolov9-c-converted outperforms yolov8l-v8.1 and yolov5x-v6.1 in terms of both fps and model size. Additionally, yolov9-c-converted also slightly surpasses yolov8l-v8.1 and yolov5x-v6.1 in accuracy(MAP).

Thank you for such a great job.

WongKinYiu commented 5 months ago

Thanks.

Lacacy commented 3 months ago

为啥测试要用C++的nms,降低了这个数据的参考意义

clw5180 commented 2 months ago

s. yolov9-c-converted is about 15~25% faster than yolov8l-v8.1.

请问大佬有没有对比测试yolov9s呢

WongKinYiu commented 2 months ago

@ausk

could you help for adding speed of yolov9-t-converted.pt, yolov9-s-converted.pt, yolov9-m-converted.pt to the table, thanks.

clw5180 commented 1 month ago

看论文估计和yolo10差不多