У меня есть сиамская сеть, обученная распознаванию продуктов. Некоторые из этих продуктов распознаются правильно, а некоторые - нет.
Изображения в каждом классе похожи (для тестирования этой архитектуры у меня было только одно изображение для каждого продукта, поэтому после аргументации есть 20 похожих изображений для каждого продукта), поэтому он не должно быть проблем с определением правильного.
Я не уверен, что мой код работает правильно.
sample = imread('C:/Datasets/Products/test_img.jpg')
sample = sample/255.
sample = np.expand_dims(sample, axis=0)
scores = list()
labels = list()
index = 0
for image in x_test:
image = np.expand_dims(image, axis=0)
scores.append(model.predict([image , sample])[0])
labels.append(y_test[index][0])
index +=1
scores = np.array(scores)
labels = np.array(labels)
index = np.argmax(scores)
label_ = labels[index]
print( 'IMAGE is {} with confidence of {}'.format(label_, scores[index][0]))
Изображения для x_test и y_test загружаются функцией ниже
def loadimgs(path):
X=[]
y = []
images=[]
for product in os.listdir(path):
prod_path = os.path.join(path, product)
for img in os.listdir(prod_path):
image_path = os.path.join(prod_path, img)
image = imread(image_path)
images.append(image)
y.append(product)
y = np.vstack(y)
X = np.stack(images)
return X,y