File size: 1,812 Bytes
154a9d1
 
 
 
 
 
 
 
90da353
 
154a9d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90da353
154a9d1
90da353
154a9d1
 
 
 
 
 
 
 
 
 
 
90da353
154a9d1
 
 
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
36
37
38
39
40
41
42
43
44
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))