סצנה פופולרית בסדרה העכשווית "משחק הדיונון" מציגה מאות אנשים המשחקים במשחק "אור אדום, אור ירוק" (המתרגמים כנראה שכחו שהמשחק נקרא "1, 2, 3 - דג מלוח"). האנשים בסצנה מנסים לרוץ מנקודה אחת לשנייה מבלי להיתפס על ידי פסל גדול המסתובב על צירו [1]. כאשר הפסל מפנה גב למשתתפים הם רשאים לרוץ, וכאשר הוא מסתובב בחזרה עליהם לעצור. בזמן זה מזהה הפסל תזוזות, ופוסל את מי שזז. נסביר כיצד פועלת שיטת הזרימה האופטית בראייה ממוחשבת, המאפשרת לזהות תנועות בצילום וידאו.
זיהוי תנועה בצילום וידאו רציף הוא צורך בסיסי בראייה ממוחשבת. רובוטים משתמשים בו כדי לבצע שלל פעולות כמו עבודה בתיאום עם אדם או עם רובוט אחר [2], מערכות עזר לנהג משתמשות בו כדי לשערך מרחקים של עצמים ושל אנשים בסביבת הרכב [3], רחפנים נעזרים בזיהוי תנועה כדי להתייצב באוויר ולהימנע ממכשולים [4] ועוד. זיהוי התנועה מתאפשר בעזרת צילום רציף של הסביבה ומציאת ההבדלים בין תמונות עוקבות. בעזרת צילום שתי תמונות אפשר לתאר את התנועה שקרתה בין התמונה הראשונה לשנייה. זיהוי התנועה מבוצע בעזרת שיטה שנקראת "זרימה אופטית": התזוזה של כל נקודה (פיקסל) מתמונה אחת לתמונה הבאה מתוארת על ידי שני רכיבים - כיוון התנועה והעוצמה שלה (כלומר המרחק). תיאור כזה נקרא וקטור, ותיאור התזוזה של כל הפיקסלים נקרא "שדה וקטורי".
ב"משחק הדיונון" טעות בזיהוי עלולה להיות קטלנית, ולכן נדרש לשמור על מספר תנאים שיאפשרו דיוק בזיהוי התנועה וישמרו על רציפות בין התמונות:
- תנועות קטנות בין תמונה לתמונה: נרצה לצלם כך שבין שתי תמונות עוקבות לא יהיו שינויים מהותיים, אחרת נקבל סצנה שכולה זזה וכל המשתתפים שלנו ייפסלו. אפשר להשיג זאת בצילום רציף בקצב גבוה (עשרות ואפילו מאות תמונות בשנייה).
- תאורה רציפה: הבדלי תאורה יוצרים הפרשים בערכי הפיקסלים בתמונה, כך שגם אם הדמויות נותרות במקומן - ערכי הפיקסלים שלהן משתנים ויוצרים רושם שגוי לגבי התנועה. לכן, אם השמש שוקעת במהלך הצילום, או אפילו אם רק נורה אחת נכבית כשמצלמים במקום סגור ותאורת הסצנה משתנה - ניווכח שהסצנה כולה השתנתה.
- מיקום קבוע למצלמה: אם מיקום המצלמה משתנה בין תמונות עוקבות, קשה יותר להבין איזו תנועה קרתה. עדיף שהמצלמה תישאר סטטית, וכך יהיה קל יותר לזהות את התנועה.
- הנחה מקלה שנוכל לאמץ: פיקסלים שכנים מתנהגים באופן דומה (על פי מודל תנועה של גוף קשיח). כלומר, אם עצם מסויים נע ימינה חמישה צעדים, גם פיקסלים בסביבתו זזים חמישה צעדים.
כיצד נזהה תנועה בין תמונות עוקבות? נוכל לעקוב אחרי כל פיקסל ולבדוק אם הוא זהה לחלוטין לאותו הפיקסל בתמונה העוקבת. אם כן - לא קרתה תנועה, ואם לא - אז נוכל לחפש לאן הפיקסל הזה התקדם. כך, אם נניח כי המצלמה לא זזה בין צילום שתי התמונות - הרי שהמטרה שלנו זזה, ובמקרה זה ניאלץ לפסול את המתמודד.
סרטון מס' 1 - רשת דו-ממדית של קבוצות פיקסלים מתארת בעזרת חיצים לאן עברה כל קבוצת פיקסלים במעבר בין תמונות עוקבות. אפשר להסיק משיטה זו מידע מקומי עבור השתנות פיקסל בודד או קבוצת פיקסלים בודדת.
שיטה לפתרון בעיית זיהוי תנועה נפוצה נקראת שיטת "לוקאס קנאדה" [5]. שיטה זו מבוססת על הנחות רציפות התמונות כמתואר לעיל, ומבוססת על פתרון מערכת משוואות המתארות את השתנות התמונה עבור קבוצות פיקסלים בתמונות עוקבות.
חישוב ישיר של זרימה אופטית על כל פיקסל בנפרד יהיה יקר מאוד ובלתי יעיל. בנוסף, ייתכנו הרבה מקומות שהפיקסל יכול לעבור אליהם - כמו למשל במגרש משחקים שבו אנשים רבים לובשים מדים זהים: פיקסל מסוים בבגד של שחקן אחד יכול לעבור למיקום זהה אצל שחקן אחר, ונקבל שגיאה בזיהוי התנועה. לכן שיטות זיהוי תנועה מודרניות משתמשות בנקודות מפתח - למשל פינות של עצמים [6] - כדי לחשב את התנועה רק עבור נקודות עניין בתמונה.
סרטון מס' 2 וסרטון מס' 3 - הפיקסלים שהשתנו מתמונה לתמונה מסומנים כאן בצבע צפוף. שיטה זו מאפשרת להבין מאפיינים גלובליים של התנועה במקום לרדת לרזולוציה של פיקסל בודד או קבוצת פיקסלים בודדת.
היום קיימות גם שיטות חדשות לחישוב שדה הזרימה במהירות, בדיוק וביעילות חישובית. ישנן שיטות מבוססות למידה עמוקה [7], לצד שיטות מסורתיות יותר המבוססות על אופטימיזציה של מספר פרמטרים ופתרון מערכות משוואות לא-ליניאריות המבוססות על נגזרות של התמונה [8]. זרימה אופטית נחשבת לאלגוריתם בסיסי בראייה ממוחשבת, אך אפליקציות מודרניות רבות משתמשות בה לזיהוי תנועה במרחב. כמו כן, היא נמצאת בשימוש נרחב במערכות אוטונומיות רבות כמו רחפנים ורובוטים שעובדים לצד בני אדם, וגם במשחקי ילדים קטלניים בנטפליקס.
תמונות וסרטונים: צבר דולב
עריכה: שיר רוזנבלום-מן
מקורות וקריאה נוספת:
[1] סצנת המשחק "1, 2, 3 דג מלוח" מתוך הסדרה "משחק הדיונון"
[2] סרטון המתאר מחקר בנושא זיהוי תנועה לצורכי ממשק אדם-מכונה
[3] מדריך לתכנון מערכת זרימה אופטית בפייתון הכולל דוגמאות קוד והסברים מתמטיים
[4] מערכת GPS וזרימה אופטית עבור רחפנים
[5] סרטון הסבר על שיטת "לוקאס קנאדה" לפתרון בעיות זרימה אופטית
[6] זיהוי שפות ועצמים בתמונה, פוסט במדע גדול, בקטנה
[7] סרטון המתאר שיטה שנקראת RAFT לחישוב זרימה אופטית בעזרת מערכת לומדת
[8] מציאת שפות של עצמים בתמונה, פוסט במדע גדול, בקטנה