1 contours et régions une des bases les plus importantes en traitement d’images (reconnaissance, amélioration d’images compression...) l’information est souvent dans les éléments de contour préserver les contours lisser les régions évaluer la taille des régions
2 1 - algorithmes d’analyse des contours - Prewitt Sobel Cany Deriche - analyse dans le domaine des fréquences 2 - Transformée de Hough 3 - Découpe en régions 4 - Morphologie Mathématique 5 - contours actifs
3 contours et régions contour : variations rapides de l’intensité dans une direction et lente dans la direction perpendiculaire simplication courante : mise en évidence d’une variation rapide (calcul du gradient) il y a alors invariance pas d’invariance spatiale !
4 étapes de la détection de contour
5 recherche des contours dans une image : trouver les zones où l’intensité présente une variation rapide : les filtres simples (prewitt, sobel) sont utilisés pour une détection des contours mais ne donnent qu’une évalutation approximative de l’orientation du contour sobel prewitt (formes diagonales) appliquer un filtre passe haut
6 Image originale. variation suivant x (module) combinaison des deux variation suivant y (module) x y
7 on peut aussi utiliser les passages à zéro de l’opérateur laplacien variantes possibles de cette réponse impulsionnelle dérivée seconde = bruit amplifié = nécessité de lissage
8 filtre laplacien avec filtrage passe bas « gaussien »
9 filtre de Canny Deriche Optimisation d’un critère caractérisant le contour : filtrage passe haut + lissage dans les deux directions (abscisse et ordonnée) par un filtre de réponse impulsionnelle et de réponse en fréquence Deriche : implémentation sous la forme de filtres récursifs double effet : dérivation pour les basses fréquences et lissage pour les hautes fréquences
10
11 spatial fréquentiel image module grad/x grad/y filtres
12 module du gradient gradient
13 décision module du gradient supérieur à un seuil mais aussi gradient de même direction dans le voisinage (grand rayon de courbure )
14 décision concernant la présence ou non d’un contour gradient élevé gradient de même orientation dans le voisinage (courbure faible) difficulté lorsque les images sont bruitées
15
16
17
18 Il n’y a pas de détecteur parfait ; il faut essayer de formaliser l’objectif final du traitement où la recherche des contours n’est qu’une étape intermédiaire et, relativement à cet objectif, évaluer les performances d’un détecteur : proportion de détections correctes, de détections manquées et de fausses détections
19 recherche de la pente exacte d’un contour dans une image contourner le problème de la quantification par une implémentation des filtres de dérivation dans le domaine des fréquences
20 amplitude et direction du gradient bleu : - bleu clair pente vers – /2 vert: pente vers 0 jaune pente vers /2 rouge vers +
21 calcul d’une dérivée dans le domaine des fréquences la dérivée par rapport à x de f(x,y) a pour transformée de Fourier on a de la même manière la dérivée par rapport à y (on remplace u par v) (filtrage amplifiant les composantes proportionnellement à la fréquence)
22 Calcul de dérivée partielle en deux dimensions par transformée de Fourier 1. on calcule transformée de 2. on effectue l’opération de « centrage » (fftshift en matlab) 0 N/2 N-1 N/2 0 N-1 0 N/2 N-1 N/2 0 N-1 N/2-1 on suppose que (lignes et colonnes marquées en bleu) u v u v (N est une puissance de 2)
23 3.on multipiepar varie de –N/2 à N/2 - 1 u 4. on effectue l’opération inverse du « recentrage » (ce qui revient à faire à nouveau un « recentrage ») 5. on calcule la transformée de Fourier inverse précision : ici bien sûr il faut vérifier sur des exemples simples comme des sinusoïdes de la forme (ne pas confondre l’adresse dans le tableau et l’abscisse u) où k et ℓ sont des entiers qui donne la dérivée partielle par rapport à x après recentrage sans recentrage
24 en faisant les mêmes opérations mais en multipliant par jv on obtient la dérivée partielle par rapport à y ; note : on peut se contenter d’effectuer des transformées de Fourier monodimensionnelles, ligne par ligne ou colonne par colonne la pente de la tangente au contour (courbe de niveau) est donnée par la valeur en ce point de
25 pour calculer les dérivées secondes, il faut remplacer la multiplication par ju par des multiplications par –u 2, -uv,-v 2 ce qui donne le rayon de courbure du contour est donné par (et à utiliser avec prudence sur des images réelles ! le résultat peut être très bruité...) à titre de vérification le cas particulier (remarque : facteur N/2. si on utilise la transformée de Fourier discrète) analyse de la courbure
26 un contour : le module du gradient est fort la courbure est souvent faible (grand rayon) sur plusieurs pixels voisins (ce deuxième critère est rarement pris en compte sur les images réelles car il est difficile de mesurer la courbure du fait du bruit) points caractérisitiques (angles) : le module du gradient est fort la courbure présentant un pic (forte discontinuïté de la pente du gradient)
27 voici une illustration dérivées par rapport à x et y fondée sur la transformée de Fourier comme expliqué précédemment (en coupe)
28 les courbes de niveau de la fonction f à droite et à gauche l’angle de la tangente en chaque point bleu =- , vert =0, rouge =+ (les contours sont orientés donc la pente va de - sont à
29 résultat semblable au précédent mais en champ de vecteur avec une longueur des vecteurs pondérée par le module du gradient -- 0
30 en complément (peut etre pas utile dans un premier temps) analyse de la courbure calcul des trois dérivées secondes
31 calcul du rayon de courbure rouge rayon très grand ; bleu rayon faible
32 représentation des tangentes au contour courbe « en cloche »
33 notez les effets de bord dûs à l’utilisation de la TF discrète rayon de courbure coupe
34 fluctuations d’amplitude peu visibles sur l’image
35 se faire une idée des variations de niveau dans le type d’image réglage :
36 approche par modélisation on se donne la forme du modèle dont on espère qu’il représente correctement une portion de contour : par exemple une sigmoïde orientée dans une direction (dans le cas d’un contour séparant deux régions de niveau à peu près constant et pas trop bruité)
37 et on cherche à trouver les paramètre qui minimisent l’écart entre le modèle et l’image g x,y il peut y avoir des modèles plus élaborés
38 regroupement d’éléments de contours (chaînage) il faut dans certaines applications regrouper les éléments de contours qui se suivent en une chaîne mais les risques d’erreurs dus à l’imperfection de la détection sont importants connexité (le voisin appartient à un contour) prise en compte de l’orientation du contour est ce que à partir de C, à une distance raisonnable (quelques pixels) dans la direction proche de , il y a un élément de contour de pente proche de ?
39 en général un point de contour correspond à un gradient élevé et à un voisinage où il y a aussi des points de contour présentant un gradient élevé dans la même direction confirmation de l appartenance au contour si dans le voisinage du pixel étudié (dans la direction perpendiculaire au gradient), il y a suffisamment de pixels de contour avec une orientation similaire du gradient
40 filtrage sélectif dans la direction du contour (voir aussi la morphologie mathématique)
41 filtrage sélectif dans la direction du contour (voir aussi la morphologie mathématique) suivi d’une nouvelle application de l’opération de seuillage u v réponse en fréquence x y réponse impulsionnelle décalée et orientée
42 les pixels détectés comme faisant partie d’un contour discontinu ont leur intensité amplifiée (par addition de celles des voisins) ; ce qui n’est pas le cas pour les pixels isolés ou n’ayant pas la même orientation que celle de leurs voisins filtrage directionnel dans le sens du contour filtrage directionnel peu allongé très allongé
43 réponse impulsionnelle filtrage sélectif dans la diretion du contour prenant en compte la courbure (supposée connue)
44 détection d’angles points caractéristiques en général très informatifs importants par exemple en stéréovision et en robotique ou en mise en correspondance d’images deux contours à courbure faible se rejoignent (l’extrémité de l’un est à une distance faible de l’autre « T » ou d’une extrémité de l’autre « L »)
45 détection de formes connues (typiquement de droites) transformée de Hough dans l’espace des paramètres un point appartient à une multitude de droites (ensemble des points sur une sinusoïde) : si plusieurs point appartiennent à une même droite, les sinusoïdes ont un point commun ; cette accumulation permet de détecter des droites ou plus généralement des formes simples représentation de la droite ensemble des droites qui passent par le point A
46 ellipse 5 paramètres droite 2 paramètres
47 remarque : si la pente de la droite a pu être mesurée (par exemple la pente d’un contour), alors le domaine où on recherche les accumulations peut être considérablement réduit inconvénient : quantité de calculs importante transformée de Hough A représentation ( ) des droites passant par le point A
48 RECHERCHE DES POINTS APPARTENANT A UN CERCLE EN UTILISANT LA TRANSFORMEE DE HOUGH
49 TRANSFORMEE DE HOUGH EXEMPLE DE LA RECHERCHE DES POINTS APPARTENANT A UN CERCLE TOUS LES CERCLES PASSANT PAR UN POINT DE COORDONNEES ( A 1,B 1 ) SONT TELS QUE LE RAYON R ET LES COORDONNEES DU CENTRE ET VERIFIENT L’EQUATION ILS SONT SUR UN CÔNE DE SOMMET (A,B,0) DANS L ESPACE A TROIS DIMENSIONS
50 ILS SONT SUR UN CÔNE DE SOMMET (A 1,B 1,0) DANS L ESPACE A TROIS DIMENSIONS (A1,B1)(A1,B1)
51 LES REPRESENTANTS DE TOUS LES CERCLES PASSANT PAR DEUX POINTS SONT SUR L INTERSECTION DE DEUX CONES (SOIT UNE HYPERBOLE SITUEE DANS UN PLAN VERTICAL MEDIATEUR DU SEGMENT JOIGNANT LES DEUX POINTS) ( A 1, B 1 ) ( A 2, B 2 )
52 ( A 2, B 2 ) ( A 1, B 1 ) (A3,B3)(A3,B3) LE REPRESENTANT D UN CERCLE PASSANT PAR 3 POINTS EST L INTERSECTION DE TROIS CONES (OU DE L HYPERBOLE ET DU TROISIEME CONE)
53 Un cône représente l’ensemble des cercles passant par un point Le point d’intersection de trois cônes caractérise le cercle passant par trois points
54 Si plusieurs points appartiennent au même cercle, les cônes correspondants ont un point commun (mesures sans bruit) ; dans le cas de mesures bruitées les points d’intersection des cônes pris 3 à 3 sont groupés au voisinage de ce point Trouver le cercle revient à détecter ces concentrations de points dans l’espace des paramètres
55 S IL Y A PLUSIEURS POINTS APPARTENANT A UN MEME CERCLE CE CERCLE EST REPRESENTE PAR L INTERSECTION DE TOUS CES CONES LA RECHERCHE D UN CERCLE SE TRADUIT PAR LA DETECTION D UN NUAGE DE POINTS ASSEZ CONCENTRE DANS CET ESPACE DES PARAMETRES COMME LES DONNEES SONT BRUITEES
56 ON ABOUTIT A UN PROBLEME CLASSIQUE DE PROBABILITES UN PIXEL DE CONTOUR A LA PROBABILITE p D APPARTENIR AU CERCLE ET LA PROBABILITE 1-p DE NE PAS LUI APPARTENIR COMBIEN FAUT IL PRELEVER DE PIXELS DE CONTOUR POUR QUE LA PLUPART DU TEMPS AU MOINS K D ENTRE EUX APPARTIENNENT AU CERCLE
57 20 éléments mesurés : il y a 99% de chances que 25% d’entre eux au moins appartiennent au cercle 100 éléments mesurés : il y a 99% de chances que 38% d’entre eux au moins appartiennent au cercle a=0.5 une chance sur 2 que le point appartienne au cercle fonction de répartition de la loi binomiale
58 en général possibilité de traitement à une dimension : lissage de l’histogramme et recherche du maximum
59 recherche accélérée d’un cercle basée sur la transformée de Hough 1 Sélection des points de contour et de leur orientation 2. les deux droites tracées à partir de deux points A et B dans la direction du gradient se rencontrent en un point C équidistant de A et de B. Dans l’affirmative, C peut être un centre du cercle de rayon R passant par A et B; A B C D 3. Est-ce que cette hypothèse est confirmée par d’autres points (D) situés à une distance R de C et où le gradient est colinéaire à CD ? en pratique : prendre en compte les incertitudes sur les données
60 Comment accélérer la méthode de la transformée de Hough lorsqu’on dispose d’informations supplémentaires sur la forme recherchée ? Trois points ayant une probabilité p d’appartenir au cercle permettent de caractériser le cercle : position du centre et rayon Est-ce que ce cercle est le bon ? Dans l’affirmative, la probabilité est élevée que d’autres points appartiendront à la même figure (et vérifient les équations du cercle) Sinon il y a peu de chances que d’autres points appartiennent à cette figure C R C’ R’
61 segmentation en régions pas de définition précise !
62 là encore il n’y a pas de solution parfaite comment caractériser une région « homogène » ?
63 On associe à un pixel ou à un ‘‘petit’’ médaillon un vecteur de paramètres qui tient compte des caractéristiques des pixels voisins ; en principe les pixels voisins d’un pixel (x,y) sont associés à des vecteurs assez semblables à celui du pixel (x,y) avec un certain degré de variabilité (il y a une certaine corrélation entre eux) problème : trouver les caractéristiques du ‘‘nuage de points’’ correspondant aux vecteurs des pixels entourant (x,y) ; vérifier que ce nuage est suffisamment compact et qu’il décrit correctement les caractéristiques de la région ; vérifier ensuite qu’il y a suffisamment de pixels voisins de (x,y) dont les vecteurs appartiennent au nuage pour que la région soit homogène pixel étudié pixels voisins appartenant à la même région vecteurs associé à un pixel et nuage de points des vecteurs associés aux pixels voisins pixels voisins n’appartenant pas à la même région
64 régions caractérisation statistique : stationnarité locale, corrélation spatiale (cf signaux aléatoires bidimensionnels) un paramètre change peu dans une région homogène (les pixels voisins appartiennent souvent à une même région) il varie d’une région à l’autre - séparation des régions par des contours parfois difficiles à détecter ou inexistants fondé sur l’histogramme cas simpliste de séparation en deux régions
65 histogramme nécessité d’éliminer les points « isolés » (connexité)
66 ensuite prise en compte de la connexité : en principe les caractéristiques statistiques des pixels d’une même région sont semblables plus difficile : histogramme multidimensionnel (image couleurs) (nuages de points) ; analyse de texture : analyse spectrale 2D par exemple : prédiction (linéaire) d’un pixel à partir de ses voisins : est ce que la prédiction est correcte ? si oui le pixel appartient probablement à la même région que ses voisins (extension des méthodes du type morphologie mathématique)
67 analyse à partir de l’histogramme découpe de l’histogramme en « tranches » + analyse de la connexité (voir morphologie mathématique)
68
69 difficultés de l’analyse liées à la non stationnarité et parfois à la non pertinence du modèle « décomposition en régions »
70 exemple d’approche : une région est composée de pixels connexes (les voisins d’un pixel présentent les mêmes caractéristiques) de même niveau moyen et telle que les fluctuations autour de ce niveau moyen (variance) sont similaires 1.Recherche des caractéristiques d’une région : On se donne un médaillon de départ (par exemple 10x10) ; on cherche si l’image est à peu près stationnaire dans ce médaillon par exemple en minimisant (modélisation par un plan) est ce que les coefficients a et b sont assez petits (plan assez horizontal) ? (si ce n’est pas le cas f(x,y) n’a pas une moyenne constante sur le médaillon et il faut démarrer la recherche de la région ailleurs)
71 En blanc : les pixels où le module du gradient est élevée à ne pas prendre en compte dans la recherche des régions de niveau à peu près constant (sauf s’il s’agit de pixels isolés)
72 2. on calcule le niveau moyen (c) et la fluctuation autour de ce niveau moyen par exemple la variance (L est le côté du médaillon) ou l’écart type pixels bleus = écart faible dans le voisinage : on peut sans doute initialiser une recherche de région
73 3. on étend la région dans son voisinage (en faisant le tour du médaillon) 4. si sur les pixels du parcours l’écart à la valeur de référence (c) est inférieur à une fois et demi ou deux fois l’écart type, le pixel est intégré à la région (les caractéristiques de la région (moyenne et variance) peuvent être actualisées) 5. test d’arrête un tour complet sans rajouter de pixels à la région, début de la spirale (écart type faible) evolution de l’écart sur la spirale
74 regroupement éventuel de régions voisines dont les caractéristiques sont proches
75 cas particuliers : régions filiforme (par exemple routes dans une image aérienne, veine ou nerf en biologie) comprises entre deux contours assez proches et parallèles souvent des difficultés liées à l’absence de continuité si on prolonge les régions dans la direction du contour, est ce que les pointillés se rejoignent, + approche par modélidation mathématique
76 suggestion : filtrage directionnel sélectif de réponse impulsionnelle
77 quelles sont les paramètres appropriés pour caractériser cette région ?
78 analyse spectrale des différentes régions (importance relative des hautes et des basses fréquences, direction privilégiée, est ce que le spectre d’un nouveau médaillon ressemble plus à l’un des différents spectres « appris » pour chaque région ? plus de basses fréquences plus de hautes fréquences est ce que le spectre du nouveau médaillon ressemble au spectre des médaillons voisins ?
79 analyse en composantes principales des couleurs représentation dans le plan des valeurs propres les plus grandes de la matrice de covariance des images couleur afin de mieux voir les variations calcul de la matrice de covariance des composantes de l’image (après centrage pour avoir une moyenne nulle et en général normalisation des différentes composantes aide à la présentation d’un nuage de points présentation(x,y) = .rouge(x,y)+ .vert(x,y)+ .bleu(x,y) ( ) vecteur propre associé à la plusgrande valeur propre de c
80 analyse en composantes principales des couleurs la combinaison linéaire ainsi trouvée est la présentation qui donne le plus grand contraste
81 de manière générale : une région est caractérisée par un certain nombre de paramètres (les composantes d’un vecteur) qui fluctuent relativement peu dans le domaine de cette région mais qui se différencient (plus ou moins) nettement des vecteurs des paramètres caractérisant les régions avoisinantes un filtrage passe bas et un seuillage approprié peuvent suffire à donner une idée approximative des régions
82 « l’œil » a tendance à regrouper les pixels en régions du fait d’une interprétation intelligente sans doute très élaborée de la scène analysée ; tandis que les approches numériques classiques fondées sur des critères plus simples (statistiques locales) ne sont pas aussi performantes dans ce regroupement
83 quel est le problème à résoudre ? est ce que la recherche de régions est une étape pertinente ? êtes vous en mesure de caractériser précisément les régions et de quantifier ces caractères ? quelles sont les marges d’incertitude ?
84
85 MORPHOLOGIE MATHEMATIQUE - Retrouver la structure (« squelette ») d’une image -éliminer des points isolés dans des régions - grâce à des opérations de logique simple sur les pixels adjacents d’une région Jean Serra
86 Timothée KOMBE1 et René-Joly ASSAKO ASSAKO2 exemple d’application de la morphologie mathématique érosion dilatation amincissement épaississement squelettisation
87
88 dilatation + érosion → fermeture ; - érosion + dilatation → ouverture. Le squelette (érosion interdisant la coupure) conserve les propriétés topologiques de la forme qu’il représente (4 – connexité)
89 dilatation érosion image binaire originale
90 squelettisation original ouverture fermeture
91 les contours actifs (‘‘snakes’’) autre approche en vogue : recherche d’une fonction assez lisse (souvent fermé) qui englobe une région où la description du contour par les gradient est insuffisante malgré le bruit de fond malgré la difficulté à caractériser le contour par le gradient
92 exemple de champ de gradient dans une image (après filtrage passe bas) comment trouver un trajet ‘lissé’ qui suive la crête (malgré les défauts) : approche par maximisation de critère (une chaîne de points relié entre eux)
93 E snake E interne E externe Propriétés locales de l’image autour du contour actif : par exemple, fonction de l’intensité du gradient Propriétés intrinsèques : Longueur, courbure… on modifie la forme du contour actif pour minimiser une énergie qu’on décompose en deux parties gradient de l’énergie = ‘’force’’ un point du contour actif est ‘‘retenu’’ par ses voisins il est attiré par une région proche de l’image où le gradient est fort
94 rapprocher le point de la crête (en suivant le champ de gradient) empêcher le point de s’éloigner de ses voisins dans la chaîne forces (réduction de l’énergie) externes forces (réduction de l’énergie) internes
95 a chaque étape, on modifie la position des N points du contour actif (x 1,y 1 ),..., (x N,y N ) de manière à minimiser le critère qui s’écrit en fonction des coordonnées
96 tendre vers les points où le gradient est élevé critères de modification itérative du contour actif : un compromis mais pénaliser la forte courbure et la longueur attention : réglages délicats !
97 analyse critique des approches contours / régions beaucoup d’articles sur les performances d’algorithmes : on gagne un peu en performances mais il se peut qu’on n’arrive pas aux performances souhaitées pour résoudre le problème posé ; on peut donc se poser la question : qu’est ce qui est pertinent dans les recherches de contours et de régions ? cela dépend essentiellement de l’application envisagée et des performances qu’on attend de la méthode pas de méthodes ‘‘miracle’’, mais des compromis plus ou moins satisfaisants si la puissance de calcul le permet : utiliser des méthodes variées qui peuvent s’avérer complémentaires
98 remarque : il ne faut pas se contenter des performances sur des images de synthèse ou des images type ; les premières ne servent qu’à vérifier la validité de la programmation et les deuxièmes risquent d’encourager le développement d’algorithmes spécifiques adaptés aux images étudiées (p. ex la célèbre Lenna...)