Louis-François Bouchard

View Original

Traduisez le Texte dans vos Images avec TextStyleBrush

Imaginez que vous êtes en vacances dans un autre pays dont vous ne parlez pas la langue. Vous voulez essayer un restaurant local, mais leur menu est dans la langue dont vous ne parlez pas. Je pense que ce ne sera pas trop difficile à imaginer, car la plupart d'entre nous ont déjà été confrontés à cette situation où vous voyiez un menu ou des instructions et que vous ne puissiez pas comprendre ce qui est écrit. Eh bien, en 2020, vous sortiriez votre téléphone et utiliseriez Google translate pour traduire ce que vous voyez. En 2021, vous n'avez même plus besoin d'ouvrir Google Translate et d'essayer d'écrire ce que vous voyez un par un pour le traduire. Au lieu de cela, vous pouvez simplement utiliser ce nouveau modèle de Facebook AI pour traduire chaque texte de l'image dans votre propre langue ! Bien sûr, ce n'est pas la première application de cette technologie, mais même cela est cool. Ce qui est encore plus cool, c'est que leur outil de traduction utilise en fait une technologie similaire à celle des deepfakes pour changer les mots d'une image en suivant le même style que les mots originaux !

Il peut copier le style d'un texte à partir de n'importe quelle image en utilisant un seul mot comme exemple ! Juste comme ça...

C'est un modèle incroyable pour la traduction de texte photo-réaliste en réalité augmentée. Ce n'est que le premier article au sujet d’un modèle entraîné sur un nouvel ensemble de données qu'ils ont publié pour cette tâche, et c'est déjà très impressionnant! Cela pourrait être incroyable pour les jeux vidéo ou les films, car vous pourrez traduire très facilement le texte apparaissant sur les bâtiments, les affiches, les panneaux, etc., rendant l'immersion encore plus personnalisée et convaincante pour tout le monde en fonction de la langue choisie sans avoir à modifier le tout manuellement en photoshopant chaque image ou même refaire complètement des scènes. Comme vous pouvez le voir, cela fonctionne également avec l'écriture manuscrite en utilisant un seul mot. Sa capacité à généraliser à partir d'un seul mot et à copier son style est ce qui rend ce nouveau modèle d'intelligence artificielle si impressionnant. En effet, il comprend non seulement la typographie et la calligraphie du texte, mais aussi la scène dans laquelle il apparaît. Que ce soit sur une affiche sinueuse ou sur différents arrière-plans.

Les modèles de transfert de texte typiques sont entraînés de manière supervisée avec un style spécifique et utilisent des images avec segmentation de texte. Cela signifie que vous devez savoir quel est chaque pixel de l'image, que ce soit le texte ou non, ce qui est très coûteux et compliqué à avoir. Au lieu de cela, ils utilisent un processus de formation autosupervisé où le style et la segmentation des textes ne sont pas donnés au modèle pendant la formation. Seul le contenu réel du mot est donné. J'ai dit qu'ils avaient publié un ensemble de données pour ce modèle et qu'il était capable de le faire avec un seul mot. Cela peut sembler contradictoire, mais en effet, le modèle apprend d'abord une manière généralisée d'accomplir la tâche sur cet ensemble de données avec de nombreux exemples au cours de l’entraînement. Cet ensemble de données contient environ 9 000 images de texte sur différentes surfaces avec uniquement les annotations de mots.

Ensuite, ils utilisent ce nouveau mot de l'image d'entrée pour apprendre son style de la manière que nous appelons un transfert "one-shot". Cela signifie qu'à partir d'un seul exemple d'image contenant le mot à modifier, il ajustera automatiquement le modèle pour s'adapter à ce style exact pour tous les autres mots. Comme vous le savez, le but ici est de démêler le contenu du style d'un texte apparaissant sur une image puis d'utiliser le style de ce texte sur un nouveau texte et de le remettre sur l'image. Ce processus de démêlage du texte de l'image réelle est appris de manière "autosupervisée, comme nous le verrons dans une minute. En bref, nous prenons une image en entrée et créons une nouvelle image avec uniquement le texte traduit.

Cela ne ressemble-t-il pas à la tâche de prendre une photo de votre visage et de n'en modifier que des caractéristiques spécifiques pour l'adapter à un autre style, comme l'article que j'ai publié la semaine dernière sur le changement de coiffures? Si vous vous en souvenez, j'ai dit que c'est très similaire au fonctionnement des deepfakes. Ce qui veut dire que quoi de mieux pour cela que le modèle StyleGan2, le meilleur modèle pour générer de nouvelles images à partir d'une autre image?

Voyons maintenant comment ils y sont parvenus, c'est-à-dire le processus d’entraînement…

Ils entraînent ce modèle à mesurer ses performances sur ces images non étiquetées à l'aide d'un réseau de classification de polices pré-entraîné et d'un réseau de reconnaissance de texte également pré-entraîné. C'est pourquoi il apprend de manière auto-supervisée. Car il n'a pas directement accès aux étiquettes ou à la “vérité terrain” sur les images d'entrée. Ceci, couplé à une mesure de réalisme calculée sur l'image générée avec le nouveau texte par rapport à l'image d'entrée, permet au modèle d'être entraîné seul, sans supervision, en visant des résultats de texte photo-réalistes et précis. Ces deux réseaux indiqueront à quel point le texte généré est proche de ce qu'il est censé être en détectant d'abord le texte dans l'image, qui sera notre vérité fondamentale, puis en comparant le nouveau texte avec ce que nous voulions écrire et sa police avec la police du texte de l'image d'origine.

L'utilisation de ces deux réseaux déjà formés permet au générateur d'images basé sur StyleGan d'être formé sur des images sans aucune étiquette préalable. Ensuite, le modèle peut être utilisé au moment de l'inférence, ou en d'autres termes, dans le monde réel, sur n'importe quelle image sans les deux autres réseaux dont nous avons parlé, en envoyant uniquement l'image via le réseau formé basé sur StyleGAN qui génère la nouvelle image avec le texte modifié. Il réalisera sa translation en comprenant séparément le style du texte et le contenu. Où le style provient de l'image réelle et le contenu est la chaîne de caractère identifiée et la chaîne de caractère à générer. Ici, le processus de "compréhension" auquel je viens de faire référence est un encodeur pour chacun, représenté en vert dans l’image ci-dessus, compressant les informations en informations générales qui devraient représenter avec précision ce que nous voulons vraiment de cette entrée. Ensuite, ces deux informations générales encodées sont envoyées dans le générateur d'images basé sur StyleGAN, affiché en bleu, à différentes étapes en fonction des détails nécessaires. Cela signifie que le contenu et le style sont envoyés dans un premier temps, car ils doivent être traduits. Ensuite, nous forcerons le style dans l'image générée en l'alimentant de manière itérative dans le réseau à plusieurs étapes avec des proportions optimales apprises pendant l’entraînement. Cela permet au générateur de contrôler les détails de basse à haute résolution de l'apparence du texte, au lieu de se limiter aux détails de basse résolution si nous n'envoyons ces informations de style que comme entrées comme c'est généralement le cas. Bien sûr, il y a plus de détails techniques afin de tout adapter et de le faire fonctionner, mais je vous laisserai lire leur excellent article lié dans les références ci-dessous si vous souhaitez en savoir plus sur la façon dont ils y sont parvenus dans le côté plus technique de choses.

Je voulais également mentionner qu'ils partagent ouvertement certains problèmes avec des scènes complexes où l'éclairage et les changements de couleur posent problème, nuisant au réalisme, tout comme d'autres applications basées sur GAN que j'ai déjà couvert en transférant votre visage dans des dessins animés ou en modifiant l'arrière-plan d'une image. C'est crucial et super intéressant de voir les limites, car elles aideront à accélérer la recherche et améliorer les résultats.

Pour terminer sur une note plus positive, ce n'est que le premier article s'attaquant à cette tâche complexe avec ce niveau de généralisation, et c'est déjà extrêmement impressionnant. J'ai hâte de voir les prochaines versions !

Merci d’avoir lu cet article!

Regardez la vidéo sous-titrée en anglais:


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

Si vous aimez mon travail et que vous souhaitez rester à jour avec l'IA, vous devez absolument me suivre sur mes autres médias sociaux (LinkedIn, Twitter) et vous abonner à ma newsletter hebdomadaire sur l'IA!

Pour supporter mon travail:

  • La meilleure façon de me soutenir est de souscrire à ma newsletter tel que mentionné précédemment ou de vous abonner à ma chaîne sur YouTube si vous aimez le format vidéo en anglais.

  • Soutenez mon travail financièrement sur Patreon

Références