Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "סמינר בנושאים מתקדמים בעיבוד תמונה"— Presentation transcript:

1 סמינר בנושאים מתקדמים בעיבוד תמונה
2D Optical Flow מאת: נעם רביד וגל סטר

2 Overview: הקדמה משוואת הגבלת התנועה (The Motion Constraint Equation)
The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

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

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

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

6 Overview: משוואת הגבלת התנועה (The Motion Constraint Equation) הקדמה
The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

7 משוואת הגבלת התנועה בדו-מימד: (the 2d motion constraint equation)
כפי שציינו, נתחיל בהנחה כי הבהירות באזור מסוים קטן מספיק, תישאר זהה לכל אורך רצף התמונות, למרות שייתכן ומיקום האזור ישתנה. נראה זאת ע"י הנוסחה הבאה: I(x,y,t) = I(x+δx, y+ δy, t+δt) כלומר בהירות פיקסל (x,y) נשארת קבועה גם אחרי שהוא זז למקום חדש, בפרק זמן δt. כלומר, אם (x,y) זהו פיקסל מסוים, ו-I(x,y,t) היא בהירות התמונה בפיקסל זה בזמן t, אז בהירות זו תהיה זהה גם לאחר זמן δt, כאשר הפיקסל זז

8 I(x,y,t) = I(x+δx, y+ δy, t+δt)
משוואת הגבלת התנועה בדו-מימד: המשך... (the 2d motion constraint equation) I(x,y,t) = I(x+δx, y+ δy, t+δt)

9 משוואת הגבלת התנועה בדו-מימד: המשך...
בהנחה ש-δx, δy, ו- δt קטנים מספיק, נוכל לפתח את הנוסחה עפ"י טור טיילור ונקבל: כאשר H.O.T הם ה-Higher Order Terms. כלומר, אלו המשך האיברים בטור טיילור, ואנו מניחים שערכיהם קטנים מאוד וניתנים להזנחה. נשים לב כי I(x,y,t) מצטמצם בשני אגפי המשוואה:

10 משוואת הגבלת התנועה בדו-מימד: המשך...
נחלק ב- δt ונקבל: זאת כאשר ו , אלו הם רכיבי ה-x וה-y של מהירות הפיקסל בתמונה, הנקראת ה-optical flow של התמונה. נשים לב גם כי ו- הם הנגזרות החלקיות של התמונה בנקודה (x,y,t). לנוחיות נגדיר את הנגזרות החלקיות בצורה הבאה:

11 משוואת הגבלת התנועה בדו-מימד: המשך...
לכן נקבל את המשוואה בצורה קומפקטית יותר: בעיית ה-Optical Flow מחפשת את הווקטור , ומשוואה זו היא אחת מ-2 המשוואות שנדרשות במערכת המשוואות כדי למצוא ווקטור זה.

12 Overview: The Aperture Problem הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

13 The Aperture Problem: בעיה זו נוצרת כתוצאה מכך שיש לנו רק משוואה אחת, שהיא המשוואה , ו-2 נעלמים (Vx, Vy) שאותם אנחנו רוצים למצוא. המשוואה יוצרת מרחב פתרונות שנראה כך:

14 The Aperture Problem: המשך...
ניתן לראות שחסרה לנו משוואה, ולכן נוצר מצב שרכיב אחד של התנועה הולך לאיבוד, ולא ניתן לשחזרו. המקסימום שניתן לעשות זה לחשב את ה-Normal Flow: חישוב ה-Normal Flow משמעו חישוב רכיב המהירות שכיוונו בניצב לכיוון שפת האובייקט בו אנו מתמקדים. משוואת הגבלת התנועה יוצרת ישר של פיתרונות אפשריים, במרחב מעל Vx,Vy, כאשר רק נקודה אחת על קו זה היא המהירות האמיתית. מתוך הפתרונות, הווקטור עם האורך הקטן ביותר על הקו נקרא Normal Flow, וזהו רכיב המהירות הניצב לשפה.

15 The Aperture Problem: המשך...
נקרא ל-Normal Flow ווקטור המהירות הנורמאלית, או לעומת זאת, רכיב המהירות המקביל לשפת האובייקט, , לא ניתן לגילוי. את כיוון וגודל המהירות הנורמאלית נוכל לבטא כך: נשים לב שאת שני הפרמטרים אנו יכולים לבטא רק על סמך הנגזרות החלקיות בצורה הבאה: הסבר על הכיוון: n יהיה הנירמול של (Ix,Iy), מכיוון שהווקטור המאונך לישר ax+by+c=0 הוא (a,b) הסבר על הגודל: נובע מהעובדה כי במכפלה סקלרית של שני ווקטורים u*v = |u|*|v|*cosa, במקרה שלנו u*v = -It, |u| = ||(Ix,Iy)||, ו-cosa = cos0 = 1

16 נראה כי התמונה בפנים זזה ימינה, נכון?
איך הבעיה נראית? נראה כי התמונה בפנים זזה ימינה, נכון?

17 כך נראים הדברים מאחורי הקלעים...
איך הבעיה נראית? כך נראים הדברים מאחורי הקלעים...

18 The Barber Pole Illusion…
דוגמה נוספת: The Barber Pole Illusion…

19 The Barber Pole Illusion: המשך...

20 Overview: חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

21 חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli)
לפני שניגש לבעיית מציאת ה- optical flow, ניתן לראות שהנוסחאות מאלצות אותנו לחשב את הנגזרות החלקיות. במאמר“Design of multi-dimensional derivative filters” (1994), חוקר בשם סימונצ'לי מציע דרך לחישוב: נעשה קונוולוציה של רצף התמונות עם פילטר מותאם, וכך נקבל את הנגזרות החלקיות. סימונצ'לי הריץ ניסויים רבים ולבסוף מצא פילטר שנותן את הנגזרות הטובות ביותר עבור האלגוריתם. סימונצ'לי השתמש בפילטר חד מימדי, שיפעל על הפיקסל המרכזי ו-2 הפיקסלים הסמוכים אליו בציר אליו אנו מחשבים את הנגזרת.

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

23 חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli): המשך...
עכשיו רק נותר להראות כיצד מחשבים בשיטה זו את הנגזרות, נעבוד עם 5 תמונות רצופות מזמנים ( t-2, t-1, t, t+1, t+2): חישוב Ix נעשה ע"י: קונוולוצית התמונה עם ווקטור הטשטוש בציר ה-t, כלומר קונוולוציה של כל פיקסל בתמונה עם הפיקסלים הזהים לו בתמונות הסמוכות ברצף. לאחר מכן קונוולוצית התמונה עם ווקטור הטשטוש בציר ה-y, ולבסוף קונוולוציה עם ווקטור הגזירה לציר ה-x. חישוב Iy נעשה באותו אופן. חישוב It נעשה ע"י קונוולוצית התמונה עם ווקטור הטשטוש לצירי ה-x וה-y, ולאחר מכן קונוולוציה עם ווקטור הגזירה לציר ה-t. נשים לב שבכוונה בחישוב הנגזרות החלקיות Ix ו-Iy אנחנו קודם כל עושים קונוולוציה לציר t, מכיוון שזה מצמצם לנו את 5 התמונות לתמונה אחת, וכך נחסוך זמן בשאר הפעולות. טשטוש נעשה בציר השני (ציר הX אם מחשבים נגזרת לפי Y וההפך) מכיוון שלא נעשה טשטוש בציר בו אנו רוצים למצוא את הנגזרת ( טשטוש יהרוס את הערכים הקיימים בתמונה ואף ירחיק אותנו ממציאת הפיתרון האמיתי).

24 חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli): המשך...

25 Overview: חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

26 האלגוריתם של לוקאס וקאנייד: (Lucas and Kanade)
לוקאס וקאנייד פרסמו מאמר בו הציעו אלגוריתם לפיתרון בעיית ה-aperture (1981). האלגוריתם מוצא משוואות נוספות למשוואה הקיימת: אם נתייחס לפיקסלים הקרובים אל הפיקסל שבחרנו כמייצגים את אותו אובייקט, נוכל להניח ש-flow שלהם זהה ל-flow הפיקסל הנבחר. לכן, אם נבחר סביבה בגודל k x k פיקסלים ונפתח את משוואת הגבלת התנועה לכל אחד מהם, נקבל מערכת של k2 משוואות עם 2 נעלמים. כלומר ה(u,v) זהה לכל הפיקסלים בסביבה הנבחרת.

27 האלגוריתם של לוקאס וקאנייד (Lucas and Kanade): המשך...
תתקבל מערכת הבאה: בעיה: יש לנו יותר נוסחאות מנעלמים! הפתרון: ניתן לראות שיתקבלו שני ווקטורים באורך 25, נרצה שהחיסור שלהם יהיה כמה שיותר קרוב לווקטור ה-0, כלומר הגודל שלו בריבוע ישאף ל-0

28 האלגוריתם של לוקאס וקאנייד (Lucas and Kanade): המשך...
המערכת ניתנת לפתירה בצורה יעילה יותר, אם נכפיל את המשוואה ב-AT מצד שמאל בכל אגף: כעת, המשוואה תיראה כך: נשים לב כי הסכומים נלקחים מכל הפיקסלים בסביבה שלנו.

29 פתירת מערכת המשוואות נבחן מתי מערכת זו ניתנת לפתירה:
המטריצה ATA צריכה להיות הפיכה (הפתרון ניתן ע"י (ATA)-1ATb) אסור שערכי המטריצה יהיו קטנים מידי בעקבות רעש אם ערכי המטריצה יהיו מאוד קטנים, הפתרון יהיה מאוד רגיש לרעש

30 דוגמא – Optic Flow

31 דוגמא – Optic Flow מה ניתן להסיק מהמטריצה ATA?
במקרה של שפה: הגרדיאנטים לאורך השפה יהיו גדולים ובאותו כיוון לכן, נקבל ערכים עצמיים l1 גדול ו- l2קטן.

32 דוגמא – Optic Flow מה ניתן להסיק מהמטריצה ATA?
במקרה של פינה: הגרדיאנטים בשני הכיוונים יהיו גדולים לכן, נקבל ערכים עצמיים l1 ו- l2 גדולים

33 דוגמא – Optic Flow מה ניתן להסיק מהמטריצה ATA?
במקרה של אזור אחיד: הגרדיאנטים בשני הכיוונים יהיו קטנים מאוד לכן, נקבל ערכים עצמיים l1 ו- l2 קטנים

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

35 טעויות באלגוריתם של לוקאס וקאנייד (Lucas & Kanade)
מהם הסיבות האופציונליות לשגיאות באלגוריתם? במקרה בו אין הרבה רעש בתמונה, טשטוש מאבד פרטים חשובים בתמונה לשווא. כאשר אחת מההנחות שלנו לא מתקיימת למשל : הבהירות של הפיקסלים לא קבועה ב-2 מופעים של האובייקט. התנועה שנעשתה היא גדולה. נקודה מסוימת לא זזה באותו קצב כמו שכניה (אם הסביבה גדולה מדי). לכן, יש לחשב את גודל הסביבה האידאלי.

36 Overview: האלגוריתם של הורן ושאנק (Horn and Schunck) הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

37 האלגוריתם של הורן ושאנק (Horn and Schunck)
הורן ושאנק הציעו במאמרם “Determining Optical Flow”(1981) הציעו פיתרון אחר לבעיית הגבלת התנועה.

38 האלגוריתם של הורן ושאנק (Horn and Schunck)
הוצע רעיון אחר למשוואה החסרה במערכת המשוואות שתוביל למציאת (Vx, Vy). הם יצאו מנקודת הנחה שברוב התמונה, המהירויות של האובייקטים אינן משתנות באופן קיצוני בין פיקסלים סמוכים.

39 האלגוריתם של הורן ושאנק (Horn and Schunck)
כלומר, מרחב המהירויות של הפיקסלים יהיה חלק יחסית וללא קפיצות, ולכן ניתן לומר שהנגזרות החלקיות של רכיבי המהירות יהיו קטנות. מכאן, נקבל נוסחה נוספת אותה נרצה לאפס:

40 האלגוריתם של הורן ושאנק (Horn and Schunck)
נבחר לפתור את מערכת המשוואות בשיטת כופלי לגרנג'. כלומר, למצוא מינימום למשוואה הבאה: אנו נבחר להשתמש ב- שערכו 1.0. מאמרים מסוימים מגדירים את ה- האופטימאלי מבחינתם כ-10, אך לאחר בדיקות נמצא שברוב המקרים אם נבחר שהוא 1 נקבל את התוצאות המדויקות ביותר. שיטת כופלי לגרנג' פותרת מערכת משוואות ע"י נגזרות חלקיות מסובכות שנבחר לא להיכנס אליהם פה.

41 האלגוריתם של הורן ושאנק (Horn and Schunck)
פתרון שיטת כופלי לגרנג' מביא לנו את הפתרונות הבאים: עבור: נשתמש בפתרונות אלו, כדי לפתח נוסחה איטרטיבית שתעזור לנו לחשב את המהירויות המדויקות ביותר:

42 האלגוריתם של הורן ושאנק (Horn and Schunck)
הסבר הנוסחה: K הוא מספר האיטרציה הנוכחית של הלולאה (בדרך כלל לא עובר את ה-100, למרות שאפשר לקבוע מקסימום כרצונך). V0 ו-U0 הם הערכות המהירות הראשוניות, בדרך כלל נציב בהם 0. ו הם ממוצע ערכי ה וה שקיבלנו בכל האיטרציות עד כה.

43 האלגוריתם של הורן ושאנק (Horn and Schunck)
רק נרצה לקבוע מתי האיטרציות יפסיקו, והאלגוריתם יחליט כי הגענו לפתרון מספק. על מנת לעשות זאת, נגדיר לכל שלב ווקטור בשם שיהיה שרשור של כל ווקטורי המהירות שמצאנו בשלב זה. כלומר, אם אנחנו עובדים עם תמונה בגודל NxM, נקבל ווקטור באורך NxMx2, מכיוון שלכל פיקסל יש מהירות המורכבת מ-2 רכיבים. אנחנו נקבע סף כלשהו קטן TOL – Tolerance Level, שנדע שכאשר יתקיים: משמע שהאלגוריתם הגיע לתוצאה הטובה ביותר ואין טעם להמשיך.

44 האלגוריתם של הורן ושאנק (Horn and Schunck)

45 Overview: דוגמאות ומימושים הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

46 דוגמאות ושימושים: Image sequence (single camera) Tracked sequence
Optical Flow Vectors

47 דוגמאות ושימושים: המשך...
eature=related

48 Overview: דוגמאות ומימושים הקדמה
משוואת הגבלת התנועה (The Motion Constraint Equation) The Aperture Problem חישוב הנגזרת עפ"י סימונצ'לי (Simoncelli) האלגוריתם של לוקאס וקאנייד (Lucas and Kanade) האלגוריתם של הורן ושאנק (Horn and Schunck) דוגמאות ומימושים סיכום

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

50 ביבליוגרפיה: J.L.Barron and N.A.Thacker, “Computing 2d and 3d optical Flow”, 2004. Wayne Bresky, “THE FEASIBILITY OF AN OPTICAL FLOW ALGORITHM FOR ESTIMATING ATMOSPHERIC MOTION “ B%20L9%20Optical%20Flow.ppt 2.html

51


Download ppt "סמינר בנושאים מתקדמים בעיבוד תמונה"

Similar presentations


Ads by Google