TP3: Morphage de visages

Partie A

Séquence vidéo du morphage de visage

La technique utilisée pour faire le morphage consiste à tout d'abord trouver la forme moyenne entre les deux images. Pour ce faire, on calcul la triangulation sur les points moyens qui sont calculés ainsi: points_moyens = (points_image_1 * 0.5) + (points_image_2 * 0.5). Une fois que nous avons la forme moyenne, on peut faire le morphage. Tout d'abord, on calcule les points "destination" avec le calcul suivant: (1-warp_frac)*img1_pts + (warp_frac)*img2_pts. Avec ces points, on peut ensuite calculer les matrices de transformations des deux images pour chaque triangle. Une fois qu'on a ces matrices, il est nécessaire de modifier les deux images. Pour ce faire, une association entre chaque pixel et les triangles est effectuée. À l'aide de cette association, on peut itérer sur chaque triangle, appliquer la matrice de transformation sur les pixels de ce triangle, interpoler les points résultants et associer le résultat aux bons pixels de l'image résultante. De ce fait, après avoir itéré sur tous les triangles, on a l'image morphée désirée. On fait la même chose pour la deuxième image et ensuite on obtient l'image finale en calculant l'image moyenne, soit en faisant le calcul suivant: result_img = (1-dissolve_frac)*result_img1 + (dissolve_frac)*result_img2. Les valeurs de warp_frac sont obtenues en faisant un linspace de 0 à 1 avec le nombre de frames désirés. Les valeurs de dissolve_frac sont obtenues de façon similaire, mais dans lequel un "padding" de 0 est ajouté au début et à la fin dans le but d'avoir une meilleure transition dans le résultat. Voici le résultat sous forme de GIF, mais celui-ci est aussi accessible dans les documents de remise sous forme mp4. Le résultat obtenu est excellent, car on voit bien l'image moyenne apparaitre et la transition est fluide entre les deux images.

Images autres

Dans le but d'expérimenter un peu l'algorithme de morphage, différents types de morph ont été faits. Les résultats obtenus sont biens, on y voit bien le morphage de la première vers la deuxième image. On peut également remarquer le retour de tylion!


Sources: Lion Tyrion Tesla Cavalier Pomme Orange

Images personnelles

L'algorithme a aussi été fait avec des images personnelles. Le pire résultat obtenu est sans aucuns doutes avec ces images, soit celui avec les manettes de jeux. En effet, puisque la manette de xbox est grandement différente que la manette de switch, on voit bien quelques "glitchs" dans le morphage. Le résultat reste quand même bien, mais moins parfait que les autres.


Crédits supplémentaires

J'ai fait une image hybride en morphant les basses fréquences de mon image avec les hautes fréquences de l'image d'Antoine. Voici le résultat, ainsi que l'image intermédiaire (image hybride). On peut voir que l'image est bien, car de loin on voit davantage mon visage et de proche, c'est celui d'Antoine qui est présent.


Partie B

Calcul du visage moyen

Tout d'abord, il est demandé de calculer la forme moyenne pour les points pris a la main et ceux pris avec dlib pour les visages des gens de la classe et avec les points pris avec dlib sur la banque d'image d'Utrecth. Pour ce faire, il est seulement nécessaire de calculer la triangulation des points moyens. Les points moyens sont calculés de la même façon qu'au TP3a (expliqué plus haut). Voici les 3 formes obtenues (Gauche: sélection manuelle images de la classe, Centre: sélection dlib images de la classe, Droite: sélection dlib banque d'images Utrecth):


On peut voir que les résultats montrent bien la moyenne des points sélectionnés. De plus, il est intéressant de voir que le détecteur dlib met surtout l'emphase sur les traits de visage et ignore un peu le contour de la tête. De ce fait, les points pour les traits du visage sont grandement plus précis avec dlib qu'avec la sélection manuelle.


Par la suite, il est demandé de calculer le visage moyen à partir de cette forme moyenne. Pour ce faire, le même algorithme qu'au TP3a est utilisé (expliqué plus haut). La différence entre les deux algorithmes est qu'après avoir calculé chaque visage moyen, on fait la moyenne de tous les visages ensembles au lieu de le faire seulement sur deux. Voici les trois visages moyens obtenus (Gauche: visage moyen classe avec sélection manuelle, Centre: visage moyen classe avec sélection dlib, Droite: visage moyen Utrecth avec sélection dlib):


Les résultats montrent bien ce qui a été discuté plus tôt, soit qu'avec les sélections manuelles, on obtient un visage moyen dans lequel on voit mieux la forme de la tête et les cheveux. Toutefois, ce visage est de moins bonne qualité sur les traits de visage. En effet, les yeux, la bouche et le nez sont plus "flous" en raison des points. Le visage moyen d'Utrecth semble plus masculin que féminin, tout comme le visage moyen de la classe, car la majorité des visages sont des visages masculins dans les deux cas.

Masculinisation et féminisation

Le calcul des images moyens masculins et féminin ce fait encore une fois de la même manière, il suffit seulement de préalablement bien séparé les images féminines des images masculines. Voici les deux résultats obtenus(Gauche: visage masculin moyen Utrecth, Droite: visage moyen féminin Utrecth):


Tel que mentionné plus haut, on voit mieux maintenant que le visage moyen ressemblait davantage au visage moyen masculin. Cette fois-ci, on calculant le visage moyen féminin, on voit davantage les différences dans les traits de visage


Finalement, il était demandé de faire la masculinisation et la féminisation de notre visage. Pour ce faire, j'ai fait un morphage entre mon visage et les deux résultats précédent. Tout comme au TP3a, j'ai fait varier la distorsion et le niveau de fondu avec la fonction linspace. Voici quelques résultats obtenus:



Dans l'ordre, voici les différentes valeurs utilisées:

warp_frac dissolve_frac
0.5 0.5
0.57 0.57
0.643 0.643
0.714 0.714
0.786 0.786

Les résultats obtenus sont bien et quelque peu troublants, mais on voit bien les changements dans mes traits de visage, surtout au niveau de la féminisation (2e ligne). En effet, les modifications sont plus importantes avec les images de femmes que d'hommes, ce qui est quand même normal.