File size: 1,600 Bytes
1afc88b
160b148
 
 
69cad98
 
4233955
160b148
 
 
 
69cad98
 
160b148
69cad98
 
 
 
 
 
 
 
 
 
 
 
 
160b148
 
 
 
 
69cad98
 
 
 
 
 
1afc88b
 
 
 
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
import gradio as gr
from ultralytics import YOLO

# ---- Модельді жүктеу ----
# Мұнда сен өзіңнің fine-tune жасаған моделі "car_damage.pt" файлын қолданасың
# Мысалы, label тізімі: ["Бампер бұзылған", "Крыло майысқан", "Фара сынған", "Шина зақымдалған"]
model = YOLO("yolov8n.pt")

# ---- Predict функциясы ----
def detect_damage(image):
    results = model(image)

    # Annotated image (рамка салынған сурет)
    annotated = results[0].plot()  # numpy image

    # Text results
    text_outputs = []
    for box in results[0].boxes:
        cls_id = int(box.cls[0].item())
        label = model.names[cls_id]
        conf = float(box.conf[0].item())
        text_outputs.append(f"{label} (сенімділік: {conf:.2f})")

    if not text_outputs:
        text_outputs.append("✅ Ақау табылған жоқ")

    return annotated, "\n".join(text_outputs)

# ---- Gradio интерфейс ----
demo = gr.Interface(
    fn=detect_damage,
    inputs=gr.Image(type="pil", label="Машина суретін жүктеңіз"),
    outputs=[
        gr.Image(type="numpy", label="Ақауы белгіленген сурет"),
        gr.Textbox(label="Диагноз")
    ],
    title="🚗 Машина зақымын анықтау",
    description="ИИ машинаның қай бөлігі бұзылғанын рамкамен және мәтін түрінде көрсетеді."
)

if __name__ == "__main__":
    demo.launch()