1. مقدمة
إنّ التقدم الأخير في تقنية تعلُّم الآلة جعل من السهل نسبيًا على أجهزة الكمبيوتر التعرّف على الأشياء في الصور. في هذا الدرس التطبيقي حول الترميز، سنرشدك خلال رحلة شاملة لتصميم نموذج لتصنيف الصور يمكنه التعرّف على أنواع مختلفة من العناصر، ثم نشر النموذج على تطبيق Android وiOS. تتيح لك أدوات تعلّم الآلة وAutoML إنشاء النموذج ونشره على نطاق واسع بدون الحاجة إلى أي خبرة في تعلُّم الآلة.
ما هي حزمة تعلّم الآلة؟
ML Kit هي حزمة SDK للأجهزة الجوّالة توفِّر خبرة تكنولوجيا تعلُّم الآلة من Google لتطبيقات Android وiOS في حزمة قوية وسهلة الاستخدام. سواء كنت مبتدئًا أو متمرّسًا في مجال تعلُّم الآلة، يمكنك بسهولة تنفيذ الوظائف التي تحتاجها من خلال بضعة أسطر من الرموز البرمجية. هناك العديد من واجهات برمجة التطبيقات التي يمكنها التعرّف على النص والوجوه وما إلى ذلك، ويمكنك استخدامها بطريقة مبتكرة. مع ذلك، إذا كنت بحاجة إلى التعرّف على الكائنات غير المتوافقة مع واجهات برمجة التطبيقات، مثل التعرّف على أنواع مختلفة من الزهور من صورة، عليك تدريب نموذجك الخاص. يمكنك هنا الاستفادة من AutoML.
ما هي ميزة AutoML؟
Cloud AutoML هي حزمة من منتجات تعلُّم الآلة التي تتيح للمطوّرين ذوي الخبرة المحدودة في مجال تعلُّم الآلة تدريب نماذج عالية الجودة خاصة باحتياجات أنشطتهم التجارية، وذلك من خلال الاستفادة من تكنولوجيا النقل المتطوّرة من Google وتقنية "البحث في البنية العصبية".
في هذا الدرس التطبيقي حول الترميز، سنستخدم AutoML Vision Edge في حزمة ML Kit لتدريب نموذج تصنيف الزهور. ويتم تدريب النموذج في السحابة الإلكترونية، ولكن يتم تجميعه أو تنزيله من خلال التطبيق لتنفيذ الاستنتاجات على الجهاز فقط.
ما ستتعرَّف عليه
- كيفية تدريب نموذج تصنيف الصور باستخدام AutoML Vision Edge في حزمة تعلّم الآلة
- كيفية تشغيله في نموذج تطبيق Android أو iOS باستخدام حزمة تطوير البرامج (SDK) لحزمة تعلّم الآلة
المتطلبات
لتطبيق Android
- إصدار حديث من "استوديو Android" (الإصدار 3.4 والإصدارات الأحدث)
- محاكي "استوديو Android" مع "متجر Play" أو جهاز Android فعلي (الإصدار 5.0 أو إصدار أحدث)
- معرفة أساسية بتطوير تطبيقات Android باستخدام لغة Kotlin
بالنسبة إلى تطبيق iOS:
- إصدار حديث من XCode (الإصدار 10.2 أو الأحدث)
- مُحاكي iOS أو جهاز iOS فعلي (الإصدار 9.0 أو أحدث)
- CocoaPods
- معرفة أساسية بتطوير iOS في Swift
2. ضبط إعدادات الجهاز
تنزيل التعليمة البرمجية ومجموعة بيانات التدريب
يمكنك تنزيل أرشيف ZIP يحتوي على رمز المصدر للدرس التطبيقي حول الترميز ومجموعة بيانات تدريب. استخرِج الأرشيف في جهازك المحلي.
إنشاء مشروع وحدة تحكُّم Firebase
- انتقِل إلى وحدة تحكُّم Firebase.
- اختَر إنشاء مشروع جديد، وأدخِل اسمًا لمشروعك "درس تطبيقي حول ترميز تعلّم الآلة".
إعداد تطبيق Android
- أضِف تطبيق Android إلى مشروع Firebase. اسم حزمة Android:
com.google.firebase.codelab.mlkit.automl
- نزِّل ملف إعداد
google-services.json
وضَعه في تطبيق Android على الرابطandroid/mlkit-automl/app/google-services.json
.
إعداد تطبيق iOS
- أضِف تطبيق iOS إلى مشروع Firebase. رقم تعريف حزمة iOS:
com.google.firebase.codelab.mlkit.automl
- نزِّل ملف إعداد
GoogleService-Info.plist
واتّبِع التعليمات لوضعه في تطبيق iOS على الرابطios/mlkit-automl/GoogleService-Info.plist
.
3- إعداد مجموعة بيانات التدريب
لتدريب نموذج للتعرف على أنواع مختلفة من الكائنات، يجب عليك إعداد مجموعة من الصور وتسمية كل منها. لقد أنشأنا أرشيفًا من صور الزهور المرخَّصة من Creative-commons لكي يمكنك استخدامه في هذا الدرس التطبيقي حول الترميز.
يتم حزم مجموعة البيانات في ملف مضغوط يسمى flower_photos.zip
والذي تم تضمينه في أرشيف ZIP الذي نزّلته في الخطوة السابقة.
استكشاف مجموعة البيانات
في حال استخراج ملف "flower_photos.zip
"، ستظهر لك مجموعة البيانات التي تحتوي على صور لـ 5 أنواع من الزهور: الهندباء البرية والأقحوان والتوليب ودوار الشمس والورود والتي تم تنظيمها في مجلدات تحمل اسم الزهور. وهذه طريقة سهلة لإنشاء مجموعة بيانات تدريبية من أجل تغذية AutoML وتدريب نموذج تصنيف الصور.
هناك 200 صورة لكل نوع زهرة في مجموعة البيانات التدريبية هذه. تحتاج فقط إلى 10 صور على الأقل لكل صف لتدريب أحد النماذج. ومع ذلك، ستؤدي المزيد من صور التدريب بشكل عام إلى إنشاء نماذج أفضل.
4. تدريب نموذج
تحميل مجموعة بيانات التدريب
- من وحدة تحكُّم Firebase، افتح المشروع الذي أنشأته للتو.
- اختيار ML Kit > AutoML:
- قد تظهر لك بعض شاشات الترحيب. انقر على البدء، حيثما ينطبق ذلك.
- بعد الانتهاء من عملية الإعداد، اختَر إضافة مجموعة بيانات، وأدخِل اسمًا لها "Flowers".
- في هدف النموذج، اختَر التصنيف من تصنيف واحد، لأنّ بيانات التدريب لا تحتوي إلا على تصنيف واحد لكل صورة.
- اختَر إنشاء.
- حمِّل ملف
flower_photos.zip
الذي نزّلته في الخطوة السابقة لاستيراد مجموعة بيانات التدريب على الزهور. - انتظِر بضع دقائق حتى تنتهي مهمة الاستيراد.
- يمكنك الآن التأكد من استيراد مجموعة البيانات بشكل صحيح.
- نظرًا لأنه تم تصنيف جميع الصور في مجموعة بيانات التدريب، يمكنك متابعة تدريب أي نموذج.
تدريب نموذج لتصنيف الصور
ونظرًا لأن نموذجنا سيتم تشغيله على جهاز جوّال بقدرة حوسبة وسعة تخزين محدودة، علينا أن نضع في اعتبارنا ليس فقط دقة النموذج، ولكن أيضًا حجمه وسرعته. هناك دائمًا مفاضلة بين دقة النموذج ووقت الاستجابة (أي الوقت الذي يستغرقه تصنيف الصورة) وحجم النموذج. وبشكل عام، يكون النموذج الأعلى دقة أكبر أيضًا وسيستغرق وقتًا أطول لتصنيف الصورة.
توفّر لك ميزة AutoML العديد من الخيارات: يمكنك اختيار تحسين الدقة أو تحسين وقت الاستجابة وحجم النموذج أو الموازنة بينهما. كما يمكنك اختيار مدة السماح بالتدريب على النموذج. تحتاج مجموعات البيانات الأكبر إلى التدريب لمدة أطول.
فيما يلي الخطوات التي يجب اتّباعها إذا كنت تريد تدريب النموذج بنفسك.
- اختَر نموذج القطار.
- حدِّد الخيار الغرض العام ووقت التدريب ساعة حوسبة واحدة.
- الانتظار بعض الوقت (ربما عدة ساعات) حتى تنتهي مهمة التدريب.
- بعد انتهاء مهمة التدريب، ستظهر لك مقاييس تقييم حول أداء النموذج المدرَّب.
5- استخدام النموذج في تطبيقات الأجهزة الجوّالة
الإعداد
- يحتوي هذا الدرس التطبيقي على نموذج تطبيق لكل من نظامَي التشغيل Android وiOS الذي يوضّح كيفية استخدام نموذج تصنيف الصور الذي درَّبناه سابقًا في تطبيق للأجهزة الجوّالة. يمتلك التطبيقان ميزات متشابهة. يمكنك اختيار المنصة التي تعرفها أكثر.
- قبل المتابعة، يُرجى التأكّد من تنزيل نماذج التطبيقات وضبطها في الخطوة 2.
- يُرجى أيضًا التأكّد من إعداد بيئتك المحلية لتتمكّن من إنشاء تطبيقات للنظام الأساسي الذي اخترته (Android/iOS).
تنزيل نموذج تصنيف الصور
- إذا درّبت نموذجًا في الخطوة السابقة، انقر على تنزيل للحصول على النموذج.
- إذا لم يتم تدريب نموذج أو لم تكتمل مهمة التدريب بعد، يمكنك استخدام النموذج الذي تم تضمينه في نماذج التطبيقات.
إضافة النموذج إلى نماذج التطبيقات
ما عليك سوى إضافة النموذج إلى نماذج التطبيقات وسوف تعمل بشكل فوري. للحصول على دليل كامل حول كيفية دمج ML Kit AutoML في تطبيقك، يُرجى الاطّلاع على المستندات ( Android وiOS). يتوفّر الرمز البرمجي الذي يتفاعل مع حزمة تطوير البرامج (SDK) لحزمة تعلّم الآلة في الملفَين ImageClassifier.kt
وImageClassifier.swift
على التوالي، حتى تتمكّن من البدء من هناك لاستكشاف آلية عمل التطبيقات.
هناك خياران لنشر النموذج: محلي وعن بعد.
- يُستخدَم النموذج المحلي بشكل أساسي لدمج نموذج تصنيف الصور في البرنامج الثنائي للتطبيق، على الرغم من أنّه يمكن أيضًا أن يوفّر نموذجًا محفوظًا في مساحة التخزين المحلية. باستخدام ميزة التجميع، يتوفّر النموذج للمستخدمين مباشرةً بعد تنزيل تطبيقك من "متجر التطبيقات" / "متجر Play"، وسيعمل بدون اتصال بالإنترنت.
- يعني النموذج عن بُعد أنّ النموذج مستضاف على Firebase ولن يتم تنزيله على جهاز المستخدم إلا عند الحاجة إليه لأول مرة. وبعد ذلك، سيعمل النموذج أيضًا بلا اتصال بالإنترنت.
تطبيق Android
- افتح "استوديو Android".
- استيراد تطبيق Android ضمن
android/mlkit-automl/
- (اختياري) يمكنك استخراج النموذج الذي نزّلته ونسخ محتواه على النموذج المضّمن في نموذج التطبيق.
- انقر الآن على "تشغيل" (
) في شريط أدوات "استوديو Android" وتأكَّد من إمكانية التعرّف على أنواع مختلفة من الزهور.
تطبيق iOS
- افتح Terminal وانتقِل إلى المجلد
ios/mlkit-automl/
. - تشغيل
pod install
لتنزيل البرامج الاعتمادية من خلال Cocoapods - شغِّل
open MLVisionExample.xcworkspace/
لفتح مساحة عمل المشروع في Xcode. - (اختياري) يمكنك استخراج النموذج الذي نزّلته ونسخ محتواه على النموذج المضّمن في نموذج التطبيق ضمن
ios/ml-automl/Resources/automl/
- انقر الآن على تشغيل (
) في شريط أدوات Xcode وتحقق من إمكانية التعرف على أنواع مختلفة من الزهور!
6- (اختياري) استخدام النموذج عن بُعد
يسمح لك نموذج ML Kit عن بُعد بعدم تضمين نماذج Tensorflow Lite في البرنامج الثنائي لتطبيقك ولكن يمكنك تنزيلها عند الطلب من Firebase عند الحاجة. للنماذج عن بُعد العديد من المزايا مقارنةً بالنماذج المحلية:
- برنامج ثنائي أصغر حجمًا للتطبيق
- القدرة على تحديث النماذج بدون تحديث التطبيق
- اختبار A/B مع نُسخ متعددة من نموذج
في هذه الخطوة، سننشر نموذجًا عن بُعد ونستخدمه في نماذج التطبيقات. يُرجى التأكّد من إكمال تدريب النموذج في الخطوة 4 من هذا الدرس التطبيقي حول الترميز.
نشر النموذج
- انتقِل إلى وحدة تحكُّم Firebase.
- اختَر "الدرس التطبيقي حول ترميز تعلُّم الآلة AutoML" الذي قمت بإنشائه مسبقًا.
- اختيار ML Kit > AutoML:
- حدد "الزهور" مجموعة البيانات التي قمت بإنشائها مسبقًا.
- تأكد من اكتمال مهمة التدريب، ثم حدد النموذج.
- اختَر نشر وأدخِل اسمًا له "mlkit_flowers".
التعرّف على الزهور باستخدام النموذج البعيد
يتم ضبط نماذج التطبيقات لاستخدام النموذج عن بُعد في حال توفّره. وبعد نشر النموذج البعيد، ستحتاج فقط إلى إعادة تشغيل التطبيقات لبدء تنزيل النموذج. يمكنك التحقّق من أنّ التطبيق يستخدم الطراز البعيد من خلال الانتقال إلى قسم "المصدر". القيمة في تذييل شاشة التطبيق. الاطلاع على قسم "تحديد المشاكل وحلّها" أدناه إذا لم ينجح الأمر.
تحديد المشاكل وحلّها
إذا كان نموذج التطبيق لا يزال يستخدم النموذج المحلي، يُرجى التحقّق من ضبط اسم الطراز البعيد بشكل صحيح داخل الرمز البرمجي.
تطبيق Android
- انتقِل إلى "
ImageClassifier.kt
" وابحث عن هذه المجموعة.
val remoteModel = FirebaseRemoteModel.Builder(REMOTE_MODEL_NAME).build()
- تحقَّق من تطابق اسم النموذج المحدّد في الرمز مع اسم النموذج الذي نشرته سابقًا عبر "وحدة تحكُّم Firebase".
- انقر الآن على "تشغيل" (
) في شريط أدوات "استوديو Android" لإعادة تشغيل التطبيق.
تطبيق iOS
- انتقل إلى
ImageClassifier.swift
وابحث عن هذه المجموعة،
return RemoteModel(
name: Constant.remoteAutoMLModelName,
allowsModelUpdates: true,
initialConditions: initialConditions,
updateConditions: updateConditions
)
- تحقَّق من تطابق اسم النموذج المحدّد في الرمز مع اسم النموذج الذي نشرته سابقًا عبر "وحدة تحكُّم Firebase".
- انقر الآن على "تشغيل" (
) في شريط أدوات Xcode لإعادة تشغيل التطبيق.
7. تهانينا
أنّك أجريت رحلة شاملة من تدريب نموذج تصنيف الصور باستخدام بيانات التدريب الخاصة بك باستخدام ميزة AutoML، ثم استخدِم النموذج في تطبيق للأجهزة الجوّالة باستخدام حزمة تعلُّم الآلة.
يُرجى الاطّلاع على المستندات لمعرفة كيفية دمج AutoML Vision Edge في ML Kit مع تطبيقك.
يمكنك أيضًا تجربة نماذج تطبيقات تعلّم الآلة التي نوفّرها للاطّلاع على ميزات أخرى في Firebase ML Kit.
نماذج Android
نماذج iOS