树莓派上体验用ncnn量化推理yolov5-lite


中间细节都一样,均可参考:https://raychiu.blog.csdn.net/article/details/122534656

一到四步这些模型转化生成都在服务器上操作即可,比较快,最后的param和bin发送到树莓派使用即可。

一、下载代码和模型并转onnx

#模型在百度云盘密码pogg,模型名字是v5lite-s.pt自行更正为yolov5-lite.pt
https://pan.baidu.com/share/init?surl=j0n0K1kqfv1Ouwa2QSnzCQ
#下载代码并转onnx
git clone https://github.com/ppogg/YOLOv5-Lite.git
python models/export.py --weights weights/yolov5-lite.pt --img 640 --batch 1
python -m onnxsim weights/yolov5-lite.onnx weights/yolov5-lite-sim.onnx

二、配置ncnn环境并生成param和bin

~/data/packages/ncnn/build/tools/onnx/onnx2ncnn ./yolov5-lite-sim.onnx yolov5-lite.param yolov5-lite.bin
~/data/packages/ncnn/build/tools/ncnnoptimize yolov5-lite.param yolov5-lite.bin yolov5-lite-opt.param yolov5-lite-opt.bin 65536

三、改param文件设置动态尺寸推理

四、匹配ncnn中yolov5.cpp的输出

param中的:

 

yolov5.cpp中的:

 

 

 五、树莓派上重新编译ncnn并拿来其他服务器上生成的param和bin文件推理

未量化的模型执行较慢,大概0.5fps吧

六、量化为int8并在树莓派测试

这里用到ncnn中两个工具:ncnn2table 和 ncnn2int8,前者要做直方图截断、直方图相似度匹配等校验工作,需要用到数据集,我这里用coco的那个5000张图片的数据集,没有的自己百度下载即可:

 

 把数据集发送到服务器,咱们量化操作也在服务器做,比较耗时。

unzip解压,后:

# -type f 是按照普通文件类型find文件名 ,然后导出到imagelist.txt里
find images/ -type f > imagelist.txt

然后:

~/data/packages/ncnn/build/tools/quantize/ncnn2table yolov5-lite-opt.param yolov5-lite-opt.bin ./imagelist.txt yolov5-lite.table mean=[104,117,123] norm=[0.017,0.017,0.017] shape=[640,640,3] pixel=BGR thread=8 method=kl
~/data/packages/ncnn/build/tools/quantize/ncnn2int8 yolov5-lite-opt.param yolov5-lite-opt.bin yolov5-ite-opt-int8.param yolov5-lite-opt-int8.bin yolov5-lite.tabled
第一步点耗时,等一下就好...

最后我们把模型拿到树莓派测试发现快了一些。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM