Directorio de artículos
prefacio
Este artículo presenta principalmente cómo convertir el conjunto de datos de clasificación de imágenes existente en un conjunto de datos en formato ILSVRC.
1. Conjunto de datos sin procesar
La estructura de datos del conjunto de datos de clasificación original es más o menos la siguiente:
Luego, debajo de los directorios train y val, están las carpetas que nombramos según el nombre de la categoría, como se muestra en la figura: es decir,
se debe cumplir la siguiente estructura:
-数据集
-train
-class1
-class2
...
-val
-class1
-class2
2. Conversión de formato
El código de conversión es el siguiente:
import os
root=""#数据集根目录
class_id={
} #类别对应id的字典,如:{class1:0,class2:1} ,这个一定要记住
def create_txt(filename,mode):
filepath=os.path.join(root,filename)
with open(filepath,"a+") as f:
img_dir=os.path.join(root,mode)
for root1,dirs,files in os.walk(img_dir):
for file in files:
classname=root1.split(os.path.sep)[-1]
imgpath=os.path.join(root1,file)
data=imgpath+" "+str(class_id[classname])+"\n"
f.write(data)
if __name__ == '__main__':
create_txt("val.txt","val") #训练集即为create_txt("train.txt","train")
Después de la ejecución, train.txt y val.txt se generarán en el directorio de estadísticas de train y val, como se muestra en la figura:
la información registrada en él es la ruta de la imagen + id de categoría
Resumir
Lo anterior es todo el contenido de este artículo, si tiene alguna pregunta, bienvenido a comunicarse en el área de comentarios.