Распознавание цифр на keras

Chychypa

Новичок
Пользователь
Июл 3, 2023
2
0
1
Недавно написал распознавание цифр на keras . Но сейчас захотелось ещё распознавать цифры на загружаемых картинка но, чтобы подать картинку в модель надо её сжать в 28 x 28 , но тогда получается полная каша (проверял при помощи plt) и смысла тогда 0 ,что делать ? Первая идея пикселизовать изображение , но может есть ещё способы ?

P.S. сейчас ещё попробовал рисовать сразу в 28 на 28 , вроде всё норм и если сравнивать картинки из mnist и мои , то выглядят схоже , но в итоге всё равно каша

И да , я заранее извиняюсь за синтаксическую кашу , но я просто писал в коллабе , вот и быстро сюда перекинул

Python:
import numpy as np
import pandas as pd
from tensorflow import keras
from keras import layers
from keras.layers import Dense, Flatten
from keras.utils import to_categorical
import matplotlib.pyplot as plt
from keras.datasets import mnist
import PIL
import tkinter

(X_train, y_train), (X_test, y_test) = mnist.load_data()

model = keras.Sequential([
    Flatten(input_shape=(28, 28, 1)),
    Dense(16, activation='relu'),
    Dense(16, activation='relu'),
    Dense(10, activation='softmax')
])

print(model.summary())

X_train = X_train / 255
X_test = X_test / 255

y_train_cat = keras.utils.to_categorical(y_train, 10)
y_test_cat = keras.utils.to_categorical(y_test, 10)

model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.evaluate(X_test, y_test_cat)
model.fit(X_train, y_train_cat, batch_size=32, epochs=5, validation_split=0.2)

from google.colab import files

# Загрузка файла с компьютера
uploaded = files.upload()

# Получение имени загруженного файла
filename = next(iter(uploaded))

# Проверка, что файл загружен успешно
if uploaded:
    print('Файл успешно загружен:', filename)
else:
    print('Ошибка загрузки файла.')
   
from PIL import Image

# Прочитайте изображение
image = Image.open(filename)
plt.imshow(image)
plt.show()

# Преобразуйте изображение в массив numpy
image_array = np.array(image)

# Измените размер изображения до 28x28 пикселей
resized_image = np.resize(image_array, (28, 28))
plt.imshow(resized_image)
plt.show()
 
Последнее редактирование:

Форум IT Специалистов