Transcript Document

• 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. 2D), norme et direction
2
2

I

I
– Approximation de la dérivée 2nde par le Laplacien   2  2
x y
1,2
0,6
1
0,5
0,8
0,4
0,3
0,6
0,3
0,2
0,4
0,2
0,2
0,1
0,6
0,5
0,4
0,1
0
-0,1 0
5
-0,2
0
0
0
5
10
-0,2
15
0
5
10
-0,1
f(x)
15
-0,3
-0,4
f’(x)
f’’(x)
10
15
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 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
 1 0 1
 c 0  c 
 1 0 1
 1  c 1
 0  0  0 
 1  c 1 
Rq : les filtres sont donnés pour des
directions lignes – colonnes  cas de
directions diagonales :
Opérateur MDIF
0
1
1
1
0
1
2
3
2
1
0 1 0 
0  2 1
0 3 1
0  2 1
0 1 0 
 c 1 0  0 1  c 
 1 0 1 1 0 1
 0 1  c  c 1 0 
1
1 0
0 1
3
2 1
1 2
0
0 0
0 0

1

2

3

2 1

 0 1 1 1 0 
• Masque MDIF plus grand  - sensible au bruit mais localisation des contours - bonne
• Il existe aussi des généralisations de Sobel à des tailles (2d+1)(2d+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
 3 3 3 3 3 3 3 3  5 3  5  5  5  5  5  5  5 3  5 3 3  3 3 3
 3 0 3 3 0  5 3 0  5 3 0  5  3 0 3  5 0 3  5 0 3  5 0 3
 5  5  5 3  5  5 3 3  5 3 3 3  3 3 3  3 3 3  5 3 3  5  5 3
Filtre de Sobel : exemples
Image originale
Norme du gradient
Gradient horizontal
Gradient vertical
 par filtrage linéaire passe-haut
• Laplacien
4-connexité
  0 1  0 
 1  4 1 
 0 1  0 
8-connexité
1 1 1
1  8 1
1 1 1
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.:
1 0 0 0 1 1 1 1 1 1 1 1
0 9 0  1 1 1  1  8 1
9 0 0 0 9 1 1 1 9 1 1 1







 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) = a1excoswx + a2exsinwx + a3e-xcoswx +a4e-xsinwx
3
f X x , y  
.x .e  x . y 1.e  y  h x .f y 
4
3
fY  x , y  
.y .e  y . x 1.e  x  hy .f  x 
4
 Gradient selon x = Imageh(x)f(y)
Gradient selon y = Imageh(y)f(x)
•
Filtre de Shen - Castan
Filtre de lissage puis
application d’un
opérateur différentiel
Solution de Deriche : RII / y(x) = [Cst/w].e|x|.sinwx
Soit m / m.w=, alors m>>1  y(x)  h(x) = -2.x.e-|x|
Lissage ds la dir.  celle de h par le filtre f / f’=h :
f(y) = (.|y|+1).e-|y|
(f’(y) = .sgn(y).e-|y|+(.|y|+1).(-.sgn(y)).e-|y| = h(y))
   y   2 x  x
f X x , y  
.e
. 
. .e
2
2
x


  f y .f 2  x   f1 x 


   x   2 y  y
fY  x , y  
.e
. 
. .e
2
2
y


  f  x .f 2 y   f1y 


Solution RII de Shen et Castan :
f(x) = e-|x|, f1(x) = .e-x.u(x),
f2(x) = .e-(-x).u(-x)

 par filtrage optimal (II)
•
Implantation du filtre de dérivation de Deriche
2

1 e  
c
Décomposition entre 1 partie causale et 1 anti-causale
i

h  i   c .i .e
 0
0
h  i   
c .i .ei

 
e 
1
c .e .z
si i  0  h z 1 
-
-
-2

 1
 2  2  R1[i]=c.e .I[i-1]+2.e .R[i-1]-e .R[i-2]
si i  0
1 2.e .z  e
.z
si i  0
 c .e .z
 h  z  
 R2[i]=-c.e-.I[i+1]+2.e-.R[i+1]-e-2.R[i+2]

2 2
si i  0
1 2.e .z  e
.z
R[i]=R1[i]+ R2[i]
•

Partie causale : h-(i)=c.i.e-i.u(i)
|z|>1, TZ[u(i)] = 1/(1-z-1)
TZ[ai.x(i)] = X(z/a)  TZ[e-iu(i)] = 1/(1-e-z-1)
TZ[ik.x(i)] = (z.d/dz)kX(z)  TZ[ie-iu(i)] = e-z-1/(1-e-z-1)2
Partie anti-causale : h+(i)=(-c).(-i).e(-i)(-).u(-i)
Implantation du filtre de lissage de Deriche
Décomposition entre 1 partie causale et 1 anti-causale
 
f  z 1  b
f z  b
b
1 e 2
1 2 .e   e 2
1 e  . 1.z 1
 R1[i]= b.I[i]+ b.e-.(-1).I[i-1]+2.e-.R[i-1]-e-2.R[i-2]
 1
 2  2
1  2.e .z  e
.z
e . 1.z  e2 .z2
1 2.e .z  e2 .z2
R[i]=R1[i]+ R2[i]
 R2[i]= b.e-.(+1).I[i+1]-b.e-2.I[i+2]+2.e-.R[i+1]-e-2.R[i+2]
Partie causale : f-(i)=b.(.i+1).e-i.u(i)
TZ[f-(i)] = b..e-z-1/(1-e-z-1)2+ b/(1-e-z-1)
Partie anti-causale : f+(i)=[b.(-i).e(-i)(-)+ b.e(-i)(-)-bd(-i)].u(-i)
TZ[f-(i)] = b..e-z/(1-e-z)2+ b/(1-e-z)-b
Filtrage Canny-Deriche : exemples
=0.5
=5
Norme du
gradient
Image originale
=1
Direction du
gradient

Exemples de  et  .
|| Prewitt
|| Sobel
|| MDIF
 masque
Deriche =1
Deriche =2
Deriche =3
B1
B2
|| MM (B1)
|| MM (B2)
 MM (B1)
 MM (B2)
Shen =0.5
Shen =1
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 :
initialisation de l’image des contours ImaCont à 0


2. Initialisation de la pile P avec les pixels /
≥ sh
1.
3. Tant que |P|>0
a. Extraire M(xM,yM) de la pile
b.
ImaCont(xM,yM)  1
c. Pour chaque k-connex (k=4 ou 8) voisin de M, noté VM :

Si VM P et si ImaCont(xVM,yVM)  1 et si 
ajouter VM à P
≥ sb, alors
VM
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
dans la direction du gradient q
p
Cas q  0 ; 
 4 
(i-1,j+1)
A2
(i,j-1)
M2
A0
(i,j)
M1
A1
soit A0=(i,j), A1=(i,j+1), A2(i-1,j+1)
on cherche zM = 1A1+2A2 avec
(i,j+1)
(i+1,j-1)
alors 2=tanq et 1=1-tanq



donc  M1  1 tan q .  i , j 1  tan q .  i 1, j 1



 M2   1 tan q .  i , j 1  tan q .  i 1, j 1
p p 
;
4 
 2
Autres cas : q  
p 
;0
 4 
q 
p p
q  ; 
 4 2 
1+2=1,
(1,2)[0,1]2
Fermeture de contours
• Construction d’1 « look-up table » permettant d’indexer les
pixels candidats à la fermeture pour chaque configuration.
7
Codage configuration : V   x i .2i où xi=1 si contour, 0 sinon
Ex.
3 2 1
4
0
5 6 7
T[16][0]=1 ;
i 0
T[16][j]={1,0,7} ;
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
: / T[i][0] =1
i.e. pixel
– Pour chaque extrémité trouvée lors du balayage de l’image :
3p 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
 masque
Prewitt
Sobel
MDIF
Après
fermeture de
contours
Deriche =1
Deriche =2
Deriche =3
Shen =0.5
Shen =1
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 rechercher dans cet espace les objets
d’intérêt
Transformée de Hough : cas de la
recherche de droites (I)
• Représentation d’une droite : y = ax + b
Hors cas x = Cst
– 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
x
DQ
Algo :
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
a
Transformée de Hough : cas de la
recherche de droites (II)
• Représentation d’une droite : x.cosj +y.sinj = r0
avec 0 < r0 < diagonale de l’image, et 0 < j < 2p
 Espace des paramètresr /r(r=0,j
) (j-q)| (droite perpendiculaire en
|cos
0
 A chaque point
de
I
correspond
courbe
et unej-p/2)
M0(r0,j) à laune
droite
radialedans
q=j P,
 pente
M(r,q)
Mintersection
de courbes dans P correspond à une droite dans I
0(r0,j)
j-p/2
r0
pj
r
jq
q
Droite de paramètres (r0,j) d’éq. r = r0.sec(q-j)
 r0 = r.cos(q).cos(j)+ r.sin(q).sin(j)
 r0 = x.cos(j)+ y.sin(j)
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 régionaux de la
transformée de Hough
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 3D (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 = r2
r1
r2
b
r3
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 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 matrice d’auto2
corrélation


I

I x Iy 
x
t







Ms  G s  I I  G s  
2


I
I
I
 x y
y 
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 l1 et
l2 de Ms caractérisent le
pixel s
l2 Contour
Coin
l1 et l2 grands
Région
homogène
Contour
l1
Détecteur de Harris&Stephens : calcul
• Eviter le calcul des valeurs propres en calculant la trace et
le déterminant de Ms :
- Trace(Ms)= l1 + l2 = M1,1 +M2,2
- Déterminant(Ms)= l1l2 = M1,1M2,2 -M1,2M2,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
• 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 Ix2, Iy2 et
IxIy
• Filtrer les images Ix2, Iy2 et IxIy par filtrage linéaire Gaussien  I x 2 ,
2
, I y et I x Iy
• Calcul de l’image du critère R: en chaque pixel
R  Ix
2
Iy
2
 I x Iy
2

 k Ix
2
 Iy

2 2
 Ix2
Ms  
 I x Iy
• Création de l’image des points d’intérêt = maxima locaux de R
supérieur au seuil
I x Iy 

2
Iy 
Détecteur de Harris : exemples
Composition RGB des 3
composantes Ix2, Iy2 et IxIy 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
exemples
Points détectés sur
‘imagetest_synthetic’
Points détectés aux échelles
s=5 (R), s=1 (V), s=3 (B)