上一年總結的舊文章,也許對新接觸yolo
的有點幫助.git
via網頁標註的數據須要通過一系列轉換,才能適配yolo的訓練,主要步驟包括以下:github
xxx.txt格式(數值都是除以圖片實際寬高保存的):
類名 box矩形中心x座標 box矩形中心y座標 box矩形寬 box矩形高
複製代碼
分享: 多線程以及jupyter進度條的集合算法
這一步沒有耗費多少時間,根據官網一步一步走就沒問題 darknet官網json
./darknet detector train ../_question/question.data ../_question/question1280TR.cfg -i 1
-i 1 :
指定gpu:1.[吐槽:爲何是 i 的簡寫]bash
想要不出意外,不踩坑:多線程
訓練過程當中的log數據解讀:學習
Region 16 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.000000, .5R: -nan, .75R: -nan, count: 0ui |
Region 23 Avg IOU: 0.860543, Class: 0.999887, Obj: 0.962618, No Obj: 0.000232, .5R: 1.000000, .75R: 0.950000, count: 20spa |
11670(當前迭代batch次數): 0.225856(整體loss), 0.287980 avg(平均loss), 0.000100 rate(當前的學習率,在cfg中定義), 11.322880 seconds(當前batch耗費時間), 1867200 images(參與訓練的圖片總數).net |
Region 16, Region 23
:(存疑)Avg IOU: 0.860543
:Class: 0.999887
:box分類的正確率
Obj: 0.962618, No Obj: 0.000232
:檢測模型效果時, kernel have died
backup路徑寫錯 由於是C
寫的,在notebook上沒有輸出具體的錯誤log,致使在這個問題上卡了比較久,最終在jupyter.log中定位到問題緣由.
排查了很多時間,發現是xxx.data
中設置的backup 路徑
沒有建立,致使backup保存失敗,進而訓練中斷
訓練沒法開始. 也沒有什麼報錯信息
訓練類別增長後,須要更改4個參數
classes
須要改變classes
須要與類別對應filters
須要更改:filters=(classes + 5)* mask的數量. 參考連接訓練沒法開始. 報錯信息:
./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
由於cuda 路徑 darknet 沒有檢測到,輸入臨時路徑命令:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64 && sudo ldconfig
複製代碼
而後再執行訓練命令便可
nohup ./darknet detector train ../xxxx/xxxx.data ../xxxxx/xxxx1280TR_1.cfg -i 0 >> 1280TR_0625_train1.txt &
複製代碼
訓練沒法開始. 報錯信息:
8Cannot load image "/mobileHDD/xxxx/images/xxx_ (7416).jpg"
STB Reason: unknown image type images
複製代碼
圖片壓縮尺寸存在問題,須要從新生成圖片.
根據[現象2],推測有多是cfg
中anchors
大小不正確,採用kmeans
聚類分析 anchors
大小. 由於新一批數據含有很是多得用戶真實數據,而用戶真實數據的物體大小波動範圍很是大,原來的anchors
不適合了.
圖片尺寸沒有歸一致使.
不知道怎麼解決的了,有多是兩個問題同時出現,致使了這個現象.到晚上9點才解決.左側腦殼疼...用腦過分,硬懟把這個問題解決了....
目前來看都正常了.....
obj
較低 而在其它數據中效果較好,有些連一個都沒有檢測到.
[另一類檢測] 基本沒有效果
某類物體漏檢很是嚴重
2~4點 都是 thresh= 0.1
的狀況下 很是反常!按理來講,loss降低到0.5左右,效果應該是比較好的,可是卻明顯比以前的效果差
髒數據太多,一共發現近200張含髒數據的圖片.(圖片顛倒,漏標,錯標,二值化),去除掉這部分後再訓練看看 是否會好不少.
剔除髒數據後,訓練結果中 現象仍然存在,但檢測率高了很多.
所以,推測是anchors 設置不合理致使的,anchors設置過小致使
darknet: ./src/parser.c:315: parse_yolo: Assertion `l.outputs == params.inputs' failed 複製代碼
參數解讀: blog.csdn.net/phinoo/arti…
個人滴滴雲專屬AI大師碼:3388, 購買滴滴雲GPU等AI產品輸入大師碼享9折優惠。 點擊 www.didiyun.com前往滴滴雲官網購買
本篇文章由一文多發平臺ArtiPub自動發佈