File size: 1,675 Bytes
466813c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gradio as gr
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import img_to_array
from PIL import Image
import numpy as np

# Загрузка модели
model = load_model("digit_recognizer_model.h5")

# Функция для обработки изображения и предсказания
def predict_digit(image):
    # Преобразование изображения
    image = image.convert("L")                # Конвертация в градации серого
    image = image.resize((28, 28))            # Изменение размера на 28x28
    image = img_to_array(image)               # Преобразование в numpy-массив
    image = image.reshape(1, 28, 28, 1)       # Преобразование в формат (1, 28, 28, 1)
    image = image / 255.0                     # Нормализация

    # Предсказание
    prediction = model.predict(image)         # Получение вероятностей классов
    predicted_class = np.argmax(prediction)   # Класс с наибольшей вероятностью
    return f"Предсказанное число: {predicted_class}"

# Интерфейс Gradio
interface = gr.Interface(
    fn=predict_digit,
    inputs=gr.Image(type="pil"),  # Используем только `type="pil"` для передачи изображения
    outputs="text",               # Вывод в виде текста
    title="Распознавание цифр"
)

# Запуск приложения
if __name__ == "__main__":
    interface.launch()