yolov 3トレーニング自分のデータセット(darknet)+visdroneデータセット

6231 ワード

前のリンク:https://blog.csdn.net/daisy_d_/article/details/105748051
すべての完了は次のステップに分けられます:1.独自のデータセットを作成する-visdroneをyoloに変換するために必要なフォーマット2.yolov 3を構成する(以下、この部分を完成する).テストおよび計算map

darknetをダウンロードしてコンパイル

git clone https://github.com/pjreddie/darknet
cd darknet

makfileファイルの変更
GPU=1 # GPU 1,CPU 0
CUDNN=1  # CUDNN 1, 0
OPENCV=0 # , OPENCV 1, 0
OPENMP=0  
DEBUG=0  

コンパイル
make

ウェイトをダウンロードし、関連する構成情報を変更


ダウンロードの重みはdarknet 53です.conv.74 scriptsフォルダの下に置いた
wget https://pjreddie.com/media/files/darknet53.conv.74 

cfg/vocを修正する.data
classes= 10
train  = /home/mist/darknet/scripts/VOCdevkit/VOC2018/train.txt
 # , , 
valid  = /home/mist/darknet/scripts/VOCdevkit/VOC2018/val.txt
names = data/voc.names
backup = backup


data/vocを変更する.name
pedestrian
people
bicycle
car
van
truck
tricycle
awning-tricycle
bus
motor

cfg/yolov 3-vocを修正する.cfg、私が使っているこのネットワークの修正の場所:最初の場所
[convolutional]
size=1
stride=1
pad=1
filters=45        # 3*(classes+5) 3*(10+5)=45
activation=linear
[yolo]
mask = 6,7,8
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=10        # ,10 
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=0    

2番目
[convolutional]
size=1
stride=1
pad=1
filters=45        # 
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=10        # 
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=0       

3番目
[convolutional]
size=1
stride=1
pad=1
filters=45        # 
activation=linear
 
[yolo]
mask = 0,1,2
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=10        # 
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=0      

トレーニング


これから訓練できます.訓練は時間が長いかもしれません.辛抱強くしなければなりません.
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg scripts/darknet53.conv.74 

トレーニングが中断された場合は、最後に保存したウェイトから開始できます.
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_51000.weights

訓練時に注意すべきパラメータ
learning_rate=0.001    # 。 https://blog.csdn.net/qq_33485434/article/details/80452941
....
max_batches = 50200     # max_batches 
....
steps=40000,45000  #steps scale , 40000 45000 , 
scales=.1,.1       #.1 

訓練時に重みを保存する頻度の最初の1000回は100回ごとに保存され、1000より大きい10000ごとに重みを保存するdetectorを変更することができる.cでは、適切な周波数を選択する
 if(i%10000==0 || (i < 1000 && i%100 == 0))