Bildregistrering Geometrisk anpassning av bilder Björn Svensson, Johanna Pettersson, Hans Knutsson Inst. för Medicinsk Teknik, Linköpings Univeristet Maj, 2007 1 Problembeskrivning Sök förflyttningsfält v(x) : R 2 R 2, x = [x,y], så att den morfade bilden I 2 passar så bra ihop som möjligt med orginalbilden I 1, dvs det v som minimerar ǫ givet av ǫ 2 = I 2 (x + v(x)) I 1 (x) 2 (1) Förflyttningsfältet beskriver alltså hur varje punkt x har förflyttat sig från I 1 till I 2. v(x) I 1 I 2 Figur 1: Registreringsproblemet går ut på att hitta den mappning v(x) som bäst beskriver den globala förflyttningen mellan bild I 1 och bild I 2 Metoden som beskrivs i dessa anteckningar byggar på att följande 2 antaganden gäller. 1
I. Rörelsen kan lokalt beskrivas som en förflyttning x. I(x,t) = I(x + x,t + 1) (2) II. Bilden kan lokalt beskrivas som ett lutande plan I(x + v(x),t + 1) = I(x,t + 1) + I T v (3),där I = [ x I, y I] T. Antagande I säger alltså att skillnaden mellan I 1 och I 2 endast är en förflyttning. Spatiell bildinformation som t.e.x. intensitet förändras ej i punkter som motsvarar varandra. Antagande II säger att en lokal omgivning i bilden kan approximeras med en Taylor-utveckling av ordning 1. 2 Lösning Antagande I och II ger tillsammans ekvationen I T v t = 0 (4), där t = I(x,t) I(x,t + 1). Ekvationen beskriver flödet v som kallas Optical flow. I varje bildpunkt kommer det att finnas många lösningar för v, se [1], avsnitt 6.6 för mer detaljer. Alltså behöver man en modell för hur förflyttningsfältet bör se ut och söka den lösning som passar så bra som möjligt för alla bildpunkter. Lösningen fås genom att hitta det flöde v som minimerar ǫ i minsta-kvadrat-uttrycket (5). ǫ 2 = i ( I(x i ) T v(x i ) t (x i )) 2 (5) Ansätt förflyttningsfältet till enbart translation, d.v.s. v(x i ) = v 0. Detta ger 2
ǫ 2 = i ( I(x i ) T v 0 t (x i )) 2 (6) Minimat hittas genom att studera derivatan av ǫ m.a.p. v 0 vilket ger ekvation (7). Beroendet av x i kommer fortsättningsvis endast att skrivas med index i, dvs v(x i ) = v i. ǫ 2 v 0 = 2 i I i ( I T i v 0 ti ) = 0 (7) Detta ger I i I T i v 0 = i i } {{ } A I i ti } {{ } h (8) På matrisform som kan detta skrivas med matrisen A (storlek n n) och vektorn h (n 1), då n är antalet pixlar i bilden. Den lösning v 0opt som minimerar ǫ kan då skrivas som v 0opt = A 1 h. 3 Parameterisering Enbart translation är i allmänhet inte en tillräcklig beskrivning och ett mer generellt angreppssätt är att modellera ett förflyttningsfält v(x), uttryckt med hjälp av parametervektorn p. Några vanligt förekommande modeller inkluderar följande: Translation Rotation Skalning, zoomning Lokal töjning Modellen kan skrivas som v(x) = B(x)p, där B(x) är basmatrisen för parametervektorn p. 3
Tidigare ansattes enbart translation, men detta kunde även ha skrivits som ett parametriskt förflyttningsfält enligt: [ ] [ ] 1 0 px v 0 = v(x) = 0 1 Ett affint förflyttningsfält modelleras med hjälp av en 6-dimensionell parametervektor p = [p 1,p 2,p 3,p 4,p 5,p 6 ] enligt: v(x) = [ p1 p 2 ] + [ ][ ] p3 p 4 x = p 5 p 6 y p y [ ] 1 0 x y 0 0 p 0 1 0 0 x y Bas för 2:a-gradsanpassning i 2D, Fourierbas, bas av finita element eller Waveletbas är ytterligare exempel på möjliga baser för en parametrisk modell. 3.1 Lösning Ersätt v(x i ) i ekvation (5) med v(x i ) = B(x i )p, vilket ger uttrycket att minimera för en parametriserad modell. ǫ 2 = i ( I T i B i p ti ) 2 (9) Nu söks alltså den parametervektor p som minimerar ǫ Derivatan av ǫ m.a.p. p ger då ekvation (10). ǫ 2 p = 2 i B T i I i ( I T i B i p ti ) = 0 (10) Detta ger B T i I i I T i B i p = B T i I i ti i i }{{}}{{} A h (11), och lösningen kan som tidigare skrivas som p opt = A 1 h. 4
3.2 Lösning II Exakr samma sak kan mer kompakt skrivas utgående från ekvationen som beskriver Optical flow. I T v t = 0 (12) I termer av I 1, I 2, B, p kan den skrivas om till I T 2 B(x) p I }{{} 1 (x) I 2 (x) }{{} à b x (13) y x 1 x 2 x 3 x x n x n 1 x n 2 Figur 2: Pixlarnas positioner kan beskrivas som n st vektorer x 1 x n. Matrisen à (storlek n p) och vektorn b (storlek n 1), där n är antalet pixlar i bilden och p är antalet parametrar i parametervektorn p, får alltså följande utseende om vi numrerar bildpunkterna enligt figur 2. 5
I 2 (x 1 ) T B(x 1 ) I 2 (x 2 ) T B(x 2 ) Ã =. I 2 (x n ) T B(x n ) I 1 (x 1 ) I 2 (x 1 ) I 1 (x 2 ) I 2 (x 2 ) b =. I 1 (x n ) I 2 (x n ) Överbestämda ekvationssystem av typen Ãx b känns igen från linjär algebra. Minsta-kvadrat-lösningen ges av p opt = (Ã T }{{ Ã} ) 1 Ã T }{{} b =A =h (14), och A, h kan identifieras från tidigare lösning. 4 Fasbaserad estimering av rörelse Det finns många fall då antagande I (lokal förflyttning) och II (lokalt lutande plan) inte gäller. Bilder där kontrast och medelnivå varierar med tiden (antagande I) är några enkla exempel på detta. För omgivningar med lokala toppar och dalar (antagande II) fungerar det också dåligt. Om man omformulerar dessa antaganden att istället gälla för qudraturfilter-fasen, fås en mer robust estimering av rörelse som hanterar de ovan nämnda fallen på ett bättre sätt. Quadraturfilter finns beskrivna i [1], kapitel 7. Quadraturfilter-fasen beskriver likhet mellan signalen och en linje, samt signalen och en kant. Filtersvaret är helt imaginärt då signalen motsvarar en linje och helt reellt då signalen motsvarar en kant. Detta illustreras i figur 3. Fördelen med quadraturfilter-fasen är att den är invariant mot signalenergin. Quadraturfilter-fasen ϕ(x) fås som arg(q), där q representerar filtersvaret. Från figur 3 ser man hur detta motsvaras i form av signalens likhet med en kant respektive en linje. Ekvationen för Optical flow kan alltså formuleras för quadraturfilter-fasen ϕ enligt: ϕ T v tϕ = 0 (15), där tϕ = ϕ(x,t + 1) ϕ(x,t) = ϕ 1 ϕ 2 = arg(q 2 q 1 ) 6
Figur 3: Quadraturfilter-fasen fås som argumentet för filtersvaret och beskriver signalens likhet med en kant respektive en linje. 4.1 Fasgradienten Fasgradienten ϕ approximeras med hjälp av qudraturfilter-svaren q. Jämför med lokal frekvens kapitel 8 i [1]. Följande estimering kan ses som en första ordningens approximation och kan hittas i [2]. ϕ = [ ] [ x ϕ arg[q1 (x + 1,y)q = 1 (x 1,y) + q 2(x + 1,y)q ] 2 (x 1,y)] y ϕ arg[q 1 (x,y + 1)q1 (x,y 1) + q 2(x,y + 1)q2 (x,y 1)] (16) 4.2 Säkerhetsmått Quadraturfilter beskriver en signal endast i vissa riktningar och därför behövs det flera för att täcka alla möjliga riktningar på förflyttningsfältet. Eftersom olika filter är olika bra på att beskriva signaler i olika riktningar behöver man ett säkerhetsmått som talar om vilket eller vilka quadraturfilter man ska lita på i varje punkt. Eftersom fasen är periodisk med 2π, samt att onogrannheten ökar med fasskillnaden, vill man även vikta ner stora fasskillnader. Ett förslag på säkerhetsmått är 7
c = q 1 q 2 cos ( tϕ /2) 2 (17) Faktorn q 1 q 2 kräver att man har en stark signal i både I 1 och I 2 och cos 2 - faktorn viktar ner stora fasskillnader. Även, när man inte använder fasbaserad estimering, kan man med fördel använda sig av säkerhetsmått. Antagande I och II behöver inte gälla för alla punkter i bilden, om man kan identifiera de punkter där estimeringen går dåligt, s.k. outliers och vikta ner deras inverkan på lösningen. 4.3 Lösning Den nya ekvation gällande för kvadraturfilter-fasen kan skrivas om så att den passar tidigare angreppssätt. ϕ T v tϕ = 0 (18) Uttryckt i ϕ 1, ϕ 2, B, p fås ϕ 2 T B(x)p ϕ 1 (x) ϕ 2 (x) x,q (19) Ekvation 19 ska nu gälla så bra som möjligt för alla bildpunkter och alla quadraturfiltersvar. Därför behöver vi inkludera vårt säkerhetsmått i ekvation (19). För m st quadraturfilter, k = 1 m fås då c(x, k) ( ϕ T }{{} 2 B(x)) p c(x,k) (I }{{}}{{} 1 (x) I 2 (x)) }{{} W à W b x, q (20) I matrisform fås à (storlek m n m n), diagonalmatrisen W (storlek m n m n) och vektorn b (storlek m n 1). På grund av att m st quadraturfilter används blir antalet ekvationer m gånger större. 8
ϕ(x 1 ) T B(x 1 ) ϕ(x 2 ) T B(x 2 ) Ã =. ϕ(x n ) T B(x n ) ϕ 1 (x 1 ) ϕ 2 (x 1 ) ϕ 1 (x 2 ) ϕ 2 (x 2 ) b =. ϕ 1 (x n ) ϕ 2 (x n ) c(x 1,1) 0 0. W = 0............. 0 0 0 c(x n,m) Parmetervektorn p o pt som minimerar ǫ ges av den viktade minsta-kvadrat-lösningen p opt = (Ã T W T WÃ) 1 Ã T W T Wb 5 Bildanpassning För att skapa en bild Ĩ som är flyttad i enlighet med förflyttningsfältet v så utförs följande operation. Ĩ(x) = I(x v(x)) x Z 2,v R 2 (21) Men v är reella tal och varje pixelposition x är diskret. Lösningen är att interpolera, d.v.s. approximera signalvärdet med hjälp av närliggande pixelvärden. I figur 4 visas bilinjär interpolation där signalvärdet I estimeras med hjälp av pixlarna I 11,I 12,I 21,I 22. I x-led fås signalvärdena I 1, I 2 genom x-led { I1 = xi 21 + (1 x)i 11 I 2 = xi 22 + (1 x)i 12 FrånI 1, I 2 kan interpolationen i y-led beräknas och uttrycket som beskriver bilinjär interpolation enkelt härledas 9
I 11 x I 1 I 21 I y I 12 I 2 I 22 Figur 4: Bilinjär interpolation för att beräkna I, m.h.a. närliggande 4 pixelvärden. Pixlarnas centrumpunkter, med signalvärden I 11,I 12,I 21,I 22, är markerade. I = yi 2 + (1 y)i 1 = = y( xi 22 + (1 x)i 12 ) + (1 y)( xi 21 + (1 x)i 11 ) = = I 11 + x(i 21 I 11 ) + y(i 12 I 11 ) + x y(i 22 + I 11 I 12 I 21 ) (22) Referenser [1] G. H. Granlund and H. Knutsson. Signal Processing for Computer Vision. Kluwer Academic Publishers, 1995. ISBN 0-7923-9530-1. [2] C-J. Westelius. Focus of Attention and Gaze Control for Robot Vision. PhD thesis, Linköping University, Sweden, SE-581 83 Linköping, Sweden, 1995. Dissertation No 379, ISBN 91-7871-530-X. 10