Nonabzbssbbsbs commited on
Commit
ecc47b4
·
verified ·
1 Parent(s): 9bc81ce

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +124 -0
app.py ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ==============================================================================
2
+ # 🚨 МӘЖБҮРЛЕП ОРНАТУ (Қажет болса): 'transformers' табылмаса, оны орнатады.
3
+ # ==============================================================================
4
+ import os
5
+ import subprocess
6
+
7
+ try:
8
+ from transformers import pipeline
9
+ except ImportError:
10
+ print("WARNING: transformers табылмады. Қазір орнатылуда...")
11
+ subprocess.check_call([os.sys.executable, "-m", "pip", "install", "transformers", "accelerate", "torch", "gradio", "Pillow"])
12
+ from transformers import pipeline
13
+
14
+ # ----------------------------------------------------------------------
15
+ # 1. КОНФИГУРАЦИЯЛАР (Қолданушы Атын Қою)
16
+ # ----------------------------------------------------------------------
17
+
18
+ import gradio as gr
19
+
20
+ # ⭐ ҚОЛДАНУШЫ АТЫ ⭐
21
+ HF_USERNAME = "Nonabzbssbbsbs"
22
+
23
+ TRASH_MODEL_PATH = f"{HF_USERNAME}/Trash-Net-Fine-Tuned-Demo"
24
+ CIFAR_MODEL_PATH = f"{HF_USERNAME}/CIFAR10-Kazakh-Fast-Demo"
25
+
26
+ # 2. Қазақша Белгілер
27
+ CIFAR_KAZAKH_LABELS = {
28
+ 0: "Ұшақ", 1: "Автомобиль", 2: "Құс", 3: "Мысық", 4: "Бұғы",
29
+ 5: "Ит", 6: "Бақа", 7: "Жылқы", 8: "Кеме", 9: "Жүк көлігі"
30
+ }
31
+
32
+ # ----------------------------------------------------------------------
33
+ # 2. PIPELINES ЖҮКТЕУ (Екі Модельді Де Жүктеу)
34
+ # ----------------------------------------------------------------------
35
+
36
+ print("Модельдер жүктелуде...")
37
+
38
+ # 1-ші Модель (Trash/Food)
39
+ try:
40
+ trash_classifier = pipeline(
41
+ "image-classification",
42
+ model=TRASH_MODEL_PATH
43
+ )
44
+ except Exception as e:
45
+ print(f"Trash-Net моделін жүктеу қатесі: {e}")
46
+ trash_classifier = None
47
+
48
+ # 2-ші Модель (CIFAR-10)
49
+ try:
50
+ cifar_classifier = pipeline(
51
+ "image-classification",
52
+ model=CIFAR_MODEL_PATH
53
+ )
54
+ except Exception as e:
55
+ print(f"CIFAR-10 моделін жүктеу қатесі: {e}")
56
+ cifar_classifier = None
57
+
58
+ print("Модельдерді жүктеу әрекеті аяқталды.")
59
+
60
+ # ----------------------------------------------------------------------
61
+ # 3. ЖІКТЕУ ФУНКЦИЯЛАРЫ
62
+ # ----------------------------------------------------------------------
63
+
64
+ # CIFAR-10 жіктеу
65
+ def classify_cifar(image):
66
+ if image is None:
67
+ return "Сурет жүктеңіз."
68
+ if cifar_classifier is None:
69
+ return "CIFAR-10 моделін жүктеу мүмкін болмады."
70
+
71
+ results = cifar_classifier(image)
72
+ output = {}
73
+
74
+ for item in results:
75
+ try:
76
+ label_id = int(item['label'])
77
+ kazakh_label = CIFAR_KAZAKH_LABELS.get(label_id, item['label'])
78
+ output[kazakh_label] = item['score']
79
+ except ValueError:
80
+ output[item['label']] = item['score']
81
+
82
+ return output
83
+
84
+ # Trash/Food жіктеу
85
+ def classify_trash(image):
86
+ if image is None:
87
+ return "Сурет жүктеңіз."
88
+ if trash_classifier is None:
89
+ return "Trash/Food моделін жүктеу мүмкін болмады."
90
+
91
+ results = trash_classifier(image)
92
+ output = {item['label']: item['score'] for item in results}
93
+ return output
94
+
95
+ # ----------------------------------------------------------------------
96
+ # 4. GRADIO ИНТЕРФЕЙСІ
97
+ # ----------------------------------------------------------------------
98
+
99
+ cifar_iface = gr.Interface(
100
+ fn=classify_cifar,
101
+ inputs=gr.Image(type="pil"),
102
+ outputs=gr.Label(num_top_classes=3),
103
+ title="Қазақша CIFAR-10 Жіктеуі",
104
+ description="CIFAR-10 моделі (10 класс). Нәтижелер қазақшаға аударылған.",
105
+ allow_flagging="never"
106
+ )
107
+
108
+ trash_iface = gr.Interface(
109
+ fn=classify_trash,
110
+ inputs=gr.Image(type="pil"),
111
+ outputs=gr.Label(num_top_classes=3),
112
+ title="Trash/Food Жіктеуі",
113
+ description="Trash-Net негізіндегі модель Food101-де оқытылған (101 класс).",
114
+ allow_flagging="never"
115
+ )
116
+
117
+ demo = gr.TabbedInterface(
118
+ [cifar_iface, trash_iface],
119
+ ["1. CIFAR10 (Қазақша)", "2. Trash/Food (101 класс)"],
120
+ title="Екі Компьютерлік Көру Моделінің Демонстрациясы"
121
+ )
122
+
123
+ if __name__ == "__main__":
124
+ demo.launch()