我使用yolov系列的FPS很低

我使用yolov5n.pt进行模型转换,但是由于很多计算都是CPU-BPU进行切换,导致FPS很低,有没有什么办法优化一下呢,我使用官方提供的yolov5s_672x672_nv12.bin,测试时BPU占用可以到90%,我使用自己转的只有15%。

参考model zoo即可 GitHub - D-Robotics/rdk_model_zoo

我直接使用的hrt_model_exec进行测试 yolov5n.bin 640x640时 fps只有4.8,是什么原因呢?

  1. 没开多线程
  2. 没有进行任何优化

参考Model Zoo X3 分支进行YOLO模型的ONNX导出量化即可

是的 我也觉得我的不正确 ,但是我不清楚我是不是因为模型转换出现了错误。
1、首先我使用
from ultralytics import YOLO

model = YOLO(‘yolov5nu.pt’)

model.export(format=‘onnx’,dynamic = False)

2、导出完成后,就在docker中进行量化
hb_mapper makertbin --fast-perf --march bernoulli2 --model-type onnx -i images 1x3x640x640 --model ./project/checkpoins/yolov5nu.onnx

3、拿到结果后,在x3板子上执行了

hrt_model_exec perf --model_file yolov5nu.bin --model_name=“” --core_id=0 --frame_count=200 --perf_time=0 --thread_num=1 --profile_path=“./”
得到的结果输出如下
Running condition:
Thread number is: 1
Frame count is: 200
Program run time: 40897.612000 ms
Perf result:
Frame totally latency is: 40890.492188 ms
Average latency is: 204.452454 ms
Frame rate is: 4.890261 FPS

我先尝试跟着教程走一遍,感谢答疑

–thread_num=1 可以调大

对ONNX模型导出 我们有一些优化,opset有约束 输出维度也有修改

此外你没有进行模型校准,按照教程走就行~

您好我按照教程将 yolo.py 和 export.py 进行了修改,

checker和量化之后,确实每个算子都显示的BPU。

但是我在测试时直接出现了

我自己写了一个测试脚本

打印的fps只有10,这是为什么呢?是什么原因导致我的bpu没有被完全利用呢

你好 我按照v5 -tag==2.0 的修改 已经可以正常使用了

n参数量本身就比较小 BPU利用率不高为正常情况

Python程序无法作为fps参考依据,建议参考TROS的高校处理