Skip to content

Repository files navigation

Méthodes d'extraction de superpixels : SLIC & SLIC IPOL

Projet M2 VMI - Modélisation de systèmes intelligents
Etudiant 1: Samy (SLIC & SLIC IPOL)


Présentation du sujet

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.

Contexte et motivation

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 :

  1. SLIC original (Achanta et al., 2012)
  2. 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.


Articles de référence

SLIC Superpixels (2012)

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é.

SLIC IPOL (2022)

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)

Méthodes implémentées

1. SLIC Original

Principe algorithmique :

  1. Initialisation : Placement de K centres sur une grille régulière (espacement S = sqrt(N/K))
  2. Perturbation : Déplacement des centres vers zones de gradient minimal (fenêtre 3x3)
  3. 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
  4. 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 Lab
  • d_xy : distance spatiale euclidienne
  • S : espacement de grille (normalisation)
  • m : paramètre de compacité (balance couleur/espace)

Fichier : src/methods/slic/slic_original.py

2. SLIC IPOL

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



Métriques d'évaluation

Métriques avec Ground Truth

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

Métriques intrinsèques (sans GT)

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

Résultats

Comparaison visuelle

Image BSDS500 – 107045.jpg

Configuration : n_segments ≈ 200, compactness = 10, 10 itérations

Comparaison SLIC vs SLIC IPOL

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étriques quantitatives

Sans Ground Truth (métriques intrinsèques)

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

Avec Ground Truth BSDS500

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

Temps d’exécution

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.


Étude paramétrique

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.


Résultats de la recherche en grille

Résultats grid search

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

Analyse

  • À granularité contrôlée, le paramètre dominant est la compacité
  • L’augmentation de m améliore la cohérence régionale et réduit la sous-segmentation
  • Les faibles valeurs de m favorisent 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.


Stabilité du nombre réel de superpixels

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é

Analyse des paramètres et réglages robustes

L’étude paramétrique, basée sur une recherche en grille multi-métrique, montre que :

  • le réglage de n_segments fixe la granularité globale mais ne détermine pas à lui seul la qualité
  • la compacité m est 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

Synthèse comparative : SLIC vs SLIC IPOL

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.

Évaluation qualitative (12 testeurs)

Protocole

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) :

  1. Qualité des contours : respect des frontières naturelles des objets
  2. Régularité et uniformité : homogénéité de la taille et de la forme des superpixels
  3. Cohérence chromatique : similarité des couleurs à l’intérieur d’un même superpixel
  4. É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.


Profil des testeurs

  • 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 %)

Scores moyens par méthode (échelle 1–5)

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.


Préférences globales

Classement global des méthodes

(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é.


Meilleur équilibre par image

(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.


Analyse spécifique : SLIC vs SLIC_IPOL

Comparaison directe (hors SIT-HSS)

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.


Remplacement potentiel de SLIC par SLIC_IPOL

  • 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 %)


Commentaires qualitatifs récurrents

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

Applications suggérées

  • 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

Limites de l’évaluation

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.


Conclusion

  1. SIT-HSS est la méthode la plus appréciée globalement, notamment pour la qualité visuelle perçue
  2. SLIC et SLIC_IPOL présentent des performances moyennes très proches
  3. SLIC se distingue par sa régularité et sa stabilité
  4. SLIC_IPOL offre de meilleurs contours dans certains cas spécifiques
  5. Aucune méthode n’est universellement supérieure : le choix dépend fortement du type d’image
  6. 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


Comparaison avec IPOL online

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)

Conclusion

Synthèse des résultats

  1. SLIC IPOL supérieur à SLIC original sur tous les critères évalués
  2. Surcoût computational acceptable (+14%) pour gains significatifs en qualité
  3. Validation expérimentale : métriques quantitatives + évaluation humaine convergent
  4. Paramètres optimaux : n_segments ∈ [200, 400], compactness ∈ [10, 15]

Pertinence à l'ère de l'IA

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

Perspectives

  • 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

Structure du code

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

Installation et utilisation

Prérequis

python >= 3.8

Installation

# 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.txt

Dataset BSDS500

Télécharger depuis : BSDS500

Extraire dans data/BSDS500/

Exemples d'utilisation

1. Démo rapide

python quick_start.py

2. 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 10

3. Optimisation paramètres

python experiments/parameter_tuning.py \
    --image data/BSDS500/data/images/test/107045.jpg \
    --study grid

Références

[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


Contact

Pour toute question concernant cette implémentation :


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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages