סיווג וידאו

סיווג וידאו הוא משימת למידת מכונה של זיהוי מה סרטון מייצג. מודל סיווג וידאו מאומן על מערך וידאו המכיל קבוצה של מחלקות ייחודיות, כגון פעולות או תנועות שונות. המודל מקבל מסגרות וידאו כקלט ומוציא את ההסתברות של כל מחלקה להיות מיוצגת בסרטון.

מודלים של סיווג וידאו וסיווג תמונות משתמשים שניהם בתמונות כקלט כדי לחזות את ההסתברויות של תמונות אלה השייכות למחלקות מוגדרות מראש. עם זאת, מודל סיווג וידאו מעבד גם את היחסים המרחביים-זמניים בין פריימים סמוכים כדי לזהות את הפעולות בסרטון.

לדוגמה, ניתן לאמן מודל זיהוי פעולות וידאו לזהות פעולות אנושיות כמו ריצה, מחיאות כפיים ונופפות. התמונה הבאה מציגה את הפלט של מודל סיווג וידאו באנדרואיד.

צילום מסך של דוגמה לאנדרואיד

להתחיל

אם אתה משתמש בפלטפורמה שאינה אנדרואיד או Raspberry Pi, או אם אתה כבר מכיר את ממשקי ה-API של TensorFlow Lite , הורד את מודל סיווג הווידאו המתחיל ואת הקבצים התומכים. אתה יכול גם לבנות צינור מסקנות מותאם אישית משלך באמצעות ספריית התמיכה של TensorFlow Lite .

הורד מודל מתחיל עם מטא נתונים

אם אתה חדש ב-TensorFlow Lite ועובד עם Android או Raspberry Pi, חקור את היישומים לדוגמה הבאים כדי לעזור לך להתחיל.

דְמוּי אָדָם

אפליקציית אנדרואיד משתמשת במצלמה האחורית של המכשיר לסיווג וידאו רציף. ההסקה מתבצעת באמצעות TensorFlow Lite Java API . אפליקציית ההדגמה מסווגת מסגרות ומציגה את הסיווגים החזויים בזמן אמת.

דוגמה לאנדרואיד

פאי פטל

הדוגמה של Raspberry Pi משתמשת ב-TensorFlow Lite עם Python כדי לבצע סיווג וידאו רציף. חבר את ה-Raspberry Pi למצלמה, כמו מצלמת Pi, כדי לבצע סיווג וידאו בזמן אמת. כדי לצפות בתוצאות מהמצלמה, חברו צג ל-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 x 172 ב-5 פריימים לשנייה
  • MoviNet-A1 : 172 x 172 ב-5 פריימים לשנייה
  • MoviNet-A1 : 224 x 224 ב-5 פריימים לשנייה

לסרטוני הקלט צפויים ערכי צבע בטווח של 0 ו-1, בהתאם למוסכמות הקלט התמונות הנפוצות.

באופן פנימי, המודל מנתח גם את ההקשר של כל מסגרת באמצעות מידע שנאסף במסגרות קודמות. זה מושג על ידי נטילת מצבים פנימיים מפלט הדגם והזנתו חזרה למודל עבור פריימים קרובים.

פלטי דגם

הדגם מחזיר סדרה של תוויות והציונים התואמים להן. הציונים הם ערכי logit המייצגים את התחזית עבור כל מחלקה. ניתן להמיר את הציונים הללו להסתברויות באמצעות הפונקציה 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 אלפיות השנייה

* דיוק מוביל נמדד במערך הנתונים Kinetics-600 .

** השהייה נמדדת בעת הפעלה על מעבד עם חוט 1.

התאמה אישית של הדגם

המודלים שהוכשרו מראש מאומנים לזהות 600 פעולות אנושיות ממערך הנתונים של Kinetics-600 . אתה יכול גם להשתמש בלימוד העברה כדי לאמן מחדש מודל לזהות פעולות אנושיות שאינן בסט המקורי. לשם כך יש צורך בסט סרטוני הדרכה לכל אחת מהפעולות החדשות שתרצו לשלב במודל.

למידע נוסף על כוונון עדין של מודלים על נתונים מותאמים אישית, ראה את המדריך של MoViNets ו- MoViNets .

קריאה נוספת ומשאבים

השתמש במשאבים הבאים כדי ללמוד עוד על מושגים הנדונים בדף זה: