تصنيف الصورة

مهمة تحديد ما تمثله الصورة تسمى تصنيف الصور . يتم تدريب نموذج تصنيف الصور للتعرف على فئات مختلفة من الصور. على سبيل المثال، يمكنك تدريب نموذج للتعرف على الصور التي تمثل ثلاثة أنواع مختلفة من الحيوانات: الأرانب والهامستر والكلاب. يوفر TensorFlow Lite نماذج مُحسّنة مُدربة مسبقًا والتي يمكنك نشرها في تطبيقات الهاتف المحمول الخاصة بك. تعرف على المزيد حول تصنيف الصور باستخدام TensorFlow هنا .

الصورة التالية توضح مخرجات نموذج تصنيف الصور على نظام أندرويد.

لقطة شاشة لمثال Android

البدء

إذا كنت مستخدمًا جديدًا لـ TensorFlow Lite وتعمل مع Android أو iOS، فمن المستحسن استكشاف أمثلة التطبيقات التالية التي يمكن أن تساعدك على البدء.

يمكنك الاستفادة من واجهة برمجة التطبيقات الجاهزة من مكتبة المهام TensorFlow Lite لدمج نماذج تصنيف الصور في بضعة أسطر فقط من التعليمات البرمجية. يمكنك أيضًا إنشاء مسار الاستدلال المخصص الخاص بك باستخدام مكتبة دعم TensorFlow Lite .

يوضح مثال Android أدناه تنفيذ كلا الطريقتين مثل lib_task_api و lib_support على التوالي.

عرض مثال أندرويد

عرض مثال iOS

إذا كنت تستخدم نظامًا أساسيًا غير Android/iOS، أو إذا كنت معتادًا بالفعل على واجهات برمجة التطبيقات TensorFlow Lite ، فقم بتنزيل النموذج المبدئي والملفات الداعمة (إن أمكن).

تحميل نموذج البداية

نموذج الوصف

كيف تعمل

أثناء التدريب، يتم تغذية نموذج تصنيف الصور بالصور والتسميات المرتبطة بها. كل تسمية هي اسم مفهوم أو فئة مميزة سيتعلم النموذج التعرف عليها.

بالنظر إلى بيانات التدريب الكافية (في كثير من الأحيان مئات أو آلاف الصور لكل تسمية)، يمكن لنموذج تصنيف الصور أن يتعلم التنبؤ بما إذا كانت الصور الجديدة تنتمي إلى أي من الفئات التي تم تدريبه عليها. وتسمى عملية التنبؤ هذه الاستدلال . لاحظ أنه يمكنك أيضًا استخدام نقل التعلم لتحديد فئات جديدة من الصور باستخدام نموذج موجود مسبقًا. لا يتطلب نقل التعلم مجموعة بيانات تدريب كبيرة جدًا.

عندما تقوم بعد ذلك بتقديم صورة جديدة كمدخل للنموذج، فإنه سيخرج احتمالات الصورة التي تمثل كل نوع من أنواع الحيوانات التي تم تدريبه عليها. قد يكون مثال الإخراج كما يلي:

نوع الحيوان احتمالا
أرنب 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 codelab.

معايير الأداء

يتم قياس أداء النموذج من حيث مقدار الوقت الذي يستغرقه النموذج لتشغيل الاستدلال على قطعة معينة من الأجهزة. كلما قل الوقت، كان النموذج أسرع. الأداء الذي تحتاجه يعتمد على التطبيق الخاص بك. يمكن أن يكون الأداء مهمًا لتطبيقات مثل الفيديو في الوقت الفعلي، حيث قد يكون من المهم تحليل كل إطار في الوقت قبل رسم الإطار التالي (على سبيل المثال، يجب أن يكون الاستدلال أسرع من 33 مللي ثانية لإجراء الاستدلال في الوقت الفعلي على دفق فيديو بمعدل 30 إطارًا في الثانية) . يتراوح أداء نماذج MobileNet الكمية من TensorFlow Lite من 3.7 مللي ثانية إلى 80.3 مللي ثانية. يتم إنشاء أرقام قياس الأداء باستخدام أداة قياس الأداء .
اسم النموذج حجم النموذج جهاز نابي وحدة المعالجة المركزية
Mobilenet_V1_1.0_224_quant 4.3 ميجابايت بكسل 3 (أندرويد 10) 6 مللي ثانية 13 مللي ثانية*
بكسل 4 (أندرويد 10) 3.3 مللي ثانية 5 مللي ثانية *
آيفون XS (iOS 12.4.1) 11 مللي ثانية **

* 4 خيوط مستخدمة.

** 2 خيط يستخدم على الايفون للحصول على أفضل نتيجة أداء.

دقة النموذج

يتم قياس الدقة من حيث عدد المرات التي يصنف فيها النموذج الصورة بشكل صحيح. على سبيل المثال، من المتوقع أن يقوم النموذج الذي تبلغ دقته المعلنة 60% بتصنيف صورة بشكل صحيح بمعدل 60% من الوقت.

مقاييس الدقة الأكثر صلة هي Top-1 وTop-5. يشير Top-1 إلى عدد المرات التي تظهر فيها التسمية الصحيحة كتسمية ذات احتمالية أعلى في مخرجات النموذج. يشير أعلى 5 إلى عدد مرات ظهور التسمية الصحيحة في أعلى 5 احتمالات في مخرجات النموذج.

تتراوح دقة نماذج TensorFlow Lite من أعلى 5 نماذج MobileNet من 64.4 إلى 89.9%.

حجم النموذج

يختلف حجم النموذج الموجود على القرص باختلاف أدائه ودقته. قد يكون الحجم مهمًا لتطوير الأجهزة المحمولة (حيث قد يؤثر على أحجام تنزيل التطبيقات) أو عند العمل مع الأجهزة (حيث قد تكون سعة التخزين المتوفرة محدودة).

تتراوح أحجام نماذج MobileNet الكمية من TensorFlow Lite من 0.5 إلى 3.4 ميجابايت.

مزيد من القراءة والموارد

استخدم الموارد التالية لمعرفة المزيد حول المفاهيم المتعلقة بتصنيف الصور: