גילוי תנועה בווידאו

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

השוואה של ניטור תוכנתי לעומת ראייה אנושית
גילוי תנועה באמצעות תוכנת מחשב יעילה בהרבה היבטים מאשר שימוש בראייה אנושית. 

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

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

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

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

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

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

שגיאת גילוי חיובית (False positive error או false alarm) היא מצב שבו התוכנה מדווחת על תנועת עצם שהוגדר לה, כאשר למעשה לא התרחשה כלל תנועה שכזו והדבר נובע מהפרעות, רעשים, תנועת עצים ושיחים ברוח, ושינויי תאורה כמו צל שנוצר בשל תנועת עננים. מצב כזה בדרך כלל מפריע, אך אין בו סכנה למשתמש.

שגיאת גילוי שלילית (False negative error או mis detect) היא מצב שבו התרחש אירוע אך התוכנה איננה מדווחת עליו. מצב זה נותן למשתמש אשליה של הגנה, בעוד שבפועל הוא חשוף לסכנה אך לא נוקט בפעולה להתגונן מפניה. 

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

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

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

סוגי מרחבי גילוי תנועה
נהוג להפריד בענף זה בין שיטות לגילוי תנועה במרחבים סגורים (Indoor) לבין מרחבים פתוחים (Outdoor).

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

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

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

במערכות מקצועיות קיימות תכונות נוספות כמו מיסוך אזורים לגילוי תנועה (אזורי חוסר עניין) ותיחום אזורים (אזורי עניין) שבהם ניתן לקבוע פרמטרים שונים משאר התמונה, כמו למשל לקבוע רגישות שונה לגודל עצם או מהירותו באזורים שונים, ורגישות שונה לקונטרסט של האובייקט מהרקע שלו (יזהה רק כשיש ניגוד בולט בין האובייקט לרקע). ישנן תוכנות שמשתמשות ב"תיל ממעיד" וירטואלי (Tripwire), או "גדר וירטואלית" (Virtual Fence) - קו דמיוני שמצויר על גבי תמונת הווידאו, שחצייתו ומעבר מצידו האחד לצידו השני יגרום לגילוי תנועה, אבל תנועה משני צדדיו תהיה חוקית ולא תיצור גילוי תנועה. ישנן תוכנות שתומכות בפרספקטיבה, כך שאם נקבע שהרגישות לגילוי תנועה תוגדר לגודל אדם, היא תבדק על פי המרחק של האובייקט מהמצלמה. ישנן מערכות שניתן למדוד את מרחק התנועה, ולקבוע שתנועה שאיננה עולה על מרחק שנקבע לא תיצור התראה. במערכות אחרות משולבת יכולת מעקב אחר אובייקט, וצפיית מיקומו גם כאשר הוא מוסתר בתנועתו לפרקים מהמצלמה, כמו למשל תנועת אדם בין עצים.

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

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

טכניקה

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

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

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

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

בתחילת המאה ה-21 עקב פריחתן של מצלמות האינטרנט, החלו להופיע מוצרים ביתיים פשוטים וזולים המיועדים לשימוש ביתי, בשילוב עם מצלמות אינטרנט פשוטות. ככל שתחום המצלמות יתפתח, תחום זה עשוי להחליף את מערכות האזעקה המסורתיות או להשתלב לצידן, בשל יתרונותיו. בעשור הראשון של המאה ה-21 גילוי תנועה מתחיל להיות משולב במצלמות וידאו זולות לרכבים, ואף בהתקנים ניידים כמו מצלמת IP ומקליט DVR לרכב (אם כי ראוי לציין שברוב המקרים לא מדובר במקרים אלו בגילוי תנועה איכותי, וקשה לסמוך עליהם שיתנו אינדיקציות טובות).

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

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

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

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

ראו גם
 ראייה ממוחשבת

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

אבטחה
צילום
גלאים וחיישנים
ראייה ממוחשבת