قمت بتطوير نظام توليد أوصاف تلقائية للصور (Image Captioning) باستخدام تقنيات Deep Learning من خلال دمج:
CNN (ResNet50) لاستخراج الخصائص البصرية
LSTM لتوليد الجمل النصية بشكل تسلسلي
النظام قادر على تحليل الصورة ثم توليد وصف لغوي طبيعي لها، مما يجعله مناسبًا لتطبيقات مثل:
أنظمة مساعدة ذوي الاحتياجات البصرية
تحسين محركات البحث للصور
أنظمة إدارة المحتوى
التطبيقات الذكية المعتمدة على الرؤية الحاسوبية
? هدف المشروع
بناء Pipeline متكامل يقوم بـ:
✔ استخراج الخصائص البصرية عالية المستوى من الصور
✔ معالجة النصوص وبناء Vocabulary
✔ تدريب نموذج تسلسلي للتنبؤ بالكلمة التالية
✔ توليد أوصاف لصور غير مرئية
✔ تقييم الأداء باستخدام BLEU Score
لمعمارية المستخدمة
1️⃣ استخراج خصائص الصور
استخدام ResNet50 مدرب مسبقًا على ImageNet
إزالة طبقة التصنيف النهائية
تطبيق Global Average Pooling
تحويل كل صورة إلى متجه خصائص بحجم 2048
2️⃣ معالجة النصوص
تحويل النص إلى حروف صغيرة
إزالة الرموز والكلمات القصيرة
إضافة رموز خاصة:
startseq
endseq
Tokenization وتحويل الكلمات إلى أرقام
Padding لتوحيد طول التسلسل
3️⃣ تصميم النموذج
? Image Branch
Input (2048)
Dropout
Dense(256, ReLU)
? Text Branch
Input (max_length)
Embedding(256)
Dropout
LSTM(256)
? دمج الفرعين
Add Layer
Dense(256, ReLU)
Output Dense (Softmax بحجم المفردات)
Loss Function: Categorical Crossentropy
Optimizer: Adam
آلية توليد النص (Inference)
البدء بـ startseq
التنبؤ بالكلمة التالية
إضافتها للتسلسل
التكرار حتى الوصول إلى endseq أو الحد الأقصى للطول
لتحديات التي تم التعامل معها
? مشاكل الذاكرة أثناء التدريب
✔ إنشاء Data Generator مخصص لتوليد البيانات على دفعات
? بطء استخراج الخصائص
✔ استخدام نموذج Pretrained
✔ حفظ Features لتجنب إعادة الحساب
? Overfitting وتكرار الجمل
✔ إضافة Dropout
✔ تقليل تعقيد النموذج
✔ تقسيم البيانات تدريب/اختبار
? استهلاك الذاكرة بسبب One-Hot Encoding
✔ تقليل حجم المفردات عبر المعالجة المسبقة
✔ إمكانية التحسين باستخدام Sparse Categorical Crossentropy
? قيود Greedy Search
✔ إمكانية تطوير النموذج باستخدام Beam Search لتحسين جودة الجمل
نتائج
✔ قدرة النموذج على توليد أوصاف منطقية للصور
✔ استقرار في التدريب
✔ Pipeline قابل لإعادة الاستخدام والتطوير
✔ تقييم باستخدام BLEU Score