|
import streamlit as st |
|
from PIL import Image |
|
from assets.imagenet import img_class |
|
import requests |
|
from io import BytesIO |
|
st.set_page_config( |
|
page_title="Распознаватель изображений", |
|
page_icon="🖼️", |
|
layout="wide", |
|
) |
|
st.title('Распознаватель изображений') |
|
|
|
with st.expander("Пояснения"): |
|
""" |
|
#### Нейросеть опознаёт, что изображено на картинке |
|
|
|
Немного технической информации: |
|
|
|
Используется нейросеть **inception_v3** с точностью **78.1%** на датасете [imagenet](https://www.image-net.org/). Никаких изменений не внесено, просто добавлен пользовательский интерфейс. |
|
""" |
|
|
|
upload_method = st.radio("Выбери метод загрузки", ["Файл", "URL"],key='method') |
|
|
|
if st.session_state['method'] == "Файл": |
|
uploaded_file=st.file_uploader('# Загрузи сюда любую картинку',type=["jpg", "jpeg", "png","svg"],key='uploader') |
|
if uploaded_file is not None: |
|
st.image(uploaded_file) |
|
image = Image.open(uploaded_file) |
|
|
|
elif st.session_state['method'] == "URL": |
|
|
|
pic_url=st.text_input('Или вставь сюда ссылку на картинку',key='urls') |
|
if pic_url != '': |
|
try: |
|
image = Image.open(requests.get(pic_url, stream=True).raw) |
|
st.image(image, caption="Изображение по URL") |
|
except: |
|
st.error('Не удалось загрузить картинку') |
|
|
|
if st.button('Определить'): |
|
|
|
|
|
st.success(img_class(image)) |
|
|
|
|