您当前的位置: 首页 >  嵌入式

RuiH.AI

暂无认证

  • 0浏览

    0关注

    274博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

YOLOX、YOLOv5、Nanodet在PC与嵌入式板Atlas200DK上的推理速度测试

RuiH.AI 发布时间:2021-07-27 21:04:53 ,浏览量:0

目录
  • 前言
  • PC上的模型推理速度(已更新全部模型)
  • Atlas200DK推理测速结果(已更新全部模型)
    • (修)推理算力修正

前言

Nanodet和YOLOv5都是我很喜欢的检测算法,Nanodet超轻量对嵌入式设备极其友好,u版yolo训练起来速度快效果好,功能强大

前两天旷视开源了YOLOX,我看了一下算法大体和代码实现,总的来讲还是比较有新意,去掉了anchors,有点融合FCOS的意思,不过纸面上的mAP比yolov5的p6系列还是有一定差距的 不过YOLOX代码写的真不错,比u版yolo简洁多了。

以下测试均在python中完成

PC上的模型推理速度(已更新全部模型)

mAP我就不比了,这几个算法在原repo里都有coco数据集上的精度测试结果

PC配置:CPU:i7-10875H GPU:RTX2070super Max-Q

将YOLOX、YOLOv5、Nanodet仓库里的模型,对30张图片进行测速,取均值

modelsizepytorchonnxYOLOXnano416x41663.5ms14.9ms (27.1ms opencv)YOLOXtiny416x41688.0ms26.0ms (43.1ms opencv)YOLOXs640x640273.5ms70.6ms (130.2ms opencv)YOLOXx640x6401607.2ms528.6ms (750ms opencv)––––YOLOv5s640x640157ms58ms (134ms opencv)YOLOv5s6640x640156ms67msYOLOv5x640x640998ms428msYOLOv5x6640x6401067ms447ms––––Nanodet_s320x32054ms70ms opencvNanodet_m416x41687ms119ms opencv

pytorch列是直接用的官方demo的测速结果 onnx列是将pytorch模型转成onnx后,分别采用onnxruntime和opencv的dnn module的测速结果,因为opencv中部分onnx算子实现较慢,因此推理速度比onnxruntime慢很多

刚测了PC上yolox系列在opencv dnn上的推理速度,其中两个超轻量模型速度竟然远超nanodet,amazing!

Atlas200DK推理测速结果(已更新全部模型)

Atlas200dk配置:CPU: 8xArm Cortex A55 NPU: Ascend310(8~22TOPs算力) 由于前几天调试atlas碰到了很多坑,到现在才终于成功部署了v5和nanodet的模型,YOLOX的模型将尽量进行测试

modelsizecann(npu)onnx(cpu)YOLOXnano416x41611.5ms308.2msYOLOXtiny416x41612.2ms763.8msYOLOXs640x64016.5ms2907.3msYOLOXx640x64062.8ms24268ms––––YOLOv5s640x64034.4ms1187msYOLOv5s6640x64022.7ms–YOLOv5x640x64064.6ms11813msYOLOv5x6640x64062.7ms–––––Nanodet_s320x3208.0ms170.5msNanodet_m416x41611.0ms280.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

关注
打赏
1658651101
查看更多评论
立即登录/注册

微信扫码登录

0.0376s