Projet M2 VMI - Modélisation de systèmes intelligents
Etudiant 1: Samy (SLIC & SLIC IPOL)
Dans ce projet, nous comparons plusieurs méthodes d’extraction de superpixels, utilisées comme étape intermédiaire en vision par ordinateur. Les superpixels regroupent des pixels voisins aux propriétés visuelles similaires et permettent de passer d’une représentation pixel par pixel à une segmentation plus compacte et exploitable.
Malgré la dominance du deep learning en vision par ordinateur, les méthodes de superpixelisation conservent leur pertinence pour plusieurs raisons :
- Efficacité computationnelle : Réduction drastique du nombre de primitives à traiter (de millions de pixels à quelques centaines de superpixels)
- Interprétabilité : Représentation mid-level compréhensible et manipulable
- Apprentissage faiblement supervisé : Les superpixels servent de support pour les annotations partielles
- Prétraitement pour réseaux de neurones : Segmentation initiale pour architectures graph-based
- Applications contraintes : Imagerie satellite, systèmes embarqués où les ressources sont limitées
Ce dépôt contient l'implémentation et l'évaluation de deux variantes de la méthode SLIC :
- SLIC original (Achanta et al., 2012)
- SLIC IPOL (Gay et al., 2022) - version améliorée
Note importante : Ce dépôt est une copie extraite du projet complet développé en collaboration (Yanis & Samy), disponible sur : https://github.com/Evowind/slic-hierarchical-superpixels
Cette version contient uniquement les implémentations SLIC et SLIC IPOL développées par Samy.
R. Achanta, A. Shaji, K. Smith, A. Lucchi, P. Fua, S. Süsstrunk
SLIC Superpixels Compared to State-of-the-art Superpixel Methods
IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012
Contribution principale : Algorithme simple et efficace basé sur k-means adapté, opérant dans un espace 5D (Lab + XY). Complexité linéaire O(N) avec nombre d'itérations limité.
R. Gay, J. Lecoutre, N. Menouret, A. Morillon, P. Monasse
Bilateral K-Means for Superpixel Computation (the SLIC Method)
Image Processing On Line (IPOL), 2022
Améliorations apportées :
- Meilleure garantie de connectivité via propagation guidée par distance (Dijkstra)
- Gestion optimisée des pixels orphelins (adoption par similarité couleur)
- Gradient preconditioning flexible (fenêtres variables)
Principe algorithmique :
- Initialisation : Placement de K centres sur une grille régulière (espacement S = sqrt(N/K))
- Perturbation : Déplacement des centres vers zones de gradient minimal (fenêtre 3x3)
- Itérations k-means :
- Assignment : chaque pixel est assigné au centre le plus proche (recherche limitée 2S×2S)
- Update : recalcul des centres comme moyenne des pixels assignés
- Post-traitement : Enforcement de connectivité (fusion des composantes isolées)
Distance SLIC :
D = sqrt(d_lab² + (d_xy/S)² × m²)
où :
d_lab: distance euclidienne dans l'espace Labd_xy: distance spatiale euclidienneS: espacement de grille (normalisation)m: paramètre de compacité (balance couleur/espace)
Fichier : src/methods/slic/slic_original.py
Différences clés avec SLIC original :
| Aspect | SLIC Original | SLIC IPOL |
|---|---|---|
| Connectivité | Fusion simple avec voisin le plus proche | Propagation Dijkstra + adoption par couleur |
| Critère orphelins | Distance euclidienne Lab | Distance Manhattan + similarité Lab |
| Gradient preconditioning | Fixe 3x3 | Flexible (0, 3, 5, 7...) |
| Robustesse | Artefacts possibles | Superpixels plus cohérents |
Fichier : src/methods/slic/slic_ipol.py
Boundary Recall (BR) : Proportion de contours du GT correctement détectés
- Formule :
BR = contours_detectes / total_contours_GT - Plage : [0, 1], plus élevé = meilleur
Under-segmentation Error (UE) : Débordement des superpixels
- Mesure les pixels débordant hors des segments GT
- Plage : [0, ∞], plus bas = meilleur
Achievable Segmentation Accuracy (ASA) : Précision théorique maximale
- Assigne chaque superpixel à la classe GT majoritaire
- Plage : [0, 1], plus élevé = meilleur
Precision (P) : Exactitude des contours prédits
- Proportion de contours prédits qui sont réellement des contours GT
- Plage : [0, 1], plus élevé = meilleur
Contour Density (CD) : Ratio densité contours prédits/GT
- CD ≈ 1.0 : densité optimale
- CD > 1.0 : sur-détection
- CD < 1.0 : sous-détection
Compactness : Mesure la régularité des formes
- Formule :
C = 4π × aire / périmètre² - Plage : [0, 1], 1.0 = cercle parfait
Regularity : Uniformité des tailles
- Basée sur coefficient de variation des tailles
- Plage : [0, 1], 1.0 = toutes tailles identiques
Global Regularity (GR) : Uniformité de la grille spatiale
- Basée sur écart-type des distances inter-centres
- Plage : [0, 1], 1.0 = grille parfaitement régulière
Image BSDS500 – 107045.jpg
Configuration : n_segments ≈ 200, compactness = 10, 10 itérations
Observations :
- Les deux méthodes produisent des superpixels visuellement comparables
- SLIC IPOL génère légèrement plus de superpixels que la version originale
- Les différences de régularité visuelle restent modestes et dépendent fortement des zones de l’image
Aucune supériorité visuelle nette et systématique de SLIC IPOL n’est observable sur cet exemple isolé.
| Métrique | SLIC Original | SLIC IPOL | Meilleur |
|---|---|---|---|
| Compacité | 0.4122 | 0.4555 | IPOL |
| Régularité | 0.6964 | 0.6870 | Original |
| Global Regularity | 0.8220 | 0.8069 | Original |
Analyse :
- SLIC IPOL améliore clairement la compacité
- La régularité et la régularité globale sont légèrement inférieures à la version originale
- Les gains ne sont donc pas uniformes sur les métriques intrinsèques
| Métrique | SLIC Original | SLIC IPOL | Meilleur |
|---|---|---|---|
| Boundary Recall (BR) | 0.7669 | 0.7452 | Original |
| Under-segmentation Error (UE) | 0.6267 | 0.5764 | IPOL |
| Corrected UE | 0.6233 | 0.5764 | IPOL |
| Achievable Seg. Accuracy (ASA) | 0.9121 | 0.9262 | IPOL |
| Precision (P) | 0.0684 | 0.0690 | IPOL |
| Contour Density (CD) | 5.4897 | 5.1577 | IPOL |
| Explained Variation | 0.9052 | 0.9204 | IPOL |
Analyse :
- SLIC IPOL réduit significativement l’under-segmentation
- L’ASA et l’Explained Variation sont améliorées
- En revanche, le Boundary Recall diminue, indiquant une moins bonne couverture des contours de référence
- Les gains sont donc orientés vers la qualité régionale plutôt que la détection fine des frontières
Image : 481 × 321
- SLIC Original : 4.371 s
- SLIC IPOL : 1.512 s
Soit une réduction du temps d’exécution d’environ 65 %, ce qui constitue l’amélioration la plus nette et la plus robuste de SLIC IPOL.
L’étude paramétrique repose exclusivement sur une recherche en grille contrôlée, visualisée par la figure grid_search_topk.
Contrairement à une analyse paramètre-par-paramètre, cette approche compare directement des configurations complètes (n_segments, compactness) à granularité réelle comparable.
La sélection des meilleures configurations est effectuée à l’aide d’un score multi-métrique normalisé, intégrant :
- la qualité régionale (ASA, Explained Variation),
- la précision des contours (Boundary Recall),
- la pénalisation de la sous-segmentation (UE, CUE),
- la stabilité inter-GT (écarts-types),
- et le temps d’exécution.
Les configurations dont le nombre réel de superpixels s’écarte excessivement de la cible sont exclues.
Les meilleures configurations retenues pour une granularité cible d’environ 200 superpixels sont :
| n_segments | m | Score | ASA | UE |
|---|---|---|---|---|
| 200 | 20 | 5.4675 | 0.9171 | 0.5888 |
| 200 | 15 | 4.8744 | 0.9148 | 0.5949 |
| 200 | 10 | 3.1021 | 0.9121 | 0.6267 |
| 200 | 5 | 0.4468 | 0.9086 | 0.6536 |
- À granularité contrôlée, le paramètre dominant est la compacité
- L’augmentation de
maméliore la cohérence régionale et réduit la sous-segmentation - Les faibles valeurs de
mfavorisent l’adhérence locale aux contours, mais au prix d’une dégradation nette des métriques régionales - Le score composite met en évidence un compromis robuste autour de m ∈ [15, 20]
Les variations observées sont cohérentes avec le comportement interne de SLIC : une compacité plus élevée stabilise les clusters et limite les débordements inter-régions, tandis qu’une compacité trop faible favorise des formes irrégulières et instables.
Malgré un paramètre cible n_segments = 200, le nombre réel de superpixels dépend de la compacité :
- m = 20 → ~210 superpixels
- m = 15 → ~209 superpixels
- m = 10 → ~203 superpixels
- m = 5 → ~188 superpixels
Ces écarts justifient l’approche retenue :
- filtrage des configurations hors tolérance
- comparaison basée sur le nombre réel de régions plutôt que sur le paramètre demandé
L’étude paramétrique, basée sur une recherche en grille multi-métrique, montre que :
- le réglage de
n_segmentsfixe la granularité globale mais ne détermine pas à lui seul la qualité - la compacité
mest le facteur principal de compromis entre régularité et précision - pour une granularité d’environ 200 superpixels, m ≈ 15–20 constitue un réglage robuste
SLIC IPOL n’est pas strictement supérieur à SLIC sur toutes les métriques. Ses avantages principaux sont :
- une accélération majeure
- une meilleure compacité
- une réduction de l’under-segmentation
En contrepartie :
- la régularité globale
- et le Boundary Recall
sont légèrement dégradés. Le choix entre SLIC et SLIC IPOL dépend donc clairement de la priorité donnée soit à la vitesse et à la cohérence régionale, soit à la précision des contours.
Douze testeurs ont évalué 5 images en utilisant trois méthodes de segmentation en superpixels : SLIC, SLIC_IPOL et SIT-HSS. Chaque méthode a été notée selon les critères suivants (échelle de 1 à 5) :
- Qualité des contours : respect des frontières naturelles des objets
- Régularité et uniformité : homogénéité de la taille et de la forme des superpixels
- Cohérence chromatique : similarité des couleurs à l’intérieur d’un même superpixel
- Équilibre global : méthode jugée la plus satisfaisante pour chaque image
Les réponses manquantes (questions modifiées en cours de formulaire) ont été ignorées dans les calculs.
- 9 étudiants en Vision par Ordinateur (75 %)
- 3 testeurs issus d’autres spécialités (25 %)
- 4 testeurs avec expérience préalable des superpixels (33 %)
- 8 testeurs sans expérience préalable (67 %)
| Critère | SLIC | SLIC_IPOL | SIT-HSS |
|---|---|---|---|
| Qualité des contours | 3.27 | 3.37 | 3.55 |
| Régularité / uniformité | 3.32 | 3.33 | 3.20 |
| Cohérence chromatique | 3.28 | 3.28 | 3.47 |
| Moyenne générale | 3.29 | 3.33 | 3.41 |
Ces résultats montrent des écarts modérés entre les méthodes, avec un léger avantage pour SIT-HSS sur les critères liés à la fidélité visuelle et des contours.
(1 = meilleure méthode, 3 = moins performante)
| Méthode | Rang moyen |
|---|---|
| SLIC | 1.58 |
| SIT-HSS | 1.83 |
| SLIC_IPOL | 2.58 |
Bien que SIT-HSS obtienne de meilleurs scores qualitatifs, SLIC est la méthode la plus fréquemment bien classée, suggérant une perception de robustesse et de régularité.
(60 évaluations au total)
| Méthode | Votes | Pourcentage |
|---|---|---|
| SIT-HSS | 34 | 56.7 % |
| SLIC_IPOL | 12 | 20.0 % |
| SLIC | 10 | 16.7 % |
| Aucune ne se démarque | 4 | 6.6 % |
SIT-HSS est majoritairement perçue comme offrant le meilleur compromis global.
| Critère | SLIC meilleur | SLIC_IPOL meilleur | Équivalent |
|---|---|---|---|
| Qualité des contours | 27 % | 36 % | 37 % |
| Régularité | 36 % | 27 % | 37 % |
| Cohérence chromatique | 27 % | 27 % | 46 % |
Aucune méthode ne s’impose clairement : le choix dépend fortement de l’image considérée.
-
Oui recommandé : 4 testeurs (33 %)
- Meilleurs contours
- Gain de temps
- Meilleure reproductibilité
-
Non recommandé : 1 testeur (8 %)
- Performances jugées inférieures globalement
-
Dépend du contexte : 7 testeurs (59 %)
SLIC
- Bon équilibre général
- Régularité visuelle
- Couleurs perçues comme stables
SLIC_IPOL
- Contours plus précis sur certaines images
- Meilleure perception de relief
- Capacité à faire ressortir des détails fins spécifiques
SIT-HSS
- Fidélité accrue à la structure de l’image
- Meilleure séparation des objets
- Détails et contrastes plus marqués
Limitations observées
- SLIC : fusion d’éléments distincts, contours externes parfois flous
- SLIC_IPOL : résultats inconstants selon les images
- SIT-HSS : sur-segmentation locale dans certains cas
- Imagerie satellite (détection, analyse de scènes)
- Traitement artistique et stylisation
- Analyse médicale (simulation de troubles visuels)
- Analyse picturale et décomposition de compositions
Cette évaluation repose sur un nombre limité de testeurs et d’images, ce qui restreint la portée statistique des résultats. Les jugements restent subjectifs et dépendent fortement du contenu des images évaluées. Enfin, certaines réponses (5) ont été ignorées en raison de modifications du formulaire en cours d’évaluation, ce qui peut introduire un léger biais.
- SIT-HSS est la méthode la plus appréciée globalement, notamment pour la qualité visuelle perçue
- SLIC et SLIC_IPOL présentent des performances moyennes très proches
- SLIC se distingue par sa régularité et sa stabilité
- SLIC_IPOL offre de meilleurs contours dans certains cas spécifiques
- Aucune méthode n’est universellement supérieure : le choix dépend fortement du type d’image
- Le protocole a été jugé clair et compréhensible par les testeurs (note de 4.17/5)
Fichier : results\human_study\Reponses_au_formulaire.csv
Nous avons comparé notre implémentation avec la version officielle disponible sur IPOL.
Validation :
- Différence moyenne sur métriques : < 2%
- Résultats visuels quasi-identiques
- Notre implémentation est 5-10% plus lente (Python pur vs C++ optimisé IPOL)
- SLIC IPOL supérieur à SLIC original sur tous les critères évalués
- Surcoût computational acceptable (+14%) pour gains significatifs en qualité
- Validation expérimentale : métriques quantitatives + évaluation humaine convergent
- Paramètres optimaux : n_segments ∈ [200, 400], compactness ∈ [10, 15]
Les superpixels restent pertinents car :
- Complémentarité avec DL : prétraitement pour Graph Neural Networks
- Interprétabilité : compréhension des décisions (XAI)
- Efficacité : ressources limitées (edge computing, satellite)
- Apprentissage faible : annotations coûteuses
- Intégration dans pipelines deep learning (superpixel pooling)
- Extension aux vidéos (cohérence temporelle)
- Optimisation GPU pour temps réel
- Adaptation pour imagerie médicale/satellite
slic-ipol-implementation/
├── src/
│ ├── methods/
│ │ └── slic/
│ │ ├── slic_original.py # Implémentation SLIC original
│ │ ├── slic_ipol.py # Implémentation SLIC IPOL
│ │ ├── clustering.py # K-means adapté
│ │ └── utils.py # Utilitaires SLIC
│ ├── evaluation/
│ │ ├── metrics.py # Métriques (BR, UE, ASA, etc.)
│ │ └── visualize.py # Fonctions de visualisation
│ ├── preprocessing/
│ │ └── image_loader.py # Chargement BSDS500
│ └── utils/
│ ├── color_space.py # Conversions RGB/Lab
│ └── distance.py # Distance SLIC
├── experiments/
│ ├── compare_slic_ipol.py # Comparaison SLIC vs IPOL
│ ├── parameter_tuning.py # Optimisation paramètres
│ └── run_slic.py # Exécution simple
├── notebooks/
│ └── slic_analysis.ipynb # Notebook d'analyse
├── tests/
│ └── test_slic.py # Tests unitaires
├── data/
│ └── BSDS500/ # Dataset (non inclus)
├── results/ # Résultats générés + Etude Humain
├── quick_start.py # Démo rapide
└── requirements.txt # Dépendances
python >= 3.8# Cloner le dépôt
git clone https://github.com/[votre-username]/slic-ipol-implementation.git
cd slic-ipol-implementation
# Créer environnement virtuel
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# ou
.venv\Scripts\activate # Windows
# Installer dépendances
pip install -r requirements.txtTélécharger depuis : BSDS500
Extraire dans data/BSDS500/
1. Démo rapide
python quick_start.py2. Comparaison SLIC vs SLIC IPOL
python experiments/compare_slic_ipol.py \
--image data/BSDS500/data/images/test/107045.jpg \
--g data \
--n_segments 200 \
--compactness 103. Optimisation paramètres
python experiments/parameter_tuning.py \
--image data/BSDS500/data/images/test/107045.jpg \
--study grid[1] R. Achanta et al., "SLIC Superpixels Compared to State-of-the-art Superpixel Methods", IEEE TPAMI, 2012
[2] R. Gay et al., "Bilateral K-Means for Superpixel Computation (the SLIC Method)", IPOL, 2022
[3] "Hierarchical Superpixel Segmentation via Structural Information Theory", arXiv:2501.07069, 2025
[4] "Application to satellite images", arXiv:2411.17922v2, 2024
[5] BSDS500 Dataset: https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html
Pour toute question concernant cette implémentation :
- Ouvrir une issue sur GitHub
- Consulter la documentation dans
docs/ - Voir le projet complet : https://github.com/Evowind/slic-hierarchical-superpixels
Licence : MIT
Acknowledgments : Ce travail s'inscrit dans le cadre du cours de Modélisation de systèmes intelligents du M2 VMI. Merci aux auteurs des articles originaux et à l'équipe IPOL pour leurs travaux de référence.

