TestModel / app.py
DzmitryXXL's picture
Upload app.py
90da353
import asyncio
asyncio.set_event_loop(asyncio.new_event_loop())
import streamlit as st
import tensorflow as tf
import numpy as np
from PIL import Image
img_width, img_height = 32, 32
# Загружаем модель
model = tf.keras.models.load_model('model_fmr_all.h5')
classes = {0: 'самолет',
1: 'автомобиль',
2: 'птица',
3: 'кот',
4: 'олень',
5: 'собака',
6: 'лягушка',
7: 'лошадь',
8: 'корабль',
9: 'грузовик'}
# Определяем функцию для предсказания цифры на изображении
def predict_image(image):
# Преобразование изображения в массив numpy
img = np.array(image, dtype='float64') / 255
# Преобразование изображения в формат, который ожидает модель
img = np.expand_dims(image, axis=0)
# Предсказание цифры
prediction = model.predict(img)
imagetype = classes[np.argmax(prediction)]
return imagetype
# Определяем заголовок веб-приложения
st.title('Распознавание картинки')
# Загрузка изображения и предсказание цифры
uploaded_file = st.file_uploader("Загрузите изображение для распознования", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
image = Image.open(uploaded_file).resize((img_height, img_width))
st.image(image, caption='Загруженное изображение', use_column_width=True)
st.write('')
st.write('На картинке предположительно:', predict_image(image))