Un abonnement JoVE est requis pour visualiser ce contenu. Connectez-vous ou commencez votre période d'essai gratuite.

Article de méthode

Un protocole d'apprentissage des caractéristiques d'image basé sur la topologie des composants vestimentaires au niveau de l'image pour la recherche de références de conception

45 vues

⸱

DOI :

10.3791/72103

⸱

1 septembre 2026

 ,  ,  , 

Dans cet article

Résumé

Ce protocole génère des représentations de vêtements prenant en compte la structure en intégrant l'analyse sémantique des composants, la modélisation de la topologie, un encodage des caractéristiques à double flux et une fusion guidée par la structure. Il permet aux chercheurs en vision par ordinateur et en confection de réaliser des recherches de vêtements et des comparaisons avec des modèles de conception selon l'organisation des composants et la disposition de la silhouette, plutôt que selon la couleur ou la texture.

Résumé

Les méthodes de recherche d'images de vêtements mettent souvent l'accent sur la couleur et la texture, ce qui peut entraîner des confusions entre des vêtements ayant une apparence similaire mais des agencements de composants différents. Cette étude présente un protocole d'apprentissage de caractéristiques tenant compte des composants, destiné à la recherche d'images de vêtements et à la comparaison de références de conception. Le protocole analyse les régions sémantiques du vêtement, construit un graphe de composants au niveau de l'image, encode en parallèle l'apparence et les relations entre composants, puis fusionne ces deux représentations à l'aide de pertes liées à la cohérence structurelle, à la relation structurelle et à la discrimination structurelle. Les images DeepFashion2 sont standardisées à 512 x 512 pixels, analysées à l'aide de HRNet-W48, encodées avec ResNet-50 et une convolution sur graphe, puis évaluées par recherche structurelle et regroupement. Le modèle complet a atteint un indice de cohérence structurelle de 0,81, un indice de discrimination structurelle de 0,71, un Recall@5 de 89,2 %, une précision moyenne de 86,4 % et un coefficient de silhouette de 0,74. Ce protocole permet la recherche de structures de vêtements, la comparaison structurelle et la localisation des différences lorsque l'apparence de surface ne reflète pas fidèlement la construction du vêtement.

Introduction

Avec l'intégration croissante de la vision par ordinateur et de l'intelligence artificielle dans l'industrie du vêtement, l'analyse d'images de vêtements s'est progressivement étendue à partir de tâches de reconnaissance basiques vers des analyses orientées conception et des systèmes d'aide à la décision1,2. Dans le processus de conception textile, la distinction entre différents projets repose davantage sur la composition structurelle et les relations entre composants que sur de simples différences d'apparence, ce qui fait de l'expressivité structurelle des caractéristiques d'image dans l'assistance à la conception un facteur clé influant sur l'efficacité de l'analyse3,4. Toutefois, la plupart des méthodes visuelles existantes s'appuient encore principalement sur la texture, la couleur et les contours globaux, ce qui rend difficile une analyse systématique des hiérarchies vestimentaires et des différences de construction durant le processus de conception5,6. Par conséquent, le développement d'une méthode d'apprentissage de caractéristiques d'images sensible à la structure est essentiel pour améliorer l'objectivité et la cohérence de l'analyse de conception7. Ce protocole est adapté lorsque les vêtements présentent des couleurs, des textures ou des contours globaux similaires, mais diffèrent par l'organisation des composants, les schémas de connexion ou la disposition spatiale. Dans ces conditions, les représentations centrées sur l'apparence ont tendance à rapprocher dans l'espace des caractéristiques des modèles structurellement différents, ce qui affaiblit la fiabilité de la recherche et de la comparaison de conceptions. Ce protocole traite des tâches où les relations entre les composants du vêtement constituent la base principale de la recherche structurelle, de l'évaluation de la conception et de l'analyse des différences localisées.

En ce qui concerne l'échelle des données, la complexité des modèles et la diversité des tâches, les recherches actuelles sur l'analyse et la compréhension automatiques des images de vêtements ont réalisé des progrès significatifs8,9. Toutefois, dans les applications pratiques, les informations structurelles des vêtements sont souvent implicitement incluses dans les résultats de segmentation ou de détection et ne sont pas prises en compte lors de la modélisation unifiée à l'étape d'apprentissage des caractéristiques, ce qui entraîne un manque de distinction stable entre différentes conceptions structurelles dans l'espace des caractéristiques10,11. Les relations spatiales, les contraintes hiérarchiques et les structures topologiques entre les composants des vêtements ne sont pas explicitement codées, rendant difficile pour les représentations de caractéristiques de refléter les différences structurelles au niveau de la conception12,13. L'absence d'une modélisation structurelle explicite limite la finesse analytique et la fiabilité des décisions basées sur les caractéristiques des images de vêtements dans les scénarios d'assistance à la conception, constituant un obstacle majeur au développement de systèmes de conception intelligents dotés d'une compréhension sémantique plus approfondie14.

Pour soutenir l'apprentissage et l'analyse des caractéristiques des images de vêtements, des études connexes ont exploré plusieurs orientations techniques15. Les méthodes de segmentation sémantique et d'analyse des vêtements ont permis une délimitation fine des régions et composants vestimentaires grâce à une annotation au niveau des pixels, fournissant ainsi une base pour l'extraction d'informations structurelles16,17. Les méthodes de recherche de vêtements par requête d'image ont intégré la fusion de topologie et de couleur-texture, l'alignement d'attention globale et locale, l'analyse des vêtements, la représentation multi-échelle et multi-granularité, ainsi que l'attention résiduelle avec sélection de caractéristiques. Ces méthodes répondent à la recherche dans des catalogues, à la correspondance consommateur-magasin, à la recherche de produits inter-domaines et à la recherche visuelle en commerce électronique. Leurs contextes d'application sont étroitement liés à la recherche de références de conception, car chaque méthode classe les images de vêtements selon une requête visuelle, bien que leurs représentations ne préservent pas systématiquement les relations d'adjacence typée entre composants ni les relations d'ordre vertical tout au long de la fusion des caractéristiques18,19,20. Par ailleurs, les recherches portant sur les scénarios de conception et de recommandation ont progressivement introduit la fusion multimodale, la modélisation des relations et l'analyse du style, élargissant ainsi les frontières d'application des caractéristiques visuelles des vêtements21,22. Bien que ces méthodes aient réalisé des progrès dans leurs tâches respectives, leurs caractéristiques fondamentales reposent encore largement sur des descriptions d'apparence, et l'information structurelle n'a pas été modélisée de manière uniforme comme une contrainte intrinsèque pour l'apprentissage des caractéristiques, ce qui rend difficile la satisfaction des besoins d'assistance à la conception vestimentaire en matière d'alignement structurel et de comparaison structurelle23.

Pour remédier à la capacité insuffisante de différenciation structurelle dans l'assistance à la conception de vêtements, cet article propose une méthode d'apprentissage de caractéristiques d'image fondée sur la perception de la structure du vêtement. Cette méthode intègre les résultats d'analyse du vêtement et les informations structurelles clés dès l'étape d'entrée de l'image du vêtement, en modélisant conjointement les régions des composants du vêtement, leurs relations spatiales et leurs connexions hiérarchiques. Le codage des relations structurelles et l'alignement des caractéristiques visuelles intègrent explicitement les contraintes du vêtement dans le processus d'apprentissage des caractéristiques, produisant ainsi une représentation qui préserve à la fois l'apparence visuelle et la cohérence structurelle. Cette caractéristique décrit les différences structurelles des vêtements au sein d'un espace unifié, fournissant une base stable pour l'analyse ultérieure de la similarité structurelle, le regroupement structurel et la prise de décision assistée par la conception, atténuant ainsi le problème de confusion des caractéristiques causé par l'absence de modélisation structurelle dans les méthodes existantes. Contrairement aux stratégies générales de recherche visuelle qui traitent l'information structurelle comme des attributs auxiliaires faiblement connectés, ce cadre établit un mécanisme de modulation des caractéristiques centré sur les relations topologiques. Ce mécanisme encourage la représentation apprise à suivre l'organisation visible des régions du vêtement tout en réduisant les réponses dominées par la texture. Chaque nœud du graphe représente une région sémantique au niveau de l'image, et chaque relation du graphe décrit une adjacence visible ou une position relative normalisée dans le plan de l'image. L'intégration obtenue permet de comparer l'agencement des composants et l'organisation de la silhouette entre différentes images de vêtements. Ces régions et relations ne correspondent ni aux pièces des patrons de couture, ni aux assemblages de coutures, ni aux repères de construction, ni aux paramètres de gradation. Comparé aux méthodes de recherche fondées sur l'apparence, le protocole conserve tout au long de l'apprentissage des caractéristiques une topologie explicite des composants, plutôt que de traiter l'information structurelle comme un résultat d'analyse en aval. Comparé aux approches qui introduisent des indices structurels uniquement comme entrées auxiliaires, le codage à double flux et la fusion conforme à la topologie préservent les relations géométriques tout en atténuant les réponses dominées par la texture. La représentation obtenue permet la recherche de structures de vêtements, le regroupement structurel, le tri des références de conception et l'analyse localisée des différences de conception, tout en fournissant des éléments probants au niveau des composants, restant ainsi interprétables dans le processus de conception du vêtement. Les recherches liées à ce protocole couvrent l'apprentissage des caractéristiques d'images vestimentaires, la modélisation de la structure des vêtements, la représentation sensible à la structure et l'analyse visuelle pour l'assistance à la conception de vêtements.

Au niveau de la représentation des caractéristiques, la recherche sur les images de vêtements s'est longtemps concentrée sur la modélisation de l'apparence, l'extraction de caractéristiques profondes et la représentation multi-échelle24,25. Les premiers travaux utilisaient des réseaux neuronaux convolutifs pour effectuer une modélisation bout-en-bout des images de vêtements dans des tâches de classification, de recherche et d'appariement de similarité26,27. Par la suite, la fusion de caractéristiques multi-échelle et l'apprentissage inter-domaines ont été introduits afin d'atténuer les différences entre les images de vêtements prises sous différents angles de vue, poses et conditions de prise de vue28,29. Dans les tâches de recherche, des mécanismes d'attention et des stratégies de compression de caractéristiques ont été utilisés pour améliorer la discriminabilité des caractéristiques et l'efficacité computationnelle30,31. Ces méthodes permettent une discrimination fiable de l'apparence, mais leurs processus d'apprentissage de caractéristiques restent centrés sur l'information visuelle globale et manquent de représentations systématiques des structures internes des vêtements32. Les méthodes de recherche de mode composée combinent davantage une image de référence avec des instructions textuelles de modification, mais leur modalité de requête diffère du protocole basé uniquement sur l'image étudié ici. Elles sont passées en revue comme une direction connexe de recherche commerciale et ne sont pas incluses dans la comparaison quantitative, car une entrée textuelle supplémentaire empêcherait une évaluation contrôlée par requête d'image.

Alors que l'analyse des images de vêtements a évolué d'une discrimination basée sur l'apparence vers une compréhension structurelle, la recherche s'est de plus en plus concentrée sur la modélisation des composants des vêtements, des relations géométriques et des connexions topologiques33. Les réseaux de segmentation sémantique ont permis une analyse au niveau des composants vestimentaires grâce à la projection de caractéristiques et à des mécanismes d'attention multiples, fournissant ainsi une base fiable pour l'extraction d'informations structurelles34,35. Les méthodes de détection de points clés et de modélisation de la topologie structurelle ont davantage caractérisé la relation entre les contours des vêtements et les structures locales, améliorant ainsi la capacité du modèle à représenter les caractéristiques géométriques des vêtements36,37. Plusieurs études ont introduit des structures en graphes et des réseaux de raisonnement relationnel pour modéliser les relations entre les composants vestimentaires, améliorant ainsi la reconnaissance fine et les performances de recherche inter-domaines38,39. Ces travaux ont confirmé le rôle important de l'information structurelle dans l'analyse visuelle, mais la structure est principalement utilisée comme caractéristique auxiliaire ou résultat intermédiaire, et aucun système d'apprentissage de caractéristiques centré sur des contraintes structurelles n'a encore été développé40.

Dans le domaine de l'assistance à la conception de vêtements, ces avancées ont permis des recommandations de conception, l'analyse de style, la construction de systèmes interactifs et une évaluation de la conception axée sur la structure41. La recherche sur les systèmes de recommandation a permis l'association de vêtements et des recommandations personnalisées en intégrant des caractéristiques visuelles avec les préférences des utilisateurs42. Les travaux liés à l'assistance à la conception ont exploré de nouvelles voies pour un soutien intelligent en combinant des modèles génératifs, la modélisation de style et des mécanismes de collaboration homme-machine43. Les recherches sur l'essayage virtuel, la mesure des tailles et le transfert de style ont élargi l'application de l'analyse visuelle des vêtements tout au long du processus de conception et de production. Bien que ces études aient enrichi les formes techniques d'assistance à la conception de vêtements, leurs caractéristiques visuelles fondamentales sont encore principalement guidées par l'apparence et manquent d'une représentation unifiée de la structure de conception pour l'analyse. En revanche, cet article considère la structure du vêtement comme une contrainte centrale dans la représentation des caractéristiques et propose une méthode de représentation visuelle destinée à l'analyse structurelle dans l'assistance à la conception de vêtements.

Malgré ces avancées, les méthodes récentes en conception générative traitent souvent les conditions structurelles comme des matrices de guidage spatial approximatives au sein des processus de diffusion. Les cadres contemporains d'analyse structurelle représentent les topologies sous forme d'étiquettes sémantiques auxiliaires, distinctes de l'espace principal d'incorporation visuelle. Le cadre proposé modifie ce mécanisme en définissant une contrainte topologique fondée sur un a priori de graphe, qui module explicitement l'apprentissage des caractéristiques visuelles au niveau des composants. L'objectif de cohérence multi-niveau encourage les vêtements présentant des agencements similaires des composants au niveau de l'image à rester proches dans l'espace des caractéristiques, tout en séparant les vêtements ayant des organisations différentes des régions visibles. Cet objectif réduit la dépendance à la texture dans le contexte d'évaluation de la recherche, mais n'établit pas d'invariance face aux variations de matériau, de pose ou d'arrière-plan. Le protocole doit être choisi lorsque l'image d'entrée contient un vêtement individuel suffisamment visible, que les composants sémantiques conservent des limites identifiables, et que l'objectif analytique exige une comparaison structurelle au niveau des composants plutôt qu'une reconnaissance grossière par catégorie. Il s'adresse aux chercheurs en vision par ordinateur, aux chercheurs en conception textile et aux équipes de développement de vêtements numériques impliquées dans l'analyse visuelle sensible à la structure. Il n'est pas destiné aux tâches centrées uniquement sur la reconnaissance de couleur ou de matériau, ni aux images dans lesquelles la topologie du vêtement est largement masquée. Le protocole suivant présente le flux de travail allant de la préparation du jeu de données et de la cartographie des probabilités sémantiques à la construction des relations géométriques, au codage des caractéristiques en double flux, à la fusion guidée par la structure et à l'optimisation fondée sur la cohérence. L'ensemble du flux de travail est résumé dans Figure 1.

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Protocole

Cette étude utilise des ensembles de données d'images de vêtements accessibles au public et ne recrute pas de participants humains, ne collecte pas d'informations personnellement identifiables, n'effectue pas d'expériences sur des animaux et n'utilise pas de matériaux biologiques. L'approbation éthique institutionnelle et le consentement éclairé ne s'appliquent pas.

1. Environnement logiciel et configuration du projet

  1. Placez les fichiers du projet publiés dans un répertoire disposant d'un espace de stockage suffisant et ouvrez un terminal dans le répertoire racine du projet.
  2. Exécutez conda env create -f environment.yml pour créer l'environnement logiciel. Exécutez conda activate garment_structure pour activer l'environnement.
  3. Exécutez python --version, conda --version, pip show numpy, pip show torch, pip show torchvision, et nvidia-smi. Enregistrez la sortie complète des commandes dans le fichier software_versions.txt.
  4. Utilisez le même environnement enregistré pour le prétraitement, l'entraînement, l'inférence, la mesure de l'efficacité et l'évaluation. Notez dans le même fichier le nom du fichier du point de contrôle HRNet-W48, sa valeur SHA-256, l'identifiant des poids pré-entraînés ResNet-50 sur ImageNet et sa valeur SHA-256, la source de publication de DeepFashion2, ainsi que l'identifiant du dépôt du code source.
  5. Créez les répertoires data_raw, data_processed, parser_outputs, structural_priors, feature_outputs, checkpoints, logs et evaluation_results dans le répertoire racine du projet.
  6. Ouvrez le fichier configs/protocol.yaml. Saisissez le répertoire DeepFashion2 dans dataset_root, le chemin du point de contrôle HRNet-W48 pré-entraîné dans parser_checkpoint, et le répertoire de sortie du projet dans output_root.
  7. Définissez input_height à 512, input_width à 512, batch_size à 32, structural_categories_per_batch à 8, samples_per_category à 4, random_seed à 42, feature_dimension à 512, structural_constraint_weight à 1,0, structural_relationship_weight à 0,5, structural_discrimination_weight à 1,0, et separation_threshold à 0,3.
  8. Définissez l'optimiseur sur descente de gradient stochastique par mini-lots. Réglez initial_learning_rate à 0,0001, momentum à 0,9, weight_decay à 0,0005, max_epochs à 120, learning_rate_schedule à décroissance multi-étapes, et learning_rate_decay_factor à 0,1. Saisissez les époques de décroissance vérifiées utilisées par la configuration publiée dans learning_rate_milestones.
  9. Exécutez python tools/export_experiment_tables.py --config configs/protocol.yaml --output evaluation_results. Exportez la configuration complète du modèle vers le fichier model_setting_statistics.csv. Vérifiez que le fichier exporté contient la taille de l'image d'entrée, le format d'entrée, la composition du lot, l'optimiseur, le taux d'apprentissage, le planning du taux d'apprentissage, le nombre d'époques, la décroissance du poids, le momentum, les probabilités d'augmentation, la dimension des caractéristiques, les poids des pertes structurelles, le seuil de séparation, les graines aléatoires, la règle de sélection des points de contrôle et le nombre d'exécutions indépendantes.
  10. Résultat attendu : Vérifiez que l'environnement logiciel démarre sans erreurs de dépendance, que le fichier software_versions.txt contient l'enregistrement de l'environnement, que tous les répertoires de sortie existent, et que le fichier configs/protocol.yaml contient des chemins absolus valides et des paramètres numériques corrects.
    NOTE : Utilisez le même environnement et le même fichier de configuration lors du traitement des données, de l'entraînement du modèle, de l'inférence et de l'évaluation. Conservez une copie du fichier configs/protocol.yaml avec chaque point de contrôle entraîné.
    ​PROBLÈMES COURANTS : Si la création de l'environnement s'arrête parce qu'un paquet est indisponible, supprimez l'environnement incomplet, vérifiez les canaux de paquets dans environment.yml, puis recréez l'environnement. Si nvidia-smi ne détecte pas de processeur graphique, arrêtez l'entraînement du modèle et réinstallez le pilote graphique et le runtime CUDA. Si une erreur de répertoire apparaît pendant l'exécution, remplacez les chemins relatifs par des chemins absolus et vérifiez les autorisations d'écriture pour output_root.

2. Acceptation des images d'entrée, construction du jeu de données et prétraitement

  1. N'utilisez que les fichiers ayant les extensions JPG, JPEG ou PNG. Utilisez des images RVB 8 bits contenant un seul vêtement principal.
  2. Conservez les images RVB 8 bits ayant une largeur et une hauteur d'au moins 512 pixels et un vêtement principal identifiable. Rejetez une image lorsque la zone du vêtement au premier plan occupe moins de 15 % de la surface totale de l'image, lorsque plus de 5 % de la frontière du masque du vêtement coïncide avec la bordure de l'image, lorsqu'une région secondaire de vêtement dépasse 10 % de la surface du vêtement principal, lorsque la zone estimée occultée dépasse 20 % du masque du vêtement principal, ou lorsque la variance de la réponse du laplacien est inférieure à 100.
  3. Enregistrez l'identifiant de l'image, la valeur mesurée, la règle d'exclusion déclenchée et le chemin d'annotation dans excluded_samples.csv.
  4. Appliquez les règles d'acceptation des entrées aux images sources DeepFashion2 avant l'annotation structurelle et la partition des données. Enregistrez l'identifiant de chaque image acceptée ou rejetée, la répartition initiale du jeu de données, l'identifiant de l'annotation du vêtement, l'identifiant de la paire source, le rapport de la surface au premier plan, le rapport de contact avec la bordure, le rapport d'occultation, le score de flou et le statut final de conservation dans data_filtering_manifest.csv.
  5. Exécutez python tools/prepare_data.py --config configs/protocol.yaml.
  6. Lisez la boîte englobante du vêtement à partir de l'annotation du jeu de données. Étendez la boîte englobante de 5 % de sa largeur et de sa hauteur, sans dépasser les limites de l'image.
  7. Recadrez la région du vêtement, conservez son rapport d'aspect d'origine, ajoutez un remplissage nul pour former une image carrée, puis redimensionnez l'image remplie à 512 x 512 pixels.
  8. Convertissez l'image redimensionnée en un tenseur RVB à valeurs flottantes. Divisez chaque valeur de pixel par 255.
  9. Normalisez les canaux rouge, vert et bleu avec des moyennes respectives de 0.485, 0.456 et 0.406, et des écarts-types de 0.229, 0.224 et 0.225.
  10. Appliquez un retournement horizontal avec une probabilité de 0,5 et une suppression aléatoire avec une probabilité de 0,2 aux images d'entraînement. Appliquez uniquement un recadrage, un remplissage, un redimensionnement et une normalisation déterministes aux images de validation et de test.
  11. Exécutez python tools/assign_structural_levels.py --config configs/protocol.yaml une fois que les cartes de composants à sept canaux et les matrices de frontières partagées et d'ordre vertical ont été générées. Pour chaque image conservée, calculez le nombre de nœuds actifs, le nombre de composantes connexes, le nombre de nœuds de branchement, le nombre de cycles indépendants et la longueur du plus long chemin d'ordre vertical orienté. Définissez un nœud de branchement comme un nœud actif relié à au moins trois autres nœuds actifs dans le graphe de frontières partagées.
  12. Attribuez S1 lorsque le graphe est connexe, ne contient aucun cycle indépendant, ne contient aucun nœud de branchement et possède un chemin d'ordre vertical maximal d'au plus deux arêtes. Attribuez S2 lorsque le graphe est connexe, ne contient aucun cycle indépendant, contient exactement un nœud de branchement et possède un chemin d'ordre vertical maximal d'au plus deux arêtes. Attribuez S3 lorsque le graphe est connexe, ne contient aucun cycle indépendant et contient au moins deux nœuds de branchement ou un chemin d'ordre vertical d'au moins trois arêtes. Attribuez S4 lorsque le graphe est connexe, contient exactement un cycle indépendant et possède un chemin d'ordre vertical d'au plus deux arêtes. Attribuez S5 lorsque le graphe contient au moins deux cycles indépendants ou contient un cycle indépendant accompagné d'un chemin d'ordre vertical d'au moins trois arêtes.
  13. Appliquez les règles dans l'ordre S5, S4, S3, S2, puis S1, et enregistrez les statistiques du graphe calculées, le niveau attribué et l'identifiant de la règle dans structural_level_manifest.csv.
  14. Générez automatiquement les étiquettes préliminaires S1–S5 à partir des masques de composants et des matrices de relations enregistrées. Marquez un échantillon comme structurellement ambigu s'il contient plus d'une composante connexe dans son graphe de composants, si la probabilité moyenne maximale d'une composante à l'intérieur du premier plan du vêtement est inférieure à 0,60, si une composante active occupe moins de 1 % du premier plan du vêtement, ou si son niveau structurel attribué change lorsque la largeur de contact des frontières passe d'un pixel à deux pixels.
  15. Soumettez chaque échantillon ambigu à deux auteurs pour une inspection indépendante de l'image source, de la carte de composants, de la matrice de frontières partagées, de la matrice d'ordre vertical et du graphe préliminaire. Conservez l'étiquette si les deux inspections concordent. En cas de désaccord, soumettez l'échantillon à un troisième auteur et utilisez la décision majoritaire comme étiquette finale. Excluez un échantillon si aucune relation de composant stable n'est retrouvée après examen. Enregistrez l'étiquette automatique, les étiquettes d'examen, la raison du désaccord, l'étiquette finale et le statut d'exclusion dans structural_label_audit.csv.
  16. Calculez la valeur SHA-256 de chaque fichier source conservé et calculez un hachage perceptuel 64 bits à partir du recadrage normalisé du vêtement. Placez les images ayant des valeurs SHA-256 identiques dans le même groupe de doublons exacts. Placez les images dont les hachages perceptuels ont une distance de Hamming d'au plus quatre dans le même groupe de doublons proches, après avoir vérifié qu'elles proviennent de la même instance de vêtement.
  17. Fusionnez toutes les images partageant le même identifiant de paire source DeepFashion2 ou la même identité de vêtement en un seul groupe source. Enregistrez les hachages de fichiers, les hachages perceptuels, les identifiants sources et les identifiants de groupes de doublons dans duplicate_group_manifest.csv.
  18. Effectuez la partition des données au niveau du groupe source plutôt qu'au niveau de l'image individuelle. Affectez entièrement chaque groupe de doublons exacts, groupe de doublons proches et groupe d'identité source à un seul sous-ensemble. Après la partition, vérifiez toutes les paires entre sous-ensembles et inscrivez tout conflit d'identité, conflit de hachage ou conflit de hachage perceptuel détecté dans leakage_audit.csv. Recréez les manifestes jusqu'à ce que leakage_audit.csv ne contienne plus d'enregistrements non résolus entre sous-ensembles.
  19. Stratifiez les groupes sources selon les étiquettes finales S1-S5 et affectez des groupes complets aux sous-ensembles d'entraînement, de validation et de test selon l'allocation vérifiée indiquée dans Tableau 1. Indiquez le nombre exact d'images et de groupes sources pour chaque niveau structurel et chaque sous-ensemble.
  20. Calculez les pourcentages réels d'entraînement, de validation et de test à partir du groupe final conservé, et non à partir du jeu de données non filtré. N'utilisez pas les images de validation, les images de test, les images exclues ambiguës ou les images appartenant à leurs groupes de doublons pendant l'apprentissage des paramètres, la détermination des seuils, l'ajustement des règles de niveau structurel ou la sélection des points de contrôle.
  21. Enregistrez les images traitées dans data_processed/images. Enregistrez train_manifest.csv, validation_manifest.csv, test_manifest.csv, pair_manifest.csv et structural_level_manifest.csv dans data_processed/manifests.
  22. Lisez les étiquettes structurelles finales, le statut d'examen, les identifiants de groupes de doublons, les identifiants de groupes sources et les étiquettes de sous-ensembles à partir des manifestes traités. Comptez les échantillons acceptés automatiquement, les échantillons examinés manuellement, les exclusions pour ambiguïté, les exclusions pour doublons, les groupes sources, les images d'entraînement, les images de validation et les images de test pour S1 à S5.
  23. Calculez les rapports réels des sous-ensembles, le nombre moyen de nœuds actifs, le nombre moyen de nœuds de branchement, le nombre moyen de cycles indépendants, la profondeur moyenne d'ordre vertical et le nombre moyen d'arêtes typées. Enregistrez l'ensemble des statistiques dans evaluation_results/dataset_statistics.csv.
  24. Résultat attendu : Vérifiez que chaque image acceptée est une image RVB 8 bits de taille 512 x 512 pixels et possède un enregistrement de filtrage, une étiquette finale de niveau structurel, un identifiant de groupe source, un identifiant de groupe de doublons, une étiquette de sous-ensemble et un chemin d'annotation valide. Vérifiez que chaque échantillon ambigu possède un enregistrement d'examen complet. Vérifiez qu'aucun identifiant source, groupe de doublons exacts, groupe de doublons proches ou identité de vêtement n'apparaît dans plus d'un sous-ensemble. Vérifiez que les nombres d'images dans train_manifest.csv, validation_manifest.csv, test_manifest.csv et dataset_statistics.csv sont identiques.
    NOTE : Conservez les images brutes non traitées dans data_raw. N'appliquez pas d'augmentation aléatoire aux images de validation ou de test.
    ​TRUCS ET ASTUCES : Si le recadrage supprime un col, une manche, une ourlet ou une jambe de pantalon, restaurez l'annotation d'origine et agrandissez la marge de frontière conservée. Si un vêtement semble étiré, vérifiez la présence du remplissage carré avant le redimensionnement. Si une image traitée contient un seul canal ou quatre canaux, convertissez le fichier source en RVB 8 bits et relancez le prétraitement. Si des identifiants en double apparaissent entre sous-ensembles, recréez tous les manifestes de sous-ensembles avant l'entraînement.

3. Analyse des composantes visuelles restreinte au premier plan et cartographie de probabilité

  1. Exécutez python tools/parse_components.py --config configs/protocol.yaml.
  2. Chargez le point de contrôle préentraîné HRNet-W48 pour l'analyse sémantique des vêtements à partir de parser_checkpoint. Vérifiez que le point de contrôle produit les catégories de composants vestimentaires définies par la correspondance d'annotations du jeu de données. Passez le réseau d'analyse sémantique en mode évaluation et désactivez le calcul des gradients.
  3. Lisez les images traitées à partir des fichiers train_manifest.csv, validation_manifest.csv et test_manifest.csv, dans cet ordre.
  4. Extrayez un tenseur de réponse sémantique à sept canaux à partir de chaque image d'entrée et fixez K à sept tout au long du flux de travail. Utilisez l'ordre de catégories fixe suivant : Région supérieure du bord, Région de l'encolure, Région du corsage, Région inférieure gauche du vêtement, Région inférieure droite du vêtement, Région centrale inférieure du vêtement et Région de l'ourlet. Conservez cet ordre dans les cartes de probabilité, les matrices de composants, les matrices de graphes, les matrices de caractéristiques, les fichiers de manifeste et les fichiers de visualisation.
  5. Appliquez la fonction softmax selon la dimension des canaux afin de générer la carte de probabilité P des composants sémantiques. Vérifiez que les probabilités sur l'ensemble des K canaux s'additionnent à un pour chaque pixel, avec une tolérance de 0,0001.
  6. Chargez le masque de premier plan du vêtement à partir des annotations du jeu de données et alignez-le avec l'image traitée de 512 x 512 pixels. Fixez à zéro la probabilité de chaque composant situé en dehors du premier plan du vêtement. Renormalisez les probabilités des composants à l'intérieur du masque de premier plan selon la dimension des canaux.
  7. Vérifiez que chaque région de composant actif reste à l'intérieur du premier plan du vêtement. Rejetez l'échantillon analysé si une région colorée de composant s'étend sur le mur, le sol, le rideau ou toute autre zone d'arrière-plan. Enregistrez l'identifiant de l'image rejetée et l'erreur d'analyse dans parsing_quality_log.csv.
  8. Calculez le taux de couverture du premier plan pour chaque composant et marquez les composants présentant des régions fragmentées ou des zones isolées non supportées pour inspection manuelle.
  9. Enregistrez le tenseur de réponse sémantique dans parser_outputs/logits. Enregistrez la carte de probabilité dans parser_outputs/probability_maps. Enregistrez un aperçu coloré du composant dans parser_outputs/previews.
  10. Résultat attendu : Vérifiez que chaque image acceptée produit une carte de probabilité à sept canaux restreinte au premier plan, de dimensions spatiales 512 x 512 pixels, un tenseur de réponse sémantique à sept canaux et une image d'aperçu. Vérifiez que les indices des canaux de un à sept suivent l'ordre fixe des composants défini à l'étape 3.4. Vérifiez que toutes les régions colorées des composants restent à l'intérieur du premier plan du vêtement et que les pixels d'arrière-plan ont une probabilité nulle pour tous les composants. Vérifiez que l'identifiant du fichier correspond à l'entrée correspondante dans le manifeste source.
    NOTE : Conservez les probabilités continues des composants à l'intérieur du premier plan du vêtement lors de la modélisation structurelle. Traitez les régions résultantes comme des zones d'analyse visuelle. N'interprétez pas leurs limites comme des lignes de couture, des lignes de découpe, des contours de pièces de patron, des pinces, des crans ou des références de gradation.
    ​DIAGNOSTIC : Si tous les canaux affichent des probabilités quasi uniformes, vérifiez parser_checkpoint, l'ordre des canaux RVB et la normalisation des images. Si un composant est absent sur un sous-ensemble entier, comparez l'indice d'annotation avec l'indice de canal de sortie du parseur. Si les couleurs des composants s'étendent dans l'arrière-plan, vérifiez l'alignement du masque de premier plan, les paramètres d'interpolation et les coordonnées d'annotation avant la construction du graphe. Si une région visuelle couvre plusieurs zones du vêtement non reliées entre elles, marquez l'échantillon comme un échec d'analyse et excluez-le de la génération de priori structurel. Si les probabilités des canaux ne s'additionnent pas à un, appliquez softmax selon la dimension des canaux plutôt que selon l'une des dimensions spatiales. Si un fichier de sortie est manquant, localisez l'identifiant final traité dans le journal du parseur et reprenez l'analyse à partir de l'identifiant suivant.

4. Modélisation de la géométrie des composants au niveau de l'image et des relations spatiales

  1. Chargez le tenseur de caractéristiques visuelles superficielles et la carte de probabilité correspondante P pour chaque image.
  2. Multipliez chaque vecteur de caractéristiques spatiales par la probabilité attribuée au composant sémantique correspondant.
  3. Sommez les vecteurs de caractéristiques pondérés selon les dimensions spatiales et divisez la somme par la masse de probabilité totale du composant.
  4. Attribuez un vecteur nul et un indicateur de nœud inactif à tout composant dont la masse de probabilité est nulle.
  5. Appliquez une normalisation L2 à chaque intégration de composant active et empilez les intégrations selon l'ordre fixe des composants sémantiques.
  6. Calculez les coordonnées horizontales et verticales du centre dans le plan de l'image pour chaque composant visuel à partir de sa distribution de probabilité restreinte au premier plan. Normalisez les coordonnées par la largeur et la hauteur de l'image.
  7. Calculez l'étendue horizontale et verticale dans le plan de l'image de chaque composant visuel dans le même système de coordonnées normalisé. Utilisez ces valeurs uniquement pour décrire l'étendue de la région visible dans l'image traitée.
  8. Créez sept nœuds de graphe selon l'ordre fixe des composants et conservez les composants inactifs sous forme de nœuds nuls. Construisez une matrice 7 × 7 de frontières partagées en utilisant le contact à huit voisins entre les masques des composants du premier plan. Construisez une matrice 7 × 7 d'ordre vertical en utilisant les relations fixes allant de la région supérieure du vêtement (Upper Trim Region) à la région de l'encolure (Neckline Region), de la région de l'encolure à la région du buste (Bodice Region), de la région du buste à chaque région du vêtement inférieur, et de chaque région du vêtement inférieur à la région de l'ourlet (Hem Region). Stockez chaque relation valide dans les deux sens.
  9. Ajoutez une boucle réflexive pour chaque nœud actif avant la convolution sur graphe, et maintenez à zéro les relations connectées aux nœuds inactifs.
  10. Calculez le déplacement relatif du centre et la dispersion spatiale relative entre chaque paire ordonnée de composants sémantiques. Empilez les valeurs géométriques par paire pour former le tenseur de relations géométriques.
  11. Calculez le produit scalaire entre chaque paire d'intégrations de composants normalisées. Appliquez une fonction softmax par ligne à la matrice de similarité résultante et utilisez les valeurs comme poids de relation.
  12. Multipliez le tenseur de relations géométriques par les poids de relation correspondants et agréguez les relations pondérées pour chaque composant.
  13. Enregistrez la matrice d'intégration des composants, la matrice des centres des composants, la matrice de dispersion spatiale, la matrice de frontières partagées, la matrice d'ordre vertical, la matrice de boucles réflexives, la matrice de poids de relation, le masque de nœuds inactifs, la correspondance des étiquettes de composants et la représentation a priori structurelle dans structural_priors. Enregistrez chaque matrice avec sept lignes et sept colonnes lorsque cela s'applique. Le processus complet de construction, allant de la carte de composants restreinte au premier plan à la représentation a priori de la topologie des composants du vêtement au niveau de l'image, est illustré dans Figure 2.
  14. Générez la superposition de graphe par composant pour chaque échantillon de visualisation à partir de la carte de probabilité restreinte au premier plan, de la matrice des centres des composants, de la matrice d'adjacence typée, du masque de nœuds inactifs et de la correspondance des étiquettes de composants.
  15. Placez chaque nœud actif au centre du composant correspondant. Tracez des arêtes pleines pour les frontières communes du premier plan et des arêtes en pointillés pour les relations d'ordre vertical prédéfinies.
  16. Enregistrez chaque superposition de graphe dans structural_priors/visualizations en utilisant l'identifiant de l'image source. Notez le chemin de l'image source, le chemin de la carte de probabilité, le chemin de la matrice des centres des composants, le chemin de la matrice d'adjacence typée, le chemin du masque de nœuds inactifs, l'identifiant du point de contrôle de l'analyse sémantique et le chemin de la superposition de graphe dans le fichier component_graph_visualization_manifest.csv.
  17. Résultat attendu : Vérifiez que chaque image produit une matrice d'intégration des composants avec K lignes, une matrice d'adjacence typée avec K lignes et K colonnes, une matrice de poids de relation avec K lignes et K colonnes, un masque de nœuds inactifs avec K valeurs, et une représentation a priori structurelle au niveau de l'image. Vérifiez que chaque échantillon de visualisation sélectionné produit une superposition de graphe par composant dans laquelle les nœuds actifs restent à l'intérieur des régions correspondantes du vêtement.
    NOTE : Conservez le même ordre des composants visuels dans toutes les matrices, tous les fichiers d'inventaire, tous les graphes, tous les fichiers de caractéristiques et toutes les superpositions de graphes. Traitez les centres des composants, les valeurs d'étendue spatiale et les relations de graphe comme des descripteurs de régions de vêtement dans le plan de l'image. N'interprétez pas le graphe de composants comme un squelette de posture humaine ni ne déduisez ses nœuds à partir de coordonnées articulaires anatomiques. Ne convertissez pas ces descripteurs en longueurs de coutures, rayons de courbure, prise de pinces, positions d'encoches, directions du droit-fil, incréments de gradation ou dimensions des pièces de patron.
    ​PROBLÈMES COURANTS : Si une matrice contient une valeur non numérique, vérifiez le dénominateur de la masse de probabilité et la normalisation des coordonnées. Si les poids de relation se concentrent sur un seul composant, soustrayez le maximum de la ligne de la matrice de similarité avant d'appliquer la fonction softmax. Si le nombre de nœuds du graphe varie entre les images, vérifiez que les composants inactifs restent présents sous forme de vecteurs nuls plutôt que d'être supprimés.

5. Encodage de caractéristiques tenant compte de la structure en double flux

  1. Charger les poids de ResNet-50 pré-entraînés sur ImageNet et supprimer les dernières couches de regroupage et de classification.
  2. Faire passer chaque image de vêtement normalisée à travers ResNet-50 et extraire le tenseur d'apparence à partir de l'étape du squelette indiquée par appearance_stage dans configs/protocol.yaml. Vérifier le nom de l'étape, le nombre de canaux de sortie et les dimensions spatiales de sortie générées par l'étape du squelette sélectionnée pour une image d'entrée de 512 x 512 pixels. Utiliser la même étape dans tous les cycles d'entraînement, d'inférence, d'ablation et de comparaison.
  3. Redimensionner la carte de probabilité sémantique à la taille spatiale du tenseur de caractéristiques d'apparence par interpolation bilinéaire. Multiplier le tenseur de caractéristiques d'apparence par chaque carte de probabilité de composant redimensionnée, puis agréger les réponses pondérées selon les dimensions spatiales.
  4. Faire passer chaque intégration d'apparence de composant à travers la couche de recalibrage de canal définie dans configs/protocol.yaml. Noter le type de couche, la dimension d'entrée, la dimension de sortie, le rapport de réduction, la fonction d'activation et la règle de partage des paramètres. Empiler les sept vecteurs de composant résultants dans l'ordre sémantique fixe pour former la matrice de caractéristiques d'apparence.
  5. Faire passer chaque vecteur de relation géométrique à travers la couche de projection structurelle et fixer la dimension de sortie à 512. Construire le graphe de composants avec la matrice de poids de relation et le masque de nœuds inactifs.
  6. Appliquer deux couches de convolution sur graphe avec une dimension d'entrée de 512 et une dimension de sortie de 512. Appliquer une normalisation par lot après chaque couche de convolution sur graphe, puis appliquer LeakyReLU. Noter la valeur de pente négative utilisée par LeakyReLU. Appliquer le masque de nœuds inactifs après chaque couche afin de conserver des caractéristiques nulles pour les composants inactifs.
  7. Appliquer l'alignement sémantique avec les intégrations normalisées des composants et empiler les vecteurs résultants pour former la matrice de caractéristiques structurelles.
  8. Résultat attendu : Confirmer que chaque image produit une matrice de caractéristiques d'apparence et une matrice de caractéristiques structurelles. Confirmer que les deux matrices contiennent K lignes et 512 colonnes.
    NOTE : Conserver les composants inactifs sous forme de vecteurs nuls et préserver l'ordre des composants établi lors de la construction de la priorité structurelle.
    DÉPANNAGE : Si les deux matrices de caractéristiques ont des nombres de lignes différents, examiner le mappage des catégories sémantiques et la gestion des nœuds inactifs. Si une erreur de dimension est signalée lors d'une multiplication matricielle, vérifier que la dimension de sortie de la projection structurelle et la dimension des canaux d'apparence sont toutes deux égales à 512. Si les caractéristiques structurelles restent nulles pour tous les composants actifs, vérifier que les arêtes du graphe et les poids de relation ont été ajoutés au lot en cours.

6. Fusion de caractéristiques guidée par la structure

  1. Appliquez la séquence de fusion de caractéristiques guidée par la structure illustrée dans la Figure 3. Faites passer la matrice de caractéristiques structurelles à travers la couche de poids de fusion et appliquez la fonction d'activation définie par fusion_activation dans configs/protocol.yaml. Enregistrez le nom de l'activation, la dimension d'entrée, la dimension de sortie, ainsi que si les paramètres sont partagés entre les sept nœuds composants.
  2. Vérifiez que la matrice de poids structurelle générée contient K lignes et 512 colonnes.
  3. Multipliez la matrice de caractéristiques d'apparence par la matrice de poids structurelle élément par élément.
  4. Concaténez la matrice d'apparence modulée et la matrice de caractéristiques structurelles selon la dimension des canaux.
  5. Concaténez le vecteur d'apparence modulée de dimension 512 et le vecteur structurel de dimension 512 pour chaque composant afin d'obtenir un vecteur de dimension 1024. Faites passer le vecteur concaténé à travers la couche de projection de fusion et réduisez sa dimension de 1024 à 512.
  6. Ajoutez la matrice de caractéristiques structurelles d'origine à la matrice projetée au moyen d'une connexion résiduelle.
  7. Empilez les vecteurs composants fusionnés dans l'ordre sémantique fixe et appliquez une normalisation L2 à la représentation aplanie sensible à la structure.
  8. Enregistrez la matrice de poids structurelle, la matrice d'apparence modulée, la matrice composant fusionnée et la représentation finale sensible à la structure dans feature_outputs.
  9. Résultat attendu : Vérifiez que chaque image produit une matrice composant fusionnée avec K lignes et 512 colonnes, ainsi qu'un vecteur de caractéristiques normalisé sensible à la structure associé à l'identifiant de l'image source.
    NOTE : Conservez la matrice de poids structurelle et la matrice composant fusionnée pour la visualisation des réponses et l'analyse des différences locales.
    ​PROBLÈMES RENCONTRÉS : Si les valeurs fusionnées continuent d'augmenter, examinez la sortie d'activation et la couche de normalisation. Si tous les poids structurels tendent vers la même valeur, vérifiez que les caractéristiques structurelles varient d'une image à l'autre et que la couche de fusion reçoit des gradients. Si les fichiers de caractéristiques et les identifiants d'images ne correspondent pas, régénérez le manifeste de sortie avant l'entraînement ou l'évaluation de récupération.

7. Entraînement du modèle et optimisation de la cohérence

  1. Chargez les cinq valeurs de graine aléatoire enregistrées dans configs/seeds.yaml. Pour chaque exécution, définissez la même graine aléatoire pour Python, les opérations NumPy, PyTorch sur le processeur et tous les appareils CUDA. Activez les algorithmes déterministes, désactivez le mode benchmark de cuDNN et enregistrez les cinq valeurs exactes de graine dans le répertoire correspondant à l'exécution.
  2. Chargez le manifeste d'entraînement traité, le manifeste de paires, les cartes de probabilité et les a priori structurels.
  3. Construisez chaque lot d'entraînement avec huit catégories structurelles et quatre échantillons variant en apparence provenant de chaque catégorie.
  4. Calculez la perte de cohérence structurelle à partir des paires d'échantillons positifs qui partagent le même a priori structurel.
  5. Calculez la perte de cohérence des relations structurelles à partir des distances par paires entre les caractéristiques des composants.
  6. Calculez la perte de discrimination structurelle à partir des paires d'échantillons négatifs ayant des structures hétérogènes et appliquez le seuil de séparation de 0,3.
  7. Combinez l'objectif d'apparence, l'objectif de cohérence structurelle, l'objectif de relation structurelle et l'objectif de discrimination structurelle avec les poids stockés dans configs/protocol.yaml. Le processus d'optimisation dans l'espace des caractéristiques, régi par les trois objectifs structurels, est illustré dans Figure 4.
  8. Exécutez python train.py --config configs/protocol.yaml. Mettez à jour tous les paramètres entraînables par descente de gradient stochastique par mini-lots, en utilisant le taux d'apprentissage initial, la quantité de mouvement, la décroissance du poids, le nombre d'époques, le facteur d'atténuation et les époques d'atténuation définis à l'étape 1.8. Enregistrez le taux d'apprentissage après chaque époque dans le journal d'entraînement.
  9. Enregistrez la perte totale, la perte d'apparence, la perte de cohérence structurelle, la perte de relation structurelle, la perte de discrimination structurelle, le taux d'apprentissage, l'indice de cohérence structurelle (SCI), l'indice de discrimination structurelle (SDI) et le rappel@5 après chaque époque.
  10. Évaluez le modèle sur validation_manifest.csv après chaque époque. Enregistrez le point de reprise associé au SCI de validation le plus élevé dans checkpoints/selected_model.pth.
  11. Répétez l'entraînement cinq fois avec les cinq graines aléatoires enregistrées. Enregistrez chaque fichier de configuration, journal d'entraînement et point de reprise sélectionné dans un répertoire d'exécution distinct.
  12. Résultat attendu : Vérifiez que chaque exécution produit un journal d'entraînement, un journal de validation, un fichier de métriques par époque et un point de reprise sélectionné. Vérifiez que le point de reprise sélectionné est basé sur les performances de validation et non sur celles du test.
    REMARQUE : Utilisez les mêmes manifestes d'entraînement, de validation et de test dans toutes les comparaisons de modèles et expériences d'ablation.
    ​PROBLÈMES COURANTS : Si une perte devient non numérique, arrêtez l'entraînement, examinez les masses de probabilité des composants, réduisez le taux d'apprentissage d'un facteur 10 et redémarrez à partir du dernier point de reprise valide. Si le SCI de validation reste inchangé tandis que la perte d'entraînement diminue, vérifiez que les paramètres de propagation et de fusion du graphe reçoivent des gradients. Si la mémoire graphique est saturée, réduisez la taille du lot et préservez une taille de lot effective de 32 par accumulation de gradients. Si les performances de validation varient fortement entre les exécutions, vérifiez la graine aléatoire enregistrée et l'ordre du manifeste des données.

8. Inférence, récupération, regroupement et vérification des résultats

  1. Exécutez python infer.py --config configs/protocol.yaml --checkpoint checkpoints/selected_model.pth. Générez des cartes de probabilité, des a priori structurels, des matrices de caractéristiques d'apparence, des matrices de caractéristiques structurelles, des matrices de composants fusionnés et des vecteurs de caractéristiques finaux pour chaque image de test.
  2. Enregistrez toutes les sorties de l'inférence dans feature_outputs/test et notez leurs chemins dans test_feature_manifest.csv. Calculez la similarité cosinus entre chaque caractéristique requête et toutes les caractéristiques de la galerie. Triez les identifiants de la galerie par ordre décroissant de similarité. Enregistrez les cinq résultats les mieux classés pour chaque requête dans evaluation_results/retrieval_results.csv.
  3. Pour chaque échantillon de récupération sélectionné pour la visualisation, chargez la matrice d'adjacence typée, la matrice de poids des relations, la matrice des centres de composants, le masque des nœuds inactifs, la correspondance des étiquettes de composants et la matrice de composants fusionnés de l'image requête. Chargez les mêmes fichiers pour le résultat le mieux classé produit par le modèle sensible à la structure.
  4. Représentez graphiquement le graphe de composants de la requête et celui de l'image récupérée à partir de leurs centres de composants et matrices d'adjacence typées enregistrées. Conservez l'ordre fixe des composants et les types de relations utilisés durant l'inférence du modèle.
  5. Représentez la matrice d'adjacence typée de la requête sous forme de matrice catégorielle. Utilisez des valeurs matricielles distinctes pour les relations inactives, de frontière commune et d'ordre vertical. Étiquetez les axes horizontal et vertical avec les identifiants de composants stockés dans la correspondance des étiquettes de composants.
  6. Appliquez une normalisation L2 à la matrice de composants fusionnés de la requête et à celle de l'image récupérée. Calculez la similarité cosinus entre chaque composant de la requête et chaque composant de l'image récupérée. Enregistrez la matrice de correspondance de composants K × K résultante dans evaluation_results/structural_retrieval_evidence.
  7. Pour chaque paire référence-cible sélectionnée pour l'analyse des différences locales, chargez la matrice d'adjacence typée, la matrice des centres de composants, la matrice de dispersion spatiale, la matrice de poids des relations et la matrice de composants fusionnés des deux images.
  8. Calculez la différence absolue entre les deux matrices d'adjacence typées. Calculez les différences absolues de déplacement des centres de composants, de dispersion spatiale et de poids des relations en utilisant l'ordre fixe des composants. Enregistrez la matrice de différence de topologie et la matrice de différence de relations géométriques résultantes dans evaluation_results/structural_difference_evidence.
  9. Calculez la distance L2 entre les lignes correspondantes des deux matrices de composants fusionnés. Normalisez les distances au niveau des composants et attribuez-les aux nœuds du graphe de composants cible. Augmentez l'épaisseur des arêtes en fonction de la différence normalisée du poids des relations. Enregistrez le graphe de différence des composants post-fusion résultant.
  10. Enregistrez les identifiants d'images, les chemins des matrices, les chemins des graphes, l'ordre des composants, l'identifiant du point de contrôle et les chemins de sortie de visualisation dans structural_visualization_manifest.csv. Générez toutes les visualisations structurelles par programme à partir des fichiers enregistrés ; n'ajoutez pas manuellement de nœuds, d'arêtes ou de valeurs matricielles.
  11. Appliquez K-Means avec cinq clusters aux vecteurs de caractéristiques finaux et enregistrez les affectations de clusters dans evaluation_results/cluster_assignments.csv. Exécutez python evaluate.py --config configs/protocol.yaml --feature_dir feature_outputs/test.
  12. Calculez l'indice de compacité structurelle (SCI), l'indice de séparation structurelle (SDI), le Rappel@5, la précision moyenne (mAP) et le coefficient de silhouette pour chaque exécution. Utilisez le SCI pour évaluer la compacité des caractéristiques normalisées partageant la même étiquette structurelle, et le SDI pour évaluer la séparation entre différentes étiquettes structurelles. Utilisez le Rappel@5 pour évaluer si une correspondance structurelle pertinente apparaît dans la courte liste de récupération, et la mAP pour évaluer la qualité du classement sur l'ensemble de la galerie. Utilisez le coefficient de silhouette uniquement pour l'analyse de regroupement.
  13. Calculez la moyenne arithmétique et l'écart-type empirique sur cinq exécutions indépendantes. Conservez les cinq valeurs par exécution pour chaque méthode et chaque métrique. N'appliquez pas de normalisation min-max, de normalisation de rang ou de remise à l'échelle basée sur les méthodes comparées. Effectuez un test t apparié en utilisant les résultats obtenus avec la même graine aléatoire et enregistrez la statistique du test et la valeur de significativité exacte bilatérale.
  14. Comparez le nombre d'identifiants de test traités, de fichiers de caractéristiques, d'enregistrements de récupération et d'affectations de clusters. Résolvez toute incohérence avant de rapporter ou d'interpréter les résultats d'évaluation.
  15. Résultat attendu : Vérifiez que chaque image de test possède un enregistrement d'inférence complet, une liste de récupération, une affectation de cluster et un ensemble d'entrées d'évaluation. Vérifiez que chaque cas de récupération sélectionné pour la visualisation dispose d'un graphe de composants requête, d'un graphe de composants de l'image récupérée, d'une matrice d'adjacence typée et d'une matrice de correspondance de composants fusionnés.
  16. Vérifiez que chaque cas de différence structurelle dispose d'une matrice de différence de topologie, d'une matrice de différence de relations géométriques, d'un graphe de différence de composants post-fusion, d'une carte thermique de différence spatiale et d'un superposition de réponse. Vérifiez que tous les fichiers de visualisation sont liés à leurs matrices sources via structural_visualization_manifest.csv. Enregistrez la carte thermique pure, la superposition sur l'image cible, le masque de premier plan et les coordonnées de la région de réponse principale pour chaque cas visualisé.
  17. Acceptez une réponse de différence calculée uniquement lorsque la région principale à forte réponse chevauche le premier plan du vêtement et reste étayée par le changement correspondant de la matrice d'adjacence typée, du changement de relation géométrique et des preuves de distance des composants post-fusion. Si la réponse la plus forte se situe principalement en dehors du premier plan du vêtement, examinez la sortie de segmentation, le graphe de composants et l'enregistrement de fusion.
    NOTE : Utilisez le point de contrôle sélectionné à partir de l'ensemble de validation pour l'inférence sur l'ensemble de test. Ne sélectionnez ni ne remplacez un point de contrôle selon les métriques de l'ensemble de test. Utilisez le même ordre de composants, la même règle de nœud inactif, le même encodage des types de relations et le même processus de normalisation lors de la génération des graphes et des matrices durant l'inférence et la visualisation.
    ​PROBLÈMES RENCONTRÉS : Si l'inférence s'arrête avant de traiter toutes les images de test, localisez le dernier identifiant dans le journal d'inférence et reprenez à partir de l'identifiant suivant. Si les résultats de récupération sont dominés par la similarité de couleur, examinez les sorties des a priori structurels et de la fusion, et vérifiez que le chargement du point de contrôle a réussi. Si l'évaluation signale des identifiants en double, reconstruisez test_feature_manifest.csv et supprimez les enregistrements en double avant de recalculer. Si K-Means produit un cluster vide, vérifiez la normalisation des caractéristiques et relancez le regroupement avec la graine aléatoire enregistrée.

9. Évaluation comparative des modèles

  1. Exécuter python compare_models.py --config configs/protocol.yaml.
  2. Entraîner et évaluer ResNet-50, Part-based Convolutional Baseline (PCB), GCN, FashionGraph, Swin Transformer, CLIP, Topology Feature Histogram with Color and Texture Fusion, Attention-Guided Cascade Network, MMFL-Net, FARE-RNET, ainsi que la méthode proposée, à l’aide des mêmes fichiers de description pour l’entraînement, la validation et les tests.
  3. Utiliser la même taille d’image, les mêmes opérations de prétraitement, le même nombre d’époques d’entraînement, la même taille effective de lot, les mêmes requêtes d’évaluation et la même implémentation de métrique pour chaque méthode.
  4. Conserver le regroupement par moyenne globale pour ResNet-50. Appliquer l’alignement par bandes horizontales dans PCB. Appliquer un graphe de vêtement au niveau image fixe dans GCN. Appliquer une inférence dynamique de graphe guidée par attributs dans FashionGraph. Utiliser les encodeurs d’image standards de Swin Transformer et CLIP. Implémenter Topology Feature Histogram with Color and Texture Fusion à l’aide de descripteurs topologiques, de couleur et de texture. Implémenter un réseau en cascade guidé par l’attention en utilisant des branches de caractéristiques globales et locales avec une segmentation des vêtements. Implémenter MMFL-Net à l’aide de branches de caractéristiques multi-échelles et multi-granularité. Implémenter FARE-RNET à l’aide d’une attention résiduelle, d’une sélection de caractéristiques et d’un encodage contextuel dilaté.
  5. Utiliser uniquement la branche requête-image de chaque méthode comparée. Réentraîner chaque méthode entraînable sur le fichier de description d’entraînement commun et sélectionner son point de contrôle (checkpoint) à partir du fichier de description de validation commun. Générer une liste classée de la galerie pour chaque requête de test.
  6. Projeter chaque intégration apprise vers 512 dimensions à l’aide d’une couche linéaire entraînable enregistrée lorsque sa dimension d’origine est différente. Appliquer une normalisation L2 avant le classement par similarité cosinus. Utiliser la même attribution requête-galerie et la même implémentation de métrique pour toutes les méthodes.
  7. Répéter chaque méthode de comparaison avec les mêmes cinq graines aléatoires. Indiquer la moyenne et l’écart-type échantillonnal de SCI, SDI, Recall@5, mAP et du coefficient de silhouette. Pour chaque métrique, effectuer un test t apparié bilatéral entre la méthode proposée et chaque méthode de comparaison, en utilisant les résultats obtenus avec la même graine aléatoire. Enregistrer les cinq valeurs par exécution, la statistique de test, les degrés de liberté et la valeur p exacte dans evaluation_results/comparison_metrics.csv.
  8. Calculer SCI, SDI, Recall@5, mAP et le coefficient de silhouette pour chaque méthode. Enregistrer toutes les valeurs par exécution ainsi que les valeurs agrégées dans evaluation_results/comparison_metrics.csv.
  9. Résultat attendu : Vérifier que comparison_metrics.csv contient les mêmes champs de métriques et le même nombre d’exécutions indépendantes pour chaque méthode de comparaison.
    NOTE : Ne pas modifier les partitions de données, le code de métrique ou l’attribution requête-galerie entre les méthodes comparées.
    RÉSOLUTION DES PROBLÈMES : Si un modèle de comparaison produit une dimension de caractéristique différente de 512, ajouter une couche de projection linéaire unique enregistrée avant le calcul de la métrique et entraîner cette couche avec le modèle correspondant. Si un modèle ne parvient pas à converger avec le taux d’apprentissage commun, utiliser le taux d’apprentissage spécifié par son implémentation publiée et conserver toutes les autres conditions expérimentales. Enregistrer chaque paramètre propre à la méthode dans le journal de comparaison.

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Résultats

Toutes les expériences rapportées ont été réalisées à l'aide de l'environnement matériel et logiciel documenté dans le Tableau 2 et le Tableau des Matériaux. La même version du pilote graphique, de CUDA, de cuDNN, de Python, de NumPy, de PyTorch et de torchvision a été utilisée tout au long du prétraitement, de l'entraînement, de l'inférence et de l'évaluation. L'environnement matériel et logiciel complet est résumé dans le Tableau 2 et le Tableau des Matériaux

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Discussion

Les étapes les plus critiques du protocole sont le prétraitement préservant le vêtement et l'analyse sémantique des composants restreinte au premier plan. Les centres des composants, les valeurs de dispersion spatiale, les relations de frontières partagées, les relations d'ordre vertical, les poids des relations et les représentations fusionnées sont tous dérivés du résultat de l'analyse. Les fuites de frontières, les régions de composants fusionnées, les régions de composants manquantes et les attributions incorrectes d...

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Déclarations de divulgation

Les auteurs n'ont aucun conflit d'intérêts à déclarer.

Remerciements

Ce travail a été soutenu par le deuxième groupe de projets provinciaux clés de réforme pédagogique au niveau du premier cycle pendant le 14e Plan quinquennal, dans le cadre du projet intitulé Réforme pédagogique et exploration du cours « Conception de vêtements et d'accessoires » fondée sur le modèle conjoint de « trois intégrations, trois fusions » (numéro de projet JGZD2024096).

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Matériaux

Liste des matériaux utilisés dans cet article
NomEntrepriseNuméro de catalogueCommentaires
Unité centrale de traitementIntel CorporationIntel Core i9-13900K, 24 cœurs, 32 threads, jusqu'à 5,80 GHz
CondaAnaconda, Inc., anaconda.comMiniconda3 23.11.0
Kit d'outils CUDANVIDIA Corporation, developer.nvidia.comCUDA 11.8
cuDNNNVIDIA Corporation, developer.nvidia.comcuDNN 8.9.7
Jeu de données DeepFashion2Université chinoise de Hong Kong, github.com/switchablenorms/DeepFashion2Version officielle DeepFashion2, version 1.0
Unité de traitement graphiqueNVIDIA CorporationNVIDIA GeForce RTX 4090, 24 Go de GDDR6X
Point de contrôle de l'analyse sémantique HRNet-W48Projet HRNet, github.com/HRNet/HRNet-Semantic-Segmentationhrnet_w48_garment_parser_7class.pth, point de contrôle du projet version 1.0
Poids ResNet-50 pré-entraînés sur ImageNetFondation PyTorch, pytorch.orgResNet50_Weights.IMAGENET1K_V2
MatplotlibÉquipe de développement Matplotlib, matplotlib.orgVersion 3.8.2
NumPyDéveloppeurs NumPy, numpy.orgVersion 1.26.4
Pilote graphique NVIDIANVIDIA CorporationVersion 546.33
OpenCV-PythonÉquipe OpenCV, opencv.orgVersion 4.8.1.78
Système d'exploitationMicrosoft CorporationWindows 11 Pro 23H2, 64 bits, version du système 22631.3155
PandasÉquipe de développement Pandas, pandas.pydata.orgVersion 2.1.4
PythonFondation Python Software, python.orgVersion 3.10.13
PyTorchFondation PyTorch, pytorch.orgVersion 2.1.2 avec CUDA 11.8
PyYAMLProjet PyYAML, pyyaml.orgVersion 6.0.1
scikit-learnDéveloppeurs scikit-learn, scikit-learn.orgVersion 1.3.2
SciPyDéveloppeurs SciPy, scipy.orgVersion 1.11.4
Dépôt de code sourceArchive du code source supplémentaire soumise avec le manuscritProtocole de topologie des vêtements, version 1.0
Périphérique de stockageSamsung ElectronicsSSD NVMe Samsung 990 PRO, 2 To
Mémoire systèmeKingston TechnologyKingston FURY Beast DDR5, 64 Go, 2 × 32 Go, 5600 MHz
torchvisionFondation PyTorch, pytorch.orgVersion 0.16.2 avec CUDA 11.8
Station de travailStation de travail personnalisée pour apprentissage profondIntel Core i9-13900K, NVIDIA GeForce RTX 4090, 64 Go de mémoire, SSD NVMe 2 To

Références

  1. Xiang Z, Zhu C, Qian M, Shen Y, Shao Y. FashionSegNet: a model for high-precision semantic segmentation of clothing images. Vis Comput. 2024;40:1711-1727. doi:10.1007/s00371-023-02881-3.
  2. Sun K, Zhang J, Zhang P, Yuan K, Li G. TsrNet: a two-stage unsupervised approach for clothing region-specific textures style transfer. J Vis Commun Image Represent. 2023;91:103778. doi:10.1016/j.jvcir.2023.103778.
  3. Yang N, Ma X. Enhanced composed fashion image retrieval with a multi-hop reasoning framework. Sci Rep. 2025;15:32217. doi:10.1038/s41598-025-17402-6.
  4. Karthika Priya D, Sathyabama B. FARE-RNET: fashion cloth retrieval via Egret Swarm Optimization-based Convolutional Attention Module integrated ResNet. Int J Comput Intell Syst. 2026;19:29. doi:10.1007/s44196-025-00979-1.
  5. Köktürk Güzel BE. Efficient image retrieval in fashion: leveraging clustering and principal component analysis for search space reduction. Erzincan Univ J Sci Technol. 2024;17:638-649. doi:10.18185/erzifbed.1500279.
  6. Zhang X, Sun H, Ma J. Research on clothing image retrieval combining topology features with color texture features. Mathematics. 2024;12:2363. doi:10.3390/math12152363.
  7. Abbas W, Zhang Z, Asim M, Chen J, Ahmad S. AI-driven precision clothing classification: revolutionizing online fashion retailing with hybrid two-objective learning. Information. 2024;15:196. doi:10.3390/info15040196.
  8. Shirkhani S, Mokayed H, Saini R, Hum YC. Study of AI-driven fashion recommender systems. SN Comput Sci. 2023;4:514. doi:10.1007/s42979-023-01932-9.
  9. Balloni E, Pietrini R, Frontoni E, Mancini A, Paolanti M. OutfitAI: shop the outfit with a deep learning-based intelligent expert system. Multimed Tools Appl. 2025;84:40195-40214. doi:10.1007/s11042-025-20753-x.
  10. Kachbal I, El Abdellaoui S. Computer vision for fashion: a systematic review of design generation, simulation, and personalized recommendations. Information. 2026;17:11. doi:10.3390/info17010011.
  11. Saranya MS, Geetha P. Cross-domain fashion cloth retrieval via novel attention-guided cascade neural network and clothing parsing. Comput Vis Image Underst. 2023;235:103777. doi:10.1016/j.cviu.2023.103777.
  12. Ning T, Gao Y, Han Y. Segmentation of ethnic clothing patterns with fusion of multiple attention mechanisms. Complex Intell Syst. 2024;10:5759-5770. doi:10.1007/s40747-024-01457-5.
  13. Jiang A, Liu L, Fu X, Liu L, Peng W. Clothing hierarchical feature representation and association learning for cross-modal fashion retrieval. J Comput Aided Des Comput Graph. 2025;37:654-667. doi:10.3724/SP.J.1089.2023-00263.
  14. An H, Lee KY, Choi Y, Park M. Conceptual framework of hybrid style in fashion image datasets for machine learning. Fash Text. 2023;10:18. doi:10.1186/s40691-023-00338-8.
  15. Adel M, Mohammed AM, Elsaid AH, Abdelatey A. Deep learning for new fashion product demand prediction: integrating visual similarity and demand correction in cold-start scenarios. Int J Data Sci Anal. 2026;22:9. doi:10.1007/s41060-025-00888-8.
  16. Tang Y, Ye D, Tao F, Du G. Enhanced group relation learning via aligned attention masking for fashion product captioning. J King Saud Univ Comput Inf Sci. 2025;37:170. doi:10.1007/s44443-025-00195-z.
  17. Lyu X, Li X, Zhang Y, Lu W. Two-stage method for clothing feature detection. Big Data Cogn Comput. 2024;8:35. doi:10.3390/bdcc8040035.
  18. Tang G, Yu F, Li H, Shi Y, Liu L, Peng T, et al. ClothSeg: semantic segmentation network with feature projection for clothing parsing. J Vis Commun Image Represent. 2023;97:103980. doi:10.1016/j.jvcir.2023.103980.
  19. Cao S, Chai W, Hao S, Zhang Y, Chen H, Wang G. DiffFashion: reference-based fashion design with structure-aware transfer by diffusion models. IEEE Trans Multimedia. 2024;26:3962-3975. doi:10.1109/TMM.2023.3318297.
  20. Hou J, Lu Y, Yang Y, Liu Z. PDN: a priori dictionary network for fashion parsing. Appl Sci. 2024;14:3509. doi:10.3390/app14083509.
  21. Moratelli N, Barraco M, Morelli D, Cornia M, Baraldi L, Cucchiara R. Fashion-oriented image captioning with external knowledge retrieval and fully attentive gates. Sensors. 2023;23:1286. doi:10.3390/s23031286.
  22. Islam T, Miron A, Liu X, Li Y. Deep learning in virtual try-on: a comprehensive survey. IEEE Access. 2024;12:29475-29502. doi:10.1109/ACCESS.2024.3368612.
  23. Yan H, Zhang H, Liu L, Zhou D, Xu X, Zhang Z, et al. Toward intelligent design: an AI-based fashion designer using generative adversarial networks aided by sketch and rendering generators. IEEE Trans Multimedia. 2023;25:2323-2338. doi:10.1109/TMM.2022.3146010.
  24. Xie Z, Zhou Z, Wang Z, Ding H, Ma L. Multi-scale spatial feature-guided cloth landmark estimation. J Comput Aided Des Comput Graph. 2022;34:1763-1771. doi:10.3724/SP.J.1089.2022.19189.
  25. Jiang J, Wu D, Deng H, Long Y, Tang W, Li X, et al. HAIGEN: towards human-AI collaboration for facilitating creativity and style generation in fashion design. Proc ACM Interact Mob Wearable Ubiquitous Technol. 2024;8:107. doi:10.1145/3678518.
  26. Danner M, Brake E, Kosel G, Kyosev Y, Rose K, Rätsch M, et al. AI-assisted pattern generator for garment design. Commun Dev Assem Text Prod. 2024;5:195-206. doi:10.25367/cdatp.2024.5.p195-206.
  27. Bao C, Zhang X, Chen J, Miao Y. MMFL-net: multi-scale and multi-granularity feature learning for cross-domain fashion retrieval. Multimed Tools Appl. 2023;82:37905-37937. doi:10.1007/s11042-022-13648-8.
  28. Yang G. Clothing design style recommendation using optimized semantic-preserved generative adversarial network. J Electr Syst. 2024;20 Suppl 3:2396-2409. doi:10.52783/jes.3064.
  29. Wang Z, Tao X, Zeng X, Xing Y, Xu Z, Bruniaux P. Design of customized garments towards sustainable fashion using 3D digital simulation and machine learning-supported human-product interactions. Int J Comput Intell Syst. 2023;16:16. doi:10.1007/s44196-023-00189-7.
  30. Wu J, Huang Y, Gao M, Gao Z, Zhao J, Zhang H, et al. A two-stream hybrid convolution-transformer network architecture for clothing-change person re-identification. IEEE Trans Multimedia. 2024;26:5326-5339. doi:10.1109/TMM.2023.3331569.
  31. Khalid M, Keming M, Hussain T. Design and implementation of clothing fashion style recommendation system using deep learning. Rom J Inf Technol Autom Control. 2021;31:123-136. doi:10.33436/v31i4y202110.
  32. Wang Y, Liu L, Fu X, Liu L. MCCP: multi-modal fashion compatibility and conditional preference model for personalized clothing recommendation. Multimed Tools Appl. 2024;83:9621-9645. doi:10.1007/s11042-023-15659-5.
  33. Ma J, Sun H, Yang D, Zhang H. Personalized fashion recommendations for diverse body shapes and local preferences with contrastive multimodal cross-attention network. ACM Trans Intell Syst Technol. 2024;15:82. doi:10.1145/3637217.
  34. Yu Z, Zhao Y, Hong B, Jin Z, Huang J, Cai D, et al. Apparel-invariant feature learning for person re-identification. IEEE Trans Multimedia. 2022;24:4482-4492. doi:10.1109/TMM.2021.3119133.
  35. Peng D, Liu R, Lu J, Zhang S. Unsupervised multi-modal modeling of fashion styles with visual attributes. Appl Soft Comput. 2022;115:108214. doi:10.1016/j.asoc.2021.108214.
  36. Mathews A, Sejal N, Venugopal KR. Analysis of content based image retrieval using deep feature extraction and similarity matching. Int J Adv Comput Sci Appl. 2022;13:646-655. doi:10.14569/IJACSA.2022.0131277.
  37. Zhang C, Ji X, Cai L. Clothing recommendation with multimodal feature fusion: price sensitivity and personalization optimization. Appl Sci. 2025;15:4591. doi:10.3390/app15084591.
  38. Zhao M, Gao S, Ma J, Zhang Z. Joint clothes image detection and search via anchor-free framework. Neural Netw. 2022;155:84-94. doi:10.1016/j.neunet.2022.08.011.
  39. Fontanini T, Ferrari C. Would your clothes look good on me? Towards transferring clothing styles with adaptive instance normalization. Sensors. 2022;22:5002. doi:10.3390/s22135002.
  40. Kim S, Moon H, Oh J, Lee Y, Kwon H, Kim S. Automatic measurements of garment sizes using computer vision deep learning models and point cloud data. Appl Sci. 2022;12:5286. doi:10.3390/app12105286.
  41. Chang YH, Zhang YY. Deep learning for clothing style recognition using YOLOv5. Micromachines. 2022;13:1678. doi:10.3390/mi13101678.
  42. de Medeiros Dantas IJ, Curth M, Freire AG. Exploring databases for training models in machine learning in the fashion industry. DAT J. 2024;9:157-174. doi:10.29147/datjournal.v9i2.877.
  43. Zhu S, Zou X, Qian J, Wong WK. Learning structured relation embeddings for fine-grained fashion attribute recognition. IEEE Trans Multimedia. 2024;26:1652-1664. doi:10.1109/TMM.2023.3284593.

Accès restreint. Veuillez vous connecter ou commencer un essai pour afficher ce contenu.

Réimpressions et autorisations

Explorer plus d’articles

Recherche d'images de vêtementscohérence structurelleimages DeepFashion2analyse HRNet-W48encodage ResNet-50convolution sur graphecomparaison structurellelocalisation des différences