TECHNION – Israel Institute of Technology Department of Electrical Engineering The Vision and Image Sciences Laboratory Parallel Tracking and Mapping Reconstruction using Edgelets :מגישים רם ברכה אלעד בן שמחון :מנחים אלי אפלבוים ישי כמון 2102 דצמבר 1 תוכן עניינים רשימת סמלים וקיצורים 3................................... ................................ ................................ פרק :1תקציר ומבוא 4....................................... ................................ ................................ 1.1 תקציר 4............ ................................ ................................ ................................ 1.2 מבוא 5............. ................................ ................................ ................................ פרק :2אלגוריתם מיפוי ועקיבה מבוסס נקודות עניין 6.............................. ................................ 2.1הנחות יסוד 6......................................... ................................ ................................ 2.2מיפוי נקודות עניין בתלת מימד 7................ ................................ ................................ 2.3מסקנות 8.............. ................................ ................................ ................................ פרק :3איתור שפות 9........................................ ................................ ................................ Data Association 3.1 9......................... ................................ ................................ 3.2מציאת שפות בתמונה 11......................... ................................ ................................ 3.3חיפוש אנכי 11....................................... ................................ ................................ פרק :4חיפוש אפיפולרי של שפות 13................... ................................ ................................ 4.1רקע תיאורטי 13..................................... ................................ ................................ 4.2חיפוש לאורך הקו האפיפולרי 14................ ................................ ................................ פרק :5אלמנט שפה בתלת ממד 16..................... ................................ ................................ 5.1ייצוג Edgeletבתלת ממד 16.................. ................................ ................................ 16.............................. ................................ ................................ Triangulation 5.2 5.3השלכת שפה תלת ממדית לתמונה 18........................................ ................................ פרק :6סיכום 19.............. ................................ ................................ ................................ 6.1תוצאות 19............ ................................ ................................ ................................ 6.2הצעות להמשך 23.................................. ................................ ................................ פרק :7ביבליוגרפיה 24...................................... ................................ ................................ 2 רשימת סמלים וקיצורים .Parallel Tracking and Mapping - PTAM האלגוריתם עליו מבוסס הפרויקט. – Edgelet אלמנט שפה ,חלק קצר וישר מקומית של שפה שיכולה להיות ארוכה ועקמומית. תהליך העקיבה – אלגוריתם המשתמש במודל תלת ממדי על מנת לשערך את מיקום המצלמה בכל רגע נתון. תהליך המיפוי – אלגוריתם שמשערך מיקום תלת ממד של אובייקטים על סמך הופעתם מתמונות. טרנספורמציה - SE3טרנספורמציה המיוצגת ע"י מטריצה המורכבת ממטריצת סיבוב ווקטור הזזה .נסמן טרנספורמציה המעבירה מקואורדינטות של מצלמה לקואורדינטות העולם כ- . תמונת מקור – התמונה בה אותרה השפה לראשונה ע"י אלגוריתם .Canny תמונת מטרה – תמונה חדשה בה אנו מחפשים את השפה בחיפוש אפיפולרי. קואורדינטות עולם – מערכת הצירים המוחלטת .המערכת נקבעת ע"י מיקום התמונה הראשונה. – camProj הטלה מתלת ממד לתמונה לפי הטלה פרספקטיבית ומודל מצלמת חריר. 3 פרק : 0תקציר ומבוא 0.0תקציר עקיבה אחר מצלמה ,בסביבה לא ידועה ,הינה בעיה נלמדת שהניבה פתרונות רבים. ישנם מגוון שימושים ואפליקציות לעקיבה כגון ,Augmented Realityקביעת מסלול הצילום בוודאו ועוד .הפתרונות המצויים בראייה ממוחשבת ,כגון monocular SLAMו ,Recursive SFM -הינם פתרונות שהתפתחו לאחרונה המאפשרים ביצוע עקיבה בזמן אמת .למרות זאת ,פתרונות אלו לוקים בחסר כאשר המצלמה מוזזת בתנועות מהירות לעומת אלגוריתמי עקיבה המשתמשים בסביבה ידועה. פרויקט זה הינו החלק הראשון במימוש ,PTAMאלגוריתם מיפוי ועקיבה ,תוך שימוש בקווי מתאר .קווי המתאר הינם סגמנטים בעלי חסינות לתזוזות מהירות. פרויקט זה יתאר בניית מודל תלת ממדי אשר ישמש בהמשך לביצוע העקיבה. 4 0.2מבוא עקיבה בזמן אמת אחר מצלמה הינה בעיה מוכרת בעלת מגוון שימושים .לאחרונה עולה הדרישה לעקיבה אחר מצלמה בסצנה לא ידועה .אלגוריתמים אלו נדרשים לבצע מיפוי של סצנה לא מוכרת למודל ובו זמנית לבצע עקיבה אחר תנועת המצלמה על פי מודל זה .כל זאת תחת אילוצי זמן אמת. פרויקט זה מבוסס על אלגוריתם ,PTAMהמפצל את ביצוע העקיבה והמיפוי לשני תהליכים נפרדים המבוצעים במקביל .תכונה זו מאפשרת להריץ את האלגוריתם במחשב מרובה ליבות ובכך לקבל תוצאות המותאמות לזמן אמת. מיפוי הסצנה נעשה ע"י איתור נקודות עניין (לרוב פינות) ושערוך מיקומם במרחב. נקודת עניין מאופיינת כמרכז של תלאי פיקסלים ,סביבת פיקסלים בעלת תכונה משותפת ,המאפשרת התאמה נוחה של אותה נקודה במספר תמונות. ישנה בעיה הנוצרת מעקיבה תחת תנועה מהירה של המצלמה מכיוון שתנועה זו גורמת לטשטוש רב ובלתי צפוי של התמונה המצולמת .טשטוש "מורח" את סביבת הפיקסלים והופך את נקודות העניין לבלתי ניתנות להתאמה. בניגוד לנקודות עניין ,קווי מתאר הינם אלמנטים חד ממדיים שאינם מאופיינים על ידי סביבתם אלה ע"י שינוי בבהירות התמונה .שפות בתמונה ,שנמצאות בכיוון התנועה ,אינן מושפעות מהטשטוש ולכן ניתנות לעקיבה .אפילו שפות שאינן בכיוון תנועת המצלמה ניתנות לעקיבה תחת שערוך אמפליטודת הטשטוש. בפרויקט זה ננסה לפתור את הבעיות הנוצרות מתנועה מהירה של המצלמה .יתואר כיצד ניתן לבנות מודל תלת ממדי מבוסס שפות ,כיצד לאתר שפות בתמונה ,כיצד להתגבר על בעיית התאמת השפות וכיצד לשערך את מיקומם במרחב. 5 פרק :2אלגוריתם מיפוי ועקיבה מבוסס נקודות עניין פרויקט זה מתבסס על אלגוריתם .Parallel Tracking and Mapping אלגוריתם זה ממפה סצנה לא ידועה בעזרת נקודות עניין שמוגדרות כפינות. נתחיל בתיאור תהליך המיפוי של האלגוריתם אשר יהווה בסיס למיפוי שפות בהמשך .המיפוי הסופי יהיה מורכב מאלמנטים של נקודות ושפות יחד. 2.0הנחות יסוד א .מודל מצלמת חריר והטלה פרספקטיבית בעלת .Barrel Radial Distortion ב .הסצנה מצולמת באמצעות מצלמה בעלת קצב ריענון תמונות של ].30[Hz כל הפרמטרים של המצלמה ידועים ושוערכו בתהליך כיול אפריורי. – אורך מוקד העדשה. – מיקום מרכז המצלמה. – פרמטר עיוות העדשה. ג .תהליך העקיבה מספק מיקומים של פריימים חדשים ביחס לראשית צירים שנקבעה מראש .מיקום זה מיוצג באמצעות טרנספורמציה מקואורדינאטות העולם לקואורדינטת המצלמה. ד .תהליך העקיבה מספק את העומק הממוצע של נקודות העניין בתמונה .עומק זה ישוערך לפי נקודות עניין תלת ממדיות שנמצאו בפריים החדש. 6 2.2מיפוי נקודות עניין בתלת מימד ראשית ,תהליך המיפוי מקבל תמונה חדשה שהועברה מתהליך העקיבה .מהתמונה נבנית פירמידה של 4רמות רזולוציה שונות מ 640X480ועד 80X60פיקסלים. מטרת הפירמידה הינה למצוא פינות בגדלים שונים בתמונה וע"י כך להגדיל את מספר נקודות העניין שאותרו בתמונה. על מנת לחלץ נקודות עניין בתמונה ,תהליך המיפוי מפעיל את אלגוריתם FAST Corner Detectionלמציאת פינות בכל רמה בפירמידה .לאחר מכן מתבצע סינון הפינות שהתקבלו בעזרת אלגוריתם ( Non Maximal Suppressionהשארת הפינה בעלת הציון הגבוה ביותר מתוך סביבה קרובה של פינות) .בנוסף ,מנופות פינות בעלות ציון Shi Tomasiנמוך מרף שנקבע מראש. נקודות עניין מאופיינות ע"י סביבה של 8X8פיקסלים כאשר מיקום הנקודה הוא מרכז הסביבה. לאחר מכן ,מבצעים חיפוש אפיפולרי לאיתור אותה הנקודה בתמונה נוספת. התמונה הנבחרת הינה התמונה הקרובה במרחב למיקום מרכז המצלמה בתמונה הנוכחית .בחיפוש האפיפולרי משתמשים בשערוך מיקומי הפריימים שהתקבל מתהליך העקיבה. על מנת למצוא נקודה בתמונה ,יבוצע חיפוש לאורך הקו האפיפולרי במקטע הנקבע ע"י העומק הממוצע של עצמים בתמונה .נתון זה יתקבל גם הוא מתהליך העקיבה וקיים בהנחות הפרויקט .החיפוש אינו מבוצע עד לעומק אינסופי אלה יוגבל לקטע קצר. בתמונה הנוספת ישנן נקודות עניין שהתקבלו מאותו תהליך איתור פינות .נחפש התאמה לנקודת העניין ע"י מעבר על נקודות העניין בתמונה החדשה ברדיוס מצומצם מסביב לקו האפיפולרי ובאותה רמת פירמידה .ההתאמה תעשה ע"י השוואת סביבות הפיקסלים. לאחר מציאת התאמה בין נקודות ,יבוצע שערוך תלת ממד ,Triangulation ,של נקודה בעזרת הנקודות התואמות ומיקומי הפריימים הידועים .נקודת תלת ממד תיוצג ע"י מיקום במרחב ותוכנס למפה. 7 2.2מסקנות תהליך שחזור תלת מימד מבוסס נקודות עניין מסתמך על סביבת הנקודות לצורך מציאת התאמה בתמונות שונות .התאמה זו מתבצעת בצורה קלה ומאפשרת התאמה בוודאות גבוהה כאשר מצלמים במנוחה או בתנועה איטית. בתמונה שצולמה תוך כדי תנועה מהירה יתקבל טשטוש .טשטוש זה הינו רב ובעל השפעה גדולה על התמונה .עצם שצולם מתמונה חדה ועצם שצולם בתמונה מטושטשת לא יראו אותו הדבר .איתור פינות בתמונה מניח כי פינה היא סביבת פיקסלים בה יש שינוי רמות אפור בכל כיוון הזזה של סביבת הפיקסלים. הפינה הימנית בתמונה תהפוך תחת תזוזה מהירה לאובייקט הדומה יותר לשפה, כמו בתמונה האמצעית .במקרה כזה ,הפינה לא תסומן כנקודת עניין ולא תתבצע התאמה בחיפוש האפיפולרי וכתוצאה מכך לא יתבצע שחזור תלת מימד. במקרים בהם כן תתבצע התאמה בין שתי נקודות בתמונות שונות ,התאמה זו ככל הנראה תהיה התאמה שגויה. נקודות עניין אינן מתאימות למיפוי סצנה בתזוזות מהירות .עקיבה המתבססת על מודל פינות אמורה להתבצע תחת תנועה איטית ו"חלקה" לקבלת עקיבה אופטימלית. 8 פרק :2איתור שפות שפות הם אובייקטים חד ממדיים שאינם תלויים בסביבתם .בפרק זה נתאר את תהליך חילוץ השפות מתמונה והתאמתם לשפות בתמונות אחרות. Data Association 2.0 התאמה של נקודות עניין מבוססות פינות ,מתבצעת ע"י השוואה של סביבת הנקודות .בעזרת ,zero mean SSDחיסור פיקסלים מתאימים ליצירת פונקציית שגיאה ,ניתן לקבוע את טיב ההתאמה. כאשר משתמשים באלמנטים של שפות נוצרת בעיה של שגיאות התאמה .שפה אינה מאופיינת ע"י סביבת פיקסלים ולכן ישנו קושי להתאים שפה אחת לאחרת .שפות בתמונה הינן למעשה הבדלים גבוהים ברמות אפור בתמונה ,נגזרות מקסימליות של בהירות ,ולכן כל שפה דומה לאחרת .בנוסף ,אין אפשרות להשתמש בערך הנגזרת בגלל הבדלי התאורה בין התמונות. שפה בתלת ממד שהתקבלה מהתאמות שגויות תשפיע מאוחר יותר על תהליך העקיבה .במקרה הטוב ,התאמה שכזו לא תמצא בפריים חדש ולא תתרום מידע לחיפוש ,כלומר לא יהיה ניתן לשערך על סמך התאמה זו את מיקום המצלמה. במקרה הרע ,שפה תלת ממדית זו תותאם שוב לשפה שגויה ותגרום לשערוך לא נכון. דבר נוסף המושפע מההתאמות השגויות הינן אופטימיזציות המודל התלת ממדי. תהליך העקיבה משתמש באופטימיזציות ( )Bundle Adjustmentעל המפה להקטנת השגיאות המצטברות .אופטימיזציות אלו רגישות מאוד לדגימות שהינן Bundle Adjustment .outliersממזער את השגיאות המתקבלות בין שפה שהושלכה לתמונה לבין שפה שנמצאה בחיפוש בתמונה ע"י שינוי מיקומי הפריימים ומיקומי האלמנטים בתלת מימד .התאמה שגויה שחמקה אל תוך האופטימיזציה תגרום להזזה שגויה של שאר השפות ,הנקודות וכל מיקומי המצלמות. 9 נתאר מס' טכניקות לפתרון בעיית ההתאמה: א .כל שפה מתאפיינת בנוסף למיקומה בקוטביות .נגדיר את כיוון השפה כך ששמאל לשפה הינם פיקסלים כהים וימין לשפה הינם פיקסלים בהירים. הגדרה זו של קוטביות משמשת לפסילת התאמת שפות בעלות קוטביות הפוכה. ב .כאשר נחפש שפה בתמונה נגדיר טווח חיפוש צר סביב המיקום המשוער ההתחלתי .נגביל את החיפוש בחיפוש אפיפולרי ובחיפוש אנכי בתמונה. ג .לאחר שחזור תלת ממד של שפה מ 2-תמונות נוסיף אותה למפה רק לאחר בדיקה נוספת מול פריים שלישי .חלק זה יתואר בפרק שחזור תלת ממד. ד .כאשר נעבד תמונה חדשה בחיפוש אחר שפות ,נשליך לתמונה שפות קיימות במפה וננפה מועמדים לשחזור בתמונה שקרובים לשפות קיימות אלו. טכניקה זו תמנע חיפוש וניסיון לשחזור של שפה שכבר קיימת ובנוסף תמנע שחזור של שפות קרובות אחת לשנייה אשר מועדות להתאמות שגויות. 2.2מציאת שפות בתמונה על פי המאמר Edgeletבתמונה הינו חלק קצר וישר מקומית של שפה שיכולה להיות ארוכה ועקמומית. על מנת לאתר שפות בתמונה ראשית נבצע טשטוש לתמונה עם גרעין בגודל 3x3על מנת לסנן רעשים בתמונה .לאחר מכן ,נפעיל את אלגוריתם Canny Edge Detectionלמציאת תמונת שפות .אלגוריתם זה מייצר תמונת שפות כאשר כל שפה הינה בעלת רוחב של פיקסל בודד ומיקומה הינו הנגזרת המקסימלית האזורית. 11 על מנת לחלק את השפות ל Edgeletsביצעו כותבי המאמר שינוי בשלב הLinker- של אלגוריתם Cannyע"מ שיחלק את השפות בנקודות עקמומיות ל.Edgelets - משיקולי פשטות המימוש ,החלטנו להפעיל לאחר אלגוריתם Cannyאת אלגוריתם Hough Transformעל תמונת השפות ע"מ לבצע חלוקת שפות המתאימה להגדרת ה.Edgelets- הפלט של אלגוריתם זה הינו סדרה של קווים ישרים בתמונה בגודל של 01 פיקסלים .לאחר מכן ,נדרש לסובב את האלמנטים על מנת שיתאימו לקוטביות שהוגדרה .ביצענו בדיקת קוטביות ב 5נקודות לאורך השפה וקבענו את הקוטביות לפי הממוצע (מנגנון זה נועד לקבוע קוטביות של שפה בתמונה בצורה החלטית גם כאשר הקוטביות משתנה לאורך השפה) .אלמנט שפה בתמונה ייוצג ע"י 2נקודות הקצה .הגדרנו את הנקודות כך שהנקודה הראשונה הינה בכיוון הקוטביות כלומר חיסור יהיה וקטור בכיוון ה.Edgelet- 2.2חיפוש אנכי על מנת לחלץ שפות ביצענו ממוצע לתמונה והפעלנו את אלגוריתם .Cannyממוצע זה יכול להשפיע על המיקום הסופי של ה Edgeletsולכן נדרש לבצע חיפוש אנכי בתמונת רמות האפור על מנת למצוא את המיקום המדויק. החיפוש מתחיל בהגדרת חמש נקודות לאורך המיקום המשוער של ה .Edgelet-בכל נקודה מבוצע חיפוש בכיוון אנכי ל ,Edgelet-לאורך חמישה פיקסלים בלבד ,אחר הגרדיאנט המקסימלי הקרוב ביותר ובקוטביות המתאימה. בסוף החיפוש מתקבלות נקודות בעלות גרדיאנט עם אמפילטודה מקסימלית וכיוון מסוים .על מנת לנפות התאמות שגויות ,נלקחת זווית הגרדיאנט שהינה הMedian- מתוך כל הזויות והיא תהיה רף להשוואה עבור שאר הזוויות .נקודה עם גרדיאנט בעל זווית ששונה מה Median-ביותר מ 5-מעלות מסומנת כשגויה. במקרה בו לאחר הסינון יתקבלו פחות מ 2-נקודות מתאימות החיפוש יסומן ככישלון .כאשר החיפוש מצליח אנו מבצעים Regressionעל הנקודות להתאמת קו ישר דרכם .במידה ומקדם העקמומיות של הקו המתקבל גדול מרף שנקבע הקו 11 ימצא מתאים והחיפוש מוגדר כהצלחה .לאחר מציאת הקו נבצע תיקון למיקום השפה בתמונה לפי תוצאות ה.Regression- חיפוש אנכי זה יאפשר בהמשך לאתר שפות לאחר השלכה לתמונה חדשה וסינון שפות קצרות מידי או עקמומיות ולבצע תיקון למיקומם המשוער בתמונה. 12 פרק : 4חיפוש אפיפולרי של שפות חיפוש שפות דומה לחיפוש נקודות עניין בכמה מובנים ,אך ישנן בעיות נוספות שנוצרות מחיפוש שפות .בפרק זה נסביר בקצרה את ההתאמות הדרושות לשפות. 4.0רקע תיאורטי גיאומטריה אפיפולרית היא מערכת החוקים הגיאומטריים החלים על שתי תמונות של סצנה תלת ממדית שצולמו ממקומות שונים .קיימים יחסים בין מיקום הנקודה במרחב לבין ההשלכה שלה על מישור התמונה שמובילים לאילוצים שונים בין הנקודות בשתי התמונות .יחסים אלו נכונים בהנחת מודל מצלמת חריר. חיפוש אפיפולרי משתמש בתנאים גאומטריים אלו .בעזרת טרנספורמציה בין מצלמה אחת לשנייה מתקבל קו אינסופי אשר לאורכו שוכנת הנקודה אותה מחפשים בתמונה השנייה. לרוב ,תנאים גאומטריים אלו מחושבים ע"י המרה למשוואות אלגבריות וכפל מטריצות ( .)Essential Matrixבפרויקט זה נרצה להגביל את תחום החיפוש בתמונה לתחום מצומצם על מנת להימנע מהתאמות שגויות ולכן נשתמש בחשבון גאומטרי. ניתן לצמצם את טווח החיפוש על הקו בהינתן עומק נקודות העניין בתמונה. מגדירים וקטור כיוון מנורמל ̂ שהינו הווקטור המקשר בין מרכז המצלמה לנקודה בתמונה .נסמן את העומק הממוצע של נקודות העניין כעומק .בנוסף מגדירים את סטיית התקן 𝜎. העומק המינימלי לחיפוש יהיה לכן ̂ 𝜎 ̂ 𝜎 והעומק המקסימלי .משוואת שתי הנקודות על הישר מקיימות : ̂ 𝜎 ̂ 𝜎 13 כעת ,מטילים את על מישור המצלמה הימנית .ההטלות יתחמו את הקו האפיפולרי ויאפשרו לחפש את הנקודה על קו קצר במקום קו אינסופי. 4.2חיפוש לאורך הקו האפיפולרי בחיפוש מעשי ייתכן כי הנקודה שאותה מחפשים לא תהיה בדיוק על הקו האפיפולרי ולכן יש צורך לחפש גם בסביבת הקו .לצורך כך ,בעת חיפוש אפיפולרי של נקודות ,הוגדר אזור ברדיוס מסוים מסביב לקו האפיפולרי שבתוכו יבוצע חיפוש הנקודה .כל הנקודות מתחום זה חולצו וסביבתם הושוותה לסביבת הנקודה שאנו מחפשים .במידה ונמצאה התאמה ניתן יהיה לשחזר את מיקום הנקודה במרחב ע"י טריאנגולציה. חיפוש של שפות הינו שונה מאחר ואנו לא יכולים להשתמש במידע הקיים בסביבת ה ,Edgelet-מטרת הפרויקט הינה להיעזר באלמנטים שאינם "נמרחים" .על מנת לבצע חיפוש שפות נשתמש בקו האפיפולרי המתאים למרכז ה.Edgelet- בהינתן הקו האפיפולרי ,יבוצע חיפוש אחר Edgeletsמתאימים לאורך הקו בתמונת השפות ,שהתקבלה מאלגוריתם .Cannyהשתמשנו באלגוריתם Bresenham למעבר על קו ישר בתמונה .במהלך המעבר על הקו כאשר ניתקל בפיקסל שהינו חלק משפה (פיקסל לבן בתמונת הפלט של )Cannyנשתמש בסביבה מרובעת בגודל 9 פיקסלים לחיפוש פיקסלים לבנים נוספים וע"י סביבה זו נמצא את כיוונו .כעת, נשערך את מיקום ה Edgelet-ע"י התאמת קו באורך של 01פיקסלים ע"פ המרכז 14 והכיוון שהתקבל .קו זה יועבר לחיפוש אנכי ורק אם תמצא שם שפה הוא יילקח כמועמד להתאמה. קווים מקבילים לקו האפיפולרי שיתקבלו בצורה זו יפסלו .קו מקביל הינו קו שנמצא בדיוק לאורך הווקטור המחבר בין מרכז מצלמת המקור לתמונת המקור, ווקטור ̂ .במקרה זה שפה זו נראית בפריים המקורי כנקודה ולכן מקרה זה לא יתכן. דרגת החופש בכיוון :Zיתכן ש Edgelet-שהינו חלק משפה ארוכה יותאם לאותה השפה בתמונה החדשה אך לא לאותו החלק מהשפה .מקרה זה הינו מקרה תקין. אלמנט Edgeletתלת ממדי כפי שיוסבר בפרק הבא הינו קו אינסופי .כאשר מבצעים את השחזור מבצעים זאת ע"י חיתוך שני מישורים אינסופיים שעוברים דרך ה Edgelets-בתמונות .בנוסף ,בהליך העקיבה יבוצעו אופטימיזציות לתיקון שגיאות ויילקחו בחשבון הזזות וסיבובים של ה Edgelet-בכיוונים Y,Xבלבד. כלומר ,האלטרנטיבה לחיפוש מקומי סביב הקו האפיפולרי במקרה של נקודות הינה החופש להתאמת אלמנטים של שפה לאזור שונה מאותה השפה. נפסול שפות בתמונת המטרה שאינן באותה קוטביות כמו השפה בתמונת המקור. בכדי לעשות זאת ,אנו נדרשים לשערך את כיוון הקוטביות של השפה מתמונת המקור בתמונת המטרה .לשם כך ,נתאים קו אפיפולרי בתמונת המטרה לקצוות השפה מהתמונה המקורית .כאשר נאתר מועמד להתאמה נבדוק את הקוטביות שלו ע"י מרחק הקצוות שלו מכל אחד מהקווים האפיפולרים הללו. בשלב זה ,ישנם מס' מועמדים להתאמה בתמונה החדשה ואנו נדרשים לבחור את ההתאמה הנכונה מבניהם במידה וקיימת כזו .לשם כך נעזר בשחזור תלת הממד של כל אחד מהמועמדים. 15 פרק :5אלמנט שפה בתלת ממד זהו החלק האחרון של בניית המודל התלת ממדי .כאשר מבצעים שחזור של אלמנט לתלת ממד ניתן להוסיף אותו למודל ובסופו של דבר לקבל שחזור של הסצנה ומודל המאפשר עקיבה אחר מיקומי המצלמה. 5.0ייצוג Edgeletבתלת ממד קו במרחב מאופיין ע"י נקודה וכיוון .אנו נייצג Edgeletע"י טרנספורמציה בין מישור ה Edgelet-למישור העולם .מישור ה Edgelet-הינו מישור שבו ראשית הצירים היא מרכז השפה וכיוון השפה הינו כיוון .Zכיוון Xבמישור זה הינו כיוון המעבר מכהה לבהיר בתמונת המקור. על מנת לייצג קו במרחב אנו נדרשים ל 6פרמטרים שיביעו את ההזזה מראשית הצירים ואת הכיוון .ייצוג על ידי טרנספורמציה משתמש ב 02פרמטרים .ייצוג זה הוא ייצוג בעל יתירות אך נועד להקל בביצוע אופטימיזציות בהמשך בתהליך העקיבה. טרנספורמציה זו תיוצג ע"י מטריצת מקבוצת SE3שהינה מטריצה המכילה מטריצת סיבוב ו-ווקטור הזזה. Triangulation 5.2 כאשר נמצאו שני Edgeletsמתאימים בשתי תמונות ,ננסה לבצע בעזרתם שחזור תלת ממד ולמצוא את השפה במרחב. נגדיר עבור כל שפה מישור העובר דרכה בתמונה ודרך מרכז המצלמה .שני המישורים שהתקבלו מגדירים בצורה חד-חד ערכית את אלמנט השפה בתלת ממד ע"י ישר החיתוך ביניהם. מיקום מרכז ה Edgelet-לאורך הקו יקבע ע"פ מיקום מרכז השפה בתמונת המקור וכך גם הקוטביות של ה.Edgelet- 16 על מנת להרכיב את הטרנספורמציה ,אנו נדרשים לחשב את כיווני הצירים במערכת ה Edgelet-כפי שהם נראים במערכת קואורדינטות העולם. כיוון Zהינו כיוון השפה במרחב ,הכיוון מתקבל ע"י חישוב ווקטור הכיוון בייצוג הישר במרחב. כיוון Xהינו כיוון מעבר רמות האפור בתמונה מכהה לבהיר .כיוון זה יוגדר ככיוון הבהירות בתמונת המקור בה אותרה השפה מההתחלה .נחשב כיוון זה במרחב בעזרת מישור השפה המתקבל מתמונת המטרה .כיוון Xימצא במישור זה ובנוסף יהיה ניצב לכיוון Zובכיוון הקוטביות הדרושה מתמונת המקור. על מנת להגדיר את כיוון Yנדרש רק למצוא ווקטור ניצב לשני הכיוונים האחרים המגדיר שלשה ימנית. לאחר מציאת ווקטורי הכיוון נשתמש בכיוונים אלו על מנת להגדיר את מטריצת הסיבוב המרכיבה את הטרנספורמציה .כל ווקטור יהיה עמודה במטריצת הטרנספורמציה וע"י כך יתקבל המעבר בין המישורים. על מנת למצוא את מרכז השפה נעביר ישר במרחב בין מרכז המצלמה לבין מרכז ה- Edgeletבתמונה ונמצא את נקודת החיתוך עם המישור הנוצר מתמונת המטרה. מרכז זה ישמש כווקטור ההזזה במטריצת הטרנספורמציה. 17 5.2השלכת שפה תלת ממדית לתמונה על מנת לנפות התאמות שגויות ,נשתמש בשערוך תלת הממד של השפות על מנת לוודא התאמה מול פריים שלישי .הפלט של אלגוריתם החיפוש האפיפולרי הינו מס' התאמות אפשריות לשפה שנמצאה בתמונה .מכל ההתאמות הללו אנו נדרשים לבחור אחת .התאמות אלו עברו את התנאי האפיפולרי ,את תנאי הקוטביות ואף אומתו כשפות באורך מתאים ולא עקמומיות (ע"י החיפוש האנכי). עבור כל אחת מההתאמות האפשריות נבצע שחזור תלת ממד יחד עם השפה המקורית .בתהליך זה נקבל מס' טרנספורמציות המייצגות שפות במרחב .על מנת לבחור אחת מההתאמות כהתאמה נכונה נבצע השלכה של השפה התלת ממדית שהתקבלה לפריים נוסף ונחפש אותה שם באמצעות החיפוש האנכי .במידה ומכל ההתאמות האפשריות רק אחת בלבד אומתה ע"י החיפוש האנכי אזי התאמה זו תאושר ותועבר למפה. כל Edgeletתלת ממד מיוצג על ידי טרנספורמציה ולכן השלכת המרכז לתמונה הינו: וכיוונו בתמונה מתקבל ע"י נגזרת הקואורדינטות בתמונה בנקודת המרכז לפי תזוזה במישור Zבמישור ה .Edgelet-על מנת לבצע נגזרת ,נשליך נקודה נוספת קרובה מאוד (מרחק שואף לאפס) במישור ה Edgelet-לראשית הצירים ונחסר את ההשלכה שלה .מצאנו בספרות שמקובל להשתמש בערך 10e-6על מנת לקרב נגזרת. 18 פרק :6סיכום מיפוי סצנה בתלת ממד על סמך שפות מכניס מידע נוסף למודל המתקבל מקווי המתאר .מודל המתקבל בצורה זו נראה לבני האדם כמודל ממשי יותר המתאר בצורה טובה יותר את הסצנה. המודל המתקבל ישמש בהמשך לביצוע עקיבה חסינה אחר תנועת מהירות של המצלמה וישלים את העקיבה הקיימת אחר נקודות עניין. כאשר מבצעים עקיבה על סמך שפות יש לוודא שלא מקבלים התאמות שגויות .יש לבצע עקיבה על סמך שפות רק כאשר אנו נמצאים באזור שמופה למודל ורק כאשר הסיבה לכשל בעקיבה אחר נקודות עניין הינה הימצאות טשטוש בתמונה .כאשר המצלמה פונה לאזור שלא מופה בעבר יתכן וימצאו התאמות ,שגויות כמובן ,לשפות במודל ולכן אין להסתמך על עקיבה זו. 6.0תוצאות חילוץ שפות מתמונה – במהלך הפרויקט השתמשנו באלגוריתמים שונים (טשטושCanny Edge , Extractionו .)Hough Transform-נדרשנו להתאים מס' רמות ומשתנים שבעזרתם נקבעו תוצאות האלגוריתמים .קיבלנו את התוצאות הטובות ביותר עבור טשטוש תמונה עם גרעין בגודל , 3x3קביעת סף תחתון 41וסף עליון 011עבור ,Cannyקביעת סף 11עבור Houghואפשור התאמת קווים בעלי פיקסל חסר. ישנו tradeoffבין כמות השפות המתקבלות בדרך זו לבין טיב השפות .החלטנו לאפשר שפות ברורות ללא רעשים כלל ,על מנת שלא להכניס outliersלמודל. 19 תיקון שפות – ניתן לראות כי פונקציית החיפוש האנכי ,DirectMeasure ,מבצעת תיקון של שפה שהתקבלה ע"י Cannyומביאה אותה למיקומה האמיתי. חיפוש אפיפולרי – ניתן לראות את ההתאמות הרבות המתקבלות מחיפוש אפיפולרי של שפות ,לכן אנו נדרשים לבצע סינונים נוספים כפי שתואר. 21 אימות התאמות לפי keyframeשלישי – על מנת לאמת סופית התאמה של שפה לשפה בתמונה אחרת ,נדרש לבצע שחזור תלת ממד לכל המועמדים ולהקרינם ל keyframe-שלישי .במידה ומועמד אחד בלבד אומת ,השחזור מוכתר בהצלחה. בתמונות הבאות נציג סצנה ששוחזרה למודל תלת ממד ואת המודל עצמו .יש להזכיר כי מודל תלת ממד נכון עד כדי טרנספורמציה .אין מידע לגבי סקלה וכו' כל מנת לקבוע את דרגת החופש האחרונה במודל ולכן אין בהכרח שהמודל יתאים בדיוק למציאות .למרות זאת ,מודל זה מתאים לביצוע עקיבה. 21 הפינות הירוקות מימין בתמונה מסמנות את מיקום המצלמה בכל .keyframeניתן לראות בתחתית המסך את מספר השפות ומספר הנקודות הקיימות במודל .המרחב מאותחל כך שמיקום ה keyframe-הראשון שהוכנס למפה הינו ראשית הצירים וכל שאר המיקומים ממופים יחסית אליו. 22 בתמונה הבאה ניתן לראות את המודל מנקודות מבט המצלמה באותו רגע 6.2הצעות להמשך מיפוי נקודות עניין ושפות למס' מפות שונות ומתן האפשרות לעבור ביניהן בתהליך העקיבה .סיבוכיות התוכנית תלויה בכמות הנקודות והשפות במפה וע"י חלוקה למס מפות ניתן להתגבר על בעיית הסיבוכיות. פרויקט – PTAMMעובד כרגע רק עם נקודות עניין ~bob/publications/index.htmlhttp://www.robots.ox.ac.uk/ 23 ביבליוגרפיה:7 פרק [1] Georg Klein and David Murray: Improving the Agility of Keyframe-Based SLAM. ECCV 2008 [2] Georg Klein and David Murray: Parallel tracking and mapping for small AR workspaces. ISMAR 2007 [3] Richard Hartley and Andrew Zisserman: Multiple view geometry in computer vision. Second edition. 24
© Copyright 2024