نشكرك على متابعة Google I / O. عرض جميع الجلسات عند الطلب مشاهدة عند الطلب

تصنيف الفيديو

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

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

على سبيل المثال ، يمكن تدريب نموذج التعرف على إجراء الفيديو لتحديد الأفعال البشرية مثل الجري والتصفيق والتلويح. توضح الصورة التالية إخراج نموذج تصنيف الفيديو على Android.

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

البدء

إذا كنت تستخدم نظامًا أساسيًا بخلاف Android أو Raspberry Pi ، أو إذا كنت معتادًا بالفعل على TensorFlow Lite APIs ، فقم بتنزيل نموذج تصنيف الفيديو المبدئي والملفات الداعمة. يمكنك أيضًا إنشاء خط أنابيب مخصص للاستدلال باستخدام مكتبة دعم TensorFlow Lite .

تنزيل النموذج المبدئي مع البيانات الوصفية

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

ذكري المظهر

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

مثال على Android

فطيرة التوت

يستخدم مثال Raspberry Pi TensorFlow Lite مع Python لإجراء تصنيف مستمر للفيديو. قم بتوصيل Raspberry Pi بكاميرا ، مثل Pi Camera ، لتصنيف الفيديو في الوقت الفعلي. لعرض النتائج من الكاميرا ، قم بتوصيل شاشة بـ Raspberry Pi واستخدم SSH للوصول إلى غلاف Pi (لتجنب توصيل لوحة مفاتيح بـ Pi).

قبل البدء ، قم بإعداد Raspberry Pi الخاص بك باستخدام Raspberry Pi OS (يفضل تحديثه إلى Buster).

مثال على Raspberry Pi

نموذج الوصف

شبكات الفيديو المتنقلة ( MoViNets ) هي عائلة من نماذج تصنيف الفيديو الفعالة والمحسّنة للأجهزة المحمولة. تُظهر MoViNets دقة وكفاءة على أحدث طراز في العديد من مجموعات بيانات التعرف على إجراء الفيديو على نطاق واسع ، مما يجعلها مناسبة تمامًا لمهام التعرف على إجراء الفيديو .

هناك ثلاثة متغيرات من طراز MoviNet لـ TensorFlow Lite: MoviNet-A0 و MoviNet-A1 و MoviNet-A2 . تم تدريب هذه المتغيرات باستخدام مجموعة بيانات Kinetics-600 للتعرف على 600 فعل بشري مختلف. MoviNet-A0 هو الأصغر والأسرع والأقل دقة. MoviNet-A2 هو الأكبر والأبطأ والأكثر دقة. MoviNet-A1 هو حل وسط بين A0 و A2.

كيف تعمل

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

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

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

عمل احتمالا
رقص رباعي 0.02
إبرة خيوط 0.08
نتف الأصابع 0.23
يد تلوح 0.67

يتوافق كل إجراء في المخرجات مع ملصق في بيانات التدريب. يشير الاحتمال إلى احتمال عرض الإجراء في الفيديو.

مدخلات النموذج

يقبل النموذج دفقًا من إطارات فيديو RGB كمدخلات. حجم فيديو الإدخال مرن ، ولكنه يتطابق بشكل مثالي مع دقة التدريب النموذجية ومعدل الإطارات:

  • MoviNet-A0 : 172 × 172 بمعدل 5 إطارات في الثانية
  • MoviNet-A1 : 172 × 172 بمعدل 5 إطارات في الثانية
  • MoviNet-A1 : 224 × 224 بمعدل 5 إطارات في الثانية

من المتوقع أن تحتوي مقاطع الفيديو المدخلة على قيم ألوان ضمن النطاق 0 و 1 ، باتباع اصطلاحات إدخال الصور الشائعة.

داخليًا ، يحلل النموذج أيضًا سياق كل إطار باستخدام المعلومات التي تم جمعها في الإطارات السابقة. يتم تحقيق ذلك عن طريق أخذ الحالات الداخلية من إخراج النموذج وإعادتها إلى النموذج للإطارات القادمة.

مخرجات النموذج

يُرجع النموذج سلسلة من التسميات والدرجات المقابلة لها. الدرجات عبارة عن قيم لوغاريتمية تمثل التنبؤ لكل فئة. يمكن تحويل هذه الدرجات إلى احتمالات باستخدام وظيفة softmax ( tf.nn.softmax ).

    exp_logits = np.exp(np.squeeze(logits, axis=0))
    probabilities = exp_logits / np.sum(exp_logits)

داخليًا ، يتضمن إخراج النموذج أيضًا حالات داخلية من النموذج وإعادته إلى النموذج للإطارات القادمة.

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

يتم إنشاء أرقام قياس الأداء باستخدام أداة قياس الأداء . MoviNets تدعم وحدة المعالجة المركزية فقط.

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

اسم النموذج بحجم دقة * جهاز وحدة المعالجة المركزية **
MoviNet-A0 (عدد صحيح كمي) 3.1 ميجا بايت 65٪ بكسل 4 5 مللي ثانية
بكسل 3 11 مللي ثانية
MoviNet-A1 (عدد صحيح كمي) 4.5 ميجا بايت 70٪ بكسل 4 8 مللي ثانية
بكسل 3 19 مللي ثانية
MoviNet-A2 (عدد صحيح كمي) 5.1 ميجا بايت 72٪ بكسل 4 15 مللي ثانية
بكسل 3 36 مللي ثانية

* تم قياس دقة Top-1 على مجموعة بيانات Kinetics-600 .

** يتم قياس وقت الاستجابة عند التشغيل على وحدة المعالجة المركزية باستخدام مؤشر ترابط واحد.

تخصيص النموذج

تم تدريب النماذج المدربة مسبقًا للتعرف على 600 فعل بشري من مجموعة بيانات Kinetics-600 . يمكنك أيضًا استخدام نقل التعلم لإعادة تدريب نموذج للتعرف على الإجراءات البشرية غير الموجودة في المجموعة الأصلية. للقيام بذلك ، تحتاج إلى مجموعة من مقاطع الفيديو التدريبية لكل إجراء من الإجراءات الجديدة التي تريد تضمينها في النموذج.

لمزيد من المعلومات حول نماذج الضبط الدقيق للبيانات المخصصة ، راجع البرنامج التعليمي MoViNets repo و MoViNets .

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

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