Plan du module Segmentation S Y S - 8 4 4 M o d u l e 4 Seuillage Croissance de région Partition de régions Regroupement Partition - regroupement Définitions Vue d’ensemble de la segmentation Segmentation Partition d’une image en un ensemble de régions Région Zone homogène dans l’image (niveau de gris, couleur, texture, gradient, etc.) Principes de base de la segmentation Similarité Proximité spatiale Représentation des régions Composition des régions Contour Étiquetage Image binaire! Image niveaux gris! Image couleur! Texture! Segmentation par contour Étiquetage N/B éclairement RVB, TSL, L*a*b* matrice cooccurrence Vecteurs déplacement! mouvement Images 3D! profondeur Définition d’une région Soit I une image Segmentation en régions partition de I en K régions Rk 1. Tout pixel appartient à une région K ! I= Rk k=1 2. Aucun pixel n'appartient à plus d’une région Exemple: segmentation en niveaux de gris ! Rj = 0 p connecté à p’ ∀p, p! ∈ Rk 3. Proximité (cohérence) spatiale 4. Cohérence des attributs de région Représentation d’une région Ri P (Rk ) est VRAI P (Ri ∪ Rj ) est FAUX pour pour et k : 1, 2, · · · , K Ri , Rj adjacent i "= j Plan d’étiquettes Étiquetage Chaque région possède une étiquette unique Un plan d’étiquettes est une image de même dimension et parallèle au plan image. Il indique les étiquettes correspondant aux pixels Contours Tous les contours sont numérotés Les contours changent de nom aux sommets et points de rencontre Description compacte: code de Freeman Plan de contours Description de contour par code de Freeman Déplacement le long de la région, en la gardant à notre droite Sens anti-horaire (illustré) ou horaire CC={i,j}[5 5 6 6 6 0 0 0 0 0 0 0 1 1 2 2 2 4 4 5 4 3 4 4] Segmentation en régions Croissance Débuter en un point d’une région Agrandir la région par similarité Segmentation hybride Combinaison de partitions - regroupements Critères de partition ou regroupement Locaux: 1 pixel ou région et ses voisins Globaux: grand nombre de pixels répartis dans l’image Continuer tant que regroupements possibles Partition Débuter en 1 région (image complète ?) Séparer en plusieurs petites régions Continuer à séparer tant que possible (récursif) Hybride Séparer - regrouper Segmentation perceptuelle Seuillage Seuillage global T Binarisation de l’image ! Le seuillage constitue une approche simple à la segmentation. Le seuillage sert de composante de base à des algorithmes plus complexes de segmentation Production de 2 zones de base : Zone 0!si I(x,y) ! T Zone 1!si I(x,y) > T Segmentation par croissance de région Algorithme simple, mais lent. On débute en 1 point, on lui assigne une valeur d’étiquette, puis on trouve les voisins possédant la même valeur de zone. Effets du choix de la valeur de seuil T ! Le résultat de la binarisation n’est pas une segmentation car plusieurs zones déconnectées ont la même valeur d’étiquette. Il faut maintenant segmenter en assignant des étiquettes aux régions (décrites par exemple par des codes de Freeman enchaînés). T=46 T=64 T=96 T=128 T=192 T=224 Algorithme simple de segmentation par croissance de région inter-connectée Seuillage multiple Tk Principe : Image seuillée avec K seuils Zones résultantes segmentées par croissance de région Algorithme : zone(i, j) = k si Tk−1 ≤ I(i, j) < Tk pour k : 1 · · · K R(i, j) : étiquetage par croissance de région Choix des seuils Tk Selon l’histogramme (global) Seuillage Tk Image Global! dépend de I(i,j) Local! dépend de N(i,j) Dynamique! (ou hybride) dépend de I(i,j) et N(i,j) Hystérésis Seuils d’après histogramme Marquage dans une zone si un voisin est marqué • Choisir le seuil T à la position de vallée : T=13 • Appliquer le seuil trouvé T à chaque pixel de l’image Selon le voisinage (local) Tk = nσ 2 |voisinage marque si |I(i, j) − µ| > Tk Image du mandrill Image après un seuillage global avec T = 96 Image résultante du seuillage des points extrêmes (n=2) Image originale de la route Par hystérésis (dynamique) Seuillage global à 80 Algorithme Seuillage par hystérisis Seuillage global à 100 1. Choisir 2 niveaux de seuil (global) ! TL :! faire ressortir les éléments désirés ! ! ! incluant des détails non-pertinents ! TH :! éléments désirés, avec des manquements 2. Marquer tous les pixels >TH 3. Pour tous les pixels adjacents aux pixels marqués : ! Marquer si >TL 4. Répéter 3 pour tous les pixels marqués dans 2 Seuillage avec hystérésis (valeurs de seuil : 80 et 100) Algorithme Segmentation par croissance de région TANT QUE image n’est pas segmentée en entier 1. Choisir un pixel non-étiqueté 2. Examiner les voisins : Vj similaire " étiquette k 3. TANT QUE Vj # Région k Examiner les voisins Vi similaire " étiquette k 4. k = k + 1 et retour à ① Exemple Critères de similarité (les plus fréquents) Critère: Vj − région < seuil Seuil = 2 8-voisins Vj − région < seuil 1 1 1 1 Vj − région < nσ 2 1 1 ? 1 1 1 ? ? 2 2 2 ? 1 1 1 1 1 1 2 1 1 1 2 2 1 1 1 2 2 1 1 1 2 Performances Bonnes performances : Images non-bruitées Images sans texture Images sans gradient Performances moyennes : Images bruitées p1 L pk p j , p j +1 sont voisins Image initiale de bactéries p j ! p j+1 < T mais p1 ! pk > k Images texturées Seuil = 10 Seuil = 25 Algorithme Segmentation par partition de régions TANT QUE région non-uniforme 1. Débuter avec une région large 2. Traitement récursif : Diviser en plusieurs régions plus petites Continuer à diviser jusqu’à ce que chaque région soit uniforme Critère de partition : seuillage global (multiple) Choix des seuils Exemple: l’escargot Segmentation par regroupement Algorithme 1. Frontière entre 2 régions est évaluée selon similitude des régions. Un petit score indique une frontière faible. Le principe de cette méthode consiste à utiliser une image d’entrée déjà segmentée (c’est encore mieux si l’image est sursegmentée) 2. Regroupement des régions aux frontières faibles (frontière éliminée) 3. Statistiques recalculées 4. Calcul de similarité entre la nouvelle région et les voisines 5. On recommence tant que des frontières peuvent être supprimées Exemple Construire le graphe d’adjacence Similarité de régions Plusieurs composantes!! (eg couleur, texture, etc) Plusieurs façons de combiner. Indiquer sur les frontières la valeur pondérée totale des votes Regrouper pour les minima locaux ! La plus usuelle : le vote +1 ! neutre Vi : < 1 ! regrouper > 1 ! ne pas regrouper N Vtotal = " Vi Wi Segmentation par partitionregroupement ! Il s’agit de combiner les deux algorithmes, de partition et de regroupement, de telle sorte que les forces de l’un compensent les faiblesses de l’autre. Algorithme 1. Pré-traitement: préservation des arêtes par Nagao ou Weymouth-Overton. 2. Analyse locale par histogramme • Diviser l’image selon une grille 4. Regrouper les régions similaires • Seuils dans les vallées • Algorithme des composantes connectées pour former des régions 3. Enlever les frontières artificielles similarité = 5. Regrouper les petites régions de 1 ou 2 pixels avec les régions voisines plus significatives |µa − µb | max(σa + σb , 1) Exemple