TP 2 - Restauration d`image par variation totale

publicité
Cécile Louchet – Image
M2
TP 2 - Restauration d’image par variation totale
22 janvier 2010
Le but de ce TP est d’introduire la variation totale comme critère de régularité d’image, et d’étudier
plusieurs applications au traitement d’image, en considérant des problèmes de minimisation faisant
intervenir la variation totale. Les applications considérées seront le débruitage, le zoom et la décomposition structure+texture.
Si u est une image définie sur {1, . . . , n1 } × {1, . . . , n2 }, on considère le schéma suivant pour le gradient
de u :
(
(
u(x + 1, y) − u(x, y) si x < n1
u(x, y + 1) − u(x, y) si y < n2
∇x u(x, y) =
et ∇y u(x, y) =
0
sinon,
0
sinon.
On considère la norme euclidienne pour le calcul de la norme de ∇u(x,
y), i.e. |∇u(x, y)| = (∇x u(x, y)2 +
P
∇y u(x, y)2 )1/2 , et on définit la variation totale de u par T V (u) = x,y |∇u(x, y)|.
Question 1 (Débruitage : minimisation de la variation totale par l’algorithme de Chambolle).
On suppose que l’on ne connaît qu’une version bruitée d’une image originale, i.e. v = u0 + n où u0
est l’image originale et n est un bruit blanc et gaussien. On souhaite débruiter l’image v, c’est-à-dire
retrouver u0 le plus fidèlement possible, en lui associant le minimum de la fonctionnelle
1
Eλ (u) = ku − vk22 + λT V (u).
2
Proposition : L’image u qui minimise Eλ est
u = v − πλK (v) où K = {div p | p ∈ (R2 )n1 ×n2 , ∀x, y, |p(x, y)| ≤ 1},
et où πλK est l’opérateur de projection sur le convexe λK = {λk | k ∈ K}.
Pour minimiser Eλ , on pose p0 = (0, 0) ∈ (R2 )n1 ×n2 , et on calcule itérativement
pn+1
i,j =
pni,j + τ (∇(div pn − λv ))i,j
.
1 + τ (∇(div pn − v ))i,j λ
On peut montrer que si τ < 1/4, alors λdiv pn converge vers πλK (v). La solution approchée du problème
est donc donnée par
un = v − λdiv pn .
1. La formule de récurrence fait intervenir l’opérateur de divergence, défini par div = −∇∗ . Écrire
la formule de la divergence d’un couple d’images (p1 , p2 ).
2. Programmer l’algorithme de Chambolle dans une fonction tvdenoise en évitant les boucles.
3. Si umin est l’image minimisant Eλ , un critère de convergence est donné par
kun − umin k22 ≤ λ(T V (un ) − hpn , ∇un i).
Adapter le programme précédent pour obtenir un critère d’arrêt. Observer l’effet du débruitage
sur plusieurs images bruitées par un bruit gaussien, commenter.
Université d’Orléans
1/3
2009 - 2010
Cécile Louchet – Image
M2
Question 2 (Zoom : interpolation par minimisation de la variation totale).
On suppose maintenant qu’on ne connaît qu’une version “grossière” de l’image originale (non bruitée),
par exemple une image de taille 2 fois plus petite dans chaque dimension, où chaque pixel correspond à
une moyenne de 4 voisins dans la version originale. On souhaite reconstruire le plus fidèlement possible
l’image originale.
On suppose donc que si u0 est l’image originale, on ne connaît qu’une petite image vsmall ∈
n
1
R /2×n2 /2 définie par
1
vsmall (x, y) = (u0 (2x, 2y) + u0 (2x − 1, 2y) + u0 (2x, 2y − 1) + u0 (2x − 1, 2y − 1)).
4
On commence par étendre la petite image par un zoom aux plus proches voisins ; pour cela on définit
Z = {u ∈ Rn1 ×n2 : ∀x ≤
n2
n1
, ∀y ≤
, u(2x, 2y) = u(2x − 1, 2y) = u(2x, 2y − 1) = u(2x − 1, 2y − 1)},
2
2
on note A la projection orthogonale sur Z, et on part de v = Au0 , la version grossière de u0 (qui est
la version étendue de vsmall ). On souhaite trouver l’image qui minimise
1
Eλ (u) = kAu − vk2 + λT V (u).
2
Pour cela, on se ramène à la minimisation de
1
ku − (v − w)k2 + λT V (u)
2
avec u ∈ Rn1 ×n2 et w ∈ W ⊥ .
On en déduit un algorithme pour la minimisation de Eλ : on initialise avec w0 = 0, puis pour tout
n ≥ 0 on pose
un = (v + wn ) − πλK (v + wn )
qui peut être calculé grâce à la commande tvdenoise de la section précédente, puis
wn+1 = πZ ⊥ (un − v).
1. Programmer une fonction de zoom aux plus proches voisins, en évitant l’utilisation de boucles.
2. Écrire une fonction qui calcule la projection d’une image sur Z ⊥ .
3. Programmer l’algorithme complet. Étudier la dépendance au paramètre λ, faire fonctionner sur
plusieurs images, et comparer avec le zoom aux plus proches voisins.
Question 3 (Décomposition structure+texture, algorithme d’Aubert-Aujol).
Meyer [4] propose de modéliser une texture comme une image qui a une faible norme k · kG , où
p
kf kG = min{k (p1 )2 + (p2 )2 k∞ | (p1 , p2 ) ∈ (Rn1 ×n2 )2 , f = div p}.
Remarque : kf kG ≤ µ ssi f ∈ µK.
On souhaite décomposer une image f en 2 composantes f = u + v où u contient l’information géométrique de f (la partie structure) et v contient les oscillations de f (la partie texture et le bruit). Pour
cela, on s’intéresse à la minimisation de
(
1
kf − u − vk2 + λT V (u) si v ∈ µK,
Eλ,µ (u, v) = 2
+∞
sinon.
Université d’Orléans
2/3
2009 - 2010
Cécile Louchet – Image
M2
Un algorithme de minimisation de Eλ,µ est le suivant : on initialise u0 = v0 = 0, puis pour tout n ≤ 0,
(
vn+1 = πµK (f − un ),
un+1 = f − vn+1 − πλK (f − vn+1 ).
Chaque étape peut être calculée grâce à la commande tvdenoise.
1. Programmer l’algorithme de décomposition d’image d’Aubert-Aujol.
2. Choisir des paramètres (λ, µ) adéquats pour le problème.
3. Visualiser les résultats sur des images texturées en juxtaposant les parties structure, texture et
reste (f − u − v), et commenter.
Question 4 (Déflouage d’image).
On modélise une image floue par v = K ∗ u0 + n, où K est un noyau de flou, n un bruit, et u0 l’image
originale. On souhaite restaurer v en minimisant
Eλ (u) = kK ∗ u − vk2 + λT V (u).
Pour minimiser Eλ par une méthode de descente de gradient, on a besoin que la fonctionnelle soit
régulière. C’est pourquoi on remplace T V par une version régularisée
X
T Vε (u) =
(ε2 + |∇u|2 (x, y))1/2 .
x,y
1. Écrire (sur papier) la dérivée partielle de Eλ par rapport à chaque u(x, y).
2. Implémenter une descente de gradient de Eλ à pas constant. Tester l’algorithme.
P
3. Comparer cet algorithme avec un autre où T Vε (u) serait remplacé par x,y |∇u|2 (x, y). Commenter.
Références
[1] A. Chambolle, An Algorithm for Total variation minimization and Applications, Journal of Mathematical Imaging and Vision, vol. 20, n. 1-2, pp. 89-97, January-March 2004.
[2] G. Aubert, J.-F. Aujol, Modeling very oscillating signals. Application to image processing, Applied
Mathematics and Optimization, vol. 51, n.2, pp. 163-182, March-April 2003.
[3] J.-B. Hiriart-Urruty, C. Lemaréchal, Convex Analysis and Minimization Algorithms : I, II, Vol.
305-306 of Grundlehren der Mathematischen Wissenschaft. Springer Verlag. Berlin, 1993.
[4] Y. Meyer, Oscillating patterns in image processing and in some nonlinear evolution equations. The
Fifteenth Dean Jacquelines B. Lewis Memorial Lectures, March 2001.
[5] L. Rudin, S. Osher, E. Fatemi, Nonlinear total variation based noise removal algorithms, Phys. D,
vol. 60, n. 1-4, pp. 259-268, 1992.
Université d’Orléans
3/3
2009 - 2010
Téléchargement