Traitement d'images : Dérivées et Opérateurs
Traitement d'images : Dérivées et Opérateurs
Pierre Maurel
←→
Visages, IRISA/INRIA
1 / 76 3 / 76
1 2 3 4
4 / 76 5 / 76
Manipulations basiques sur les images Autres possibilités
Images vectorielles
f (x, y) −→ composées d’entités mathématiques (cercles, lignes , etc)
chaque entité est décrite par une formule mathématique :
..............................................................................
g1 (x, y) = 255 − f (x, y) g2 (x, y) = f (y, x) g3 (x, y) = f (x, y)/3 g4 (x, y) = f (x, y) ∗ 2
A B C D
g1 → D g2 → A g3 → C g4 → B
Avantages : zoom infini, définir une image avec peu d’informations
manipulations de fonctions ... dérivées = ? Inconvénients : représentation de formes simples, pas d’images réalistes.
6 / 76 7 / 76
f (x) f 0 (x)
En 2D (ou plus) : la dérivée partielle dans une direction indique la variation de l’image dans cette
direction
∂f ∂f
| ∂x | | ∂y |
Images 2D+t
variante du 3D, il s’agit des vidéos
8 / 76 10 / 76
Dérivées partielles : une image Opérateurs usuels : Gradient
∂f
f ∂y
Le gradient en un point d’une image est un opérateur très important et
est utilisé dans de nombreux cas
−−→
∂f ∂f
grad f = ∇f = , ...,
∂x1 ∂xn
f (10, 10) est un scalaire (∈ R) mais (∇f )(10, 10) est un vecteur (∈ R2 )
f (x, y) = x y2 + ex ⇒ ∇f (x, y) = y2 + ex , 2 x y
Exemple :
| {z } | {z }
∈R ∈R×R
11 / 76 12 / 76
f ∇f
13 / 76 14 / 76
Opérateurs usuels : Gradient Opérateurs usuels : Gradient
les zones de fort gradient sont donc des zones de fortes variations les zones de fort gradient sont donc des zones de fortes variations
15 / 76 16 / 76
−−→ −−→
f grad f f grad f
17 / 76 18 / 76
Opérateurs usuels : Gradient Opérateurs usuels : Laplacien
Exemple de champ de gradients f est un champ de scalaires, le laplacien de f est également un champ
de scalaires :
∂2f ∂2f
∆ f = 2 + ... + 2
∂x1 ∂xn
−−→ f ∆f
f grad f
Nombreuses applications physiques (eq de Poisson ∆φ = f )
19 / 76 20 / 76
21 / 76 22 / 76
Opérateurs usuels EDP : Équation aux Dérivées Partielles
23 / 76 24 / 76
Équation de la chaleur
Équation de la chaleur sur une image
décrit le phénomène physique de conduction thermique (Fourier, 1811)
évolution de la température sans contraintes extérieures
T(x, y, t) le champ de température sur un domaine Ω :
∂T(x, y, t)
∀(x, y) ∈ Ω, = ∆T(x, y, t) et T(x, y, 0) = T0
∂t
2 2
(attention le laplacien est uniquement en "espace", sur x et y : ∆ T = ∂ T + ∂ T .)
∂x2 ∂y2
25 / 76 26 / 76
Résolution de l’équation de la chaleur Résolution de l’équation de la chaleur
27 / 76 28 / 76
Retour au 2D+t
On montre que la solution est : u(x, t) = g(x, t) ∗ u0 (x)
1 x2 √ ∂u(x, y, t)
avec g(x, t) = √ e− 4t → Gaussienne d’écart type σ = 2t = ∆u(x, y, t) et u(x, y, 0) = u0 (x, y)
2 πt ∂t
29 / 76 30 / 76
Équation de la chaleur sur une image Interprétation de l’équation de la chaleur par la
diffusion
(0 < t1 < t2 < t3 < t4 < t5 )
∂I
= ∆I = div(∇I)
∂t
p p
En particulier on diffuse autant au niveau des contours qu’à l’intérieur
u(x, y, 0) = u0 (x, y) u(x, y, t1 ) = G(x, y, 2 t1 ) ∗ u0 (x, y) u(x, y, t2 ) = G(x, y, 2 t2 ) ∗ u0 (x, y)
−→ trop flou
∂I
= div f (x, y)∇I
∂t
31 / 76 32 / 76
Exemple de diffusion non linéaire : Perona-Malik Exemple de diffusion non linéaire : Perona-Malik
Principe : on veut préserver les contours et lisser les régions homogènes de Lissage des zones à faible gradient (réduction du bruit) → c(0) = 1
l’image
Atténuation de la diffusion lorsque le gradient est important (préservation
Perona-Malik, Scale-space and edge detection using anisotropic diffusion IEEE des singularités et contours) → lim c(x) = 0
Transactions on Pattern Analysis and Machine Intelligence, 1990 x→∞
Cette diffusion est en fait toujours isotrope. En effet c ne dépend pas de la direction du gradient mais
uniquement de sa norme.
33 / 76 34 / 76
Exemple de diffusion non linéaire : Perona-Malik Exemple de diffusion non linéaire : Perona-Malik
35 / 76 36 / 76
continu discret
37 / 76 39 / 76
Du continu au discret Continu / discret
40 / 76 41 / 76
∂2u
∂u ? ?
= 2
∂t ∂x =⇒ u(x, t) = Gσ(t) ∗ u0 (x) u(x, 0) = u0 (x) u(x, ∆t) = F(u(x, 0)) u(x, 2 ∆t) = F(u(x, ∆t))
u(x, 0) = u0 (x)
42 / 76 43 / 76
Discrétisation des dérivées Conditions aux bords
En continu, f : R × R → R : on défini
∂f f (x + h, y) − f (x, y) I est une image définie sur Ω
= lim
∂x h→0 h Ω est borné
comment définir les dérivées de I sur les bords de Ω (noté Fr(Ω)) ?
En discret, la fonction/image est définie sur une grille (pixels) : Même problème pour la convolution (filtrage)
44 / 76 45 / 76
∂I
Notation “petit o” : “négligeable devant”
Exple : par réflexion ( ∂N = 0 sur Fr(Ω))
f (x)
f (x) = x→a
o (g(x)) , lorsque −→ 0
g(x) x→a
Exemples : xn+1 = o (xn ) , 28 xn+1 + xn+3 = o (xn )
x→0 x→0
Formule de Taylor-Young :
f 00 (x) 2 f (n) (x) n
f (x + h) = f (x) + f 0 (x) h + h + ... + h + o (hn )
2 n! h→0
∂u 1 ∂nu
u(x + h, y) = u(x, y) + (x, y) h + . . . + (x, y) hn + o (hn )
∂x n! ∂xn h→0
46 / 76 47 / 76
Différences finies Différences finies
Soit v : R × R → R une image Filtres associés
∂v
on a v(x + ∆x, y) = v(x, y) + ∆ x (x, y) + o (∆x) Gx ∗ I
et Gy = GTx
∂x ∇I = avec Gx = −1 1 ou −0.5 0 0.5
∆x→0 Gy ∗ I
v(x + ∆x, y) − v(x, y) ∂v
0 1 0
donc = (x, y) + o(1)
∆x ∂x ∆I = D ∗ I, D = 1 −4 1
0 1 0
Pour une image, ∆x et ∆y n’ont pas de sens particulier et sont
généralement pris égaux à 1 pour simplifier les formules
∂u
Approximations classiques pour (x, y) :
∂x
Schéma "avant" : v(x + 1, y) − v(x, y)
∂I ∂I
∂x → ∂y ↓ I
∂2I ∂2I
∆I = ∂x2 + ∂y2 I
50 / 76 51 / 76
Sensibilité au bruit Différentiation et lissage
pour augmenter la robustesse au bruit :
∂I ∂Gσ ∗ I ∂Gσ
Si H filtre gaussien → := = ∗I
∂x ∂x ∂x
∂Gσ
←→
∂x
σ = 1.5
52 / 76 53 / 76
σ = 1.5
54 / 76 55 / 76
Différentiation et lissage Différentiation et lissage
Laplacien de Gaussienne (LoG) Laplacien de Gaussienne (LoG)
∂2I ∂ 2 Gσ ∗ I ∂ 2 Gσ ∂2I ∂ 2 Gσ ∗ I ∂ 2 Gσ
:= = ∗I := = ∗I
∂x2 ∂x2 ∂x2 ∂y2 ∂y2 ∂y2 σ = 1.5
∂2I ∂2I
∆I = 2
+ 2 := (∆Gσ ) ∗ I
∂x ∂y
∆Gσ ←→
56 / 76 57 / 76
2
∂v ∂ v
Différentiation et lissage Exemple : équation de la chaleur ∂t = α ∂x 2
Retour aux EDP
Sans lissage pour comparaison
on utilise le développement de Taylor de v(x, t) : R × R → R et on note
vnk = v(k ∆x, n ∆t) :
∂v
(premier ordre) v(k∆x, (n + 1)∆t) = vn+1
k = vnk + ∆t + o(∆t)
∂t
∂v ∆x2 ∂ 2 v
(second ordre) v((k + 1)∆x, n∆t) = vnk+1 = vnk + ∆x + + o(∆x2 )
∂x 2 ∂x2
∂v ∆x2 ∂ 2 v
(second ordre) v((k − 1)∆x, n∆t) = vnk−1 = vnk − ∆x + + o(∆x2 )
∂x 2 ∂x2
on en déduit des approximations des dérivées partielles :
∂v vn+1 − vnk
(k∆x, n∆t) = k + o(1)
∂t ∆t
∂2v vn − 2vnk + vnk−1
2
(k∆x, n∆t) = k+1 + o(1)
∂x ∆x2
58 / 76 59 / 76
2
∂v ∂ v
Exemple : équation de la chaleur ∂t = α ∂x 2 Analyse numérique
Retour aux EDP
60 / 76 61 / 76
Le schéma est dit consistant si, pour toute fonction φ, l’erreur de troncature avec vnk = v(k ∆x, n ∆t).
tend vers 0 lorsque ∆ tend vers 0 (i.e. lorsque tous les pas de discrétisation
tendent vers 0) !
∂2v vn+1 − vnk vn − 2vnk + vnk−1
∂v
⇒ −α 2 − k
− α k+1 −−−−−→ 0
→ "Lorsque tous les pas de discrétisation tendent vers 0, les ∂t ∂x ∆t ∆x2 ∆x,∆t→0
approximations discrètes des dérivées présentes dans L∆ tendent bien
vers les dérivées continues de L"
"Les dérivées sont bien approximées" Donc, le schéma de discrétisation obtenu précédemment est bien
∂v ∂2v
→ se montre facilement en utilisant la formule de Taylor. consistant avec l’équation de la chaleur = α 2.
∂t ∂x
64 / 76 65 / 76
Consistance : exercices
y(x + h) − y(x − h)
est-il une bonne approximation de y0 (x) ?
h
NON : 2y0 (x)
66 / 76 67 / 76
Stabilité d’un schéma numérique Stabilité d’un schéma numérique
Définition
Stabilité du schéma un+1
k = (1 − 2r)unk + r(unk+1 + unk−1 ) en considérant la
On dit qu’un processus de calcul séquentiel (ou itératif) est « stable » si les n n
norme ku kL ∞ = sup |uk |.
erreurs d’arrondis ne s’amplifient pas lors de la progression des calculs. k
si (1 − 2r) ≥ 0, un+1 ≤ (1 − 2r)kun kL ∞ + rkun kL ∞ + rkun kL ∞
kun+1 k ≤ Kku0 k k
kun+1 kL ∞ = sup un+1
k ≤ kun kL ∞ , ∀n ∈ N
k
normes usuelles :
X sX kun+1 kL ∞ ≤ kun kL ∞ ≤ ku0 kL ∞
kvkL 1 = |vk | kvkL 2 = |vk |2 kvkL ∞ = sup |vk |
k
k k
Si r ≤ 12 , le schéma est stable.
Théorème de Lax → "si on a bien choisi nos discrétisations, soit un reste
borné et on a convergence, soit un explose"
68 / 76 69 / 76
Stabilité d’un schéma numérique Stabilité d’un schéma numérique : méthode de Fourier
70 / 76 71 / 76
Stabilité d’un schéma numérique Stabilité d’un schéma numérique : méthode de Fourier
Calculs préliminaires :
+∞ +∞ Pour étudier la stabilité d’un schéma numérique de la forme (avec f fonction linéaire)
1 X −ikξ 1 X −ikξ n
Si f : k → unk , on a donc bf (ξ) = √ e f (k) = √ e uk
2π k=−∞ 2π k=−∞ un+1 = f ( . . . , unk−1 , unk , unk+1 , . . . )
k
si on pose g : k → unk−1 , on a :
+∞ +∞
1 X −ikξ n 1 X
g(ξ) = √ e uk−1 = √ e−i(m+1)ξ unm = e−i ξ bf (ξ) n+1 n bn d n
Prendre la transf. de Fourier → ud = f ( . . . , ud
k−1 , uk , uk+1 , . . . )
b 1
2π k=−∞ 2π m=−∞ k
n n i p ξ bn n+1
Propriété : Transf. de Fourier : on se “débarrasse” des dérivées spatiales. 2 Se "débarrasser" des ud
k+p : k+p = e
ud uk ⇒ ud
k (ξ) = ρ(ξ)ubnk (ξ)
∂2v
d
en continu (résolution équation de la chaleur) 2 (t, ω) = −ω 2bv(t, ω) 3 Par récurrence :
∂x
n+1 n+1
∂2u ud
k (ξ) = ρ(ξ)n+1 ub0 (ξ)
k ⇒ |ud
k (ξ)| = |ρ(ξ)|n+1 |ub0k (ξ)|
en discret : 2 (k ∆x, n ∆t) ≈ unk+1 − 2unk + unk−1 unk+1 − 2unk + unk−1 (si ∆x = 1,
∂x | {z }
A
comme svt en image)
4 Il faut donc avoir |ρ(ξ)| ≤ 1, ∀ξ ⇒ Condition sur ∆t , ∆x, . . .