Quapprendon dans ce chapitre Questce que la segmentation

  • Slides: 26
Download presentation
Qu’apprend-on dans ce chapitre • Qu’est-ce que la segmentation d’une image ; • Des

Qu’apprend-on dans ce chapitre • Qu’est-ce que la segmentation d’une image ; • Des exemples de segmentation ‘simple’ : • Par étiquettage en composantes connexes ; • Par croissance de régions ; • Représentation à base de graphe et fusion de régions dans un graphe ; • Qu’est-ce que des superpixels.

Segmentation : principes • Objectif : décomposer l’image X en un ensemble de sousparties

Segmentation : principes • Objectif : décomposer l’image X en un ensemble de sousparties connexes et homogènes formant une partition de l’image • Notations : • Image de ‘super’ pixels • Généralisation de l’étiquettage en compo. connexes aux images à niv. de gris NR : nbre de régions, Ri région n°i, • Segmentation vérifie : – – – i [1, NR], Ri est connexe Suppose 1 connexité Rappel : application du théorème de Jordan sur la trame carrée : la 4 et la 8 connexité sont duales (région n-connexe courbe (12 -n) connexe)

Segmentation : principes • Prédicats de base : – La région Ri est homogène

Segmentation : principes • Prédicats de base : – La région Ri est homogène i [1, NR], H(Ri) vrai Recherche de zones possédant des attributs similaires – La région Ri est distincte de ses voisines segmentation maximale (i, j) [1, NR]2, H(Ri Rj) faux • Ex : segmentation en 17 régions 4 connexes non maximale en 8 -connexité Segmentations maximales : 4 -connexité → 17 régions, 8 -connexité → 11 régions, 12 -connexité → 4 régions

Cas où on a déjà le découpage en classes homogènes • Classification ≡ partition

Cas où on a déjà le découpage en classes homogènes • Classification ≡ partition en c classes homogènes (du point de vue de la loi supposée) ayant chacune 1 ou plus composantes connexes • Etiquetage en composantes connexes des c classes → segmentation • algorithme : sortie – Initialisations : k=0, s S, zs=0 – Pour chaque classe wi • Créer l’im. bin. Bi de la classe (bs=1 xs=wi) • Pour tout pixel s S : – Si bs=1 et zs=0, alors : » Calcul de la comp. connexe CC{s} de s dans Bi (cf. algo. d’étiquetage en comp. connexes) » k=k+1 » t CC{s}, zt=k – NR=k

Étiquetage en composantes connexes Algo. 1 : Calcul de la composante connexe CC{s} par

Étiquetage en composantes connexes Algo. 1 : Calcul de la composante connexe CC{s} par reconstruction géodésique (voir cours MM binaire) • Algo. 2 : Etiquetage (cas 4 -connexité) en 2 balayages • initialiser l’image des étiquettes Z à 0 • balayer l’image, soit s le pixel courant – soit l 1 et l 2 les 2 étiquettes des voisins de s (masque causal 2 -connexité) – si (l 1=l 2) ou (li 0 et l 3 -i=0, i {1, 2}), affecter li à s dans Z – si (l 1 l 2), affecter min(l 1, l 2) à s dans Z, et mettre à jour la table d’équivalence entre les étiquettes : l 1 l 2 – si (l 1=l 2=0), créer une nouvelle étiquette l et affecter l à s dans Z • Re-balayer l’image pour uniformiser les étiquettes selon la table d’équivalence • Ex. (en 8 connexité): 7 9

Cas où on construit les régions • Pb principal : comment construire les régions

Cas où on construit les régions • Pb principal : comment construire les régions dans l’espace image et dans l’espace des caractéristiques • 1ère approche : croissance de régions – À partir de pixels-germes, on fait croître les régions en ‘agglomérant’ les pixels pas de contrainte spatiale sur les régions hormis connexité peu robuste (dépendant bruit, initialisation, critère homogénéité…) • 2ème approche : fusion de régions – À partir de d’un ensemble de régions, on fait croître les régions en leur ‘agglomérant’ des régions connexes pas de contrainte spatiale sur les régions hormis connexité un peu plus robuste que croissance de région contrôle du nombre de régions final

Critères d’homogénéité d’ 1 région • Exemples de critères globaux à la région –

Critères d’homogénéité d’ 1 région • Exemples de critères globaux à la région – Contraste : H(Ri) vrai – Variance : H(Ri) vrai – Distance interquartiles : H(Ri) vrai – Entropie : H(Ri) vrai • Exemples de critères locaux à la région – Distance avec pixels voisins : H(Ri {s}) vrai

Croissance de région (region growing) • Pb du choix des germes : – Dans

Croissance de région (region growing) • Pb du choix des germes : – Dans le cas général, la croissance de région s’arrête avant d’avoir obtenu une segmentation : – Si on part de la segmentation triviale (chaque pixel est un germe) résultat dépendant de l’ordre de fusion des régions • Algorithme de sélection de germes sur histogramme – k=0 – tant que pixels non labelisés • • Calcul de l’histogramme Hres des pixels non labelisés val = mode de Hres, s_germe / xs_germe= val k=k+1 Croissance de région à partir de s_germe : – zs_germe=k – Tant que t connexe à Rk et Rk {t} vérifie prédicat d’homogénéïté, Rk ← Rk {t} – t Rk, zt=k – NR =k

Sélection de germes sur histogramme 40000 10000 8000 30000 8000 6000 20000 4000 3000

Sélection de germes sur histogramme 40000 10000 8000 30000 8000 6000 20000 4000 3000 0 0 255 2000 0 5000 4000 10000 6000 1000 0 255 255 . . 30 régions significatives sur 213! 2500 2000 1500 1000 500 0 3000 2000 1000 0 255 255

Croissance de régions Sélection de germes aléatoire Sélection de germes sur histogramme • Exemple

Croissance de régions Sélection de germes aléatoire Sélection de germes sur histogramme • Exemple : Cmax = 100 → NR = 6 Cmax = 80 → NR = 6 ≠ Cmax = 100 → NR = 6 Cmax = 70 → NR = 17 ≠ Cmax = 80 → NR = 5 ≠ Cmax = 70 → NR = 12

Pyramide du Quadtree Construction du quadtree parcours de Peano : 0 2 1 3

Pyramide du Quadtree Construction du quadtree parcours de Peano : 0 2 1 3 00 01 10 11 000001 010 011 100 101 110 111 02 03 12 13 020021 030 031 120 121 130 131 20 21 30 31 200201 210 211 300 301 310 311 22 23 32 33 220221 230 231 320 321 330 331 002003 012 013 102 103 112 113 022023 032 033 122 123 132 133 202203 212 213 302 303 312 313 222223 232 233 322 323 332 333 Ex. : Clé de Peano : Pixel de coordonnées-image (i, j) i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 (2, 3) 13 = 3 41+1 40 + j 7 j 6 j 5 j 4 j 3 j 2 j 1 j 0 i 7 j 7 i 6 j 6 i 5 j 5 i 4 j 4 i 3 j 3 i 2 j 2 i 1 j 1 i 0 j 0 (6, 2) 44 = 2 42+3 41+0 40

Partage / fusion de régions • region splitting : soit Ri / H(Ri) faux,

Partage / fusion de régions • region splitting : soit Ri / H(Ri) faux, alors diviser Ri • region merging : soit Ri , Rj connexes / H(Ri Rj) vrai, alors Ri=Ri Rj, supprimer Rj • Application à la structure du quadtree (image Nx. N) – Initialisations : l 0 niveau de départ dans la pyramide, t 0=N/2 l 0 , n=4 l 0 – Fusion : j=l 0, t=t 0 , k=1 Longueur coté d’ 1 Nombre de pixels • Tant que j>0 au niveau l 0 bloc au niveau l 0 – Pour i variant de 0 à n-1 par pas de 4 l 0 -j+1 » Si les 4 blocs i, i+k, i+2 k, i+3 k sont de taille t, et si le critère d’homogénéité est vérifié pour l’union des 4 blocs, alors Les fusionner : mise à jour des tailles et caractéristiques des blocs (on ne garde que le bloc n°i) – Passage au niveau supérieur de la pyramide : j=j-1, t=2 t, k=4 k – Division : j=l 0 • Pour i variant de 0 à n-1 – Si la taille du bloc i est ≤t 0 et >0 » Tant que le critère d’homogénéité n’est pas vérifié pour le bloc i subdiviser le bloc i en 4 blocs : mettre à jour les paramètres de i à partir du sous-bloc et créer les 3 autres sous-blocs indicés n+1, n+2, n+3, et actualiser n à n+3

Graphe de régions • Le graphe est constitué de : – Une liste de

Graphe de régions • Le graphe est constitué de : – Une liste de sommets LS : chaque région Ri est représentée par 1 sommet s auquel sont associés : les caract. de Ri, la liste des pixels de Ri, le nbre et la liste des arrêtes impliquant s – Une liste d’arrêtes LA : chaque arrête a est caractérisée par les 2 sommets qu’elle relie, son coût ct(a), un indicateur de validité • Exemple de construction du graphe d’adjacence : 8 1 3 3 2 4 5 8 1 6 7 2 4 5 6 7

Graphe de régions (suite) • Coût des arrêtes du graphe : – Fonction des

Graphe de régions (suite) • Coût des arrêtes du graphe : – Fonction des caractéristiques des régions adjacentes – Fonction de la pertinence (e. g. homogénéité) de la fusion des régions adjacentes • Exemple de coût entre Ri et Rj disjointes : – Contraste = – Variance = – (rq )

Sélection par accord mutuel : ex. m=1, s=1, N=50 m=4, s=1 , N=60 8

Sélection par accord mutuel : ex. m=1, s=1, N=50 m=4, s=1 , N=60 8 1 3 m=8, s=1 , N=40 8 1 3 2 4 5 6 7 m=10, s=1 , 2 N=50 m=11, 7 s=1 , m=2, s=1 , 4 N=80 6 5 m=11, s=1 , N=100 m=3. 4, s=1 , N=160 8 3 m=8, s=1 , N=40 3 m=11, 7 s=1 , N=80 7 4 5 m=10. 7, s=1 , N=150 m=2. 8, s=1 , 8 4 5 N=210 7 m=3, s=1 , N=100 1 8 5 m=10. 1, s=1 , N=190 20, 2512, 10 20, 25 / 12, 10 0, 99 / / / 22, 22 / / 2, 23 0, 99 / 0, 22 / / / 1, 83 / / / 14, 38 / / 16 / 11, 48 22, 22 0, 22 1, 83 14, 38 N=30 m=1, s=1, N=50 1 / 8 4 m=2, s=1 , N=30 7 m=11, s=1 , N=80 / / 16 / / / 15, 8 0, 23 2, 23 / / 12 11, 48 0, 23 12 / / / 12, 10 / 17, 64 / / 1, 05 / / / / 12, 10 / / / 1, 21 / / / / 10, 51 / / / 17, 64 / / 13, 31 / / / / 1, 21 10, 51 / / / / 12, 83 1, 05 / / / 13, 31 / 12, 83 / / / / / / / / 7, 73 / / / 13, 29 / / / / 13, 43 / / 13, 29 / 13, 43 /

Fusion de régions dans un graphe • Exemple d’algorithme : – Initialisations : nbe

Fusion de régions dans un graphe • Exemple d’algorithme : – Initialisations : nbe de régions = nbre pixels, initialisation de LS et LA – Tant que segmentation non maximale • Sélection des arrêtes a 0 de moindre coût par accord mutuel (a 0 relie si et sj et j=argmink{ct(a)/a=(si, sk)} et i=argmink{ct(a)/a=(sk, sj)} • Fusion des régions associées aux arrêtes a 0 : – mise à jour de la liste des sommets (liste des arrêtes associées, liste des pixels, caractéristiques de la région représentée) – Mise à jour de la liste des arrêtes (validité, coût, sommets associés) • Mise à jour du nbre de régions = nbre sommets – Création de l’image des régions (d’après liste de pixels des sommets)

Tests statistiques entre deux régions à fusionner Hyp. : bruit gaussien sur une image

Tests statistiques entre deux régions à fusionner Hyp. : bruit gaussien sur une image assimilée à une fonction 2 D constante par morceau – Test de Student d’égalité des espérances intervalle de confiance de l’estimateur de l’espérance m d’une loi normale dont la variance est inconnue avec – Test de Fisher-Snedecor d’égalité des moyennes et des variances… – Test du c 2 d’homogénéité à m-1 degrés de liberté ? v. a. qui suit 1 loi du c 2 Comparaison des histo. des régions : nj et nj’ nb pixels du ‘bin’ j dans chaque histo. – Test de Wilcoxon : soit (somme pour chaque pixel de R 1 du nbre de pixels de R 2 de valeur inférieure) : on teste si U suit 1 loi normale N(n 1 n 2/2, n 1 n 2(n 1+n 2+1)/12)

Tests statistiques entre deux régions à fusionner Hyp. : bruit gaussien sur une image

Tests statistiques entre deux régions à fusionner Hyp. : bruit gaussien sur une image assimilée à une fonction 2 D constante par morceau – Test du c 2 d’homogénéité v. a. qui suit 1 loi du c 2 à Comparaison des histo. des régions : nj et nj’ nb pixels du ‘bin’ j dans chaque histo. m-1 degrés de liberté hyp. nulle H 0 = les 2 histogrammes suivent la même loi ; test de niveau a rejetant H 0 si la stat. de test excède le quantile 1 - a ; – Exemple : F(1 -0. 0001)=134. 0 ; F(1 -0. 05)=168. 3 ; F(1 -0. 1)=174. 1 ; F(1 -0. 15)=179. 4 err a j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 H 1 0 0 0 3 4 9 29 52 30 36 27 7 4 0 0 0 H 2 0 0 1 2 5 18 22 33 42 35 19 16 6 2 0 0 42, 98 >99, 99% H 3 0 4 5 14 32 25 36 42 22 15 3 2 1 0 0 0 350, 9 H 4 1 0 3 7 7 16 28 21 21 29 20 20 13 9 1 2 177, 8 <85% <1%

 • Exemple : Fusion de régions dans un graphe NR = 4 NR

• Exemple : Fusion de régions dans un graphe NR = 4 NR = 5 NR = 8 NR = 12 NR = 16 NR = 20

NR = 30 NR = 20 Fusion de régions dans un graphe

NR = 30 NR = 20 Fusion de régions dans un graphe

Comparaison de méthodes Croissance de régions Pyramide du Quadtree Fusion de régions

Comparaison de méthodes Croissance de régions Pyramide du Quadtree Fusion de régions

Superpixels : définition Superpixel groupe de pixels connexes et spatialement proches Propriétés (souhaitées) des

Superpixels : définition Superpixel groupe de pixels connexes et spatialement proches Propriétés (souhaitées) des superpixels : - Adhérence aux frontières des objets dans l’image ; - Compacité et régularité des bords ; - Faible complexité (en tant que prétraitement visant à augmenter la vitesse et la qualité des traitements ultérieurs

Algorithme SLIC – Simple Linear Iterative Clustering (Achanta et al. , 2012) – Algo

Algorithme SLIC – Simple Linear Iterative Clustering (Achanta et al. , 2012) – Algo des c-moyennes appliqué dans l’espace caractéristiques+position – Notations : • Nbre pixels = nbr_pix, nbre superpixels = K, rayon superpixel M=sqrt(nbr_pix/K) • vecteur des niv. gris en chaque pixel s : ys=(y 1, …, y. N)st , position lig. , col. : zs=(l, k)st , centres des classes Cj=(yj, zj)t • Distance d(Cj, (ys, zs))=sqrt(||ys-yj||2+||zs-zj||2 (m/M)2) m coef. normalisation radiom. versus localisation – Algo : • Initialisation : les Cj correspondent aux pixels de + faible gradient chaque fenêtre 3 3 centrée sur une grille régulière d’intervalle M ; • Répéter jusqu’à vérification du critère d’arrêt : – Pour chaque superpixel Cj, » Pour chaque pixel s du voisinage 2 M 2 M : Calcul de la distance d(Cj, (ys, zs)) et mise à jour de la distance min dmin(s) et du superpixel d’appartenance si d(Cj, (ys, zs))<dmin(s) ; – Pour chaque superpixel Cj, » mise à jour (e. g. par la moyenne des vecteurs (ys, zs) sur les pixels associés à Cj ) ; – Calcul du critère d’arrêt

Exemples de résultats (I) Nombre régions 50, (m/M) {10, 20, 40, 80} Nombre régions

Exemples de résultats (I) Nombre régions 50, (m/M) {10, 20, 40, 80} Nombre régions 200, (m/M) {10, 20, 40, 80}

 1000 régions 200 régions Exemples de résultats (II) (m/M) =40 (m/M) =80

1000 régions 200 régions Exemples de résultats (II) (m/M) =40 (m/M) =80

 200 régions 1000 régions, (m/M) =40 Difficulté de régler les paramètres Sur image

200 régions 1000 régions, (m/M) =40 Difficulté de régler les paramètres Sur image originale Sur image filtrée par médian 3 3 Sur image filtrée par médian 5 5 1000 régions, (m/M)=20