La dérivation de la fonction image s`appuie sur la définition suivante :

Transcription

La dérivation de la fonction image s`appuie sur la définition suivante :
PRODUIT DE CONVOLUTION
1
Traitement d’images
Convolution
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
2
Le produit de convolution est une opération très courante en traitement d'images. Ce produit
représente une classe d'opérations simples à programmer et efficace dans ses résultats. Cette efficacité
résulte directement de la linéarité de l'opération.
Principe fondamental de la convolution
Le produit de convolution EST l'opération de voisinage linéaire et invariante par translation. Il
n'y a pas d'autre opération ayant ces propriétés. Cette opération fait donc appel aux outils disponibles
pour respecter la convolution:
- multiplication du niveau de gris d'un point par une constante
- addition des niveaux de gris des points d'une image; dans le cas continu, cette addition
des niveaux se traduit sous forme d'une intégrale de surface.
Définition de la convolution dans l'espace continu
Soit F une image une image continue caractérisée par un niveau de gris f et G l'image résultat
de niveau de gris g .
Pour des images continues, le produit de convolution g = f ∗ h est défini par :
g  x , y = f ∗ h ∣x , y
= ∬voisinage f  x − u , y − v  h u , v  dudv
L'opération est caractérisée par h , fonction spatiale homogène à un niveau de gris. Cette
fonction caractéristique est observable en en prenant comme image source une impulsion de Dirac. h
est donc la réponse impulsionnelle de l'opération de convolution.
Démonstration: évidente vu les propriétés fondamentale de l'impulsion de Dirac
δ ∗ h∣ x , y = ∬voi sin age δ  x − u , y − v  h u , v  du dv
= h x , y 
Dans le domaine du traitement d'image, il est donc possible de "visualiser" la réponse
impulsionnelle d'une convolution en prenant comme image source une impulsion. La réponse
impulsionnelle est souvent appelée point spread function .
La convolution continue se rencontre dans de nombreux systèmes optiques pour lesquels la loi
d'addition des énergies s'applique (optique géométrique).
Exemple de convolution optique: Le satellite Hubble a présenté de graves défauts dans le
positionnement des miroirs, ce qui se traduit par une image de faible qualité dont l'apparence est floue.
Il est assimilable à une opération de convolution dans l'espace continu (domaine optique). Ce défaut a
été mis en évidence en pointant le télescope sur un astre lointain ponctuel dont l'image obtenue est
alors la réponse impulsionnelle du télescope.
Figure 1 – Réponse impulsionnelle de Hubble avant et après réparation
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
3
Définition de la convolution dans l'espace discret
Soit F une image une image discrète caractérisée par un niveau de gris f et G l'image résultat
de niveau de gris g. La convolution discrète est un calcul linéaire de voisinage:
g  m , n  = f ∗ h∣ m , n
=∑
∑ f  m − i , n − j  h i , j 
i , j ∈voi sin age
Comme pour la convolution dans l'espace continu, la convolution est caractérisée par réponse
impulsionnelle discrète, qui est en évidence à partir d'une image source ponctuelle δ  m , n  .
δ ∗ h∣ m , n =
∑
∑
δ m − i , n − j  h  i , j 
 i , j∈ voi sin age
= h m , n 
m
n
h(-2,-2) h(-1,-2) h(0,-2) h(1,-2) h(2,-2)
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
h(-2,1) h(-1,1) h(0,1) h(1,1) h(2,1)
0
0
0
0
0
h(-2,2) h(-1,2) h(0,2) h(1,2)
h(-2,-1) h(-1,-1) h(0,-1) h(1,-1) h(2,-1)
* h(m, n)
h(-2,0) h(-1,0) h(0,0) h(1,0) h(2,0)
h(2,2)
Image source δ ( m, n)
Figure 2 – Réponse impulsionnelle discrète
L'étendue de la réponse impulsionnelle définit le voisinage de l'opération.
Le mécanisme de la convolution discrète est facilement visualisable.
m
i
n
x
f(m-1, f(m, f(m+1,
n-1) n-1) n-1)
f(m-1, f(m, f(m+1,
n)
n)
n)
x
j
x
f(m-1, f(m, f(m+1,
n+1) n+1) n+1)
h(-1,-1 )h(0,-1) h(1,-1)
x
h(-1,0) h(0,0) h(1,0)
∑
h(-1,1) h(0,1) h(1,1)
g(m,n)
Pixel résultat
réponse impulsionnelle h
Image source f(m,n)
m
Figure 3 – Principe de calcul de la convolution discrète à partir de la réponse impulsionnelle
On notera que le calcul met en correspondance les points de f avec les points symétriques de h .
Cette remarque conduit à définir la notion de masque de convolution h à partir d'une symétrie
centrale appliquée à h .
h  m , n  = h  −m , −n 
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
4
Pour les voisinages définis comme des lieux isodistances, le symétrique présente la même
forme externe mais les coefficients sont en disposition symétrique.
Remarquer que le voisinage de calcul de f est strictement celui du masque.
m
x
n
x
x
f(m-1, f(m, f(m+1,
n-1) n-1) n-1)
x
f(m-1, f(m, f(m+1,
n)
n)
n)
i
~
~
~
h (-1,-1) h (0,-1) h (1,-1)
j
x
∑
~
~
~
h (-1,0) h (0,0) h (1,0)
g(m ,n)
~
~
~
h (-1,1) h (0,1) h (1,1)
f(m-1, f(m, f(m+1,
n+1) n+1) n+1)
Pixel résultat
~
masque de convolution h
Image source f(m,n)
Figure 4 – Calcul de la convolution par application d'un masque
Le plus souvent, les opérateurs discrets seront donnés sous forme de masque.
Exemples de convolution
L'exemple le plus simple est le moyenneur non-pondéré 3x3 :
1/9
1
1
1
1
1
1
1
1
1
Le moyenneur bidimensionnel agit essentiellement comme un filtre passe-bas; il diminue
l'amplitude du bruit impulsionnel présent dans une image.
...
...
...
...
...
...
0
1/9
1/9
1/9
0
...
...
...
0
1/9
1/9
1/9
0
...
...
...
0
1/9
1/9
1/9
0
...
...
...
...
...
...
...
0
0
0
0
0
...
...
0
0
1
0
0
...
0
0
0
0
0
...
...
...
...
...
...
...
...
...
Figure 5 – Atténuation du bruit impulsionnel par un moyenneur 3x3
...
L'effet produit est un étalement spatial de l'impulsion sur 9 pixels avec une atténuation de 1/9.
On remarque qu'il y a conservation de l'énergie totale contenue dans le signal source (unitaire dans
l'exemple).
...
...
...
0
...
...
...
...
...
...
...
...
...
...
...
0
0
0
1
1
1
...
...
0
0
0
1
1
1
...
0
0
0
1
1
1
...
...
...
...
...
...
...
...
...
...
0
1/3
2/3
1
1
...
0
0
1/3
2/3
1
1
...
0
0
1/3
2/3
1
1
...
...
...
...
...
...
...
Figure 6 – Effet d'un moyenneur 3x3 sur un bord vertical parfait
Le filtre moyenneur a un effet de lissage des contours. Dans un objectif de traitement
numérique, cette action est jugée positive. Visuellement, les transitions de l'image sont moins nette
d'où la sensation de 'flou' .
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
5
Ce phénomène est très visible sur l'exemple ci-dessous:
Figure 7 – Convolution de l'image "Objects" avec un moyenneur 3x3
Autres filtres moyenneurs:
1/16
1
2
1
2
4
2
1
2
1
1/5
0
1
0
1
1
1
0
1
0
Figure 8 – Moyenneur pondéré 3x3 et moyenneur de voisinage 4
Elément neutre de la convolution
L'élément neutre de la convolution est le Dirac:
f ∗δ = f
Dans le cas continu, l'opérateur de Dirac a pour image un point de surface nulle tq :
δ  x , y  = 0 pour x≠ 0 ou y ≠ 0
avec ∬ δ  x , y  dx dy = 1
La convolution d'une image avec cet opérateur donne:
g  x , y  = ∬ f  x−u , yy−v  δ u , v  du dv
= f  x , y
Pour le cas discret, l'élément neutre prend la forme :
0
0
0
0
1
0
0
0
0
Figure 9 – Elément neutre de la convolution discrète en voisinage 3x3
Ces opérateurs particuliers interviennent généralement dans la définition d'opérateurs
composés.
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
6
Additivité/distributivité des opérateurs de la convolution
La propriété s'exprime par:
 f ∗ h1    f ∗ h 2  = f ∗  h 1  h 2 
= f ∗ h avec h = h1  h 2
Cette propriété implique que les réponses impulsionnelles ou les masques sont additifs. Il est
donc possible de construire des opérateurs à partir d'une somme d'opérateurs.
Exemple: opérateur de réhaussement des contours
0
-1
0
-1
5
-1
0
-1
0
=
Réhausseur
0
0
0
0
1
0
0
0
0
+
Elt
Neutre
0
-1
0
-1
4
-1
0
-1
0
Laplacien
Figure 10 – Composition par addition de masques
Commutativité de la convolution
Le produit de convolution est commutatif comme un produit ordinaire. Cette propriété s'écrit:
f ∗h =h∗ f
Démonstration dans le cas continu:
f ∗h∣x , y = ∬voi sin age f  x − u , y − v  h u , v  du dv
= ∬image f  u ' , v '  h x − u ' , y − v '  du ' dv ' en posant u ' = x − u et y ' = y − u
= h∗ f ∣x , y
Remarquer cependant qu'utiliser cette propriété revient à permuter le rôle de l'image source et
celui de l'opérateur dans l'expression de calcul de la convolution. En conséquence, l'opérateur doit être
étendu spatialement pour que le calcul soit possible. Cette extension se par ajout de points dont le
niveau de gris est nul à l'extérieur du masque de l'opérateur.
La démonstration est identique dans le cas discret.
Associativité du produit de convolution
L'associativité du produit de convolution se traduit par:
 f ∗ h1  ∗ h 2 =  f ∗ h2  ∗ h 1 commutativité
= f ∗  h1 ∗ h 2 
= f ∗h
avec
h = h1 ∗ h2
La démonstration est évidente par changement de variable.
 f ∗h1 ∗h 2∣x , y =
∬ [∬ f  x−u−u ', y−v−v '  h 1 u , v  dudv ] h2  u ', v '  du ' dv '
En posant u  u ' = α et v  v ' = β , on obtient:
∬ [∬ f  x−α , y −β  h1  u , v  dα dβ ] h 2 u ', v '  du ' dv '
= ∬ f  x−α , y− β  [∬ h1 α −u ', β −v '  dα dβ ] h 2  u ', v '  du ' dv '
 f ∗h1 ∗h 2∣x , y =
= f ∗ h1∗h 2 ∣x , y
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
7
Cette propriété est fondamentale pour le traitement d'image. Elle permet de décomposer un
traitement linéaire par petits noyaux hi chaque noyau correspondant à une convolution élémentaire. Le
résultat des traitements successifs est équivalent à un traitement direct par un noyau
h = h 1 ∗ h 2 ∗ . .. ∗ hi ∗ .. . ∗ h p
La dimension du voisinage V du noyau h est caractérisée par son rayon ρ :
ρ = ρ1  ρ2  . . ..  ρ p
Exemple:
1
1
1
1
1
1
*
1
1
1
1
=
1
1
2
2
2
2
5
2
2
2
2
1
1
Figure 11 – Convolution de taille 2 à partir de noyaux de taille 1 en norme
L1
Norme d'un opérateur
La norme d'un opérateur de convolution est définie pour satisfaire une propriété particulière.
Par exemple, la propriété de conservation de l'énergie est demandée pour les opérateurs de
lissage. En considérant une image f constante de niveau A, le lissage par un filtre h doit redonner cette
constante A.
pour f  x , y  = A ⇒ f ∗ h = f
Dans le cas continu, cette condition s'exprime par :
∥h∥ =
∬voi sin age h x ,
y  dx dy = 1
Dans le cas discret, la norme s'exprime par :
∥h∥ =
∑
∑
h  m , n = 1
m , n ∈voi sin age
La norme est multiplicative pour les petits noyaux:
pour h = h1 ∗ h2 ∗ . .. ∗ h p ⇒ ∥h∥ = ∥h1∥ . ∥h2∥ .. .∥h p∥
Séparabilité d'un filtre de convolution
Un filtre de convolution est dit séparable si:
h  x , y  = hx  x  . hy  y 
Cette structure de filtre simplifie grandement les calculs. En effet, dans le cas continu, on
obtient:
f ∗ h = ∬voisin age h f  x − u , y − v  h u , v  du dv
= ∫voi sin age hx
∫voisin age hx
[∫
voisin age hy
]
f  x − u , y − v  h y  v  dv . h x  u  du
f 1  x − u , y  . h u  . du
Le premier calcul conduit à faire une convolution h y selon les colonnes ayant pour résultat
f 1  x , y  puis à faire une convolution h x selon les lignes.
La décomposition du filtre h en deux sous-filtres h x et h y formant des noyaux à 1 dimension.
permet de ramener un traitement bidimensionnel à un traitement selon x suivi d'un traitement selon y .
P. BONNET
Cours de Traitement d'Image
USTL
PRODUIT DE CONVOLUTION
8
Il est alors possible d'étendre de très nombreux traitements définis en monodimensionnel
(filtres issus de la culture 'électronique') au traitement des images.
Comparaison de filtres non-séparables et séparables
Figure 12 – (a) Profil (b) Filtre par composition additive (c) Filtre séparable (d) Filtre à structure isotrope
L'application au cas discret est possible. Un filtre bidimensionnel discret séparable se
décompose en deux filtres monodimensionnels.
Exemple:
-1
1
2
1
*
0
1
=
-1
-2
-1
0
0
0
1
2
1
Figure 13 – Filtre séparable discret
P. BONNET
Cours de Traitement d'Image
USTL