מודל הסינון לפי תנועה מאפשר לקצר את זמן החישוב על ידי חיתוך של קטעי וידאו ארוכים לפלחים קטנים יותר שמכילים אירוע תנועה. המודל הזה מאפשר להגדיר את רגישות התנועה, את אורך האירוע המינימלי, את חלון המבט לאחור ואת תקופת הצינון כדי להתאים את התפוקות של אירועי התנועה לתרחיש השימוש.
פרמטרים של מודל
למודל של מסנן התנועה יש ארבעה פרמטרים לשליטה, שבעזרתם אפשר לשנות את פלחי האירועים ואת אופן ההחזרה שלהם על ידי המודל.
| פרמטר | תיאור | דגל | ערך ברירת המחדל | ערכים זמינים |
|---|---|---|---|---|
| משך אירוע מינימלי | האורך המינימלי של אירוע תנועה שיתועד אחרי שאירוע תנועה הסתיים, בשניות. | --min-event-length INT |
10 (שניות) | 1 עד 3,600 |
| רגישות לזיהוי תנועה | רמת הרגישות של סינון אירועי התנועה במודל. רגישות גבוהה מגיבה יותר לתנועה ומספקת סינון אגרסיבי יותר של תנועה, כך שיזוהו יותר תנועות. | --motion-sensitivity STRING |
"medium" |
"high", "medium" או "low" |
| חלון מבט לאחור | כמות התוכן של הסרטון (בשניות) שהשירות מצלם לפני אירוע של תנועה שזוהתה. | --lookback-length INT |
3 (שניות) | 0 - 300 |
| תקופת צינון | אחרי שאירוע תנועה מסתיים, מתחילה תקופת צינון עם משך הזמן שצוין. במהלך תקופת הצינון, המודל לא רושם אירועי תנועה. | --cooldown-length INT |
300 (שניות) | 0 - 3600 |
רגישות לתנועה
כשמפעילים את מסנן התנועה, רגישות התנועה היא הגורם הכי חשוב שקובע כמה סרטונים של קטעים נוצרים מהמודל מתוך שידור וידאו.
ככל שמידת הרגישות לזיהוי תנועה גבוהה יותר, כך המודל רגיש יותר לרעשים ולתנועות קטנות. הגדרת הרגישות הגבוהה הזו מומלצת להגדרות שכוללות תאורה יציבה ומציגות אובייקטים קטנים יותר בתנועה (כמו צילומי אנשים מרחוק).
לעומת זאת, רגישות נמוכה היא הכי פחות רגישה להפרעות תאורה ולתנועות קטנות. ההגדרה הזו מתאימה למצבים שבהם יש יותר הפרעות תאורה, כמו בסביבה חיצונית. ההגדרה הזו היא האפשרות הכי אגרסיבית לסינון, ולכן היא מתעלמת מתנועות של אובייקטים קטנים.
משך אירוע מינימלי
משך האירוע המינימלי הוא משך הווידאו שהמודל מצלם אחרי שהוא מפסיק לזהות אירוע תנועה בפריים. ערך ברירת המחדל הוא 10 שניות, אבל אפשר לציין זמן בין שנייה אחת ל-3,600 שניות. אם מזוהה תנועה חדשה במהלך משך האירוע המינימלי, התנועה החדשה מתווספת לקטע הווידאו הנוכחי למשך אירוע התנועה החדש שזוהה בתוספת ספירה לאחור חדשה של משך האירוע המינימלי.

לדוגמה, נניח שיש סרטון של צומת עם שתי מכוניות שנעות בפריים. המכונית הראשונה חולפת בשלוש השניות הראשונות, והמכונית השנייה מגיעה שתי שניות אחריה. אם מגדירים את משך האירוע המינימלי לשנייה אחת, יש שני קטעי וידאו עם תנועה. קטע אחד בסרטון מכיל את המכונית הראשונה, וקטע אחר מכיל את המכונית השנייה. אבל אם מגדירים את אירוע התנועה לשלוש שניות, יש רק קטע וידאו אחד עם תנועה. המכונית השנייה מופיעה בפריים רק שתי שניות אחרי המכונית הראשונה.
כשמגדירים את אורך האירוע המינימלי, כדאי לחשוב באיזו תדירות בדרך כלל מתרחשים אירועי תנועה בסרטון וכמה מקטעי וידאו רוצים לשמור. אם אירועי התנועה מתרחשים לעיתים קרובות אבל אתם רוצים שרוב אירועי התנועה יישמרו בפלחי וידאו נפרדים, כדאי להגדיר את משך האירוע המינימלי לתקופה קצרה יותר. אם אירועי התנועה מתרחשים לעיתים רחוקות אבל אתם רוצים לקבץ אירועים יחד, הגדירו את משך האירוע המינימלי לתקופה ארוכה יותר כדי לתעד כמה אירועים באותו קטע וידאו.
חלון מבט לאחור
חלון המבט לאחור הוא פרק הזמן שקודם לרגע שבו מזוהה אירוע תנועה. החלון הזה שימושי כשרוצים לראות מה קורה בשניות שלפני שהמודל מזהה אירוע תנועה. ערך ברירת המחדל של חלון המבט לאחור הוא שלוש שניות, אבל אפשר לציין ערך בין אפס ל-300 שניות.
אפשר להשתמש בחלון מבט לאחור כדי לראות את המקור של אובייקטים בתנועה. אפשר גם להשתמש בחלון מבט לאחור כדי לראות מה היה בפריים שניות לפני שהתרחש אירוע התנועה. חלון מבט לאחור שימושי במצבים שבהם יש אובייקטים קטנים שנעים בפריים ולא מזוהים כאירוע תנועה. עם זאת, יכול להיות שהאובייקטים הקטנים שזזים בפריים גרמו לאירועי התנועה הגדולים יותר שזוהו.
תקופת צינון
תקופת צינון היא משך זמן שמתרחש אחרי אירוע תנועה ואחרי שמתועד אורך אירוע מינימלי. במהלך תקופת הצינון, התנועה שזוהתה לא מפעילה את מסנן התנועה. הטווח של התקופה הזו הוא בין אפס שניות ל-3,600 שניות. ברירת המחדל היא 300 שניות.
תקופת ההמתנה נועדה לאפשר למשתמשים לחסוך בעלויות החישוב. אם צפויים תזוזות בפריים ואתם רוצים לדעת רק מתי התנועה מתרחשת ולא אכפת לכם מה קורה אחר כך, אז הגדרת תקופת צינון היא שימושית.
שימוש במודל
אפשר להשתמש במודל של מסנן התנועה באמצעות Gemini Enterprise Agent Platform Vision SDK.
משתמשים בכלי vaictl של שורת הפקודה כדי להפעיל את המודל על ידי ציון applying encoded-motion-filter והעברת ערכים להגדרת פרמטרים של בקרה.
Gemini Enterprise Agent Platform Vision SDK
כדי לשלוח בקשה באמצעות מודל סינון התנועה, צריך להתקין את Gemini Enterprise Agent Platform Vision SDK.
מחליפים את המשתנים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- LOCATION_ID: מזהה המיקום. לדוגמה,
us-central1. אזורים נתמכים מידע נוסף - LOCAL_FILE.EXT: שם הקובץ של קובץ וידאו מקומי. לדוגמה,
my-video.mp4. - STREAM_ID: מזהה הזרם שיצרתם באשכול.
לדוגמה,
input-stream. -
--motion-sensitivity: הרגישות של סינון אירועי התנועה. האפשרויות הןhigh, medium, low. -
--min-event-length: משך הזמן המינימלי של אירוע תנועה בשניות. ערך ברירת המחדל הוא10שניות. הערכים הזמינים:1-3600. -
--lookback-length: משך חלון מבט לאחור לפני תחילת אירוע התנועה בשניות. ערך ברירת המחדל הוא3שניות. הערכים הזמינים:0-300. -
--cooldown-length: תקופת ההמתנה אחרי שמתרחש אירוע תנועה, בשניות. ערך ברירת המחדל הוא300שניות (5 דקות). הערכים הזמינים:0-3600. -
--continuous-mode: האם לשלוח במצב רציף. ערך ברירת המחדל הואtrue. - OUTPUT_DIRECTORY: הספרייה שבה רוצים לשמור את קובצי הפלט של פלחי הווידאו בפורמט MP4.
הצגת פרטי הפקודה
כדי לראות מידע נוסף על הפקודה ועל הפרמטרים האופציונליים שלה, מריצים את הפקודה הבאה:
vaictl send video-file applying motion-filter -h
סינון תוכן בקובץ מקומי באמצעות מודל סינון התנועה
הפקודה הזו שולחת רק קטעי וידאו שבהם המודל מזהה תנועה.
vaictl -p PROJECT_ID \
-l LOCATION_ID \
-c application-cluster-0 \
--service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT \
applying motion-filter --motion-sensitivity=medium \
--min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to streams STREAM_ID --loop
סינון תוכן של קובץ מקומי ושמירת הפלט באמצעות מודל סינון התנועה
הפקודה הזו משתמשת בדגל --continuous_mode כדי להפיק קובצי וידאו נפרדים לכל פלח תנועה.
vaictl -p PROJECT_ID \
-l LOCATION_ID \
-c application-cluster-0 \
--service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT --continuous-mode=false \
applying motion-filter --motion-sensitivity=medium \
--min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to mp4file --mp4-file-path=OUTPUT_DIRECTORY
שיטות מומלצות
מסנן התנועה הוא מודל קל משקל שנועד לצמצם את זמן החישוב בפענוח סרטונים מקודדים במהלך השידור. כדי להשתמש במסנן בצורה הטובה ביותר, צריך למקם מצלמה נייחת ישירות מול האובייקטים שרוצים לראות. לא כדאי לכלול ברקע של הפריים אובייקטים נעים לא חשובים. לדוגמה, אם פריים מכיל אובייקטים ברקע כמו עצים זזים, תנועה קבועה של מכוניות או צללים של אובייקטים זזים, המערכת תזהה את התנועה של האובייקטים האלה, שהם לא חשובים.
כדאי למקם אובייקטים שמעניינים אתכם בחזית ולצמצם ככל האפשר את מספר האובייקטים ברקע עם תנועה קבועה. לסיכום:
- משתמשים במצלמה סטילס.
- חשוב להימנע מרקע שזז כל הזמן.
- תנועות מינימליות לא יזוהו.
- מוודאים שהאובייקטים גדולים מספיק.
שיטות מומלצות לשימוש בתוך מבנים
אם אתם מצלמים בתוך מבנה עם תאורה קבועה ותנועה מינימלית ברקע, כדאי לפעול לפי השיטות המומלצות הבאות:
- הגברת הרגישות. האובייקטים במסגרת נוטים להיות גדולים יותר, ויש פחות רעשים במסגרת.
- משתמשים בחלונות מבט לאחור קטנים יותר ובאורך אירוע קצר יותר. התנועות בתוך הבית איטיות יותר, ויש מרחב מוגבל שבו יכולות להתרחש תנועות.
השיטות המומלצות האלה לשימוש בתוך מבנים מאפשרות למסנן התנועה לתעד תנועה של אובייקטים בזמן מינימלי.
שיטות מומלצות לשימוש בחוץ
בסביבות חיצוניות יש יותר משתנים בסצנות חיצוניות שיכולים להשפיע על הביצועים של המסנן. לדוגמה, צל של עץ זז או שינויים באור השמש בפריים מזוהים כתנועה במודל של מסנן התנועה. כדאי להביא בחשבון את התנאים הבאים ואת הדרך הטובה ביותר להגיב להם.
Situation 1:
דמיינו סרטון שמציג מדרכה שבה עוברים הולכי רגל מדי פעם. התנועות האלה יכולות להיות איטיות כמו הליכה רגילה או מהירות כמו מעבר של סקייטבורד. אפשר להיעזר בהנחיות הבאות:
- מגדירים ערך ארוך יותר לאורך החלון המינימלי ולחלון המבט לאחור. מהירות התנועות היא בטווח רחב יותר מאשר בתרחיש בתוך הבית, ולכן הגדלת אורך החלון המינימלי וחלון המבט לאחור מאפשרת למודל לזהות את אירוע התנועה המלא.
- מגדירים רגישות גבוהה יותר לתנועה. סביבה חיצונית מכילה יותר אובייקטים שזזים באופן טבעי, כמו עצים וצללים. כדי להתמקד רק באובייקטים מעניינים כמו אנשים ואופניים, כדאי להגדיר רגישות גבוהה יותר לתנועה כדי להימנע מזיהוי מתמיד של אובייקטים ברקע.
Situation 2:
אפשר ליצור סרטון אחר שמתמקד ברחוב שבו מכוניות נוסעות כל הזמן והולכי רגל עוברים מדי פעם. אפשר להיעזר בהנחיות הבאות:
- הגדרת רגישות בינונית או נמוכה: הגדרת רגישות נמוכה יותר מאפשרת למודל לזהות מגוון גדלים של אובייקטים נעים במסגרת.
- הגדרת חלון מבט לאחור ומשך אירוע מינימלי עם ערך קצר יותר. מכוניות וכלי רכב אחרים ברחוב נעים במהירות גבוהה משמעותית בהשוואה לאנשים ולאופניים. הגדרת ערך קצר יותר לפרמטרים האלה מתחשבת בעובדה שמהירות התנועה גבוהה יותר, ושאובייקטים נכנסים למסגרת ויוצאים ממנה במהירות.
- הגדרת זמן השהיה קצר. בגלל מהירות התנועה הגבוהה יותר, יכול להיות שהאובייקט הבא ייכנס לפריים זמן קצר אחרי האובייקט הראשון. לכן, זמן ההמתנה הקצר יותר נועד לפצות על כך.
מגבלות
מסנן התנועה תלוי במידה רבה בווקטור התנועה בכל פריים, ולכן יש כמה מגבלות שחשוב לזכור.
- זווית המצלמה: משתמשים במצלמה סטטית, כי במצלמה בתנועה יש כל הזמן תנועה בפריים.
- גודל האובייקט: כדאי לנסות למסגר את הנושאים כך שהאובייקטים העיקריים יופיעו במסגרת בגודל מספיק כדי להשיג את הביצועים הכי טובים באמצעות מסנן התנועה.
- תאורה: שינויים בתאורה – כמו שינוי פתאומי בבהירות בפריים או תנועות חזקות של צללים – עלולים לפגוע בביצועי המודל. טווח דינמי נמוך שגורם לבהירות דומה בסרטון כולו, ומשפיע על האופן שבו המודל מפרש את התנועה ופוגע בביצועים שלו.
- מיקום המצלמה: המודל מיועד לזיהוי תנועה בפריים. זה כולל תנועה ברקע, כמו רוח שמזיזה עץ או חפצים מחוץ למסגרת שיוצרים צללים. אם חלק גדול מהפריים מצביע על אובייקטים ברקע שיוצרים את התנועות האלה, יכול להיות שהדבר ישפיע על ביצועי המודל.