23 februari 2008

Vecka 8 - Alexander

Aktivitets- och tidsrapport för vecka 8.

  • Måndag 18.02.08: Programmering av kvantiseringen av accelerometerdata med gruppen. Diskussioner rörande HMMs, rapporten och algoritmer.
  • Tisdag 19.02.08: Förberedde MacBooken för installation av Windows XP, Visual Studio m.fl.
  • Onsdag 20.02.08: Utveckling och testning av kvantisering av accelerometerdata. Framtagning av Systemarkitektur. 
  • Torsdag 21.02.08: - 
  • Fredag 22.02.08: Utveckling och testning av kvantisering och serialisering för applikationen tillsammans med gruppen.
  • Lördag 23.02.08: Arbete med veckans aktivitets- och tidsrapport samt statussammanfattningen. 
  • Söndag 24.02.08: Ritat bilder på ett framtida GUI. Uppdaterat bloggen.

Tid denna vecka: 20 h  

Totalt: 110 h

22 februari 2008

Status - Vecka 8

Denna vecka har arbetet gått mycket bra. 


Systemarkitekturen har tagit form. Ett UML-diagram av programmet i detta skede finns uppdelat i tre delar för algoritmer (länk kommer), interfaces (länk kommer) och klasser (länk kommer).


För att datan som produceras av Wii Remote:n skall kunna användas tillsammans med HMM måste den anpassas. Accelerometrarna producerar accelerationsvärden i x-, y- och z-led, med andra ord en tredimensionell vektor för varje tidpunk. En markovkedja arbetar däremot bara med diskreta tillstånd. Den tredimensionella vektorn måste med andra ord omvandlas till en dimension. Detta görs med en algoritm som kallas k-means. Den har även den fördelen att två rörelser som representerar samma gest omvandlas till liknande värden även om indatan skiljde sig åt.

Algoritmen fungerar som så att man placerar ut ett antal s.k. centroider i dataområdet. Därefter noterar man för varje punkt vilken centroid som ligger närmast. Därefter flyttar man centroiden så att den ligger i mittpunkten mellan alla datapunkter som hade associerats till den specifika centroiden. Detta upprepas tills dess att centroiderna inte flyttas mer. Man har då en lista där varje datapunkt tillhör en viss centroid. Dessa centroiders id:n används sedan som tillstånd i markovmodellen. 


Den bästa strategin för utplacering av startpositioner för centroider verkar vara att uniformt distribuera dessa i en minimal ellipsoid som innesluter samtliga mätpunkter. Vår lösning är att placera dessa utefter cirklar i varje par av plan. Steget efter att ha initierat dessa centroider innebär att vi låter varje punkt associeras till dess närmsta centroid. Centroiden flyttas därefter till mittpunkten av gruppen av punkter den är associerad till, vilket görs genom att beräkna det aritmetiska medelvärdet över denna grupp. Sedan associeras punkter på nytt och denna procedur utförs tills centroiderna inte längre byter position eller att deras nya position inte överskrider ett minsta avstånd ε. När detta är utfört kommer vi ha en endimensionell representation av rörelsen.


Serialisering implementerades också i liten skala fredags. Nu har vi möjlighet att spara icke behandlad accelerometerdata avläst från Wiimoten och sedan läsa in den vid önskat tillfälle. Denna funktion kommer att komma väl till användning när vi utvecklar tillämpningen. Vi kommer att spara tid vid implementering och testning eftersom vi inte är beroende av att ha en Wiimote till hands och utföra gester "live" eftersom vi kan skicka gamla redan inspelade  gester till applikationen och vidare till tillämpningen.


Vårt GUI har utvecklats en aning och ser nu ut som följande.


Möte 22.02.08

Möte: Inom gruppen.

Närvarande: Fredrik, Johan, Erik och Alexander. Aram är sjuk. 

Uppgifter till detta möte: Alla utförda.

Uppgifter till nästa möte: 

  • Alex och Erik: Utveckla GUI:t genom användning av paper prototyping.
  • Aram: Skicka bild av UML-diagrammet samt en kort sammanfattning av alla klasser och interface till Alexander.
  • Johan och Fredrik: Kommentera veckans skrivna kod.
  • Alla: Läs igenom utkastet av rapporten på Google Docs.

Beslut: 

  • Inget möte med Staffan och Kalle måndag den 25:e februari.
  • Gemensamt arbete på måndag 13.15 i grupprum 5211.
  • Ta fram en mer detaljerad arbets/prioritetslista på måndag.
  • Eventuellt boka handledningar och föreläsningar med "Fackspråk".

Tid: 30 min

17 februari 2008

Vecka 7 - Erik

Aktivitets- och tidsrapport för vecka 7.
  • MÅNDAG: lunchmöte + sammanställa intervju + veckomöte
  • TISDAG: kompleterat planneringsrapporten
  • ONSDAG: testat och installerat visual studio
  • FREDAG: arbete + möte
  • SÖNDAG: uppdaterat blog

Tid denna vecka: 11 h

Totalt: 62,5 h

Vecka 7 - Fredrik

Aktivitets- och tidsrapport för vecka 7
  • Måndag 11.02.08: Möte (se mötesprotokoll 11.02.08).
  • Tisdag: 12.02.08: Utvecklat.
  • Onsdag 13.02.08: Utvecklat.
  • Fredag 15.02.08: Arbete, möte (se mötesprotokoll 15.02.08) och återkoppling.
  • Söndag 17.02.08: Uppdaterat bloggen.
Tid denna vecka: 19 h
Totalt: 64 h

Vecka 7 - Aram

Aktivitets- och tidsrapport för vecka 7
  • Måndag 11.02.08: Möte (se mötesprotokoll 11.02.08).
  • Tisdag: 12.02.08: Arbetat med planeringsrapport, implementerat och läst.
  • Onsdag 13.02.08: Suttit med Alex och läst på om algoritmer.
  • Fredag 15.02.08: Arbete, möte (se mötesprotokoll 15.02.08) och återkoppling.
  • Söndag 17.02.08: Uppdaterat bloggen och skrivit utvärdering.
Tid denna vecka: 19 h
Totalt: 64.5 h

Utvärdering av metod för inspelning/identifiering

Hidden Markov Models:
Statistisk model som används till system som är modellerade som en markov-process med okända parametrar. Den är populär inom många former av igenkänning såsom gestigenkänning och röstigenkänning [1]. Inom området gestigenkänning där man utnyttjar accelrometrarna används modellen bl.a. till projektet Wiigee som är öppen källkodsbaserat. Hur man använder den och hur finns det även mycket information om och då den innefattar markov-kedjor är den inte heller helt obekant för gruppen då detta har berörts ett par kurser.

Neurala nätverk:
Samlingsnamn på ett antal algoritmer som påminner om hur nervceller och hjärnan fungerar vilket skiljer dessa mot andra mer "datavetenskapliga" algoritmer. Används bl.a. till mönsterigenkänning och signalbehandling [2]. Vi har inte lyckats hitta något Wiiremote-projekt som använder neurala nätverk till gestigenkänningen så att använda detta vore att göra det på ett annorlunda sätt. Med stor sannolikhet skulle detta ge bra resultat då det har gjorts gestigenkännings-experiment m.h.a. neurala nätverk vilka gett goda resultat [3]. Dock är neurala nätverk beräkningskrävande vilket kommer att begränsa applikationerna som skall använda sig av vårat bibliotek.

Beslut:
Både neurala nätverk och Hidden markov model används redan för gestidentifiering och bägge är därför lämpade till uppgiften. Men då vårt mål är att bygga ett fungerande och snabbt bibliotek under en begränsad tid vill vi använda något som redan är testat och fungerar effektivt tillsammans med Wiiremot:en så därför har vi valt att använda Hidden Markov model. Dessutom är den väldokumenterad och vi är bekanta med lite av matematiken bakom Hidden Markov model så att tillämpa den kommer att gå snabbt.

[1] Hidden Markov Model
[2] Neurala Nätverk
[3] Experimentell tillämpning av neurala nätverk för gestigenkänning

Vecka 7 - Johan

Aktivitets- och tidsrapport för vecka 7.
  • 2008-02-11: Handledarmöte
  • 2008-02-12: Möte med gruppen
  • 2008-02-14: Läst om gestigenkänningsalgoritmer
  • 2008-02-15: Möte med gruppen
  • 2008-02-17: Läst om k-means-algoritmen

Tid denna vecka: 15 h
Totalt: 54 h 45 min

Status - Vecka 7

Redan innan denna vecka påbörjades började Fredrik utveckla en tidig version av GUI:t för vår applikation. En schysst funktion är att man redan nu kan hålla in Wiimotens A-knapp för att ens utförda rörelser skall ritas ut på de tre graferna. Dock är inte ritalgoritmen fullt utvecklad men man får en uppfattning över hur slutversionen kommer att se ut. En skärmdump ses nedan.


Vi har valt att använda oss av Hidden Markov Models som verktyg för inspelningen och identifieringen  av gester. En utvärdering finns här. Programstrukturen har också börjat ta form men kommer först att komma igång på allvar kommande vecka då vi alla är mer bekanta med HMM och tillhörande algoritmer.

Planneringsrapporten är klar och kan läsas här. Den kommer dock att uppdateras efterhand samt användas som bas för halvtids- och slutrapporten.

Denna vecka var till en början rätt ostrukturerad arbetsmässigt. Vi visste vad vi skulle göra men noggrannare planering i form av uppdelning och deadlines borde ha gjorts. Det mesta av arbetet gjordes under fredagen och lyckligtvis knöt vi ihop säcken på den tiden. Möjligtvis borde vi vid denna tidpunkt vara lite mer insatta i algoritmerna och verktygen för identifiering och inspelning av gester. Dock följer vi fortfarande den utsatta tidsplanen.
Kommande vecka börjar själva utvecklingen av vårt bibliotek, vilken kommer vara lättare att strukturera.

Möte 15.02.08

Närvarande: Aram, Fredrik, Johan, Erik och Alexander 

Uppgifter till detta möte: -

Uppgifter till nästa möte:

  • Aram: Lägga upp utvärdering och val av verktyg för inspelning och identifiering av gester.
  • Alexander: Välja optimal lösning för Windows på sin MacBook för användning av Visual Studio med mera :(
  • Alla: Läsa de upplaggde dokumenten om HMM på Google Groups.
  • Alex/Erik/Johan: Börja med halvtidsrapporten på Goodle Docs.

Beslut:

  • Vi kommer använda oss av Hidden Markov Models (HMM) för inspelningen och identifieringen av gester. Utvärdering kommer snart upp på bloggen.
  • Vi kommer ej ha ett möte med Kalle och Staffan på måndag. Utveckling av biblioteket kommer att äga rum istället. Alexander meddelar på måndag.
  • Arbete 13.15, måndag i rum 6207 i EDIT-huset.
Kommentar: Vad vi gjort denna vecka kommer framöver sammanfattas under Status.

 Tid: 30 min

Vecka 7 - Alexander

Aktivitets- och tidsrapport för vecka 7.

  • Måndag 11.02.08: Sammanställning av användarundersökningen. Möte (se mötesprotokoll 11.02.08). Uppdatering av bloggen. Rapportmall skriven. 
  • Tisdag 12.02.08: Komplettering av planeringsrapport. Infosökning om HMM, C# och Matlab. Uppdatering av bloggen.
  • Onsdag 13.02.08: Studering av Visual Studio och Fredriks GUI samt sammanställning av information rörande algoritmer och framtida kodning tillsammans med Aram.
  • Torsdag 14.02.08: Renskrivning och inlämning av planeringsrapporten. Studerande av Rubines algoritm.
  • Fredag 15.02.08: Arbete och möte med gruppen rörande algoritmval, start av kodning och studerande av HMM.
  • Lördag 16.02.08: -
  • Söndag 17.02.08: Uppdatering av bloggen. Studerande av HMM. Start med halvtidsrapporten på Google Docs. Läsning av Wiigees (tyska) dokumentation.
Tid denna vecka:  24 h 15 min
Totalt: 93 h 30 min