Exjobb 2007 (temporär sida)

Sammanfattning:

I exjobbet används flera datorseendemetoder för följning av ytor på objekt. Mängden särdrag på den följda ytan bestämmer hur bra de presterar, men ytföljarna kan också begränsas av andra faktorer som belysningsvariationer samt förvrängningar av annan art än följaren var avsedd för.

Detta arbete jämför ett urval implementerade ytföljare mot varandra. Dels jämförs följare som enbart kan hantera translationer, och dels så jämförs följare som är baserade på första ordningens optiskt flöde. De senares förmåga att hantera komplexa modeller för den följda ytan testas också i praktiken.

Detta examensarbete visar utförligt hur man härleder och implementerar ett antal enkla följare baserade på optiskt flöde, samt presenterar ett antal applikationer där följare måste samarbeta för att nå gemensamma mål. En av applikationerna visar hur en box skulle kunna följas genom att använda sex följare. En annan applikation demonstrerar hur perspektivföljning kan göras med en grupp följare som ensamma enbart klarar affin följning. En ytterligare applikation demonstrerar hur bilder av natthimlen kan göras mindre brusiga, om stjärnornas rörelse i en mängd sekventiella bilder detekteras och kompenseras innan bilderna slås ihop.

Filmer:
Lådmodell, andra sidor initierade från förstasida

Get the Flash Player to see this player.

tracking01.mpg (17,1 MB)

Lådmodell, överlagring av video

Get the Flash Player to see this player.

tracking02.mpg (10,7 MB)

Lådmodell, kedjefel då automatiskt initierade används för att initiera ytterligare sidor

Get the Flash Player to see this player.

tracking03.mpg (3,7 MB)

Rapport:
Planar Surface Tracking and its Applications
Källkod:

Just nu är koden beroende av ett programbibliotek specifikt för institutionen på KTH där jag gjorde exjobbet, så applikationer mm kan inte köras direkt, men någon applikation (t.ex den som kan användas för att fotografera stjärnhimlen) kommer jag i alla fall att skriva om så den kompilerar på vanliga linux-system med beroenden på öppna standardbibliotek.

Delar av källkoden kommer att läggas upp här när den fungerar helt fristående från vissa färdiga rutiner från KTH för video-fångning, för att visa video, och för matris-invers. Eftersom jag inte kan lägga upp deras programbibliotek här, så behöver jag fasa ur det beroendet.

Hittils har jag löst problemet med video-fångst och visning av video genom en egen klass för videofångst, och användning av SDL för att visa video (video-grabbing_0.01.tar.gz). Modifieringar för att lösa problem om linjerna behöver konstiga "alignments" behöver göras om man ska vara säker på att programmet fungerar i alla situationer.

Jag har kvar att fasa ut användning av en klass för matriser, och kommer antingen att använda BLAS/LAPACK för det, eller länka koden mot octave.

Jag behöver också rensa bort många tidiga prototyper från koden, eftersom dom inte tillför något.

Doxygen-dokumentation och delar av koden kommer att hamna här:

Exempel på video-fångst som använder SDL för visning: video-grabbing_0.01.tar.gz

Klasser för att skriva samt läsa vektorer i samma format som matlab/octave använder: mfile-readwrite_0.01.tar.gz. (Klarar enbart en-dimensionella vektorer).

Gör det enkelt att testa om CtrlC blivit nedtryckt: ctrlc_0.01.tar.gz.

Copyright © 2007 Simon Gustafsson