Maison > Article > Périphériques technologiques > Pour la première fois, vous ne vous appuyez pas sur un modèle génératif et laissez l’IA éditer des images en une seule phrase !
2022 est l'année où le contenu généré par l'IA (AIGC) explose. L'une des directions populaires consiste à éditer des images à l'aide de descriptions textuelles (invites de texte). Les méthodes existantes s'appuient généralement sur des modèles génératifs formés sur des ensembles de données à grande échelle, ce qui entraîne non seulement des coûts élevés d'acquisition de données et de formation, mais également des tailles de modèle plus grandes. Ces facteurs ont placé un seuil élevé dans le développement et l'application réels de la technologie, limitant le développement et la créativité de l'AIGC.
En réponse aux problèmes ci-dessus, NetEase Interactive Entertainment AI Lab a collaboré avec l'Université Jiao Tong de Shanghai pour mener des recherches et a proposé de manière innovante une solution basée sur un moteur de rendu vectoriel différentiable - CLIPVG, qui a pour la première fois abouti à une solution qui ne ne comptez sur aucune génération. Dans le cas de modèles, effectuez une retouche d'image guidée par le texte. Cette solution utilise intelligemment les caractéristiques des éléments vectoriels pour contraindre le processus d'optimisation, de sorte qu'elle puisse non seulement éviter des besoins massifs en données et des frais de formation élevés, mais également atteindre le niveau optimal d'effets de génération. L'article correspondant « CLIPVG : Text-Guided Image Manipulation Using Differentiable Vector Graphics » a été inclus dans AAAI 2023.
Certains effets sont les suivants (édition de visage, modification de modèle de voiture, génération de bâtiments, changement de couleur, modification de motif, modification de police, respectivement).
En termes d'effet de génération, CLIPVG améliore la précision sémantique de 15,9% et la qualité de génération de 23,6% par rapport à d'autres solutions connues dans l'industrie, c'est-à-dire qu'il peut automatiquement Modifiez et produisez des images plus pertinentes sur le plan sémantique et sans erreur. En termes de flexibilité du cadre, puisque CLIPVG peut convertir automatiquement les images de pixels en graphiques vectoriels, il peut modifier indépendamment les couleurs, les formes, les sous-régions, etc. de l'image de manière plus flexible que les autres cadres de recherche basés sur des images de pixels. En termes de scénarios d'application, puisque CLIPVG ne s'appuie pas du tout sur des modèles génératifs, il peut être appliqué à un plus large éventail de scénarios, tels que la stylisation de portraits, l'édition de dessins animés, la conception de polices, la coloration automatique, etc. correspondance à un dans plusieurs conditions de texte. Différentes parties de l'image peuvent être modifiées simultanément.
Du point de vue du processus global, CLIPVG a d'abord proposé une méthode de vectorisation à plusieurs tours capable de convertir de manière robuste les images pixel en domaines vectoriels et de s'adapter aux besoins ultérieurs d'édition d'images. Une perte ROI CLIP est ensuite définie comme la fonction de perte pour prendre en charge les conseils avec un texte différent pour chaque région d'intérêt (ROI). L'ensemble du processus d'optimisation utilise un moteur de rendu vectoriel différentiable pour effectuer des calculs de dégradé sur les paramètres vectoriels (tels que les taches de couleur, les points de contrôle, etc.).
CLIPVG combine des technologies de deux domaines, l'un est l'édition d'images guidée par texte dans le domaine des pixels et l'autre est la génération d'images vectorielles. Ensuite, le contexte technique pertinent sera présenté tour à tour.
Traduction d'images guidée par texte
Pour que l'IA « comprenne » le guidage de texte lors de l'édition d'images, la méthode typique consiste à utiliser le modèle CLIP (Constantive Language-Image Pre-Training). Le modèle CLIP peut coder du texte et des images dans des espaces latents comparables et fournir des informations de similarité intermodale indiquant « si l'image est conforme à la description du texte », établissant ainsi une connexion sémantique entre le texte et les images. Cependant, en fait, il est difficile de guider efficacement l'édition d'images directement en utilisant uniquement le modèle CLIP, car CLIP se concentre principalement sur les informations sémantiques de haut niveau de l'image et manque de contraintes sur les détails au niveau des pixels, ce qui entraîne un processus d'optimisation. tomber facilement dans un optimum local (minimum local) ou dans des solutions contradictoires.
Une méthode existante courante consiste à combiner CLIP avec un modèle de génération de domaine de pixels basé sur GAN ou Diffusion, tel que StyleCLIP (Patashnik et al, 2021), StyleGAN-NADA (Gal et al, 2022), Disco Diffusion (alembics 2022) , DiffusionCLIP (Kim, Kwon et Ye 2022), DALL·E 2 (Ramesh et al, 2022) et ainsi de suite. Ces schémas utilisent des modèles génératifs pour limiter les détails de l'image, compensant ainsi les inconvénients de l'utilisation de CLIP seul. Mais en même temps, ces modèles génératifs s'appuient fortement sur les données de formation et les ressources informatiques, et limiteront la portée efficace de l'édition d'images par les images de l'ensemble de formation. Limitées par la capacité de générer des modèles, des méthodes telles que StyleCLIP, StyleGAN-NADA et DiffusionCLIP ne peuvent limiter un seul modèle qu'à un domaine spécifique, tel que les images de visage. Bien que des méthodes telles que Disco Diffusion et DALL·E 2 puissent éditer n'importe quelle image, elles nécessitent d'énormes données et ressources informatiques pour entraîner leurs modèles génératifs correspondants.
Il existe actuellement très peu de solutions qui ne s'appuient pas sur des modèles génératifs, comme CLIPstyler (Kwon et Ye 2022). Lors de l'optimisation, CLIPstyler divisera l'image à éditer en patchs aléatoires et utilisera les conseils CLIP sur chaque patch pour renforcer les contraintes sur les détails de l'image. Le problème est que chaque patch reflétera indépendamment la sémantique définie par le texte d'entrée. Par conséquent, cette solution ne peut effectuer qu'un transfert de style, mais ne peut pas effectuer une édition sémantique globale de haut niveau de l'image.
Différent des méthodes de domaine de pixels ci-dessus, la solution CLIPVG proposée par NetEase Interactive Entertainment AI Lab utilise les caractéristiques des graphiques vectoriels pour contraindre les détails de l'image afin de remplacer le modèle génératif. CLIPVG peut prendre en charge n'importe quelle image d'entrée et peut effectuer une édition d'image à usage général. Sa sortie est un graphique vectoriel au format SVG standard, qui n'est pas limité par la résolution.
Certains travaux existants envisagent la génération de graphiques vectoriels guidés par texte, tels que CLIPdraw (Frans, Soros et Witkowski 2021), StyleCLIPdraw (Schaldenbrand, Liu et Oh 2022), etc. Une approche typique consiste à combiner CLIP avec un moteur de rendu vectoriel différenciable, à partir de graphiques vectoriels initialisés de manière aléatoire et à se rapprocher progressivement de la sémantique représentée par le texte. Le moteur de rendu vectoriel différenciable utilisé est Diffvg (Li et al. 2020), qui peut rastériser les graphiques vectoriels en images pixel grâce au rendu différenciable. CLIPVG utilise également Diffvg pour établir la connexion entre les images vectorielles et les images pixel. Différent des méthodes existantes, CLIPVG se concentre sur la façon d'éditer des images existantes plutôt que de les générer directement.
Étant donné que la plupart des images existantes sont des images en pixels, elles doivent être vectorisées avant de pouvoir être modifiées à l'aide des fonctionnalités de graphiques vectoriels. Les méthodes de vectorisation existantes incluent Adobe Image Trace (AIT), LIVE (Ma et al. 2022), etc., mais ces méthodes ne prennent pas en compte les besoins d'édition ultérieurs. CLIPVG introduit plusieurs séries de méthodes d'amélioration de la vectorisation basées sur les méthodes existantes pour améliorer spécifiquement la robustesse de l'édition d'images.
Mise en œuvre technique
Le processus global de CLIPVG est illustré dans la figure ci-dessous. Tout d'abord, l'image du pixel d'entrée est soumise à une vectorisation multi-tours (Multi-round Vectorization) avec différentes précisions, où l'ensemble d'éléments vectoriels obtenu au i-ème tour est marqué comme Θi. Les résultats obtenus à chaque tour seront superposés en tant qu'objet d'optimisation et reconvertis dans le domaine des pixels via un rendu vectoriel différenciable (rasterisation différenciable). L'état de départ de l'image de sortie est la reconstruction vectorisée de l'image d'entrée, puis une optimisation itérative est effectuée dans la direction décrite dans le texte. Le processus d'optimisation calculera la perte ROI CLIP ( dans la figure ci-dessous) en fonction de la plage de zones et du texte associé de chaque ROI, et optimisera chaque élément vectoriel en fonction du dégradé, y compris les paramètres de couleur et les paramètres de forme.
L'ensemble du processus d'optimisation itératif peut être vu dans l'exemple ci-dessous, dans lequel le texte du guide est "Jocker, Heath Ledger" (Joker, Heath Ledger).
Vectorisation
Un graphique vectoriel peut être défini comme une collection d'éléments vectoriels, où chaque élément vectoriel est contrôlé par une série de paramètres. Les paramètres de l'élément vectoriel dépendent de son type. En prenant comme exemple la courbe remplie, ses paramètres sont , où est le paramètre du point de contrôle et est le paramètre de couleur et d'opacité RVB. . Il existe certaines contraintes naturelles lors de l'optimisation des éléments vectoriels. Par exemple, la couleur à l'intérieur d'un élément est toujours cohérente et la relation topologique entre ses points de contrôle est également fixe. Ces fonctionnalités compensent le manque de contraintes détaillées de CLIP et peuvent grandement améliorer la robustesse du processus d'optimisation.
Théoriquement, CLIPVG peut être vectorisé en utilisant n'importe quelle méthode existante. Mais des recherches ont montré que cela peut entraîner plusieurs problèmes lors de l’édition ultérieure des images. Tout d'abord, la méthode de vectorisation habituelle peut garantir que les éléments vectoriels adjacents de l'image sont parfaitement alignés dans l'état initial, mais chaque élément se déplacera avec le processus d'optimisation, provoquant l'apparition de « fissures » entre les éléments. Deuxièmement, parfois l'image d'entrée est relativement simple et ne nécessite qu'un petit nombre d'éléments vectoriels pour s'adapter, tandis que l'effet de description textuelle nécessite des détails plus complexes à exprimer, ce qui entraîne le manque de matières premières nécessaires (éléments vectoriels) lors de l'édition de l'image.
En réponse aux problèmes ci-dessus, CLIPVG a proposé une stratégie de vectorisation multi-tours. A chaque tour, les méthodes existantes seront appelées pour obtenir un résultat vectorisé, qui sera superposé en séquence. Chaque tour améliore la précision par rapport au tour précédent, c'est-à-dire vectorise avec des blocs d'éléments vectoriels plus petits. La figure ci-dessous reflète la différence de précision lors de la vectorisation.
L'ensemble des éléments vectoriels obtenus par le i-ème tour de vectorisation peut être exprimé par , et l'ensemble des éléments vectoriels obtenu en superposant les résultats de tous les tours est marqué par , qui est l'objet d'optimisation totale de CLIPVG .
Fonction de perte
Semblable à StyleGAN-NADA et CLIPstyler, CLIPVG utilise une perte CLIP directionnelle pour mesurer la correspondance entre l'image générée et le texte de description, qui est défini comme suit,
où représente la description du texte saisi. est un texte de référence fixe, défini sur "photo" dans CLIPVG, et est l'image générée (l'objet à optimiser). est l’image originale. et sont respectivement les codecs texte et image de CLIP. ΔT et ΔI représentent respectivement les directions spatiales latentes du texte et de l’image. Le but de l'optimisation de cette fonction de perte est de rendre la direction du changement sémantique de l'image après édition conforme à la description du texte. Le t_ref fixe est ignoré dans les formules suivantes. Dans CLIPVG, l'image générée est le résultat d'un rendu différenciable de graphiques vectoriels. De plus, CLIPVG prend en charge l'attribution de différentes descriptions textuelles à chaque ROI. À ce moment-là, la perte CLIP directionnelle sera convertie en la perte CLIP ROI suivante,
où Ai est la i-ème zone ROI et est sa description textuelle associée. R est un moteur de rendu vectoriel différentiable et R(Θ) est l'intégralité de l'image rendue. est l'intégralité de l'image d'entrée. représente une opération de recadrage, c'est-à-dire recadrer la zone de l'image I. CLIPVG prend également en charge un schéma d'amélioration basé sur des correctifs similaire à celui de CLIPstyler, c'est-à-dire que plusieurs correctifs peuvent être recadrés de manière aléatoire à partir de chaque ROI, et la perte CLIP est calculée pour chaque correctif en fonction de la description textuelle correspondant à la ROI.
La perte totale est la somme des pertes ROI CLIP de toutes les régions, c'est-à-dire
Une région ici peut être une ROI, ou un patch recadré à partir de la ROI. est le poids perdu correspondant à chaque zone.
CLIPVG optimisera l'ensemble de paramètres vectoriels Θ en fonction de la fonction de perte ci-dessus. Lors de l'optimisation, vous pouvez également cibler uniquement un sous-ensemble de Θ, tel que les paramètres de forme, les paramètres de couleur ou certains éléments vectoriels correspondant à une zone spécifique.
Dans la partie expérimentale, CLIPVG a d'abord vérifié l'efficacité de plusieurs séries de stratégies de vectorisation et d'optimisation de domaines vectoriels par le biais d'expériences d'ablation, puis l'a comparé aux lignes de base existantes et a finalement démontré des scénarios d'application uniques.
Expérience d'ablation
L'étude a d'abord comparé l'effet de la stratégie de vectorisation à plusieurs tours (Multi-round) et d'un seul tour de vectorisation (One-shot). La première ligne de la figure ci-dessous est le résultat initial après vectorisation et la deuxième ligne est le résultat modifié. où Nc représente la précision de la vectorisation. On peut voir que plusieurs cycles de vectorisation améliorent non seulement la précision de la reconstruction de l'état initial, mais éliminent également efficacement les fissures entre les éléments vectoriels édités et améliorent les performances des détails.
Afin d'étudier plus en profondeur les caractéristiques de l'optimisation du domaine vectoriel, l'article compare les effets de CLIPVG (méthode du domaine vectoriel) et de CLIPstyler (méthode du domaine pixel) en utilisant différentes tailles de patch pour l'amélioration. La première ligne de la figure ci-dessous montre l'effet de CLIPVG en utilisant différentes tailles de patch, et la deuxième ligne montre l'effet de CLIPstyler. Sa description textuelle est "Doctor Strange". La résolution de l'image entière est de 512x512. On peut voir que lorsque la taille du patch est petite (128x128 ou 224x224), CLIPVG et CLIPstyler afficheront les couleurs rouges et bleues représentatives de "Doctor Strange" dans de petites zones locales, mais la sémantique de l'ensemble du visage ne change pas de manière significative. . En effet, le guidage CLIP ne s'applique pas actuellement à l'ensemble de l'image. Lorsque CLIPVG augmente la taille du patch à 410x410, vous pouvez voir des changements évidents dans l'identité des personnages, y compris les coiffures et les traits du visage, qui sont effectivement modifiés en fonction des descriptions textuelles. Si l'amélioration du patch est supprimée, l'effet d'édition sémantique et la clarté des détails seront réduits, indiquant que l'amélioration du patch a toujours un effet positif. Contrairement à CLIPVG, CLIPstyler ne peut toujours pas modifier l'identité du personnage lorsque le patch est plus grand ou que le patch est supprimé, mais modifie uniquement la couleur globale et certaines textures locales. La raison en est que la méthode d'agrandissement de la taille du patch dans le domaine des pixels perd les contraintes sous-jacentes et tombe dans un optimal local. Cet ensemble de comparaisons montre que CLIPVG peut utiliser efficacement les contraintes sur les détails dans le domaine vectoriel et les combiner avec la portée CLIP plus grande (taille du patch) pour obtenir une édition sémantique de haut niveau, ce qui est difficile à réaliser avec les méthodes du domaine pixel.
Expérience comparative
Dans l'expérience comparative, l'étude a d'abord comparé CLIPVG avec deux méthodes de domaine de pixels capables de modifier n'importe quelle image, y compris Disco Diffusion et CLIPstyler, comme vous pouvez le voir dans l'image ci-dessous. Pour l'exemple de "Autoportrait de Vincent van Gogh", CLIPVG peut modifier à la fois l'identité du personnage et le style de peinture, tandis que la méthode du domaine de pixels ne peut réaliser que l'un d'entre eux. Pour "Gypsophila", CLIPVG peut modifier le nombre et la forme des pétales avec plus de précision que la méthode de base. Dans les exemples de "Jocker, Heath Ledger" et "A Ford Mustang", CLIPVG peut également modifier de manière robuste la sémantique globale. Relativement parlant, Disco Diffusion est sujette à des défauts locaux, tandis que CLIPstyler n'ajuste généralement que la texture et la couleur.
(De haut en bas : peinture de Van Gogh, gypsophile, Heath Ledger Joker, Ford Mustang)
Les chercheurs ont ensuite comparé les images dans des domaines spécifiques (à Prendre le visage humain comme un exemple), les méthodes de domaine de pixels incluent StyleCLIP, DiffusionCLIP et StyleGAN-NADA. En raison du champ d’utilisation restreint, la qualité de génération de ces méthodes de base est généralement plus stable. Dans cet ensemble de comparaisons, CLIPVG montre encore que l'effet n'est pas inférieur aux méthodes existantes, notamment que le degré de cohérence avec le texte cible est souvent plus élevé.
(De haut en bas : Doctor Strange, White Walkers, Zombies)
En utilisant les caractéristiques des graphiques vectoriels et les fonctions de perte de niveau ROI, CLIPVG peut prendre en charge une série de gameplay innovants difficiles à réaliser avec les méthodes existantes. Par exemple, l'effet d'édition de l'image à plusieurs personnes présentée au début de cet article est obtenu en définissant différentes descriptions textuelles de niveau ROI pour différents personnages. Le côté gauche de l'image ci-dessous est l'entrée, le milieu est le résultat de l'édition de la description textuelle au niveau ROI et le côté droit est le résultat du fait que l'image entière n'a qu'une seule description textuelle globale. Les descriptions correspondant aux zones A1 à A7 sont 1. "Justice League Six", 2. "Aquaman", 3. "Superman", 4. "Wonder Woman"), 5. "Cyborg" (Cyborg), 6. "Flash , DC Superhero" (The Flash, DC) et 7. "Batman" (Batman). On peut voir que la description au niveau ROI peut être éditée séparément pour chaque personne, mais la description globale ne peut pas générer de caractéristiques d'identité individuelles efficaces. Étant donné que les ROI se chevauchent, il est difficile pour les méthodes existantes d'obtenir la coordination globale de CLIPVG même si chaque caractère est édité individuellement.
CLIPVG peut également obtenir une variété d'effets d'édition spéciaux en optimisant certains paramètres vectoriels. La première ligne de l'image ci-dessous montre l'effet de la modification d'une zone partielle uniquement. La deuxième ligne montre l'effet de génération de police consistant à verrouiller les paramètres de couleur et à optimiser uniquement les paramètres de forme. La troisième ligne est à l'opposé de la deuxième ligne, atteignant l'objectif de recoloration en optimisant uniquement les paramètres de couleur.
(de haut en bas : édition de sous-zone, stylisation de la police, changement de couleur de l'image)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!