Training YOLOv2

来源:互联网 发布:自学c语言 编辑:程序博客网 时间:2024/06/06 05:51

图像数据库与本文无关

配置好darknet后的测试语句

git clone https://github.com/pjreddie/darknetcd darknetmake下载该权限文件:https://pjreddie.com/media/files/yolo.weights
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

tiny的下载链接,作者说是基于Darknet reference network的,有可能权重不一样

wget https://pjreddie.com/media/files/tiny-yolo-voc.weights./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights data/dog.jpg

webcam的

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights -c 0 //是可以选摄像头的 具体-c的位置 有待测试

video文件的

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

之前测试训练yolo总是出问题,在此,参考多篇技术文章,来看看,大家的异同点在哪里,争取在月底前能顺利训练出结果。

官网训练过程

https://pjreddie.com/darknet/yolo/

1 获取数据集

我们如果想尝试不同的训练机制、超参数或数据集,可以从头开始训练YOLO。下面是如何让它在Pascal VOC数据集上训练。
首先下载VOC2007 VOC2012,创建一个目录来存储数据。作者给了以下下代码,如果下载不成功,直接进链接下载。
下载完毕后,在该目录解压,

curl -O https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tarcurl -O https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tarcurl -O https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tartar xf VOCtrainval_11-May-2012.tartar xf VOCtrainval_06-Nov-2007.tartar xf VOCtest_06-Nov-2007.tar

解压完毕后,会在之前建立的目录下生成VOCdevkit/ 目录。

2 生成VOC的Lable

Darknet需要的文件是一个包含着每幅图片信息的txt文件,每一行表示检测目标的grund truth

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

这里的 x, y, width, height是相对于图片的宽高。
获取标签方法是运行 Darknet’s scripts/ voc_label.py,可以下载该文件(就放到之前创建的目录下吧)

curl -O https://pjreddie.com/media/files/voc_label.pypython voc_label.py

不一会儿,这个脚本便会生成所有标签, 所在目录为VOCdevkit/VOC2007/labels/ 和 VOCdevkit/VOC2012/labels/

ls2007_test.txt   VOCdevkit2007_train.txt  voc_label.py2007_val.txt    VOCtest_06-Nov-2007.tar2012_train.txt  VOCtrainval_06-Nov-2007.tar2012_val.txt    VOCtrainval_11-May-2012.tar

其中,2007_train.txt文件列举了2007年的图片数据集,但是呢Darknet只需要一个包含了所有需要训练的图片的txt文件。因此我们把除了2007_test.txt以外的文件统统合成一个train.txt:

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

3修改cfg文件

回到Darknet目录下,找到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

其中的为我们的voc数据集路径。

4下载预训练权重

我们使用在imageNet上训练过的权重,我们只需下载darknet19_448.conv.23

5训练

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

还有一个训练coco的,日后再看,先把voc的搞搞。

Alexey 大神的作品

how-to-train-to-detect-your-custom-objects
里面有各种方法的纵向对比图

【yolo v2】训练自己数据集的一些心得—-VOC格式 by HandsomeHans

使用YOLO训练自己的数据样本经验总结 他用过guanghanning的

原创粉丝点击