我使用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、首先我使用
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的高校处理







