【YOLO初探】之 keras-yolov3训练自己数据集

写在前面

如何使用官方数据集参看上一篇文章《【YOLO初探】之 使用官方数据集做目标分类》

传送门:https://blog.csdn.net/plSong_CSDN/article/details/85108256

这里,笔者使用了260张训练数据,完成了人脸中“眼睛”、“鼻子”、“嘴巴”的检测,可以成功检测出,虽效果不是很好,但是起码方法是对的,特在此与与大家分享、在文章末尾完全共享了自己的数据集!

大家还是先看一下效果吧,宅男女神上场~~~

原图
效果图

第一步:准备自己数据集

当然是准备一下自己的原材料。

1)下载VOC2007数据集,注意,请把文件夹里面的所有文件,注意是文件,一个不留的删除,只保留文件夹框架,可以完成后可以检查一下,文件夹的大小是不是0。

2)将只保留文件夹的VOC2007数据集放在keras-yolo3-master文件夹下一级目录下,这样可以不用修改下面程序的路径。如下,

3)将自己所有的图片拷贝到”……\keras-yolo3-master\VOCdevkit\VOC2007\JPEGImages“文件目录下,最好都是jpg格式,至于为什么,笔者未深究,待后续继续学习。

好了,下一步就可以进行图片的标记工作了。

第二步:数据标记

1)准备标记工具。使用LabelImg ,大家注意,需要把”“data\predefined_classes.txt”文件中的内容修改为自己类比,如下,我这里是三类。

2)打开abelImg.exe,如果打开失败,可以尝试“管理员身份运行”。选择“Open Dir”浏览到”……\keras-yolo3-master\VOCdevkit\VOC2007\JPEGImages“。如下,

标记时常用的几个快捷键,“w”:激活标记框;“d”:下一张图片;“a”:上一张图片。

标记完成后,将生成的“XML”文件,拷贝到“……\keras-yolo3-master\VOCdevkit\VOC2007\Annotations”中。

3)将“test.py”文件拷贝到“……\keras-yolo3-master\VOCdevkit\VOC2007”,运行,在“……\keras-yolo3-master\VOCdevkit\VOC2007\ImageSets\Main”文件夹下,自动生成生成test.txt、train.txt、trainval.txt、val.txt文件


第三步:生成yolo3所需的train.txt,val.txt,test.txt

运行voc_annotation.py文件,注意在训练自己的数据集时,需要将里面的classes换成自己的,例如,“classes = ["eye", "nose", "mouth"]”,其他的不需要改变。

在“……\keras-yolo3-master\目录下生成的三个以“2007_”打头的txt文件,手动删掉“2007_”。


 第四步:修改参数文件yolo3.cfg

大家注意,需要修改的地方一共是三处,每一处都要修改三个地方。

                                    filters:3*(5+len(classes));

                                    classes: len(classes) = 3,这里是"eye", "nose", "mouth"三类

                                    random:改为0

[convolutional]
size=1
stride=1
pad=1
filters=24#这里
activation=linear


[yolo]
mask = 6,7,8
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=3#这里
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=0#这里

第五步:修改model_data

修改“……\keras-yolo3-master\model_data”目录下的“coco_classes.txt、voc_classes.txt”这两个文件,将自己类别填入进去。

第六步:开始训练

在“……\keras-yolo3-master”建一个“\keras-yolo3-master\logs\000”文件夹,用来存放训练完成的权重文件

原始的batch_size = 10,我这里显存不够,会失败,我是修改到了batch_size = 2,epochs=200,大概用了6~7小时完成训练;

loss在20左右,

第七步:测试

1)将训练完成的权重文件,D:\cv_project\Fivesenses\keras-yolo3-master\logs\000目录下的trained_weights.h5,修改名称为“yolo.h5”,拷贝到“……\keras-yolo3-master\model_data”目录下。

2)在“……\keras-yolo3-master\”目录下放一个测试图片,运行yolo.py,会提示输入图片,

3)运行yolo_video.py,可以调用摄像头进行测试,我这边效果不是很好,可能是处理的速度的问题,后续在进行研究。

最后

资源下载地址:

第一部分:https://download.csdn.net/download/plsong_csdn/10868634

第二部分:https://download.csdn.net/download/plsong_csdn/10868639

第三部分:https://download.csdn.net/download/plsong_csdn/10868657

说明,上面的资源“第一部分”“第二部分”就可以直接运行,“第三部分”是自己训练数据时候需要的内容。

完整的截图:

本人也是刚刚开始学习yolo,欢迎大家交流学习,[email protected]


★finished by,songpl,2018.12.22.今天冬至

猜你喜欢

转载自blog.csdn.net/plSong_CSDN/article/details/85194719