مهمة تحديد ما تمثله الصورة تسمى تصنيف الصورة . يتم تدريب نموذج تصنيف الصور للتعرف على فئات مختلفة من الصور. على سبيل المثال ، يمكنك تدريب نموذج للتعرف على الصور التي تمثل ثلاثة أنواع مختلفة من الحيوانات: الأرانب والهامستر والكلاب. يوفر TensorFlow Lite نماذج مُحسّنة مُدربة مسبقًا يمكنك نشرها في تطبيقات الهاتف المحمول الخاصة بك. تعرف على المزيد حول تصنيف الصور باستخدام TensorFlow هنا .
توضح الصورة التالية إخراج نموذج تصنيف الصور على Android.
البدء
إذا كنت جديدًا على TensorFlow Lite وتعمل بنظام Android أو iOS ، فمن المستحسن أن تستكشف أمثلة التطبيقات التالية التي يمكن أن تساعدك على البدء.
يمكنك الاستفادة من واجهة برمجة التطبيقات الجاهزة من TensorFlow Lite Task Library لدمج نماذج تصنيف الصور في بضعة أسطر من التعليمات البرمجية. يمكنك أيضًا إنشاء خط أنابيب مخصص للاستدلال باستخدام مكتبة دعم TensorFlow Lite .
يوضح مثال Android أدناه طريقة التنفيذ لكلتا الطريقتين مثل lib_task_api و lib_support ، على التوالي.
إذا كنت تستخدم نظامًا أساسيًا بخلاف Android / iOS ، أو إذا كنت معتادًا بالفعل على TensorFlow Lite APIs ، فقم بتنزيل نموذج بدء التشغيل والملفات الداعمة (إن أمكن).
نموذج الوصف
كيف تعمل
أثناء التدريب ، يتم تغذية نموذج تصنيف الصور بالصور والتسميات المرتبطة بها. كل تسمية هي اسم مفهوم أو فئة مميزة سيتعلم النموذج التعرف عليها.
بالنظر إلى بيانات التدريب الكافية (غالبًا مئات أو آلاف الصور لكل ملصق) ، يمكن لنموذج تصنيف الصور أن يتعلم التنبؤ بما إذا كانت الصور الجديدة تنتمي إلى أي من الفئات التي تم التدريب عليها. تسمى عملية التنبؤ هذه بالاستدلال . لاحظ أنه يمكنك أيضًا استخدام نقل التعلم لتحديد فئات جديدة من الصور باستخدام نموذج موجود مسبقًا. لا يتطلب التعلم بالنقل مجموعة بيانات تدريب كبيرة جدًا.
عندما تقدم لاحقًا صورة جديدة كمدخلات إلى النموذج ، فإنها ستخرج احتمالات الصورة التي تمثل كل نوع من أنواع الحيوانات التي تم تدريبها عليها. قد يكون أحد الأمثلة على الإخراج كما يلي:
نوع الحيوان | احتمالا |
---|---|
أرنب | 0.07 |
الهامستر | 0.02 |
كلب | 0.91 |
يتوافق كل رقم في المخرجات مع ملصق في بيانات التدريب. من خلال ربط المخرجات بالتسميات الثلاثة التي تم تدريب النموذج عليها ، يمكنك أن ترى أن النموذج قد تنبأ باحتمالية عالية أن الصورة تمثل كلبًا.
قد تلاحظ أن مجموع كل الاحتمالات (للأرنب والهامستر والكلب) يساوي 1. هذا نوع شائع من المخرجات للنماذج ذات الفئات المتعددة (انظر Softmax لمزيد من المعلومات).
نتائج غامضة
نظرًا لأن احتمالات المخرجات ستجمع دائمًا إلى 1 ، إذا لم يتم التعرف على الصورة بثقة على أنها تنتمي إلى أي من الفئات التي تم تدريب النموذج عليها ، فقد ترى الاحتمالية موزعة عبر الملصقات دون أن تكون أي قيمة واحدة أكبر بشكل ملحوظ.
على سبيل المثال ، قد يشير ما يلي إلى نتيجة غامضة:
مُلصَق | احتمالا |
---|---|
أرنب | 0.31 |
الهامستر | 0.35 |
كلب | 0.34 |
اختيار نموذج معماري
يوفر لك TensorFlow Lite مجموعة متنوعة من نماذج تصنيف الصور التي تم تدريبها جميعًا على مجموعة البيانات الأصلية. تتوفر بنيات النماذج مثل MobileNet و Inception و NASNet على TensorFlow Hub . لاختيار أفضل نموذج لحالة الاستخدام الخاصة بك ، تحتاج إلى النظر في البنى الفردية وكذلك بعض المفاضلات بين النماذج المختلفة. تستند بعض مقايضات النماذج هذه إلى مقاييس مثل الأداء والدقة وحجم النموذج. على سبيل المثال ، قد تحتاج إلى نموذج أسرع لإنشاء ماسح ضوئي للرمز الشريطي بينما قد تفضل نموذجًا أبطأ وأكثر دقة لتطبيق التصوير الطبي. لاحظ أن نماذج تصنيف الصور المقدمة تقبل أحجامًا مختلفة من المدخلات. بالنسبة لبعض الطرز ، يشار إلى هذا في اسم الملف. على سبيل المثال ، يقبل نموذج Mobilenet_V1_1.0_224 إدخالاً يبلغ 224 × 224 بكسل. تتطلب جميع الطرز ثلاث قنوات ملونة لكل بكسل (أحمر وأخضر وأزرق). تتطلب النماذج الكمية بايت واحد لكل قناة ، وتتطلب النماذج العائمة 4 بايت لكل قناة. توضح عينات كود Android و iOS كيفية معالجة صور الكاميرا بالحجم الكامل بالتنسيق المطلوب لكل طراز.الاستخدامات والقيود
تُعد نماذج تصنيف الصور TensorFlow Lite مفيدة في التصنيف أحادي التسمية ؛ أي ، التنبؤ بالتسمية الفردية التي من المرجح أن تمثلها الصورة. يتم تدريبهم على التعرف على 1000 فئة من فئات الصور. للحصول على قائمة كاملة بالفئات ، راجع ملف الملصقات في ملف zip للنموذج . إذا كنت تريد تدريب نموذج للتعرف على فئات جديدة ، فراجع تخصيص النموذج . بالنسبة لحالات الاستخدام التالية ، يجب عليك استخدام نوع مختلف من النماذج:- توقع نوع وموضع كائن واحد أو أكثر داخل صورة (انظر اكتشاف الكائن )
- توقع تكوين صورة ، على سبيل المثال الموضوع مقابل الخلفية (انظر التقسيم )
تخصيص النموذج
يتم تدريب النماذج المدربة مسبقًا المقدمة للتعرف على 1000 فئة من الصور. للحصول على قائمة كاملة بالفئات ، راجع ملف الملصقات في ملف zip للنموذج . يمكنك أيضًا استخدام نقل التعلم لإعادة تدريب نموذج للتعرف على الفئات غير الموجودة في المجموعة الأصلية. على سبيل المثال ، يمكنك إعادة تدريب النموذج للتمييز بين الأنواع المختلفة من الأشجار ، على الرغم من عدم وجود أشجار في بيانات التدريب الأصلية. للقيام بذلك ، ستحتاج إلى مجموعة من صور التدريب لكل من الملصقات الجديدة التي ترغب في تدريبها. تعرف على كيفية إجراء نقل التعلم باستخدام TFLite Model Maker ، أو في التعرف على الزهور باستخدام مختبر كود TensorFlow.معايير الأداء
يتم قياس أداء النموذج من حيث مقدار الوقت الذي يستغرقه النموذج لتشغيل الاستدلال على قطعة معينة من الأجهزة. كلما انخفض الوقت ، زادت سرعة النموذج. يعتمد الأداء الذي تحتاجه على تطبيقك. يمكن أن يكون الأداء مهمًا لتطبيقات مثل الفيديو في الوقت الفعلي ، حيث قد يكون من المهم تحليل كل إطار في الوقت قبل رسم الإطار التالي (على سبيل المثال ، يجب أن يكون الاستدلال أسرع من 33 مللي ثانية لإجراء الاستدلال في الوقت الفعلي على دفق فيديو 30 إطارًا في الثانية) . يتراوح أداء نماذج MobileNet الكمي TensorFlow Lite من 3.7 مللي ثانية إلى 80.3 مللي ثانية. يتم إنشاء أرقام قياس الأداء باستخدام أداة قياس الأداء .اسم النموذج | حجم النموذج | جهاز | NNAPI | وحدة المعالجة المركزية |
---|---|---|---|---|
Mobilenet_V1_1.0_224_quant | 4.3 ميجا بايت | Pixel 3 (Android 10) | 6 مللي ثانية | 13 مللي ثانية * |
Pixel 4 (Android 10) | 3.3 مللي ثانية | 5 مللي ثانية * | ||
iPhone XS (iOS 12.4.1) | 11 مللي ثانية ** |
* 4 خيوط مستخدمة.
** خيطان مستخدمان على iPhone للحصول على أفضل نتيجة أداء.
دقة النموذج
يتم قياس الدقة من حيث عدد المرات التي يصنف فيها النموذج صورة بشكل صحيح. على سبيل المثال ، يمكن توقع أن يصنف نموذج بدقة معلنة تبلغ 60٪ صورة بشكل صحيح بمعدل 60٪ من الوقت.
مقاييس الدقة الأكثر صلة هي Top-1 و Top-5. يشير Top-1 إلى عدد المرات التي تظهر فيها التسمية الصحيحة على أنها التسمية ذات الاحتمال الأكبر في إخراج النموذج. يشير Top-5 إلى عدد المرات التي تظهر فيها التسمية الصحيحة في أعلى 5 احتمالات في إخراج النموذج.
تتراوح دقة Top-5 في نماذج TensorFlow Lite من 64.4 إلى 89.9٪.
حجم النموذج
يختلف حجم النموذج الموجود على القرص باختلاف أدائه ودقته. قد يكون الحجم مهمًا لتطوير الأجهزة المحمولة (حيث قد يؤثر على أحجام تنزيل التطبيق) أو عند العمل مع الأجهزة (حيث قد تكون مساحة التخزين المتاحة محدودة).
تتراوح أحجام نماذج TensorFlow Lite المحددة لشبكة MobileNet من 0.5 إلى 3.4 ميجابايت.
مزيد من القراءة والموارد
استخدم الموارد التالية لمعرفة المزيد حول المفاهيم المتعلقة بتصنيف الصور: