Vision par ordinateurIA générativeVision par ordinateurIA générative
Vision par ordinateur6 min de lecture

Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Un modèle GAN qui utilise de simples blobs pour manipuler les objets dans les images… Une fois que nous obtenons de bons résultats.

Une avancée MAJEURE pour les GAN ! BlobGAN expliqué
Sommaire

Si vous croyez que les progrès des GAN sont terminés, vous vous trompez complètement. Voici BlobGAN, et ce nouvel article scientifique est tout simplement incroyable.

BlobGAN permet des manipulations d’images incroyables en contrôlant très facilement de simples blobs. Chacun de ces petits blobs représente un objet. Vous pouvez le déplacer, l’agrandir, le réduire ou même le supprimer, et l’objet qu’il représente dans l’image subira la même transformation. C’est vraiment génial !

Comme les auteurs le montrent dans leurs résultats, vous pouvez même créer de nouvelles images en dupliquant des blobs pour produire des scènes jamais vues dans le jeu de données, comme une pièce avec deux ventilateurs au plafond ! Corrigez-moi si je me trompe, mais je crois qu’il s’agit de l’un des premiers articles, sinon le premier, à rendre la retouche d’images aussi simple que le déplacement de blobs et à permettre des modifications qui n’existaient pas dans le jeu de données d’entraînement.

Et contrairement à certaines entreprises que nous connaissons tous, vous pouvez réellement essayer ce modèle ! Les chercheurs ont publié leur code et une démo Colab que vous pouvez utiliser immédiatement. Le fonctionnement de BlobGAN est encore plus intéressant, et nous allons le découvrir dans quelques secondes.

Regardez les résultats :

Maintenant que vous avez vu quelques résultats dans le GIF ci-dessus, revenons à notre article scientifique, « BlobGAN: Spatially Disentangled Scene Representations ».

Le titre dit tout : BlobGAN utilise des blobs pour dissocier les objets d’une scène.
Autrement dit, le modèle apprend à associer chaque blob à un objet précis de la scène, comme un lit, une fenêtre ou un ventilateur de plafond. Une fois entraîné, vous pouvez déplacer les blobs et les objets indépendamment, les agrandir, les réduire, les reproduire ou même les retirer de l’image. Bien sûr, les résultats ne sont pas parfaitement réalistes, mais comme le dirait une personne formidable, « imaginez le potentiel de cette approche après deux autres articles scientifiques ».

Exemple visuel tiré de Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Les blobs. Image tirée de l’article scientifique des auteurs.

Ce qui est encore plus intéressant, c’est que l’entraînement se fait de façon non supervisée. Vous n’avez donc pas besoin de chaque exemple d’image pour l’entraîner, comme ce serait le cas avec un apprentissage supervisé. Prenons un exemple rapide : l’entraînement supervisé exigerait que votre jeu de données contienne toutes les manipulations souhaitées afin d’apprendre aux blobs à effectuer ces transformations. Avec l’apprentissage non supervisé, vous n’avez pas besoin de ces données abondantes. Le modèle apprend lui-même à accomplir la tâche en associant les blobs aux objets sans étiquettes explicites.

Nous entraînons le modèle avec un générateur et un discriminateur, comme dans un GAN. Je ferai seulement un survol rapide, puisque j’ai présenté les GAN dans de nombreuses vidéos. Comme toujours avec les GAN, le discriminateur doit apprendre au générateur à créer des images réalistes. La partie la plus importante de l’architecture est le générateur, qui contient nos blobs et un décodeur semblable à StyleGAN2. J’ai aussi présenté les générateurs fondés sur StyleGAN dans d’autres vidéos si leur fonctionnement vous intéresse.

Exemple visuel tiré de Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Visualisation du modèle BlobGAN. Image tirée de l’article scientifique des auteurs.

Mais en bref, nous créons d’abord nos blobs. Comme dans la plupart des réseaux générateurs, nous partons d’un bruit aléatoire et le transformons en blobs à l’aide d’un premier réseau neuronal. Cette transformation est apprise pendant l’entraînement. Ensuite, nous devons accomplir l’impossible : prendre cette représentation sous forme de blobs et la transformer en véritable image ?! C’est ici que la magie des GAN opère.

Exemple visuel tiré de Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Visualisation de la génération des blobs. Image tirée de l’article scientifique des auteurs.

Nous avons besoin d’une architecture semblable à StyleGAN pour créer nos images à partir de ces blobs. Bien sûr, nous modifions l’architecture afin qu’elle reçoive les blobs que nous venons de créer plutôt que le bruit aléatoire habituel. Nous entraînons ensuite notre modèle à l’aide du discriminateur pour lui apprendre à produire des images réalistes. Une fois que nous obtenons de bons résultats, notre modèle peut recevoir la représentation sous forme de blobs à la place du bruit et générer des images.

Mais il reste un problème. Comment peut-on dissocier ces blobs et les faire correspondre aux objets ?

Exemple visuel tiré de Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Eh bien, c’est toute la beauté de notre approche non supervisée. Le modèle s’améliore progressivement et produit des résultats réalistes tout en apprenant à représenter ces images sous la forme d’un nombre fixe de blobs.

Exemple visuel tiré de Une avancée MAJEURE pour les GAN ! BlobGAN expliqué

Image tirée de l’article scientifique des auteurs.

Vous pouvez voir ici que les blobs servent souvent à représenter les mêmes objets ou des objets très semblables dans la scène. Le même blob représente par exemple une fenêtre ou un tableau, ce qui est très logique. De la même façon, vous pouvez voir que la lumière est presque toujours représentée par le quatrième blob. Les blobs correspondent aussi souvent aux mêmes régions de la scène, probablement en raison des ressemblances entre les images du jeu de données utilisé dans l’expérience.

Et voilà !
Voici comment BlobGAN apprend à manipuler des scènes avec une représentation très intuitive sous forme de blobs ! J’ai hâte de voir le réalisme des résultats s’améliorer tout en conservant une approche semblable. Une telle technique pourrait nous permettre de concevoir des applications interactives simples afin que les designers ou n’importe qui d’autre puissent facilement manipuler des images, ce qui est assez excitant.

Bien sûr, il ne s’agissait que d’un survol de ce nouvel article scientifique. Je vous recommande fortement de le lire pour mieux comprendre l’approche et obtenir beaucoup plus de détails sur son implémentation et les tests réalisés.

Comme je l’ai dit plus tôt dans l’article, les chercheurs ont publié leur code et une démo Colab que vous pouvez essayer immédiatement. Tous les liens se trouvent dans les références ci-dessous.

Merci d’avoir lu jusqu’à la fin. On se revoit la semaine prochaine avec un autre article scientifique incroyable ! N’hésitez pas à rejoindre notre communauté sur Discord pour y partager vos projets. Elle s’appelle Learn AI Together, et j’aimerais beaucoup vous y rencontrer virtuellement !


Référence

►Epstein, D., Park, T., Zhang, R., Shechtman, E. et Efros, A.A., 2022. BlobGAN: Spatially Disentangled Scene Representations. arXiv preprint arXiv:2205.02837.
►Lien du projet : https://dave.ml/blobgan/
►Code : https://github.com/dave-epstein/blobgan
►Démo Colab : https://colab.research.google.com/drive/1clvh28Yds5CvKsYYENGLS3iIIrlZK4xO?usp=sharing#scrollTo=0QuVIyVplOKu
►Mon infolettre (une nouvelle application de l’IA expliquée chaque semaine dans vos emails !) : /fr/newsletter/

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce que BlobGAN ?

BlobGAN représente les objets d’une scène avec de simples blobs contrôlables avant de convertir cette disposition en image générée.

Comment les blobs facilitent-ils la retouche d’images ?

Déplacer ou redimensionner un blob donne à l’utilisateur une façon directe de repositionner un objet sans modifier manuellement les pixels.

BlobGAN peut-il retoucher les objets indépendamment ?

Sa représentation structurée est conçue pour modifier séparément les éléments d’une scène tout en préservant les parties qui n’ont aucun lien.

Pourquoi est-ce plus utile qu’une génération aléatoire par GAN ?

La disposition intermédiaire offre des contrôles explicites plutôt que d’obliger les utilisateurs à accepter une image en grande partie aléatoire.

L’entraînement exige-t-il des étiquettes pour chaque objet ?

Non. La méthode apprend sa représentation sans exiger un exemple entièrement annoté pour chaque image.