# -*- coding: utf-8 -*- import gradio as gr from transformers import pipeline # تحميل النموذج من Hugging Face classifier = pipeline( task="image-classification", model="dqnguyen/Diabetic_Foot_Ulcer_Image_Classification" ) # دالة التنبؤ def predict(image): predictions = classifier(image) results = {} # ترجمة النتائج for p in predictions: if p["label"] == "MoHat": results["أنسجة حبيبية (Granulation)"] = round(p["score"], 3) elif p["label"] == "MoGiaMacNhiemKhuan": results["أنسجة مصابة بعدوى (غشاء كاذب)"] = round(p["score"], 3) elif p["label"] == "MoHoaiTu": results["أنسجة ميتة (نخر)"] = round(p["score"], 3) # مقياس الخطورة if not results: risk_text = "لم يتم التعرف على النسيج" risk_level = "❔ غير محدد" color = "#888888" else: top_label = max(results, key=results.get) if "نخر" in top_label: risk_text = "⚠️ الحالة حرجة، يُنصح بمراجعة الطبيب فورًا" risk_level = "🔴 عالية الخطورة" color = "#FF6B6B" elif "عدوى" in top_label: risk_text = "⚠️ حالة متوسطة، تحتاج متابعة وعناية طبية" risk_level = "🟠 متوسطة الخطورة" color = "#FFD166" else: risk_text = "✅ القدم في حالة التئام جيدة" risk_level = "🟢 منخفضة الخطورة" color = "#8EF58E" return ( results, f"""
{risk_text}
""" ) custom_theme = gr.themes.Soft( primary_hue="green", secondary_hue="gray", neutral_hue="slate" ).set( button_primary_background_fill="#4CAF50", button_primary_background_fill_hover="#43A047", button_primary_text_color="#FFFFFF", ) # واجهة Gradio with gr.Blocks(theme=custom_theme, title="تصنيف تقرحات القدم السكرية") as demo: gr.HTML("""
يقوم هذا النظام بتحليل صورة القدم لتحديد نوع الأنسجة ومستوى الخطورة المحتمل.
نسيج حبيبي (يدل على التئام جيد)
نسيج مصاب بعدوى (غشاء كاذب)
نسيج ميت (نخر)