Segmentation d'image : Régions Philippe Montesinos EMA/LGI2P Parc Scientifique G.Besse 30000 Nîmes [email protected] http://www.lgi2p.ema.fr/~montesin 1 Segmentation régions (plan) Aspect Statistique élémentaire Segmentation régions : une définition Segmentation par classification Algorithmes de base : composantes connexes Seuillage par hystérésis Croissance de régions Structures de données pour la segmentation régions (quad-tree, graphes d'adjacence) Méthodes de division Méthodes de fusion Méthodes de division-fusion 2 Régions : aspect statistique Région : I(x,y) ~ 120 → intensité homogène Contour 3 Régions : aspect statistique Ensemble de pixels : → on considère l'histogramme région bureau une seule région 4 Régions : aspect statistique ng max : 0.52549 – ng min : 0 comptes cumulé histogramme 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 65536 7419 7419 7419 7419 7419 7419 7395 7365 7346 7296 7276 7240 7182 7136 7044 6928 6794 6743 6699 6647 6585 6412 6095 5854 5147 4644 4005 2394 933 171 2 58117 0 0 0 0 0 24 30 19 50 20 36 58 46 92 116 134 51 44 52 62 173 317 241 707 503 639 1611 1461 762 169 2 ng image 0.000 0.017 0.034 0.051 0.068 0.085 0.102 0.119 0.136 0.153 0.170 0.186 0.203 0.220 0.237 0.254 0.271 0.288 0.305 0.322 0.339 0.354 0.373 0.390 0.407 0.424 0.441 0.458 0.475 0.492 0.509 0.525 seuil vallée 5 Régions : aspect statistique une seule région une seule région homogène 6 Régions : aspect statistique une seule région homogène : histogramme 16 comptes → point de vue statistique histogramme = densité de probabilité d'un niveau de gris 7 Régions : aspect statistique une seule région : S pixels (S = surface de la région en pixels) Nombre de fois ou le niveau de gris j a été rencontré Probabilité du niveau de gris j 8 Régions : aspect statistique Moments : moyenne : variance : 9 Régions : aspect statistique fusion de 2 régions: région 1 : région 2 : 10 Régions : aspect statistique Moments : moyenne : variance : Pas nécessaire de descendre au niveau des pixels 11 Segmentation Régions On peut définir des prédicats d'homogénéité : variance < seuil max - min < seuil ... 12 Segmentation Régions Définition formelle : [HP75, HP76, Zuc76] La segmentation en régions d'une image I est une partition : 13 Segmentation Régions Problème : ne définit pas une segmentation unique Exemple : prédicat: S = 2 → 2 segmentations possibles 1 2 4 3 Image 2x2 14 Segmentation Régions : Méthodes algorithmiques 1 - Partition par classification → associer à chaque pixel une classe de niveaux de gris ou de couleur Exemple : → segmentation à partir d'histogrammes (détermination des vallées et seuillage) 15 Segmentation Régions : Méthodes algorithmiques 2 - Croissance de régions Exemple : Croissance de régions par seuillage itératif (Prédicat P(r)) → déterminer N seuils → pour chaque seuil : → seuillage I → Iseuil → étiquetage de composantes connexes Iseuil → liste de régions Lr → pour chaque région r de Lr → si P(r) est vrai recopier r dans l'image de sortie Isortie 16 Seuils décroissants Segmentation Régions : Méthodes algorithmiques Régions pour un seuil donné 17 Segmentation Régions : Méthodes algorithmiques histogramme Exemple Pas de seuil unique pour détecter tous les objets → méthodes par classification inefficaces Seuil vallée 2 Seuil vallée 1 18 Segmentation Régions : Méthodes algorithmiques Croissance de régions : Seuillage itératif : Prédicat : écart-type < 0.08 Exemple Croissance de régions : Seuillage itératif : Prédicat : écart-type < 0.08 & surface > 20 19 Segmentation Régions : Méthodes algorithmiques Croissance de régions : Seuillage itératif : Prédicat : écart-type < 0.08 Exemple Croissance de régions : Seuillage itératif : Prédicat : écart-type < 0.08 & surface > 20 20 Etiquetage de composantes connexes Entrée : image binaire (ou niveau de gris) passé → algorithme en une seule passe pixel courant Sortie : liste de régions principe : balayage : gauche → droite haut → bas B C D A X → on attribue une étiquette au pixel courant X en fonction du passé : {A, B, C, D} en 8-connexité {A, C} en 4-connexité 21 Etiquetage de composantes connexes Début : couleur initiale : k = 1 Coloriage (X) : – si (X != 0) – si (A = 1) balayage : gauche → droite haut → bas – couleur(X) ← couleur(A) – si ( (D = 1) & couleur(D) != couleur(A)) – fusion(couleur(D), couleur(A)) – Pour chaque pixel X → coloriage(X) – fini – si (B = 1) … (idem cas (A=1)) – si (C = 1) – couleur(X) ← couleur(C) – fini – si (D = 1)… (idem cas (C=1)) – k = k +1 – couleur(X) ← k – fini 22 Etiquetage de composantes connexes Fusion : gestion d'un tableau de fusion → exemple X X non utilisé 2 3 4 5 6 7 8 9 ... 2 3 3 2 2 7 3 7 ici fusions : 3, 4, 8 2, 5, 6 7, 9 23 Etiquetage de composantes connexes fusion cas 1: X X 2 3 4 2 2 2 5 ... 24 Etiquetage de composantes connexes fusion cas 2: Trouver la couleur : parcours recursif du tableau arrêt : index = contenu X X 2 3 4 2 2 3 5 ... 25 Seuillage par hystérésis I : image en entrée S : image en sortie sb, sh : 2 seuils Is : image temporaire Lr : liste de régions 8-connexes Hystérésis : – Is = seuillage(I, sb) – Lr = composantes_8connexes(Is) – pour toute région r de Lr – si max_niveaux_gris( r ) > sh : recopier r dans S 26 Structures de données Quad tree Image : une seule région Chaque case : Structure de données Info sur la région : → max, min, moyenne, variance, ... 27 Structures de données Quad tree Construction ascendante des régions par fusion des attributs (régions regroupées 2 à 2) pixels 28 Structures de données Graphes d'adjacence R4 R2 R1 R5 R6 R3 29 Algorithmes de base Algorithme de division → utilisation d'un quad tree → remplir le quad-tree de manière ascendante → le sommet du quad-tree est une région qui contient toute l'image → Division descendante en partant du sommet → tant que le nœud considéré ne vérifie pas le prédicat d'homogénéité → on divise la région en 4 On obtient une segmentation qui vérifie les points 1, 2 et 3 de la définition formelle 30 Algorithmes de base Algorithme de fusion → création d'un graphe d'adjacence Tant qu'il existe un couple de régions adjacentes tq la fusion vérifie le prédicat d'homogénéité – fusionner les deux régions – mettre à jour le graphe d'adjacence 31 Algorithmes de base Algorithme de division – fusion (méthode mixte) Aspect combinatoire difficile → En général on effectue dans l'ordre : – division – fusion 32 Segmentation Régions Définition formelle plus précise : → ajout de fonctions de qualité de la segmentation Q : qualité d'une région ex : la variance des niveaux de gris de la région C : qualité de la segmentation → C( Q(R1), Q(R2), Q(R3), … ) ex : moyenne des Q(Ri) → ajout d'un 5ieme axiome : 33 Segmentation Régions → ajout d'un 5ieme axiome : Parmi toutes les segmentations possibles on recherche une segmentation S* qui optimise la fonction de qualité C(S*) < C(S) pour S ensemble des partitions de l'Image Et C fonction décroissante 34 Segmentation Régions Exemple : Nombre de régions Segmentation S Variance région Ri 35 Segmentation Régions 5ieme axiome : → ne garantit toujours pas l'unicité ! → complexité importante : problème NP difficile Recherche d'algorithmes sous-optimaux 36 Segmentation Régions A partir du graphe d'adacence (graphe valué) → la fonction Q, qualifie la qualité de la fusion de 2 régions adjacentes → à chaque étape on choisit le couple de régions qui minimise : 37 Segmentation Régions → implémentation par tas (arbre avec tri) – construction en – recherche d'un couple à fusionner en – suppression d'un élement en 38 Segmentation Régions 1 qualité 8 qualité 9 4 qualité 2 2 3 5 qualité 11 qualité 7 6 qualité 8 Structure de tas 39 Segmentation Régions : Exemples Image bureau Carte de contours 128 seuils [0.3, 1], écart-type : 0.2 distance contours : 2p Seuillage itératif 40 Segmentation Régions : Exemples Image bureau : vidéo inverse Carte de contours 128 seuils [0.3, 1], écart-type : 0.2 distance contours : 2p Seuillage itératif 41 Segmentation Régions : Exemples Image bureau superposition : régions sombres régions brillantes Seuillage itératif 42 Segmentation Régions : Exemples Image bureau Division-Fusion : Division : max-min < 0.005 Fusion : # moyennes < 0.02 Variance < 0.5 Division Fusion 43 Bibliographie 44 Bibliographie 45