TP3: Morphage de visages et de scènes

GIF-7105 : Photographie algorithmique (Hiver 2015)

Il est naturel pour l'humain de trouver des ressemblances entre divers objets ou formes. Par exemple, le visage et le corps d'une personne changent au fil de la vie, mais il subsiste une ressemblance. Il peut être intéressant de chercher à projeter l'apparition de ces différences. Malheureusement, les techniques de base de mélange d'images fonctionnent assez mal lorsque les différentes images ne sont pas alignées, c'est-à-dire que les points d'intérêts ne peuvent être tous alignées avec une seule translation. Pour résoudre ces problèmes, de nombreuses techniques ont été proposées; dans le cadre de ce travail, nous utilisons une technique basée sur la triangulation des points d'intérêt, et analysons les résultats obtenus.

Les résultats sont d'abord présentés, suivis d'une explication des algorithmes utilisés et d'une analyse des forces et faiblesses des différentes approches.

1) Morphage de visages

Ce premier exemple consiste à passer d'un visage à un autre de façon fluide.

Image originale
Image finale

2) Morphage artistique (corps et visage)

En plus d'un morphage réaliste comme celui de l'exemple précédent, il est possible de faire une métamorphose entre deux objets plus complexes. Dans ce cas-ci, l'image cible est une section de la murale "L'homme devant la science", de Jordi Bonet, tiré de la façade du pavillon Adrien-Pouliot.

Image originale
Image finale (source)

3) Morphage de bâtiment (3 images)

Si le morphage tel que nous le présentons s'applique bien au cas d'un humain, il peut également donner des résultats intéressants pour montrer l'évolution de bâtiments. Dans ce cas-ci, nous avons utilisé trois photos du Colisée de Québec prises à diverses époques : 1949, 1975 et 2013.

Image originale (Source)
Image intermédiaire (Source)
Image finale (Source)

Animation (Lien vers la vidéo)

4) Morphage de scène

Lorsque deux photos urbaines prises à des époques différentes sont suffisamment bien alignées, il est aussi possible d'appliquer notre technique, bien que le résultat ne soit pas optimal. Ici, une vue de la Place Québec, dans le quartier Saint-Jean-Baptiste a été prise à 44 ans d'intervalle (1970 et 2014).

Image originale (Source)
Image finale (Source)

5) Morphage de scène (2)

Dans le même style que l'exemple précédent, l'évolution d'une vue de la rue St-Jean entre 1929 et 2014.

Image originale (source)
Image finale (source)

Choix de la fonction de dissolution et de morphage

Chaque image est générée en utilisant deux paramètres : la fraction de morphage (warp), exprimant la distance entre l'image source et intermédiaire, et la fraction de dissolution, exprimant la distance entre les couleurs de l'image source et intermédiaire. Ces deux constantes doivent être ajustées au fil de l'animation pour obtenir une suite logique dans les images.

Le premier choix possible est d'utiliser une fonction linéaire similaire pour ces deux constantes. Cela donne de bons résultats, mais entraîne quelques conséquences néfastes. Par exemple, dans les exemples donnés plus bas, l'utilisation de deux fonctions linéaires entraîne l'apparition précoce de caractéristiques telles que les lunettes, avant même que le visage n'ait été réellement modifié. Pour éviter ce genre de problème, il est possible de découpler ces deux fonctions. Dans l'exemple de droite, une fonction sigmoïde centrée à 0.5 a été utilisée pour calculer les constantes de dissolution. Comme on peut le constater, le changement de couleur se fait alors plus tard, bien que plus rapidement. Au final, l'appréciation du meilleur résultat reste subjectif.

Warp linéaire, dissolution linéaire (Lien vers le vidéo)
Warp linéaire, dissolution sigmoïde (Lien vers le vidéo)

Absence de certains points de correspondance dans une des images

Dans certains cas, un point de correspondance n'a tout simplement pas d'équivalent dans l'autre image. C'est le cas par exemple des vues urbaines, où de nouveaux immeubles sont apparus au fil du temps. Bien que cela puisse donner des résultats graphiquement intéressants (par exemple l'immeuble qui se "déplie" dans le cas de Place Québec), l'effet est la plupart du temps indésirable, puisque l'algorithme doit transformer une zone inexistante, et exige une désignation habile des points de correspondance.

Une solution potentielle serait de permettre à l'opérateur de désigner des zones où la constante de dissolution ne s'appliquerait pas (la couleur serait prise d'une seule image, source ou cible). Cela permettrait par exemple, dans le cas d'un gratte-ciel, de le voir "pousser" plutôt que d'apparaître rapidement en transparence en combinaison avec une déformation accrue de l'autre image

Image originale avec triangulation
Image cible avec triangulation
Illustration du problème : il faudrait faire "pousser" le gratte-ciel!

Visage moyen

Une autre application intéressante du morphage est le calcul du visage moyen. En effet, notre approche nous permet de déformer les visages afin que tous leurs points de correspondances soient superposées. Par la suite, un visage moyen peut être obtenue en prenant simplement la valeur moyenne de chacun des pixels. Le résultat est présenté à droite (notons que l'image n'inclut que les pixels contenus à l'intérieur des points de correspondance; le reste n'étant pas aligné, il n'est pas de beaucoup d'intérêt).

Comme on peut le constater, le visage moyen des 25 étudiants de la classe est un visage assez masculin, ce qui est logique vu la proportion homme/femme de la classe. On remarque la marque que laissent les lunettes des quelques personnes qui en portent, de même que la barbe, qui est un mélange entre les barbes bien fournies de certaines personnes et les visages glabres des autres.


Analyse en composantes principales

L'alignement des visages entraîne un autre bénéfice : nous pouvons utiliser des méthodes d'analyse et de réduction de dimensionnalité supposant cet alignement, ce qui n'est pas le cas en temps normal. Par exemple, nous pouvons produire une analyse en composantes principales (ACP, ou PCA) afin d'extraire les directions de déformation les plus fortes.

Pour ce faire, la moyenne des visages est d'abord retirée de tous les visages. Une décomposition en valeurs singulières est par la suite utilisée afin d'extraire les valeurs et vecteurs propres. La figure ci-contre présente les 16 premiers vecteurs propres. Il est à noter que, au vu de la taille d'échantillonage relativement faible (25 données au total), une analyse poussée des vecteurs au delà des quelques premiers n'est pas forcément utile, puisqu'il n'y a tout simplement pas assez de données pour diversifier suffisament les vecteurs propres. Il est probable que certains de ces vecteurs n'expliquent en tout et pour tout qu'une seule personne : on peut par exemple le remarquer en voyant les motifs spiralés présents dans les cheveux de certaines projections, motifs provenant du châle d'une unique étudiante.


Visage moyen original

Modification du visage moyen à partir des vecteurs propres

À partir des vecteurs propres obtenus à l'étape précédente, il est possible d'extrapoler leurs caractéristiques. Pour ce faire, une image est recomposée en mettant toutes les valeurs propres à zéro, sauf une qui est conservée à 1 (celle du vecteur dont on veut voir l'effet). L'image générée est par la suite additionnée au visage moyen précédemment calculé. Un facteur multiplicatif appliqué à l'image recomposée permet d'ajuster la quantité d'effet voulu. Les images plus bas présentent des exemples d'addition d'images générées à partir de différents vecteurs propres. On voit bien que certains vecteurs se concentrent plus sur les lunettes, d'autres sur la barbe, les cheveux, etc.

Malheureusement, tous les visages étant par définition alignés, il est difficile d'utiliser l'ACP calculée à partir des valeurs de pixel pour modifier un visage. Par contre, une approche alternative aurait pu être de calculer l'ACP non pas sur l'image, mais sur la position des points de correspondance (après en avoir retiré la moyenne afin d'assurer une origine commune). Cette fois, l'ACP aurait pu modéliser la transformation géométrique entre les visages (et non la transformation entre les couleurs des visages), ce qui aurait pu permettre d'obtenir des vecteurs propres plus à même de déformer un visage donné.

Base 1
Base 2
Base 4
Base 8