. ملخص المشروع والهدف (Project Overview)
المنظومة عبارة عن خط إنتاج متكامل للتعلم العميق (Deep Learning Pipeline) مصمم لتصنيف الصور الطبية بالأشعة السينية (X-Ray) للكشف عن وجود كسور في العظام من عدمه (Fracture Detection). الهدف الأساسي هو بناء نموذج ذكاء اصطناعي مساعد للأطباء (Computer-Aided Diagnosis) يتميز بالدقة العالية والسرعة في المعالجة لتجنب الأخطاء البشرية في التشخيص السريع.
2. معالجة البيانات وتجهيزها (Data Pipeline & Augmentation)
نظراً لحساسية البيانات الطبية وشحها في بعض الأحيان، تم اعتماد استراتيجية قوية لمعالجة البيانات وتضخيمها هندسياً لمنع الإفراط في الملاءمة (Overfitting):
تغيير الحجم والتهيئة (Resizing & Preprocessing): يتم استقبال الصور الطبية بأبعاد مختلفة وتوحيدها لتصبح بأبعاد 224x224 بكسل لتتناسب مع متطلبات النموذج المختار، مع تطبيق التهيئات الخاصة بـ mobilenet_v2.preprocess_input.
تضخيم البيانات (Data Augmentation): يتم استخدام تقنيات التضخيم الديناميكي أثناء التدريب وتشمل:
دوران عشوائي بزاوية تصل إلى 15 درجة (rotation_range=15).
إزاحة أفقية وعمودية بنسبة 10% (width_shift_range=0.1, height_shift_range=0.1).
تقريب عشوائي بنسبة 10% (zoom_range=0.1).
قلب أفقي عشوائي (horizontal_flip=True).
معالجة عدم توازن البيانات (Class Imbalance): تم حساب أوزان الفئات برمجياً باستخدام compute_class_weight لتعديل دالة الخسارة (Loss Function)؛ وذلك لضمان عدم انحياز النموذج للفئة الأكثر تكراراً في مجموعة البيانات (سواء كانت السليمة أو المصابة).
3. معمارية النموذج (Model Architecture)
تم الاعتماد على مبدأ التعلم بنقل المعرفة (Transfer Learning) باستخدام نموذج MobileNetV2 كعمود فقري (Backbone) لتميزه بخفة الحجم والكفاءة العالية في الأداء الحسابي، وهو ما يجعله مثالياً للنشر مستقبلاً على الأجهزة الطرفية أو الطبية المحدودة الموارد.
هيكلية الطبقات المتتالية:
الطبقة الأساسية (Base Model): نموذج MobileNetV2 محمل بأوزان مدربة مسبقاً على مجموعة بيانات ImageNet الشهيرة، مع إزالة طبقة التصنيف الأخيرة الحافة (include_top=False).
طبقة التجميع (Pooling Layer): طبقة GlobalAveragePooling2D() لتقليل أبعاد الميزات المستخرجة وتحويلها إلى مصفوفة أحادية البعد مع الحفاظ على أهم الخصائص المكبرة.
طبقة إسقاط الميزات (Dropout Layer): طبقة Dropout(0.2) بمعدل 20% للحد من الـ Overfitting وإجبار الشبكة على تعلم ميزات مستقلة ومتينة.
طبقة التصنيف النهائية (Classification Head): طبقة Dense تحتوي على وحدتي إخراج مع دالة التنشيط softmax لإنتاج التوزيع الاحتمالي للفئتين (Fractured vs Non-Fractured).
4. استراتيجية التدريب على مرحلتين (Two-Phase Training Strategy)
تم تقسيم تدريب النموذج إلى مرحلتين لضمان استقرار الأوزان المسبقة وعدم تدمير الخصائص التي تعلمها النموذج سابقاً:
المرحلة الأولى: تدريب الرأس الجديد (Training the Head)
يتم تجميد جميع طبقات النموذج الأساسي (base_model.trainable = False).
يتم تشغيل التدريب لعدد محدد من الحقبات (Epochs).
الهدف: السماح لطبقة التصنيف الجديدة (Dense Top) بالتكيف مع ميزات الصور الطبية دون التعديل على أوزان الشبكة العميقة.
المرحلة الثانية: الضبط الدقيق العميق (Fine-Tuning)
يتم إلغاء تجميد الطبقات العليا من النموذج الأساسي (أو تجميد أول 100 طبقة فقط وجعل باقي الطبقات قابلة للتدريب).
يتم إعادة تجميع النموذج (Recompile) باستخدام معدل تعلم منخفض جداً (Learning Rate = 1e-5) باستخدام محسن Adam.
الهدف: ضبط الأوزان الداخلية للشبكة لتتناسب بدقة متناهية مع تفاصيل الكسور العظمية الدقيقة دون الوقوع في مشكلة "النسيان الكارثي" (Catastrophic Forgetting).
5. آليات التحكم والمراقبة (Callbacks)
يتضمن كود التدريب آليات ذكية لضمان كفاءة الوقت وحماية النموذج:
EarlyStopping: إيقاف التدريب تلقائياً إذا توقفت دالة خسارة التحقق (Validation Loss) عن التحسن لعدد معين من الحقبات المتتالية (Patience)، مما يمنع استهلاك موارد الحساب دون جدوى ويحمي من الـ Overfitting.
6. مقاييس التقييم والمخرجات المتوقعة (Evaluation Metrics)
عند تقييم النموذج النهائي باستخدام مصفوفة الارتباك (Confusion Matrix) وتقرير التصنيف (Classification Report)، يتم قياس الأداء بناءً على:
Precision (الدقة): نسبة المخرجات الصحيحة من بين جميع الحالات التي صنفها النموذج ككسور.
Recall (الاستدعاء): قدرة النموذج على التقاط واكتشاف كافة حالات الكسور الفعلية الموجودة في البيانات (وهو المعيار الأكثر حرجاً في التطبيقات الطبية).
F1-Score: المتوسط المتناغم بين الدقة والاستدعاء لضمان توازن الأداء.
Accuracy (الدقة الإجمالية): النسبة المئوية العامة للتصنيفات الصحيحة للفئتين معاً (والتي أظهرت المؤشرات البرمجية وصولها إلى مستويات ممتازة تقارب 98%).