Quapprendon dans ce chapitre Pourquoi sintresseton aux contours

  • Slides: 29
Download presentation
Qu’apprend-on dans ce chapitre • Pourquoi s’intéresse-t-on aux contours sur une image ; •

Qu’apprend-on dans ce chapitre • Pourquoi s’intéresse-t-on aux contours sur une image ; • Comment déduit-on les contours d’une image de gradient et comment calcule-t-on cette dernière ; • Qu’est ce que la transformée de Hough et à quoi sert -elle ; • Qu’est qu’un point d’intérêt et comment le détecteur de Harris les détecte ;

 • Objectif Détection de contours : approche générale Contour = où réside l’information

• Objectif Détection de contours : approche générale Contour = où réside l’information (entropique) – Délimitation des objets – Détection de points d’intérêt • Méthodes dérivatives – À partir du gradient ( vect. 2 D), norme et direction – Approximation de la dérivée 2 nde par le Laplacien f(x) f’’(x)

Principe des méthodes dérivatives Laplacien trop bruité pour être utilisé seul Utilisation du gradient

Principe des méthodes dérivatives Laplacien trop bruité pour être utilisé seul Utilisation du gradient Utilisation du laplacien Calcul de l’image du gradient Calcul de l’image du laplacien Calcul de l’image de la norme du gradient Calcul de l’image de la direction du gradient Seuillage (avec hystérésis) de l’image de la norme du gradient Elimination des non maxima locaux dans la direction du gradient Fermeture des contours Calcul de l’image binaire B des passages par zéro du laplacien Application du masque binaire B à l’image de la norme du gradient Seuillage (avec hystérésis) de l’image de la norme du gradient | B Elimination des non maxima locaux dans la direction du gradient Fermeture des contours

 par filtrage linéaire passe-haut • Gradient Sobel c=2 Prewitt c=1 Rq : les

par filtrage linéaire passe-haut • Gradient Sobel c=2 Prewitt c=1 Rq : les filtres sont donnés pour des directions lignes – colonnes cas de directions diagonales : Opérateur MDIF • Masque MDIF plus grand - sensible au bruit mais localisation des contours - bonne • Il existe aussi des généralisations de Sobel à des tailles (2 d+1) Filtres de Kirsch : 8 masques La direction du gradient est l’argument du masque qui maximise la norme du gradient à p/8 près

Filtre de Sobel : exemples Image originale Norme du gradient Gradient vertical Gradient horizontal

Filtre de Sobel : exemples Image originale Norme du gradient Gradient vertical Gradient horizontal

 par filtrage linéaire passe-haut • Laplacien 4 -connexité 8 -connexité 1 filtre passe

par filtrage linéaire passe-haut • Laplacien 4 -connexité 8 -connexité 1 filtre passe haut extrait l’information ‘complémentaire’ d’un filtre passe-bas : Id = MPB+MPH Ex : Coef. généralemt omis pour amplifier le résultat • Ex. :

 par filtrage optimal (I) • Critères de Canny Maximiser le rapport signal à

par filtrage optimal (I) • Critères de Canny Maximiser le rapport signal à bruit (i) Bonne détection, (ii) bonne localisation, (iii) faible multiplicité des maxima dus au bruit • Filtre impulsionnel à réponse finie (RIF) Filtre de Deriche : RII Minimiser la variance de l’erreur en distance Solution de Canny : RIF y(x) = a 1 eaxcoswx + a 2 eaxsinwx + a 3 e-axcoswx +a 4 e-axsinwx Filtre de lissage puis application d’un opérateur différentiel Gradient selon x = Image h(x) f(y) Gradient selon y = Image h(y) f(x) • Filtre de Shen - Castan Solution de Deriche : RII / y(x) = [Cst/w]. e-a|x|. sinwx Soit m / m. w=a, alors m>>1 y(x) h(x) = -a 2. x. e-a|x| Lissage ds la dir. celle de h par le filtre f / f’=h : f(y) = (a. |y|+1). e-a|y| (f’(y) = a. sgn(y). e-a|y|+(a. |y|+1). (-a. sgn(y)). e-a|y| = h(y)) Solution RII de Shen et Castan : f(x) = be-b|x|, f 1(x) = b. e-bx. u(x), f 2(x) = b. e-b(-x). u(-x)

 par filtrage optimal (II) • Implantation du filtre de dérivation de Deriche Décomposition

par filtrage optimal (II) • Implantation du filtre de dérivation de Deriche Décomposition entre 1 partie causale et 1 anti-causale R 1[i]=c. e-a. I[i-1]+2. e-a. R[i-1]-e-2 a. R[i-2] R 2[i]=-c. e-a. I[i+1]+2. e-a. R[i+1]-e-2 a. R[i+2] R[i]=R 1[i]+ R 2[i] • Partie causale : h-(i)=c. i. e-ia. u(i) |z|>1, TZ[u(i)] = 1/(1 -z-1) TZ[ai. x(i)] = X(z/a) TZ[e-iau(i)] = 1/(1 -e-az-1) TZ[ik. x(i)] = (z. d/dz)k. X(z) TZ[ie-iau(i)] = e-az-1/(1 -e-az-1)2 Partie anti-causale : h+(i)=(-c). (-i). e(-i)(-a). u(-i) Implantation du filtre de lissage de Deriche Décomposition entre 1 partie causale et 1 anti-causale R 1[i]= b. I[i]+ b. e-a. (a-1). I[i-1]+2. e-a. R[i-1]-e-2 a. R[i-2] R 2[i]= b. e-a. (a+1). I[i+1]-b. e-2 a. I[i+2]+2. e-a. R[i+1]-e-2 a. R[i+2] R[i]=R 1[i]+ R 2[i] Partie causale : f-(i)=b. (a. i+1). e-ia. u(i) TZ[f-(i)] = b. a. e-az-1/(1 -e-az-1)2+ b/(1 -e-az-1) Partie anti-causale : f+(i)=[ba. (-i). e(-i)(-a)+ b. e(-i)(-a)-bd(-i)]. u(-i) TZ[f-(i)] = b. a. e-az/(1 -e-az)2+ b/(1 -e-az)-b

Filtrage Canny-Deriche : exemples a=0. 5 a=5 Norme du gradient Image originale a=1 Direction

Filtrage Canny-Deriche : exemples a=0. 5 a=5 Norme du gradient Image originale a=1 Direction du gradient

Exemples de et . | | Prewitt | | Sobel | | MDIF D

Exemples de et . | | Prewitt | | Sobel | | MDIF D masque Deriche a=1 Deriche a=2 Deriche a=3 B 1 B 2 | | MM (B 1) | | MM (B 2) D MM (B 1) D MM (B 2) Shen b=0. 5 Shen b=1

Détection de contours (I) Ø Seuillage avec hystérésis – Détection des pixels de valeur

Détection de contours (I) Ø Seuillage avec hystérésis – Détection des pixels de valeur ≥ sh – Ajout des pixels de valeur ≥ sb et qui 1 composante connexe ayant au moins 1 pixel de valeur ≥ sh – Programmation avec 1 pile gérant la composante connexe : 1. initialisation de l’image des contours Ima. Cont à 0 2. Initialisation de la pile P avec les pixels / ≥ sh 3. Tant que |P|>0 a. Extraire M(x. M, y. M) de la pile b. Ima. Cont(x. M, y. M) 1 c. Pour chaque k-connex (k=4 ou 8) voisin de M, noté VM : Si VM P et si Ima. Cont(x. VM, y. VM) 1 et si ≥ sb, alors ajouter VM à P

Image originale Seuillage hystérésis sur gradient : exemples Norme du gradient Seuillage > 30

Image originale Seuillage hystérésis sur gradient : exemples Norme du gradient Seuillage > 30 Seuillage hystérésis par reconstruct. géodésique Seuillage >72 + élimination des bords Norme du gradient Blanc = seuillage >50, Rouge = seuillage > 25 Seuillage hystérésis par reconstruct. géodésique

Détection de contours (II) Ø Détection des maxima locaux de la norme du gradient

Détection de contours (II) Ø Détection des maxima locaux de la norme du gradient dans la direction du gradient q Cas (i-1, j+1) A 2 (i, j-1) M 2 A 0 (i, j) M 1 A 1 (i, j+1) soit A 0=(i, j), A 1=(i, j+1), A 2(i-1, j+1) on cherche z. M = a 1 A 1+a 2 A 2 avec (i+1, j-1) alors a 2=tanq et a 1=1 -tanq donc Autres cas : a 1+a 2=1, (a 1, a 2) [0, 1]2

Fermeture de contours • Construction d’ 1 « look-up table » permettant d’indexer les

Fermeture de contours • Construction d’ 1 « look-up table » permettant d’indexer les pixels candidats à la fermeture pour chaque configuration. Codage configuration : Ex. 3 2 1 4 0 5 6 7 T[16][0]=1 ; T[16][j]={1, 0, 7} ; où xi=1 si contour, 0 sinon 3 2 1 4 0 5 6 7 T[136][0]=0 ; 3 2 1 4 0 5 6 7 T[8][0]=1 T[8][j]={0, 7, 6} T[i][0] =1 si contour à prolonger (i [0, 255]) T[i][j] avec j [1, 3] donne les coordonnées relatives des 3 pixels candidats à la fermeture • Ex. d’algorithme de fermeture : i. e. pixel / T[i][0] =1 – Pour chaque extrémité trouvée lors du balayage de l’image : 3 p chemins • Construction du sous-arbre de tous les chemins possibles de longueur p et du coût associé à chaque nœud : somme des normes des gradients en chaque point du chemin • Sélection du nœud de coût maximum • Prolongation du contour

Exemple Filtre Sobel Seuillage hysérésis Bruit gaussien s=30 Après fermeture de contours Itérations 1

Exemple Filtre Sobel Seuillage hysérésis Bruit gaussien s=30 Après fermeture de contours Itérations 1 (cyan), 2 (bleu) ; seuil sur coût (droite)

Algorithme « Edge drawing » • Pré-calcul de (i) l’image des gradients horizontaux Gx,

Algorithme « Edge drawing » • Pré-calcul de (i) l’image des gradients horizontaux Gx, (i) l’image des gradients verticaux Gy, (iii) l’image binaire des directions Q de gradient • Calcul de l’image binaire des points d’ancrage J • Chaque point d’ancrage est relié au suivant en maximisant la norme du gradient tout en se déplaçant selon la direction de départ (rigidité) • Ex. d’instanciation (Topal et al. , ICPR 2010) – Gx et Gy calculées par Sobel ; Q calculée par comparaison de Gx et Gy en chaque pixel – J’ calculée par seuillage hystérésis de |Gx|+|Gy| ; J calculée par sous-échantillonnage dyadique de J’ (facteur k appelé ‘detail ratio’ : k grand contours grossiers, k petit contours détaillés)

Exemples Image niveaux gris Sobel + seuillage hystérésis automatique Affinement de contours Edge drawing

Exemples Image niveaux gris Sobel + seuillage hystérésis automatique Affinement de contours Edge drawing k=4, l 15

Transformée de Hough • Utilisation d’information a priori pour reconnaître le type d’objets recherchés

Transformée de Hough • Utilisation d’information a priori pour reconnaître le type d’objets recherchés et leur représentation • Principe : – Les objets recherchés sont décrits à l’aide de fonctions simples modélisées par leurs paramètres Ex. : segments de droites, arcs de cercles – La transformée de Hough permet de passer de l’espace image à l’espace des paramètres pour recher dans cet espace les objets d’intérêt

Transformée de Hough : cas de la recherche de droites (I) • Représentation d’une

Transformée de Hough : cas de la recherche de droites (I) • Représentation d’une droite : y = ax + b Hors cas x = Constante – Dans l’espace image I, x et y sont les variables (colonne et ligne) et (a, b) est un couple de paramètres fixes pour une droite donnée – Dans l’espace des paramètres P, a et b sont les variables et (x, y) est un couple de paramètres fixes pour un pixel donné Par un point de I passe une infinité de droites, représentées par une droite dans P (b=-ax+y), et A chaque point de P correspond une droite de I I y b Q DP P DQ Algorithme : 1. calculer, pour chaque point du contour dans I, la droite lui correspondant dans P ; 2. Incrémenter les valeurs le long de cette droite ; 3. déterminer le ‘point d’accumulation’ dans P P x a

Transformée de Hough : cas de la recherche de droites (II) • Représentation d’une

Transformée de Hough : cas de la recherche de droites (II) • Représentation d’une droite : x. cosj +y. sinj = r 0 avec 0 < r 0 < diagonale de l’image, et 0 < j < 2 p Espace des paramètres ( ) (j-q)| (droite perpendiculaire en r 0/rr=0, j |cos A chaque point de I correspond une courbe dans P, et une M 0(r 0, j) à la droite radiale q=j pente j-p/2) M(r, q) Mintersection de courbes dans P correspond à une droite dans I 0(r 0, j) Droite de paramètres (r 0, j) d’éq. r = r 0. sec(q-j) r j-p/2 r 0 p-j j- q q r 0 = r. cos(q). cos(j)+ r. sin(q). sin(j) r 0 = x. cos(j)+ y. sin(j)

Transformée de Hough : exemple Image originale Détection de contours Transformée de Hough Droites

Transformée de Hough : exemple Image originale Détection de contours Transformée de Hough Droites reconstruites Maxima régionaux de la transformée de Hough

Transformée de Hough : exemple 2 Image originale + contours superposés Droites reconstruites Maxima

Transformée de Hough : exemple 2 Image originale + contours superposés Droites reconstruites Maxima régionaux de la transformée de Hough

Transformée de Hough : cas de la recherche de cercles • Représentation d’un cercle

Transformée de Hough : cas de la recherche de cercles • Représentation d’un cercle : (x–a)2 + (y-b)2 = r 2 A un point de I correspond une surface dans P , et P représenté sous forme d’un tableau 3 D (a, b, r) Si on se donne un rayon (en pixels) et un % de pixels devant appartenir à la circonférence du cercle, on peut en déduire le seuil dans P (en nombre de pixels ayant voté pour un cercle (a, b, r) ) r = r 2 r 1 r 2 b r 3 a Intensité fct du % d’intersection de l’ellipse et du cercle de rayon r

Points d’intérêt • Pixels de l’image les plus riches en information Caractérisent le contenu

Points d’intérêt • Pixels de l’image les plus riches en information Caractérisent le contenu sémantique d’une image Critère principal pour leur définition : stabilité et reproductibilité • Coins : – Pixel présentant des gradients élevés selon deux directions Attention à la base utilisée !

Détecteur de Harris & Stephens: principe • En chaque pixel s, calcul de la

Détecteur de Harris & Stephens: principe • En chaque pixel s, calcul de la matrice d’autocorrélation Avec I l’image d’origine, Ix et Iy ses dérivées resp. selon les dir. x et y G(s) le filtre passe-bas gaussien de paramètre s • Les valeurs propres l 1 et l 2 de Ms caractérisent le pixel s l 2 Contour Coin l 1 et l 2 grands Région homogène Contour l 1

Détecteur de Harris : calcul (I) • Eviter le calcul des valeurs propres en

Détecteur de Harris : calcul (I) • Eviter le calcul des valeurs propres en calculant la trace et le déterminant de Ms : - Trace(Ms)= l 1 + l 2 = M 1, 1 +M 2, 2 - Déterminant(Ms)= l 1 l 2 = M 1, 1 M 2, 2 -M 1, 2 M 2, 1 • Le paramètre R permet l’identification des coins - R=Déterminant(Ms)-k[Trace(Ms)]2 - Les coins correspondent à R max local R>0 Trace(Ms)>t - k et t paramètres : k=0. 04 (par défaut) et t relié à la ‘taille’ du coin

Détecteur de Harris : calcul (II) • Filtrage linéaire gaussien de l’image d’origine •

Détecteur de Harris : calcul (II) • Filtrage linéaire gaussien de l’image d’origine • Calcul des images Ix et Iy des gradients selon les directions x et y respectivement, p. e. par différences finies • Calcul des images des termes de la matrice de covariance Ix 2, Iy 2 et Ix. Iy • Filtrer les images Ix 2, Iy 2 et Ix. Iy par filtrage linéaire Gaussien , et • Calcul de l’image du critère R : en chaque pixel • Création de l’image des points d’intérêt = maxima locaux de R supérieurs au seuil

Détecteur de Harris : exemples Composition RGB des 3 composantes Ix 2, Iy 2

Détecteur de Harris : exemples Composition RGB des 3 composantes Ix 2, Iy 2 et Ix. Iy après filtrage gaussien Image du critère R (k=0. 04) Points détectés (V) sur image d’origine (R)

Détecteur de Harris : exemples Points sur ‘imagetest_synthetic’ tournée de + 30 degrés Autres

Détecteur de Harris : exemples Points sur ‘imagetest_synthetic’ tournée de + 30 degrés Autres exemples Points détectés sur ‘imagetest_synthetic’ Points détectés aux échelles s=5 (R), s=1 (V), s=3 (B)