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