Eraly-ml commited on
Commit
05959c5
·
verified ·
1 Parent(s): 6f03de4

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -91
app.py DELETED
@@ -1,91 +0,0 @@
1
- import streamlit as st
2
- import torch
3
- from torchvision import transforms
4
- from PIL import Image
5
- import os
6
-
7
- # Настройки страницы
8
- st.set_page_config(
9
- page_title="Классификация кожных заболеваний",
10
- page_icon="🩺",
11
- layout="centered",
12
- initial_sidebar_state="collapsed"
13
- )
14
-
15
- # Заголовок
16
- st.title("🩺 Классификация кожных заболеваний")
17
-
18
- # Предупреждение
19
- st.warning(
20
- "⚠️ **Важно!** Данное приложение использует искусственный интеллект для анализа изображений, "
21
- "но оно **не является медицинским инструментом**. Результаты предсказания могут быть неточными. "
22
- "Для точной диагностики обратитесь к врачу-специалисту."
23
- )
24
-
25
- st.markdown("Загрузите изображение кожи, чтобы получить предсказание.")
26
-
27
- # Ввод путей к модели и labels.txt
28
- model_path = st.text_input("Введите путь к модели", "/home/eraly/Skin-ai/skin_disease_model_jit.pt")
29
- labels_path = st.text_input("Введите путь к файлу labels.txt", "/home/eraly/Skin-ai/labels.txt")
30
-
31
- # Проверка наличия модели
32
- if not os.path.exists(model_path):
33
- st.error(f"Модель не найдена: {model_path}")
34
- st.stop()
35
-
36
- # Загрузка модели
37
- model = torch.jit.load(model_path, map_location=torch.device('cpu'))
38
- model.eval()
39
-
40
- # Проверка наличия labels.txt
41
- if not os.path.exists(labels_path):
42
- st.error("Файл меток (labels.txt) не найден.")
43
- st.stop()
44
-
45
- with open(labels_path, "r") as f:
46
- labels = [line.strip() for line in f.readlines()]
47
-
48
- # Предобработка изображений
49
- preprocess = transforms.Compose([
50
- transforms.Resize((224, 224)),
51
- transforms.ToTensor(),
52
- transforms.Normalize(mean=[0.485, 0.456, 0.406],
53
- std=[0.229, 0.224, 0.225]),
54
- ])
55
-
56
- # Загрузка изображения
57
- uploaded_file = st.file_uploader("Выберите изображение", type=["jpg", "jpeg", "png"], key="file_uploader")
58
-
59
- if uploaded_file is not None:
60
- image = Image.open(uploaded_file).convert("RGB") # Принудительно переводим в RGB
61
- st.image(image, caption="Загруженное изображение", use_container_width=True)
62
-
63
- # Отображение прогресса загрузки
64
- progress_bar = st.progress(0)
65
- for i in range(100):
66
- progress_bar.progress(i + 1)
67
-
68
- # Предсказание
69
- try:
70
- with st.spinner("Модель обрабатывает изображение..."):
71
- image_tensor = preprocess(image).unsqueeze(0)
72
- with torch.no_grad():
73
- output = model(image_tensor)
74
-
75
- scores = torch.nn.functional.softmax(output[0], dim=0)
76
- max_score_index = torch.argmax(scores).item()
77
- predicted_class = labels[max_score_index]
78
- confidence = scores[max_score_index].item()
79
-
80
- # Вывод результата
81
- st.markdown(f"""
82
- ### 🏥 Результат анализа:
83
- - **Результат:** `{predicted_class}`
84
- - **Вероятность результата:** `{confidence:.2f}`
85
- """)
86
- except Exception as e:
87
- st.error(f"Ошибка при классификации: {e}")
88
-
89
- else:
90
- st.info("Пожалуйста, загрузите изображение.")
91
-