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的改善和優化(應該不鴿