Reporting live from San Diego
February 20, 2012 by Andreas

Projekt

Siden sidst er der ikke sket så meget udover det sædvanlige. Jeg får klatret en masse, og jeg er på uni hver dag. Så ikke mange nye begivenheder på den front. Og så er det jo meget passende at dette indlæg kan handle om mit projekt og hvad jeg egentlig laver når jeg er på uni.

Som bekendt arbejder jeg med detektion af vejskilte. Men lad os lige tage den helt fra bunden. Min specialeretning på AAU hedder “Vision, Graphics, and Interactive Systems” (forkortet VGIS). Jeg har siden jeg startede på den fokuseret mest på computer vision. Computer vision handler populært sagt om at få computere til at se. Man kobler et kamera eller andre sensorer til en computer og prøver at lave noget software, så computeren ved hvad den kigger på og på en eller anden måde kan reagere ud fra det.

På AAU lavede vi i min gruppe på 6. semester et system til at finde og læse hastighedsskilte. Det nævnte jeg da jeg kom herover, og da mit laboratorium herovre arbejder meget med trafiksikkerhed og generel “driver assistance”, var det oplagt at jeg kastede mig over noget med skilte, nu jeg havde prøvet at lege med den slags før. Således blev min opgave skiltedetektion.

Mit fast radial symmetry program finder et stopskilt.

Modsat vores hjerner, der ved hvad alt muligt er – og som oftest også kan ræsonnere over hvad noget er, selvom man ikke umiddelbart ved det – så er computer vision opgaver som regel ret snævre. Det kan være “her er et billede af et ansigt, se om det er nogen du kender”. Det kan også være “her er et billede, se om der er et ansigt på”. De to opgaver kan man så naturligvis koble sammen, så det bliver til “her er et billede, se om der er et ansigt på, og hvis der er, er det så nogen du kender”. Man opstiller altså en ret snæver opgave, og så udvikler man noget der kan løse den. Man kan ikke bare hælde et billede ind i en computer uden nogen kontekst eller opgave tilknyttet.

I mit tilfælde er opgaven altså “her er et billede, se om der er et skilt på og find ud af hvor det er henne”. Jeg skal ikke (i første omgang i hvert fald) læse skiltet, blot finde dem der måtte blive filmet. Skiltedetektion er noget der er blevet forsket en del i, men primært i Europa, Japan og Australien, der alle har skilte der minder om hinanden. Skiltesystemet herovre er noget anderledes, så derfor er det spændende at prøve at lave et system der passer til amerikanske skilte.

Formålet er at lave et system, der ville kunne assistere en chauffør. Det viser sig at folk er rigtig dygtige til at se skilte med hastighedsgrænser på, men meget dårlige til at se skilte der varsler om fodgængerovergange. Så hvis man lige kunne få bilen til at gøre opmærksom på skilte man har en tendens til at overse, så kan man potentielt hæve trafiksikkerheden. Samtidig har laboratoriet herovre udviklet et andet system, der hele tiden kan fortæller hvor chaufføren kigger hen (ikke bare i hvilken retning, men som faktisk kan generere det nøjagtige billede chaufføren til en hver tid ser). Derfor kan man gøre ekstra opmærksom på skilte, som man ved chaufføren ikke har set.

Hvordan griber man så sådan en opgave an? Første skridt er at finde ud af hvordan alle andre har gjort det. Som nævnt har forskningen hidtil været centreret om lande, der følge Wien konventionen, der beskriver hvordan skilte skal se ud i Europa. Faktisk findes der kun to videnskabelige artikler om amerikanske skilte, mod flere end 100 om Wien konvention-skilte. Imidlertid er der selvfølgelig nok en masse metoder fra europæiske skilte man kan bruge på amerikanske, så selvfølgelig har jeg også læst en masse på dem. Det var en opsamling på hvilke metoder der tidligere har været brugt, en såkaldt survey.

Næste skridt er at lave nogle forsøg, enten med (kombinationer af) etablerede metoder, eller med eventuelle geniale idéer jeg selv måtte have fået. Det er den fase jeg er i nu. Min plan er at teste tre algoritmer (for nørderne i publikum: Fast radial symmetry, en Haar-feature boosted cascade og en SVM på HOG-features). Så vil jeg forsøge at finde ud af hvilken der fungerer bedste på de skilte jeg skal finde, og bygge min endelige detektor omkring den.

Samtidig arbejder jeg med en ny idé om at generere syntetisk træningsdata. Det har, så vidt jeg ved, kun to forskergrupper gjort før mig, når det handler om skilte. Sagen er den at to af de tre algoritmer er machine learning-baserede. Hvad er nu det for noget? Jo, hvis jeg ville finde skilte uden machine learning – som vi gjorde på 6. semester – så ville jeg stille en række regler op om hvordan skilte ser ud: Find røde ting i billedet, sorter alle røde ting fra der ikke er runde, se om der er noget hvidt og sort inde i cirklen. Så ville jeg kunne finde skilte på den måde. En anden tilgang er at man ikke selv stiller de her regler op. I stedet kan man hælde 10000 billeder af skilte og 10000 billeder, der ikke indeholder skilte, ind i en snedig algoritme, og så finder computeren helt selv ud af hvad den skal kigge efter. Det er meget fascinerende 🙂

Syntetiske træningsbilleder (et billede, der er et par uger gammelt, programmet er noget bedre nu).

Det har selvfølgelig også sine problemer: Det er ikke super fedt at skulle ud og optage 10000 billeder af skilte. Så hvis jeg i stedet kan sætte en skabelon af et skilt ind i et lille program, som så spytter 10000 billeder ud af hvordan skilte kunne se ud ude i virkeligheden, så kan det måske være ligeså godt. Så udover at teste de tre algoritmer op mod hinanden, så er det også min plan at teste syntetisk træningsdata mod “rigtige billeder”. Alt i alt ser mit projekt sådan her ud:

Oversigt over mit projekt (blokdiagrammer er rare)

Udover ovenstaående skal jeg selvfølgelig også have produceret en rapport om hele molevitten, noget der sikkert ender med at ramme omrking 100 sider, plus/minus det løse. Jeg plejer heldigvis at være ret hurtig til at skrive den slags, så det bekymrer mig ikke så meget (selvom jeg da i hemmelighed håber at den bare materialiserer sig selv hen over de næste par måneder).

Skal jeg lige slynge lidt flere nørd-fraser ud, så er det hele kodet i C++ med OpenCV til billedbehandling og Qt til GUIs. Også så med en smule OpenGL, bare for en god ordens skyld. Jeg har stort set ikke noget Python i mit projekt, hvilket nok vil overraske de fleste, der kender til mine græsgange indenfor programmeringssprog, men mon ikke jeg kan nå at få rådet bod på det. Skulle du ikke have forstået noget som helst af dette afsnit er det helt fint, det er nok faktisk et sundhedstegn.

I løbet af denne weekend (herovre var mandag fridag – Presidents Day) har jeg haft en computer i lab til at stå og træne min AdaBoost/Viola Jones algoritme, så når jeg kommer på uni i morgen bliver det spændende at se om den er færdig og om detektoren duer til noget.

Det må være nok tekniksnak for denne omgang. Jeg magter i hvert fald ikke mere lige nu. Hyg jer derhjemme i kulden 🙂

  •   •   •   •   •
February 9, 2012 by Andreas

Hverdag og besøg

Nå, så skal jeg da love for jeg fik slækket på disciplinen, men her er langt om længe et nyt indlæg. Hvad er der så sket siden sidst? Sidst jeg skrev havde jeg travlt med at skrive artikel, og Joachim var på vej. Jeg tog lørdag og søndag i brug og fik min kladde færdig som lovet. Joachim ankom søndag aften, hvor jeg samlede ham op i lufthavnen. Vi fandt vores lejebil og lagde kursen mod La Jolla. Mandag brugte vi på universitetet, så kunne vi nemlig slå to fluer med ét smæk: Joachim kunne se hvordan der var på sådan et amerikansk universitet, og jeg kunne lægge sidste hånd på min artikel. Den blev næsten færdig, og i hvert fald færdig nok til at jeg kunne lave de sidste ændringer i stille stunder i løbet af ugen, så jeg ikke behøvede komme på uni mere. Så kunne Joachim og jeg i stedet tage på tur.

Super cool abe i San Diego Zoo

De første par dage brugte vi på at se San Diego, hvor vi blandt andet var i zoo. San Diego har angiveligt verdens bedste zoo (jeg har ingen kilder, men det siger alle), så det var på tide at få den set. Den var nu heller ikke så ringe, men jeg må erkende at dyr, i hvert fald i fangenskab, ikke har min helt store interesse. En safari er nok anderledes. Nå, men uanset hvad var det nu helt sikkert besøget værd. Da vi have set San Diego var det på tide at tage på road trip. Vi havde Joshua Tree National Park i kikkerten, for der er rigtig god klatring, især på denne tid af året. På vejen dertil ville vi nu lige slå et smut forbi Slab City og Salvation Mountain, som filmkendere vil kende fra den fremragende film Into The Wild instrueret af Sean Penn.

Salvation Mountain

Salvation Mountain er en form for kunstigt bjerg af halmballer og maling bygget af en nu nogle-og-firs år gammel mand. Det ligger ude i ørkenen, langt væk fra alting, sydøst for Salton Sea. Det er et meget spøjst sted. En kirke kan det vist næppe kaldes, men en form for tempel til Guds ære er ikke helt ved siden af. Man finder en sidevej i “byen” Niland, der egentlig bare er en trailer park, skrumler 3-4 miles ud af den, og så dukker det op langs vejen.

Salvation Mountain

På vej ind passerer man et par skilderhuse med metertykke vægge, der vidner om at stedet her engang har været artilleritestområde for det amerikanske marinekorps. I stil med Christiania har nogle hippier så besat stedet med deres ramponerede autocampere, og nu er det et kunstner- og hippiekollektiv ved navn Slab City. I udkanten af Slab City ligger Salvation Mountain. Rundt om bjerget står en håndfuld gamle biler og traktorer, der også er dekoreret med farvelade og bibelcitater. Går man tættere på kan man enten gå op på bjerget til venstre, eller ind i den flere etager høje dekorerede halmhule han har bygget til højre. Alle steder er der farverigt og ingen rette vinkler, og rundt omkring står små altere med gamle bibeler og andre artefakter.

Salvation Mountain

Salvation Mountain ligger meget langt fra alfarvej, så man kommer kun forbi hvis man har god tid. Har man muligheden er det dog helt sikkert et besøg værd. Det er et virkeligt specielt sted.

På vej derfra blev vi også lige standset i et checkpoint, der formentlig ledte efter illegale mexicanske flygtninge. Vi lignede åbenbart ikke prototypen på dem de ledte efter og blev vinket videre af de Oakley M-frame bærende betjente, efter at have forklaret at vi var danskere på vej til Joshua Tree. Vi kørte videre op til Palm Springs og fortsatte til byen Joshua Tree, hvor vi havde booket et motel.

Skilte ved vores motel i Joshua Tree

Dagen efter to vi ind forbi klatrebiksen Joshua Tree Outfitters, hvor vi lejede en crashpad (sådan en madras man bruger til at falde på når man klatrer) og en guidebog, og efter lidt tips og småsnak om hvor vi fandt de bedste steder at klatre – “you guys need at least a week here to get a proper taste of the bouldering” – lagde vi kursen ind i nationalparken. Vi brugte den første halve dag på at klatre, og da vi ikke havde energi til det mere, vandrede vi en 10 kilometers tur ud til den forladte Lost Horse Mine og tilbage igen.

Sveden busk langs stien til Lost Horse Mine

Joshua Tree var et rigtig fedt sted at klatre, et sted jeg gerne vil på en længere tur til. Til sommer er det planen at Johan kommer på besøg, og vi skal så rejse rundt og klatre den sidste måned jeg er her. Der vil imidlertid være alt, alt for varmt at klatre i Joshua Tree til den tid. Da vi kom tilbage til byen Joshua Tree afleverede vi crashpadden og smuttede ind på den super hyggelige Crossroads Café and Tavern, først til en kop kaffe, og senere vendte vi tilbage og fik afstensmad. Den er spækket med stemning, og jeg er sikker på det er et sted man kan høre mange røverhistorier fra andre klatrere, hvis man tilbringer lidt længere tid i byen. Jeg fik i øvrigt en ganske fremragende lakseburger, og vi nåede igennem hele deres udvalg af fadøl (de har dog kun tre typer), før vi traskede tilbage til motellet.

Postkasser i Wonder Valley (ja, det kalder de den altså)

Dagen efter – lørdag –  kørte vi videre mod Amboy, som jeg også besøgte med min familie hen over julen. Vejen dertil er meget lang og meget lige, og der er aldrig rigtig nogen by, men skurvogne spredt i ørkenen nogle hundrede meter fra vejen. Hvis ikke det var for postkasserne i klynger langs vejen ville man ikke tro der boede nogen. Efter Amboy kørte vi til Barstow og så et meget rodet Route 66 museum, før vi vendte næsen sydpå igen. Inden vi ramte San Diego havde vi et meget vigtigt stop: Stone bryggeriet i Escondido. Sagen er den at jeg har fået en ny yndlingsøl efter at være kommet herover (og det er ellers ikke noget der sker hver dag): Stone’s Arrogant Bastard. Den er absolut fremragende. Læs mere om den på Arrogant Bastard-hjemmesiden. Vi fik en rundvisning på bryggeriet, komplet med gratis prøvesmagning af fire af deres øl. Derefter var vi jo nødt til at købe noget øl, så vi købte en ordentlig 2-liters flaske frisk tappet med Arrogant Bastard og en almindelig flaske Double Bastard til deling. Så kørte vi hjem og fik aftenen til at gå med at drikke det, mens vi så dokumentarfilm om netop Stone bryggeriet. En film der indledes med en bemærkning om at man kun må se den, hvis man til alle tider har en flaske specialøl indenfor rækkevidde. Det havde vi jo heldigvis.

Søndag sov vi længe, tog ud at klatre i Vertical Hold, men havde ellers bare en stille og rolig dag. Joachim skulle nemlig flyve videre til New York meget tidligt mandag morgen for at besøge sin storebror, Kristian. Mange tak for besøget Joachim, det var en super uge.

Siden Joachim forlod San Diego har tingene kørt mere eller mindre som de plejer. Mandag eftermiddag var min artikel 100% færdig, og jeg fik den indsendt. En halv time efter jeg havde gjort det, kom professor Trivedi forbi og spurgte om ikke også jeg lige ville skrive en artikel til en konference (den første, som også er den største og mest omfattende, er til en journal). Med deadline dagen efter. Da så jeg meget træt ud. Vi blev enige om at jeg jo lige kunne sove på det. Så dagen efter startede jeg på min artikel nummer 2 kl. 0900 og efter at have arbejdet hele dagen, kun afbrudt af et kvarters frokost, kunne jeg indsende den kl. 1804. Så gik jeg hjem og sov.

Siden da har jeg haft rimelig almindelige dage, jeg er på uni fra ca. 9 til 18, hvorefter jeg tager til klatring og træner et par timer mandag, tirsdag, torsdag og fredag. Med artiklerne i bakspejlet kan jeg nu koncentrere mig lidt mere om at fremstille noget til mit specialeprojekt. Og ja – jeg har lovet det gang på gang, men nu lover jeg at næste indlæg kommer til at handle om netop mit projekt. Så kan det jo enten betyde at I skal sørge for at læse det, eller sørge for at holde jer væk, afhængig af temperament og tolerence for nørderi 🙂

Jeg vil takke af for nu. Vi er netop i Lyd&Lys på AAU (hvor jeg jo er frivillig lysnørd) officielt blevet booket til dette års Studiestartsfest i Gigantium, så der er et lysshow der skal designes inde i mit hoved. Studiestartsfesten lavede vi i Gigantium for første gang sidste år, og det var en fantastisk oplevelse at få lov at være med til at stable det på benene. Her er en lille video af hvordan det hele løb af stabelen:

Godnat og hav det godt til næste gang 🙂

  •   •   •   •   •
November 11, 2011 by Andreas

Uge 3

Endnu en uge er gået, og jeg føler trang til at sende en opdatering ud på det store internet. Da vi forlod historien sidst havde jeg endnu ingen seng, men sov på sofaen. Til gengæld var det lykkedes mig at få anskaffet en cykel, omend i andet forsøg. Som den opmærksomme læser vil kunne huske, så havde ham jeg lejer min værelses-plads af – Nick – lovet at jeg kunne leje hans seng, fordi han alligevel skulle have sig en ny. Jeg skulle have fået den i løbet af sidste uge, men der hørte jeg ikke nærmere, så mandag skrev jeg ham en mail før at høre hvad status var. Han svarede tilbage at jeg alligevel ikke kunne få hans seng, for det var gået op for ham at han ikke havde råd til at købe en ny.

Nu var gode dyr rådne, som man siger, men jeg havde ikke tænkt mig at sove på sofaen de næste 6 måneder, så noget måtte der gøres. Jeg brugte lidt af mandagen på at undersøge og overveje mine muligheder. Jeg vil helst ikke anskaffe mig for mange større ting, for det bliver bare ting jeg får bøvl med at skaffe mig af med når jeg skal hjem igen om 6-7 måneder. Derfor overvejde jeg et kort øjeblik at finde mig et godt liggeunderlag eller andet friluftsgrej, som jeg også kunne have glæde af senere. Men idéen om at sove på en liggeunderlag i 6 måneder virkede ikke specielt tiltalende, så der var ingen vej uden om at anskaffe mig i hvert fald en madras.

Ikea to the rescue! Her er en Sears i nærheden, men de havde ikke lige noget til en pris der passede mig (med andre ord: Grotesk billig). Samtidig skulle det også være et eller andet jeg kunne fragte hjem ved bus- og håndkraft, da jeg, nærig som jeg er, ikke havde nogen planer om at betale for levering. Til alt held var Ikea imidlertid leveringsdygtig i en madras til blot 99$, og ikke nok med det, så var den også pakket komprimeret og sammenrullet, så den var til at slæbe på. Så tirsdag gik med Ikea-tur. Butikken ligger ikke lige om hjørnet, og slet ikke med offentlig transport, men det gik fint med lidt tålmodighed, og da dagen var omme var jeg 208,99$ fattigere, men til gengæld en Harestua, Torbjörn og Vika Amon rigere. Det der på menneskesprog er en springmadras, en kontorstol og et bord. Og, uh ja, en hovedpude! Det var tiltrængt efter at have bruge en stabel bestående af en strikketrøje, et par bukser og to t-shirts i mere end en uge.

Jeg skal love for sådan tre simple møbler gør underværker for at få én til at føle sig hjemme. Jeg havde ikke rigtig tænkt over det, og heller ikke at jeg “ikke følte mig hjemme”, men alligevel er det nu en rar fornemmelse at have sin egen seng og et bord man kan lægge ting på uden at skulle tænke på om nogen nu straks skal sidde der og spise og den slags. Så det er top nice. Nu har jeg vist også snart fået anskaffet mig de ting jeg skal bruge for at kunne overleve de næste måneder.

I projekt-land er jeg kommet godt i gang. Jeg arbejder som tidligere nævnt med at genkende skilte, og indtil videre har jeg læst et utal af videnskabelige artikler og fastslået hvilken metode jeg vil gå videre med. De seneste tre dage er gået med at få Qt til at vise OpenCV-billeder via OpenGL, og det er lykkedes. Og hvis du ikke forstår noget at foregående sætning er det okay. Når jeg har noget mere konkret og forståeligt at vise frem, så gør jeg det.

Jeg har ikke de store planer i weekenden, men mon ikke der dukker noget op. Jeg vil slutte af herfra. Ha’ det godt 🙂

  •   •   •   •   •