(三)使用YOLOv3訓練BDD100K數據集之開始訓練

目錄

經過前面兩篇博客((一)使用YOLOv3訓練BDD100K數據集之數據集下載
(二)使用YOLOv3訓練BDD100K數據集之標籤格式轉換),我們已經準備了BDD100K數據集,並且已經生成了darknet格式的標籤,需要的訓練集和驗證集train.txt和val.txt,現在我們只需要簡單地修改幾個配置文件就可以開始訓練了。

1 準備bdd100k.names文件

在darknet/data/目錄下創建文件bdd100k.names,裏面存放了每一類的類名,這個將在測試一張圖片時在右上角顯示一個物體的標籤名。文件內容如下(注意順序要與xml_to_yolo_txt.py文件裏面的順序一致。):

car
bus
person
bike
truck
motor
train
rider
traffic sign
traffic light

2 準備bdd100k.names文件準備bdd100k.data

在darknet/data/目錄下創建文件bdd100k.data,其內容如下,其中classes表示類的數目,train和val表示前一篇文章中生成的train.txt和val.txt的存放路徑(相對於darknet安裝路徑),backup表示訓練的yolo權重存放的位置。

classes = 10
train = bdd100k_data/train.txt
valid = bdd100k_data/val.txt
names = bdd100k_data/bdd100k.names
backup = backup/

3 準備yolov3-bdd100k.cfg

在darknet/cfg目錄下,創建一個文件yolov3-bdd100k.cfg,裏面的內容可以先拷貝yolov3.cfg,在修改以下幾個部分:

  • 三處classes=80修改爲classes=10
  • 三處filters=255(注意只需要修改[yolo]上面的[convolutional]的filters)修改爲filters=45( filters=3*(classes+5) ),如下:

    也可以模仿此處,修改yolov3-tiny.cfg或yolov2.cfg來使用YOLOv3-tiny或YOLOv2模型訓練BDD00K

[convolutional]
size=1
stride=1
pad=1
filters=255 # 此處需要修改爲filters=45,注意一定要修改[yolo]層前面的第一個[convolutional]
activation=linear
[yolo]
mask = 3,4,5
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=80
num=9
  • 還可以修改batch,subdivisions和max_batches等參數。其中batch表示一個批次訓練的圖片數目,一個epoch=total_train_images/batch,而subdivisions表示將一個batch分爲subdivisions個組進行分別訓練,每個組有batch/subdivisions個圖片。max_batches表示最大的批次數,而iterations=max_batches/batch。

4 下載ImageNet預訓練的網絡參數

yolov3默認的訓練權重爲darknet53,我們可以在darknet路徑下打開終端,輸入命令下載權重:

wget https://pjreddie.com/media/files/darknet53.conv.74

5 訓練模型

輸入以下命令,即可開始訓練

sudo ./darknet detector train bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg darknet53.conv.74

6 測試一張圖片

輸入以下命令,即可開始測試模型:

sudo ./darknet detector test bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup  data/000005.png

7 測試一個視頻

sudo ./darknet detector demo bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup driving.mp4

8 測試網絡攝像頭輸入

sudo ./darknet detector demo bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup -c 1

9 中斷後繼續訓練模型

輸入以下命令,即可開始測試模型:

sudo ./darknet detector train bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg  backup/yolov3-bdd100k.backup  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章