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