هذا المشروع يهدف إلى تقديم خدمة ويب تعتمد على Flask لتصنيف الصور باستخدام نموذج EfficientNetB0 المُدرّب مسبقًا على مجموعة بيانات ImageNet. يمكن لمستخدمي هذا التطبيق إرسال صور عبر واجهة API، ويقوم النظام بتصنيف محتوى الصورة وإرجاع النتائج مع درجات الثقة.
- بناء تطبيق ويب باستخدام Flask.
- استخدام نموذج EfficientNetB0 من TensorFlow لتصنيف الصور.
- تمكين المستخدمين من إرسال صورة عبر POST والحصول على تصنيف الصورة مع درجات الثقة.
- ImageNet هي مجموعة بيانات تحتوي على ملايين الصور المُعلمة التي تنتمي إلى آلاف الفئات المختلفة. تم تدريب نموذج EfficientNetB0 على هذه البيانات لتحسين الدقة والكفاءة في تصنيف الصور.
-
إعداد بيئة العمل:
- استخدام Flask لإنشاء تطبيق ويب بسيط.
- تحميل النموذج المُدرّب مسبقًا EfficientNetB0 من Keras.
- تثبيت جميع المكتبات المطلوبة مثل TensorFlow و PIL و NumPy.
-
بناء دالة التنبؤ:
- إعادة تشكيل الصورة إلى حجم 224x224 بكسل.
- تحويل الصورة إلى مصفوفة بيانات.
- تحضير الصورة باستخدام دالة preprocess_input الخاصة بـ TensorFlow.
- تطبيق التنبؤ على الصورة باستخدام النموذج المُدرّب.
-
إنشاء واجهة API:
- توفير واجهة API عبر Flask لقبول الصور عبر طلبات POST.
- إرسال الصورة إلى دالة التنبؤ للحصول على التصنيف ودرجة الثقة.
- إرجاع النتائج على شكل JSON مع تصنيفات الصورة ودرجات الثقة.
-
تشغيل الخادم:
- تشغيل الخادم المحلي باستخدام Flask، بحيث يمكن للمستخدمين إرسال الصور عبر API.
- قم بتشغيل التطبيق باستخدام:
python app.py
- بعد تشغيل التطبيق، يمكنك إرسال صورة عبر POST إلى http://127.0.0.1:5000/classify_image باستخدام أداة مثل Postman أو cURL.
- يجب أن تتضمن الصورة في الطلب كملف مع المفتاح
image. - ستتلقى استجابة JSON تحتوي على التصنيفات ودرجات الثقة. الخاتمة: تم بناء هذا المشروع لإنشاء خدمة ويب بسيطة لتصنيف الصور باستخدام نموذج EfficientNetB0. يمكن توسيع هذا النظام ليشمل فئات أخرى من التصنيفات أو حتى تحسين الأداء باستخدام نماذج أخرى أو تقنيات جديدة في معالجة الصور.