Yolo:实时目标检测实战(下)
YOLO:Real-Time Object
Detection
After a few minutes, this script will
generate all of the requisite files. Mostly it generates a lot of label files
in VOCdevkit/VOC2007/labels/ and VOCdevkit/VOC2012/labels/. In your directory
you should see:
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
文本文件如2007_train.txt列出了当年的图像文件和图像集。Darknet需要一个文本文件,其中包含所有要训练的图像。在这个例子中,让我们训练除了2007测试集之外的所有东西,以便我们可以测试我们的模型。运行:
cat 2007_train.txt 2007_val.txt 2012_*.txt
train.txt
现在我们把2007年的trainval和2012年的trainval都列在一个大名单上。这就是我们要做的数据设置!
修改Pascal数据的Cfg
现在找到你的darknet 目录。我们必须更改cfg/voc.data配置文件以指向您的数据:
1
classes= 20
2
train = /train.txt
3
valid = 2007_test.txt
4
names = data/voc.names
5
backup = backup
您应该将 替换为放置voc数据的目录。
下载预训练卷积权重
对于训练,我们使用在Imagenet上预先训练的卷积权重。我们使用darknet53模型的权重。你可以在这里下载卷积层的权重(76MB)。
wget https://pjreddie.com/media/files/darknet53.conv.74
训练模型
现在我们可以训练了!运行命令:
./darknet detector train cfg/voc.data
cfg/yolov3-voc.cfg darknet53.conv.74
在COCO上训练YOLO
如果你想使用不同的训练模式、超参数或数据集,你可以从头开始训练YOLO。下面是如何让它在COCO数据集上工作。
获取COCO数据
为了训练YOLO,你需要所有的COCO数据和标签。脚本scripts/get_coco_dataset.sh将为您执行此操作。找出要将COCO数据放在哪里并下载它,例如:
cp scripts/get_coco_dataset.sh data
cd data
bash get_coco_dataset.sh
现在您应该拥有为Darknet生成的所有数据和标签。
修改COCO的cfg
现在找到的darknet目录。我们必须更改cfg/coco.data配置文件以指向您的数据:
1 classes= 80
2
train =
/trainvalno5k.txt
3
valid = /5k.txt
4
names = data/coco.names
5
backup = backup
您应该用放置coco数据的目录替换 。
您还应该修改模型cfg以进行训练,而不是测试。cfg/yolo.cfg应该如下所示:
[net]
batch=64
subdivisions=8
…
训练模型
现在我们可以训练了!运行命令:
./darknet detector train cfg/coco.data
cfg/yolov3.cfg darknet53.conv.74
如果要使用多个GPU运行:
./darknet detector train cfg/coco.data
cfg/yolov3.cfg darknet53.conv.74 -gpus 0,1,2,3
如果要从检查点停止并重新开始训练:
./darknet detector train cfg/coco.data
cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3
开放图像数据集上的YOLOv3
wget
https://pjreddie.com/media/files/yolov3-openimages.weights
./darknet detector test cfg/openimages.data
cfg/yolov3-openimages.cfg
yolov3-openimages.weights
老YOLO怎么了?
如果您使用的是YOLO版本2,您仍然可以在这里找到网站:
https://pjreddie.com/darknet/yolov2/
引用
如果你在工作中使用YOLOv3,请引用我们的论文!
@article{yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal = {arXiv},
year={2018}
}