Prestandautvärdering samt förbättringsförslag Henrik Johansson Version 1.0 Status Granskad Godkänd 1
PROJEKTIDENTITET Reglerteknisk projektkurs, WalkCAM, 2007/VT Linköpings tekniska högskola, ISY Namn Ansvar Telefon E-post Henrik Johansson Projektledare 0703 50 53 26 henjo828@student.liu.se Dokumentansvarig 0706 66 70 55 andfa970@student.liu.se Mitun Dey Testansvarig 0707 41 37 84 mitde726@student.liu.se Lars Furedal Design 0703 34 51 35 larfu592@student.liu.se Oscar Carlsson Implementation 0705 33 08 17 oscca558@student.liu.se E-postlista för hela gruppen: Hemsida: http://walkcam.hopto.org Kund: SAAB Aerotech, 581 82 LINKÖPING, kundtel. 0132 31 000, fax: 0132 98 449 Kontaktperson hos kund: Hans Bohlin, 0132 31 539, 0706 74 42 91, hans.bohlin@saabgroup.com Beställare: Jeroen Hol, B BV2A:541, 013 28 28 03, hol@isy.liu.se Kursansvarig: Anders Hansson, B Bv2A:550, 0132 81 681, hansson@isy.liu.se Handledare: Henrik Ohlsson, B Bv2A:526, 013 28 23 06, ohlsson@isy.liu.se 2
Innehåll 1 INLEDNING... 5 1.1 BAKGRUND... 5 2 PRESTANDAUTVÄRDERING... 6 2.1 INSAMLINGSMODULEN... 6 2.2 OPTICALFLOW... 6 2.3 KALMANFILTER... 7 3 FÖRBÄTTRINGSFÖRSLAG... 11 3.1 INSAMLINGSMODULEN... 11 3.2 OPTICALFLOW... 11 3.3 KALMANFILTER... 11 3.4 ANVÄNDARGRÄNSSNITTET... 11 3.5 UTÖKNING AV SYSTEMET... 11 4 REFERENSER... 12 3
Dokumenthistorik version datum utförda förändringar utförda av granskad 0.1 2007-05-07 Första utkast HJ OC 0.2 2007-05-13 Rättad efter kommentering HJ 1.0 2007-05-15 Upphöjd till 1.0 till leverans HJ 4
1 Inledning Prestandautvärderingsdokumentet är skrivet i syfte att sammanfatta prestanda hos det personnavigeringssystem som utvecklats av projektgruppen WalkCAM. Projektet utvecklades i samarbete med SAAB Aerotech i Linköping samt Linköpings Universitet, under våren 2007. I dokumentet finns även förbättringsförslag i syfte att underlätta vid vidareutveckling. 1.1 Bakgrund Projektet syftar till att vara ett första steg i att utvärdera en del i ett nytt navigationssystem åt SAAB Aerotech. Utvärderingen är menad att klargöra vissa grundläggande möjligheter och begränsningar med kamerabaserad odometri. Utvärderingen ska kunna användas som del i beslutsmaterial gällande olika tekniker som kan kombineras genom sensorfusion. Syftet är att skapa ett personnavigeringssystem, för användning av exempelvis blåljusmyndigheter och militär. 5
2 Prestandautvärdering 2.1 Insamlingsmodulen De kameror som använts projektet är av hög kvalité vilket har varit fördelaktigt vid utvärderingen av dess prestanda. Däremot är förmodligen programvaran PCVision sämre i detta avseende. Detta visade sig då filmning sker med en hög upplösning i form av att TIF filerna från de olika kamerorna var olika stora. Anledningen till detta problem har projektgurppen inte hittat, däremot har samband visat sig. Då bilderna som samlas in transformeras ner i upplösning ökar antalet bilder som kan samlas in, innan filerna blir olika stora. Under projektet har kamerorna varit inställda så att de enligt dokumentationen [4] bör ta 56 bilder per sekund. Detta rapporteras däremot i inspelningsprogrammet som ca 28 bilder per sekund, vilket stämmer överens med de tidtagningar som gjorts för att skatta det verkliga antalet bilder per sekund. I detta läge läser kamerorna av 1392x500 pixlar från CCD:n. För att kunna spela in något längre sekvenser minskas bilderna ner med en faktor om en tiondel i var dimension till 139x50 pixlar. Vid mätningar har detta gett möjlighet att spela in sekvenser om strax över 2000 bilder, vilket med 28 bilder per sekund motsvarar en inspelningstid om drygt 70 sekunder åt gången. Något som är av stor vikt är ytan på marken som kamerorna ser. Desto större yta som kamerorna uppfattar desto snabbare kan personen gå. Detta har även ett beroende med insamlingstakten. Det viktiga är att förflyttningar syns på fler än två bilder. Tidiga inspelningsförsök visade även att slutartiden för kamerorna kan inverka begränsande på den maximala hastighet som kan användas vid inspelning. En slutartid på 1/30 sekund ger mycket suddiga bilder vid normal gång och även inställningen 1/60 kan ge suddiga bilder vid vissa rörelser. Vid inspelning utomhus rekommenderas en slutartid på 1/250 eller lägre. Inomhus kan det vara svårt att använda slutartider lägre än 1/60, men detta är kraftigt beroende av rådande ljusförhållanden. 2.2 Opticalflow Projektetgruppen har utvärderat tre olika algoritmer: LucasKanade En avancerad form av derivatametod PhaseBased En avancerad frekvensbaserad metod Derivates En enkel form av derivatametod LucasKanade och PhaseBased har inte skrivits under projektet utan hämtats från internet, [1],[2]. Den enkla Derivates som projektgruppen programmerat visade sig vara alltför enkel och klarar inte av att bestämma förflyttningen mellan bilderna på ett tillfredställande sätt. 6
Den algoritm som använts mest och gett bäst resultat är LucasKanade. Den utför både smoothing och iterativ beräkning. Den beräknar även flödet på flera pyramidnivåer av bilderna, dvs beräkningar görs även på rekursivt nedsamplade bilder. En nedsampling innebär att bildens upplösning halveras i x- och y-led. Beräkning på olika pyramidnivåer gör att noggrannheten blir bra inom ett större hastighetsintervall. Pyramidbilden med lägst upplösning fångar upp stora förflyttningar medan den med högst upplösning fångar upp små förflyttningar. En brist med LucasKanade algoritmen är tiden det tar att utföra beräkningarna. Med en bildupplösning på 139x50 pixlar och tre pyramidnivåer samt en iteration tar beräkningarna mellan två bilder ca 3 sekunder. PhaseBased visade efter inledande tester inte lika bra resultat som LucasKanade och projektet valde därför att gå vidare med den senare. Detta har fått till följd att denna algoritm inte testats i någon större utsträckning och projektet kan därför inte förkasta den. Tvärtom så rekommenderar projektet en grundlig utvärdering eftersom att den förmodligen är snabbare än LucasKanade då inga iterativa beräkningar behövs. En tänkbar brist med de algoritmer som testats kan vara att de antar att förflyttningen mellan två bilder är en ren translation, dvs ingen rotation. Både derivatametoden och frekvensmetoden kan emellertid utökas till att hantera rotationer och detta kan eventuellt leda till bättre skattningar. Som nämnt ovan användes främst filmer inspelade i upplösningen 139x50 pixlar men några jämförande undersökningar har även gjorts då en sekvens reducerats till 70x25 respektive 35x13 pixlar genom att varannan pixel, i två omgångar, tagits bort från orginalsekvensen. Resultaten redovisas översiktligt i Figur 2-1 nedan. Ingen djupare studie av resultaten har genomförts i detta läge, men det är uppenbart att det är möjligt att få fram approximativa resultat även med sekvenser i mycket låg upplösning. Figur 2-1 En sekvens beräknad i 139x50 (t.v.), 70x25 (mitten) resp. 35x13 (t.h.) Något som visat sig viktigt vid beräkning är att marken som filmas har en grov struktur dvs. att inte allt ser likadant ut. Projektgruppen har funnit att en välklippt gräsmatta, gärna med låga blommor i ljusa nyanser, har en bra struktur för beräkningarna. 2.3 Kalmanfilter Något som visat sig mycket svårt är att få en bra och rättvisande uppskattning av fel i position. Genom att utföra noggranna mätningar av brusets storlek och sedan använda detta för att ta fram kalmanfiltrets Q och R matriser, se Tekniskdokumentation (Carlsson, 2007) för 7
mer information. Genom att ändra värdena i dessa Q och R matriser kan den utritande vägen och feluppskattningen ändras, vilket syns tydligt i figuren nedan, där den till höger har samma form som den bana som färdades. 35 30 25 20 15 10 5 0-5 -10 20 15 10 5 0-5 -10-40 -30-20 -10 0 10-20 -15-10 -5 0 5 10 15 20 Figur 2-2 Beskrivande skillnad i av kalmanfiltrets viktmatriser Skillnaden i viktmatriserna mellan det filter som gav den beräknade vägen till vänster i Figur 2-2 och det filter som gav vägen som presenteras till höger i samma figur var främst en kraftig skillnad i processbruset för vinkelhastigheten. Att den uppritade vägen blir bra vid beräkning av en bana betyder inte att det blir bra för alla banor. De kovariansmatriser som användes vid beräkningen av vägen till vänster i Figur 2-2 var de som gav resultat som stämde bäst överrens med den verkliga vägen för flest antal banor. För att skatta de mätfel som förekommer vid inspelning och efterföljande beräkning med optical flow finns det ett flertal samband som kan studeras djupare. Ett som har undersökts mycket ytligt är hur skillnader i hastigheter i x-led varierar under olika delar av en inspelad sekvens. I Figur 2-3 presenteras en plot där hastigheten i x-led från höger kamera har subtraherats från hastigheten i x-led från vänster kamera. Skillnaden mellan de båda hastigheterna bör vara nära noll då avståndet i x-led mellan de båda kamerorna är konstant och skillnaden bör kunna ses som ett mätfel. 8
Figur 2-3 Hastighetsskillnader i x-led Det är tydligt att skillnaderna mellan hastigheterna i x-led varierar kraftigt, och satt i proportion till att hastigheten i x-led för vänster kamera ligger mellan -0,5 och 0,6 under hela intervallet som ses i Figur 2-3 inses att mätfelen är av betydande storlek. Ett intressant samband kan skönjas då Figur 2-3 relateras till Figur 2-4 där de olika tillståndens utveckling för samma sekvens presenteras. 9
Figur 2-4 Graf över tillståndens utveckling Jämförelse mellan Figur 2-3 och Figur 2-4 antyder att mätfelen ökar kraftigt vid rotation, som t.ex. vid frame 300 till fram 400 där hastighetsskillnaden är tydligt positiv. Samma mönster ses vid frame 600, 800 och 1100 där kraftiga högersvängar görs och samtidigt blir hastighetsskillnaderna tydligt negativa. Vad detta beror på har inte undersökts och det har heller inte kompenserats för på något sätt. 10
3 Förbättringsförslag I detta kapitel presenteras förbättringsförslag som uppkommit under utvecklingen av systemet. 3.1 Insamlingsmodulen Minska ner datorn som används vid insamlingen av bilderna. En användarpanel som kopplas in till datorn för att sköta inspelningen. På panelen skulle det med fördel finnas startknapp, stoppknapp, display som visar att inspelningen pågår. Linser med andra betraktningsvinklar utvärderas. 3.2 Opticalflow För att kunna uppskatta felets varians vore det bra att redan vid det optiska flödet få ett mått på hur bra varje förflyttningsvektor är i varje tidpunkt. Detta mått skulle då följa med hela vägen och vid slutet skulle det då vara enklare att få ut en bra skattning av felets storlek. Studera och utvärdera den fasbaserade algoritmen för beräkning av det optiska flödet. Projektet som utfördes av projektgruppen WalkCAM våren 2007, ägnade mest tid åt Lukas Kanade algoritmen. Optimera i tid vid beräkning av förflyttningsvektorerna mellan varje bild. 3.3 Kalmanfilter Mer detaljerade studier av 3.4 Användargränssnittet I användargränssnittet finns nu endast fält för att fylla i de nödvändigaste värdena för att göra beräkningarna. En möjlig förbättring är att kunna välja ett avancerat läge där det skulle vara möjligt att fylla i parametrar som: metod vid beräkning av det optiska flödet o indata till de olika metoderna antal bilder som flödet ska beräknas på 3.5 Utökning av systemet Eftersom felet i vinkelhastighet blir påtagligt avgörande för hur korrekt vägen beräknas skulle en noggrannare bestämning av denna vara önskvärd. Detta kan fås genom att komplettera systemet med ett separat modul enbart för vinkelbedömning. Enheter med detta ändamål kan exempelvis vara en IMU (Inertial Measurment Unit) eller gyrokompass. 11
4 Referenser [1] http://www.mathworks.com/matlabcentral/fileexchange/loadfile.do?objecttype=file&obj ectid=2422 [2] Lucas, B D (1984), Generalized Image Matching by the Method of Differences, doctoral dissertation, http://www.ri.cmu.edu/pubs/pub_5610.html [3] Carlsson Oscar (2007), Tekniskdokumentation, WalkCAM version 0.4, LiTH. [4] JAI PULNiX, TM-1402 Series Operation Manual, 10053 Rev A, http://www.jaipulnix.com 12