(三)使用YOLOv3训练BDD100K数据集之开始训练

目录

  • 1 准备bdd100k.names文件
  • 2 准备bdd100k.names文件准备bdd100k.data
  • 3 准备yolov3-bdd100k.cfg
  • 4 下载ImageNet预训练的网络参数
  • 5 训练模型
  • 6 测试一张图片
  • 7 测试一个视频
  • 8 测试网络摄像头输入
  • 9 中断后继续训练模型

经过前面两篇博客((一)使用YOLOv3训练BDD100K数据集之数据集下载
和(二)使用YOLOv3训练BDD100K数据集之标签格式转换),我们已经准备了BDD100K数据集,并且已经生成了darknet格式的标签,需要的训练集和验证集train.txt和val.txt,现在我们只需要简单地修改几个配置文件就可以开始训练了。

1 准备bdd100k.names文件

在darknet/data/目录下创建文件bdd100k.names,里面存放了每一类的类名,这个将在测试一张图片时在右上角显示一个物体的标签名。文件内容如下(注意顺序要与xml_to_yolo_txt.py文件里面的顺序一致。):

car
bus
person
bike
truck
motor
train
rider
traffic sign
traffic light

2 准备bdd100k.data

在darknet/data/目录下创建文件bdd100k.data,其内容如下,其中classes表示类的数目,train和val表示前一篇文章中生成的train.txt和val.txt的存放路径(相对于darknet安装路径),backup表示训练的yolo权重存放的位置。

classes = 10
train = bdd100k_data/train.txt
valid = bdd100k_data/val.txt
names = bdd100k_data/bdd100k.names
backup = backup/

3 准备yolov3-bdd100k.cfg

在darknet/cfg目录下,创建一个文件yolov3-bdd100k.cfg,里面的内容可以先拷贝yolov3.cfg,在修改以下几个部分:

  • 三处classes=80修改为classes=10
  • 三处filters=255(注意只需要修改[yolo]上面的[convolutional]的filters)修改为filters=45( filters=3*(classes+5) ),如下:

    也可以模仿此处,修改yolov3-tiny.cfg或yolov2.cfg来使用YOLOv3-tiny或YOLOv2模型训练BDD00K

[convolutional]
size=1
stride=1
pad=1
filters=255 # 此处需要修改为filters=45,注意一定要修改[yolo]层前面的第一个[convolutional]
activation=linear
[yolo]
mask = 3,4,5
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=80
num=9
  • 还可以修改batch,subdivisions和max_batches等参数。其中batch表示一个批次训练的图片数目,一个epoch=total_train_images/batch,而subdivisions表示将一个batch分为subdivisions个组进行分别训练,每个组有batch/subdivisions个图片。max_batches表示最大的批次数,而iterations=max_batches/batch。

4 下载ImageNet预训练的网络参数

yolov3默认的训练权重为darknet53,我们可以在darknet路径下打开终端,输入命令下载权重:

wget https://pjreddie.com/media/files/darknet53.conv.74

5 训练模型

输入以下命令,即可开始训练

sudo ./darknet detector train bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg darknet53.conv.74

6 测试一张图片

输入以下命令,即可开始测试模型:

sudo ./darknet detector test bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup  data/000005.png

7 测试一个视频

sudo ./darknet detector demo bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup driving.mp4

8 测试网络摄像头输入

sudo ./darknet detector demo bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg backup/yolov3-bdd100k.backup -c 1

9 中断后继续训练模型

输入以下命令,即可开始测试模型:

sudo ./darknet detector train bdd100k_data/bdd100k.data cfg/yolov3-bdd100k.cfg  backup/yolov3-bdd100k.backup  

你可能感兴趣的:(Jetson,TX2)