Hejsan!
Mål:
Jag tänker göra det Disney, Snapchat och alla andra verksamheter håller på med, för att detektera objekt och ersätta objekten med någon 3D bild.
Men först....detektera objekt.
Den absolut främsta algoritmen för att detektera ett ansikte heter Active Shape Model(ASM). Det är en algoritm som detekterar punkter i en bild och flyttar punkterna efter en önskad form, t.ex. ett ansikte. Ansiktet kan vara skalat, roterad eller deformerat (vridet). ASM fungerar ändå. Det finns även en påbyggnad av ASM som kallas för Active Apparance Model(AAM), vilket är i praktiken samma sak, fast man använder en ansiktsmask av punkter i AAM istället för en ansiktsorm av punkter i ASM. Båda fungerar ändå lika bra.
Både ASM och AAM använder Point Distribution Model (PDM).
Litteratur:
Det finns en film på Youtube som behandlar ASM riktigt bra, men jag har fortfarande inte förstått ASM helt.
https://www.youtube.com/watch?v=53kx...nnel=RichRadke
Filmen visar 5 steg:
Problem:
Jag har förstått att man ska samla på sig X antal bilder och manuellt placera ut M antal landpunkter på varje bild.
Jag har förstått Procrustes algoritm som kan translatera, skala och rotera M antal punkter.
Det jag inte har förstått är:
Matlab-kod:
Det finns Matlab-kod här som visar ett exempel på ansiktsdetektion: https://github.com/johnwmillr/ActiveShapeModels
Dom verktyg jag har:
Jag har Procrustes algoritm som jag kan flytta punkter mot ett mål efter bästa rotation och skalning:
https://se.mathworks.com/help/stats/procrustes.html
Så vad behöver jag komplettera för att kunna detektera?
Mål:
Jag tänker göra det Disney, Snapchat och alla andra verksamheter håller på med, för att detektera objekt och ersätta objekten med någon 3D bild.
Men först....detektera objekt.
Den absolut främsta algoritmen för att detektera ett ansikte heter Active Shape Model(ASM). Det är en algoritm som detekterar punkter i en bild och flyttar punkterna efter en önskad form, t.ex. ett ansikte. Ansiktet kan vara skalat, roterad eller deformerat (vridet). ASM fungerar ändå. Det finns även en påbyggnad av ASM som kallas för Active Apparance Model(AAM), vilket är i praktiken samma sak, fast man använder en ansiktsmask av punkter i AAM istället för en ansiktsorm av punkter i ASM. Båda fungerar ändå lika bra.
Både ASM och AAM använder Point Distribution Model (PDM).
Litteratur:
Det finns en film på Youtube som behandlar ASM riktigt bra, men jag har fortfarande inte förstått ASM helt.
https://www.youtube.com/watch?v=53kx...nnel=RichRadke
Filmen visar 5 steg:
- Välja X antal bilder och placera manuellt några gemensamma landpunkter på varje bild. Det kan vara t.ex. punkter runt ögonen, för alla har ju ögon. Det kan vara en punkt på näsan och två punkter på läpparna
- Använd Procrutest algorim för att rotera alla landpunkter efter en vald bild
- Sedan applicera PCA. Detta är algoritm 2 och jag har inte förstått varför man ska använda detta:
Problem:
Jag har förstått att man ska samla på sig X antal bilder och manuellt placera ut M antal landpunkter på varje bild.
Jag har förstått Procrustes algoritm som kan translatera, skala och rotera M antal punkter.
Det jag inte har förstått är:
- Varför bakas PCA in här?
- Hur identifierar jag landpunkter i en okänd bild?
- När jag placerar ut alla landpunkter, ska jag göra något mera med dom, eller är det bara koordinater?
Matlab-kod:
Det finns Matlab-kod här som visar ett exempel på ansiktsdetektion: https://github.com/johnwmillr/ActiveShapeModels
Dom verktyg jag har:
Jag har Procrustes algoritm som jag kan flytta punkter mot ett mål efter bästa rotation och skalning:
https://se.mathworks.com/help/stats/procrustes.html
Så vad behöver jag komplettera för att kunna detektera?
__________________
Senast redigerad av Tom.Of.Finland 2024-01-07 kl. 17:38.
Senast redigerad av Tom.Of.Finland 2024-01-07 kl. 17:38.