Pascal VOC数据集介绍:
└── data #数据集名字 ├── Annotations # 存放xml标注文件,与JPEGImages中的图片一一对应 ├── ImageSets # 该目录下存放的都是txt文件,txt文件中每一行包含一个图片的名称 │ ├── Main # 存放的是图像物体识别的数据,分为20类 │ └── trainval.txt # train与val的合集 │ └── test.txt # 用于测试的图片名称 ├── JPEGImages # 存放源图片
根据Annotations里面的xml标注文件,随机生成trainval.txt和test.txt,生成比例可自行调整。
# data_path为数据集路径,trainval_percent为训练验证集的比例 def get_txt(data_path,trainval_percent): print(data_path) xml_path = data_path+'/Annotations' print(xml_path) txt_path = data_path+'/ImageSets/Main' total_xml = os.listdir(xml_path) num = len(total_xml) list = range(num) tv = int(num * trainval_percent) trainval = random.sample(list, tv) ftrainval = open(os.path.join(txt_path+'/trainval.txt'), 'w') ftest = open(os.path.join(txt_path+'/test.txt'), 'w') for i in list: name = total_xml[i][:-4] + '\n' if i in trainval: ftrainval.write(name) else: ftest.write(name) ftrainval.close() ftest.close()