Processe seu próprio conjunto de dados de classificação no formato do conjunto de dados ILSVRC


prefácio

Este artigo apresenta principalmente como converter o conjunto de dados de classificação de imagem existente em um conjunto de dados no formato ILSVRC


1. Conjunto de dados brutos

A estrutura de dados do conjunto de dados de classificação original é aproximadamente a seguinte:
insira a descrição da imagem aqui
Em seguida, sob os diretórios train e val estão as pastas que nomeamos após o nome da categoria, conforme mostrado na figura: ou seja, a
insira a descrição da imagem aqui
seguinte estrutura precisa ser satisfeita:

-数据集
    -train
        -class1
        -class2
        ...
    -val
        -class1
        -class2
        

2. Conversão de formato

O código de conversão é o seguinte:

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")
    

Após a execução, train.txt e val.txt serão gerados no diretório de estatísticas de train e val, conforme a figura:
insira a descrição da imagem aqui
a informação gravada nele é o caminho da imagem + id da categoria


Resumir

O texto acima é todo o conteúdo deste artigo, se você tiver alguma dúvida, seja bem-vindo para se comunicar na área de comentários

Acho que você gosta

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