TP3: Morphage de visages

Introduction

Ce TP consiste à effectuer le morphage d'un visage vers celui d'un autre étudiant avec une transition la plus fluide possible et à calculer le visage moyen des étudiants de la classe. Pour ce faire, on se base sur une série de points de correspondance identifiés au préalable sur les photos, à partir desquels une triangulation de Delaunay est calculée. La valeur des pixels dans l'image intermédiaire est calculée grâce à des transformations affines inverses locales à chaque triangle qui permettent d'aller chercher la valeur correspondante dans les images à combiner.

Triangulation

La triangulation est calculée sur les points de l'image intermédiaire et appliquée aux deux images de départ pour diminuer la déformation des triangles. Le résultat de la triangulation de l'image moyenne est illustré ci-dessous:

Visage moyen

Le visage moyen est calculé à l'aide de la fonction servant à faire le morphage. Chaque visage est d'abord déformé selon les points d'appariement calculés pour le visage moyen. Les couleurs sont ensuite fondues selon une fraction égale pour chacun des visages :

Le visage moyen est plutôt d'apparence masculine, ce qui est normal étant donné qu'il est composé de plus de visages masculins que féminins. L'algorithme de déformation utilisant la transformée inverse fonctionne aussi pour les visages qui sont cadrés de façon différente ou placés dans un angle différent par rapport aux autres. La valeur utilisée pour l'image déformé est la valeur du pixel le plus proche. Des essais avec l'interpolation linéaire 2D ont été faits, mais cela augmente considérablement le temps de calcul (environ 10 minutes par image vs 11 secondes sans) et donne un résultat comparable.

Animation de morphage de visages

Le morphage des visages a été effectué avec la même méthode en décalant d'un image le fondu des couleurs. On peut cependant observer du ghosting dans les images à partir de 30% de morphage. Ceci pourrait probablement être amélioré en utilisant un fondu non-linéaire qui augmente plus lentement au début pour accélérer le morphage vers la fin.

Voici le vidéo de morphage produit avec l'algorithme: