樹莓派上體驗用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