1.制作自己的数据集:(仿VOC2007数据集)
在文件夹 “faster_rcnn-master\制作自己的数据集” 下操作
<步骤>:
①图片批量重命名
②手动框定目标,生成txt文件,包括:图片名,类别标签,左上角坐标,右下角坐标(有时候也可能是左下角,右上角)
③制作xml文件
④制作4个txt文件:train.txt test.txt val.txt trainval.txt
<实现方法>(所有实现环境均在win7下):
①使用小咸鱼博主http://blog.csdn.net/sinat_30071459/article/details/50723212的方案,在文件夹“1_小咸鱼博主-csdn\VOC2007”。
1.批量重命名,运行VOC2007rename.m
img文件夹下,应还有一个子文件夹存放图片,例:.\img\BirdCat\000003.jpg (命名最好还是6位,4位的话尝试过,程序报错不知道是不是这个原因)
2.目标框定并生成output.txt
a.在文件夹“.\lbimg_ver2”下,内附word使用说明。
b.cmd操作:(不要&)
& cd.\VOC2007\lbimg_ver2 (应是.exe完整路径,这里简写)
&LabelPicture.exe .\VOC2007\img\BirdCat (应是存放图片的完整路径)
c.对每张图片手动框定目标后,生成的output.txt保存在BirdCat的文件夹下,格式例:000003.jpg cat 26 75 130 156
3.生成xml,运行VOC2007xml.m
改路径,生成的xml文件保存在Annotations文件夹里。
4.生成txt,运行VOC2007txt.m
改路径,生成的txt文件保存在.\ImageSets\Main 文件夹
test.txt (占全部样本数量的50%)
trainval.txt (50%)
train.txt (25%)
val.txt (25%)
5.准备与VOC2007格式相同的数据集
此时VOC2007文件夹下,存放的是我们需要的三个文件夹:
Annotations
ImageSets
JPEGImages
②使用“2_VOC2007样本制作工具-exe全套”文件夹-----用这个!!
优点:简单暴力,制作数据集时自己真正使用的就是这个工具,直接生成VOC2007相同格式的数据集
缺点:跳过output.txt这个步骤,故没有output.txt这个文档。
运行.\bin文件夹下的VOCdate.exe,
a.打开图片存放的文件夹.\img\test,进行重命名操作;
b.然后选中每张图片进行目标框定,该文件夹下会生成相应的xml文件;
c.选中文件夹,点击“生成VOC样式”,生成的文件夹faster_rcnn_VOC_ZF_2017_0914存放在.\img下,这正是最终我们所需要的:Annotations, ImageSets,JPEGImages
2.训练自己的数据集
<步骤>
①自行下载好VOCdevkit2007,解压在.\faster_rcnn-master\datasets文件夹下;
②将.\VOCdevkit2007\VOC2007 文件夹清空,将制作好的数据集(Annotations,ImageSets,JPEGImages)拷贝进来。
③进行.m文件和网络模型的修改,参照小咸鱼 http://blog.csdn.net/sinat_30071459/article/details/50546891
④运行.\experiments\script_faster_rcnn_VOC2007_ZF.m(在win10+GTX1060环境下,大概5个小时)---ps:大家时间都这么久吗?隐隐觉得哪里不对
遇到bug:错误使用proposal_prepare_image_roidb>scale_rois (line 110)
两个输入数组的单一维度必须相互匹配
解决方法,参照:http://www.cnblogs.com/zjutzz/p/5983160.html(一定记得清除.\faster_rcnn-master\imdb\cache 文件夹里的文件)
3.测试:
①打开faster_rcnn-master\experiments\script_faster_rcnn_demo.m,修改路径为:
model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC2007_ZF')
②将测试图片放在该路径下 faster_rcnn-master\output,再将script_faster_rcnn_demo.m中测试图片名字改成自己的图片名:
im_names = {'000001.jpg', '000002.jpg', '000003.jpg'};
③运行script_faster_rcnn_demo.m,得到检测结果。