השוואת תמונות ע ” י מרחק האוסדורף לפי הזזה
מבוא בעיה מרכזית בזיהוי צורות היא קביעת גודל הדמיון בין שתי צורות האלגוריתמים שנציג מבוססים על השוואת שני מלבנים בעלי m ו - n פיקסלים בהתאמה שתי אובייקטים גיאומטרים A ו B הם בעלי אותה צורה או ” א g(A) = B כאשר g היא טרנספורמציה כלשהיא
הגדרת מרחק האוסדורף נתונות A ו - B שתי קבוצות של נקודות. מרחק האוסדורף מוגדר : ((H(A,B) = max(h(A,B),h(B,A (h(A,B) = max(a i )min(b j ) p(a i,b j h מזהה את a הרחוקה ביותר מכל נקודה ב B ומודדת את המרחק מ a ל b הקרוב ביותר
אם H(A,B) = d אזי כל נקודה ב A חייבת להיות במרחק d מנקודה מסוימת ב B ב. ה. כ קבוצה A היא קבועה ומאפשרים לקבוצה B להיות מוזזת לפוזיציה הרצויה מרחק האוסדורף המינימלי : (M(A,B) = min t H(A,B+t
חישוב MHD לקבוצות נקודות מרחק בין שתי נקודות יוגדר : (d i,j (t) = r(a i,b j +t) = r(a i -b j,t ( מגדיר חרוט ) המרחק המינימלי בין שתי נקודות יוגדר : (d i (t) = min b j€ B d i,j (t או :(d i (t) = min r(a i - b j,t עבור a i קבוע הגרף {(t, d i (t} מגדיר את משטח וורונוי (“ קרטון ביצים ”)
באופן אנלוגי נגדיר : (d’ j (t) = min a i€ A d i,j (t עבור b j קבוע. נגדיר את (f(t להיות המקסימום בין d ו - d’ כך ש : (f(t) = H(A,B+t האלגוריתמים לחישוב (f(t קשים לישום זמן ריצה : ((O((pq)^2(p+q)k(pq)log(p+q
MHD עבור קואורדינטות שלמות נגדיר ל A פונקציה אופיינית : x,y)€A ),a(x,y) = {0 אחרת, 1} a תיוצג ע ” י מערך דו מימדי בינארי [A[k,l באופן אנלוגי נגדיר עבור [B[s,t נבנה מערכים כנ ” ל עבור S i ו - S’ j נבנה מערך D i שבו כל תא (x,y) מייצג את המרחק לנקודה ב S i הקרובה ביותר
באופן אנלוגי נבנה מערך D’ j עבור S’ j ע ” מ לחשב את מרחק האוסדורף נחשב את : ([F(x,y) = (max i D i [x,y],max j D’ j [x,y אם הקואורדינטות שלמות אזי הערך המינימלי של [F[x,y קרוב מאוד לערך המינימלי של (f(t. למעשה הם נבדלים ביחידת מרחק אחת.
התאמה חלקית של תמונות לעיתים נרצה לזהות התאמה חלקית בין מודל לתמונה שוב נגדיר את המפה של A ו - B כ [A[k,l ו [B[s,t בהתאמה נגדיר מרחק בצורה חלקית : (h k (B+t,A) = max k/b min a r(a,b+t כאן משתמשים ב K נקודות של המודל B
לוקחים את הנקודה ה k- ית של B+t בדרוג לפי המרחק מהנקודה הקרובה ביותר ב A אין צורך להגדיר מראש איזה חלק מ B יושווה ל A אם H LK (A,B+t) = d אזי H(A L,B k +t) <= d
חישוב [D[x,y השיטה המקבילית : קלט : מערך בינארי [E[x,y כאשר m > x >= 0 ו - n > y >= 0. פלט : מערך [D[x,y כאשר בכל תא נמצא המרחק לנקודה הקרובה ביותר ב [E[x,y. (D מגדיר “ קרטון ביצים ). המערך D יהיה בגודל כלשהוא אשר גדול מ E.
(1 ) אתחול : D[x,y] = 0 כאשר E[x,y] = 1 ו - D[x,y] = infinite כאשר E[x,y] = 0. (2 ) מינימיזציה : עבור כל פיקסל x,y מקם “ מסכה ” L שמרכזה סביב x,y. עבור על הכניסות ב D התואמות ל L, מצא את הכניסה המינימלית וסכום עם הכניסה התואמת ב L. ( התעלם מכניסות החורגות מגבולות D): [D new [x,y] = min k,l [x+k-w/2, y+l-w/2 [k,l] +
(3 ) אם D new = D עצור. אחרת חזור על שלב 2.
המטריצה העליונה היא מסכה בנורמה L 2, מניחים את מרכזה על גבי המטריצה התחתונה כדי למזער את הערך בתא המרכזי.
השיטה האיטרטיבית : מתבצעת בשני מעברים על D. במעבר הראשון סורקים את D בסדר עולה ולחישוב המינימיזציה משתמשים רק בכניסות שמעל האלכסון הראשי במסכה L. במעבר השני סורקים את D בסדר יורד ולחישוב המינימיזציה משתמשים רק בכניסות שמתחת לאלכסון הראשי במסכה L.
ניתוח זמן : זמן הריצה עבור שתי השיטות הוא (O(m, כאשר m הוא מספר הפיקסלים ב D. בשתיהן עוברים על כל הכניסות ובכל כניסה מבצעים מספר קבוע של פעולות
חישוב [F[x,y נחשב תחילה את [F A [x,y] = max i D i [x,y : נשים לב שכל פונקצית [D i [x,y היא הזזה של אחרת. לכן ניקח את פונקצית ההמרחקים [D[s,t של [B[s,t ונרשום את [F A [x,y כמקסימום של [D[s,t כאשר [D[s,t מוזז ע ” י הנקודות ב A: [F A [x,y] = max D[k-x,l-y לכל k ו l כך ש 1 = [A[k,l.
חישוב [F A [x,y : קלט : [A[k,l ו - [B[s,t. פלט : [F A [x,y] = max i D i [x,y לכל הזזה x,y (1 ) : חשב את [D[s,t ( המרחק הקרוב ביותר לנקודה ב [A[k,l) בעזרת אלגוריתם 1. (2 ) : חשב את המקסימום של [A[k,l]*D[k-x,l-y לכל k ו - l כך ש A[k,l] = 1 והצב ב [F A [x,y.
באופן סימטרי נחשב גם את [F B [x,y ונציב ב [F [x,y את המקסימום מבין [F A [x,y ן - [F B [x,y. זמן ריצה : (O(mn כאשר m הוא מספר הפיקסלים ב [A[k,l ו - n הוא מספר הפיקסלים ב [B[s,t כיוון ש [B[s,t ממוקם על כל אחד מ (O(m הפיקסלים של [A[k,l ושם מתבצעות (O(n פעולות.