LINKÖPING UNIVERISTET SIFT AIBOs ögon Emma Hallstan Emmha584
Innehållsförteckning Inledning... 3 Syfte... 3 SIFT- Scale Invariant Feature Transform... 3 Historien om SIFT... 4 SIFT algoritmen... 4 1. Scale-space extrema detection... 4 2. Keypoint localization... 6 3. Orientation assignment... 6 4. Keypoint descriptor... 7 Diskussion... 8 Referens... 9 2
Inledning AIBO är en 30 centimeter hög och lång robot hund som Sony började sälja redan 1999. Genom åren har flera generationer/utvecklade versioner av AIBO framkommit. Namnet AIBO är en förkortning av Artificial Intelligence robot och utvecklades utifrån ett forskningsprojekt om just artificiell intelligens. Robothunden har funktioner som bland annat röstigenkänning och kan förstå röstkommandon samt har förmågan att lära sig nya beteenden. Den kan lära sig av sin omgivning som kan bestå av till exempel andra AIBO hundar. För att AIBO ska efterlikna en riktig hund så mycket som möjligt så är den även programmerad att då och då ignorera röstkommandon även om de förstår dem[1]. Utöver att kunna anpassa sig till sin miljö har AIBO fler kanaligt hörsel (in stereo) och färg seende. Figure 1 AIBO AIBO utmärker sig från andra mer traditionella artificiella robotar då den samordnar en dator, syn system (vision system) och artikulator (articulators) in en och samma förpackning[1]. Syfte Mitt syfte med detta arbete är att fördjupa mig i Scale Invariant Feature Transform algoritmen (SIFT) som även kan kallas för AIBOs ögon. Hunden använder sig av algoritmen för att exempelvis hitta tillbaka till sin laddare. Jag önskar med detta arbete presentera algoritmens historia och visa dess grunder. SIFT- Scale Invariant Feature Transform SIFT är en algoritm som kan läsa av och tolka ett objekts särdrag. Den utgår ifrån ett objekts utseende och speciella drag. Yttre faktorer som störningar och mindre förändringar i dess synfält påverkar inte tolkningsförmågan[2]. SIFT-algoritmen behöver minst tre särdrag för att kunna göra en tillräcklig beräkning av ett objekts position. Kvantiteten av särdrag är väldgit viktiga vid objektigenkänning[3]. Varje ny bild (image) matchas genom att individuellt jämföra alla särdragen med en databas och hitta en matchning med någon bild som är lagrad där. Matchning är resultatet av en bild som totalt har flest kompatibla särdrag. De ska stämma överens med bildens placering, skala 3
och position[3]. Historien om SIFT Denna slags forskning då man matchar bilder med hjälp av nyckelpunkter kan spåras tillbaka till 1981 och Maravecs arbete om användningen av stereo matchning genom hans corner detector [3]. Matchningen kallas The Moravec operator och definierar intressanta punkter hos en bild där intensiteten varierar stort i varje riktning. Av denna anledning kallas matchningen för corner detector då de intressanta punkterna ofta blir hörn (corner). Moravec var själv intresserad av att hitta specifika delar av en bild som kunde användas för att registrera på varandra följande bildpunkter och inte isynnerhet hörnen av en bild[5]. Denna detektor förbättrades så att den skulle klara av mindre bildvariationer samt närliggande kanter bättre. Harris och Stephen stod för denna utveckling[3]. De intresserade sig för användning av teknik för rörelse analys för att tolka omgivningen. Maravecs arbete begränsades med att matchningarna endast definierade hörn, detta har Harris och Stephen försökt korrigera genom att fokusera både hörn och kanter[6]. Deras resultat har legat till grund för flera andra bildmatchningar[3]. Zhang introducerade korrelationsfönster kring varje hörn för att på så sätt finna trovärdiga matchningar[3]. Tanken är att använda en heuristisk teknik för att finna matchningar[7]. Samtidigt utvecklade Torr en rörelse matchning som liknade Zhangs detektor[3]. Schmid och Mohr var de som var banbrytare med sin forskning. De visade att en oföränderlig matchning (local feature matching) kunde expanderas till generella bilder och dess igenkänning. På så sätt kunde bildens särdrag matchas med en existerande databas. För att finna intressanta nyckelpunkter användes Harris corner detector som grund, men utvecklade detta med möjligheten att rotera sina objekt. Med dessa framsteg kunde alltså en blid med en position matchas med en bild som har en annan position[3]. Harris modellen var väldigt känslig för förändring vad gäller bildens skala och visade sig därför inte vara en bra bas för att matcha bilder i olika skalor. För att uppnå en större varians i skalan utökade Lowe i sina tidigare arbeten ansatsen om lokala särdrag samt presenterade en ny local descriptor som hanterade andra särdrag utan att vara lika känslig för bildens förändringar[3]. SIFT algoritmen SIFT algoritmen består av totalt fyra steg: Scale-space extrema detection, Keypoint localization, Orientations assignment och Keypoint descriptor. 1. Scale- space extrema detection Det fösta steget i SIFT algoritmen lokaliserar punkter, nyckelpunkter, hos en bild. Dessa nyckelpunkter utmärker sig genom att var exempelvis mörkare eller ljusare än andra delar av bilden[2]. Processen börjar med en sökning av stabila nyckelpunkter[3] ifrån olika vinklar på ett och samma bild. De vinklade sökningsbilderna och nyckelpunkterna jämförs med varandra 4
med hjälp av funktionen Difference-off Gaussian (DoG) som kan räkna ut differensen mellan två punkter på två olika bilder[2]. Bildens skala definieras som, L(x,y,σ), som är en produkt av konvolutionen mellan Gaussians variabelskala, G(x,y,σ), och input från bilden, I(x,y) [3]. L(x,y,σ) = G(x,y,σ)*I(x,y) DoG identifierar de nyckelpunkter som har stor potential då de inte påverkas av skala eller vinkel, utan förblir oföränderliga. För att effektivt hitta dessa nyckelpunkter föreslår Lowe att man använder scale-space extrema hos DoG funktionens konvolverad med bilden, D(x,y,σ). Genom att beräkna skillnaden mellan två närliggande skalor som separeras av en konstant multiplikativ faktor, k[3], som visas nedan. D(x,y,σ) = (G(x,y,kσ) G((x,y,σ)) * I (x,y) = L(x,y,kσ) L(x,y,σ). Denna funktion gör väldigt snabba uträkningar, oberoende bland annat skala. Den skapar även ett närmevärde till the scale-normalized Laplacian of Gaussian, σ² normaliseringen av Laplacian med σ² behövs för en sann skala.[3] ²G. Man har visat att Relationen mellan D och σ² ²G kan förstås utifrån spridningsekvationen!"!" =!! G. Detta visar att! G kan räknas ut utifrån den begränsade skillnadsapproximationen till!"/!". Detta görs genom att använda skillnaden från närliggande skalor som kσ och σ [3].!! G = G G x, y, kσ G(x, y, σ) σ kσ σ Vilket innebär G(x,y,kσ) G(x,y,σ) (k 1) σ² ²G. Detta visar att DoG funktionen har skalor som skiljer genom en konstant faktor som redan är förenat med σ² normaliserings skala som behövs för Laplacian [3]. Figure 2Visar hur differensen räknas ut med hjälp av funktionen DoG. [3] 5
Figur 2 visar hur den initiala bilden stegvis slås samman med DoG för att producera bilder uppdelade utifrån en konstant faktor, k [3]. 2. Keypoint localization Då Scale-space extrema detection lokaliserar många förslag till nyckelpunkter, varav flera ostabila, är nästa steg i algoritmen att sortera dem genom att hitta närliggande passande data. Exempel på dessa data är lokalisering, skala och förhållandet till kurvaturen (ratio principal curvatures). Ursprungligen skulle man endast lokalisera nyckelpunkten men detta utvecklades för att stärka matchningen och öka stabiliteten. Punkter som har en dålig placering eller med låg kontrast blir exkluderade, då de är mer känsliga för störningar[2]. Beräkningarna görs genom Taylors kvadratiska expansion (the quadratic Taylor expansion) av DoG funktionen, D(x,y,σ). DoG funktionen ger en stark respons vad gäller kanter samt om nyckelpunkten är känslig mot störning, dessa behöver avlägsnas för att kunna öka den tidigare nämnda stabiliteten [3].!! =! +!"!!"! + 1 2!!!!!!!!! D och dess derivata utvärderas vid nyckelpunkten och x=(x, y, σ) T är motvikten till denna punkt. Placeringen av det störta värdet,!, bestäms genom att funktionens derivata i förhållande till x och återställa det till noll. Detta resulterar i [3]:! =!!!!!!"!"!!" Det 3x3 linjära system som detta resulterar i kan lösas relativt enkelt. Om motvikten till! är större än 0.5 i någon dimension så ligger det störta värdet närmare någon annan nyckelpunkt. Om så är fallet så kommer värde tilldelas en annan nyckelpunkt. Den slutliga motvikten av! läggs till den placering som aktuell nyckelpunkt[3]. Funktionens värde av det största värdet, D(!), är användbar för att eliminera ostabila värden men svag kontrast. Detta uppnås på följande sätt [3]: 3. Orientation assignment!! =! + 1!!! 2!"! Genom att koppla samman nyckelpunkter, baserat på vilka egenskaper de har, med en riktning kan beskrivningen av dem vara konstant oberoende av hur bilden roteras. I detta steg skapas en konstant form av bilden och dess nyckelpunkter som förblir oföränderliga oavsett vinkel. Detta leder till att objektet får en position, en skala och en riktning/lutning[3]. Nyckelpunkternas skala används för att välja den bild som Gaussians slätat till, L, med den som ligger närmast i skala. Detta görs så att beräkningarna genomförs med likvärdig skala. 6
För varje testbild, L(x, y) så är lutningens magnitud, m(x, y), och riktning, beräknat: [3] m(x,y) =!! + 1,!!! 1.! )! + (!!,! + 1!(!,! 1 )!!!,! = tan!! (!!,! 1 /(!! + 1,!!! 1,! )) (x, y), i förväg Ett histogram formas från nyckelnyckelpunktens värdens lutning. Histogrammet har en räckvidd på 360 grader. Allt som läggs till i histogrammet påverkas bland annat av lutningens magnitud. Histogrammet toppar överensstämmer med den dominanta lutningen. 4. Keypoint descriptor Det fjärde och sista steget förhåller sig relativt lika med det tidigare steget, Orientation assignment. Här gör uträkningar så att beskrivningen av objektet och dess nyckelpunkter är så karakteristiska och konstanta att den klarar av andra versioner av bilden, som till exempel en illustration eller bilden i 3D [2]. Tidigare har man utsett bildens plats, skala och riktning utifrån varje nyckelpunkt [3]. Edelman, Intrator och Poggio baserar sin ansats på biologins neuroner. Dessa komplexa neuroner svarar till lutningens av specifika riktningar och spatiala frekvenser. Men lutningens plats på näthinnan kan variera istället för att vara precis. Man menar att neuronernas funktion tillåter matchning och igenkänning av 3D objekt som finns i synfältet. [3] 7
Diskussion AIBO visar upp forskningen och dess möjligheter på ett väldigt bra sätt. Bara utseendet lockar alla åldrar och vad den kan göra ökar nyfikenheten anser jag. Kombinationen att visa upp forskning på ett mer lekfullt sätt är bra och kan leda till att man vill veta mer. Jag har tidigare stött på AIBO, men haft absolut ingen kunskap om hur hunden fungerar. Visst förstod jag att det legat mycket arbete bakom denna lilla varelse, men detta arbete har gett mig en djupare förståelse och uppskattning för detta arbete. 8
Referens [1] http://sv.wikipedia.org/wiki/aibo den 19 augusti 2009 [2] http://en.wikipedia.org/wiki/scale-invariant_feature_transform den 19 augusti 2009 [3] Lowe, D G (2004). Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision. [4] http://www.robothalloffame.org/06inductees/aibo.html den 19 augusti 2009 [5] http://www.cim.mcgill.ca/~dparks/cornerdetector/mainmoravec.htm den 19 augusti 2009. [6] http://www.cim.mcgill.ca/~dparks/cornerdetector/harris.htm den 19 augusti 2009 [7] Zhang,Z. Deriche, R. Faugeras, O. och Loung, QT (1995) A robust technique for matchning two uncalibrated images trough the recovery of the unknown epipolar geometry, Artificial Intelligence 78:87-119 9