首先在這裡感謝一下這位大佬:學不會電磁場的個人空間-學不會電磁場個人主頁-嗶哩嗶哩影片 (bilibili.com)
這裡使用的程式碼是從手把手教你使用c++部署yolov5模型,opencv推理onnx模型_嗶哩嗶哩_bilibili處來的我這裡只記錄下更換成自己的模型的應用以及提供一份全註釋的版本
這裡是連結https://wwrh.lanzoul.com/is5BV2bgf33g
樹莓派搭建opencv和c++環境請看我的其他部落格
首先我們需要得到訓練模型的權重檔案(.pt字尾)轉換為onnx格式
yolo5自帶這個功能,在export.py中的parse_opt函式里
arse_opt裡我們需要修改data,weights,imgsz和--include,其中data要和你的weights對應data對應你的訓練資料(當然這裡不訓練,只是拿到每個分類對應的序列號),imgsz對應你的識別影像大小,
--include對應你轉出的模型格式(包括torchscript, onnx, openvino... )
匯出後拿著我們得到的onnx檔案到樹莓派裡
在這之前你需要登入Netron匯入你的onnx模型來檢視輸出層名字(名字不對識別報錯)我這裡是output0
然後讓我們進入到cpp程式裡主函式部分修改輸出層名稱以及匯入你的模型
然後是最後一步:在static const中將裡面的分類替換成你模型的(按照順序排好)
然後編譯執行既可(這裡出現一堆數字可以在程式裡改掉,可以看我的註釋或者置頂影片)