1 / 30

Traitement d’images : concepts avancés

Traitement d’images : concepts avancés. Morphologie mathématique (cas fonctionnel) :  Erosion, dilatation, ouverture et fermeture fonctionnelles, Filtres alternés séquentiels, Ligne de partage des eaux. Classification (approches globales) : Modèles markoviens,

addison
Download Presentation

Traitement d’images : concepts avancés

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Traitement d’images : concepts avancés Morphologie mathématique (cas fonctionnel) :  Erosion, dilatation, ouverture et fermeture fonctionnelles, Filtres alternés séquentiels, Ligne de partage des eaux. Classification (approches globales) : Modèles markoviens, Estimation de paramètres. Segmentation Méthodes ad hoc Approche variationnelle Estimation de mouvement : Cas d’un mouvement rigide, Flot optique.

  2. Segmentation : principes • Objectif : décomposer l’image X en un ensemble de sous-parties connexes formant une partition • Notations : #R : nbre de régions, Ri région n°i, • Segmentation vérifie : • i[1,#R], 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 duale (région n-connexe  courbe (12-n) connexe

  3. Segmentation : principes Recherche de zones possédant des attributs similaires Approche duale de la détection de contours • Prédicats de base : • La région Ri est homogène i[1,#R], H(Ri) vrai • La région Ri est distincte de ses voisines  segmentation maximale (i,j)[1,#R]2, H(RiRj) faux segmentation en 8 régions 4-connexes  non maximale en 8-connexité • Ex : Segmentations maximales : 4-connexité → 8 régions, 8-connexité→ 6 régions, 12-connexité → 4 régions

  4. Méthodes de segmentation : • par classification • par transformation de régions (croissance de régions, split&merge, graphe de régions) • par analyse d’une image de gradient (ligne de partage des eaux) • par méthode variationnelle (Mumford & Shah)

  5. Segmentation à partir d’1 classification • 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 • Ex.

  6. Segmentation à partir d’1 classification • algorithme : • Initialisations : k=0, sS, zs=0 • Pour chaque classe wi • Créer l’image binaire B de la classe (bs=1  xs=wi) • Pour tout pixel sS : • Si bs=1 et zs=0, alors : • Calcul de la composante connexe CC{s} de s dans B (par exemple selon 1 des algo. d’étiquetage en composantes connexes donnés) • k=k+1 • tCC{s}, zt=k • #R=k

  7. Étiquetage en composantes connexes • Algo. 1 : Calcul de la composante connexe CC{s} de s dans B • initialisation de la pile avec s et de la composante connexe à 0 • tant que la pile n’est pas vide • extraire t de la pile • mettre t à 1 dans la composante connexe • pour tout r voisin de t non déjà traité (ni déjà dans la pile) • si xr=wi rajouter r dans la pile • Algo. 2 : Etiquetage de l’ensemble de l’image en 2 passes • initialiser l’image des étiquettes Z à 0 • balayer l’image, soit s le pixel courant • soit l1 et l2 les 2 étiquettes des voisins de s (masque causal 2-connexité) • si (l1=l2) ou (li 0 et l3-i=0, i{1,2}), affecter li à s dans Z • si (l1l2), affecter min(l1,l2) à s dans Z, et mettre à jour la table d’équivalence entre les étiquettes : l1l2 • si (l1=l2=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

  8. #cl = 2, clas. aveugle #cl = 3, clas. aveugle #cl = 3, clas. MRF #R = 6 #R = 32 !!!!!! #R = 21 Segmentation à partir d’1 classification • Exemple : Chaque pixel est classé selon sa valeur indépendamment de ses voisins Markov Random Field → chaque pixel est classé en tenant compte de sa valeur (attache aux données) ET des labels de ses voisins (a priori sur le champ des labels, e.g. régulier)

  9. Croissance de région (region growing) • À partir de pixels-germes (généralement sélectionnés à partir de l’histogramme), on fait croître les régions en ‘agglomérant’ les pixels ou régions connexes tels que l’union vérifie le prédicat d’homogénéité • 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

  10. 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 

  11. Sélection de germes sur histogramme • Algorithme • k=0 • tant que  pixels non labelisés • Calcul de l’histogramme Hres des pixels non labelisés • xval = mode de Hres, s_germe / xs_germe= xval • 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 • #R=k

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

  13. 303 32 31 30 23 22 21 0 20 12 11 10 03 02 01 33 00 030 1 3 022 021 020 2 013 012 313 010 003 002 001 13 023 033 031 312 333 332 331 330 323 322 321 200 201 202 203 210 211 032 212 220 213 311 310 320 302 301 000 300 232 231 230 223 222 221 233 011 100 101 110 111 102 103 112 113 130 120 121 131 132 122 123 133 j7 j7 j6 j6 j5 j5 j4 j4 j3 j3 j2 j2 j1 j1 j0 j0 i7 i7 i6 i6 i5 i5 i4 i4 i3 i3 i2 i2 i1 i1 i0 i0 + i3 j3 i2 j2 i1 j1 i0 j0 i7 j7 i6 j6 i5 j5 i4 j4 Pyramide du Quadtree Construction du quadtree par parcours de Peano : Clé de Peano : Pixel de coordonnées-image (i,j) Ex. : (2,3)  13 (6,2)  44

  14. Partage / réunion 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 NxN) • Initialisations : l0 niveau de départ dans la pyramide, t0=N/2l0 , n=4l0 • Fusion : j=l0, t=t0 , k=1 • Tant que j>0 • Pour i variant de 0 à n-1 par pas de 4l0-j+1 • Si les 4 blocs i, i+k, i+2k, i+3k 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=2t, k=4k • Division : j=l0 • Pour i variant de 0 à n-1 • Si la taille du bloc i est ≤t0 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

  15. Exemple de segmentation contrainte par le quadtree Fusion de sous-blocs d’1 même bloc de niveau 1 Fusion de 4 blocs de niveau 1 en 1 bloc de niveau 2 À partir du niveau 1 de la pyramide Labellisation des blocs Scission de blocs de niveau 1 en 4 blocs de niveau 0 Fusion de sous-blocs d’1 même bloc de niveau 2

  16. Réunion de régions • Tests statistiques entre deux régions à fusionner Hyp. : bruit gaussien sur une image assimilée à une fonction 2D constante par morceau • Test du c2 d’homogénéité  v.a. qui suit 1 loi du c2 à m-1 degrés de liberté ? • 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 de Wilcoxon : soit (somme pour chaque pixel de R1 du # de pixels de R2 de valeur inférieure) : on teste si U suit 1 loi normale N(n1n2/2, n1n2(n1+n2+1)/12)

  17. 8 8 1 1 3 3 2 2 7 7 4 4 6 6 5 5 Fusion de régions dans un graphe • 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 # 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 :

  18. Fusion de régions dans un graphe • Exemple d’algorithme : • Initialisations : # de régions = # pixels, initialisation de LS et LA • Tant que # de régions > # de régions voulu • Sélection des arrêtes a0 de moindre coût par accord mutuel (a0 relie si et sj et j=argmink{ct(a)/a=(si,sk)} et i=argmink{ct(a)/a=(sj,sk)} • Fusion des régions associées aux arrêtes a0 : • 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 # de régions = # sommets • Création de l’image des régions (d’après liste de pixels des sommets)

  19. Segmentation maximale à partir du résultat contraint par le quadtree À partir du résultat ‘quadtree’ Hypothèses : 4-connexité, coût d’1 arête / ct(Ri,Rj) = |RiRj| si contraste(RiRj)=0, ct(Ri,Rj)=+ sinon

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

  21. Approches variationnelles (I) • Energie de Gibbs (Geman & Geman, 1984) → 1ère méthode variationnelle Pb : estimer x (champ des labels) connaissant y (champ des observations)  définir : (i) un modèle ‘d’attache aux données’, i.e. reliant X et Y, ET (ii) un modèle a priori pour X, i.e. favorisant certains types de solutions Ex. : modèles ‘réguliers’ i.e. favorise pixels voisins de même label Solution du Maximum A Posteriori (MAP) : • Cas d’un champ de Markov caché (X,Y) avec W|S| l’espace des états de X • P(X = x,Y = y) = P(Y = y / X = x).P(X = x) • Hypothèses supplémentaires : •  • avec • P(Y=y / X=x) = sSP(Ys=ys/ Xs=xs) (indép. cond. à X) • sS, P(Ys=ys/ Xs=xs) > 0  U0,s(xs,ys)=-ln(P(ys/xs)) Somme des potentiels des cliques sur le voisinage Constante de normalisation issue de la distribution a priori

  22. Approches variationnelles (II) • Exemple de distribution a posteriori • Y gaussien conditio. aux classes  • Loi a priori = modèle de Potts b(i,j) = b  • P(X=x / Y=y) = P(Y=y / X=x).P(X=x)/P(Y=y)  • Cas plus général : avec ‘processus ligne’ Énergie à minimiser : où hs et vs {0,1} indiquent les bords horizontaux et verticaux, et Z est l’image des moyennes des classes :

  23. Approches variationnelles (III) • Principes : • Il existe une méthode de détection des frontières qui soit universelle (indépendante du type d’image) • La précédente détection doit présenter une invariance spatiale et d’échelle • Les résultats doivent pouvoir être comparés quantitativement (valeurs des énergies respectives) • Fonctionnelle d’énergie comprend des termes : • D’autosimilarité des régions (pour le type d’image considéré : canaux fréquentiels, paramètres de texture…) • Mesurant la taille, la régularité et la localisation des frontières de régions

  24. Fonctionnelle de Mumford & Shah (I) • Cadre fonctionnel : soit W R2 un ouvert rectangulaire, soient les images u0 (observation) et u (restauration), de W→ [0,1], et soit K un ensemble fermé définissant les contours de u, alors • Conjecture :  (u,K) minimiseur de EMS tel que • u C1(W) • K est une union finie d’arcs réguliers tels que • au plus 3 arcs se rencontrent en 1 point triple tel que les angles entre chacun d’eux soient 2p/3 • Au plus 1 arc peut rencontrer dW en 1 point et perpendiculairement

  25. Fonctionnelle de Mumford & Shah (II) • Cas particulier : • u est constante sur chaque région : sRi, u(x,y)=gi=cst • Connaissant K, u est donné  E(u,K)=E(K) • La régularisation repose entièrement sur la minimisation des longueurs de contours • Paramètre n définit l’échelle de perception de l’image  croissance de région : absence de critère sur contours génère régions irrégulières, étroites, petites… n faible  segmentation ‘fine’ n croit  segmentation devient de + en + ‘grossière’

  26. Preuve : Preuve : Preuve : Propriétés de K est n-maximale si pour tout n-upplet de régions, la segmentation K’ obtenue par fusion de ces n régions vérifie E(K’)>E(K) • Segmentation 1-maximale  pas de frontière interne à 1 région • Soit K 1 seg. 1-maximale / #R>1   2 régions R1 et R2 / (R1,R2) est 1 courbe de Jordan ((s,s’)]0,1[, ss‘  c(s)c(s’) ) • Soit K 1 seg. 1-maximale / #R=a  K est l’union de a -1 courbes de Jordan sans segment commun • Soit K 1 seg. 1-maximale / #R=a, #courbes géométriques=b, #croissements géométriques=g  (i) : g2.(a-1) et (ii) : b3.(a-1)-2 • Segmentation 2-maximale • 0E(K’)-E(K)= • |R| a une borne inférieure et l(R) a une borne supérieure |R|1/2  Cste.l(R)  élimination des régions trop étroites Preuve : (i) soit 1 courbe c1 de K et K1 la seg. obtenue en supprimant c1 (K1 est 1-maximale) ; c1 contient au max 2 intersections avec K1 (ses extrémités si c’est 1 courbe de Jordan ouverte). (ii) Si c1 est fermée, c’est la seule courbe qui disparaît, sinon s’il y a intersection de 3 courbes, les 2 autres courbes fusionnent. #régions voisines de Ri  augmenter n permet d’éliminer les petites régions

  27. Propriétés de • Segmentation 1-maximale  pas de frontière interne à 1 région • Soit K 1 seg. 1-maximale / #R=a, #courbes géométriques=b, #croissements géométriques=g  (i) : g2.(a-1) et (ii) : b3.(a-1)-2 • Segmentation 2-maximale • 0E(K’)-E(K)= • |R| a une borne inférieure et l(R) a une borne supérieure |R|1/2  Cste.l(R)  élimination des régions trop étroites  augmenter n permet d’éliminer les petites régions

  28. Résolution multiéchelle de Koepfler • Préliminaires : soit Ri et Rj disjointes • |RiRj|m(RiRj)= |Ri|m(Ri)+ |Rj|m(Rj) • |RiRj|s2(RiRj)=|Ri|s2(Ri)+|Rj|s2(Rj)+ |Rj|.|Ri|/(|Rj|+|Ri|)(m(Ri)-m(Rj))2 • Algorithme • Soit la segmentation triviale : #R=|S|, soit e0 • Tant que #R>nbre de régions souhaité • Pour i[1,#R] • Pour chaque région Rj adjacente à Ri, calculer nij=|Rj|.|Ri|/(|Rj|+|Ri|)||gi-gj||2/l((Ri,Rj)) • n = minij(nij)+e • Parcourir la liste des régions, et fusionner celles telles que E(K\(Ri,Rj)-E(K)<0 • Actualiser #R

  29. Approche variationnelle • Exemple : #R = 4 #R = 5 #R = 8 #R = 12 #R = 16 #R = 20

  30. Bibliographie • H. Maître, Le traitement des images, Hermès éditions. • J.-P. Cocquerez & S. Philipp, Analyse d’images : filtrage et segmentation, Masson éditions. • S. Bres, J.-M. Jolion & F. Lebourgeois, Traitement et analyse des images numériques, Hermès éditions.

More Related