📍 Contexte
Projet réalisé dans le cadre de ma formation d’ingénieur en intelligence artificielle et visant à appliquer une solution d’intelligence artificielle à un cas d’usage concret dans l’industrie de la mode.
🎯 Objectif : Évaluer la viabilité d’une technologie de vision par ordinateur pour l’analyse de tendances.
📅 Date : Avril 2025
🛠️ Outils : Python, API Hugging Face, Pandas, Matplotlib, Pillow, Requests
🎯 Problèmatique métier
Comment une marque de mode peut-elle analyser automatiquement et à grande échelle les photos d’influenceurs pour identifier les tendances émergentes (quels types de vêtements sont les plus portés ?) et ainsi orienter ses futures collections et stratégies marketing ?
👥 Utilisateurs concernés
- Les équipes Marketing & Tendance : pour identifier les styles populaires et adapter les campagnes publicitaires.
- Les Chefs de Produit et Designers : pour capter l’inspiration et concevoir des collections en phase avec la demande.
- Les Analystes de données (Data Analysts) : pour quantifier les tendances et fournir des rapports chiffrés à la direction.
💡 Objectif du projet
Mettre en place et évaluer la fiabilité d’un modèle d’IA (Proof of Concept) capable d’identifier et de catégoriser automatiquement les vêtements sur des images. L’enjeu est de valider si la technologie est assez mature pour automatiser une partie de la veille concurrentielle et de l’analyse de tendances.
🧭 Démarche adoptée
Sélection d’un outil d’IA spécialisé : Utilisation d’un modèle de segmentation pré-entraîné (segformer_b2_clothes
) via l’API Hugging Face pour une mise en œuvre rapide.
Mise en place d’un banc d’essai : Constitution d’un jeu de données de test incluant des images et leurs « vérités terrain » (masques de segmentation manuels) pour permettre une évaluation objective de la performance.
Définition de critères de succès métier : Utilisation d’une métrique de performance quantitative (le Dice Score) pour mesurer précisément la capacité du modèle à reconnaître chaque type de vêtement (pantalon, robe, sac, etc.).
Analyse fine des résultats : Création de rapports et de visualisations pour identifier les forces et les faiblesses de la solution (ex: « le modèle identifie très bien les pantalons mais peine à reconnaître les ceintures ») et ainsi juger de sa pertinence opérationnelle.
🔗 Source : https://github.com/cyrilleelie/OC_fashiontrendintel
🧰 Stack technique
L’ensemble du code est structuré et exécuté au sein d’un Jupyter Notebook, s’appuyant sur la stack technique suivante :
- Python
- Pandas, NumPy
- Pillow (PIL), Requests (pour l’appel à l’API)
- Matplotlib (pour la visualisation)
- Jupyter Notebook
- API Hugging Face (pour l’accès au modèle de segmentation)
📊 Traitement des données
- Source des données : Le projet traite un jeu de données d’images (situées dans
asset/top_influenceurs_2024/IMG
) et leurs masques de segmentation correspondants (vérité terrain, dansasset/top_influenceurs_2024/Mask
). - Pré-traitement : Les images sont lues en format binaire pour être envoyées à l’API. Les masques de prédiction et de vérité terrain sont ensuite convertis en tableaux NumPy pour les calculs de performance. Il n’y a pas de nettoyage ou de feature engineering au sens classique, car le projet est axé sur la vision par ordinateur.
🤖 Modélisation
- Modèle utilisé : Le projet utilise un unique modèle de segmentation sémantique pré-entraîné,
mattmdjaga/segformer_b2_clothes
, via l’API d’inférence de Hugging Face (serverless) - Métrique d’évaluation : La performance est mesurée avec le Dice Score, qui évalue la similarité entre le masque prédit par le modèle et le masque de vérité terrain. Ce score est calculé de manière globale pour chaque image, et de façon détaillée pour chaque classe de vêtement.
- Processus de validation : Le script itère sur un ensemble d’images de test, compare chaque prédiction à sa vérité terrain et agrège les scores. Il ne met pas en œuvre de validation croisée.
📈 Résultats
- Performance globale : Le script calcule la moyenne du Dice Score sur l’ensemble des images testées pour obtenir une mesure de performance globale (
segmentation_df["dice_score"].mean()
). - Performance par classe : Les scores Dice sont calculés pour chaque catégorie de vêtement (Chapeau, Pantalon, Robe, etc.) pour identifier les points forts et les faiblesses du modèle.
- Visualisation : Les résultats incluent des graphiques montrant la distribution des scores et la performance moyenne par classe, permettant une analyse visuelle rapide.
🧠 Interprétabilité
- Analyse de performance par classe : L’interprétabilité du modèle est réalisée en analysant le DataFrame
resume_classes
, qui agrège les scores Dice moyens, l’écart-type, et le nombre d’occurrences pour chaque type de vêtement. - Classes clés : Cette analyse permet d’identifier objectivement les classes que le modèle reconnaît avec le plus de précision et celles sur lesquelles il est en difficulté, fournissant des pistes d’amélioration concrètes.