Exjobb Ngulia – Vad gör vi

Växlingen mellan att vara medveten om varje timme till att tappa koll på veckodag gick snabbt alltså. Vi har redan 3 av 20 veckor bakom oss men jag skulle också säga att vi kommit rätt långt på den tiden. Det lutar åt att vi åker till Kenya i mitten av maj, så ambitionen att ha ett fungerande system tills dess hjälper nog mycket! Jag har inte förklarat tidigare exakt vad det är vi gör så här kommer en liten översyn på hur planen ser ut just nu. Tänken är alltså att kamerafällor utplacerade på savannen i Kenya ska kunna detektera noshörningar, ett antal andra stora djur och männniskor (potentiella tjuvjägare..😞). Om kameran upptäcker något intressant ska information om detta samt bilder på detta till en server. I jämförelse med att bara lagra allt som filmas på ett minneskort som kollas igenom långt senare så hoppas man kunna agera snabbt om en kritisk situation verkar vara på gång med detta system. En del i det hela är att skapa ett neuralt nätverk för objektdetektion, som upptäcker ifall en bild  innehåller objekt av en viss klass och isåfall vart i bilden. Utöver det behöver vi hantera resultatet från alla enskilda bilder på ett vettigt sätt, då det inte är relevant att skicka upp hundratals bilder från samma tillfälle för att djuret syntes framför kameran i en längre stund. Vi vill alltså kunna avgöra om det är samma individ som syntes i de föregående bilderna, vilket brukar kallas object tracking (se t ex denna video). En annan utmaning är att vår objektdetektion ska köras på en microkontroller, troligen en Raspberry Pi, och då har vi plötsligt många begränsningar angående RAM-minne och hur stor vår detektionsmodell kan vara. När vi tränar vår modell har vi däremot tillgång till TensorFlow och gott om GPU via Google Colaboratory.

I figuren med alla ikoner nedan har jag försökt att visualisera vår process och hittills kan man säga att vi har rört alla delar förutom de längst till höger. Vi har lagt en hel del tid på att samla bilder och förbehandlat+annoterat dem, för att sedan träna en modell med dessa. Denna del i arbetet är en iterativ process och vi kommer fortsätta träna om vår modell då och då när vi har mer/bättre träningsbilder och med olika inställningar. Just nu genererar den mestadels vettiga resultat men det finns helt klart utrymme för förbättring, t ex kan en människa med svart- och vitmönstrad tröja ge utslag för att vara en zebra. Vi hade ett par kämpiga dagar med dels att behöva göra om delar av förbehandlingen av bilderna samt att konvertera vår detektionsmodell till ett format som kan köra på just Raspberry Pi och andra små enheter. Men vi kämpade på och det känns som att vi tar oss framåt igen. När vi kodar i Colab så kan vi testa att ladda upp filmsnuttar eller bilder men för att kunna testa objektdetektionen i realtid (som när vi är på Kolmården) så har vi lagt in modellen i en Andorid-app. Det gick rätt smidigt att ladda ner denna kod som är open source från TensorFlow och exportera appen med vår modell från Android Studios. 

Dagens tips: testa lite machine learning i Colab här (klicka på play-ikonen till vänster i alla celler) 💻

Ett ungefärligt flöde av vårt exjobb

Här intill är en skärminspelning från mobilappen, riktad mot datorn där en video från Kolmården spelas – och ovan en gammal bild på mig som klarade testet! 

Fler inlägg om exjobbet:
Exjobbsstart
Reka exjobb i djurparken
Mina drömmars exjobb. händer det??

Exjobbsstart

Den här veckan började jag och Amanda vårt exjobb på riktigt! Fram tills i måndags har vi mest läst teori och skrivit på en planeringsrapport som ska lämnas in, men nu har vi börjat arbeta heltid. Vi gör alltså exjobbet för Projekt Ngulia men får sitta på HiQ i Norrköping då HiQ ansvarar för utvecklingen av programvara för projektet. Det känns snabbt mer seriöst och fokuserat att ha en plats att gå till och kan efterlikna vanliga arbetstider. Liksom: kaffemaskin, fredagsfrukost, vara kollega. Samtidigt tillräckligt nära campus för att kika förbi och att säga hej ibland eller slinka in på en lunchföreläsning. (Undrar om jag blir för bortskämd med närhet till allt för att kunna lämna Norrköping en dag..). Den här första veckan har vi samlat data, skrivit mer på planeringsrapporten och börjat kika på implementering. Vi har fnissat och känt oss viktiga när vi mailat med researchfolk på Microsoft, och av andra mail blivit besvikna för att inte få tillgång av en viss samling noshörningsbilder. Det känns både spännande och lite läskigt att vara beroende av andras beslut och engagemang i projektet, vi får hålla tummarna för att allt rullar på helt enkelt. Drömscenariot om att få åka ner till Kenya och sätta det hela i drift verkar kunna ske ändå (!!). I övrigt har det varit kul att vi lyckats koda ihop små program för att göra sånt som är annars är omständigt, typ som när Amanda hittade samband i excel-filer för att ladda ner bilder från nätet automatiskt. Snart hoppas vi på att kunna visa några bilder där där vår CNN-modell känner igen en noshörning.

Innan vi tränat modellen på noshörningar: ett objekt är upptäkts men klassifieras som N/A. Snart så!

Äntligen får jag rita och modellera med kod

Nu läser jag en kurs som jag alltså har längtat efter sedan årskurs ett! Då fick jag se att man kunde programmera för att dynamiskt bygga upp t ex 3D-modeller och textur istället för att göra allt för hand. Som att kunna dra i en slider för att justera antalet träd i ett landskap och att de då placeras ut i olika storlekar på positioner som ser naturligt ut. I slutet av kursen ska vi göra individuella projekt med väldigt fria tyglar, så jag klurar på idéer! Hittills har vi haft en första labb som gick ut på att skriva en procedurell shader vilket var superkul när polletten föll ner. Det som först kändes klurigt var att denna shaderfunktion bara tar emot pixelns position, men att det ändå skulle kunna bli ett sammanhängande mönster.. Här intill är några mina favoritresultat. Hörs!

Resultat av programmeringslabb med användning av Perlin noise. Varje pixel får sin färg av samma funktion!

Reka exjobb i djurparken

De där två veckorna jag hade att spendera är nu inne på slutspurten och som kort utvärdering så var det väldigt skönt. Jag skulle kanske fortfarande vilja bli bättre på att finna ro i att göra ingenting i flera dagar. Gissar på att ordet myspyssla inte är särskilt beskrivande för de flestas öron men haha låt mig beskriva denna favoritsyssla. När jag myspysslar så håller jag på med något som jag själv fått för mig att göra och det är ofta kreativt eller har med organiserande av livet att göra – och alltid med något favoritalbum spelandes i bakgrunden. De här veckorna har det blivit mycket sånt så det har varit skönt. Jag har rensat mina prylar i Västerås och ser nu fram emot att faktiskt trivas i mina gamla rum. Så ut med säkert 50 prylar och in med en ny.. det blev en bullet journal till slut! Jag som både är ett stort fan av planering och målsättning samt det pyssliga lär ju tycka att det är kul tänker jag. Annars har de här dagarna bjudit på bästistid, träning, familj, soffhäng och Halloweenfirande bland annat. Några halvdagar var jag på Gaia och kodade vidare på det projekt jag påbörjade i somras. Det vore kul om projektet kom till verklig användning sen så vi försöker knyta ihop säcken lite. Något som redan är kul är att jag nu får användning av sådant jag lärt mig där. Jag och Ronja jobbar nämligen vidare med vårt projekt Campuskost nu och inför vår nystart testar vi att använda Microsoft Azure, som kortfattat är en molnplattform för att bygga och hosta applikationer. Kan berätta mer senare men vi började idag och det var lite klurigt att få helheten att fungera. Vi får nog sova på saken och kämpa vidare helt enkelt.

Och ja! Såklart kommer här en uppdatering på vårt första Kolmårdenbesök kopplat till exjobbet. Här går det att läsa om själva testet som gjordes den dagen, så kan jag ta det lite mer kortfattat här. Det kändes superskoj att bli insläppt på djurparken och se mer av arbetet bakom kulisserna. Tekniken som användes under dagen är kopplat till projektet som jag och Amanda ska göra, så att få se redan nu hur det fungerar i praktiken var toppen. Det ser ut att snart bli ett till studiebesök, fast då på Axis som har kameror och kompetens som lär komma till användning för oss. Imorgon börjar mina sista vanliga kurser på LiU.. vad galet. Hörs!

MT – Årskurs 5 ?!

Imorgon börjar mitt sista läsår på civilingenjörsprogrammet i medieteknik. WOW. Jag har ju faktiskt inte läst några masterkurser på Linköpings universitet än så det ska bli spännande, som ännu en nystart liksom. I övrigt börjar jag bli nöjd med föreläsningar, mikrorummet i Täppan och tentapluggande. Jag ser framför mig hur hösten mestadels kommer att gå ut på att djupdyka i projektarbeten och reka exjobb. Dessutom insåg jag nyligen att jag har 6 hp extra i bagaget och kan därmed fokusera på 2 kurser i taget nu per läsperiod vilket känns väldigt skönt. Inte minst för att ta vara på tiden med vännerna här innan det ska flyttas hit och dit i landet och världen, det gör redan ont i mitt nostalgiska hjärta. 

Sen gillar ju det där som är lite läskigt men ändå genomförbart och utvecklande. Så nu är jag återigen i full gång och extraknäcker/assisterar på universitetet, delvis likt tidigare år men med några moment som blir utmanande för mig. Något som är helt nytt för mig är jobbet som klassföreståndare för en av de nya MT-klasserna. Jag skulle gärna vilja nå den punkten där man inte behöver oroa sig mer än nödvändigt gällande att prata inför folk. Att vara klassföreståndare innebär runt 10-15 timmars snack inför en klass utspritt över terminen, dvs en bra övning och med ett syfte jag kan känna ett uppriktigt engagemang till. Okej att det inte är alltför spännande att presentera information om CSN, men när det kommer till ämnen som jag tror att jag skulle kunna göra en skillnad för någon så blir det plötsligt häftigt. Jag får chansen att dela med mig av tankeställare, tips och studieteknik som jag känner är värdefulla med 5 år framför sig. De andra engagemangen gäller två programmeringskurser som jag nu får chansen att ta mer ansvar i som kursassistent. Jag tycker fortfarande det är lite svårt att dela med mig av tankar och känslor innan något är avklarat – så någon mer uppdatering lär komma senare i höst. Samma sak kanske ni känner igen från när jag hade prestationstunga moment i USA – ni fick läsa ”puhh jag klarade det” i efterhand snarare än tankarna från när jag var mitt i det och alltså inte var i mål än. Kanske att jag har fått för mig att det är svårare att tillämpa fake it ’til you make it om jag är öppen med vad jag blir nervös inför. 

Vi hörs,

Jag fixade ett år på Stanford?!

Galet.. Likt ett par andra gånger den här quartern kunde jag verkligen inte föreställa mig hur allt skulle bli klart ett par dagar innan deadlines. Speciellt nu i helgen när dagarna också fylldes med lite fest, dansshow och poolhäng. Det blir klurigt att prioritera när man vet att alla vänner kommer att splittras kort efter alla finals. I onsdags hade vi presentationer för alla tre slutprojekt, varav ett skulle presenteras två gånger. Det var en trött Sara som lämnade campus vid tiotiden men på ett sätt var det ändå skönt att beta av allt på samma dag, nervositeten hann liksom släppa rätt mycket redan efter första.

Projekten för denna quarter har varit:
– Research om hur användare uppskattar avstånd i virtual reality ( Team om två i VR-kursen )
– Designa en mobilapp som uppmuntrar användare att leva miljömedvetet, genom en gnutta gamification och AI ( Team om fyra i kursen Designing Solutions to Global Grand Challenges – Human-Centered AI)
– Implementera ett videoverktyg där någon som dansar i en video klonas baserat på sina rörelser – hehe mest för skoj skull och med denna GIF som inspiration ( individuellt projekt i kursen Computational Video Manipulation)

Dagen blev lite extra intensiv i och med att två av redovisningarna krockade ( vilket jag insåg samma morgon ) så fick springa emellan en del. Det kändes lite tråkigt att behöva lämna videokursen innan slutsnacket för det har varit en av mina favoritkurser och det var liksom sista klassrumsupplevelsen. I VR-kursen hade vi demo och poster session vilket gick bra, det var ett väldigt avslappnat event. Sedan ett trevligt men också mer seriöst avslut på dagen med middag och presentationer för jury och allmänhet i designkursen. Det är ofta under sånna tillfällen man påminns om vilket plats vi är på; när en av grupperna hade presenterat kommenterar en ut juryn att deras idé var väldigt lik det utsprungliga konceptet för Craigslist. ’Vi borde se till att koppla ihop er med Craig, han skulle tycka det var kul att höra’. En annan rolig grej var att vårt projekt vann pris för bästa HCI ( human-computer interaction ) vilket är kursens huvudämne – wiho!

Jag har egentligen kvar att skicka in rapporten och koden för videoprojektet senast måndag, men jag anser mig själv som klar redan. Liksom, har jag tid över kommer jag finslipa på arbetet för att det är ett roligt projekt men annars får det vara bra som det är. Så nu ska jag njuta av sista (?!) veckan här 😃

Här kommer ett par bilder från helgen också! 

Ett par mil utanför bekvämlighetszonen

Men det gick ju ändå. (om det lät likgiltigt så vill jag förtydliga att detta är ett glädjetjut!)
I måndags höll jag en presentation/föreläsning för de andra i min kurs Computational Video Manipulation. Just att prata inför folk är nog inte det som känns mest nervöst numera, kanske lite, men det var framförallt att jag skulle hålla låda i hela 80 minuter. Att det jag presenterade skulle vara på en nivå som passar för ett gäng PhD-studenter, att jag har lite svårare att hitta de rätta orden på engelska och att behöva vara beredd på oväntade frågor. Jag minns att jag tyckte att det lät lite läskigt när jag såg att enskild presentation var ett av examinationsmomenten i kursen (liksom utöver att det redan kändes nervöst att det var en seminariekurs vilket jag aldrig tagit förr), men jag gillar väl inte tanken på att jag skulle vara en sån som fegar ur på grund av en sån grej – och kursen lät ju kul. Tänkte att det är ju bara att jag ser till att vara väl förbedd och få klart presentationen en sådär två veckor innan och öva så det sitter i god tid innan. Och ja tanken var väl god, men så var det detta med 5 andra deadlines i veckan. Jag har en prioritetslista som jag uppdaterar dagligen detta fick aldrig chansen att ligga i topp, inte förrän dagarna precis innan. Under lördagen testkörde jag presentationen och tidtagaruret visade att den var ynka 15 minuter lång, haha (panik). Samma dag hade jag tagit pauser för ett yogapass, ett besök på en bbq-festival och en kort stund på en fest där Cinco de Mayo firandes. Insåg att söndagen skulle behöva bli ett sånt där brutalt pluggpass utan tid för några sådana pauser och det lyckades jag faktiskt hålla. 10 timmar senare och jag kände mig rätt redo, övade en gång till måndag morgon och sen plötsligt var det klart. Boost.

Ikväll var jag på End of Year Celebration Banquet som anordnades av Women’s Community Center. God mat, acapella och avtack för de som engagerat sig under året. Jag har varit med på många event de ordnat och det är verkligen mysigt att de har en egen byggnad på campus (och inte vilken som helst utan en gammal brandstation med färgglada väggmålningar och fullt med pyssel) där dörren bokstavligen alltid står öppen. Bjuder på lite bilder från dagen och från när jag övade inför min presentation, hörs!

30 grader och 5 deadlines i veckan

Jag hade en tuff start på veckan och tvekande faktiskt på om det skulle gå ihop sig. Vaknade lite sjuk i måndags och ville hellre bädda ner mig och ta tag i en ny serie än mina fem deadlines för veckan. Vet inte riktigt hur det gick till men nu är det onsdag kväll och mest kritiska är avklarat, ordentligt fokus kan göra underverk alltså. Har läst två forskningsrapporter om bild/videoalgoritmer och svarat på följdfrågor. Veckans VR-kod är inskickad och jag är lite extra glad över att ha teamat ihop med med en annan tjej i den kursen. I HCI-projektkursen har vi analyserat intervjuer, trixat med prototyper och förberett veckans presentation. Igårkväll offrade jag några viktiga sömntimmar för att koda klart ett projekt vi haft i videokursen. Det var strikt deadline idag och jag är fortfarande paff över att jag hann. Vi skulle implementera face morphing från scratch och kring lunch igår bara knygglades ansiktena ihop för mig. Fäller en tår för mina bortkastade timmar av debugging p.g.a. felaktiga minustecken men väldigt kul när det fungerade till slut!

Lättad nu men alltså i måndags ledde jag cykeln hem mest bara för att inte behöva komma hem snabbt och behöva ta tag i allt. Det är verkligen en känslomässig bergochdalbana ibland dettta med att ha så intensivt pluggtempo (( och i kombination med övriga livet )).

Nu återstår att slutföra veckans teorifrågor i VR-kursen. Samt med projektgruppen har vi low-fi  prototyping och noggrann sammanställning av det för nästa vecka har jag en individuell och betygsgrundande presentation. Och så två till rapporter och nya HCI- och VR-uppgifter som vanligt. Inser att det kanske är bäst att inte tänka så mycket framåt haha. Snart är det också min tur att hålla i en 80-minuterspresentation / diskussion i seminariekursen där i princip alla utom jag forskar på ämnet. Det är nog vad jag är mest nervös över för tillfället men lär överleva det med. Känner mig värd en dag med mycket soltid imorgon för att samla lite ny energi.

Bjuder på lite blandade bilder från min vardag!

Seminarie med videokursen. Trevlig grupp och skön stämning. Eventuellt att detta kan bli min favoritkurs!?
Projektarbete för HCI-kursen. Ny projektgrupp har inneburit att jag fått se mer av campus och lite mer från ett undergrad-perspektiv. Här i design school med obegränsad mängd postitlappar, whiteboards och pysselsaker.
Här stannar jag till ett par minuter på vägen hem, hänger lite och släpper på eventuell spänning i axlar och nacke. Träningskläder eller ej haha.
Gästföreläsning av Katie Bouman. Besöket var inbokat sedan flera månader så det var ju löjligt passande att första bilden av svarta hålet blev offentlig en vecka innan hon kom hit!
När vi släpper plugget för ett tag 🙂
Och så avslutningsvis, Math Corner i kvällssolen

Mina kurser för sista quartern

Nu andas jag ut ( en kort andhämtning ) efter första veckan av Spring Quarter. Första veckan är lite extra krävande i och med de flexibla kursvalen. Vi är många som springer runt mellan fler kurser än vi behåller i slutändan, känner in föreläsaren, atmosfären i rummet och upplägget av kursen. Att gå på många föreläsningar är inget större problem i sig men det är framförallt velandet som varit jobbigt. Den här gången hade jag minst 6 kurser jag ville läsa vilket skulle ner till 3 och i flera av dem delades det ut uppgifter direkt. Därmed gäller det att bestämma sig snabbt och påbörja uppgifterna i de fastställda kurserna – eller göra alla uppgifterna, alltså även i kurser man kanske droppar. Jag orkade hålla mina dörrar öppna tills onsdagen, sen spikade jag kurserna innan jag ens gått på första föreläsningen för en av dem. Nu känns det bra och jag hann ändå med att ränna ute med vänner både torsdag, fredag och lördag. 🎉

Här är kurserna jag läser nu:

CS 448V: Topics in Computer Graphics: Computational Video Manipulation

Instructor: Maneesh Agrawala

”The goal of this graduate seminar is to survey recent work on computational video analysis and manipulation techniques. We will learn how to acquire, represent, edit and remix video. Several popular video manipulation algorithms will be presented, with an emphasis on using these techniques to build practical systems. Students will have the opportunity to acquire their own video and develop the processing tools needed to computationally analyze and manipulate it.”

CS 377E: Designing Solutions to Global Grand Challenges: Human-Centered AI

Instructor: James A Landay

”In this course we creatively apply information technologies to collectively attack Global Grand Challenges (e.g., global warming, rising healthcare costs and declining access, and ensuring quality education for all). Interdisciplinary student teams will carry out need-finding within a target domain, followed by brainstorming to propose a quarter long project. Teams will spend the rest of the quarter applying user-centered design methods to rapidly iterate through design, prototyping, and testing of their solutions. This course will interweave a weekly lecture with a weekly studio session where students apply the techniques hands-on in a small-scale, supportive environment.” Theme of this year: Human-Centered AI

EE 267: Virtual Reality

Instructor: Gordon Wetzstein

”OpenGL, real-time rendering, 3D display systems, display optics & electronics, IMUs and sensors, tracking, haptics, rendering pipeline, multimodal human perception and depth perception, stereo rendering, presence. Emphasis on VR technology. Hands-on programming assignments and a final project.”

Den kurs som varit mest berg-och-dalbana är UX/AI-kursen. Redan första veckan skulle projektgrupp och projektidé spikas, en expert inom valt område skulle intervjuas en timme och research dokumenteras. Projektet ska pågå under hela quartern vilket innebär ännu större vikt av ett bra team och projektidé som jag kan känna ett genuint intresse av. Vi fick presentera oss framför klassen och det skulle minglas hit och dit. Stressad situation men nu i efterhand är jag tacksam för en bra matchning. Samt nu efter en intensiv helg i och med deadline av projektidé, planering och research känns det också bra med projektet i sig. Det vägde faktiskt så pass tungt att jag nog hade droppat kursen om inte team+projekt hade känts bra, men nu är jag taggad! I övrigt är detta min mest sociala kurs för denna quarter. Vi är en grupp om 4 i en klass med totalt 30 studenter och vi kommer alla följa utvecklingen av varandras arbeten.

Seminariekursen är jag positivt överraskad av! Var först lite orolig att det skulle vara så psykiskt ansträngande att ha examinationsmoment två gånger i veckan i och med att det krävs att man varje gång är aktiv i diskussionen. Och visst är det lite krävande men mycket positivt väger upp. Vi är bara runt 10 studenter i ett trevligt konferensrum och det känns väldigt lyxigt att få nästintill privatlektioner av en framstående professor som tilltalar en med namn. De andra studenterna är mestadels PhD-studenter som specialiserar sig inom videoteknik och kan tillägga många smarta inflikningar – och jag försöker hänga med så gott jag kan. Stämningen är lättsam och jag lär mig förvånansvärt mycket av det här upplägget ( läsa forskningsrapporter -> svara skriftligt på några frågor om rapporten -> diskutera algoritmerna under seminariet och få det förklarat igen fast med andra ord ). Dessutom ska vi själva testa ett par algoritmer under ett par programmeringsuppgifter samt ett slutprojekt.

VR-kursen har jag inte så mycket att säga om än så länge. Jag har hört av många att den ska vara bra och det stämmer överens med mitt första intryck. Kursen är lite mer av den anonyma typen om man jämför med de två andra, runt 50-60 studenter och kursen är mestadels baserad på programmeringsuppgifter man skickar in och sedan ett slutprojekt. Förhoppningsvis hittar jag och min kurspartner på ett roligt slutprojekt och då kan det bli en sån kurs som är enkel att hitta studiemotivation till!

En av grupperna presenterar sina framsteg i UX/AI-kursen
Laddad med ny energi från nära och kära under Springbreak!