Morphage de visages

Création et assemblage d'images avec algorithme de morphage

Algorithme de morphage

Lors de ce travail, il sera question d'implémenter un algorithme de morphage de visage afin de pouvoir notamment créer des séquences vidéos de morphage entre deux visages ainsi que la création d'image d'humains "moyens".

Morphage de mon visage vers une moyenne de visage féminins

Description du projet

Le but du projet est de créer des images assemblées à partir de deux images différentes

Afin d'y parvenir, il sera nécessaire de générer des points de référence, calculer des triangulations et effectuer des transformations affines sur ces triangles.

Code

Le code est disponible dans l'archive dans le dossier code(Algorithme de détection de visage,Morphage de visage, Moyenne des visages,Utilitaires)


Partie A

Dans le cadre de la partie, il était demandé de générer des séquences vidéos de morphage entre deux images. Pour réaliser le tout, il est tout d'abord nécessaire de créer des points de référence dans les deux images à assembler. Une fois les points de contrôles en main, il est maintenant important de créer des triangulations sur la moyenne des points de contrôles des deux images.

Maintenant que les triangulations sont calculées, il est nécessaire d'effectuer une transformation affine sur chacun des triangles trouvés. Les paramètres Warp Frac et Dissolve Frac permettent ensuite de contrôler le niveau de fondue et le niveau de transformation de chaque image.

Grâce à ces différentes étapes, il est ensuite possible de générer une séquence vidéo du morphage en créant une série de morphage entre les deux visages en modifiant peu à peu les paramètres Warp Frac et Dissolve Frac afin d'obtenir des images ressemblant de plus en plus à l'image de destination.

Résultats des séquences vidéos

Les séquences vidéos sont disponible dans le dossier video

Partie B

Tout d'abord, dans cette partie, il est demandé de calculer le visage moyen à partir des images des étudiants de la classe, puis, à partir des images d'une banque d'images.

Afin de réaliser cette tâche, on utilise tout d'abord le detecteur de visage fourni afin de trouver les différents points de référence pour chaque image. Ensuite, on calcule une moyenne pour chacun de ces points de référence afin d'obtenir une matrice de points moyens de référence pour le visage. Après cela, il suffit d'utiliser ce qui a été réalisé dans la partie A afin de morpher complétement chaque visage vers les points de références moyens, en s'assurant d'avoir bien entendu le paramètre Warp Frac à 1 pour déformer complètement le visage vers le point de référencem moyen.

Finalement, il faut additionner toutes les images morphées puis divisée l'image résultante par le nombre d'images calculées. Ainsi, on obtient le visage moyen d'une banque d'image. Le même processus est répéter pour les visages moyens hommes et femmes en s'assurant de recalculer les images appropriées

La forme du visage moyen obtenue avec les points que mes camarades étudiants ont sélectionnés
Le visage moyen obtenu avec les points que mes camarades étudiants ont sélectionnés
La forme du visage moyen obtenue avec les points trouvés par le détecteur dlib
Le visage moyen avec les points trouvés par le détecteur dlib
La forme du visage moyen obtenue avec les points trouvés par le détecteur dlib
Le visage moyen obtenu avec les points trouvés par le détecteur dlib

Masculinisation et féminisation du visage

Visage masculin moyen
Mon visage morphé vers le visage masculin moyen
Visage féminin moyen
Mon visage morphé vers le visage féminin moyen

Les images ont été morphées avec un dissolve frac égal à zéro car les résultats étaient plus esthétique.