TP3: Morphage de visages
Par: Gabriel Boivin

Partie A:

Dans cette première partie du travail, il fallait effectuer le morphage entre deux images. Afin d'expliquer le processus, le morphage de mon visage en celui de l'étudiant suivant dans la liste seras pris en exemple. La première étape du morphage est de placer des points de références sur les deux visages. Il est très important qu'il y est le même nombre de points et que ceux-ci corresponde entre eux dans le bon ordre. Par exemple, le 27ième point doit se trouver sur le bout du nez sur les deux visages. Ensuite des points sont rajouté sur le cadre de l'image afin que toute l'image puisse être morphée. Puis, la moyenne du positionnement des points est faite pour trouver la forme moyenne des deux visages et une triangulation de delaunay est appliqué sur cette forme. Ensuite on passe au morphing en tant que tel: on commence par trouver la forme du visage à l'aide du warp_fraq qui fait varier la forme du visage du miens à celui de l'étudiant suivant. Après, la transformation affine de chacun des triangles qui permettent de changer la forme de mon visage à celui morphé et le visage de l'étudiant au même visage morphé. Cela nous permet ensuite de trouver, grâce au tranformation inverse, à quel pixel du visage source et du visage de destination un pixel du visage morphé correspond selon dans quel triangle il se trouve. Finalement, à l'aide d'une spline et d'une moyenne pondérée entre les deux visages (le dissolve_fraq), on peut ainsi trouver la valeur que le pixel doit avoir, et ce, dans les trois canaux RGB. Cela nous permet, triangle par triangle, de construire l'image morphée. En faisant ensuite le même precessus mais pour des valeurs de warp_fraq et de dissolve_fraq qui augmente en partant de 0 pour se terminer à 1, on se retrouve avec les "frames" qui nous permettent de construire une vidéo de mon visage qui se morphe en celui qui me suis dans la liste:

On remarque tout d'abord que l'effet de morphing est bien réussi. En effet, la transition est plutôt lisse, celle de ma barbe qui rétrécit pour avoir la même longueur que celle de mon successeur est assez réussit. Par contre, il semble avoir un problème au niveau des yeux. En effet, les yeux semblent se superposser sans qu'ils aient la même forme, cela est probablement dû à un manque de point autour des yeux ce qui limite la précision des transformation pour une superposition parfaite.


A.1 Morphage entre différent objet ou animaux

Pour cette partie, il s'agit de morpher différent objet ou animaux et de les présenter sous forme d'animation. Le principe est le même qu'expliqué plus haut:

source = es.best-wallpaper.net et WUWM source = source =

On peux remarquer que dans ces trois cas, les morphings fonctionnent très bien. Celui le mieux réussit est sans doute celui du loup et du renard. En effet, la transition est lisse et il est difficile de voir la limite entre les deux animaux lors du morphing. Cela est probablement dû au fait que les deux images se ressemblent de base et qu'un très grand nombre de points a été utilisé (80 points en tout!). Pour l'avion et l'oiseau, l'effet est réussi, surtout au niveau de la queue et du corps, mais il semblent avoir des discontinuités au niveau des ailes, surtout au milieu de la transistion même si en général, la forme des ailes sont bien. Pour la fusée et la tour Eiffel, l'effet est réussi quoique le trou dans la tour apporte une certaine discontinuité.


A.2 Morphage avec des photos personnelles

pour cette partie, il s'agit encore de présenter des morphages sous forme d'animation. Le principe est toujours le même:

Le cube et la boule est bien réussi, la déformation du cube semble naturelle. Pour le dé à 10 faces qui se transforme en dé à 20 faces, l'effet est beaucoup moins réussi. En effet, il a été difficile de trouver une correspondance entre les deux dés afin d'y placer les points de manière à ce que le morphing se fasse de manière la plus lisse possible. Cela a eu pour effet de créer des discontinuités.


A.3 Bonus: morph d'images filtrées

Pour ces points boni, un morphing entre deux images a été effectué, un peu comme précédemment à la différence que les deux images ont été filtrées avant d'être morphée, une par un filtre passe haut et l'autre avec un filtre passe bas. Cela fais en sorte que lors de la formation de l'image finale, il n'y a pas de dissolve_fraq, la valeur entière des points sont utilisée dans les deux images. Cela donne donc les résultats suivant avec un warp_fraq de 0.5 pour la 1ère et la dernière image et 0 pour l'image du milieu:

On remarque immédiatement qu'avec le morphing, les images hybrides sont beaucoup plus réussit que celle effectuées lors du TP2. En effet, le morphing permet aux deux images d'avoir la même forme, et ainsi se fondre l'une dans l'autre sans problème comme on remarque sur ces trois images hybrides.


A.4 Bonus: morphage en coordonnées polaires

Pour cette partie bonus, il suffisait de passer des coordonnées cartésiennes aux coordonnées polaires. Ce passage se fait au juste au moment d'appliquer les transformations puis, les coordonnées revienne en cartésiennes pour aller chercher les valeurs des pixels dans les splines. Cette technique a été utilisée pour le morphage suivant, qui se trouve à être le morphage entre mon visage et le visage de l'étudiant suivant:

On remarque immédiatemment que le morphing a échoué. En effet, il semble avoir un problème avec le positionnement des triangles à l'intérieur de l'image: des trinagles s'échange de place. Cela fais en sorte que l'image de démoli pendant le morphage, il est impossible de voir la transition clairement. Par contre, on peut voir l'image "tourner" comme un disque par rapport au coin haut-gauche de l'image. Ceci est probablement dût à des erreurs par rapport à l'angle phi qui fonctionnement mal. Il doit surement manquer un facteur qui permet à l'angle phi de ne pas exploser. Malheureusement je n'ai pu le trouver.



Partie B:

Dans cette partie, il faut faire la moyenne des visages des membres de la classe et de la base de donnée d'utrecht. Afin d'y arriver, on commence par prendre les points de forme des visages et ensuite on fait la moyenne de ces points afin de n'avoir qu'une seule forme de visage qui représente la moyenne de toute les formes des visages. Ensuite, on effectue une transformation sur toute les images de visage pour que tout les visages ait la forme moyenne. Finalement, on effectue la moyenne de la valeur de chaque pixel, et ce, sur les trois canaux pour qu'on se retrouve avec le visage moyen.

B.1 Moyenne des visages de la classe

Il s'agit de la forme des visages ainsi que la moyenne des visages en tant que tel de la classe avec les points qui ont été placés par les étudiants:


Il s'agit de la même chose que plus haut mais cette fois-ci les points on été placé par la librairie dlib:

On remarque que le moyennage des visages a plutôt bien marché dans les deux cas. On remarque aussi que vue que la classe est composée à grande mojorité d'hommes, la moyenne donne un visage plutôt masculin. Finalement, on remarque que la moyenne effectuée avec les points de la librairie dlib donne un résultat plus précis sur le visage en tant que tel, soit les yeux, le nez et la bouche alors que la moyenne effectuée avec les points placé par les étudiants a une précision plus générale sur l'ensemble de la tête. Cela est surement dû au fait que la librairie dlib place beaucoup de points mais seulement au tour des yeux, du nez, des sourcils, de la bouche et du menton alors que les points placé manuellement étant sur toute la tête mais que très peux sur les yeux et la bouche par exemple. Cela se voit très bien lorsque l'on regard les deux images des points de la formes de la moyenne des images.


B.2 Moyenne de la base de donnée d'utrecht

Encore une fois, il s'agit de la moyenne des visages de la base de donnée d'utrecht ainsi que la forme de la moyenne des visages:

On remarque que le moyennage a, encore une fois, plutôt bien marché. On remarque aussi que comme soulevé plus haut, la moyenne est beaucoup plus précise sur le visage en tant que tel que sur le reste de la tête vu l'utilisation de la librairie dlib pour les points. On ppeux remarquer aussi la grande symétrie du visage moyen, ce qui était peu le cas des sujet de la base données.


B.3 Masculinisation et féminisation de mon visage

Pour cette partie, j'ai commencé par faire la moyenne des visages des hommes et des femmes séparément. Ensuite, je fais un morphing comme précédement à la partie A entre mon visage (dont le forme de l'image et l'emplacement des points ont été ajusté pour correspondre au visage moyen: de 720x720 on est passé à 900x1200) et le visage moyen. D'abord voici la moyenne des femmes à gauche et la moyenne des hommes à droite. J'ai placé mon visage normal entre les deux à titre de comparaison:

On peux voir qu'effectivment, le visage moyen des femmes est bel et bien féminin et celui des hommes masculin. Ensuite, mon visage est morphé avec celui de la moyenne des femmes avec un warp_fraq de 1 et un dissolve_fraq de 0 à gauche et d'un warp_fraq=0.75 et dissolve_fraq=0.5 à droite:

La première chose que l'on remarque est que ma barbe cause problème puisqu'elle est difficile à enlever et que les femmes, généralement, ne porte pas de barbe. Par contre on peux toujours voir que la transformation a marché. En effet, mon visage a pris des traits qui sont plus souvent associé au femme: pommettes plus accentuées, visage en entier moins large et nez plus petit. La transformation a eu aussi pour effet de rendre mon visage symétrique, ce qui rend ma barbe de travers.


On refais ensuite la même chose mais cette fois-ci avec la moyenne des hommes. warp_fraq de 1 et un dissolve_fraq de 0 à gauche et d'un warp_fraq=0.75 et dissolve_fraq=0.5 à droite mon visage a encore été placé entre les deux afin de mieux voir la différence:

Pour la masculinisation de mon visage, l'effet est plus subtil du fait que je suis moi même un homme. Par contre on peux remarquer que mes joues semblent avoir été élargie, que mes yeux sont plus haut et que mon menton semble plus carré que sur la féminisation. Malheureusement on ne peut comparer avec mon visage directement car ma barbe cache mon menton. On remarque aussi que mon visage a été, une fois de plus, ajusté pour être symétrique.



B.4 Bonus avec et sans sourire:

Pour ces points boni, j'ai fait deux moyennages à partir de la base de données d'utrecht: un ou les sujet ne souriaient pas et un autre au les sujets souriaient. La moyenne des visages neutre se trouve à gauche et celle des visages souriant se trouve à droite. Entre les deux se trouve la moyenne totale à des fins de comparaison:

En regardant ces images, on remarque que le moyennage a fonctionné: la moyenne souriante affiche un sourire et la moyenne neutre affiche n'affiche pas de sourire. La moyenne générale se trouve à peut près entre les deux. De plus, on remarque que le sourire n'affecte pas uniquement la bouche. En effet, on peux voir en faisant la différence entre le visage souriant et celui neutre que le sourire a pour effet de faire ressortir les pommettes, de creuser des sillons autour de la bouche et de rendre les yeux plus joyeux. Toutes des caractéristiques que l'on ne retrouve pas sur le visage neutre. Encore une fois, la moyenne générale se retrouve à mis chemin entre les deux.



Conclusion:

En conclusion, le morphing a été un franc succès dans la grande mojoritée des cas. Malheureusement, le morphing en coordonnées polaires n'a pas fonctionnée le problème de morphing faisait en sorte que l'image se disloquait durant la transition. C'est la seul partie du travail qui ne réponds pas aux exigeances car j'ai manqué de temps pour régler le problème.