环境:windows10 +gpu1060+CUDA7.5+cudnn7.5
训练样本:600 张车位图像,
1、先用重命名软件,将图像命名为 00000.jpg,00001jpg 形式,这是
会生成 train.txt 文件
内容为图像标号,不带.jpg,这个留着放到后面
2、然后用 labelImg 工具截车辆和人,只有两类
上图截了三辆车,完成后生成 xml 文件如下 有三个 objetc
tests
00000
E:/Projects/Detect/traindatamaker/labelImg-master/tests/00000.
jpg
Unknown
2304
1296
3
0
在 ImageSets 下建立以下文件夹
类似这样的布局
把原始训练样本放在 JPEGImages 下,重命名生成的 train.txt 放在 Main
文件夹下
4、批量修改 XML 文件内容,对
00000里面的标
号,加上.jpg
批量操作,在 linux 中用下面命令完成
find -name '*.xml' |xargs perl -pi -e 's||.jpg|g'
外
此
E:/Projects/Detect/traindatamaker/labelImg-master/tests/00000.
jpg
绝对路径修改为现在原始图像所在绝对路径,即在 JPEGImages 下的
路径,同样的命令,注意如果有反斜杠,则要再加一个斜杠,不然 linux
下会提示找不到字符串。
find -name '*.xml' |xargs perl -pi -e 's|E://Projects//Detect//traindatama
ker//labelImg-master//tests|。。。//JPEGImages|g'
注:这里如果在制作 xml 文件时就下建立上面的文件夹,并把原始图
像放入 JPEGImage 中,则生成的 xml 文件里的绝对路径就不用改了
修改好后把 xml 文件复制到 Annotations 下。
5、打开 scripts 文件夹下的 voc_label.py 文件,
因为里面的路径和文件名等参数都在前面设置好了,所以不用修改,
只修改 sets 和 classes 的内容,把两类名称留下,其他删了,sets 里
面是和后面生成的 txt 的文件名相关的,也和建立的文件夹相关。
如果你原始图像和后面要生成的那些 tex 文件要放在自己的路径上,
则可以修改下面的一些路径名称。
6、在 scripts 文件夹下按住 shift+右键选择在此处打开命令窗口,运行
python voc_label.py,如果缺少一些命令,可能没装,一般要先装
Anaconda,没有的就安装更新,运行完上面的命令后会在 scripts 文
件夹下生成 2007_train.txt,里面是训练样本的绝对路径
在上面建立的 labels 文件夹中生成
7、在 darknet-master\build\darknet\x64 路径下对 yolo-voc.2.0.cfg 进行
修改
主要设置
Batch 每次训练 batch 张图像后更新参数,
Subdivisions 把 batch 分成 Subdivisions 份进行训练
max_batches 最大迭代次数,即训练几次 batch,一般设置好几万
当然学习率那些都可以改
还有最后
[convolutional]
size=1
stride=1
pad=1
filters=35//原来 125
activation=linear
[region]
anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
bias_match=1
classes=2//原来 20
coords=4
num=5
softmax=1
jitter=.2
rescore=1
object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1
absolute=1
thresh = .6
random=0
原来 classes = 20,现在改为 2,原来 filters= 125,现在改为 35,计算
公式(classes + 4 +1)*5
8、修改 build\darknet\x64\data 下的
两个文件
train 即刚才生成的 2007_train.txt 的绝对路径
没有用到 valid,即所有图像都拿来训练,没有验证,所有注释掉
Names 就是 voc.names 文件路径
Backup 即后面训练要存储的路径
Voc.names 即只留下两类的名称
9、在 build\darknet\x64 下建一个 cmd 文件
内容为
detector
darknet.exe
darknet19_448.conv.23
Pause
darknet19_448.conv.23 可以从网上下载,是一个已经训练好的模型,
相当于我们在此模型上 fine tune。
这样基本设置完毕,运行 cmd 文件开始训练。
yolo-voc.2.0.cfg
train
data/voc.data