Я пытался написать специальный модуль на основе тензорного потока, который обеспечит это сервис, и его точность кажется хорошей. Модель обучена на основе набора данных fashion_mnist (https://www.kaggle.com/datasets/zalando ... shionmnist) и правильно работает с изображениями, предоставляемыми набором данных.
Однако всякий раз, когда я попробуйте загрузить в модель собственное изображение и настроить его в соответствии с требованиями, я всегда получаю классификацию «сумка». Я предполагаю, что это так, потому что сумка — это всего лишь «базовый» и бездонный объект, и ИИ легче перенаправить на него свой прогноз.
Это код, который я пытался запустить:
Код: Выделить всё
import tensorflow as tf
from tensorflow import keras
import numpy as np
import cv2
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
train_images = train_images.reshape(train_images.shape[0], 28, 28, 1) / 255.0
test_images = test_images.reshape(test_images.shape[0], 28, 28, 1) / 255.0
model = keras.Sequential([
keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(64, (3, 3), activation='relu'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
model.save('fashion_mnist_cnn_model.h5')
model = keras.models.load_model('fashion_mnist_cnn_model.h5')
image_path = 'path_to_your_image.jpg'
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
image = cv2.resize(image, (28, 28))
image = image.astype('float32') / 255.0
image = np.expand_dims(image, axis=-1)
prediction = model.predict(np.array([image]))
predicted_class = np.argmax(prediction)
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
print(f'Predicted Class: {class_names[predicted_class]}')
Пример простой неточности, допущенной моделью, таков:
Приведенное изображение:

Классификация:
[img]https: //i.stack.imgur.com/27n1Y.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/783 ... e-although