לדלג לתוכן

משתמש:לחכםגל/מטריצה יסודית

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

בראייה ממוחשבת, המטריצה היסודית (essential matrix) היא מטריצה בגודל המייצגת נקודות מתאימות בתמונות סטריאו בהנחה שהמצלמות עומדות במודל של מצלמת נקב (pinhole) .

מקרה פרטי של המטריצה הבסיסית (fundamental matrix). היסטורית, המטריצה היסודית הוכרה טרם המינוח של מטריצה בסיסית.

ראה גם [1]

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


ליתר דיוק, אם ו הם קואורדינטות תמונה מנורמלות הומוגניות בתמונה 1 ו-2, בהתאמה, אז

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

הקשר לעיל המגדיר את המטריצה פורסם בשנת 1981 על ידי H. Christopher Longuet-Higgins,[1] שהציג את המושג לקהילת הראייה הממוחשבת בעבודת סמינר. ספרם של ריצ'רד הארטלי ואנדרו זיסרמן מדווח שמטריצה מקבילה הופיעה בפוטוגרמטריה הרבה לפני כן. המאמר של Longuet-Higgins כולל אלגוריתם לאומדן המטריצה מתוך קבוצה של קואורדינטות תמונה מנורמלות מתאימות (כלומר, זוגות של נקודות מהצורה במערכות הקואורדינטות של שתי המצלמות המתארות אותה נקודה במציאות).

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

המטריצה הבסיסית (Fundamental)

[עריכת קוד מקור | עריכה]

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

פיתוח והגדרה

[עריכת קוד מקור | עריכה]

פיתוח זה בא בעקבות המאמר של Longuet-Higgins.

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

 ו 

ייצוג הומוגני של שתי קואורדינטות התמונה ניתן לאחר מכן על ידי

 ו 

שגם ניתן לכתוב בצורה קצרה יותר

 
 

כאשר ו הם ייצוגים הומוגניים של קואורדינטות התמונה הדו-ממדיות ו ו הן קואורדינטות תלת מימדיות נכונות אבל בשתי מערכות קואורדינטות שונות.

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

כאשר היא מטריצת סיבוב בגודל ו הוא וקטור הזזה תלת מימדי.

המטריצה היסודית מוגדרת כך:

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

הכפלה ב תהפוך נקודות בתצוגה השנייה לתצוגה הראשונה.

להגדרה של אנו מתעניינים רק בכיוונם של קואורדינטות התמונה המנורמלות [2] (מכפלה מעורבת). לכן איננו זקוקים לרכיב התרגום בעת החלפת קואורדינטות תמונה במשוואה החיונית.

ניתן לראות שההגדרה הזו של מתארת אילוץ על כפל זוגות נקודות מתאימות בשתי התמונות משמאל ומימין עם הקואורדינטות התלת-ממדיות של נקודה P בשתי מערכות הקואורדינטות השונות:

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

לבסוף, ניתן להניח ששניהם ו הם > 0, אחרת הם לא נראים בשתי המצלמות. זה נותן

שהוא האילוץ שהמטריצה מגדירה בין נקודות תמונה מתאימות.

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

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

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


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

כאשר , ואז יש "קנה מידה" מוגדר היטב. תלוי בבקשה איזו משרה רלוונטית יותר.

האילוצים יכולים להתבטא גם כ

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

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

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

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

חילוץ סיבוב והזזה

[עריכת קוד מקור | עריכה]

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

מציאת פתרון

[עריכת קוד מקור | עריכה]

השיטה הבאה לקביעה ו מבוססת על ביצוע SVD - פירוק לערכים סינגולריים של [4]. אפשר גם לקבוע ו ללא SVD.

פירוק זה של הנו

כאשר ו הן מטריצות אורתוגונליות בגודל מטריצות ו הנה מטריצה אלכסונית עם

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

 עם 

ולעשות את המכפלה הבאה

היות וייתכן ש לא תמלא לחלוטין את האילוצים כאשר עוסקים בנתונים מהעולם האמיתי (למשל תמונות מצלמה), האלטרנטיבה

 עם 

יכולה לעזור [דרוש מקור][מפני ש...]

הוכחת נכונות השיטה

[עריכת קוד מקור | עריכה]

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

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

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

זה המקרה ש הוא סימטרי הטיה, כלומר, . זה המצב גם אצלנו , מאז

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

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

מציאת כל הפתרונות

[עריכת קוד מקור | עריכה]

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

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

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

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

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

חישוב נקודות תלת מימדיות

[עריכת קוד מקור | עריכה]

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

  • גיאומטריה אפיפולרית
  • מטריצה בסיסית
  • כיול מצלמה גיאומטרי
  • טריאנגולציה (ראייה ממוחשבת)

קישורים חיצוניים

[עריכת קוד מקור | עריכה]
  1. ^ H. C. Longuet-Higgins, A computer algorithm for reconstructing a scene from two projections, Nature 293, 1981-09, עמ' 133–135 doi: 10.1038/293133a0
  2. ^ Photogrammetric Computer Vision: Statistics, Geometry, Orientation and Reconstruction (1st ed.).
  3. ^ Hartley, Richard; Andrew Zisserman (2004). Multiple view geometry in computer vision (2nd ed.). Cambridge, UK. ISBN 978-0-511-18711-7. OCLC 171123855. https://www.robots.ox.ac.uk/~vgg/hzbook/hzbook2/HZepipolar.pdf
  4. ^ Hartley, Richard; Andrew Zisserman (2004). Multiple view geometry in computer vision (2nd ed.). Cambridge, UK. ISBN 978-0-511-18711-7. OCLC 171123855. https://www.robots.ox.ac.uk/~vgg/hzbook/hzbook2/HZepipolar.pdf

[[קטגוריה:ראייה ממוחשבת]] [[קטגוריה:דפים עם תרגומים שלא נסקרו]]