Darknet
框架下
YOLOv3
训练数据集详细训练过程
一、把项目文件(darknet-master,该文件为 yolov4 项目文件,但其中包含
yolov3 相关文件,因此可以用来使用 yolov3 训练自己的数据集)放入下载目录
中
二、默认已编译好,可以使用预训练权重文件(yolov3.weights)检测图片和视
屏文件
使用预训练权重测试:(在 darknet-master 项目文件夹下放入 yolov3.weights 和
yolov4.weights)
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg #v3 测试
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg #v4 测试
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights test.mp4
#v3 测试视屏文件(把 test.mp4 改成自己的视屏文件,下同)
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test.mp4
#v4 测试视屏文件
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test.mp4 -
out_filename xxx.mp4 #v4 保存检测视屏
三、在项目文件下新建文件夹 PascalVOC2012(也可以其他名称,但后面有些
地方要改路径,所以建议使用此名称),在 PascalVOC2012 文件夹下建
VOCdevkit 文件夹,在 VOCdevkit 文件夹下新建名为 VOC2012 的文件夹,然后
在 VOC2012 文件夹下新建 Annotations、JPEGImages、ImageSets 三个文件夹。
在 ImageSets 下新建 Main 文件夹。
Main 文件夹用来存放划分的训练集和验证集。Annotations 用来存放标签文件也
就是存放图像对应的 xml 文件,JPEGImages 存放采集到的所有数据集图片。
四、准备数据图片(以 3 个类为例)
1、样本特点尽量多样化,亮度,旋转,背景,目标位置,尺寸,也就是说采集
数据集图片时要多样化,要获取目标类别不同角度的图片,而且图片中的背景
也要多样化,目标在图片中的相对位置、大小也要多样化,目标的清晰程度也
不要全部一样。还要注意的是尽量采集一些包含两个或两个类以上的图片(这
些类是你所需要训练的类别,这种类型的图片一定要有一些)。
数据采集很重要,会直接影响最终训练效果。总之应根据实际情况尽量做到上
述要求。
2、还有一点就是如果说你要训练 3 个类,你采集到的这些图片可以混合在一
起,但一定要注意的是标签文件名称要和原图名称一一对应。
3、添加没有标注框的图片和其空的 txt 文件,作为 negative 数据(也就是作为
反例,比如你训练 tank,在制作数据集时就要放一些不含有 tank 的图片,如一
张只有卡车或者越野车等等的图片,这是为了告诉你所训练的模型卡车越野车
或者其他一些东西等等不是 tank,如果不这样做的话,等你训练完模型检测的
时候你会发现它把别的东西也会误认为是 tank)。
如何采集 negative 数据?采集多少呢?这就要求我们根据实际情况而定,比如
评论4
最新资源