Ingénierie IAVision par ordinateurIA générativeIngénierie IAVision par ordinateurIA générative
Ingénierie IA8 min de lecture

Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Dites adieu aux architectures complexes de GAN et de transformers pour générer des images. Cette nouvelle méthode peut générer de nouvelles images à partir de n’importe quelle entrée utilisateur.

Mis à jour le 25 sept. 2021
Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !
Sommaire

Dites adieu aux architectures complexes de GAN et de transformers pour générer des images. Cette nouvelle méthode de Chenling Meng et ses collègues de l’Université Stanford et de l’Université Carnegie Mellon peut générer de nouvelles images à partir de n’importe quelle entrée fournie par un utilisateur. Même les personnes comme moi, qui n’ont aucun talent artistique, peuvent maintenant produire de belles images ou des modifications à partir de croquis rapides. L’idée peut sembler étrange au début, mais en ajoutant simplement du bruit à l’entrée, la méthode peut adoucir les artéfacts indésirables, comme les modifications de l’utilisateur, tout en préservant la structure générale de l’image. L’image ressemble alors à ceci, remplie de bruit, mais nous distinguons encore certaines formes, certains traits et certaines couleurs. Cette nouvelle entrée bruitée est ensuite envoyée au modèle, qui inverse le processus et génère une nouvelle version de l’image en suivant sa structure générale. Il respecte donc les formes et les couleurs globales sans les reproduire avec trop de précision, ce qui lui permet de créer de nouvelles caractéristiques, comme remplacer ce croquis par une barbe réaliste.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Exemples de SDEdit. SDEdit, Chenlin Meng et ses collègues, 2021

De la même façon, vous pouvez envoyer une ébauche complète d’une image comme celle-ci et lui ajouter du bruit. Le modèle retire ensuite le bruit en simulant les étapes inverses. Il améliore donc progressivement la qualité de l’image générée tout en respectant le style d’un jeu de données précis, peu importe l’entrée ! Voilà pourquoi vous n’avez plus besoin de savoir dessiner ! Puisqu’il génère une image à partir du bruit, il ne connaît pas l’entrée initiale avant l’ajout du bruit et n’a pas besoin de la connaître. C’est une différence importante et un immense avantage par rapport aux autres réseaux génératifs, comme les GAN conditionnels, où nous entraînons un modèle à passer d’un style à un autre à l’aide de paires d’images provenant de deux jeux de données différents, mais liés.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Processus de génération des GAN. Il faut deux jeux de données : les vrais visages et le style de dessin animé.

Ce modèle appelé SDEdit utilise des équations différentielles stochastiques, ou SDE. En injectant du bruit gaussien, il transforme n’importe quelle distribution complexe de données en une distribution a priori connue. Le modèle voit cette distribution pendant l’entraînement et apprend à partir d’elle à reconstruire l’image. Il apprend donc à transformer ce bruit gaussien en une image moins bruitée, puis répète le processus jusqu’à obtenir une image qui respecte le style désiré. La méthode fonctionne avec n’importe quel type d’entrée parce que, si nous lui ajoutons assez de bruit, l’image devient si bruitée qu’elle rejoint la distribution connue.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Perturbations de SDEdit par ajout de bruit. SDEdit, Chenlin Meng et ses collègues, 2021

Le modèle peut ensuite recevoir cette entrée connue et effectuer les étapes inverses, donc débruiter l’image selon ce qu’il a appris. Comme avec les GAN, nous avons besoin d’un jeu de données cible, qui représente le type de données ou d’images à générer. Par exemple, pour produire des visages réalistes, il nous faut un jeu rempli de visages réalistes. Nous ajoutons ensuite du bruit à ces images de visages et apprenons au modèle à les débruiter de façon itérative. C’est là toute la beauté de ce modèle. Une fois qu’il a appris à débruiter une image, nous pouvons modifier l’image à peu près comme nous le voulons avant d’ajouter le bruit, par exemple en y dessinant des traits. Le bruit ajouté les mélange à la distribution d’images attendue. Modifier une image à partir de tels traits est normalement difficile pour une architecture de GAN, puisque ces traits sont très différents de l’image et de tout ce que le modèle a vu pendant l’entraînement. Un GAN aurait besoin de deux jeux de données pour régler le problème : le jeu cible à imiter et un jeu source composé des images avec les traits que nous tentons de modifier.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Le problème de complexité des données avec les GAN conditionnels.

Ces jeux sont appelés jeux de données appariés parce que chaque image doit être accompagnée de sa paire dans les deux jeux afin d’entraîner notre modèle. Nous devons aussi définir une bonne fonction de perte pour l’entraînement, ce qui rend le processus de synthèse d’images très coûteux et très long.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Processus de perturbation par ajout de bruit et processus inverse par suppression du bruit dans SDEdit. Image tirée de SDEdit, Chenlin Meng et ses collègues, 2021

Dans notre cas, SDEdit n’a besoin d’aucune donnée appariée puisque le bruit fusionne le trait et le style de l’image. La nouvelle image bruitée fait ainsi partie des données connues du modèle. Celui-ci l’utilise pour générer une nouvelle image très semblable au jeu d’entraînement, mais qui tient compte de la nouvelle structure. Autrement dit, il peut facilement recevoir n’importe quelle image modifiée en entrée, la rendre assez floue, mais pas trop afin de préserver sa sémantique globale et les détails de sa structure, puis la débruiter pour produire une nouvelle image qui tient magiquement compte de vos modifications. Et le modèle n’a même pas été entraîné avec des exemples de traits ou de modifications, seulement avec les images originales de visages ! Bien sûr, pour une simple modification faite par l’utilisateur, les chercheurs ont soigneusement conçu l’architecture afin qu’elle génère uniquement la partie modifiée plutôt que de recréer toute l’image.

C’est vraiment génial parce qu’un seul modèle non conditionnel peut résoudre, sans nouvel entraînement, des applications comme la génération conditionnelle d’images, la synthèse et la modification d’images à partir de traits, le remplissage d’images, la colorisation et d’autres problèmes inverses. Bien sûr, il fonctionne toujours pour un seul style de génération, celui du jeu de données sur lequel il a été entraîné. Cela demeure toutefois un grand avantage, puisque nous avons besoin d’un seul jeu de données plutôt que de plusieurs jeux liés, comme avec un réseau de remplissage d’images fondé sur les GAN.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Exemples de SDEdit. Image tirée de SDEdit, Chenlin Meng et ses collègues, 2021

Le seul désavantage est peut-être le temps nécessaire pour générer la nouvelle image, puisque ce processus itératif prend beaucoup plus de temps qu’un seul passage dans un modèle génératif plus traditionnel fondé sur les GAN. Malgré tout, je préfère attendre quelques secondes et obtenir un excellent résultat pour une image plutôt qu’un échec flou en temps réel. Vous pouvez l’essayer vous-même avec le code public ou avec la démonstration sur leur site Web. Les deux liens se trouvent dans les références.

Exemple visuel de Synthèse et modification d’images à partir de croquis : SDEdit. Fini l’entraînement fastidieux !

Dites-moi ce que vous pensez de ce modèle. J’ai hâte de voir ce qui arrivera avec cette méthode fondée sur les SDE dans quelques mois, ou même plus tôt ! Comme vous le savez, ce n’était qu’un aperçu de cette nouvelle technique incroyable. Je vous invite fortement à lire l’article scientifique lié ci-dessous afin de mieux comprendre SDEdit.

Merci de m’avoir lu !


Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et les meilleurs cours, trouvez des coéquipiers pour Kaggle et bien plus encore !

Si vous aimez mon travail et souhaitez rester au courant de l’IA, suivez-moi sur mes autres réseaux sociaux (LinkedIn, Twitter) et abonnez-vous à mon infolettre hebdomadaire sur l’IA !

Pour me soutenir :

  • La meilleure façon de me soutenir est de devenir membre de ce site Web 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 :

►Lisez l’article complet : /fr/image-synthesis-from-sketches/
►Mon infolettre (une nouvelle application de l’IA expliquée chaque semaine par courriel !) : /fr/newsletter/
►SDEdit, Chenlin Meng et ses collègues, 2021, https://arxiv.org/pdf/2108.01073.pdf
►Lien du projet : https://chenlin9.github.io/SDEdit/
►Code : https://github.com/ermongroup/SDEdit
►Démonstration : https://colab.research.google.com/drive/1KkLS53PndXKQpPlS1iK-k1nRQYmlb4aO?usp=sharing

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

Que fait SDEdit ?

SDEdit transforme un croquis ou une image grossière en un résultat réaliste à l’aide d’un modèle de diffusion préentraîné.

Pourquoi ajouter du bruit à l’entrée de l’utilisateur ?

Le bruit rapproche l’entrée grossière d’une représentation que le modèle préentraîné sait débruiter de façon réaliste.

Comment SDEdit préserve-t-il l’idée originale ?

Le niveau de bruit laisse assez de structure de l’entrée pour guider la composition tout en permettant au modèle de raffiner l’apparence.

SDEdit exige-t-il des paires de croquis et d’images pour l’entraînement ?

Non. Il utilise un a priori génératif existant plutôt que de s’entraîner sur des croquis associés à leurs images finales.

Quel compromis le niveau de bruit contrôle-t-il ?

Trop peu de bruit préserve les artéfacts, tandis qu’une trop grande quantité peut effacer la composition désirée par l’utilisateur.