تستفيد واجهات برمجة التطبيقات في حزمة تعلّم الآلة تلقائيًا من نماذج تعلُّم الآلة التي درّبتها Google، وهي مصمَّمة لتغطية مجموعة كبيرة من التطبيقات. ومع ذلك، تتطلّب بعض حالات الاستخدام نماذج أكثر استهدافًا، ولهذا السبب تتيح لك بعض واجهات برمجة التطبيقات في حزمة تعلّم الآلة الآن استبدال النماذج التلقائية بنماذج LiteRT مخصّصة.
توفّر واجهة برمجة التطبيقات تصنيف الصور وواجهة برمجة التطبيقات اكتشاف العناصر وتتبُّعها إمكانية استخدام نماذج مخصّصة لتصنيف الصور، وهي متوافقة مع مجموعة من النماذج المُدرَّبة مسبقًا العالية الجودة على TensorFlow Hub أو النموذج المخصّص الذي درّبته باستخدام TensorFlow أو تعلُّم الآلة التلقائي (AutoML).
إذا كنت بحاجة إلى حلّ مخصّص لنطاقات أو حالات استخدام أخرى، يمكنك الانتقال إلى صفحة "تعلُّم الآلة على الجهاز فقط" للحصول على إرشادات بشأن جميع حلول وأدوات Google المتعلّقة بتعلُّم الآلة على الجهاز فقط.
مزايا استخدام حزمة تعلّم الآلة مع نماذج مخصّصة
في ما يلي مزايا استخدام نموذج مخصّص لتصنيف الصور مع ML Kit:
- واجهات برمجة تطبيقات عالية المستوى سهلة الاستخدام: لا حاجة إلى التعامل مع إدخال/إخراج النموذج المنخفض المستوى أو معالجة الصور المسبقة/اللاحقة أو إنشاء مسار معالجة.
- لا داعي للقلق بشأن ربط التصنيفات بنفسك، فستستخرج حزمة تعلُّم الآلة التصنيفات من البيانات الوصفية لنموذج LiteRT وتجري عملية الربط نيابةً عنك.
- يتيح استخدام نماذج مخصّصة من مجموعة كبيرة من المصادر، بدءًا من النماذج المدرَّبة مسبقًا والمنشورة على TensorFlow Hub إلى النماذج الجديدة المدرَّبة باستخدام TensorFlow أو AutoML.
- تم تحسينها لتتكامل مع واجهات برمجة التطبيقات الخاصة بالكاميرا في Android.
بالنسبة إلى رصد الأجسام وتتبُّعها تحديدًا:
- تحسين دقة التصنيف من خلال تحديد موقع العناصر أولاً ثم تشغيل المصنّف على مساحة الصورة ذات الصلة فقط
- توفير تجربة تفاعلية في الوقت الفعلي من خلال تقديم ملاحظات فورية للمستخدمين حول العناصر أثناء رصدها وتصنيفها
استخدام نموذج تصنيف صور مدرَّب مسبقًا
يمكنك استخدام نماذج LiteRT المدرَّبة مسبقًا، شرط أن تستوفي مجموعة من المعايير. من خلال TensorFlow Hub، نقدّم مجموعة من النماذج التي تم التحقّق منها، سواء كانت من Google أو من صنّاع نماذج آخرين، وتستوفي هذه المعايير.
استخدام نموذج منشور على TensorFlow Hub
توفّر منصة TensorFlow Hub مجموعة كبيرة من نماذج تصنيف الصور المدرَّبة مسبقًا، والتي أنشأها العديد من مطوّري النماذج، ويمكن استخدامها مع واجهات برمجة التطبيقات Image Labeling وObject Detection and Tracking. إليك الخطوات التي يمكنك اتّباعها:
- اختَر نموذجًا من مجموعة النماذج المتوافقة مع ML Kit.
- نزِّل ملف نموذج .tflite من صفحة تفاصيل النموذج. اختَر تنسيق نموذج يتضمّن بيانات وصفية إذا كان ذلك متاحًا.
- اتّبِع أدلّتنا حول Image Labeling API أو Object Detection and Tracking API للتعرّف على كيفية تجميع ملف النموذج مع مشروعك واستخدامه في تطبيق Android أو iOS.
تدريب نموذج تصنيف الصور الخاص بك
إذا لم يكن أي من نماذج تصنيف الصور المُدرَّبة مسبقًا مناسبًا لاحتياجاتك، تتوفّر طرق مختلفة لتدريب نموذج LiteRT الخاص بك، وقد تم توضيح بعضها ومناقشتها بالتفصيل في القسم التالي.
| خيارات لتدريب نموذج تصنيف الصور الخاص بك | |
|---|---|
| AutoML |
|
| تحويل نموذج TensorFlow إلى LiteRT |
|
AutoML
تتوافق نماذج تصنيف الصور التي تم تدريبها باستخدام AutoML مع النماذج المخصّصة في واجهتَي برمجة التطبيقات Image Labeling وObject Detection and Tracking API. تتيح واجهات برمجة التطبيقات هذه أيضًا تنزيل النماذج المستضافة على Cloud Storage.
لمزيد من المعلومات حول كيفية استخدام نموذج تم تدريبه باستخدام AutoML في تطبيقات Android وiOS، اتّبِع أدلة النماذج المخصّصة لكل واجهة برمجة تطبيقات، حسب حالة الاستخدام.
النماذج التي تم إنشاؤها باستخدام محوّل LiteRT
إذا كان لديك نموذج حالي لتصنيف الصور من TensorFlow، يمكنك تحويله باستخدام محوّل LiteRT. يجب التأكّد من أنّ النموذج الذي تم إنشاؤه يستوفي متطلبات التوافق التالية.
لمزيد من المعلومات حول كيفية استخدام نموذج LiteRT في تطبيقات Android وiOS، يُرجى اتّباع أدلتنا الخاصة بواجهة Image Labeling API أو واجهة Object Detection and Tracking API، وذلك حسب حالة الاستخدام.
توافق نماذج LiteRT
يمكنك استخدام أي نموذج لتصنيف الصور LiteRT مدرَّب مسبقًا، شرط أن يستوفي المتطلبات التالية:
المتّجهات المتعدّدة الأبعاد
- يجب أن يحتوي النموذج على موتر إدخال واحد فقط مع القيود التالية:
- تكون البيانات بتنسيق وحدات البكسل RGB.
- يكون نوع البيانات UINT8 أو FLOAT32. إذا كان نوع موتر الإدخال FLOAT32، يجب تحديد NormalizationOptions من خلال إرفاق البيانات الوصفية.
- يحتوي المتّجه على 4 أبعاد : BxHxWxC، حيث:
- B هو حجم الدفعة، ويجب أن يكون 1 (لا تتوفّر إمكانية الاستدلال على دفعات أكبر).
- يمثّل W وH عرض الإدخال وارتفاعه.
- C هو عدد القنوات المتوقّع، ويجب أن يكون 3.
- يجب أن يحتوي النموذج على موتر إخراج واحد على الأقل يتضمّن N فئة وبُعدَين أو 4 أبعاد:
- (1xN)
- (1x1x1xN)
- لا تتوفّر إلا النماذج ذات الرأس الواحد. قد تعرض النماذج المتعددة الرؤوس نتائج غير متوقعة.
البيانات الوصفية
يمكنك إضافة بيانات وصفية إلى ملف LiteRT كما هو موضّح في مقالة إضافة بيانات وصفية إلى نماذج LiteRT.
لاستخدام نموذج مع موتر إدخال FLOAT32، يجب تحديد NormalizationOptions في البيانات الوصفية.
ننصحك أيضًا بإرفاق هذه البيانات الوصفية بموتر الإخراج TensorMetadata:
- خريطة تصنيفات تحدّد اسم كل فئة من فئات الإخراج، وذلك كـ AssociatedFile من النوع TENSOR_AXIS_LABELS (بدون ذلك، لا يمكن عرض سوى فهارس فئات الإخراج الرقمية)
- تمثّل هذه السمة الحدّ الأدنى التلقائي للتقييم الذي لا يمكن عرض النتائج التي تقلّ عنه لأنّها تُعتبر غير دقيقة، وذلك على شكل ProcessUnit مع ScoreThresholdingOptions.