視頻鏈接地址
項目代碼地址
文件結(jié)構(gòu)
- runs種記錄的時運行時的損失猜年、mAP之類的內(nèi)容
- model.py的作用是調(diào)用parse_config.py邑滨,而parse_config.py又會進(jìn)一步調(diào)用yolov3-spp.cfg來完成網(wǎng)絡(luò)的搭建
制作自己的數(shù)據(jù)集步驟
-
標(biāo)注成Darknet format(yolo格式)
-
創(chuàng)建.txt文件逗堵,包含train.txt和test.txt,就是對應(yīng)的文件路徑
-
創(chuàng)建以.names結(jié)尾的標(biāo)簽文件
-
創(chuàng)建.data文件
-
更新yolov3-spp.cfg文件
- 更新超參數(shù)
-
VOC數(shù)據(jù)格式轉(zhuǎn)化為YOLO標(biāo)注格式
VOC格式對應(yīng)的類別標(biāo)簽為.json格式,而yolo需要的為.names格式
-
根據(jù)準(zhǔn)備好的數(shù)據(jù)集信息生成一系列相關(guān)準(zhǔn)備文件
- 預(yù)訓(xùn)練權(quán)重下載(下載后放入weights文件夾中)
使用方法
- 準(zhǔn)備數(shù)據(jù)集
- 將數(shù)據(jù)集格式轉(zhuǎn)化為yolo格式衅疙,通過運行trans_voc2yolo.py文件完成
- 對數(shù)據(jù)集進(jìn)行統(tǒng)計莲趣,通過calculate_dataset.py文件生成網(wǎng)絡(luò)所需的相關(guān)數(shù)據(jù)集路徑文件,并對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行更新
- 將預(yù)訓(xùn)練權(quán)重放入到weights文件夾中
train.py的相關(guān)講解
- hyp.yaml文件對應(yīng)的是超參數(shù)存放的位置
- --savebest為是否只保留mAP最高時對應(yīng)的權(quán)重
- --notest是在訓(xùn)練最后的一個epoch去驗證我們的模型饱溢,置為true會節(jié)約時間
- --cache-images是緩存圖片翁逞,如果是固態(tài)硬盤則提升不大
- --weights,當(dāng)訓(xùn)練斷開之后哲思,你想繼續(xù)訓(xùn)練棚赔,就把最后一個保存的訓(xùn)練權(quán)重路徑導(dǎo)入即可繼續(xù)訓(xùn)練
-
--freeze-layers是否要凍結(jié)網(wǎng)絡(luò)的部分權(quán)重,設(shè)置為true之后就會之訓(xùn)練后面三個分類器胧后,前面網(wǎng)絡(luò)的所有權(quán)重都會被凍結(jié),可以加快我們的訓(xùn)練速度
-
accumulate實現(xiàn)的功能為竖伯,batchsize由于現(xiàn)存的原因不能設(shè)置很大的時候杭棵,可以通過其在更多輪次之后再更新一起權(quán)重婚惫,這樣做有助于我們的模型訓(xùn)練
-
通過darknet方法來搭建我們的模型氛赐,并將模型指認(rèn)到我們指定的設(shè)備當(dāng)中
- SGD(隨機(jī)梯度下降)方法進(jìn)行反向傳播:lr學(xué)習(xí)率;momentum動量先舷;weight_decay正則項
訓(xùn)練完成后
- 在runs文件夾下會保存一系列數(shù)據(jù)艰管,還會生成results.txt文件,我們的訓(xùn)練結(jié)果在驗證集上對應(yīng)的coco評價標(biāo)準(zhǔn)(共有12個評價指標(biāo)蒋川,所以每行會有12個參數(shù))
-
查看曲線的操作
-
predict.py運行結(jié)果
需要解決的三個問題
- 關(guān)于SGD算法中的正則項和其本身的物理意義
L1和L2正則化項都可以防止過擬合牲芋,其L1正則化項可以使得學(xué)習(xí)的模型更加稀疏化
L2正則相當(dāng)于用圓去逼近目標(biāo),而L1正則相當(dāng)于用菱形去逼近目標(biāo)捺球,所以更容易引起交點在坐標(biāo)軸上即得到稀疏解缸浦。L1正則化會使得較多的參數(shù)為0,從而產(chǎn)生稀疏解氮兵,將0對應(yīng)的特征遺棄裂逐,進(jìn)而用來選擇特征。
視頻地址 - 可以進(jìn)行圖片的檢測泣栈,如何進(jìn)行視頻的檢測呢卜高?
代碼中沒用相關(guān)的圖像檢測部分,在進(jìn)行yolov5更新時會實現(xiàn)這一目標(biāo) - 在查看曲線時無法調(diào)用tensorboard.exe命令
https://blog.csdn.net/xia_xia_mg/article/details/79933927