1/39 Introduction 2/39 Introduction 3/39 Introduction • Approches GLOBALES: • Approches LOCALES: • Approches HYBRIDES: histogrammes region growing, contours split & merge, CSC 4/39 Histogrammes Zone « vert » teinte => Segmentation dans un espace dérivé de l’image 5/39 Recursive Histogram Splitting (RHS) 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 6/39 Recursive Histogram Splitting (RHS) 7/39 Croissance de région (Region Growing) 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. 8/39 Croissance de région (Region Growing) Seuil S: x y val=? x==y: x<>y: val = x mettre à jour l’index Extremité(x) y x y val=? x y val=? val = y val = Z (nouvel index) P1 == P2 ssi Diff(Col(P1),Col(P2)) < S 1 1 2 2 3 1 1 1 1 1 11 22 33 1 … while (swap[x]!=x) x = swap[x]; 9/39 Croissance de région (Region Growing) Test local (pixels voisins) ou statistique global (calcul sur la couleur moyenne de R) 10/39 Croissance de région (Region Growing) 11/39 Split & Merge Horowitz, Pavlidis (1976), Dubuisson, Jain (1993) 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. 12/39 Split & Merge Homogénéité = critère sur la variance Image initiale Split 1 Split 2 Split 3 13/39 Split & Merge Construction du RAG Quadtree Region Adjacancy Graph • Connecte les régions adjacentes • Arrêtes = mesures de différence d’homogénéité RAG 14/39 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 15/39 Split & Merge Original Split & Merge 16/39 Algorithme CSC (Color Structure Code) Rehrmann (1994) pixel shift Ilot niveau 1 17/39 Algorithme CSC (Color Structure Code) Ilot de niveau 1 Ilot de niveau 0 Pixel Ilot de niveau 2 Structure sous-jacente: arbre 18/39 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) 19/39 Algorithme CSC (Color Structure Code) PHASE 2 : REGROUPEMENT Élément niveau 1 (n+1) Lesconsidère éléments de éléments niveau n sont regroupés On se place dans les un ilôt de de niveau 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) 20/39 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: 21/39 Algorithme CSC (Color Structure Code) PHASE 2bis : 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? ? 22/39 Algorithme CSC (Color Structure Code) DECOUPAGE îlot niveau n+1 îlot niveau n élément E2 (n+1) élément S1 (n) élément S (n) élément S2 (n) élément E1 (n+1) S n’est pas encore complètement séparé S appartient à la fois à E1 et E2 (sont existence est garantie par => découpage récursif de E1 il reste intersection S attribué à car E1 ou E2?une Attribution à celuiavec dont les propriétés du réseau de recouvrement hexagonal) S1 etest S2la plus proche (ici E2) la couleur 23/39 Algorithme CSC (Color Structure Code) Original Split & Merge Algorithme CSC 24/39 Contours Actifs (snakes) Kass, Witkin, Terzopoulos (1987) Un exemple classique Le « snake » se contracte et s’adapte à la forme de l’horloge 25/39 Contours Actifs (snakes) P9 P8 P10 P7 P11 P6 P3 P1 • Propriétés intrinsèques • Longueur, courbure… P2 P4 P5 • Propriétés locales de l’image autour du snake 26/39 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 27/39 Contours Actifs (snakes) Exemple d’énergie INTERNE: 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. 28/39 Contours Actifs (snakes) 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: 29/39 Contours Actifs (snakes) Energie élastique Energie de courbure Zones brillantes 30/39 Algorithme « ConDensAtion » Condensation = Conditional Density Propagation (algorithme de type “contours actifs”) Algorithme probabiliste intégrant: • des informations contextuelles • des connaissances a priori • une intégration temporelle (tracking) 31/39 Algorithme « ConDensAtion » 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: 32/39 Algorithme « ConDensAtion » 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)) 33/39 Algorithme « ConDensAtion » 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: 1. Sélectionner un échantillon 0 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 et stocker sous la forme 34/39 Algorithme « ConDensAtion » Exemple simple de modèle d’observation, dans un cas monodimensionnel: z1 z2 z3 z4 P(Z/X) x 35/39 Algorithme « ConDensAtion » Condensation : Schéma de fonctionnement 36/39 Autres Approches Algorithmes spécialisés: Segmentation de visages, segmentation sur des patterns de mouvement (détection du profil de mouvement d’un piéton qui marche), détection par la chaleur, le mouvement, etc 37/39 Autres Approches L’une des grandes “révolution” de ces dernières années: les algorithmes de détection d’image dans l’image; SIFT(1999), SURF(2006) 38/39 SIFT 39/39 SIFT 39/39 SIFT 39/39 Conclusion 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) 42/39