File size: 1,837 Bytes
62ee9f2
 
 
 
53891d3
 
d68a515
62ee9f2
a80bbf1
62ee9f2
 
 
 
a80bbf1
62ee9f2
 
76a2689
 
62ee9f2
 
 
 
a80bbf1
62ee9f2
a80bbf1
 
76a2689
a80bbf1
 
baca1ec
a80bbf1
 
76a2689
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
import gradio as gr
from transformers import AutoModelForImageClassification, AutoImageProcessor
from PIL import Image
import torch
import base64
import requests


# تحميل النموذج والمعالج من Hugging Face
repo_name = "Jayanth2002/dinov2-base-finetuned-SkinDisease"
image_processor = AutoImageProcessor.from_pretrained(repo_name)
model = AutoModelForImageClassification.from_pretrained(repo_name)

# أسماء الأمراض
class_names = ['Basal Cell Carcinoma', 'Darier_s Disease', 'Epidermolysis Bullosa Pruriginosa', 'Hailey-Hailey Disease', 'Herpes Simplex', 'Impetigo', 'Larva Migrans', 'Leprosy Borderline', 'Leprosy Lepromatous', 'Leprosy Tuberculoid', 'Lichen Planus', 'Lupus Erythematosus Chronicus Discoides', 'Melanoma', 'Molluscum Contagiosum', 'Mycosis Fungoides', 'Neurofibromatosis', 'Papilomatosis Confluentes And Reticulate', 'Pediculosis Capitis', 'Pityriasis Rosea', 'Porokeratosis Actinic', 'Psoriasis', 'Tinea Corporis', 'Tinea Nigra', 'Tungiasis', 'actinic keratosis', 'dermatofibroma', 'nevus', 'pigmented benign keratosis', 'seborrheic keratosis', 'squamous cell carcinoma', 'vascular lesion']

# دالة التنبؤ
def predict(image):
    encoding = image_processor(image.convert("RGB"), return_tensors="pt")
    with torch.no_grad():
        outputs = model(**encoding)
    predicted_class_idx = outputs.logits.argmax(-1).item()
    return class_names[predicted_class_idx]

# واجهة Gradio
gr.Interface(
    fn=predict,
    inputs=gr.Image(type="pil", label="Upload Skin Image"),
    outputs=gr.Textbox(label="Predicted Disease"),
    title="تشخيص الأمراض الجلدية باستخدام الذكاء الاصطناعي",
    description="ارفع صورة لوجه المريض وسيتعرف النموذج على المرض الجلدي المحتمل."
).launch()