Partie A

Dans ce TP, je produit une animation qui affiche mon visage, et le métamorphose vers le visage d'un autre étudiant du cours, soit Luca Blanchout, sous la forme d'une séquence vidéo. Des animations avec d'autres photos sont aussi produite.

Procédure:

L'animation de morphage s'exécute en plusieurs étapes. Tout d'abord, il faut prendre un certain nombre de points important dans chacune des images. Par exemple, le contour du viasge, les yeux, la bouche, etc. Ensuite, on doit calculer la forme moyenne des deux images pour chaque image dans le gif, soit 20 images seconde pendant 5 secondes. Comme on passe d'un visage à l'autre, il faut avoir multiplier les points d'une image par un certain alpha et les points de l'autre image avec 1-alpha. Par la suite, on procède à la triangulation des points intermédiaire trouvé préalablement. Celle-ci sera utile pour le calcul de l'apparence de l'image. Afin de trouver les points intermédiaires avec les points de l'image de départ (ou finale), on doit calculer la transformé inverse de chaque triangle de la triangulation avec la dites image de base. On fait donc une liste par image avec ces tranformés qu'on utilisera plus tard. Subséquemment, on fait une fonction utilisant les triangulations qui trouve, à chaque pixel, le triangle de la triangulation auxquel il appartient. Avec cette information, on peut donc trouver le point intermédiaire avec la transformé inverse correspondante. On procède ainsi pour tout les pixel des deux images avec un certain alpha afin d'obtenir une suite d'image faisant le morphage. On peut finalement prendre toutes ces images et former un GIF pour faire l'animation.

Résultats

Le morphage entre Luca et moi est très bien réussi comme il y a peut d'éléments qui doivent disparaître ou apparaître de la première image à la dernière et vice versa. Par exemple, mes cheveux qui, étant trop loin de ceux de Luca, disparaissent, ou le capuchon de Luca qui apparaît graduellement. Malgré tout, les deux images se morphent très bien de l'une à l'autre.

Je suis vraiment content de ce résultat. Après réflexion, j'aurais dû enlever le crayon de ma tablette, mais à part ça, c'est très bien réussi.

Le morphage se fait très bien malgré l'appartition de la ville, merci aux nombreux points commun des voitures.

J'ai eu un peu de difficulté à trouver les points importants similaire des deux images et on le voit dans le résultat final. Il y a beaucoup de problème avec les déplacements des pixels, mais c'est en général pas si mal.

C'est le GIF ou je suis le plus déçu. Je pense que l'orientation des visages et la différence de vêtement, surtout au niveau du cou a affecté le résultat final. L'orientation fait que le visage se déforme de manière vraiment étrange en plus du collet qui cache une partie du cou dans la deuxième image.

Ce GIF est particulièrement bien réussi comme les images sont très similaires. Il y a seulement la feuille supérieur qui disparaît comme elle n'en possède qu'une.

Conclusion du morphage

Après tous ces essais, j'ai remarqué que la prise des points était vraiment crucial à un bon résultat de morphage. De plus, la similitude des formes générals joue aussi un rôle très important.

Partie B

Dans la partie A de ce travail, j'ai implanté un algorithme de morphage. Dans cette partie du travail, j'utiliserai mon algorithme de morphage afin de calculer le visage moyen d'un ensemble de visages.

Calcul du "visage moyen"

Triangulation très similaire à ce qu'on obtient dans la partie A tu TP.

Relativement belle définition du visage et de sont contour, quelques artefacts dans le viasge (lunettes, barbe, etc.) et beaucoup d'artefacts autour

La triangulation avec les points d'utrecht est vraiment plus focusé sur la forme du visage et moins l'aspect general.

Image finale très similaire, mais un peu plus "clean" qu'avec les points des élèves.

La triangulation avec les points d'utrecht est, encore une fois, vraiment plus focusé sur la forme du visage et moins l'aspect general. La dimension de l'image ne sera pas la même non plus, 900x1200 au lieu du 720x720 des autres images.

L'image généré est plus grande et très précise sur les traits du visage, mais surprenamment saturé. C'est probablement un problème avec le RGB lors de l'addition des couleurs