准备数据集:
1.生成新的imagelist
2.改变SelectImagesParsingXML()中if objectsize / imagesize >= 0.9这一句的参数来选择bounding box比例不一样的图像,保存在imagelist中。
3.运行上述程序。
4.在VOCdevkit中新建文件夹,如VOC0002,并在其中添加5个文件夹,分别是:
Annotations,ImageSets,JPEGImages,SegmentationClass,SegmentationObject。
5.修改SelectImagesToDirectory()函数中保存文件的位置,将上述imagelist中的图像及其标注复制到对应的文件夹中。有两个地方需要改动,如改成VOC0002。
还要改变对应的imagelistDIR = [tmp '/imagelist_0.95_201.txt'];的imagelist的文件名字。这里表示imagelist中阈值设置为0.95时有201幅图像被选出。
7.准备trainval.txt,和train和val.txt。(注意应提前复制和准备好空文件,存放在experiment/VOCdevkit/VOC2002/ImageSets/Main文件夹下。
6.运行上述程序。程序的第一部分将image和annotation复制到文件夹中,第二部分生成对应的trainval.txt。
7.得到trainval.txt后,使用SplitTrainVal()将其随机分成两个集合,train和val。修改文件夹中的VOC0002即可。运行上述程序。
8.数据准备完毕,进入训练程序文件夹:~/experiment/mycode/voc-release4.01,比如说要运行pascal(‘person’,3);那么还需要改几个地方:
1.globals.m中的 VOCyear = '0002';需要修改
2.由于pascal_init.m中:
tmp = pwd;
cd(VOCdevkit);
addpath([cd '/VOCcode']);
VOCinit;
cd(tmp);
运行了VOCdevkit中VOCcode里的VOCinit,而其中包含了解析VOCopts的重要初始化内容,如果不改变会影响到后面的训练完全错误。
需要将VOCopts.dataset = 'VOC0001';中文件夹进行指定修改。
9.运行pascal(‘person’,3);注意应到mycode/voc-release4.01这个目录下。
运行1:
2.
3.阈值0.95,共201幅图像进行训练。