Intelligence artificielle
Répondre aux ‘mauvais jours de cheveux’ dans la synthèse d’images humaines

Depuis l’âge d’or de la statuaire romaine, la représentation des cheveux humains a été un défi épineux. La tête humaine moyenne contient 100 000 cheveux, a des indices de réfraction variables selon sa couleur et, au-delà d’une certaine longueur, se déplacera et se reformera de manière qui ne peut être simulée que par des modèles physiques complexes – à ce jour, seulement applicables via des méthodologies ‘traditionnelles’ de CGI.

De la recherche de 2017 par Disney, un modèle basé sur la physique tente d’appliquer un mouvement réaliste à un style de cheveux fluide dans un flux de travail CGI. Source : https://www.youtube.com/watch?v=-6iF3mufDW0
Le problème est mal abordé par les méthodes de deepfakes modernes et populaires. Pendant quelques années, le package principal DeepFaceLab a eu un modèle ‘tête complète’ qui ne peut capturer que des incarnations rigides de coiffures courtes (généralement masculines) ; et récemment, DFL stablemate FaceSwap (les deux packages sont dérivés du code source DeepFakes controversé de 2017) a proposé une mise en œuvre du modèle de segmentation sémantique BiseNet, permettant à l’utilisateur d’inclure les oreilles et les cheveux dans la sortie deepfake.
Même lors de la représentation de coiffures très courtes, les résultats tendent à être très limités en qualité, avec des têtes complètes qui apparaissent superposées sur les images, plutôt que d’être intégrées.
Cheveux GAN
Les deux principales approches concurrentes de simulation humaine sont les champs de rayonnement neuronaux (NeRF), qui peuvent capturer une scène à partir de plusieurs points de vue et encapsuler une représentation 3D de ces points de vue dans un réseau neuronal explorable ; et les réseaux antagonistes génératifs (GANs), qui sont nettement plus avancés en termes de synthèse d’images humaines (ne serait-ce que parce que NeRF n’est apparu qu’en 2020).
La compréhension inférée de la géométrie 3D de NeRF lui permet de répliquer une scène avec une grande fidélité et une grande cohérence, même s’il n’a actuellement peu ou pas de possibilités pour l’imposition de modèles physiques – et, en fait, des possibilités relativement limitées pour tout type de transformation sur les données collectées qui ne sont pas liées au changement du point de vue de la caméra. Actuellement, NeRF a des capacités très limitées en termes de reproduction du mouvement des cheveux humains.
Les équivalents basés sur GAN de NeRF commencent avec un désavantage presque fatal, puisque, contrairement à NeRF, l’espace latent d’un GAN ne comprend pas naturellement une compréhension des informations 3D. Par conséquent, la synthèse d’images faciales 3D basée sur GAN est devenue une poursuite chaude dans la recherche de génération d’images ces dernières années, avec InterFaceGAN de 2019 l’une des principales avancées.
Cependant, même les résultats présentés et sélectionnés d’InterFaceGAN démontrent que la cohérence des cheveux neuronaux reste un défi difficile en termes de cohérence temporelle, pour les flux de travail VFX potentiels :

Cheveux ‘croustillants’ dans une transformation de pose à partir d’InterFaceGAN. Source : https://www.youtube.com/watch?v=uoftpl3Bj6w
Comme il devient plus évident que la génération de vues cohérentes via la manipulation de l’espace latent seul peut être une poursuite alchimique, un nombre croissant de documents émerge qui incorporent des informations 3D basées sur CGI dans un flux de travail GAN en tant que contrainte de stabilisation et de normalisation.
L’élément CGI peut être représenté par des primitives 3D intermédiaires telles qu’un Skinned Multi-Person Linear Model (SMPL), ou en adoptant des techniques d’inférence 3D de manière similaire à NeRF, où la géométrie est évaluée à partir des images ou de la vidéo sources.
Un nouveau travail le long de ces lignes, publié cette semaine, est Multi-View Consistent Generative Adversarial Networks for 3D-aware Image Synthesis (MVCGAN), une collaboration entre ReLER, AAII, University of Technology Sydney, l’Académie DAMO d’Alibaba Group et l’Université de Zhejiang.

Poses faciales plausibles et robustes générées par MVCGAN sur des images dérivées du jeu de données CELEBA-HQ. Source : https://arxiv.org/pdf/2204.06307.pdf
MVCGAN intègre un réseau de champ de rayonnement génératif (GRAF) capable de fournir des contraintes géométriques dans un réseau antagoniste génératif, réalisant ainsi certaines des capacités de positionnement les plus authentiques de toute approche GAN basée similaire.
Cependant, le matériel supplémentaire pour MVCGAN révèle que l’obtention de la consistance du volume, de la disposition, du placement et du comportement des cheveux est un problème qui n’est pas facilement résolu par des contraintes basées sur une géométrie 3D imposée de l’extérieur.

À partir du matériel supplémentaire non publié au moment de la rédaction, nous voyons que même si la synthèse de pose faciale à partir de MVCGAN représente une avancée notable par rapport à l’état de l’art actuel, la cohérence temporelle des cheveux reste un problème.
Puisque les flux de travail CGI ‘directs’ trouvent encore la reconstruction temporelle des cheveux un défi, il n’y a aucune raison de croire que les approches géométriques conventionnelles de cette nature vont apporter une synthèse de cheveux cohérente à l’espace latent dans un avenir proche.
Stabiliser les cheveux avec des réseaux de neurones convolutionnels
Cependant, un article à paraître de trois chercheurs de l’Institut de technologie de Chalmers en Suède peut offrir une avancée supplémentaire dans la simulation neurale des cheveux.

À gauche, la représentation des cheveux stabilisée par le CNN, à droite, la vérité terrain. Voir la vidéo intégrée à la fin de l’article pour une meilleure résolution et des exemples supplémentaires. Source : https://www.youtube.com/watch?v=AvnJkwCmsT4
Intitulé Filtrage de cheveux en temps réel avec des réseaux de neurones convolutionnels, l’article sera publié pour le symposium i3D début mai.
Le système se compose d’un réseau basé sur un auto-encodeur capable d’évaluer la résolution des cheveux, y compris l’auto-ombrage et en tenant compte de l’épaisseur des cheveux, en temps réel, sur la base d’un nombre limité d’échantillons stochastiques générés par la géométrie OpenGL.
L’approche rend un nombre limité d’échantillons avec transparence stochastique et forme ensuite un U-net pour reconstruire l’image originale.

Sous MVCGAN, un CNN filtre des facteurs de couleur échantillonnés stochastiquement, des highlights, des tangentes, de la profondeur et des alphas, assemblant les résultats synthétisés en une image composite.
Le réseau est formé sur PyTorch, convergeant sur une période de six à douze heures, en fonction du volume du réseau et du nombre de fonctionnalités d’entrée. Les paramètres formés (poids) sont ensuite utilisés dans la mise en œuvre en temps réel du système.
Les données de formation sont générées en rendant plusieurs centaines d’images pour des coiffures droites et ondulées, en utilisant des distances et des poses aléatoires, ainsi que des conditions d’éclairage diverses.

Différents exemples d’entrée de formation.
La transparence des cheveux à travers les échantillons est moyennée à partir d’images rendues avec une transparence stochastique à une résolution suréchantillonnée. Les données de haute résolution d’origine sont sous-échantillonnées pour s’adapter aux limites du réseau et du matériel, puis sur-échantillonnées, dans un flux de travail d’auto-encodeur typique.
L’application d’inférence en temps réel (le ‘logiciel live’ qui utilise l’algorithme dérivé du modèle formé) utilise un mélange de NVIDIA CUDA avec cuDNN et OpenGL. Les fonctionnalités d’entrée initiales sont déchargées dans des tampons de couleur multisamples OpenGL, et le résultat est déplacé vers des tenseurs cuDNN avant traitement dans le CNN. Ces tenseurs sont ensuite copiés dans une texture ‘live’ OpenGL pour imposition dans l’image finale.
Le système en temps réel fonctionne sur une NVIDIA RTX 2080, produisant une résolution de 1024×1024 pixels.
Puisque les valeurs de couleur des cheveux sont complètement désentrelacées dans les valeurs finales obtenues par le réseau, changer la couleur des cheveux est une tâche triviale, bien que les effets tels que les dégradés et les rayures restent un défi pour l’avenir.

Les auteurs ont publié le code utilisé dans les évaluations de l’article sur GitLab. Voir la vidéo supplémentaire pour MVCGAN ci-dessous.
Conclusion
Naviguer dans l’espace latent d’un auto-encodeur ou d’un GAN est encore plus proche de la navigation que de la conduite de précision. Ce n’est que dans cette période très récente que nous commençons à voir des résultats crédibles pour la génération de pose de géométries ‘plus simples’ telles que les visages, dans des approches telles que NeRF, GANs et des cadres d’auto-encodeur non deepfake (2017).
La complexité architecturale significative des cheveux humains, combinée à la nécessité d’incorporer des modèles physiques et d’autres caractéristiques pour lesquelles les approches actuelles de synthèse d’images n’ont pas de dispositions, indique que la synthèse de cheveux est peu susceptible de rester un composant intégré dans la synthèse faciale générale, mais nécessitera des réseaux dédiés et distincts d’une certaine complexité – même si de tels réseaux pourraient éventuellement être intégrés dans des cadres de synthèse faciale plus larges et plus complexes.
Publié pour la première fois le 15 avril 2022.











