قمت بتطوير نموذج تصنيف صور متعدد الفئات (Multi-Class Classification) باستخدام شبكة عصبية التفافية (CNN) مبنية من الصفر لتصنيف الفواكه والخضروات إلى 36 فئة مختلفة بدقة عالية.
المشروع يعتمد على بناء نموذج عميق قادر على استخراج الخصائص البصرية للصورة تدريجيًا للوصول إلى تصنيف دقيق ومستقر، مع مراعاة تقليل الـ Overfitting وتحقيق تعميم جيد على بيانات الاختبار.
عمارية النموذج
تم تصميم النموذج باستخدام:
5 Convolutional Blocks
Conv2D
Batch Normalization
ReLU Activation
MaxPooling
Flatten Layer
Dense Layer (256 وحدة)
Dropout (0.3)
Output Layer (Softmax – 36 فئة)
تم تصميم المعمارية لاستخراج الخصائص البصرية بشكل هرمي مع الحفاظ على استقرار التدريب وتقليل التذبذب.
إعدادات التدريب
Optimizer: Adam
Loss Function: Sparse Categorical Crossentropy
Batch Size: 32
Epochs: 30
EarlyStopping (Patience = 5) لمنع الإفراط في التعلّم
التحديات التي واجهتني وكيف تم حلها
? Overfitting
✔ استخدام Dropout
✔ إضافة Batch Normalization
✔ تطبيق EarlyStopping
? استقرار التدريب
✔ دمج Batch Normalization داخل كل convolution block
? تحسين النشر (Deployment)
✔ حفظ النموذج بصيغة model.h5
✔ تجهيز Pipeline للتنبؤ بصورة واحدة
✔ ضبط إعادة تحجيم الصور ديناميكيًا داخل تطبيق Streamlit
لنتائج
✔ دقة قوية على بيانات الاختبار
✔ تعميم جيد بين التدريب والتحقق
✔ استقرار في منحنيات الـ Loss و Accuracy
✔ نموذج قابل لإعادة الاستخدام في مشاريع Computer Vision مستقبلية