将自己的数据制作成voc格式
VOCdevkit2007文件下只保存VOC2007,VOC2007下只保存Annotations ImageSets JPEGImages。
JPEGImages存放所有的图片数据(即训练测试验证的图片都在里面),注意图片名字不再是原本图片名字,而是000001这种6位编号,制作过程中需要将所有图片名字进行转换
Annotations存放所有图片的xml数据,名字同JPEGImages一样
ImageSets里存放train.txt val.txt trainval.txt test.txt,文件里面是图片的编号,trainval.txt是train和val的编号之和。这个时候需要打乱图片顺序,就可以从这一步实现
代码如下:
import random image_index = [] for i in range(1,9213): i = "%06d"%(i) image_index.append(i) random.shuffle(image_index) for x in image_index: print x f1 = open('/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/train.txt','w') f2 = open('/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/val.txt','w') f3 = open('/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt','w') f4 = open('/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/test.txt','w') for i in range(6000): f1.write(str(image_index[i])+'\n') for i in range(6000,7000): f2.write(str(image_index[i])+'\n') for i in range(7000): f3.write(str(image_index[i])+'\n') for i in range(7000,9212): f4.write(str(image_index[i])+'\n')
这个是python格式化输入,和c c++一样的格式化输入