Rédaction
Date
Partenaire(s)
L'industrie du jeu vidéo cherche constamment à améliorer son efficacité, notamment en matière de qualité graphique. Le CDRIN y contribue à travers des initiatives telles que le projet de R&D "Libérer la créativité par l'intelligence artificielle: la clé de voûte du futur du divertissement", soutenu par le CRNSG. L'une des pistes de recherche visait à générer des patrons de couture à partir de modèles 3D pour des ajustements de costumes plus rapides. En utilisant l'IA, cette approche open-source pourrait rationaliser les processus de conception et compléter des outils comme Marvelous Designer. Dans cet article, l'artiste technique Christophe Marois explique son approche en utilisant le modèle NeuralTailor et comment il a mis au point Costumy, un prototype open-source de pipeline automatisé.
La création artistique exige souvent des connaissances qui dépassent notre portée immédiate. Dans ces moments-là, les références et l’expertise spécifique deviennent indispensables. Si on vous demandait de dessiner un vélo de mémoire, il ressemblerait probablement à deux roues reliées par un enchevêtrement confus. Cependant, si vous essayiez de le dessiner à nouveau en utilisant une image comme référence, ou avec l’aide d’un concepteur de vélos, le résultat pourrait réellement ressembler à un vrai vélo (félicitations!).
Les mêmes principes s’appliquent aux jeux vidéo, à l’art et à l’animation. Certains artistes 3D peuvent exceller dans la création de personnages 3D, mais peinent à maîtriser l’art nuancé de la conception et de l’ajustement de vêtements précis pour ces derniers. D’autres peuvent être très compétent.es dans la création de vêtements complexes, mais trouvent le processus de leur adaptation à plusieurs personnages chronophage ou peu intéressant.
Cette complexité a incité le CDRIN à explorer des solutions innovantes qui pourraient apporter de la valeur au monde des avatars 3D avec des vêtements authentiques. Mais comme le CDRIN n’avait pratiquement aucune expérience dans la création de vêtements, nous avons sollicité les conseils d’une patronnière professionnelle et experte en mode, Anakim Gosselin. Aux côtés de Sherry Taheri (chercheuse en IA), Yann Roubeau (expert) et moi-même, Christophe Marois (artiste technique), nous avons formé une équipe collaborative pour relever ce défi technique.
Le défi technique: Faire le lien entre la conception de vêtements 2D et 3D
Bien que le drapé de vêtements virtuels, comme s’il s’agissait d’une sculpture gréco-romaine, soit une pratique courante dans le monde 3D, il est généralement plus efficace de travailler avec des patrons 2D réels. L’utilisation de patrons facilite l’obtention d’une représentation plus réaliste, en particulier pour l’animation de vêtements. Cette méthode permet également d’ajuster et de modifier les vêtements comme dans la réalité. L’inconvénient de cette approche basée sur les patrons est qu’elle nécessite un patron précis ; sans cela, le résultat peut ressembler à un assemblage en carton collé…
Nous avons cherché une solution qui permettrait aux artistes 3D d’extraire des patrons de leurs vêtements sculptés. Notre exploration nous a menés à NeuralTailor, un modèle open-source conçu pour estimer les patrons 2D à partir de vêtements 3D scannés. Le modèle fonctionnait dans les paramètres établis 🖖🏻, mais ces paramètres n’étaient pas optimaux. NeuralTailor était entraîné sur des données qui ne correspondaient pas aux normes de l’industrie, selon Le Grand Costumier, notre police de la mode.
Nous avons décidé qu’améliorer NeuralTailor serait une bonne idée, car il fonctionnerait également avec des maillages 3D réguliers, et pas seulement ceux scannés.
Méthodologie: Création d’un ensemble de données complet
Exigences de l’ensemble de données
Pour comprendre les subtilités de NeuralTailor, nous devons d’abord examiner la complexité des données requises. TailorNet est entraîné sur un ensemble de données qui associe les patrons de vêtements 2D à leurs équivalents 3D simulés, garantissant un drapé et un ajustement réalistes.
Les patrons doivent respecter plusieurs contraintes clés :
- Normes de l’Industrie : Les patrons 2D doivent suivre les conventions établies en matière de conception de vêtements.
- Ajustement et Stabilité 3D : Lorsqu’ils sont simulés sur un corps 3D, les vêtements doivent se comporter de manière réaliste (par exemple, les jupes ne doivent pas s’effondrer au sol).
- Variabilité de la Conception : L’ensemble de données doit représenter divers types de vêtements (chemises, pantalons, jupes, manteaux).
- Variabilité du Style : Inclure divers éléments de conception (variations d’encolure, différents types de manches et longueurs de vêtements).
- Contraintes Techniques : Les patrons doivent respecter les contraintes techniques du modèle (limitations mathématiques et informatiques du projet).
- Adaptabilité à la Forme du Corps : Si NeuralTailor doit se généraliser au-delà d’un seul type de corps, les vêtements doivent être simulés sur plusieurs formes de corps 3D.
Deux Approches Innovantes
1. Flux de travail manuel
Pour lancer le projet, j’ai proposé un flux de travail semi-manuel afin de créer un ensemble de données de patrons de haute qualité. Cet ensemble de données initial, conforme aux normes de l’industrie, comprendrait divers modèles simulés sur différentes formes de corps 3D, sans être ajustés sur mesure.
Cette approche utilise Garment-Pattern-Generator, un outil développé par le créateur de NeuralTailor, pour automatiser le processus de simulation 3D.
Le flux de travail suivait cette structure :
- Anakim conçoit de nouveaux patrons en utilisant des outils standard de l’industrie, en respectant des directives spécifiques pour la compatibilité avec NeuralTailor. Chaque patron est créé en deux tailles (petite et grande).
- Je (Christophe) convertis les patrons au format compatible avec NeuralTailor.
- Un script personnalisé augmente l’ensemble de données en interpolant entre les tailles.
- Les patrons sont simulés en 3D à l’aide de Garment-Pattern-Generator.
Ensuite, pour augmenter l’ensemble de données avec des variations de style :
- Anakim modifie les patrons existants, en introduisant des variations (par exemple, en convertissant un col en V en un col en U).
- Je convertis les patrons mis à jour dans un format compatible avec NeuralTailor.
- Le script interpole maintenant entre les tailles et les styles, élargissant ainsi davantage l’ensemble de données.
- Garment-Pattern-Generator traite les patrons mis à jour en 3D.
2. Pipeline automatique
La pipeline automatique était ma deuxième approche pour générer un ensemble de données plus vaste. Elle suivait les mêmes exigences fondamentales que le flux de travail manuel, mais introduisait de nouveaux défis, ainsi que des possibilités passionnantes.
Comment ça marche:
- Sélectionner un corps 3D et ajuster sa morphologie.
- Prendre des mesures corporelles spécifiques.
- Générer un patron ajusté en utilisant freesewing.org, basé sur ces mesures.
- Nettoyer et convertir les patrons au format compatible avec NeuralTailor.
- Transformer le patron en maillages 3D.
- Simuler les maillages sur le corps 3D pour créer un vêtement drapé.
- Répéter le processus avec des formes de corps et/ou des styles/options de patrons aléatoires.
Pourquoi c’est important
Cette pipeline utilise freesewing.org, un projet gratuit et open source qui génère des patrons directement à partir de mesures. Contrairement au flux de travail manuel, qui produisait principalement des vêtements surdimensionnés ou sous-dimensionnés sur un nombre limité de corps, cette méthode crée des vêtements sur mesure qui s’adaptent précisément à une gamme diversifiée de morphologies humaines 3D.
La pipeline automatique est finalement devenue un prototype appelé Costumy, l’une des choses les plus ambitieuses (et franchement, les plus cool) que j’aie jamais codées.
Costumy: Un prototype open source
Costumy, développé comme une alternative à la pipeline manuelle, est un prototype Python qui gère tout, de la mesure des corps 3D au drapé des vêtements à partir de patrons 2D. Au-delà de la génération d’ensembles de données, Costumy a un potentiel plus large : de la population de scènes de films avec des foules bien habillées à l’inspiration pour la génération d’avatars.
Voici quelques scénarios où Costumy pourrait être utilisé, en tout ou en partie :
- Production de Films d’Animation: Un studio souhaite peupler les scènes d’arrière-plan avec divers personnages portant des vêtements bien ajustés.
- Production d’Effets Visuels (VFX): Une équipe doit habiller la réplique 3D de son acteur réel. En entrant les mesures réelles de l’acteur, Costumy génère un vêtement 3D qui correspond à la fois à son homologue réel et numérique.
- Développement de Jeux Indépendants: Un petit studio a besoin de vêtements bien ajustés qui s’intègrent de manière transparente à un créateur de personnages personnalisé pendant la production.
- Installation Muséale Interactive: Une exposition axée sur la technologie estime les mesures corporelles des visiteurs et utilise Costumy pour générer des avatars 3D sur mesure portant un style de vêtements spécifique.
- Artiste 3D Indépendant: Un artiste indépendant concevant un personnage humanoïde 3D a besoin de vêtements réalistes et sur mesure pour améliorer son modèle.
- Création de Patrons et Prototypage: Un patronnier souhaite visualiser un nouveau design en 3D avant la production physique. Bien que Costumy puisse aider, des logiciels comme Marvelous Designer pourraient mieux convenir à ce flux de travail.
- Recherche et Analyse de Mesures: Un projet de recherche nécessite des mesures précises de maillages 3D (par exemple, des modèles de corps SMPL) adaptées à des spécifications personnalisées.
Costumy est une partie fascinante de cette recherche, car il rassemble de puissants projets open source dans une pipeline flexible et modulaire. Il peut être utilisé dans son ensemble, ou divisé en composants individuels, ce qui le rend très adaptable.
Et la meilleure partie? Costumy est aussi open source et disponible sur Github! N’importe qui peut remplacer différentes parties, qu’il s’agisse du modèle de corps 3D ou de la méthode de génération de patrons, pour l’adapter à ses besoins spécifiques.
La collaboration qui a permis de concrétiser le projet
Je tiens à souligner l’importance de la collaboration pour moi et comment elle a rendu ce projet possible.
L’ensemble du pipeline a été construit sur des composants open source – il n’existerait tout simplement pas autrement. En fait, lors du développement de la création du pipeline automatique, nous avons pris une décision clé: nous nous sommes éloignés de GarmentPatternGenerator car il s’appuyait sur Maya et Qualoth, deux technologies payantes et fermées. Au lieu de cela, nous avons construit notre propre alternative entièrement open source.
Une grande partie de ce succès est due à l’implication d’Anakim Gosselin, qui a joué un rôle essentiel en aidant notre équipe à naviguer dans les règles de la création de patrons. Elle a conçu les patrons pour le flux de travail manuel et a trouvé des solutions astucieuses aux limitations techniques auxquelles nous étions confrontés.
Un défi majeur lors de la phase de prototype était que nous ne pouvions pas créer de patrons nécessitant qu’un seul morceau de tissu soit cousu sur lui-même (comme les manches de chemise traditionnelles). Anakim s’est adaptée en concevant des chemises sans manches, et a même imaginé des patrons innovants où les manches étaient intégrées de manière transparente aux panneaux avant et arrière – une solution techniquement compatible avec notre prototype et conforme aux normes de l’industrie.
Résultats de NeuralTailor
Si vous vous en souvenez, l’un des principaux objectifs de ce projet était d’améliorer NeuralTailor, dont l’ensemble de données d’origine ne correspondait pas tout à fait aux normes de l’industrie. Sherry a entraîné le modèle en utilisant l’ensemble de données de la pipeline manuelle, puis a effectué des tests pour évaluer ses performances. Regardez l’image ci-dessous: elle a été générée en alimentant l’IA avec un vêtement 3D créé à partir d’un patron 2D.
Maintenant, testons notre idée initiale: alimenter NeuralTailor avec un maillage 3D brut créé par un artiste, le convertir en un patron 2D, puis générer un vêtement 3D à partir de celui-ci. Il s’avère que ça marche!
Cela dit, nous pouvons déjà constater une nette amélioration de l’estimation des patrons. En comparant la version initiale de NeuralTailor avec notre modèle réentraîné, la différence est évidente : notre ensemble de données l’a considérablement amélioré.
« Malgré un ensemble de données limité, le modèle NeuralTailor fonctionne bien sur les types de vêtements connus. Avec nos outils existants pour la génération de données et l’intégration dans des logiciels comme Blender, l’amélioration de la solution sera efficace. L’expansion de l’ensemble de données est essentielle pour libérer toute sa valeur. » – Sherry Taheri, AI Researcher, CDRIN
Néanmoins, notre recherche s’est terminée avant que nous puissions vraiment pousser les choses plus loin. Nous n’avons pas eu le temps d’entraîner NeuralTailor avec un ensemble de données généré par Costumy, et la plupart de nos tests étaient limités aux chemises (plus quelques pantalons). Donc, affirmer que NeuralTailor fonctionne désormais parfaitement serait exagéré.
Ce que nous savons: ça marche, pour les chemises. Ça pourrait bien fonctionner pour les pantalons, mais nous n’avons pas assez de données pour le dire avec certitude. Il y a encore beaucoup de place pour l’amélioration, et beaucoup plus de recherches à faire !
Impact et applications futures
Le principal enseignement de cette recherche est que nous avons réussi à améliorer NeuralTailor en créant un ensemble de données conforme aux normes de l’industrie. De plus, nous avons maintenant Costumy, un prototype fonctionnel qui peut générer un ensemble de données encore plus vaste de vêtements ajustés et non ajustés. Plus nous affinons Costumy, qui a déjà des applications concrètes solides, plus nous élargissons la qualité et la diversité des données compatibles avec NeuralTailor.
NeuralTailor lui-même a le potentiel d’évoluer en un puissant outil d’estimation de patrons. Il pourrait être la base d’une fonctionnalité qui ajuste de manière transparente les vêtements sur des personnages 3D ou, comme nous l’avions envisagé, un assistant intelligent pour les artistes 3D.
Costumy est une solution open source disponible sur GitHub.