README.MD updates
This commit is contained in:
parent
79d89947ba
commit
ce963b2cf7
2 changed files with 198 additions and 86 deletions
176
README.MD
176
README.MD
|
|
@ -1,112 +1,116 @@
|
||||||
# Projet 9
|
# Street Vision PoC - Segmentation Sémantique Urbaine
|
||||||
|
|
||||||
Documentation à venir
|
## 🎯 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).
|
||||||
|
|
||||||
# Dashboard de Comparaison de Modèles
|
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).
|
||||||
|
|
||||||
## Conformité aux Exigences
|
### 🔬 Contexte Technique
|
||||||
|
|
||||||
### Analyse Exploratoire des Données Non Structurées (Images)
|
- **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)
|
||||||
|
|
||||||
**Présentation d'exemples d'images selon les catégories :**
|
## 📊 Résultats Principaux
|
||||||
- Visualisation d'images du dataset Cityscapes organisées par 8 méta-classes de segmentation
|
|
||||||
- Sélection interactive d'images d'entraînement et de test avec prévisualisation
|
|
||||||
- Interface de navigation par catégories avec noms d'affichage conviviaux
|
|
||||||
|
|
||||||
**Comptage et répartition des données :**
|
| **Modèle** | **mIoU** | **Paramètres** | **Taille** | **Performance** |
|
||||||
- Graphiques en secteurs (pie charts) détaillant la répartition des 25,000 images Cityscapes
|
|------------|----------|----------------|------------|-----------------|
|
||||||
- Visualisation de l'utilisation projet : 80% train / 20% validation / 100% test
|
| **SegFormer-B1** | **79.98%** | 13.68M | 52MB | ⭐ **Meilleur** |
|
||||||
- Graphique de distribution des classes dans le dataset d'entraînement
|
| **FPN+ResNet34** | 79.22% | 23.16M | 88MB | 🔄 Baseline forte |
|
||||||
- Tableaux récapitulatifs avec statistiques détaillées par split
|
| **FPN+EfficientNet-B0** | 78.67% | 5.76M | 22MB | 💡 Compact |
|
||||||
|
| **SegFormer-B0** | 77.91% | 3.72M | 14MB | ⚡ Ultra-léger |
|
||||||
|
|
||||||
**Transformations des images :**
|
**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.
|
||||||
- Démonstration interactive du preprocessing : redimensionnement et normalisation
|
|
||||||
- Visualisation des augmentations de données aléatoires (rotation, flip, luminosité, etc.)
|
|
||||||
- Comparaison avant/après transformations avec alignement visuel
|
|
||||||
- Documentation complète des 6 types d'augmentations possibles
|
|
||||||
|
|
||||||
### Sélection de Données d'Entrée
|
### 🎯 Gains Significatifs par Classes Critiques
|
||||||
|
|
||||||
**Interface de sélection multiple :**
|
- **Human** : +1.78% IoU (sécurité critique)
|
||||||
- Liste déroulante pour images test Cityscapes avec informations sur la vérité terrain
|
- **Vehicle** : +1.05% IoU (obstacles mobiles)
|
||||||
- Upload de fichiers personnels (JPEG, PNG) avec validation de format
|
- **Object** : +0.56% IoU (signalétique urbaine)
|
||||||
- Prévisualisation des images sélectionnées avant traitement
|
|
||||||
- Gestion des erreurs et feedback utilisateur en temps réel
|
|
||||||
|
|
||||||
### Résultats de Prédiction
|
## 🚀 Déploiement Rapide
|
||||||
|
|
||||||
**Comparaison complète de modèles :**
|
### Docker Hub
|
||||||
- Affichage côte à côte des prédictions des deux meilleurs modèles
|
|
||||||
- Visualisations avec image originale, masques prédits et vérité terrain
|
|
||||||
- Détection et mise en évidence des erreurs de segmentation
|
|
||||||
- Statistiques détaillées par classe avec pourcentages et nombre de pixels
|
|
||||||
|
|
||||||
**Métriques de performance :**
|
L'application est containerisée et disponible sur Docker Hub :
|
||||||
- Temps d'inférence comparatif avec analyse de vitesse
|
|
||||||
- Scores de performance (mIoU, Accuracy) par modèle
|
|
||||||
- IoU par classe pour analyse fine des performances
|
|
||||||
- Graphiques comparatifs interactifs des résultats
|
|
||||||
|
|
||||||
### Déploiement Cloud
|
```bash
|
||||||
|
docker pull grgmdmn/street-vision-poc_api
|
||||||
|
```
|
||||||
|
|
||||||
**Architecture déployée :**
|
### Configuration avec Docker Compose
|
||||||
- Application FastAPI pour l'API de comparaison de modèles
|
|
||||||
- Interface Streamlit pour le dashboard utilisateur
|
|
||||||
- Déploiement sur infrastructure cloud avec haute disponibilité
|
|
||||||
- Gestion automatique des ressources et montée en charge
|
|
||||||
|
|
||||||
### Accessibilité WCAG
|
1. Copiez le fichier d'exemple de configuration :
|
||||||
|
```bash
|
||||||
|
cp docker-compose.yml.example docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
**Conformité aux critères essentiels :**
|
2. Configurez les variables d'environnement dans `docker-compose.yml`.
|
||||||
|
|
||||||
#### Contraste des Couleurs (WCAG AA)
|
3. Lancez l'application :
|
||||||
- Palette de couleurs avec ratios de contraste ≥ 4.1:1 pour éléments graphiques
|
```bash
|
||||||
- Ratios de contraste ≥ 4.5:1 pour le texte sur fond
|
docker-compose up -d
|
||||||
- 8 couleurs principales validées : bleu (#0066CC), rouge (#CC0000), vert (#006600), etc.
|
```
|
||||||
- Remplacement des dégradés par des couleurs unies à contraste élevé
|
|
||||||
|
|
||||||
#### Alternatives Textuelles
|
4. Accédez à l'interface : `http://localhost:$(port)`
|
||||||
- Descriptions alternatives détaillées pour tous les graphiques générées automatiquement
|
|
||||||
- Textes explicatifs pour chaque visualisation (pie charts, bar charts)
|
|
||||||
- Labels ARIA appropriés pour les éléments interactifs
|
|
||||||
- Documentation textuelle complète des transformations d'images
|
|
||||||
|
|
||||||
#### Indication Non-Couleur Uniquement
|
## 🎮 Fonctionnalités de l'Interface
|
||||||
- Motifs et hachures complémentaires aux couleurs (optionnel via checkbox)
|
|
||||||
- 6 motifs différents : diagonales, verticales, horizontales, points, croix
|
|
||||||
- Différenciation par forme et texture en plus des couleurs
|
|
||||||
- Bordures et contours renforcés pour la distinction visuelle
|
|
||||||
|
|
||||||
#### Navigation Clavier
|
### Dashboard Interactif
|
||||||
- CSS focus visible avec contours bleus (#0066CC) de 2px
|
|
||||||
- Support complet de la navigation par tabulation
|
|
||||||
- Indicateurs visuels clairs pour les éléments focusés
|
|
||||||
- Respect de l'ordre logique de navigation
|
|
||||||
|
|
||||||
#### Tableaux de Données Accessibles
|
- **Upload d'images** : Glisser-déposer d'images urbaines
|
||||||
- Tableaux structurés complémentaires à tous les graphiques
|
- **Double inférence** : Comparaison simultanée FPN vs SegFormer
|
||||||
- En-têtes appropriés avec scope et descriptions
|
- **Visualisation** : Masques de segmentation colorés par classe
|
||||||
- Données exportables et lisibles par lecteurs d'écran
|
- **Métriques temps réel** : Temps d'inférence et scores de confiance
|
||||||
- Configuration responsive pour tous les écrans
|
- **Export** : Téléchargement des résultats de segmentation
|
||||||
|
- **Accessibilité WCAG** : Interface conforme aux standards d'accessibilité
|
||||||
|
|
||||||
**Fonctionnalités d'assistance intégrées :**
|
### Analyse Exploratoire des Données
|
||||||
- Checkbox "Activer les motifs (accessibilité visuelle)" pour personnalisation
|
|
||||||
- Descriptions automatiques des graphiques avec statistiques complètes
|
|
||||||
- Interface adaptable aux besoins des utilisateurs en situation de handicap
|
|
||||||
- Documentation complète des fonctionnalités d'accessibilité via endpoint `/accessibility-info`
|
|
||||||
|
|
||||||
## Architecture Technique
|
- **Statistiques Cityscapes** : Distribution des classes, résolutions natives
|
||||||
|
- **Graphiques interactifs** : Répartition pixel par méta-classe
|
||||||
|
- **Exemples annotés** : Visualisation échantillons du dataset
|
||||||
|
|
||||||
**Stack technologique :**
|
## 📈 Méthodologie d'Évaluation
|
||||||
- Backend : FastAPI + PyTorch pour l'inférence des modèles
|
|
||||||
- Frontend : Streamlit avec composants accessibles
|
|
||||||
- Visualisations : Matplotlib avec palettes WCAG
|
|
||||||
- API REST documentée avec validation Pydantic
|
|
||||||
- Gestion d'état optimisée pour les comparaisons de modèles
|
|
||||||
|
|
||||||
**Performance et fiabilité :**
|
### Approche Comparative
|
||||||
- Temps d'inférence optimisés (< 1 seconde par image)
|
|
||||||
- Gestion mémoire efficace avec fermeture automatique des figures
|
1. **Baseline CNN** : Réentraînement FPN+EfficientNet/ResNet aux résolutions supérieures
|
||||||
- Validation des formats et tailles de fichiers
|
2. **Nouvelle approche** : Évaluation SegFormer avec attention globale
|
||||||
- Nettoyage automatique des fichiers temporaires
|
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é](https://github.com/qubvel/segmentation_models.pytorch)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**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.
|
||||||
108
app/README.MD
Normal file
108
app/README.MD
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
|
||||||
|
# Dashboard de Comparaison de Modèles
|
||||||
|
|
||||||
|
## Conformité aux Exigences
|
||||||
|
|
||||||
|
### Analyse Exploratoire des Données Non Structurées (Images)
|
||||||
|
|
||||||
|
**Présentation d'exemples d'images selon les catégories :**
|
||||||
|
- Visualisation d'images du dataset Cityscapes organisées par 8 méta-classes de segmentation
|
||||||
|
- Sélection interactive d'images d'entraînement et de test avec prévisualisation
|
||||||
|
- Interface de navigation par catégories avec noms d'affichage conviviaux
|
||||||
|
|
||||||
|
**Comptage et répartition des données :**
|
||||||
|
- Graphiques en secteurs (pie charts) détaillant la répartition des 25,000 images Cityscapes
|
||||||
|
- Visualisation de l'utilisation projet : 80% train / 20% validation / 100% test
|
||||||
|
- Graphique de distribution des classes dans le dataset d'entraînement
|
||||||
|
- Tableaux récapitulatifs avec statistiques détaillées par split
|
||||||
|
|
||||||
|
**Transformations des images :**
|
||||||
|
- Démonstration interactive du preprocessing : redimensionnement et normalisation
|
||||||
|
- Visualisation des augmentations de données aléatoires (rotation, flip, luminosité, etc.)
|
||||||
|
- Comparaison avant/après transformations avec alignement visuel
|
||||||
|
- Documentation complète des 6 types d'augmentations possibles
|
||||||
|
|
||||||
|
### Sélection de Données d'Entrée
|
||||||
|
|
||||||
|
**Interface de sélection multiple :**
|
||||||
|
- Liste déroulante pour images test Cityscapes avec informations sur la vérité terrain
|
||||||
|
- Upload de fichiers personnels (JPEG, PNG) avec validation de format
|
||||||
|
- Prévisualisation des images sélectionnées avant traitement
|
||||||
|
- Gestion des erreurs et feedback utilisateur en temps réel
|
||||||
|
|
||||||
|
### Résultats de Prédiction
|
||||||
|
|
||||||
|
**Comparaison complète de modèles :**
|
||||||
|
- Affichage côte à côte des prédictions des deux meilleurs modèles
|
||||||
|
- Visualisations avec image originale, masques prédits et vérité terrain
|
||||||
|
- Détection et mise en évidence des erreurs de segmentation
|
||||||
|
- Statistiques détaillées par classe avec pourcentages et nombre de pixels
|
||||||
|
|
||||||
|
**Métriques de performance :**
|
||||||
|
- Temps d'inférence comparatif avec analyse de vitesse
|
||||||
|
- Scores de performance (mIoU, Accuracy) par modèle
|
||||||
|
- IoU par classe pour analyse fine des performances
|
||||||
|
- Graphiques comparatifs interactifs des résultats
|
||||||
|
|
||||||
|
### Déploiement Cloud
|
||||||
|
|
||||||
|
**Architecture déployée :**
|
||||||
|
- Application FastAPI pour l'API de comparaison de modèles
|
||||||
|
- Interface Streamlit pour le dashboard utilisateur
|
||||||
|
- Déploiement sur infrastructure cloud avec haute disponibilité
|
||||||
|
- Gestion automatique des ressources et montée en charge
|
||||||
|
|
||||||
|
### Accessibilité WCAG
|
||||||
|
|
||||||
|
**Conformité aux critères essentiels :**
|
||||||
|
|
||||||
|
#### Contraste des Couleurs (WCAG AA)
|
||||||
|
- Palette de couleurs avec ratios de contraste ≥ 4.1:1 pour éléments graphiques
|
||||||
|
- Ratios de contraste ≥ 4.5:1 pour le texte sur fond
|
||||||
|
- 8 couleurs principales validées : bleu (#0066CC), rouge (#CC0000), vert (#006600), etc.
|
||||||
|
- Remplacement des dégradés par des couleurs unies à contraste élevé
|
||||||
|
|
||||||
|
#### Alternatives Textuelles
|
||||||
|
- Descriptions alternatives détaillées pour tous les graphiques générées automatiquement
|
||||||
|
- Textes explicatifs pour chaque visualisation (pie charts, bar charts)
|
||||||
|
- Labels ARIA appropriés pour les éléments interactifs
|
||||||
|
- Documentation textuelle complète des transformations d'images
|
||||||
|
|
||||||
|
#### Indication Non-Couleur Uniquement
|
||||||
|
- Motifs et hachures complémentaires aux couleurs (optionnel via checkbox)
|
||||||
|
- 6 motifs différents : diagonales, verticales, horizontales, points, croix
|
||||||
|
- Différenciation par forme et texture en plus des couleurs
|
||||||
|
- Bordures et contours renforcés pour la distinction visuelle
|
||||||
|
|
||||||
|
#### Navigation Clavier
|
||||||
|
- CSS focus visible avec contours bleus (#0066CC) de 2px
|
||||||
|
- Support complet de la navigation par tabulation
|
||||||
|
- Indicateurs visuels clairs pour les éléments focusés
|
||||||
|
- Respect de l'ordre logique de navigation
|
||||||
|
|
||||||
|
#### Tableaux de Données Accessibles
|
||||||
|
- Tableaux structurés complémentaires à tous les graphiques
|
||||||
|
- En-têtes appropriés avec scope et descriptions
|
||||||
|
- Données exportables et lisibles par lecteurs d'écran
|
||||||
|
- Configuration responsive pour tous les écrans
|
||||||
|
|
||||||
|
**Fonctionnalités d'assistance intégrées :**
|
||||||
|
- Checkbox "Activer les motifs (accessibilité visuelle)" pour personnalisation
|
||||||
|
- Descriptions automatiques des graphiques avec statistiques complètes
|
||||||
|
- Interface adaptable aux besoins des utilisateurs en situation de handicap
|
||||||
|
- Documentation complète des fonctionnalités d'accessibilité via endpoint `/accessibility-info`
|
||||||
|
|
||||||
|
## Architecture Technique
|
||||||
|
|
||||||
|
**Stack technologique :**
|
||||||
|
- Backend : FastAPI + PyTorch pour l'inférence des modèles
|
||||||
|
- Frontend : Streamlit avec composants accessibles
|
||||||
|
- Visualisations : Matplotlib avec palettes WCAG
|
||||||
|
- API REST documentée avec validation Pydantic
|
||||||
|
- Gestion d'état optimisée pour les comparaisons de modèles
|
||||||
|
|
||||||
|
**Performance et fiabilité :**
|
||||||
|
- Temps d'inférence optimisés (< 1 seconde par image)
|
||||||
|
- Gestion mémoire efficace avec fermeture automatique des figures
|
||||||
|
- Validation des formats et tailles de fichiers
|
||||||
|
- Nettoyage automatique des fichiers temporaires
|
||||||
Loading…
Add table
Reference in a new issue