Traitement d’images : concepts avancés

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MTH ( Multidimensional trie hashing )
Advertisements

Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Segmentation : principes
Traitement d’images : concepts avancés
Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancés
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Introduction au cours “Modèles stochastiques en traitement d’image”
Champs de Markov en Vision par Ordinateur
Champs de Markov en Vision par Ordinateur
Champs de Markov en Vision par Ordinateur
Regroupement (clustering)
3. Analyse et estimation du mouvement dans la vidéo
4. Descripteurs du contenu
Auteurs : P. Hellier C. Barillot E. Mémin P.Pérez
Xialong Dai, Siamak Khorram
Visualisation d’information interactive 5 : Graphes
Estimation du MAP (III)
Traitement d’images : briques de base S. Le Hégarat
Ordonnancement des mouvements de deux robots
Traitements d'images et Vision par ordinateur
Autres LOIS de PROBABILITES
Eric Guilbert, Marc Daniel *, Eric Saux
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Application des algorithmes génétiques
Les structures de données arborescentes
Algorithmes Branch & Bound
Réalisateur : PHAM TRONG TÔN Tuteur : Dr. NGUYEN DINH THUC
Le filtrage d’images.
Méthode des k plus proches voisins
Traitement d’images : concepts avancés
Groupe 1: Classes de même intervalle
Opérateurs morphologiques
Construction de modèles visuels
RECONNAISSANCE DE FORMES
Traitement d’images : concepts avancés
LES ARBRES IUP 2 Génie Informatique
Coloration gap sommet identifiante de graphes
II- L’algorithme du recuit simulé (pseudo-code)
Courbes de Bézier.
Génération d’un segment de droite
Algorithmes d ’approximation
I. Définitions & classification II. Approche fonctionnelle
TRAITEMENT D’IMAGE SIF-1033.
TRAITEMENT D’IMAGE SIF-1033.
SUJETS SPÉCIAUX EN INFORMATIQUE I
Le filtrage d’images.
Cours #9 Segmentation Découverte 4- Segmentation Introduction
La régression multiple
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Deux sujets traités La segmentation d’images
Segmentation par analyse d’une image de gradient (ligne de partage des eaux) par fusion de régions dans un graphe par méthode variationnelle (Mumford.
Morphologie mathématique ensembliste
Graph cuts et applications
Segmentation : principes Objectif : décomposer l’image X en un ensemble de sous-parties connexes et homogènes formant une partition de l’image Notations.
Classification : objectifs
Arbres binaires et tables de hachage
SEGMENTATION EN REGIONS
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
Morphologie mathématique (cas fonctionnel)
6. Problème de flot à coût minimum.
Méthode des moindres carrés (1)
Partie II : Segmentation
PIF-6003 Sujets spéciaux en informatique I
Coltier Yves Division des prix 14/05/2014 Les remplacements de type EC Les modèles hédoniques.
Processus ponctuels Caractéristiques et Modèles de répartitions spatiales.
Qu’apprend-on dans ce chapitre
Transcription de la présentation:

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.

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

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

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)

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.

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

É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

Segmentation à partir d’1 classification Exemple : #cl = 2, clas. aveugle #cl = 3, clas. aveugle #cl = 3, clas. MRF Chaque pixel est classé selon sa valeur indépendamment de ses voisins #R = 6 #R = 32 !!!!!! #R = 21 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)

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

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 

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

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

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

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

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

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)

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 : 1 2 3 5 6 7 8 4 1 2 3 5 6 7 8 4

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)

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

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

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S P(Ys=ys / Xs=xs) (indép. cond. à X) sS, P(Ys=ys / Xs=xs) > 0  U0,s (xs,ys)=-ln(P(ys /xs)) Constante de normalisation issue de la distribution a priori Somme des potentiels des cliques sur le voisinage

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 :

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

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

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’

#régions voisines de Ri Propriétés de 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 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) Preuve : 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 Preuve : Preuve :  augmenter n permet d’éliminer les petites régions

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

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

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

Représentation hiérarchique des régions Changement de l’objectif de la segmentation : décomposer l’image X en un ensemble de sous-parties connexes formant une partition décomposer l’image X en un treillis totalement ordonné, formé de sous-parties de X décomposer l’image X en un treillis de sous-parties connexes, soit disjointes soit ordonnées Segmentation vérifie : et cf. treillis de la morphologie mathématique binaire

Ensembles de niveaux Relation d’ordre des régions ()  relation d’ordre des niveaux de gris ( ou ) Indépendance vis-à-vis des valeurs ‘absolues’ des niv. de gris, i.e. des conditions de luminosité etc.  Invariance par changement de contraste Upper Level Set Ux et Lower Level Set Lx Relation d’inclusion des ensembles de niveaux : Famille des Ux (ou celle des Lx) est suffisante pour reconstruire l’image y  ‘relatives’

Exemple simplissime minTree maxTree 255 0 127 127 255 0 255

Construction du Min_Tree Tant que toute l’image n’a pas été étiquetée : Recherche d’1 minimum local non encore étiqueté (balayage de l’image)  création d’une nouvelle région de valeur, val, égale à la valeur du minimum local trouvé en 1. Reconstruction de la composante connexe par croissance de région (voisinage lié à la connexité) : la région croît tant que la valeur minimale sur son voisinage courant, valN, est égale à la valeur de la région ; quand valN > val, la composante parent est atteinte ; si valN < val, la construction de la composante courante est interrompue pour cause de rencontre avec un (autre) fils. val=255 valN=255 val=127 valN=127 val=127 valN=127 val=0

Construction du Max_Tree valN=255 val=127 valN=127 val=255 valN=127 val=127 valN=127 val=127 valN=127 val=255

Construction de l’arbre mixte Ne privilégier aucune des 2 relations d’ordre Ex. dans texte : blanc sur noir & noir sur blanc Algorithme : Construction du Min_Tree AVEC pour chaque ‘feuille’ détection des trous et stockage d’1 pixel de chaque trou Création de l’image des ‘shapes’ (pour chaque pixel : plus petite région l’incluant) Idem en 1. pour Max_Tree Fusion des deux arbres Initialisation avec le Min_Tree (p.e.) ; Pour chaque trou (de pixel représentant s) d’1 shape Sh_Ll, recherche de la shape Sh_Um dans l’arbre dual : soit c’est la shape de s, soit une shape l’incluant nm  Sh_Un  Sh_Um m est la plus petite des valeurs supérieure à l

Gestion des arbres class elt_tree { int ident; float val; liste_pixels L, L_ini_hole; elt_tree *fils, *frere, *pere; BYTE etage; constructeur, destructeur, constructeur de copie, opérateur d’affectation; }; class ad_elt_tree { BYTE type_origin; elt_tree *ad_origine, *adres_elt; constructeur, destructeur; }; class liste_ad_elt_tree { int n_adres; ad_elt_tree *L; constructeur, destructeur, etc.; void add_elt2liste (elt_tree *courant, elt_tree *entreeT); BYTE sub_elt2liste (elt_tree *courant, elt_tree *entreeT); class tree { int nb_etages, nb_elts; elt_tree *racine, *courant, *precedent; constructeur, destructeur, constructeur de copie, opérateur d’affectation, afficheurs; int nbre_elts (); int nbre_etages (); elt_tree* cherche (int no); void insere_pere (elt_tree* E, const int no_lien); void insere (elt_tree* E, const int no_lien, const BYTE type_lien); void bouche_trou (elt_tree* E, const int no_lien, const BYTE type_lien, int x, int y); int calc_etages (); imadata<float> ima_shape (int nlig, int ncol); };

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.