yolov3及tiny版本的實踐(Windows)


yolov3系列模型的調用配置

github地址https://github.com/ultralytics/yolov3(這里是框架的官網源碼)

首先是關於配置問題

我的是win10+python3.7+pytorch1.4+torchvision0.5+Anaconda

這里要說明一下,torch和torchvision版本不對應會出現此類問題

DLL failed

所以一定要找到相對應的torch和torchvision安裝,沒有清華鏡像的話建議使用Anaconda構建環境,用conda安裝,具體安裝在pytorch官網上

再來是將框架clone到本地后的代碼調試修改

進入根目錄下的train.py

如下圖

找到這部分代碼,可能隨着版本的更新會略有差異,如上圖划黃線的三行是定義框架,數據集,預訓練參數的默認值,更改為自己需要的內容,路徑在根路徑下

hat.dat是我的數據集設置文本,里面包括了訓練集和測試集的路徑,訓練類別,還有一些預定義的內容

cfg是框架

weight是預訓練加載好的權重

yolov3與yolov3-tiny各方面實踐對比

訓練速度上,使用7000張訓練集,預測小目標的效果,配置cuda9.2

訓練時間:訓練50個epoch對比,yolov3-tiny的速度是yolov3的4-5倍

從訓練成本上看,使用谷歌雲或百度雲搭載yolov3模型進行訓練的效果最佳,tiny版本本質上通過剪枝壓縮刪除了三分之一的非冗余中間層,容易造成漏判和誤判,解決這類問題的思路最終也只有調整閾值,然而無論調整程度如何,最終還會出現多判的結果

訓練結果上

https://images-cdn.shimo.im/NZFCf5UxuXo8eo34__thumbnail 這是使用yolov3訓練25個epoch后的參數結果

而使用yolov3-tiny的訓練結果

precision下降0.1-0.15

recall下降0.2-0.3

預測速度上,使用yolov3和yolov3-tiny預測同一張圖片,比較一張圖片中存在3個預測對象,速度差異可以忽略不計

對比了以上的實踐結果得出結論:

預測小范圍的目標,使用tiny版本減少了模型儲存的體量,在連續預測的速度上占有優勢,在考慮落地應用的成本上是性價比高的選擇

預測中小范圍的目標,使用yolov3原始版本在精確度上占優

下一篇是yolov3的改善和優化(應該不鴿

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM