الشبكة العصبية التلافيفية وتكاملها في نظام iOS (الجزء 2)



في الجزء السابق ، قمنا بإعداد البيانات ، وفحصنا أيضًا أدوات التنفيذ وبنية الشبكة العصبية ( حلقة الوصل ). لنبدأ المرحلة التالية من التطوير باستخدام المعالجة المسبقة للبيانات. يوفر برنامج Keras

Upgrades

مجموعة كبيرة من الأدوات لمعالجة البيانات مسبقًا ، خاصة للصور. تسمح لك طريقة ImageDataGenerator (الشكل 7) بتوسيع مجموعة البيانات مع التحولات الاصطناعية.


الشكل 7. - مولد بيانات.

الرقم الأول rotation_range هو رقم عشوائي لتدوير الصور داخل المولد. Width_shift_range - يوضح مقدار تقليل قيم البكسل في العرض. Height_shift_range - المعامل الذي سيتم ضرب كل بكسل به للضغط في الارتفاع. Shear_range - معدل القص ، زاوية التحول في عكس اتجاه عقارب الساعة بالدرجات. Zoom_range - نطاق للتحجيم العشوائي. Horizontal_flip - عرض صورة عشوائية أفقيًا. Vertical_flip - عرض صورة رأسية عشوائية. Fill_mode - يتم ملء النقاط خارج بيانات الإدخال وفقًا للوضع المحدد. Data_format - تنسيق بيانات الصورة. وبالتالي ، سيكون للشبكة العصبية تعميم أفضل ، لأن مجموعة البيانات الأصلية تحتوي في الأساس على وحدات بكسل نظيفة ، والأرقام في المركز.في الصور الحقيقية ، هناك مواقف أخرى ممكنة عندما تكون الإيماءة في زاوية أو غير واضحة. تتم إعادة كتابة عملية التعلم باستخدام البيانات الجديدة.

في الشكل 8 ، بدأ الرسم البياني للاختبار في الانخفاض ، لذلك تم إيقاف التدريب. إذا لم يتم استخدام مقياس val_acc للتوقف ، فستستمر الخوارزمية في العمل ، مما أدى إلى إعادة تدريب الشبكة العصبية.

مقارنة بالنتائج السابقة ، انخفضت قيمة دالة الخسارة ، وبالتالي ، زادت درجة ثقة الخوارزمية في التنبؤات. زادت الدقة أكثر بقليل من 2٪ (الشكل 8 ، الشكل 9).


التين .8 - جدول التدريب على البيانات الجديدة.


الشكل 9. - مقاييس النموذج.

التحويل من

أجل الاندماج في تطبيق iOS ، تحتاج إلى الحصول على شبكة عصبية بتنسيق معين. هذا يسمح لك بعمل إطار عمل CoreML. يسمح لك بتشغيل نماذج التعلم الآلي المدربة بتنسيق. mlmodel في التطبيقات. للعمل مع الصور ، يعمل إطار Vision على أساس Core ML ويساعد في تتبع والتعرف على الوجوه والنصوص والأشياء والرموز الشريطية. يتوفر أيضًا تحديد الأفق واكتساب المصفوفة لمحاذاة الصورة.

لتحويل نموذج من .h5 إلى. يتم استخدام mlmodel من قبل المكتبة في Python Coremltools. تدعم هذه المكتبة التحويل إلى تنسيق mlmodel.

من أجل الاستنتاج الصحيح للنموذج ، يتم تحديد قاموس يتوافق مع 10 أرقام. يعلن السطر التالي أن Model_check.h5 هو اسم النموذج ، ويشار أيضًا إلى أنه سيتلقى الصور على طبقة الإدخال للشبكة العصبية. سيؤدي حقل image_scale إلى توحيد مصفوفة وحدات البكسل. (الشكل 10) الشكل 10


. - تحويلات.

تطبيق جوال. العمل مع نموذج معد.

يتم استخدام مثال من الموقع الرسمي لمطوري Apple كأساس للمشروع. أحدث بيئة تطوير Xcode ، لغة البرمجة هي Swift الإصدار الخامس.

يتم النظر في الملفات (الشكل 11) التي تحتوي على الرمز في المشروع. يقوم AppDelegate.swift بتشغيل نافذة بدء التطبيق ويهيئ جميع الملفات المتصلة بالمشروع.


الشكل 11. - هيكل التطبيق.

يضاف نموذج معد للمشروع بعد تحويل sign_lang.mlmodel (الشكل 12).


الشكل 12. - نموذج في Xcode.

يشير سطر النوع إلى أن نموذج التعلم الآلي المُضاف إلى المشروع هو بالفعل شبكة عصبية مصنفة. للتنبؤ بالنموذج ، سيتم إدخال صور بالأبيض والأسود مع عناصر رمادية ذات أبعاد 64x64 ، سيقوم البرنامج بتحويلها إلى هذا التنسيق باستخدام Vision. سيكون الناتج عبارة عن قاموس يكون فيه أزواج السطر مع التسمية التي تم تحديدها أثناء التحويل ، والثقة (الاحتمالية) التي تنبأ بها العصبية.

ملفات التطبيق الرئيسية.

يعتبر الملف الرئيسي - Image Classification View Controller.swift

ImageView - نافذة لعرض الصورة الحالية على شاشة الهاتف ، يتم إرسالها إلى إدخال النموذج.

زر الكاميرا - زر ، عند النقر عليه ، سيتم استدعاء قائمة سياق تقدم للمستخدم القيام بالإجراءات التالية: التقاط صورة ، اختر صورة. الإجراء الأول سيفتح كاميرا الهاتف الذكي ، حيث سيكون وضع الصورة متاحًا. (الشكل 13)

عند اختيار إجراء بديل ، اختر صورة ، سيتم فتح معرض داخلي. سيؤدي الضغط على زر استخدام الصورة إلى إعادة المستخدم إلى الشاشة الرئيسية ، حيث ستقوم الشبكة العصبية بتحليل الصور وإعطاء توقعها ، كما هو موضح في الشكل. 14.

بعد كلمة التصنيف ، نرى النتيجة الأكثر ترجيحًا التي توقعها النموذج. الرقم بين قوسين هو ثقة الشبكة العصبية التي توقعها صحيح. من الشكل 14 ، يمكن ملاحظة أن الخوارزمية ذات الثقة 0.99 تقول أن الرقم 0 يظهر ، وهذا يتزامن مع الواقع. لا يمكن لأي خوارزمية للتعلم الآلي إعطاء دقة 100٪ على البيانات الحقيقية ، والشبكة العصبية التي تم إنشاؤها ليست استثناء ، والتنبؤات الخاطئة ممكنة ، والتي يمكن رؤيتها في الشكل. 15.


الشكل 13. - العمل بالكاميرا.


الشكل 14. - التنبؤ بالشبكة العصبية.


الشكل 15. - التنبؤ الكاذب.

ونتيجة لذلك ، قمنا بتصميم بنية شبكة عصبية تلافيفية للتعرف على أرقام لغة الإشارة. تم تنفيذ تدريب الشبكة العصبية ، ونتيجة لتوسيع بيانات التدريب واختيار المعلمات الفائقة ، تم الحصول على دقة 81٪ في مجموعة بيانات الاختبار. تم تحويل الخوارزمية بنجاح لنقلها إلى هاتف ذكي. تم تطوير تطبيق محمول تم فيه دمج شبكة عصبية.

رابط الكود

All Articles