#python #numpy #deep-learning #numpy-ndarray #image-classification
#python #numpy #глубокое обучение #numpy-ndarray #изображение-классификация
Вопрос:
Я следую примеру сиамской сети для распознавания лиц, и он использует только два класса, по 3 изображения на каждый класс (т. Е. Всего 6 изображений). Как я могу изменить следующий код, чтобы он считывался и помечался в 6 классах изображений, по 10 изображений на каждый класс (т. Е. Всего 60 изображений)?
sub_dir_list = os.listdir( dir_path )
images = list()
labels = list()
for i in range( len( sub_dir_list ) ):
label = i
image_names = os.listdir( os.path.join(dir_path , sub_dir_list[i]) )
for image_path in image_names:
path = os.path.join(dir_path , sub_dir_list[i] , image_path )
try :
image = Image.open(path)
resize_image = image.resize((dimen, dimen))
array_ = list()
for x in range(dimen):
sub_array = list()
for y in range(dimen):
sub_array.append(resize_image.load()[x, y])
array_.append(sub_array)
image_data = np.array(array_)
image = np.array(np.reshape(image_data, (dimen, dimen, 3))) / 255
images.append(image)
labels.append(label)
except:
print( 'WARNING : File {} could not be processed.'.format( path ) )
images = np.array( images )
samples_1 = list()
samples_2 = list()
labels = list()
for i in range( 6 ) :
for j in range( 6 ) :
samples_1.append( images[i] )
samples_2.append( images[j] )
if i < 3 :
if j < 3 :
labels.append( 1 )
else:
labels.append( 0 )
else :
if j > 2 :
labels.append( 1 )
else:
labels.append( 0 )
X1 = np.array( samples_1 )
X2 = np.array( samples_2 )
Y = np.array( labels )
Комментарии:
1. Вам нужно добавить больше папок в
sub_dir_list
(по одной для каждой метки) и иметь 10 изображений в каждой папке.2. @Shaido-Восстановить Monica да, я добавил 6 отдельных папок, каждая из которых состоит из 10 изображений этого класса, в sub_dir_list в качестве вашего комментария. Что мне нужно знать, так это как мне следует изменить приведенный выше код в соответствии с моим изменением, которое содержит 6 классов вместо 2 классов в приведенном выше коде.