43
Traitement d'images Convolution – filtrage passe- bas, passe-haut Séance 7

Séance 7 - univ-lille.frmaster-ivi.univ-lille1.fr/fichiers/Cours/seance7-convolution.pdf · 3 Convolution – filtrage passe-bas, passe-haut Transformation locale Benjamin Mathon

  • Upload
    others

  • View
    10

  • Download
    1

Embed Size (px)

Citation preview

Traitement d'images

Convolution – filtrage passe-bas, passe-hautSéance 7

2 Convolution – filtrage passe-bas, passe-haut

Filtrage

Benjamin Mathon

Image initiale Plan de Fourier

Plan de Fourier filtréImage filtréeFFT-1

Multiplication

Dans le domaine spatial, le filtrage se fait par convolution.Dans le domaine spectral, il se fait par multiplication (ou masquage de l'image).

Convolution

FFT

3 Convolution – filtrage passe-bas, passe-haut

Transformation locale

Benjamin Mathon

• Pour calculer la valeur du pixel de coordonnées (x,y) dans l'image résultat I', on utilise, dans l'image source, non seulement la valeur du pixel I(x,y) mais aussi celles des pixels situés dans un voisinage de ce dernier I(V (x,y)).

• I' a même taille que I, mais des propriétés plus intéressantes.

• En chaque pixel (x,y) considéré, le voisinage V est défini de manière identique (« forme » identique) mais relativement à lui (V (x,y)).

I (x , y) →t

I ' (x , y )=t (I (V (x , y) ) )x

y

x

y

t

V x , y

I I'

4 Convolution – filtrage passe-bas, passe-haut

Voisinage V d'un pixel P

Benjamin Mathon

• Hypothèses :

– V est centré en P

– les pixels sont disposés selon une maille carrée

• Définition : V (P) est l'ensemble des pixels Q situés à moins d'une certaine distance de P

• La forme du voisinage (et le nombre de voisins) de P dépendent de la distance considérée.

• Voisinages les plus usités en traitement d'images :

4-voisinage 8-voisinage (voisinage 3x3) voisinage 5x5

5 Convolution – filtrage passe-bas, passe-haut

Convolution discrète 2D

Benjamin Mathon

Principe :● L'image I est une fonction de 2 variables discrètes (x et y) à

support fini.● Le filtre de convolution H appliqué sur I est lui aussi à 2D. Il est

donné par une matrice de poids (ou coefficients) de taille (2w+1)x(2w+1).

● H est appelé filtre, masque, noyau ou fenêtre de convolution.

Formule et mise en œuvre :

Le filtrage de I consiste à déplacer H sur chaque pixel et à remplacer la valeur de ce pixel d'analyse par la combinaison des valeurs de ses voisins donnée par la formule de convolution

I ' (x , y)=(I∗H )(x , y)=∑i=−w

w

∑j=−w

w

I (x−i , y− j) .H (i , j)

6

Convolution discrète 2D : calcul

Image source I Filtrage de I par HFiltre H Image résultat I'

En chaque pixel (x,y) :● Tourner la matrice de poids [H(i,j)] de 180° autour de son centre (0,0)● Superposer le masque obtenu à l'image I de sorte qu'il soit centré en

(x,y)● Multiplier chaque coefficient du masque par le niveau du pixel sous-

jacent● Additionner chacun de ces produits pour obtenir I'(x,y).

H

H=180°

H=180°

et I

7 Convolution – filtrage passe-bas, passe-haut

Convolution discrète 2D : calcul

Benjamin Mathon

I ' x , y= I x−1, y−1 .h+1,+1+ I x−1, y .h+1,0+ I x−1, y+1 . h+1,−1

+ I x , y−1 . h0,+1+ I x , y .h0,0+ I x , y+1 . h0,−1

+ I x+1, y−1 . h−1,+1+ I x+1, y . h−1,0+ I x+1, y+1 .h−1,−1

8 Convolution – filtrage passe-bas, passe-haut

Propriétés de la convolution

Benjamin Mathon

• Additivité / distributivité :

• Commutativité :

• Associativité :

• Un filtre de convolution est dit séparable si :

• Élément neutre :

I∗h=h∗I

(I∗h1)+(I∗h2)=I∗(h1+h2)

(I∗h1)∗h2=I∗(h1∗h2)

h( x , y )=hx( x) ∗ hy ( y )

[a b c ] ∗ [a 'b 'c ' ] = [

aa ' ba ' ca 'ab ' bb ' cb 'ac ' bc ' cc ' ]

δ = [0 0 00 1 00 0 0 ] → (δ ∗ I )(x , y ) = I (x , y)

9 Convolution – filtrage passe-bas, passe-haut

Effets de bords

Benjamin Mathon

?

● Problème : comment traiter les pixels situés aux bords de l'image ?

● Stratégies possibles :

● laissés inchangés● pixels extérieurs = 0● miroir (virtuel) de l'image :

I(-i-1,y)=I(i,y) sur le bord gaucheI(N

x+i,y)=I(N

x-i-1,y) sur le bord droit

I(x,-j-1)=I(x,j) sur le bord hautI(x,N

y+j)=I(x,N

y-j-1) sur le bord bas

● image enroulée

● etc

10 Convolution – filtrage passe-bas, passe-haut

Exemple : stratégie « miroir »

Benjamin Mathon

11 Convolution – filtrage passe-bas, passe-haut

Masque de convolution

Benjamin Mathon

• Caractéristiques– Ses caractéristiques (coefficients, taille) déterminent l'effet du filtre

– Souvent carré et de taille impaire (3x3, 5x5, etc) pour être centré sans ambiguïté sur le pixel d'analyse

– Souvent à valeurs symétriques centrées : h(-1,-1)=h(+1,+1),

h(0,-1)=h(0,+1), ...

• NormalisationSoit S la somme des coefficients du masque.

Diviseur : normalisation à 1.

– Si l'on veut conserver la luminance de l'image (moyenne des niveaux de gris), on doit avoir S=1.

– Si les coefficients sont tous positifs, on doit donc les diviser par S

12 Convolution – filtrage passe-bas, passe-haut

Types de filtres

Benjamin Mathon

• Filtres passe-bas, ou de lissage– Principe : moyenne pondérée des valeurs du voisinage

– Effet : lissage de l'image (variations atténuées)

– Avantage : atténuation du bruit

– Inconvénient : atténuation des

détails, flou

– Caractérisation : coefficients tous

positifs

• Filtres passe-haut, ou de contours– Principe : dérivation de la fonction image

– Effet : accentuation des détails de l'image

– Avantage : mise en évidence des contours/détails

– Inconvénient : accentuation du bruit

– Caractérisation : coefficients de somme nulle

lissage

dérivation

13 Convolution – filtrage passe-bas, passe-haut

Types de filtres

Benjamin Mathon

• Filtres passe-bas, ou de lissage– Principe : moyenne pondérée des valeurs du voisinage

– Effet : lissage de l'image (variations atténuées)

– Avantage : atténuation du bruit

– Inconvénient : atténuation des

détails, flou

– Caractérisation : coefficients tous

positifs

• Filtres passe-haut, ou de contours– Principe : dérivation de la fonction image

– Effet : accentuation des détails de l'image

– Avantage : mise en évidence des contours/détails

– Inconvénient : accentuation du bruit

– Caractérisation : coefficients de somme nulle

lissage

14

À propos du bruit

Benjamin Mathon

• La restauration de l'image I vise à en réduire le bruit et à trouver l'image idéale I qui aurait été obtenue avec un système d'acquisition parfait.

• Le bruit b(x,y) est souvent considéré comme aléatoire.

– Bruit additif : I(x,y) = I(x,y) + b(x,y)

– Bruit multiplicatif : I(x,y) = I(x,y) . b(x,y)

• Types :

– Bruit d'amplification

– Bruit « Poivre et sel » (impulsionnel)

– Bruit de quantification

•Origine : dérive thermique des composants•Modélisation : bruit additif à distribution normale

•Origine : pixels défectueux, erreurs de CAN, ...•Modélisation : remplacement de n % pixels par 0ou 255

•Origine : quantification des valeurs en niveauxdiscrets

•Modélisation : variable aléatoire à distributionuniforme

Convolution – filtrage passe-bas, passe-haut

15

Bruits dans une image : exemples

Benjamin Mathon

Bruit additifGaussien (σ = 25)

Bruit multiplicatifGaussien (σ = 25)

Bruit poivre et sel(20 % de pixels

affectés)

Convolution – filtrage passe-bas, passe-haut

16

Filtres de lissage

Benjamin Mathon

• Principe– Utilité : restauration de l'image (élimination du bruit) par lissage.

– Inconvénient : suppression des hautes fréquences (filtres passe-bas), d'où dégradation des contours et effet de flou.

• Variétés– Plusieurs types de filtres possédant chacun des avantages propres.

– Plusieurs tailles possibles, selon l'étendue du voisinage à considérer : 3x3, 5x5, ... l'effet de flou est d'autant plus marqué que la taille est grande.

• Principaux filtres de lissage– Linéaires

• Caractérisés par un masque (réalisables par convolution).

• Exemples : filtres moyenneurs, gaussiens

– Non-linéaires

• Caractérisés par un opérateur non-linéaire (non réalisables par convolution).

• Exemple : filtre médian

Convolution – filtrage passe-bas, passe-haut

17

Filtres de lissage linéaires : filtres moyenneurs

Benjamin Mathon

• Configuration : dépend de l'importance à donner au pixel d'analyse et à ses voisins :

• Remarque : |S|=1, donc préservation de la luminance

• Inconvénients :– forte atténuation des contours (limite la performance des

traitements ultérieurs)

– forte influence des pixels aberrants isolés

19 [

1 1 11 1 11 1 1 ] ou

110 [

1 1 11 2 11 1 1 ] ou

15 [

0 1 01 1 10 1 0 ]

Convolution – filtrage passe-bas, passe-haut

18

Filtres de lissage linéaires : filtres gaussiens

Benjamin Mathon

• Paramètres : moyenne µ, écart-type .

En 1D : G (x )= 1√ 2π

exp (−(x−μ)2

22 ) En 2 D : G (x , y )=1

2π2exp (− ((x−μ)

2+( y−μ)

2 )22 )

Convolution – filtrage passe-bas, passe-haut

19

Filtres de lissage linéaires : filtres gaussiens

Benjamin Mathon

• Avantage : limite l'effet de flou (contours mieux conservés)

• Configurations : approximations discrètes de la distribution gaussienne de moyenne μ=0 et d’écart-type σ dans un filtre fini. Exemple pour σ=0.8 :

• Écart-type :– Détermine le degré de lissage– Impose la taille du masque (idéalement )

HG=1

2025 [1 10 22 10 1

10 106 231 106 1022 231 504 231 2210 106 231 106 101 10 22 10 1

]Convolution – filtrage passe-bas, passe-haut

⌈6 ⌉×⌈6 ⌉

20

Filtres de lissage : exemples

Benjamin MathonConvolution – filtrage passe-bas, passe-haut

Image originale Bruit gaussien σ=20 Moy3x3

Moy5x5 Filtre gaussien σ=2

21

Filtres de lissage non-linéaires : filtre médian

Benjamin Mathon

• Principe– Le niveau de gris résultat est le niveau de gris médian des pixels

voisins.

– Filtre non-linéaire, donc non réalisable par masque de convolution.

• Calcul– Trier les niveaux par ordre croissant.

– Donner au pixel d'analyse le niveau situé au milieu des niveaux triés.

• Exemple

Convolution – filtrage passe-bas, passe-haut

18 20 25

14 255 32

22 27 25

2514 18 20 22 25 25 27 32 255

| 4 valeurs |médiane| 4 valeurs |

22

Filtres de lissage non-linéaires : filtre médian

Benjamin Mathon

• Avantages par rapport aux filtres moyenneur et Gaussien– Filtre mieux le bruit impulsionnel (type « poivre et sel »).

– Ne crée pas de nouveau niveau ; préserve mieux les contours sans altérer le fond.

• Limites et inconvénients– Supprime les détails fins qui ne sont pas du bruit.

– Détruit les coins.

– Coûteux en temps de calcul (tri).

Convolution – filtrage passe-bas, passe-haut

I moy 3x3 gauss 5x5 méd 3x3

23

Filtres de lissage non-linéaires : filtre min-max

Benjamin Mathon

• Principe– Garantit que la valeur de tout pixel appartient à l'intervalle des

valeurs de ses voisins débruitage efficace.

– Préserve encore mieux les contours que le filtre médian.

• Calcul

• Exemple

Convolution – filtrage passe-bas, passe-haut

I ' (x , y)={I (x , y) si imin⩽I (x , y)⩽imax

imin si I (x , y)<imin

imax si I (x , y)>imax}

124 126 127

120 255 125

115 119 123

imin=115, imax= 127moyenne = 137médiane = 124(min-)max = 127

24

Mesure de distorsion

Benjamin Mathon

• PSNR (Peak Signal to Noise Ratio)– Le PSNR (unité décibel dB) permet de mesurer la similarité entre

deux images I1 et I2 codées sur 8 bits et de définition M x N pixels.

– Il peut être utilisé pour quantifier la puissance du bruit ajouté à l’image ou pour mesurer la qualité du débruitage.

• Calcul

Convolution – filtrage passe-bas, passe-haut

PSNR( I 1 , I 2)=10 log10 ( 2552

EQM ( I 1 , I 2) )où EQM désigne l’erreur quadratique moyenne entre les 2 images :

EQM ( I 1 , I 2)=1

M×N∑x=0

M−1

∑y=0

N −1

( I 1( x , y)−I 2(x , y))2

● NB : Si I1 = I2 alors PSNR ( I 1 , I 2)=+∞

25 Convolution – filtrage passe-bas, passe-haut

Types de filtres

Benjamin Mathon

• Filtres passe-bas, ou de lissage– Principe : moyenne pondérée des valeurs du voisinage

– Effet : lissage de l'image (variations atténuées)

– Avantage : atténuation du bruit

– Inconvénient : atténuation des

détails, flou

– Caractérisation : coefficients tous

positifs

• Filtres passe-haut, ou de contours– Principe : dérivation de la fonction image

– Effet : accentuation des détails de l'image

– Avantage : mise en évidence des contours/détails

– Inconvénient : accentuation du bruit

– Caractérisation : coefficients de somme nulle

dérivation

26

Qu'est-ce qu'un contour ?

Benjamin Mathon

• Un contour est une

variation brusque

d'intensité (discontinuité)

• Frontière qui sépare 2

objets (ou un objet du

fond)

Convolution – filtrage passe-bas, passe-haut

27

Contours dans une image

Benjamin Mathon

• Exemples de détection des discontinuités

Source : Jacques-André Landry. Vision robotique. ETS.

Convolution – filtrage passe-bas, passe-haut

28

Différents types de contours

Benjamin Mathon

Source : Gonzalez and Woods. Digital Image Processing 3ed. Prentice-Hall, 2008

Convolution – filtrage passe-bas, passe-haut

29

Dérivées de l'image

Benjamin Mathon

Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montréal.

Convolution – filtrage passe-bas, passe-haut

30

Dérivées de l'image

Benjamin Mathon

• Les contours correspondent :– Aux maximums/minimums

de la première dérivée– Aux passages par zéros de

la deuxième dérivée

Convolution – filtrage passe-bas, passe-haut

31

Dérivation du signal image

Benjamin Mathon

• Soit f(u) fonction de la variable u

• f(u) est dérivable par rapport à u en u0 si pour tout accroissement

h, il existe un nombre A tel que :

• La dérivée de f par rapport à u est :

f (u 0 + h ) = f (u0) + A h + h ε (h ) avec limh→ 0

ε (h) = 0

A =dfdu

|u0

= limh → 0

f (u0+h) − f ( u0)

h

Convolution – filtrage passe-bas, passe-haut

32

Image = fonction 2D

Benjamin MathonConvolution – filtrage passe-bas, passe-haut

33

Dérivée première d'une fonction 2D continue

Benjamin Mathon

∂ f (x , y )∂ x

= limhx→0

f ( x + hx, y ) − f ( x , y )

hx

f ( x0 +hx , y 0+ h y) = f ( x0 , y 0 ) + h x

∂ f∂ x

|x 0, y0 + h y

∂ f∂ y

|x0, y0 + o (√ h x

2+h y

2 )

∂ f ( x , y )∂ y

= limhy→0

f ( x , y + hy) − f ( x , y )

h y

Convolution – filtrage passe-bas, passe-haut

x

h

hhx

hyα

y0

y

x0

34

Dérivée directionnelle

Benjamin Mathon

• Développement en série limitée dans la direction α

• Dérivée directionnelle dans la direction α

f (x0+h cosα , y0+h sinα ) = f (x0 , y0) + h cosα∂ f (x , y )

∂ x|x 0, y 0 + h sin α

∂ f (x , y)∂ y

|x 0, y 0

dfdα

|x 0, y 0= cos α∂ f∂ x

|x 0, y 0 + sinα∂ f∂ y

|x0, y0

x

h

hhx

hyα

y0

y

Convolution – filtrage passe-bas, passe-haut

Crédits : https://commons.wikimedia.org/wiki/User:Pethrus

x

y

z=f(x,y)

x0

x0

y0

35

Vecteur gradient

Benjamin Mathon

∇ f {∂ f ( x , y )

∂ x∂ f ( x , y )

∂ y

Convolution – filtrage passe-bas, passe-haut

• caractérisé par son module et sa direction :

|∇ f| = [ ( ∂ f∂ x )

2

+ ( ∂ f∂ y )

2

]1/2

θ = Arg ( ∇ f ) = tan−1 (

∂ f∂ y∂ f∂ x

)

36

Vecteur gradient

Benjamin Mathon

• Dérivée directionnelle dans la direction α :

• Cette dérivée est maximale lorsque sont colinéaires

• Le vecteur gradient est donc dans la direction de plus grande pente de f.

dfdα

= cosα∂ f∂ x

+ sinα∂ f∂ y

= α . ∇ f avec α vecteur unitaire dans la direction α

α et ∇ f

Convolution – filtrage passe-bas, passe-haut

θ = Arg ( ∇ f ) = tan−1 (

∂ f∂ y∂ f∂ x

) =arg maxαdfdα

37

Gradient de l'image

Benjamin Mathon

– Dérivée en X et dérivée en Y– Vecteur avec une norme et une direction

Les lignes bleues représentent le gradient orienté dans le sens de la montée (niveaux de gris croissants)Source : http://commons.wikimedia.org/wiki/File:Gradient2.svg

Convolution – filtrage passe-bas, passe-haut

38

Approximation des dérivées partielles sur une image discrète

Benjamin Mathon

• Hypothèse : pente discontinue en x0.

– Considérons la fonction image f échantillonnée aux points

• Tx = Ty = 1 => Masque de Roberts2

∂ f∂ x

|x=x0=

12 [ ∂ f

∂ x|x=x0

+ +∂ f∂ x

|x=x0

−]

+1

0

-1∂ f∂ x

:12

∂ f∂ y

:12

∂ f∂ x

|m ,n

≈12T

x[ (f (m+1, n ) − f (m ,n)) + ( f (m, n ) − f (m−1,n)) ]

≈12T

x[ f (m+1, n) − f (m−1,n )]

+1 0 -1

Convolution – filtrage passe-bas, passe-haut

(mT x , nT y )

39

Exemple

Benjamin Mathon

• Calcul du gradient en un pixel (exemple).– Dérivées premières :

– Module du gradient :

– Direction du gradient

|∇ f| = [ ( ∂ f∂ x )

2

+ ( ∂ f∂ y )

2

]1/ 2

=112

θ = Arg ( ∇ f ) = tan−1( ∂ f∂ y

/∂ f∂ x ) =63°

∂ f∂ x

=50,∂ f∂ y

=100

+1

0

-1

∂ f∂ x

:12

∂ f∂ y

:12+1 0 -1

∇ f

→ →

Convolution – filtrage passe-bas, passe-haut

40

Pourquoi la dérivation accentue-t-elle le bruit ?

Benjamin Mathon

• Soit une image I bruitée par un bruit sinusoïdal d'amplitude ε

• Après dérivation :

• Amplification du bruit par un facteur

• Nécessité de lisser l'image

I= I+ϵsin (2π f 0 x)

I '= I '+2π f 0 ϵ cos(2 π f 0 x )

2π f 0

Convolution – filtrage passe-bas, passe-haut

41

Filtre de SobelSobel : filtrage gaussien/dérivation

Benjamin Mathon

• Composante horizontale du gradient :

• Composante verticale du gradient :

gaussien en y dérivateur en x gaussien/dérivateurpour

+1

+2

+1

14

+1 0 -112

18

+1 0 -1

+2 0 -2

+1 0 -1

∂ f∂ x

∂ f∂ y

∂ f /∂ x

14

+1 +2 +1

+1

0

-1

12

18

+1 +2 +1

0 0 0

-1 -2 -1

gaussien en x gaussien en y gaussien/dérivateurpour ∂ f /∂ y

=

=

*

*

Convolution – filtrage passe-bas, passe-haut

42

Exemple :Sobel

Benjamin Mathon

|∇ f|→

∂ f∂ x

∂ f∂ y

imageoriginale

Convolution – filtrage passe-bas, passe-haut

43

Exemple :imagebruitée

Benjamin Mathon

imageoriginale

|∇ f|→

Roberts2Sobel

|∇ f|→

bruitGaussienStdDev=40

Convolution – filtrage passe-bas, passe-haut