當前位置: 妍妍網 > 碼農

YOLOv5 7.0實作DM碼檢測定位

2024-06-07碼農

點選上方 藍字 關註我們

微信公眾號: OpenCV學堂

關註獲取更多電腦視覺與深度學習知識

安裝與測試

最近YOLOv5最新更新升級到v7.x版本,工程簡便性有提升了一大步,本教程教你基於YOLOv5框架如何訓練一個自訂物件檢測模型,首先需要下載對應版本:

https://github.com/ultralytics/yolov5/releases/tag/v7.0

滑鼠滾到最下面下載源碼zip包:

https://github.com/ultralytics/yolov5/archive/refs/tags/v7.0.zip

下載完成之後解壓縮到:

D:\python\yolov5-7.0# 安裝依賴庫pipinstall-rrequirements.txt

等待一段時間,完成全部安裝之後,執行測試:

pythondetect.py--weightsyolov5s.pt--sourcedata\images\zidane.jpg

執行結果如下:

數據集準備與制作

這個是我自己基於過去幾年收集到DataMatrix數據,然後完成了數據挑選,清洗,然後標註 得到一個數據集,整個模型標註與數據集制作都是基於OpenMV工具軟體完成。

三:模型訓練

制作好數據集之後,模型訓練就成為一件很簡單事情,一條命令列搞定。執行下面的命令列:

python train.py --data ./dm_training/dm_dataset.yaml --epochs 50 --weights yolov5s.pt --batch-size 4

訓練過程與效果如下

PR曲線說明訓練效果還錯!

不同框架與硬體平台推理比較

訓練得到的模型,基於OpenVINO完成了INT8量化,最終模型大約只有6MB左右,可以支持多個場景下的DataMatrix碼 即時檢測,配合OpenCV 實驗大師C++ SDK可以實作場景場景下的工業碼的解碼辨識。 效果已經遠遠超過開源各種DM解碼庫的效果,基本達到了商業水準。

番外篇:C++推理與比較

使用C++部署時候,前後處理都改成了基於OpenCV 完成,使用CPU完成前後處理,OpenVINO+CPU執行速度截圖如下:

推薦閱讀

掃碼檢視深度學習系統化學習路線圖