создание папки labels.csv из локального набора данных - PullRequest
0 голосов
/ 21 июня 2020

У меня есть набор данных на моем диске, который разделен на папки для каждого класса. Я хочу создать файл .csv с именем каждого изображения и соответствующего родительского файла, известного как метка.

это то, что у меня есть до сих пор

import cv2
import os
import glob
import pandas as pd

name_list = []
label_list = []

img_dir = './content/My Drive/Colab Notebooks/DRS/' #Directory of all images 
file_path = os.path.join(img_dir,'no DR', 'Mild NPDR', 'Moderate NPDR', 'Severe NPDR', 'PDR')
files = glob.glob(data_path)
data = []

for file in files:
  label_list.append(img_dir)
  name_list.append(file)
   
    
df1 = pd.DataFrame(name_list,columns=['image'])
df2 = pd.DataFrame(label_list,columns=['label'])

result = pd.concat([df1, df2], axis=1)
result
result.to_csv('./content/My Drive/Colab Notebooks/DRS/labels.csv', index = False)

проблемы, которые у меня есть заключаются в том, что мне не нужен полный путь к изображению, просто imagename.jpg, и независимо от того, что я делаю, метки отображаются как './content/My Drive / Colab Notebooks / DRS /'

это один из моих первых проектов глубокого обучения, поэтому я не очень хорошо знаком с методами

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Я бы перечислил каталог с помощью os.listdir() и сделал бы CSV с pandas:

import os
import pandas as pd

os.chdir(r'cats_and_dogs_dataset')

folders = ['dogs', 'cats']

files = []

for folder in folders:
    for file in os.listdir(folder):
        files.append([file, folder])

pd.DataFrame(files, columns=['files', 'target']).to_csv('files_and_targets.csv')

CSV будет выглядеть так:

              file target
0     dog.4001.jpg   dogs
1     dog.4002.jpg   dogs
2     dog.4003.jpg   dogs
3     dog.4004.jpg   dogs
4     dog.4005.jpg   dogs
0 голосов
/ 21 июня 2020

Вы можете использовать filename_sting.split('/') для создания вектора с именем файла, разделенным символом '/'. Например: "/home/usr/test.txt".split() = ['','home','usr','test.txt'] Затем вы можете выбрать, какие части использовать, и снова сложить их.

Изменить:

Думаю, я неправильно понял. Вам нужно имя файла, но вы только добавляете путь, который вы указали выше, в label_list. Вероятно, вы захотите использовать name_list' instead of the 'label_list

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...