Procese su propio conjunto de datos de clasificación en el formato del conjunto de datos ILSVRC


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:
inserte la descripción de la imagen aquí
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,
inserte la descripción de la imagen aquí
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:
inserte la descripción de la imagen aquí
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.

Supongo que te gusta

Origin blog.csdn.net/qq_55068938/article/details/128190471
Recomendado
Clasificación