Si vous trouviez déjà génial de générer de nouvelles images, de les modifier avec des filtres amusants ou d’utiliser l’inpainting pour retirer des objets et en ajouter d’autres avec le bon éclairage, attendez de voir cette nouvelle recherche incroyable.
Appelé Drag Your GAN, ce nouvel article scientifique de Pan et al. permet de modifier directement des images. Les chercheurs utilisent ici un GAN, une architecture d’IA bien connue qui reçoit des images comme inputs pour en générer de nouvelles et qui sert souvent à des applications de transfert de style.

Exemples de points déplacés dans des images. Les points rouges sont les points de départ et les bleus, les cibles. Image tirée de l’article scientifique sur DragGAN.

La rangée du bas présente les résultats de leur méthode, comparés à une autre approche appelée UserControllableLT au centre. Image tirée de l’article scientifique sur DragGAN.
Plutôt que de chercher la meilleure façon de générer de nouvelles images ou de permettre aux utilisateurs de les manipuler avec du texte, les chercheurs ont choisi une autre voie. Leur objectif est de faire glisser un point de A à B, une tâche beaucoup plus précise. Les pixels et l’objet situés au point A doivent se retrouver au point B une fois le déplacement de la souris terminé. L’objet ne doit pas seulement se déplacer vers le point B. Il doit le faire de façon réaliste, et le GAN doit adapter l’image complète afin que la partie déplacée ait du sens dans l’output.
Ce déplacement manipule donc toute l’image, y compris la pose, la forme, l’expression et les objets qu’elle contient. Vous pouvez facilement modifier l’expression d’un chien, le faire asseoir, faire la même chose avec une personne ou même modifier un paysage de façon réaliste. Les résultats sont assez incroyables !
Préféreriez-vous aussi modifier une image avec vos mains, en faisant glisser et en déplaçant les éléments, plutôt qu’avec des inputs textuels ?
Pour ma part, cet exemple d’UI simple semble vraiment intéressant et amusant à essayer ! Quoi qu’il en soit, le fonctionnement de DragGAN est encore plus fascinant que les résultats que nous venons de voir.

Exemples de points déplacés dans des images. Les points rouges sont les points de départ et les bleus, les cibles. Image tirée de l’article scientifique sur DragGAN.
Pour commencer, vous devez comprendre les bases des GANs. Cette architecture permet d’entraîner un modèle génératif, appelé générateur, à créer de nouvelles images qui respectent un dataset précis. En gros, il imite les images que nous possédons déjà. Nous utilisons ensuite un autre modèle appelé discriminateur pour mesurer la qualité des images générées. Pendant l’entraînement, les deux modèles s’améliorent ensemble et, idéalement, nous obtenons un puissant modèle génératif capable de reproduire les vraies images. Vous pouvez en apprendre davantage sur les GANs dans mes articles précédents. Dans ce cas-ci, les chercheurs utilisent StyleGAN2, une architecture de GAN à l’état de l’art que j’ai déjà présentée sur la chaîne.
Il faut noter que toute image générée par un GAN prend sa source dans l’espace des caractéristiques, aussi appelé code latent. Cet espace représente essentiellement l’ensemble des images que le modèle peut générer. Si vous choisissez un point précis dans cet espace, certaines valeurs lui sont associées. En fournissant ces valeurs au générateur, vous obtenez une image. Si vous vous déplacez un peu dans cet espace, vous générez des images semblables. Cet espace est lié à l’espace des images que le modèle peut produire. Des éléments proches y représentent des images similaires.

Image représentant les interactions entre les feature maps, le code latent et l’image. Image tirée de l’article scientifique sur DragGAN.
Les chercheurs répètent deux étapes jusqu’à ce que l’image atteigne sa destination finale. Pour chaque nouveau point cible, le modèle commence par prendre l’image actuelle et déplace sa représentation dans l’espace des caractéristiques, ou code latent, vers le bon point. Nous obtenons un nouveau code latent qui permet de générer une deuxième image. Nous devrions alors voir un léger mouvement dans l’image. Le modèle adapte ensuite automatiquement le nouveau point à sa position réelle dans l’image, puisque le passage de l’espace latent à l’image réelle n’est pas parfait et que les prochaines étapes cherchent justement à le corriger. Dans cet exemple, le modèle replace le point cible précédent sur le nez du lion pour l’étape suivante. Celui-ci devient alors le point de départ. Nous recommençons ainsi, une étape à la fois, jusqu’à atteindre la position finale du point.

Les différentes étapes de l’approche. Image tirée de l’article scientifique sur DragGAN.
Une simple fonction de perte est appliquée dans l’espace des feature maps, c’est-à-dire à l’image intermédiaire obtenue pendant le travail du générateur, entre notre code latent rempli d’information très encodée et l’image générée. Cela suffit pour entraîner le générateur à modifier correctement les images. Pour le suivi du point, les chercheurs travaillent aussi directement dans les feature maps intermédiaires afin de trouver l’endroit le plus semblable au point de départ. Vous pouvez voir cette feature map comme une image en basse résolution qui représente tout de même fidèlement ce que contient l’image, tant localement que globalement.

Image représentant les interactions entre les feature maps, le code latent et l’image. Image tirée de l’article scientifique sur DragGAN.
L’approche comporte quelques limites. Elle peut uniquement modifier les images générées par un GAN puisqu’elle travaille directement dans l’espace des caractéristiques. À tout le moins, les données contrôlées doivent se trouver dans les données d’entraînement afin de maximiser les résultats et d’éviter les artéfacts étranges. Le choix des points est aussi important, puisqu’il repose sur la couleur des pixels et leur contraste avec leur environnement. Si un point ressemble à tout ce qui l’entoure, le modèle risque d’avoir de la difficulté à le suivre parce que tous les endroits se ressemblent.

Cas d’échec et limites. Image tirée de l’article scientifique sur DragGAN.
Malgré tout, les résultats sont incroyables et j’ai vraiment hâte de voir comment progressera ce nouveau sous-domaine de la manipulation d’images.
Bien sûr, ce n’était qu’un aperçu de cet excellent nouvel article scientifique. Je vous invite vivement à le lire pour mieux comprendre son fonctionnement et voir plus de résultats. Les auteurs mentionnent que le code devrait être accessible en juin. Si vous lisez cet article avant cette date, soyez encore un peu patients et, espérons-le, nous pourrons bientôt essayer cette approche !
Références
►Plus de résultats et code à venir : https://vcai.mpi-inf.mpg.de/projects/DragGAN/
►Pan et al., DragGAN, https://arxiv.org/abs/2305.10973
►Twitter : https://twitter.com/Whats_AI
►Mon infolettre (une nouvelle application de l’IA expliquée chaque semaine dans vos emails !) : /fr/newsletter/
►Soutenez-moi sur Patreon : https://www.patreon.com/whatsai
►Rejoignez notre Discord sur l’IA : https://discord.gg/learnaitogether
FAQ
Que permet de faire DragGAN ?
Il permet de faire glisser un point sélectionné dans une image vers une cible pendant que le générateur met à jour la scène de façon réaliste.
Pourquoi ne pas déplacer directement les pixels ?
Un simple déplacement des pixels crée des artéfacts, tandis que le générateur peut adapter la forme, la texture, la pose et le contexte environnant.
Qu’est-ce qu’un handle point ?
C’est le point de l’objet généré que l’utilisateur sélectionne et demande au modèle de déplacer.
Pourquoi optimiser dans l’espace des feature maps ?
Les caractéristiques intermédiaires préservent mieux la structure locale et globale que si l’image finale était traitée comme un ensemble de pixels indépendants.
DragGAN peut-il modifier n’importe quelle photo ?
Il travaille dans la représentation d’un GAN entraîné. Les modifications demeurent donc limitées à ce que ce générateur peut représenter.

