Transformations d `image

Download Report

Transcript Transformations d `image

Extraction de points de
contours
Plan
Principe
 Filtres simples basés sur le calcul du
gradient
 Calcul du laplacien
 Filtre optimum

2002
Extraction de points de contour
2
Principe
y’
Arête = rupture d’intensité
y
D’où l’utilisation de la dérivée
première
x  x cos  y sin 
x’

x
y   x sin  y cos
2002
Extraction de points de contour
3
Principe
 Recherche de la direction 0 dans laquelle la
dérivée de f atteint son maximum
f f
f

cos 
sin 
 x  x
y
f
f
f

sin  
cos
 y
x
y
2002
Extraction de points de contour
5
Principe
D’où la direction optimale
 f 
 y 
 0  arctan 

 f 
  x 
2002
Extraction de points de contour
Direction du gradient
6
Principe
La valeur du maximum est donnée
par :
cos 0 
1
sin  0  1  cos  0
2
1  tan  0
2
f
f
 f   f 
cos 0 
sin  0  

 y 

x
y

x

 

2
2
Module du gradient
2002
Extraction de points de contour
7
2002
Extraction de points de contour
8
Principe
Sur la base de la détection par la dérivée première :
Calcul de gradient
Gradient boussole
Toujours le résultat de l’application d’un masque :
I , H   h  i, j  I  i  m, j  n   I  m, n   h  m, n 
i
2002
j
Extraction de points de contour
9
Principe
f(x)
Utilisation possible de la dérivée seconde
Recours au laplacien
x
2f 2f 2f 2f
f 



2
2
2
2


x
y
x y
- f''(x)
passage par zéro
x
Avec
2002
Extraction de points de contour
double arète
10
Principe
 f 
 y 
Orientation du gradient   arctan  
 f 
 
 x 
Dérivée directionnelle
f f
f
 cos  sin   f , n
n x
y
n

2002
Extraction de points de contour
11
Principe
A un extremum de la dérivée directionnelle première
correspond un passage par zéro de la dérivée
directionnelle seconde
2
2
2 f 2 f

f

f
2
2

cos


2
cos

sin


sin

2
2
2
n
x
xy
y
Le laplacien n’est qu’une approximation
2002
Extraction de points de contour
12
Filtres simples basés sur le
calcul du gradient

Deux approches :


2002
Calcul du gradient et de la direction
Calcul du gradient dans différentes
directions (gradient directionnel)
Extraction de points de contour
13
Calcul du gradient et de la
direction
Définition de deux masques H1 et H2
g1  m, n   I,H1
m ,n
g2  m, n   I,H2
m ,n
g  m, n   g  g
 g 2  m, n  
direction  arctan 

 g1  m, n  
2
1
2002
Extraction de points de contour
2
2
14
h1(-m, -n)
g1(m, n)
I
Calcul du module
et de la direction
h2(-m, -n)
g2(m, n)
Seuillage
Direction
Points de contour
Pixel où le module du gradient est grand = arête de forte intensité
2002
Extraction de points de contour
15
Calcul du gradient et de la
direction







Filtre de Sobel
Filtre de Prewitt
Exemples
Remarque
Autres filtres
Extraction des points de contour par seuillage
Récapitulatif
2002
Extraction de points de contour
16
Filtre de Sobel
Deux masques
2002
-1
0
1
-1
-2
-1
-2
0
2
0
0
0
-1
0
1
1
2
1
Extraction de points de contour
17
Filtre de Prewitt
Deux masques
2002
-1
0
1
-1
-1
-1
-1
0
1
0
0
0
-1
0
1
1
1
1
Extraction de points de contour
18
Remarque
Une remarque : ces filtres peuvent être vus
comme une convolution
1
 c   1 0 1

  
1
 
2002
Extraction de points de contour
19
Autres filtres
Filtre MDIF : convolution d’un filtre moyenne et
d’un filtre de Prewitt
1 1 1
 1 0 1 
 0 1 0
0 0 0
 1 0 1 
1 0 1










 0 1 0

1

1

1
1
0

1






moyenneur
 0 1 0 1 0 
dérivateurs
 0 2 0 2 1



 1 3 0 3 1


 1 2 0 2 1
 0 1 0 1 0 


2002
Extraction de points de contour
20
Autres filtres
Filtre NAGDIF : combinaison d’un filtre de
Nagao et d’un filtre de dérivation
1 1
1 1 1
1 1
D1
2002
1 1 1
1 1 1
1 1 1
1 1
D9
1 1 1
Masques D6 à
1 1
Masques D2 à
D4 déduits par
rotation de p/2
D8 déduits par
rotation de p/2
D5
Extraction de points de contour
21
Autres filtres
Pour chaque masque, on calcule moyenne et écart
type. L’intensité du pixel courant est remplacée par la
moyenne du domaine ayant le plus faible écart type.
B : image lissée
Opérateur de dérivation contour


Contour si max B  i, j   B  i  1 , j   2   s
 i valeurs entières de [–1,+1]
2002
Extraction de points de contour
22
Extraction des points ce
contour par seuillage
Seuillage arbitraire : difficile
 Seuillage en utilisant l’histogramme de
la norme du gradient
 Extraction des maxima locaux
 Seuillage par hystérésis

2002
Extraction de points de contour
23
Extraction des maxima locaux
M  i, j 
u
M 1
M1
M(i,j Contour
M2
M 2
Norme du gradient en M(i,j)
Normes du gradient en M1
et M2
Le point est un maximum local si :
M  i , j   M 1
M  i , j   M 2
2002
Extraction de points de contour
24
Extraction des maxima locaux
u
M1
On peut utiliser l’interpolation
linéaire pour le calcul
M(i,j ContourM 1 
M2
ui  Ai  i, j 
M 2 
uj
ui
uj
ui
  i  1, j  
ui  u j
ui
  i  1, j  1 
  i  1, j  1
ui  u j
ui
  i  1, j 
u j  Aj  i, j 
Ai , Aj les images des composantes verticale et horizontale du gradient
2002
Extraction de points de contour
25
Seuillage par hystérésis
•On se donne deux seuils sh et sb
•Les maxima locaux dont la valeur est supérieure à sh
sont conservés ainsi que tous ceux dont la valeur est
supérieure à sb et qui appartiennent à une
composante connexe comprenant au moins une valeur
supérieure sh.
•Risques de coupure du contour moins grand
2002
Extraction de points de contour
26
Récapitulatif
Calcul du gradient en chaque point de
l’image
 Création de l’image de la norme du
gradient
 Extraction des maxima locaux
 Seuillage par hystérésis de l’image des
maxima locaux

2002
Extraction de points de contour
27
Gradient directionnel
Calcul du gradient dans différentes
directions
 Recherche de la direction dans laquelle
le gradient est maximum
 Exemples :




2002
Gradient boussole
Masque de Kirsh
Masque adapté à des directions connues
Extraction de points de contour
28
Gradient boussole
1 1 1
0 0 0
-1 -1 -1
Nord
0 -1 -1
1 0 -1
1 1 0
Sud Ouest
2002
1
1
0
1 0 -1
0 -1 -1
Nord Ouest
-1 -1 -1
0 0 0
1 1 1
Sud
Extraction de points de contour
1
1
1
0 -1
0 -1
0 -1
Ouest
-1 -1 0
-1 0 1
0 1 1
….
Sud Est
29
Masque de Kirsh
A0
2002
A1
A2
A7 f(j,k)
A3
A6
A4
A5
Si  Ai  Ai1  Ai 2
Ti  Ai3  Ai4  Ai5  Ai6  Ai7
mod8


f  j , k  max 1, max  5Si  3Ti  
i 0,7


Extraction de points de contour
30
Approche laplacien
Laplacien classique
 Approche DOG
 Récapitulatif

2002
Extraction de points de contour
31
Laplacien classique
Passage d’un masque
0
-1
0
-1
-1
-1
-1
4
-1
-1
8
-1
0
-1
0
-1
-1
-1
 Recherche des passages par zéro
Attention à l’amplification du bruit
2002
Extraction de points de contour
32
Approche DOG
Approximation par la différence de deux
gaussiennes
 Basé approximativement sur la vision
humaine

2002
Extraction de points de contour
33
Approche DOG
On va raisonner sur une seule
variable
On réalise le filtrage du bruit au
préalable par un filtre gaussien
g(x)
I2  I  g  x 
I 2    I  g   I  g  x 
2002
Extraction de points de contour
34
Approche DOG
Considérons la différence DOG de deux
gaussiennes de variance proche
 x2 
 x2 
1
1
DOG 
exp    
exp   
 2p
 2    2p
 2
     d
2002
Extraction de points de contour
35
Approche DOG

2p DOG  d

1
 x2  
 exp   2  
 2  

 1 x2 
 x2 
2p DOG    2  4  exp   2 
 

 2 
g  x 
x 2
2002
 1 x2 
 x2 

 4  exp   2 
2  2
 
2p 
 2 
1
Extraction de points de contour
36
Approche DOG
Expression générale du laplacien d’une
gaussienne à deux variables
 x2  y 2 
1  x2  y 2 
g ( x, y )   4 1 
exp  
2 
2 
p 
2 
2



Spectre
2002
Extraction de points de contour
37
Cas particulier de DOG
Soustraction d’une version lissée
(passage d ’un masque gaussien) de
l ’image
 Cela revient à un DOG avec une des
gaussiennes d ’écart type nul

2002
Extraction de points de contour
38
Problème des images couleur
Si l ’opérateur est appliqué dans les
plans RGB séparément, il peut se
produire de nouvelles couleurs en
recombinant, d ’où un bruit visuel
 Il vaut mieux alors travailler dans le
plan TSL, ce qui laisse les couleurs
inchangées

2002
Extraction de points de contour
39
Récapitulatif pour le laplacien
Calcul du laplacien
 Recherche des passages par zéro du
laplacien
 Création de l’image des passages pâr
zéro affectés de la norme du gradient
 Seuillage par hystérésis

2002
Extraction de points de contour
40
Filtres stochastiques

Poids liés à la distance au centre du
masque
2002
Extraction de points de contour
41
Filtre optimum
Principe du filtrage
 Modéliser le signal à extraire et le bruit
de l’image
 Transformer le problème d’extraction de
points de contour en un problème
d’optimisation
 Résoudre et éventuellement trouver
une solution approchée

2002
Extraction de points de contour
42
Principe du filtrage
•Trouver la réponse impulsionnelle d’un filtre
susceptible d’extraire les points de contour tout en
réduisant le bruit
•En dimension deux, pour une image N x M et un masque
de dimension p2, une convolution de l’image coûte p2NM
(2p2NM si on a un masque pour chaque dérivée)
2002
Extraction de points de contour
43
Principe du filtrage
•Introduire un filtre à réponse impulsionnelle
séparable
h  x, y   h1  x  h2  y 
•Avantages :
 Réduction du temps de
calcul
 Possibilité de prendre en compte des
caractéristiques différentes suivant les
directions
2002
 Généralisation à un nombre de dimension
quelconque
Extraction de points de contour
44
Principe du filtrage
Soit un filtre séparable
I  x, y   h  x, y   I  x, y    h1  x  h2  y  
I  x, y   h  x, y    I  x, y   h1  x    h2  y 
Pour le calcul de la dérivée première
  I  x, y   h  x , y  
x
2002
 h1  x 

 I  x, y   
h2  y  
 x

Extraction de points de contour
45
Principe du filtrage
Pour le calcul du laplacien
  2 h1  x 
 2 h2  y  
  I  x, y   h  x, y    I  x, y   
h2  y   h1  x 

2
2
y
 x

Rechercher la réponse impulsionnelle d’un filtre
séparable susceptible de diminuer le bruit et
appliquer les opérateurs dérivée
Raisonner sur une seule dimension
2002
Extraction de points de contour
46
Modéliser le signal et le bruit
I  x   AY  x  +n  x 
Modèle additif
L’arête est modélisée comme un échelon
1
Y  x  U  x  
0
x0
x0
Le bruit est un bruit blanc additif
E  n  x   0
E  n 2  x     02
2002
x
Extraction de points de contour
47
Modéliser le signal et le bruit
I(x)
O(x)
h(x)

O  x    I  x  u  h  u  du





O  x    AY  x  u  h  u  du   n  x  u  h  u  du
2002
Extraction de points de contour
48
Modéliser le signal et le bruit
Supposons l’arête placée en x=0
x



O  x   A h  u  du   n  x  u  h  u  du
La sortie du filtre en 0 s’écrit
0



O  0   A h  u  du   n  u  h  u  du
On souhaite que la sortie présente un maximum
lorsqu’il y a arête
2002
Extraction de points de contour
49
Critères d’optimisation
Canny a proposé trois critères
•Critère de détection
•Critère de localisation
•Critère d’unicité de la réponse
2002
Extraction de points de contour
50
Critère de détection
Maximiser le rapport signal sur bruit



E  n   E  n  u  h  u  du  n  v  h  v  dv 
 


2
En
2
  
2
0


h  u  du
Retour calcul
2
 h  u  du
0
C1  SNR 
A
0




2002
h  u  du
2

1
Extraction de points de contour

2
A
0
 h
51
Critère de localisation
Rechercher l’écart entre le maximum de la sortie en x0 et 0
O  x0   0




O  x0    AY  x  u  h  u  du   n  x  u  h  u  du
Contribution du signal
Contribution du bruit
S  x   Ah  x 
2002

N  x    n  x  u  h  u  du
Extraction de points de contour

52
Critère de localisation
EN
2
 x      h2  u  du
2
0

Supposons x0 proche de 0
S  x0   Ah  0   x0 Ah  0     x02 
h impaire
S  x0   x0 Ah  0 
2002
Extraction de points de contour
53
Critère de localisation
O  x0   S  x0   N  x0   Ax0 h  0   N  x0 
D’où
N  x0 
x0  
Ax0 h  0 
Ex
2
0
2002


2
0
2
A



h2  u  du
h2  0 
Extraction de points de contour
54
Critère de localisation
C2 
2002
1
Ex
2
0


h  0 
A
0



h2  u  du
Extraction de points de contour

A
0
 h
55
Unicité de la réponse
•Réduire les réponses multiples
•Rice a montré que la distance moyenne entre deux
passages par zéro d’un processus gaussien obtenu
par filtrage d’un bruit blanc par g(x) est donné par :
 R  0 
d p 

 R  0  
2002
1
2

R     g  x    g  x  dx
Extraction de points de contour

56
Unicité de la réponse

R     g   x    g  x  dx


R  0     g   x  dx
2

12
2


g
x
dx




d  p  
  g 2  x  dx 
 


g  h
2002
12
 h  x  dx 



C3  2d  2p 

 h2  x  dx 
 


Extraction de points de contour
2
57
Résoudre
Principe
 Approche
 Approche
 Approche
 Approche

2002
de Canny
par Gauss
de Deriche
de Shen-Castan
Extraction de points de contour
58
Principe de résolution
Utilisation du calcul des variations
Rechercher S rendant f maximum


f  S     x, S  x  , S   x  ,..., S  n   x  dx
b
a
CNS
n
 d 

n d

 ...   1
0
n
n

S dx S 
dx S
2002
Extraction de points de contour
59
Principe de résolution
S’il y a aussi des contraintes du genre :

b
a

 i x, S  x  , S   x  ,..., S 
n
 x   dx  Di
i  1, p
On prend pour critère :
b
p

 
  S       ai Di  dx
i 1
a 

2002
Extraction de points de contour
60
Principe de résolution
h doit être impaire et supposons la limitée à [-W,W]
Prenons simplement le premier critère
Majorer   h  est équivalent à minimiser

W
W
h
2
 y  dy

1
2
 2

0
W
h
2
 y  dy

1
2
avec la contrainte

0
W
2002
h  y  dy  D1
Extraction de points de contour
61
Principe de résolution
On construit la fonction
  h  y    h  y   dy
0
2
W
D’où la solution
2h    0  h  

2
x   W ,0
Détecteur de Herkowitz-Binford
2002
Extraction de points de contour
62
Approche de Canny
Canny a proposé de majorer  avec d  kW
h est de support fini
Minimiser

0
W
h 2  y  dy

Avec trois contraintes

0
W
2002
h
2
 y  dy  D2
0
W

0
W
h  y  dy  D1
h2  y  dy  D3
Extraction de points de contour
63
Approche de Canny
D’où la fonction critère
f 
0
W
2
2
2


h
y


h
y


h
y


h






 y   dy

1
2
3
Ce qui conduit à l’équation
C  2h  1  22 h  23h   0
4
2002
Extraction de points de contour
64
Approche de Canny
La solution générale s’écrit :
h  x   e  x  a1 sin  x  a2 cos  x   e x  a3 sin  x  a4 cos  x  
x   W ,0
avec
22
2
1 
 0   
4
24
2
et les conditions aux
limites
2002
44  2
4  
442
2
2
h  0   h  W   h W   0
h  0   c3
Extraction de points de contour
65
1
2
Approche de Canny
En utilisant une technique d’optimisation numérique sous
contrainte, Canny a trouve les valeurs optima suivantes
  1,12
k  0,58
2002
Extraction de points de contour
66
Approche par Gauss
L’idée est de prendre un filtre de lissage gaussien
 x2 
h1  x   c exp   2 
 2 
 x2 
h1  x   c exp   

 2
x
C’est le filtre de Marr
2002
Extraction de points de contour
k  0,51
  0,92  1,12  0,8
67
Approche de Deriche
Utilisation d’un filtre à réponse impulsionnelle infinie (RII)
h2  x   a3 exp   x  sin  x
Il est facile de calculer les différentes expressions
2

 2 2
  2
 
2002
2
 2 2


 
k  2
2 2
4 
5


6






2
Extraction de points de contour
2
1
2
68
Approche de Deriche
Posons    m
L=
m= 1 S ;
m= 1
2a
a2
Þ LS » 2m
k; 1
m2
L=
2a
S;
1 Þ LS =
a
L=
2a
S;
2 Þ LS ; 2
a
m? 1
2002
2a
Extraction de points de contour
2
k ; 0,58
k » 0, 44
69
Filtre bidimensionnel de
Deriche
Lissage
 Calcul du gradient
 Calcul du laplacien
 Implémentation récursive

2002
Extraction de points de contour
73
Lissage
h3  x   cx exp   x 
Intégration
H 3  x   b  x  1 exp   x 
b

4
Filtre bidimensionnel
H 3  x, y   b2  x  1 exp   x   y  1 exp   y 
I   x, y   H 3  x, y   I  x, y 
2002
Extraction de points de contour
74
Deriche
Canny
2002
Extraction de points de contour
75
Calcul du gradient
I   x, y 
x

H 3  x, y   I  x, y 
x
 I  x, y  
H 3  x, y 
x
Deux opérateurs de dérivation
H 3  x, y 
x
H 3  x, y 
y
2002
  x exp   x   y  1 exp   y 
  y exp   y   x  1 exp   x 
Extraction de points de contour
a3
h= 4
76
Calcul du laplacien
I   x, y   I  x, y   H 3  x, y 
H 3  x, y   exp   x  exp   y   k 2 x y exp   x  exp   y 
2002
Extraction de points de contour
77
Implémentation récursive
•Discrétiser H sur N points : N multiplications et (N-1)
additions pour obtenir une sortie
•Réaliser un filtre récursif
h3  x   cx exp   x 
h3(i) séquence échantillonnée et T3(z) sa transformée en z
T3  z  
2002

i
h
i
z


 3
i 
Extraction de points de contour
78
Implémentation récursive
h3 (i )= h3- (i )+ h3+ (i )
2002
cie- i
h3  i   
0
i0
i0
0
h3  i    - i
cie
i0
i0
Extraction de points de contour
79
Implémentation récursive
T3  z   T3  z 1   T3  z 

1
ce z
T3  z  
1  2e z 1  e2 z 2
1
ce z
T3  z  
1  2e z  e2 z 2
2002
Opère de gauche à
droite
Deux fonctions de
transfert de filtres
récursifs stables
Opère de droite à
gauche
Extraction de points de contour
80
Implémentation récursive
c est choisi de manière à obtenir un maximum d’amplitude
de 1 en réponse à un échelon unitaire
1 e 

c

2
e 
2002
Extraction de points de contour
81
Implémentation récursive
D’où les équations aux différences
I1  i   ce I  i  1  2e  I1  i  1  e 2 I1  i  2  i  1, M
I 2  i   ce  I  i  1  2e  I 2  i  1  e 2 I 2  i  2  i  M ,1
IT  i   I1  i   I 2  i 
2002
Extraction de points de contour
5 multiplications
5 additions !!
82
Implémentation récursive
Le filtre de lissage a aussi une implémentation récursive
L1  i   bI  i   be    1 I  i  1  2e  L1  i  1  e 2 L1  i  2  i  1, M
L2  i   be    1 I  i  1  be 2 I  i  2   2e  L2  i  1
e 2 L2  i  2 
i   M ,1
LT  i   L1  i   L2  i 
2002
Extraction de points de contour
83
Implémentation récursive
En combinant les deux, on obtient l’implémentation
du gradient bidimensionnel de Deriche
Soit pour une dérivée directionnelle :
•13 multiplications
•12 additions
2002
Extraction de points de contour
84
Approche de Shen Castan
Opérateur de lissage
 Opérateur de dérivation
 Opérateurs bidimensionnels
 Implémentation récursive

2002
Extraction de points de contour
85
Opérateur de lissage
Les auteurs partent de la définition d’un filtre de
lissage optimal
I  x   AU  x  +n  x 
I  x   H 4  x   I L  x   AU  x   H 4  x  +n  x   H 4  x 
2002
Extraction de points de contour
86
Opérateur de lissage
I L  x 
x
 A  x   H 4  x  +n  x  
H 4  x 
x
Puissance moyenne du signal du au bruit seul
avant dérivation
Contribution due au signal après dérivation

Extraction de points de contour



H 42  x  dx
A2 H 42  0 
Contribution due au bruit après dérivation 
2002
2
2



H 42  x  dx
87
Opérateur de lissage
Minimiser



CS 
H
2
4

 x  dx  H 42  x  dx
H 42  0 
Après un certain nombre de considérations, on cherche une
fonction paire et on analyse sur une fenêtre de largeur 2M
C S2 
2002

M
0
H
2
4
 x  dx 0 H 42  x  dx
H 42  0 
M
Extraction de points de contour
88
Opérateur de lissage
D’où l’équation différentielle :
2 H 4  x   2 H 4  x   0
H 4  x   a1e  x  a2e  x
M 
2002
lim H 4  x   0
x
H4  x  
Extraction de points de contour

2
e
 x
89
Opérateur de dérivation
H4  x  

2
e
 x
  2  x
 2 e
h4  x    2
  e x
 2
2002
  e  x
H 41  x   
0
x0
x0
0
H 42  x     x
 e
x0
x0
x0
x0
H 4  x   H 41  x   H 42  x 
h4  x  
h4  x  
2

2
 e  x  2  x 


H  x   H  x 

2
Extraction de points de contour
42
41
90
Opérateur de dérivation
Lissage
L  x   I ( x)  H 4  x    I  x   H 41  x    H 42  x 
Dérivation première
I  x 

I ( x)  H  x   I ( x)  H  x  

2
41
42
Dérivation seconde
I   x    2  I ( x)  H 4  x   I ( x) 
2002
Extraction de points de contour
91
Opérateurs bidimensionnels
Gradient
H 4
 x, y   H 4  y   H 42  x   H 41  x  
x
H 4
 x, y   H 4  x   H 42  y   H 41  y  
y
2 H4
2
x
,
y


H 4  y   H 4  x     x 


2
x
Laplacien
2002
2 H4
2
x
,
y


H 4  x   H 4  y     y 


2
y
Extraction de points de contour
92
Implémentation récursive
Lissage
I1  i   e   I1  i  1  I  i    I  i  i  1, M
I 2  i   e   I 2  i  1  I  i    I  i  i  M ,1
Gradient (mêmes équations)
En exploitant ces résultats, on constitue le filtre
bidimensionnel
4 multiplications
10 additions
2002
Extraction de points de contour
93