赞
踩
Nanodet和YOLOv5都是我很喜欢的检测算法,Nanodet超轻量对嵌入式设备极其友好,u版yolo训练起来速度快效果好,功能强大
前两天旷视开源了YOLOX,我看了一下算法大体和代码实现,总的来讲还是比较有新意,去掉了anchors,有点融合FCOS的意思,不过纸面上的mAP比yolov5的p6系列还是有一定差距的
不过YOLOX代码写的真不错,比u版yolo简洁多了。
以下测试均在python中完成
mAP我就不比了,这几个算法在原repo里都有coco数据集上的精度测试结果
PC配置:CPU:i7-10875H GPU:RTX2070super Max-Q
将YOLOX、YOLOv5、Nanodet仓库里的模型,对30张图片进行测速,取均值
model | size | pytorch | onnx |
---|---|---|---|
YOLOXnano | 416x416 | 63.5ms | 14.9ms (27.1ms opencv) |
YOLOXtiny | 416x416 | 88.0ms | 26.0ms (43.1ms opencv) |
YOLOXs | 640x640 | 273.5ms | 70.6ms (130.2ms opencv) |
YOLOXx | 640x640 | 1607.2ms | 528.6ms (750ms opencv) |
– | – | – | – |
YOLOv5s | 640x640 | 157ms | 58ms (134ms opencv) |
YOLOv5s6 | 640x640 | 156ms | 67ms |
YOLOv5x | 640x640 | 998ms | 428ms |
YOLOv5x6 | 640x640 | 1067ms | 447ms |
– | – | – | – |
Nanodet_s | 320x320 | 54ms | 70ms opencv |
Nanodet_m | 416x416 | 87ms | 119ms opencv |
pytorch列是直接用的官方demo的测速结果
onnx列是将pytorch模型转成onnx后,分别采用onnxruntime和opencv的dnn module的测速结果,因为opencv中部分onnx算子实现较慢,因此推理速度比onnxruntime慢很多
刚测了PC上yolox系列在opencv dnn上的推理速度,其中两个超轻量模型速度竟然远超nanodet,amazing!
Atlas200dk配置:CPU: 8xArm Cortex A55 NPU: Ascend310(8~22TOPs算力)
由于前几天调试atlas碰到了很多坑,到现在才终于成功部署了v5和nanodet的模型,YOLOX的模型将尽量进行测试
model | size | cann(npu) | onnx(cpu) |
---|---|---|---|
YOLOXnano | 416x416 | 11.5ms | 308.2ms |
YOLOXtiny | 416x416 | 12.2ms | 763.8ms |
YOLOXs | 640x640 | 16.5ms | 2907.3ms |
YOLOXx | 640x640 | 62.8ms | 24268ms |
– | – | – | – |
YOLOv5s | 640x640 | 34.4ms | 1187ms |
YOLOv5s6 | 640x640 | 22.7ms | – |
YOLOv5x | 640x640 | 64.6ms | 11813ms |
YOLOv5x6 | 640x640 | 62.7ms | – |
– | – | – | – |
Nanodet_s | 320x320 | 8.0ms | 170.5ms |
Nanodet_m | 416x416 | 11.0ms | 280.0ms |
在Atlas200dk上运行yolov5x、yolox_x的模型推理速度差不多达到16FPS,与cpu相比提升了30到400倍。
根据以上模型推理时间计算,Atlas的算力差不多在3.5~4.5TFLOPS/s之间,如果使用C++做部署应该还可以再提升一些速度。
同时yolov5的p6模型在cann下的运行时间和p5模型没啥区别(甚至比p5模型还快),可以用v5的P6模型白嫖精度指标
YOLOX系列模型在PC的CPU上的推理速度一般,但是YOLOX在Atlas的NPU上运行速度与v5相比不分伯仲,使用YOLOX的nano或tiny模型替代Nanodet可以提升一些精度
过两天把YOLOX的数据放上来(不过推理速度肯定比这俩慢了)
经过测试,Atlas在cpu上推理效率一般,但是在NPU上的效果非常好,过段时间相应的P6模型出来后可以很好的替代yolov5
并且还会更新一个在Atlas上部署模型的教程,包括pytorch转onnx,onnx模型优化,atc工具将onnx转om模型,acl模型部署方法,踩到的坑巨多,都是辛酸泪啊…
根据YOLOX官方数据,YOLOX-x的FLOPS = 282 GFLOPS,则Atlas的算力应该是282/0.0628 = 4.27TFLOPS/s
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。