Yolov4训练自己的数据集
Yolov4訓(xùn)練自己的數(shù)據(jù)集
makefile前面幾行:打開GPU 加速,打開opencv,打開libdarknet.so生成開關(guān)
編譯
在darknet-master目錄下運行:cmake.&make -j48
下載與訓(xùn)練權(quán)重放在主目錄下https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
百度網(wǎng)盤: 鏈接:https://pan.baidu.com/s/16wOHbaa2mG7cTZ_RcGjRnw
提取碼:99bl
用下面的命令測試一下預(yù)訓(xùn)練權(quán)重
./darknet
如果編譯成功則會出現(xiàn)以下信息
usage: ./darknet
現(xiàn)在可以測試初始預(yù)訓(xùn)練權(quán)重效果了
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jp
成功則在主目錄下出現(xiàn)predictions.jpg 圖片為預(yù)測后的圖片,打開 OPENCV=1的可以直接顯示出圖片。說明我們的環(huán)境配置好了,否則先去配置環(huán)境。
5. 訓(xùn)練自己的數(shù)據(jù)集
–5.1 在主目錄下創(chuàng)建yolo-obj.cfg 配置文件。將 yolov4-custom.cfg 中的內(nèi)容復(fù)制到 yolo-obj.cfg里面,并做以下修改。
--5.1.1修改batch=64,修改subdivisions=16(如果顯卡是2080TI的,可以把batch設(shè)置為96,如果報內(nèi)存不足,將batch改回64將,或者subdivisions設(shè)置為32)
--5.1.2修改max_batches=classes*2000 例如有2個類別人和車 ,那么就設(shè)置為4000,N個類就設(shè)置為N乘以2000,
--5.1.3修改steps為80% 到 90% 的max_batches值 比如max_batches=4000,則steps=3200,3600
--5.1.4修改classes,先用ctrl+F搜索 [yolo] 可以搜到3次,每次搜到的內(nèi)容中 修改classes=你自己的類別 比如classes=2
--5.1.5修改filters,一樣先搜索 [yolo] ,每次搜的yolo上一個[convolution] 中 filters=(classes + 5)x3 比如filters=21
--5.1.6(可以跳過)如果要用[Gaussian_yolo] ,則搜索[Gaussian_yolo] 將[filters=57] 的filter 修改為 filters=(classes + 9)x3 (這里我沒用到,但是還是修改了)
–5.2制作obj.names,在主目錄下創(chuàng)建obj.names文件。內(nèi)容為你的類別 比如人和車 那么obj.names 為如下,多個類別依次往下寫
person
car
–5.3 制作obj.data,在主目錄下創(chuàng)建obj.data文件。內(nèi)容如下
classes= 2train = ./scripts/2007_train.txt#valid = ./scripts/2007_test.txt #(做測試用的測試txt)valid = ./scripts/2007_val.txtnames = darknet-master/obj.name #(找不到的話,可以修改為自己的絕對路徑)backup = backup/ # 權(quán)重保存的位置–5.4 數(shù)據(jù)集制作
在scripts文件夾下按如下目錄創(chuàng)建VOCdevkit 文件夾,放自己的訓(xùn)練數(shù)據(jù)。
- ?
–5.5 scripts文件夾下有voc_label.py,打開后修改自己的類別信息,
sets=[ (‘2007’, ‘train’), (‘2007’, ‘val’), (‘2007’, ‘test’)]
classes = [“person”,“car” ] 按自己的類別修改,但是順序要和obj.name 保持一致,
-5.6 在主目錄下創(chuàng)建make_data.py 文件,把如下代碼方進去。運行此文件在scripts 文件下生成 3個相應(yīng)的txt文件,在Main 下生成四個txt文件。
- ?
- 5.7運行voc_labels.py文件,在VOC2007文件下生成labels文件,文件夾里包含相應(yīng)的txt.(現(xiàn)在voc2007文件里多出一個labels 文件夾)
-5.8 開始訓(xùn)練
首先下載預(yù)訓(xùn)練權(quán)重yolov4.conv.137,放入主目錄下。
鏈接:https://pan.baidu.com/s/1yhB8pRcGH84gyRWeNictBA
提取碼:gi4d
用下面的命令開始訓(xùn)練:
./darknet detector train obj.data yolo-obj.cfg yolov4.conv.137 -map
#訓(xùn)練2000此后在之前訓(xùn)練的基礎(chǔ)上繼續(xù)訓(xùn)練(適合中途停止后繼續(xù)訓(xùn)練)
./darknet detector train obj.data yolo-obj.cfg backup/yolo-obj_2000.weights -map
大家可以看到收斂效果還是很明顯的,效果扛扛的。不愧是吊打一切的目標(biāo)檢測算法。
-5.9測試
修改obj.data,
valid = ./scripts/2007_test.txt
#valid = ./scripts/2007_val.txt
測試:
./darknet detector map obj.data yolo-obj.cfg backup/yolo-obj_final.weights
好了,你竟然認(rèn)真的看完了,記得點贊收藏,下次觀看不迷路,有任何問題歡迎流言私信我。
總結(jié)
以上是生活随笔為你收集整理的Yolov4训练自己的数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php iis redis,iis wi
- 下一篇: npm包管理器安装模块