编程语言
首页 > 编程语言> > python打乱voc数据集顺序

python打乱voc数据集顺序

作者:互联网

python打乱voc格式深度学习数据集顺序

由于自己制作的深度学习数据集大都是一类一类在一起,可能对训练效果有影响,故需要打乱
本方法针对voc数据集使用,不知道其他格式是否适用
由于本方法是采用文件在文件夹中的索引号进行打乱,务必保证xml和jpg格式的文件是一一对应,一个不多一个不少。
代码如下,只需修改输入路径和输出路径,好用请点个赞!

import numpy as np
import cv2
import os
import random
import xml.etree.ElementTree as ET
//原始图片路径和xml文件路径
image_root = 'C:/Users/Desktop/test/JPEGImages/'
xml_root='C:/Users/Desktop/test/Annotations/'
image_list = os.listdir(image_root)
xml_list=os.listdir(xml_root)
//打乱后的输出图片路径和xml文件路径
image_output = 'C:/Users/Desktop/output/JPEGImages/'
xml_output='C:/Users/Desktop/output/Annotations/'
index = [i for i in range(len(image_list))]
print(len(image_list))
print(len(xml_list))
random.shuffle(index)
a=np.array(index)

num=1
for i in a:
    img_name=image_list[i]
    xml_name=xml_list[i]
    print('修改第', i , '个','   生成第',num,'个')
    img_path = image_root + img_name
    xml_path =  xml_root+xml_name

    I = cv2.imread(img_path)
    xmlDoc = ET.parse(xml_path)
    img_save_path = image_output + str(num) + '.jpg'
    xml_save_path = xml_output+str(num)+'.xml'

    cv2.imwrite(img_save_path, I)
    xmlDoc.write(xml_save_path, 'utf-8', True)
    num+=1

标签:xml,img,voc,python,打乱,list,output,path,image
来源: https://blog.csdn.net/lhkzbc/article/details/115072259