1. 程式人生 > >yolo算法框架使用二

yolo算法框架使用二

mes .... sting ctr overview path 還需要 參考 數據集

6,voc數據集訓練模型

1)下載數據集

官網提供一些voc數據,是基於2007年到2012年的,你可以通過以下地址下載到:

wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-2012.tar
tar xf VOCtrainval_06-Nov-2007.tar
tar
xf VOCtest_06-Nov-2007.tar

可以把數據存放到VOCdevkit/目錄下

2)生成識別標簽

識別標簽必須是.txt文件的,具體格式如下:

<object-class> <x> <y> <width> <height>

Object-class 是分類的名稱

其余元素是關聯到圖片的像素,寬和高的

通過下載官網提供的voc_label.py 我們可以快速的生成這一個文件,把他下載到scripts/目錄下:

wget https://pjreddie.com/media/files/voc_label.py
python voc_label.py

幾分鐘後,就會生成相應的文件存放到:

VOCdevkit/VOC2007/labels/ 或者 VOCdevkit/VOC2012/labels/下面:

ls
2007_test.txt   VOCdevkit
2007_train.txt  voc_label.py
2007_val.txt    VOCtest_06-Nov-2007.tar
2012_train.txt  VOCtrainval_06-Nov-2007.tar
2012_val.txt    VOCtrainval_11-May-2012.tar

我們可以把自己真正要訓練的文件合並成一個:

cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

3)修改配置指向的數據(Pascal Data)

在cfg/voc.data裏配置數據的指向:

1 classes= 20
  2 train  = <path-to-voc>/train.txt
  3 valid  = <path-to-voc>2007_test.txt
  4 names = data/voc.names
  5 backup = backup

<path-to-voc> 就是你數據集的指向

4)下載預訓練的卷積的權重

這裏用到卷積的權重是imageNet預訓練提供:

wget https://pjreddie.com/media/files/darknet19_448.conv.23

你也可以通過下載預訓練的Darknet19 448x448 model(https://pjreddie.com/darknet/imagenet/#darknet19_448) 模型來產生你自己的權重,執行下面的命名:

./darknet partial cfg/darknet19_448.cfg darknet19_448.weights darknet19_448.conv.23 23

5)訓練模型

./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23

7,用coco 訓練yolo模型

Coco數據集,我沒有用過,具體可以查看http://cocodataset.org/#overview 了解一下

1)獲取coco數據集

下載coco的數據集和標簽,可直接通過scripts/get_coco_dataset.sh腳本執行:

cp scripts/get_coco_dataset.sh data
cd data
bash get_coco_dataset.sh

這樣標簽和數據集都有了。

2)配置數據集的指向

在cfg/coco.data配置文件裏配置:

1 classes= 80
  2 train  = <path-to-coco>/trainvalno5k.txt
  3 valid  = <path-to-coco>/5k.txt
  4 names = data/coco.names
  5 backup = backup

<path-to-coco>是你的具體路徑指向

另外還需要配置你數據集是用於訓練不是測試的,默認是測試的配置,在cfg/yolo.cfg:

[net]
# Testing
# batch=1
# subdivisions=1
# Training
batch=64
subdivisions=8
....

3)訓練模型

./darknet detector train cfg/coco.data cfg/yolo.cfg darknet19_448.conv.23

4)啟用gpus執行訓練,加速

./darknet detector train cfg/coco.data cfg/yolo.cfg darknet19_448.conv.23 -gpus 0,1,2,3

5)訓練暫停或者從斷點開始訓練

./darknet detector train cfg/coco.data cfg/yolo.cfg backup/yolo.backup -gpus 0,1,2,3

8,官方特別聲明的

如果你使用他們的框架,必須在註釋裏說明框架來源,可以直接在註釋裏粘入下面的註釋:

@article{redmon2016yolo9000,
  title={YOLO9000: Better, Faster, Stronger},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1612.08242},
  year={2016}
}

參考地址:https://pjreddie.com/darknet/yolo/

論文地址 :https://arxiv.org/abs/1612.08242

yolo算法框架使用二