YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改

这里要训练一下自己的数据,这里介绍了除了数据集之外的操作。

1.生成darknet.exe

之前训练数据生成darknet.exe文件的时候都会把之前配置opencv、CUDA的那些什么库目录什么的全都加上,后来发现 没必要 。Visual studio中,darknet.sln文件的各项属性及其配置如下。
选择 ** Release 64*
配置下述包含目录等是右击下图中蓝色的那行 darknet,选择属性。图中的代码不用在意。
YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第1张图片

YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第2张图片

包含目录YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第3张图片
库目录
YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第4张图片
附加依赖项
YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第5张图片之后依然是右击darknet选择生成,等待生成darknet.exe.
总结

  • 上述相当于在darknet.sln中附加上opencv的相关内容
  • opencv之所以这样命名,是因为在darknet.vcxproj中看到了这种代码所以安装opencv时选择了图中文件名字及位置

2.下载相关权重文件

从这个网址下载darknet53.conv.74文件 https://github.com/AlexeyAB/darknet#how-to-train-pascal-voc-data

下载好之后将该文件放在\darknet-master\build\darknet\x64文件夹下。这个文件是用自己的数据进行训练所必须的。

从 https://github.com/AlexeyAB/darknet#pre-trained-models 里下载yolov3.weights文件,之后将文件放置在\darknet-master\build\darknet\x64目录下, 这个时候就可以双击该目录下的 darknet_yolov3.cmd文件检验一下效果了。

3.修改相关文件

1)yolo-obj.cfg

从 darknet-master\build\darknet\x64\cfg目录下复制yolov3.cfg到\darknet-master\build\darknet\x64目录下,重命名为yolo-obj.cfg,这个文件可以用记事本打开,我用的Notepad++,并做如下修改

  1. 要先用于训练,所以注释掉”Testing”之后的两行,保留”Training”下面的两行。
  2. batch设为64,意为一个批次处理64张图片,每处理这样一个批次会更新一次参数,也就是64个样本会更新一次参数,也可以设为32、16等,但不能为1 ,否则无法收敛
  3. subdivisions设为64,意为将一个批次划分为64份,一份一份的送入训练器中进行处理,减轻GPU压力。也可以设为32、16等,但一定要小于或等于batch值,并不能同时为1,否则无法收敛
  4. max_batches 为最大迭代次数,推荐为训练类别的2000倍
  5. 推荐 steps设为max_batches的 80% 和 90% ,这个是学习率发生变化时的迭代次数
  6. 将文件中所有的 classes改为所要训练数据的类别数,共有三处,可用记事本–编辑-替换 功能替换
  7. 将每个[yolo]层上的filters=255改为filters=(classes + 5)x3,不是改为这行式子,是改为算出来的这个数值,共有3处
  8. 如果担心电脑带不动,可以将random=0,关闭多尺度训练

2)obj.names

在build\darknet\x64\data\目录下新建obj.names文件,可以新建一个记事本文件再更改后缀及名字,里面依次输入训练的类别名,一个类别一行

3)obj.data

和上面同一目录下,新建obj.data文件,内容参考下图
YOLO V3 学习笔记 (三)训练自己的数据 darknet文件中的修改_第6张图片
backup指示的是训练生成权重文件会放置的文件夹

你可能感兴趣的:(yolo学习笔记)