56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
|
||
import os
|
||
import random
|
||
import argparse
|
||
|
||
parser = argparse.ArgumentParser()
|
||
#xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下
|
||
parser.add_argument('--xml_path', default='paper_data/Annotations', type=str, help='input xml label path')
|
||
#数据集的划分,地址选择自己数据下的ImageSets/Main
|
||
parser.add_argument('--txt_path', default='paper_data/ImageSets/Main', type=str, help='output txt label path')
|
||
opt = parser.parse_args()
|
||
|
||
trainval_percent = 1.0
|
||
train_percent = 0.8
|
||
xmlfilepath = opt.xml_path
|
||
txtsavepath = opt.txt_path
|
||
total_xml = os.listdir(xmlfilepath)
|
||
if not os.path.exists(txtsavepath):
|
||
os.makedirs(txtsavepath)
|
||
|
||
num = len(total_xml)
|
||
list_index = range(num)
|
||
tv = int(num * trainval_percent)
|
||
tr = int(tv * train_percent)
|
||
trainval = random.sample(list_index, tv)
|
||
train = random.sample(trainval, tr)
|
||
|
||
file_trainval = open(txtsavepath + '/trainval.txt', 'w')
|
||
file_test = open(txtsavepath + '/test.txt', 'w')
|
||
file_train = open(txtsavepath + '/train.txt', 'w')
|
||
file_val = open(txtsavepath + '/val.txt', 'w')
|
||
|
||
addtrain_path = r"D:\PycharmProjects\Zhanting\yolov5_1\img_data\getimg_6.30"
|
||
for i in list_index:
|
||
name = total_xml[i][:-4] + '\n'
|
||
addimg_name = name.strip() + ".jpg"
|
||
# print(addimg_name,type(addimg_name),len(addimg_name))
|
||
if i in trainval:
|
||
file_trainval.write(name)
|
||
if i in train:
|
||
file_train.write(name)
|
||
else:
|
||
if addimg_name in os.listdir(addtrain_path):#把某些数据加入训练集中
|
||
print("addimg_name:",addimg_name)
|
||
file_train.write(name)
|
||
else:
|
||
file_val.write(name)
|
||
# file_val.write(name)
|
||
else:
|
||
file_test.write(name)
|
||
|
||
file_trainval.close()
|
||
file_train.close()
|
||
file_val.close()
|
||
file_test.close()
|