一、構建VOC數據集
1.準備數據
(1)./write.sh //設置輸入輸出文件的路徑,包含訓練集圖片的文件名
注:輸出文件路徑是train.txt的絕對路徑,並去掉所以後綴名.xml。
(2)運行voc_label.py,生成train_2017.txt文件,裏面包含了所有訓練樣本的絕對路徑。
(3)把coco數據集(jason)轉換成voc數據集同樣的格式,並將coco和自己的數據集混合成新的數據集。
運行darknet-master/data_coco/coco-master/PythonAPI/pycocotools/coco-label.py
二、修改配置文件:
1、修改darknet-master/data/anngic.names裏面的類別。
2、修改cfg/coco.data 裏面的類別、權重保存文件夾等。
3、修改cfg/tiny_yolo_coco.cfg裏的類別、最後一層卷積層計算次數,
修改anchors:
注:像素416*416時用第一行;像素288*288時用第二行。
修改訓練次數,如:max_batches=200000
注:接着之前的訓練結果訓練就把次數累加,不用就直接寫訓練次數。
三、訓練
3.1 訓練新的模型,生成只有前13層的權重文件,後兩層(14、15層)和分類有關。
#只保留tiny-yolo-coco_final.weights模型的前13層,後兩層和分類有關,新模型保存到pre-trained_weights/tiny-yolo-coco.conv.13。
./darknet partial cfg/tiny-yolo-coco.cfg backup/tiny-yolo-coco_288-2.0/tiny-yolo-coco_final.weights pre-trained_weights/tiny-yolo-coco.conv.13 13
#用pre-trained_weights/tiny-yolo-voc.conv.13進行訓練,gpu使用第1、2、3個。
./darknet detector train cfg/coco.data cfg/tiny-yolo-coco.cfg pre-trained_weights/tiny-yolo-voc.conv.13 -gpus 0,1,2
3.2 接着之前的結果訓練:
./darknet detector train cfg/coco.data cfg/tiny-yolo-coco.cfg '/home/anngic/darknet-master/backup/tiny-yolo-coco_288-2.0/tiny-yolo-coco_final.weights' -gpus 0,1,2
四、測試
./darknet detector valid cfg/xnor.data cfg/tiny-yolo-voc.cfg backup/tiny-yolo-voc-2.0/tiny-yolo-voc_final.weights
./darknet detector valid cfg/voc.data cfg/xnorcfg/binary_tiny-yolo-voc.cfg backup/tiny-yolo-voc-binary-1/binary_tiny-yolo-voc_final.weights
#224*224
./darknet detector valid cfg/anngic.data cfg/tiny-yolo-voc.cfg backup/tiny-yolo-anngic2017_224/tiny-yolo-voc_final.weights
./darknet detector valid cfg/anngic.data cfg/tiny-yolo-voc.cfg backup/tiny-yolo-person2017_224-4.0/tiny-yolo-voc_final.weights
./darknet detector test cfg/anngic.data cfg/tiny-yolo-voc.cfg backup/tiny-yolo-person2017_224-4.0/tiny-yolo-voc_final.weights /home/anngic/darknet-master/data_anngic/person2017/JPEGImages/0027033.jpg
#coco
./darknet detector demo cfg/coco.data cfg/tiny-yolo-coco.cfg backup/tiny-yolo-coco_288/tiny-yolo-coco_final.weights 00012.avi
./darknet detector valid cfg/coco.data cfg/tiny-yolo-coco.cfg backup/tiny-yolo-coco_288/tiny-yolo-coco_final.weights
./darknet detector test cfg/coco.data cfg/tiny-yolo-coco.cfg backup/tiny-yolo-coco_288/tiny-yolo-coco_final.weights
五、計算mAP
運行darknet-master/person2017-test/compute_mAP.py