Yolo:实时目标检测实战(下)

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  = <path-to-voc>/train.txt

  3 valid  = <path-to-voc>2007_test.txt

  4 names = data/voc.names

  5 backup = backup

您应该将<path to voc>替换为放置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  = <path-to-coco>/trainvalno5k.txt

  3 valid  = <path-to-coco>/5k.txt

  4 names = data/coco.names

  5 backup = backup

您应该用放置coco数据的目录替换<path to coco>。             

您还应该修改模型cfg以进行训练,而不是测试。cfg/yolo.cfg应该如下所示:

[net]

# Testing

# batch=1

# subdivisions=1

# Training

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}

}

posted @ 2020-04-26 19:38  吴建明wujianming  阅读(351)  评论(0编辑  收藏  举报