Я хочу сопоставить изображения (массивы данных изображений) с метками, а (имена изображений + метки) находятся в файле CSV. Файл имеет типы файлов jpg и jpeg. Я написал для этого простую функцию, но она занимает довольно много времени.
Вот мой сценарий:
def map_data():
import pandas as pd
import glob
import time
import cv2
tot_time = time.time()
df = pd.read_csv('dataset.csv')
labeled_set = []
for f in glob.glob('Processed/*.jp*'):
try:
st = time.time()
img_name = str(f)
img_data = cv2.imread(f)
for _,row in df.iterrows():
if row['image'] != img_name:
continue
else:
labeled_set.append([img_data, row['label']])
et = time.time()
print(str(et-st)+' seconds for one image lookup')
except Exception as e:
print(f'{e} occurred, passing')
pass
tot_time -= time.time()
print(str(abs(tot_time)))+' seconds time taken for the mapping')
return labeled_set
Есть ли более быстрый способ сделать это? Было бы очень полезно узнать, есть ли такой. В настоящее время поиск одного изображения занимает около 25 секунд.