Regardez la vidéo et soutenez-moi sur YouTube !
Le prix du meilleur article de CVPR 2021 a été remis à Michael Niemeyer et Andreas Geiger de l’Institut Max-Planck pour les systèmes intelligents et de l’Université de Tübingen pour leur article GIRAFFE, qui s’attaque à la synthèse contrôlable d’images. Autrement dit, ils cherchent à générer de nouvelles images tout en contrôlant ce qui apparaît, notamment les objets, leur position et leur orientation, l’arrière-plan et bien plus. Grâce à une architecture de GAN modifiée, ils peuvent même déplacer des objets dans l’image sans modifier l’arrière-plan ni les autres objets ! CVPR est une conférence annuelle qui s’est tenue la semaine dernière et pour laquelle une foule de nouveaux articles de recherche en vision par ordinateur ont été publiés.

Exemple de bande-annonce créée par les auteurs. Michael Niemeyer et Andreas Geiger, 2021
Comme vous le savez déjà si vous lisez régulièrement mes articles, les architectures de GAN classiques fonctionnent avec un encodeur et un décodeur, comme ceci. Pendant l’entraînement, l’encodeur reçoit une image et la compresse dans une représentation condensée. Le décodeur prend ensuite cette représentation et crée une nouvelle image en changeant son style. Le processus est répété de nombreuses fois avec toutes les images du jeu de données d’entraînement afin que l’encodeur et le décodeur apprennent à maximiser les résultats de la tâche souhaitée. Une fois l’entraînement terminé, vous pouvez envoyer une image à l’encodeur et il suivra le même processus pour générer une nouvelle image jamais vue qui répond à vos besoins. Le fonctionnement reste très semblable peu importe la tâche, qu’il s’agisse de transformer un visage en dessin animé ou de créer un magnifique paysage à partir d’un croquis rapide. En utilisant seulement le décodeur, que nous appelons aussi générateur puisqu’il crée la nouvelle image, nous pouvons nous déplacer dans l’espace d’information encodé et choisir des représentations à lui transmettre pour générer un nombre infini de nouvelles images. Cet espace d’information est souvent appelé espace latent, et l’information utilisée pour produire une nouvelle image, code latent. Nous sélectionnons essentiellement un code latent au hasard dans cet espace optimal, puis le générateur produit une nouvelle image aléatoire qui correspond à la tâche apprise pendant son entraînement. C’est incroyablement cool, mais comme je viens de le dire, l’image est complètement aléatoire et nous avons peu ou pas d’idée de son apparence à l’avance, ce qui la rend beaucoup moins utile aux créateurs.

Exemple de GAN. Michael Niemeyer et Andreas Geiger, 2021
C’est le problème auquel les chercheurs se sont attaqués dans cet article. En prenant des codes latents qui représentent la forme et l’apparence des objets et en les envoyant au décodeur, donc au générateur, ils peuvent contrôler la pose des objets. Ils peuvent les déplacer, changer leur apparence, ajouter d’autres objets, modifier l’arrière-plan et même changer la pose de la caméra. Toutes ces transformations peuvent être appliquées indépendamment à chaque objet ou à l’arrière-plan, sans toucher à quoi que ce soit d’autre dans l’image !


GIRAFFE à gauche et une approche de GAN 2D ordinaire à droite. Michael Niemeyer et Andreas Geiger, 2021
Comme vous pouvez le voir, le résultat est BEAUCOUP meilleur que celui des autres approches basées sur les GAN. Ces approches ne peuvent habituellement pas séparer les objets les uns des autres, si bien que tous sont touchés lorsqu’un seul objet est modifié.
La différence vient du fait que leur méthode aborde ce problème dans une représentation tridimensionnelle de la scène, comme notre perception du monde réel, plutôt que de rester dans le monde bidimensionnel des images comme les autres GANs. À part cela, le processus est assez semblable. Le modèle encode l’information, identifie les objets, les modifie dans l’espace latent, puis décode cette information pour générer la nouvelle image. Il y a simplement davantage d’étapes à effectuer dans l’espace latent. Nous pouvons voir l’approche comme une combinaison d’un réseau classique de synthèse d’images par GAN et d’un moteur de rendu neuronal qui génère la scène 3D à partir des images envoyées au réseau, comme nous allons le voir.
Génération de représentations 3D individuelles des objets. Michael Niemeyer et Andreas Geiger, 2021
Le processus comprend trois grandes étapes. Une fois l’image d’entrée encodée, donc une fois que nous nous trouvons déjà dans l’espace latent, la première étape consiste à la transformer en scène 3D. Mais pas une simple scène 3D. Il s’agit d’une scène composée d’éléments 3D distincts, donc les objets et l’arrière-plan. Voir l’image comme une scène faite de rendus volumétriques générés permet de changer l’angle de la caméra dans l’image produite et de contrôler les objets indépendamment. L’approche utilise un modèle semblable à celui de l’article sur NERV que j’ai déjà présenté. Toutefois, plutôt que d’employer un seul modèle qui génère toute la scène verrouillée à partir de l’image d’entrée, elle génère indépendamment les objets et l’arrière-plan avec deux modèles distincts appelés ici Sampled Feature Fields. Les paramètres de ce réseau sont eux aussi appris pendant l’entraînement. Je ne vais pas entrer dans les détails, mais le fonctionnement ressemble beaucoup à NeRF, que j’ai présenté dans un autre article. Si vous souhaitez en apprendre davantage sur ce type de réseau, regardez cette vidéo sur NERV, aussi liée dans les références ci-dessous.
Transition de pose dans la représentation 3D. Michael Niemeyer et Andreas Geiger, 2021
Puisque les éléments de cette scène sont séparés, nous pouvons les modifier individuellement sans toucher au reste de l’image. Il s’agit de la deuxième étape. Les chercheurs peuvent faire ce qu’ils veulent avec l’objet, comme changer sa position et son orientation.
Autrement dit, ils changent la pose des objets ou de l’arrière-plan. À ce stade, ils peuvent même ajouter de nouveaux objets où ils le souhaitent. Il suffit ensuite de les combiner dans une scène 3D finale qui contient tous les objets et l’arrière-plan en additionnant tous les champs de caractéristiques.

L’ensemble des calculs dans l’espace latent. Michael Niemeyer et Andreas Geiger, 2021
Enfin, nous devons revenir au monde 2D des images naturelles. La dernière étape prend donc cette scène 3D et en produit une image ordinaire. Comme nous nous trouvons encore dans le monde tridimensionnel, nous pouvons changer le point de vue de la caméra pour choisir la façon d’observer la scène. Le modèle évalue ensuite chaque pixel à partir du rayon de cette caméra et d’autres paramètres, comme la valeur alpha et la transmittance. Nous obtenons ce que les chercheurs appellent une image de caractéristiques, où chaque pixel contient un vecteur de caractéristiques. Puisque nous sommes toujours dans l’espace latent, ces caractéristiques doivent être traduites en couleurs RVB et en images en haute résolution. Cette opération repose sur un décodeur classique, comme dans les autres architectures de GAN. Il augmente la résolution jusqu’aux dimensions originales tout en apprenant simultanément à traduire les caractéristiques en canaux RVB. Et voilà, vous obtenez une nouvelle image qui vous donne beaucoup plus de contrôle sur ce qui est généré !
Le réseau complet, après l’encodage par un encodeur. Michael Niemeyer et Andreas Geiger, 2021
Bien sûr, comme vous pouvez le voir, l’approche n’est pas encore parfaite lorsqu’elle est utilisée sur des données du monde réel. Elle reste tout de même extrêmement impressionnante et représente une grande avancée dans la bonne direction, surtout lorsque nous considérons que ces images synthétiques sont entièrement générées par des GANs et qu’il s’agit du premier article capable de contrôler les images générées avec ce niveau de précision.

Exemples d’imperfections. Michael Niemeyer et Andreas Geiger, 2021
L’article scientifique est vraiment intéressant et je vous recommande de le lire pour comprendre le fonctionnement du modèle. Félicitations à Michael Niemeyer et Andreas Geiger pour ce prix du meilleur article bien mérité. Ils ont aussi publié le code sur GitHub si vous souhaitez l’essayer. Le lien se trouve dans les références ci-dessous.
Merci de m’avoir lu !
Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et vos meilleurs cours, trouvez des coéquipiers pour Kaggle et bien plus encore !
Si vous aimez mon travail et souhaitez rester à jour dans le domaine de l’IA, vous devriez absolument me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA !
Pour me soutenir :
- La meilleure façon de me soutenir est de devenir membre de ce site ou de vous abonner à ma chaîne YouTube si vous préférez le format vidéo.
- Soutenez financièrement mon travail sur Patreon
Références
- Michael Niemeyer et Andreas Geiger, 2021, « GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields », publié à CVPR 2021.
- Lien du projet avec l’article scientifique et plus : https://m-niemeyer.github.io/project-pages/giraffe/index.html
- Code : https://github.com/autonomousvision/giraffe
- Vidéo sur NeRF : https://youtu.be/ZkaTyBvS2w4
FAQ
Que génère GIRAFFE ?
GIRAFFE génère des images à partir d’une représentation explicite de la scène qui tient compte de la 3D, plutôt que de traiter toute l’image comme une seule sortie incontrôlée.
Comment GIRAFFE améliore-t-il le contrôle ?
Il représente les objets séparément, ce qui permet de changer leur position, leur orientation et le point de vue de la caméra sans reconstruire toute la scène.
Peut-on déplacer un objet sans changer l’arrière-plan ?
Oui. Les représentations indépendantes des objets sont conçues pour préserver les composantes de la scène qui ne sont pas liées à la modification.
Pourquoi le contrôle est-il important pour la génération d’images ?
Les créateurs ont besoin de modifications reproductibles sur des éléments précis, pas seulement d’échantillons aléatoires qui semblent attrayants.
Pourquoi dit-on que la méthode tient compte de la 3D ?
Elle compose les représentations volumétriques générées dans une scène qui peut être rendue à partir de différents angles de caméra.


