Sébastien Marsaa-poey
L'objectif de ce TP est d'implémenter un algorithme de morphage. Cet algorithme permet de transformer un visage vers un autre visage, mais aussi de transformer un objet ou un animal en autre chose. D'autres applications sont la réalisation d'un visage moyen pour un groupe de personnes ou la modification des traits d'une personne, par exemple pour masculiniser ou féminiser un visage.
Cliquez sur les images et les animations pour les voir en taille réelle
Dans cette partie, on réalise des animations qui montrent la transformation d'une image à une autre. On
travaillera principalement avec des images de visages.
Premièrement, on définit manuellement des points de correspondances entre les deux images. En réalisant la
moyenne des positions des points d'interets des deux images (paramétrée par le facteur de distorsion
α), on
obtient une forme intermédiaire entre les deux images. On applique une triangulation de Delaunay à cet
ensemble de points moyens pour séparer l'image en triangles. image triangulation moyenne. Cette
triangulation sert à transformer les deux images
vers la forme moyenne. Cela se fait en calculant la transformation affine T entre chaque triangle des
images
d'origine
et le triangle correspondant dans la forme moyenne; puis à appliquer cette transformation à chaque point du
triangle. Une fois les deux images déformées vers la forme moyenne, il ne reste qu'à faire un moyenne de
ces
deux images (parametrée par le facteur de fondu β) pour obtenir une image intermédiaire.
5 images avec triangulations correspondantes
L'animation est obtenue en calculant plusieurs images, en faisant varier linéairement les parametres
α
et β.
Image 1 | Image 2 | Morphage |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Lorsque les formes sont proches, comme par exemple pour deux visages, le morphage est convaincant. C'est moins le cas lorsque les formes sont très différentes. Par exemple, pour le morphage "évolution" qui passe du dinosaure à la poule, les bras du trex ne correspondent à rien chez la poule et disparaissent dans un fondu. C'est encore plus génant sur la transformation du fauteuil; un bras du fauteuil apparait de nulle part, déformée de façon peu naturelle. Le morphage du fauteuil souffre d'un autre défaut: trop peu de points de correspondances ont été définis entre les deux images, ce qui conduit à la déformation de lignes de l'arriere plan qui devraient rester droites et à un effet de ghosting au centre du fauteuil.
Dans la partie 1, les points caractéristiques du visage ont été sélectionnés à la main. Dans cette
partie, on
utilise un outil pour les détectert automatiquement: dlib.
On utilise la même méthode que précedemment pour triangulariser ces points d'intérêts, puis on calcule
simplement la triangularisation moyenne pour tous les visages.
Ensuite, chaque image est transformée vers la forme définie par la triangularisation moyenne avec
l'algorithme de morphage de la partie 1. En particulier le parametre de distorsion α est fixé à 1
(On veut
épouser parfaitement la forme moyenne) et le parametre de fondu β à 0 (On ne fait pas de fondu
avec
une
deuxième image). Enfin, on réalise la moyenne de toute ces images transformées. Cela donne le visage
moyen du groupe étudié.
On applique la méthode aux photos de la classe ainsi qu'à la base de donnée
d'Utrecht.
Forme du visage moyen | Visage moyen | |
---|---|---|
classe, points manuels |
![]() |
![]() |
classe, points dlib |
![]() |
![]() |
Utrecht, points dlib |
![]() |
![]() |
Le visage moyen d'Utrecht donne un résultat plus satisfaisant dans le sens ou il laisse moins apparaitre les détails qui viennent d'une image unique. C'est grace à la taille de l'échantillon qui est supérieure dans le cas d'Utrecht. Dans les deux cas, le visage moyen est globalement masculin; c'est parce que nos échantillons contiennent plus d'hommes que femmes. Enfin, on remarque aussi que l'image est nette sur le visage et floue autour. C'est parce que sur le visage, les points sont alignés et laissent apparaitre un motif commun, contrairement par exemple à la zone des cheveux qui n'est pas détectée par dlib. Avec les points d'interets pris manuellement, on avait entouré entierement le sommet du crane et la forme de ce visage moyen est moins floue au sommet.
La masculinisation ou féminisation du visage se fait en créant la forme moyenne du visage des hommes ou
des
femmes, puis en morphant un visage vers cette forme. J'applique cette transformation à mon visage.
α est le parametre de distorsion, β est le parametre de fondu.
forme du visage moyen | visage moyen féminin |
---|---|
![]() |
![]() |
α = 0.5, β = 0.4 | α = 0.7, β = 0.5 |
---|---|
![]() |
![]() |
forme du visage moyen | visage moyen masculin |
---|---|
![]() |
![]() |
α = 0.3, β = 0.3 | α = 0.7, β = 0.5 |
---|---|
![]() |
![]() |
Les images ne sont pas parfaitement alignées, ce qui induit un gonflement du visage. Cependant, on se rapproche de la forme du visage moyen en faisant diminuer alpha. La variation de beta permet d'atténuer la pilosité faciale.
Photographie
algorithmique GIF
4105/7105, h29, Jean-françois Lalonde. Université Laval
Enoncé TP3 - Morphage de visages : partie
A
et partie B
Site web de dlib
Base de données d'images Utrecht
ours: https://pxhere.com/fr/photo/870240
ourson: https://commons.wikimedia.org/wiki/File:Ours_en_peluche_-_11.jpg