oc-p09-street-vision-poc/README.fr.md
Grégoire Mureau 02a2cd0a28
All checks were successful
CI / syntax (push) Successful in 8s
docs: clone HTTPS only, language banner at the top
Public READMEs now expose a single git.gregoiremureau.com clone URL.
The Tailscale SSH form only works on the homelab network and leaked the
NAS address. The language switcher sits right under the title so an
English speaker landing on the French page can leave without reading French.
2026-09-10 14:42:28 +02:00

5.5 KiB
Raw Permalink Blame History

Street Vision PoC - Segmentation Sémantique Urbaine

📘 This project is also available in English 🇬🇧

Source de vérité : Forgejo (auto-hébergé).

git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p09-street-vision-poc.git

Prod : https://api.gregoiremureau.com/ml/street-vision-poc/

Dataset : ./fetch-data.sh (Cityscapes hors git).

🎯 Description du Projet

Street Vision PoC est une preuve de concept démontrant l'amélioration des performances de segmentation sémantique urbaine en comparant les architectures CNN traditionnelles (FPN) aux approches Transformer modernes (SegFormer).

Ce projet évalue empiriquement le potentiel des Vision Transformers pour la compréhension de scènes urbaines complexes, avec un focus sur les classes critiques pour la sécurité (piétons, véhicules, signalétique).

🔬 Contexte Technique

  • Dataset : Cityscapes (2,975 images haute résolution annotées pixel-par-pixel)
  • Architectures comparées :
    • CNN traditionnel : FPN + EfficientNet-B0/ResNet34
    • Vision Transformer : SegFormer-B0/B1
  • Résolutions d'évaluation : 512×512 et 768×768 pixels
  • Métrique principale : Mean Intersection over Union (mIoU)

📊 Résultats Principaux

Modèle mIoU Paramètres Taille Performance
SegFormer-B1 79.98% 13.68M 52MB ⭐ Meilleur
FPN+ResNet34 79.22% 23.16M 88MB 🔄 Baseline forte
FPN+EfficientNet-B0 78.67% 5.76M 22MB 💡 Compact
SegFormer-B0 77.91% 3.72M 14MB ⚡ Ultra-léger

Analyse comparative : SegFormer-B1 et FPN+ResNet34 atteignent des performances similaires (~79-80% mIoU), mais SegFormer-B1 présente l'avantage d'être plus compact et probablement plus rapide sur GPU. Les versions SegFormer-B2 à B5 promettraient des gains significatifs, mais mes contraintes matérielles n'ont pas permis leur évaluation.

🎯 Gains Significatifs par Classes Critiques

  • Human : +1.78% IoU (sécurité critique)
  • Vehicle : +1.05% IoU (obstacles mobiles)
  • Object : +0.56% IoU (signalétique urbaine)

🚀 Déploiement Rapide

Docker Hub

L'application est containerisée et disponible sur Docker Hub :

docker pull grgmdmn/street-vision-poc_api
# prod live :
# https://api.gregoiremureau.com/ml/street-vision-poc/

Configuration avec Docker Compose

  1. Copiez le fichier d'exemple de configuration :
cp docker-compose.yml.example docker-compose.yml
  1. Configurez les variables d'environnement dans docker-compose.yml.

  2. Lancez l'application :

docker-compose up -d
  1. Accédez à l'interface : http://localhost:$(port)

🎮 Fonctionnalités de l'Interface

Dashboard Interactif

  • Upload d'images : Glisser-déposer d'images urbaines
  • Double inférence : Comparaison simultanée FPN vs SegFormer
  • Visualisation : Masques de segmentation colorés par classe
  • Métriques temps réel : Temps d'inférence et scores de confiance
  • Export : Téléchargement des résultats de segmentation
  • Accessibilité WCAG : Interface conforme aux standards d'accessibilité

Analyse Exploratoire des Données

  • Statistiques Cityscapes : Distribution des classes, résolutions natives
  • Graphiques interactifs : Répartition pixel par méta-classe
  • Exemples annotés : Visualisation échantillons du dataset

📈 Méthodologie d'Évaluation

Approche Comparative

  1. Baseline CNN : Réentraînement FPN+EfficientNet/ResNet aux résolutions supérieures
  2. Nouvelle approche : Évaluation SegFormer avec attention globale
  3. Protocole rigoureux : Validation croisée, métriques standardisées
  4. Analyse par classe : Performance détaillée sur 8 méta-classes urbaines

Limites Identifiées

  • Résolution fixe : Évaluation sans sliding window (vs protocole original)
  • Ressources limitées : Tests uniquement sur SegFormer-B0/B1
  • Conditions contrôlées : Dataset Cityscapes uniquement (météo favorable)

🔬 Insights Techniques

Avantages SegFormer

  • Attention globale : Chaque pixel "voit" toute l'image simultanément
  • Architecture plus légère : Modèle compact avec moins de paramètres
  • Robustesse contextuelle : Meilleure gestion occlusions et objets complexes
  • Potentiel d'amélioration : Versions B2-B5 promettraient des gains significatifs

Trade-offs Identifiés

  • Vitesse CPU classique : ~2× plus lent que FPN sur processeurs haute performance (Xeon, 9600X)
  • Vitesse CPU économe : 3× plus rapide sur processeurs économes en énergie (N100)
  • Optimisation GPU : Architecture Transformer favorisée par accélération matérielle

📚 Références

  • Xie, E. et al. (2021). SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers. NeurIPS 2021.
  • Cordts, M. et al. (2016). The Cityscapes Dataset for Semantic Urban Scene Understanding. CVPR 2016.
  • Segmentation Models PyTorch - Framework d'implémentation utilisé

Note : Cette preuve de concept démontre le potentiel des architectures Transformer pour la segmentation urbaine, tout en soulignant l'importance des ressources computationnelles pour exploiter pleinement leurs capacités.