首先我们有一堆xml文件笔者是将mask-rcnn得到的json标注文件转为xml的
批量json转xml方法:https://www.cnblogs.com/bob-jianfeng/p/11122135.html
现在我们训练faster-rcnn或者yolo都需要pascalvoc格式的数据
所以我们的任务是将xml转为voc训练格式
voc格式目录如下:
VOCdevkit
——VOC2018#文件夹的年份可以自己取,但是要与你其他文件年份一致,看下一步就明白了
————Annotations#放入所有的xml文件
————ImageSets
——————Main#放入train.txt,val.txt文件
————JPEGImages#放入所有的图片文件
Main中的文件分别表示test.txt是测试集,train.txt是训练集,val.txt是验证集,trainval.txt是训练和验证集,反正我只建了两个
所以新建这几个文件夹并将原图放入JPEGImagesxml文件放入Annotations接着生成train.txt和val.txt
生成Main中的txt代码:(我们按照1:3的比例分为训练和验证)
1importos
2fromosimportlistdir,getcwd
3fromos.pathimportjoin
4
5if__name__=='__main__':
6source_folder=r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all\VOC2018\JPEGImages'
7dest=r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all/VOC2018/ImageSets/Main/train.txt'
8dest2=r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all/VOC2018/ImageSets/Main/val.txt'
9file_list=os.listdir(source_folder)
10train_file=open(dest,'a')
11val_file=open(dest2,'a')
12i=0
13forfile_objinfile_list:
14file_name,file_extend=os.path.splitext(file_obj)
15
16if(i%4==0):
17val_file.write(file_name+'\n')
18else:
19train_file.write(file_name+'\n')
20i+=1
21train_file.close()
22val_file.close()
然后完成了voc格式制作接着可以训练你的数据了
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54712.shtml