Faster RCNN 训练自己的数据集


一、 faster rcnn环境搭建
下载源码 https://github.com/rbgirshick/py-faster-rcnn python版本
https://github.com/ShaoqingRen/faster_rcnn Matlab版本
本文介绍matlab版本的配置过程:
1、 在Faster_rcnn-master目录下添加bin文件
2、 在Faster_rcnn-master目录下添加models文件
3、 在external/caffe目录下添加MATLAB文件
4、 添加datasets文件夹,文件夹内为 数据集,可以使用VOC2007或者自己的数据集
5、 如果想直接测试,不需要添加datasets文件夹在Faster_rcnn-master目录下添加output文件,文件为训练好的模型,就可以直接运行experiments/script_faster_rcnn_demo.m,注意:运行时目录应在主目录Faster_rcnn-master下
6、 如果训练VOC2007数据,只需下载VOC2007的数据集,存放在datasets文件夹中,如果训练自己的数据集,则需要把自己的数据集做成和VOC2007相同格式的。
二、 制作数据集
我的数据集的图片格式是png,标记内容存储在txt中,写一个txt到xml格式转换的数据接口。
三、 细节修改
1、 datasets/VOCdevkit2007/VOCcode/VOCinit.m
这里写图片描述
将VOC2007改成自己数据集文件夹的名字
这里写图片描述
图片的格式,因为我的是png格式的所以需要修改,如果自己的数据集和VOC2007的数据集格式相同都是jpg,则不需要修改。
Faster RCNN 训练自己的数据集_第1张图片
修改自己检测目标的类别,比如我只有一类就写一个,类别全写上。类别和文件名一定要和Annotation/**.xml的标记信息里的内容对应,如图中黄色所示,前两个和文件夹名称对应,最后一个对应检测类别。
Faster RCNN 训练自己的数据集_第2张图片
2、 imdb/imdb_from_voc.m
这里写图片描述
改为 imdb.extension=’png’,如果数据集中的图片格式本身是jpg格式,则不需要修改。
3、 VOCdevkit2007/results
在results下新建一个文件夹,名字是“你的数据集的文件夹名”, “你的数据集的文件夹名”下新建一个Main文件夹
4、 VOCdevkit2007/local
在local下新建一个文件夹,名字是“你的数据集的文件夹名”
5、 functions/fast_rcnn/fast_rcnn_train.m
这里写图片描述
可能会在randperm(N,k)出错,建议将val_iters改小,具体数值根据自己的数据集修改,一般为val的1/5
6、 funvtions/rpn/proposal_train.m
这里写图片描述
与5同样的问题
7、 imdb/imdb_eval_voc.m
这里写图片描述
改为:
这里写图片描述
8、 网络模型修改
1)、models/fast_rcnn_prototxts/ZF/train_val.prototxt
Faster RCNN 训练自己的数据集_第3张图片
其中K为类别数,根据K值不同进行修改
Faster RCNN 训练自己的数据集_第4张图片
Faster RCNN 训练自己的数据集_第5张图片
2)、models/fast_rcnn_protoxtxs/ZF/test.prototxt
Faster RCNN 训练自己的数据集_第6张图片
3)、models/fast_rcnn_prototxts/ZF_fc6/train_val.prototxt
Faster RCNN 训练自己的数据集_第7张图片
Faster RCNN 训练自己的数据集_第8张图片
4)、models/fast_rcnn_prototxts/ZF_fc6/test.prototxt
Faster RCNN 训练自己的数据集_第9张图片
最后在训练之前把output文件夹删除,把imdb/cache文件删除
9、 训练:
Experiments/script_faster_rcnn_VOC2007_ZF.m
训练完后
将output/faster_rcnn_final/faster_rcnn_VOC2007_ZF/detection_test.prototxt进行修改,将relu5(包括relu5)前的层删除,并将roi_pool5的bottom改为data和rois,将input“data”下的input_dim分别改为1,256,50,50(VGG为1,512,50,50),如图所示

这里写图片描述
Faster RCNN 训练自己的数据集_第10张图片
10、 测试
Experiments/script_faster_rcnn_demo.m 运行
注意将调用的模型和图片改为自己的,然后根据自己数据集的需要进行调参已达到最好的结果。
参考博客:http://blog.csdn.net/sinat_30071459/article/details/50546891

你可能感兴趣的:(实验部分)