VOC2007数据集制作与训练自己的数据

1. VOC2007数据集的格式

JPEGImages文件夹:该文件夹里包含了训练用的图像以及测试用的图像,混合存放在一起;

Annatations文件夹:该文件夹存放xml格式的标签文件,每个xml文件都对应于一张JPEGImages文件夹中的图像;

ImageSets文件夹:Action文件夹:存放的是人的动作,可以暂时不用;Layout存放的是人体部位的数据,可以暂时不用;Main存放的是图像物体识别的数据,可详见下面的解释;Segmentation:存放可用于分割的数据;

其他文件夹:其他分割用途


2. 数据的制作

1)将所有图像文件命名为000001.jpg格式的文件名,并存放到JPGEImages文件夹中;其实,文件名不一定非要从000001开始往下排,文件名的长度也可以不一样

2)使用LabelImiage软件,将图像做标记,并生成相应的xml文件,将所有的标记xml文件存放到Annatations文件夹中;注意xml文件的文件名一定要与jpg图像文件名相一致

3)利用python代码向ImageSets中Main文件夹中写入数据:trainval.txt;test.txt;train.txt;val.txt

其中,txt文件中的信息为图像的名字,无后缀无空格;

test.txt是测试集;train.txt是训练集;val.txt是验证集;trainval.txt是训练和验证集

VOC2007中,trainval大概是整个数据集的50%,test也大概是整个数据集的50%;train大概是trainval的50%,val大概是trainval的50%

3. 训练自己的数据

在制作好以上格式的数据之后,需要对代码进行修改才可以让Faster R-CNN学习自己的数据并进行识别。

修改为:pascal_voc.py文件 class pascal_voc中,__init__函数的self._classes;将自己的类别添加进去,并删除原有的VOC类别。这里,程序会根据classes的keyValue个数自动设置classes的数目:num_classes,所以其他地方不需要修改;如果想修改读取数据的路径等,可以修改self._devkit_path以及self._data_path,另外还有一处文件路径需要修改,暂时忘了要在哪里改了(下次Debug的时候再补充)

修改完成后,一定要删除data文件夹中的cache缓存文件,否则会出现imread错误等现象的发生

完成以上工作之后,在终端中运行python train.py,就可以执行训练程序了,在执行训练程序的时候,有很多断点等莫名的问题出现,此时需要考虑自己的数据中目标物的尺度、图像的尺度等是否符合Faster RCNN的默认条件,如果不符合,则需要在config.py中对RPN相关参数进行适当的修改,另外还要注意layer_utils文件夹中的nets/network.py中261行的create_architecture中所定义的输入参数achor_scales以及achor_ratios的设置。具体每个参数的解释需要详细的研究。

不管怎样,首先开始训练吧

参考:http://blog.csdn.net/gaohuazhao/article/details/60871886

批量修改文件夹JPEGImages中图片的名字:

http://blog.csdn.net/gaohuazhao/article/details/60324715

你可能感兴趣的:(VOC2007数据集制作与训练自己的数据)