TP3 - Morphages de visages

Partie A

Description de la méthode

Le but du cette partie est de créer une série d'images montrant une transition d'un visage à un autre en développant un algorithme partiellement automatisé. Cet algorithme est ensuite appliqué sur d'autres images (par exemple des objets).

Tout d'abord, un total de 43 points sont déterminés manuellement sur les 2 visages, ainsi que 2 points sur chaque épaule. Aussi, 16 points sont placés sur le contour de la photo. Ces points sont appelés "points de correspondance", permettant ainsi de déterminer les similitudes entre les photos (yeux, bouche, ...). Ensuite, il est désiré d'obtenir les points de correspondance de l'image moyenne, qui correspond à l'image à mi-chemin de la transformation. Cette image est essentielle, car la transformation se base sur les points de cette image moyenne. Ces points moyens sont tout simplement déterminés en calculant la moyenne de chaque point des 2 photos. Avec ces points moyens, une triangulation est utilisée et c'est cette triangulation qui sert de base pour la transformation.

Maintenant que les triangles de l'image moyenne sont déterminés, la prochaine étape est de déterminer la progression de ces triangles pour passer d'un visage à l'autre. Pour ce qui est des points de correspondance, leur transformation est entièrement linéaire. En d'autres mots, s'il est désiré de former l'image au quart de la transition, le point de l'image en transition est la moyenne pondérée à 25% des points des images (pondération de 0.75 pour le point de l'image initiale et 0.25 pour le point de l'image finale). Pareillement, s'il est désiré de former l'image au trois quarts de la transition, le point de l'image en transition est la moyenne pondérée à 75% des points des images (pondération de 0.25 pour le point de l'image 1 et 0.75 pour le point de l'image 2).

La prochaine étape est de déterminer la couleur de chaque pixel des images en transformation obtenues. Pour ce qui est des pixels à l'intérieur d'un triangle, leur transformation n'est pas nécessairement linéraire, car ils subissent une transformation dite affine. D'un côté plus analytique, ces pixels respectent les contraintes associées à leur triangle respectif, et puisqu'un triangle est composé de 3 points linéairement indépendants, il y a 6 contraintes de transformation à respecter. Ces 6 contraintes sont dûes aux transformations linéraires (échelle, rotation, étirement et réflexion) et à la translation. Avec la matrice de transformation affine déterminée pour chaque triangle, il est possible d'associer chaque pixel de l'image en transformation partielle à une position des images initiale et finale. Il est important de mentionner qu'il n'est pas nécessairement possible d'assigner un pixel de l'image en transformation à un pixel en particulier de l'image initiale/finale. En effet, le résultat obtenu de la transformation est une coordonnée qui se situe souvent entre des coordonnées de pixels. Pour contourner ce problème, une interpolation 2D est effectuée pour déterminer la couleur (avec la fonction interpolate.RectBivariateSpline de scipy). Donc, pour déterminer la couleur d'un pixel d'une image en transformation, il suffit de faire une moyenne pondérée de l'interpolation 2D de la coordonnée correspondante de l'image initiale et de l'interpolation 2D de la coordonnée correspondante de l'image finale. La pondération de la moyenne s'effectue de la même façon que pour la transformation des points de concordance. Par exemple, pour l'image à transition à 25%, la pondération est de 0.75 pour la couleur obtenue de l'interpolation de l'image initiale et de 0.25 pour la couleur obtenue de l'interpolation l'image finale.

Cet algorithme semi-automatisé peut ensuite être utilisé pour d'autres images, par exemple une tasse, tant que les points de similitude sont bien choisis. Pour cette analyse, 100 images sont réalisées pour chaque transformation.


Résultats

Triangulation
Les triangulations affichées sont toujours pour les points moyens. Lorsque 2 types de points sont affichés sur une image, les points rouges et bleux correpondent respectivement aux points de l'image (initiale ou finale) et aux points de l'image moyenne.

Visage moyen:     Visage initial:     Visage final:



Verre moyen:     Verre initial:     Verre final:



Rouge moyen:     Rouge initiale:     Rouge final:



Cuillière moyenne:     Cuillère initiale:     Cuillère finale:



Tasse moyenne:     Tasse initiale:     Tasse finale:



Oiseau moyen:     Oiseau initial:     Oiseau final:



Morphages

       

       


Analyse des résultats

En anlaysant les points de correspondance des triangulations, il est possible de remarquer que les points moyens correspondent bien à la moyenne des points de 2 images (les points en bleu sont ceux de l'image moyenne). Aussi, il est observé que les transformations sont généralement résussies. Pour la transformation du visage d'Éliane au visage de Mathieu, il est remarqué que la transformation des cheveux n'est pas très bien résussie étant donné que leur forme est très différente et qu'elle n'est pas tenue en compte dans les points de concordance. Aussi, il est observé que le morphage du décor arrière n'est pas optimal. Il est remarqué que la barre noire en arrière d'Éliane se transforme pendant la transition, alors qu'idéalement elle devrait disparaître progressivement sans se déformer. Puisque cette caractéristique de l'image n'est pas considérée dans les points de correspondace, il est normal que cela se produise. Pour la transformation du verre de vin en verre de bière, l'étiquette de Stella Artois ne fait qu'apparaître progressivement sur la vidéo, sans vraiment subir de transformation. Cela est normal, car il n'y a pas de points de correspondance sur l'image initiale (il n'y a pas d'étiquette sur le verre de vin). Pour les 4 autres morphages, il n'y a pas de commentaires spécifiques à mentionner, à part que la transformation est réussie. Il serait possible de améliorer les morphages en augmentant le nombre d'images créées, en augmentant le nombre de points de correspondance et en sélectionnant des points de correspondance plus précis (il y a une erreur liée à la sélection manuelle de ces points).



Partie B

Description de la méthode

Dans cette partie, il est désiré de déterminer des visages moyens à l'aide de plusieurs photos de visages. Il est désiré de former un visage moyen avec 29 photos de visages de 29 personnes de la classe, et un autre visage moyen de la librairie utrecht (131 images de visages de 69 personnes). Il est noté que 2 étudiants ne sont pas utilisés pour déterminer la forme et le visage moyen, car leurs points choisis manuellement ne sont pas disponibles. Tout d'abord, des points de correspondance des photos sont déterminés avec un détecteur de visage et de caractéristiques du visage (dlib). Pour les photos des étudiants, les points choisis manuellement dans la partie A sont aussi utilisés afin de comparer les résultats obtenus de ces 2 méthodes de sélection de points. Il est important de noter que ce détecteur de caractéristiques de visage ne sélectionne pas les mêmes caractéristiques que dans la partie A. Aussi, les 4 coins de l'image sont ajoutés comme étant des points de correspondance. Pour déterminer les points moyens, il suffit de faire la moyenne des différentes images pour chaque point de correspondance. La forme moyenne est ainsi obtenue. Pour obtenir le visage moyen, il suffit de morpher les photos vers les points moyens avec la méthode présentée dans la partie A, puis de calculer la couleur moyenne des images morphées obtenues. Il est aussi désiré de créer une image moyenne des visages masculins et une image moyenne des visages féminins de la librairie utretch. Avec ces images moyennes, il est désiré d'obtenir un image mélangée avec mon visage pour créer une masculinisation/féminisation. Différents paramètres de distorsion et de niveau de fondu sont essayés pour obtenir la meilleure transformation. Ensuite, un morphage de mon visage vers l'image mélangée masculine et un morphage de mon visage vers l'image mélangée féminine sont réalisés. Pour effectuer cette transition, un ajustement des coordonnées des points et un redimensionnement de l'image moyenne féminine/masculine sont effectués. Plus exactement, l'image est redimensionnée en 720x720, comme l'image prise classe. Ses coordonnées sont ajustées pour que leur centre de la photo non redimensionnée soit au centre de la photo redimensionnée.

Pour les crédits supplémentaires, une image moyenne des visages sans sourire et une image moyenne des visages avec sourire de la librairie utretch sont réalisées et des morphages animés de mon visage vers sa masculinisation/féminisation sont réalisés (80 images par morphage animé).


Résultats

Visage de la classe (détecteur de caractéristiques manuel)
   

Visage de la classe (détecteur de caractéristiques automatisé)
   

Visage utrecht
   

Visage masculin (utrecht)
   

Visage féminin (utrecht)
   

Visage sans sourire (utrecht) - Crédits supplémentaires
   

Visage avec sourire (utrecht) - Crédits supplémentaires
   

Masculinisation
Les paramètres affichés correpondent respectivement à la distorsion et au niveau de fondu.

(0.4, 0.3) :     (0.4, 0.4) :     (0.4, 0.5) :     (0.4, 0.6):    

(0.5, 0.3) :     (0.5, 0.4) :     (0.5, 0.5) :     (0.5, 0.6):    

(0.6, 0.3) :     (0.6, 0.4) :     (0.6, 0.5) :     (0.6, 0.6):    

(0.7, 0.3) :     (0.7, 0.4) :     (0.7, 0.5) :     (0.7, 0.6):    


Crédits supplémentaires :


Féminisation
Les paramètres affichés correpondent respectivement à la distorsion et au niveau de fondu.

(0.4, 0.3) :     (0.4, 0.4) :     (0.4, 0.5) :     (0.4, 0.6):    

(0.5, 0.3) :     (0.5, 0.4) :     (0.5, 0.5) :     (0.5, 0.6):    

(0.6, 0.3) :     (0.6, 0.4) :     (0.6, 0.5) :     (0.6, 0.6):    

(0.7, 0.3) :     (0.7, 0.4) :     (0.7, 0.5) :     (0.7, 0.6):    


Crédits supplémentaires :

Analyse des résultats

Il est remarqué que tous les visages moyens sont très symétriques. Il est normal que les 2 visages moyens de la classe d'étudiants ne soient pas identiques, car les points de correspondance ne tiennent pas en compte les mêmes caractéristiques d'un visage. Les différences majeures sont que les points choisis manuellement tiennent en compte la forme du visage au-dessus du front, tiennent en compte la délimitation des cheveux au-dessus des oreilles et que beaucoup moins de points sont sélectionnés. Ces différences sont observées dans les résultats obtenus, car les cheveux sont moins bien définis et plusieurs caractéristiques (yeux, bouche, nez) sont mieux définis et moins flous dans le visage moyen des points sélectionnés avec le détecteur.

Le visage moyen de la librairie utrecht semble mieux résussi que celui des étudiants, car on distingue moins de détails non pertinents (par exemple un capuchon ou des lunettes). Il est censé que ce soit le cas, car utrecht contient plus de photos et elles sont plus uniformes (par exemple peronne ne porte de lunettes).

Puisqu'il y a plus d'hommes que de femmes dans la librairie utrecht, il est censé que l'image moyen masculin soit plus similaire que l'image moyen féminin à l'image moyen tout sexe confondu. Aussi, des caractéristiques plutôt associées aux femmes qu'aux hommes se distinguent des 2 visages moyens obtenus. Par exemple, dans l'image féminine, il y a moins de moustache/barbe, des sourcils plus fins et une chevelure plus importante.

En comparant les images moyennes avec et sans sourire, il est remarqué que les pommettes sont plus prononcées, les lèvres sont plus en forme de demie-lune et certains muscles du bas du visage semblent plus solicités dans la photo avec sourire. Toutefois, les caractéristiques générales du visage sont très similaires, ce qui est censé, car ce sont les mêmes personnes qui sont utilisées pour former ces images.

Pour les images mélangées masculine/féminine, les paramètre de distorsion et de niveau de fondu essayés sont respectivement {0.3, 0.35, ..., 0.7} et {0.3, 0.35, ..., 0.7}. Seuls quelques résultats sont affichés dans ce rapport. Pour l'image mélangée masculine, un paramètre de distorsion de 0.4 et un niveau de fondu de 0.6 semblent les plus adéquats. Pour ce mélange, le paramètre de distorsion est choisi pour que la mâchoire soit un peu plus carrée, tout en voulant garder des caractéristiques de mon visage pour que la ressemblance soit toujours là. Le niveau de fondu est relativement élevé, car il est désiré d'afficher une barbe/moustache. Par contre, en ayant un niveau de fondu élevé, des caractéristiques importantes (par exemple tâches de rousseur) sont perdues. Pour l'image mélangée féminine, un paramètre de distorsion de 0.7 et un niveau de fondu de 0.4 semblent les plus adéquats. Un paramètre de distorsion relativement élevé permet de caractériser la forme du visage moyen féminin à mon visage. Un niveau de fondu relativement faible permet de conserver plusieurs de mes caractéristiques faciales (pommettes, joues, ...).

Pour les morphages de mon visage vers sa masculinisation/féminisation, il est remarqué qu'il y a "zoom" de mon visage. Cela est expliqué par le redimensionnement des images féminine/masculine. Aussi, puisque le contour du visage au niveu du front n'est pris en compte dans les points de correspondance, le morphage du haut du visage est affreux, car il y a plus ou moins de transformation pour cette partie du visage.