Som det kanske syns är alla färgvärden (både bakgrund och hud) i bilden koncentrerade i en ganska liten del av den totala färgrymden. Nästa bild visar området inom Mahalanobisavstånd 10, alltså de pixlar som skulle klassificeras som hud. Pixlarnas färg är de faktiska RGB-värden som ingår i regionen.
Resultatet ser ganska lovande ut för de gröna färgvärdena (vid avstånd 10 får man ungefär 95%/6% andel sanna positiva och falska positiva klassificeringar), men på grund av metoden jag använde för att plocka fram hudvärdena i första hand är det självklart de med lågt Mahalanobisavstånd inom handen som användes. Även fast alla färgvärden som identifierades som hud faktiskt var det (sanna positiva) så fanns det många fler hudpixlar som inte inkluderades (falska negativa). Nästa steg var att testa vilka slags färgvärden en hand faktiskt innehåller under typiska ljudförhållanden. För att göra detta tog jag en bild med enkel bakgrund, vilket gjorde det relativt enkelt att automatiskt segmentera handen, vilket syns nedan.
I figuren nedan är alla värden markerade i färgrymden.
Det här ger en helt annan bild av vilka färgvärden en hand kan förväntas anta. Det sista uppenbara steget var att ta en bild av bakgrunden utan några hudområden och se hur de förhåller sig till hudvärdena.
Figuren nedan visar färgvärdena från bakgrunden ovan.
Det är intressant dels hur litet område som färgvärdena hamnar inom, men även hur mycket färgerna skiljer sig från vad man intuitivt skulle förväntat sig utifrån den faktiska bilden. Även om det finns blå, röda och vita föremål i bilden fångar denna kameran under dessa förhållandenfärger som alla är beiga med lite variationer i hur ljusa/mörka de är. Den enda uppenbara skillnaden mellan bakgrunden jämfört med hudvärdena är att den inte innehåller lika ljusa punkter, vilket beror på att handen är närmare kamerna och lampan som belyser scenen är just ovanför.
Denna undersökning har visat (ännu en gång) att det inte är tvärenkelt att segmentera utifrån enbart färg, i alla fall med denna kameran och möjligheten att kontrollera belysningen. Det är intressant att min metod med Mahalanobisavstånd och största kopplade komponenten ofta producerar så pass acceptabla resultat trots allt. Ironiskt nog är orsaken till den (begränsade) framgången till stor del att metoderna för att samla in huddata inte får med alla delar av handen.
Om hela handens färgvärden används för att beräkna Mahalanobisavståndets kovariansmatris och medelvektor placeras fördelningen nästan exakt i mitten av färgrymden och ett gigantiskt högt tröskelvärde behövs för att få med mer än en bråkdel av hudpixlarna. Detta gör självklart också att stora delar av bakgrunden felaktigt klassificeras som hud.
Nästa vecka är det som vanligt rapportskrivande som gäller till en början, jag behöver fortfarande dokumentera snakes mer ingående från ett teoretiskt perspektiv och även beskriva min implementation (även om det i dagsläget verkar tvivelaktigt att den kommer bidra något i slutändan) av dom. Delavsnittet om färgmorfologi gapar också tomt. På implementationssidan så är nuvarande planen att testa diverse features (principalkomponentanalys (PCA) står högt på listan) under antagandet att handsegmenteringen är tillräckligt fungerande för att producera något slags användbar data till klassificeringsalgoritmer. Om det faktiskt är fallet eller bara är omotiverad optimism är en öppen fråga hittils, men även om resultatet blir entydigt negativt bör jag ha en ganska bra bild av anledningen till misslyckandet, och isåfall gäller det att knyta ihop det jag har arbetat med hittils och avsluta allt jag påbörjat i rapporten.
Inga kommentarer:
Skicka en kommentar