import glob
xml_paths = glob.glob('/home/yons/data/kedaxunfei/x-ray/coco-format/xmls/*.xml')
from random import shuffle
from myutils.transvert import xml2coco
shuffle(xml_paths)
total_number = len(xml_paths)
index = list(range(total_number))
class_names = ['knife', 'scissors', 'lighter', 'zippooil', 'pressure', 'slingshot', 'handcuffs', 'nailpolish', 'powerbank', 'firecrackers']
for fold in range(5):
val_index = index[total_number*fold//5:total_number*(fold+1)//5]
train_index = list(set(index) - set(val_index))
json_path = '/home/yons/data/kedaxunfei/x-ray/coco-format/fold{}/instances_train2017.json'.format(fold)
xml2coco([xml_paths[i] for i in train_index], json_path, class_names)
json_path = '/home/yons/data/kedaxunfei/x-ray/coco-format/fold{}/instances_val2017.json'.format(fold)
xml2coco([xml_paths[i] for i in val_index], json_path, class_names)
代码还算清楚,中间的
val_index = index[total_number*fold//5:total_number*(fold+1)//5]
train_index = list(set(index) - set(val_index))
比较巧妙