訓練自己數據-xml文件轉voc格式


首先我們有一堆xml文件 筆者是將mask-rcnn得到的json標注文件轉為xml的

批量json轉xml方法:https://www.cnblogs.com/bob-jianfeng/p/11122135.html

現在我們訓練faster-rcnn或者yolo都需要pascal voc格式的數據

所以我們的任務是將xml轉為voc訓練格式

voc格式目錄如下:

VOCdevkit
——VOC2018 #文件夾的年份可以自己取,但是要與你其他文件年份一致,看下一步就明白了
————Annotations #放入所有的xml文件
————ImageSets
——————Main #放入train.txt,val.txt文件
————JPEGImages #放入所有的圖片文件

Main中的文件分別表示test.txt是測試集,train.txt是訓練集,val.txt是驗證集,trainval.txt是訓練和驗證集,反正我只建了兩個
所以新建這幾個文件夾 並將原圖放入JPEGImages  xml文件放入Annotations  接着生成train.txt和val.txt 

生成Main中的txt代碼 :(我們按照1:3的比例分為訓練和驗證)

 1 import os
 2 from os import listdir, getcwd
 3 from os.path import join
 4 
 5 if __name__ == '__main__':
 6     source_folder =r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all\VOC2018\JPEGImages'
 7     dest = r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all/VOC2018/ImageSets/Main/train.txt'
 8     dest2 = r'G:\jianfeng\project\rubblish_det\source\train_pic_json\voc_all/VOC2018/ImageSets/Main/val.txt'
 9     file_list = os.listdir(source_folder)
10     train_file = open(dest, 'a')
11     val_file = open(dest2, 'a')
12     i=0
13     for file_obj in file_list:
14         file_name, file_extend = os.path.splitext(file_obj)
15 
16         if (i%4 ==0):
17             val_file.write(file_name + '\n')
18         else:
19             train_file.write(file_name + '\n')
20         i+=1
21     train_file.close()
22 val_file.close()

然后完成了voc格式制作 接着可以訓練你的數據了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM