SEGMENTATION Cours de Segmentation PLAN Introduction Segmentation par






































- Slides: 38
SEGMENTATION Cours de Segmentation PLAN • Introduction • Segmentation par histogrammes (RHS) • Region growing • Split & Merge • Algorithme CSC • Contours Actifs (Snakes) • Approche probabiliste: l’algorithme « Cond. Dens. Ation » • Conclusion ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 1
Introduction SEGMENTATION Segmenter une image? Partitionner l’image en zone homogènes selon un critère déterminé: couleur, texture, niveau de gris, indice, … ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 2
Introduction SEGMENTATION Un problème difficile. Pourquoi les algorithmes présentés dans ce cours ne marchent-ils pas en général? • Pas de données contextuelles • Traitement global de l’image: pas de traitement actif, localisé dans l’image (voir cours Vision Active) • Pas d’exploitation explicite de la continuité spatio-temporelle (tracking), (sauf dans l’algorithme « Condensation » ) ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 3
Introduction SEGMENTATION Plusieurs approches: • Approches GLOBALES: • Approches LOCALES: • Approches HYBRIDES: histogrammes region growing, contours split & merge, CSC En l’absence de contextes particuliers, les meilleurs résultats sont obtenus avec les méthodes hybrides. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 4
Histogrammes SEGMENTATION Zone « vert » nb rd e pi xe l s Idée: Si les objets présents dans l’image ont des couleurs bien distinctes et uniformes, ils vont apparaître comme des pics dans l’histogramme. teinte => Segmentation dans un espace dérivé de l’image ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 5
Recursive Histogram Splitting (RHS) SEGMENTATION Ohlander (1975); Ohta, Kanade, Sakai (1980) Chaque pixel est décrit selon certains channels: R, G, B, H, S, V, … => L’algorithme travaille sur plusieurs histogrammes, un par channel MAX HR HB HG … voisinage Image initiale Réinjection des régions de taille suffisante Retroprojection de la fenêtre de l’histogramme Suppression de la région extraite ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 6
SEGMENTATION Recursive Histogram Splitting (RHS) AVANTAGES • Méthode très rapide • Peu sensible au bruit INCONVENIENTS • Méthode globale: ignore les informations de proximité qui permettent d’utiliser des seuils variables locaux. • Que se passe-t-il si deux objets ont la même couleur? => Nécessite en général un Region Growing pour détacher les composantes connexes. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 7
Croissance de région (Region Growing) SEGMENTATION Idée: On part d’un point amorce (seed) et l’on l’étend en ajoutant les points de la frontières qui satisfont le critère d’homogénéité amorce croissance région finale • Le point amorce peut être choisi soit par un humain, soit de manière automatique en évitant les zones de fort contraste (gradient important) => méthode par amorce. • Si le critère d’homogénéité est local (comparaison de la valeur du pixel candidat et du pixel de la frontière) => méthode linéaire. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 8
Croissance de région (Region Growing) SEGMENTATION Méthode linéaire (complexité 2 n) x y val=? x==y: x<>y: val = x mettre à jour l’index Extremité(x) y x y val=? val = y val = Z (nouvel index) ES 322 – Traitement d’Images et Vision Artificielle Seuil S: P 1 == P 2 ssi Diff(Col(P 1), Col(P 2)) < S 1 1 2 2 3 1 1 1 1 2 2 3 3 1 … while (swap[x]!=x) x = swap[x]; Jean-Christophe Baillie 9
SEGMENTATION Croissance de région (Region Growing) Méthode par amorce (complexité O(n)) On définit une zone R qui contient la région à extraire. Initialement, R contient l’amorce. On utilise une file FIFO (First In, First Out) S qui contient les points frontière Initialement, S contient le voisinage de l’amorce. Test local (pixels voisins) ou statistique global (calcul sur la couleur moyenne de R) On retire p dans S si p est homogène avec R, on ajoute p à R et on ajoute à S les points du voisinage de p qui ne sont pas dans R et qui ne sont pas incompatibles. sinon, on marque p comme incompatible. On recommence tant que S n’est pas vide. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 10
SEGMENTATION Croissance de région (Region Growing) AVANTAGES • Méthode rapide • Conceptuellement très simple INCONVENIENTS • Méthode locale: aucune vision globale du problème. En pratique, il y a presque toujours un chemin continu de points connexes de couleur proche qui relie deux points d’une image… Problème du gradient: • Tenir compte de l’homogénéité globale donne un algorithme sensible à l’ordre de parcours des points (méthode par amorce) • Algorithme très sensible au bruit, peu stable. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 11
Split & Merge SEGMENTATION Horowitz, Pavlidis (1976), Dubuisson, Jain (1993) Idée: Plutôt que de regrouper des pixels dans le region growing, pourquoi ne pas regrouper des zones homogènes pré-calculées sur l’image? Phase 1 : Créer les zones homogènes = SPLIT Phase 2 : Les regrouper = MERGE SPLIT: L’image est stockée dans un arbre. Initialement, arbre racine = image complète Récursivement, chaque feuille F est subdivisée en quatre si elle n’est pas assez homogène, et les quatre sous images sont ajoutée en tant que feuilles de F. L’algorithme poursuit tant qu’il reste des feuilles non homogènes à diviser. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 12
Split & Merge SEGMENTATION Example Image initiale Homogénéité = critère sur la variance Split 1 ES 322 – Traitement d’Images et Vision Artificielle Split 2 Split 3 Jean-Christophe Baillie 13
Split & Merge SEGMENTATION Construction du RAG Quadtree Region Adjacancy Graph • Connecte les régions adjacentes • Arrêtes = mesures de différence d’homogénéité RAG ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 14
SEGMENTATION Split & Merge MERGE: • Chaque nœud du Region Adjacency Graph est examiné. • Si un des voisins de ce nœud est à une distance inférieure à un seuil de regroupement, les deux nœuds fusionnent dans le RAG. • Lorsque plus aucun nœud ne peut fusionner avec l’un de ses voisins, STOP. La distance en terme d’homogénéité de régions est portée par l’arrête valuée qui les relie dans le RAG ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 15
Split & Merge SEGMENTATION Original Split & Merge AVANTAGES • Méthode hybride locale/globale: permet de contrer le problème du gradient. INCONVENIENTS • Méthode assez complexe • Découpage un peu « carré » , dû à la topologie des quadtrees ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 16
Algorithme CSC (Color Structure Code) SEGMENTATION Rehrmann (1994) Idée: Regrouper des structures de pixels qui se chevauchent et découper ensuite les zones communes par une descente récursive. L’algorithme CSC est un algorithme Merge & Split basé sur une topologie hiérarchique hexagonale avec recouvrements. pixel shift Ilot niveau 1 ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 17
SEGMENTATION Algorithme CSC (Color Structure Code) Ilot de niveau 1 Ilot de niveau 0 Pixel Ilot de niveau 2 ES 322 – Traitement d’Images et Vision Artificielle Structure sous-jacente: arbre Jean-Christophe Baillie 18
SEGMENTATION Algorithme CSC (Color Structure Code) PHASE 1 : INITIALISATION Localement pour chaque îlot de niveau 0, on construit une partition en éléments (de niveau 0). élement = région de couleur homogène élement (niveau 0) pixel îlot (niveau 0) ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 19
SEGMENTATION PHASE 2 : REGROUPEMENT Élément niveau 1 (n+1) Algorithme CSC (Color Structure Code) Lesconsidère éléments de éléments niveau n sont regroupés On se place dans les un ilôt de de niveau n+1 encontenus éléments de niveau (ici n n=0, pour dans l’exemple) les îlotsn+1 de si: niveau n § Ils sont de couleur proche § Ils se touchent Propriété: deux éléments de niveau n se touchent ssi ils possèdent au moins un élément de niveau n-1 en commun. Élément niveau 0 (n) Îlot de niveau 1 (n+1) ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 20
SEGMENTATION Algorithme CSC (Color Structure Code) PHASE 2 : REGROUPEMENT Les éléments sont structurés sous forme d’arbre, tout comme les îlots Elements de niveau n+1: n: ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 21
SEGMENTATION Algorithme CSC (Color Structure Code) PHASE 2 bis : DECOUPAGE Le problème du chaînage d’éléments localement identiques n’est pas résolu à ce stade (Problème du gradient) L’algorithme CSC permet de gérer ce problème dans la phase de découpage, qui a lieu en parallèle de la phase de regroupement. Découpage: Que se passe-t-il dans la phase de regroupement lorsque deux éléments de niveau n sont connectés mais de couleurs incompatibles? ? ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 22
Algorithme CSC (Color Structure Code) SEGMENTATION DECOUPAGE îlot niveau n+1 îlot niveau n élément E 2 (n+1) élément S 1 (n) élément S 2 (n) élément E 1 (n+1) S n’est pas encore complètement séparé S appartient à la fois à E 1 et E 2 (sont existence est garantie par => découpage récursif de E 1 il reste intersection S attribué à car E 1 ou E 2? une Attribution à celuiavec dont les propriétés du réseau de recouvrement hexagonal) S 1 etest S 2 la plus proche (ici E 2) la couleur ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 23
SEGMENTATION Original Split Algorithme & Merge CSC Algorithme CSC (Color Structure Code) AVANTAGES • Méthode hybride locale/globale: permet de contrer le problème du gradient. • Excellente découpe des frontières de zone • Multi-échelle • Intrinsèquement parallèle INCONVENIENTS • Méthode plus complexe ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 24
Contours Actifs (snakes) SEGMENTATION Kass, Witkin, Terzopoulos (1987) Idée: Utiliser des courbes déformables qui sont « attirées » par les formes recherchées dans l’image. Analogie avec la physique: fonction d’énergie à minimiser. Un exemple classique Le « snake » se contracte et s’adapte à la forme de l’horloge ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 25
Contours Actifs (snakes) SEGMENTATION Qu’est ce qu’un snake? P 9 P 8 P 10 P 7 P 11 P 6 P 3 P 1 • Propriétés intrinsèques • Longueur, courbure… ES 322 – Traitement d’Images et Vision Artificielle P 2 P 4 P 5 • Propriétés locales de l’image autour du snake Jean-Christophe Baillie 26
SEGMENTATION Contours Actifs (snakes) Comportement dynamique du snake? Minimiser l’énergie totale (interne + externe) Calculer les forces à appliquer à chaque point de contrôle de telle sorte que l’énergie soit minimisée ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 27
SEGMENTATION Exemple d’énergie INTERNE: Contours Actifs (snakes) Energie de contraction élastique Force élastique sur le point de contrôle i Comportement: tend à rétrécir le snake, tout en maintenant une répartition homogène des espaces entre les points de contrôle. Forme limite: le point. ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 28
Contours Actifs (snakes) SEGMENTATION Exemple d’énergie INTERNE: Energie de courbure Tend à redresser le snake et à limiter la courbure. Forme limite: le cercle Exemple d’énergie EXTERNE (Image): Zones brillantes ou sombres: Contours en tant que maxima de la norme du gradient: Répulsion d’une zone: ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 29
SEGMENTATION Contours Actifs (snakes) Illustrations Energie élastique Energie de courbure Zones brillantes ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 30
SEGMENTATION Algorithme « Con. Dens. Ation » Condensation = Conditional Density Propagation (algorithme de type “contours actifs”) Algorithme probabiliste intégrant: • des informations contextuelles (modèle observationnel adapté au problème) • des connaissances a priori • une intégration temporelle (tracking) ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 31
Algorithme « Con. Dens. Ation » SEGMENTATION X = espace de description des contours (=> connaissances a priori sur la forme à segmenter) Z = espace de description des observations Approche probabiliste bayesienne pour les contours actifs: Prior: modélisation a priori des contours possibles Likelihood of X ou modèle observationel: modélisation des observations attendues pour un contour donné. Choix de X: ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 32
SEGMENTATION Algorithme « Con. Dens. Ation » Factored Sampling algorithm (approche du type « Filtrage Particulaire » ): Principe général: on construit itérativement un ensemble de points dans l’espace de recherche, tels que leur répartition corresponde à la densité de probabilité recherchée. Un des avantages: modélisation utilisable pour des densités quelconques et pas uniquement gausiennes. Exemple dans le cas de la segmentation par contours actifs: 1. A partir d’un prior p’(X), générer une population de points {s(1), …, s(N)} 2. Associer à chaque s(i) un poids donné par (i) et échantillonner selon (s(k), (k)) ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 33
Algorithme « Con. Dens. Ation » SEGMENTATION Condensation = Conditional Density Propagation Entrée: l’échantillon au temps tk-1 soit : Itérer Sortie: un nouvel échantillon au temps tk Construction de la sortie: 0 1. Sélectionner un échantillon de la façon suivante: a. Générer un nombre aléatoire r dans [0, 1] b. Trouver le plus petit j tel que c. Choisir 2. Prédire en échantillonnant sur pour choisir les . Par exemple, pour une dynamique Auto Regressive linéaire, utiliser: 3. Mesurer et pondérer les nouveaux échantillons selon: Puis, normaliser de telle sorte que Avec ES 322 – Traitement d’Images et Vision Artificielle et stocker sous la forme Jean-Christophe Baillie 34
Algorithme « Con. Dens. Ation » SEGMENTATION Exemple simple de modèle d’observation, dans un cas monodimensionnel: z 1 z 2 z 3 z 4 P(Z/X) x ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 35
SEGMENTATION Algorithme « Con. Dens. Ation » Condensation : Schéma de fonctionnement ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 36
Conclusion SEGMENTATION Existe-t-il une meilleure technique de segmentation? Ø Non, tout dépend du contexte, de l’application Ø Dans sa catégorie (segmentation région selon couleur à base de merge/split), CSC est souvent le meilleur Existe-t-il une « super technique » , peut être encore inconnue, qui obtienne de très bon résultats en segmentation? Ø Non, en l’absence de contexte, la quantité d’information disponible est limitée. Les algorithmes du type CSC ne sont probablement pas loin de l’optimum. Mais le cerveau obtient de bien meilleurs résultats… Quelle est le secret? Ø Problème très difficile (50 ans de recherche et pas de solution) Ø Pistes crédibles: - utilisation du contexte, vision liée aux objectifs, apprentissage, énorme bibliothèque d’algorithme spécifiques (reco visages par exemple) VISION ACTIVE ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 37
Liens SEGMENTATION Cours: http: //uei. ensta. fr/baillie Stages: http: //cogrob. ensta. fr ES 322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie 38