TP n 1 Régularisation des problèmes inverses Déconvolution et
Transcription
TP n 1 Régularisation des problèmes inverses Déconvolution et
ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM TP n◦ 1 Régularisation des problèmes inverses Déconvolution et Inpainting 1 But du TP — — — — 2 Introduction aux problèmes inverses mal-posés en traitement d’images. Introduction à la régularisation : Tikhonov (Sobolev) et variation totale (TV). Méthodes itératives. Application à l’inpainting et à la déconvolution. Inpainting Dans beaucoup de situations en traitement d’images, des pixels peuvent manquer dans les mesures échantillonnées. Ceci peut-être le cas aussi bien pour des raisons physiques (par exemples des mesures impossibles à obtenir par un détecteur défectueux), ou pour des raisons de commodité de traitement (e.g. compression, détérioration sur une vieille photographie). Interpoler ce type de données manquantes est communément appelé inpainting par analogie avec le travail d’un artiste peintre qui par un coup de pinceau restaurerait les parties manquantes tout en assurant la cohérence avec le reste de l’image. Soit Ω = {0, · · · , N − 1} × {0, · · · , M − 1} le compact reprśentant le domaine de l’image de taille N × M. Soit Ωo ⊂ Ω l’ensemble des pixels observés. Bien évidemment, Ω \ Ωo est l’ensemble des pixels manquants. Le modèle de dégradation entre l’image parfaite x et l’image dégradée observée peut être se formuler tout simplement selon ( x(n, m) si le pixel (n, m) ∈ Ωo , (1) s(n, m) = 0 sinon. Sous forme matricielle, ce modèle de dégradation peut s’écrire s = Hx, (2) où H est l’opérateur de masquage. Si x est réarrangée sous forme d’un vecteur dans RM N , H est une matrice carrée MN × MN diagonale, dont chaque élément de la diagonale est 1 si le pixel est présent, et 0 sinon. En clair, l’application de la matrice H correspond à une opération de masquage, voir Figure 1. 1 ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM Figure 1 – 2.1 Régularisation de Tikhonov pour l’inpainting Le nombre d’observations étant inférieur au nombre d’inconnues, le problème de l’inpainting, qui revient à inverser la matrice H, est mal posé (solution non-unique). Il faut donc avoir recours à une régularisation de la solution pour réduire l’ensemble des solutions candidates. La régularisation de Tikhonov 1 consiste à imposer que l’énergie des variations de l’image solution soit petite. Ainsi, l’inpainting dans ce cadre revient à retrouver l’image solutions dont énergie des variations est minimale tout en assurant la cohérence ses pixels qui sont dans Ωo avec ceux de l’image observée x. Formellement, on visera à résoudre le problème d’optimisation suivant min JTikh (x) tel que s = Hx, x 1 JTikh (x) = kD(l) xk2 , 2 (3) où D(l) est l’opérateur différentiel d’ordre l. Dans le reste du TP, l = 2 ce qui correspond au cas du Laplacien D(2) = ∆. Ce dernier est un opérateur symétrique défini-positif. Le Laplacien est donc auto-adjoint. 2.1.1 Algorithme de minimisation La fonctionnelle JTikh , convexe (non stricte), est à minimiser sous une contrainte linéaire (contrainte convexe fermé mais pas nécessairement bornée). Sous hypothèse de coercivité, traduit ici par ker(∆) ∩ ker(H) = {0}, l’ensemble des minimiseurs est compact. Par convexité, tout minimum est global, bien que non-strict. Par ailleurs, JTikh est C ∞ à gradient Lipschitz continu, et de ce fait, elle se prête à une minimisation par descente de gradient projeté. Le gradient de JTikh s’écrit ∇x JTikh (x) = ∆∆x , (4) où on a utilisé le fait que ∆ est auto-adjoint. Finalement, l’itération de descente de gradient projeté à pas fixe µ peut s’écrire (voir votre cours d’optimisation) x(k+1) = Proj{z:s=Hz} x(k) − µ∇x JTikh (x(k) ) (5) = Proj{z:s=Hz} x(k) − µ∆∆x(k) . 1. Dans un cadres continu, l’espace des solutions candidates sous-jacent est celui de Sobolev W l,2 . 2 ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM On peut montrer que 0 < µ < 1/32 est suffisant pour que la suite x(k) converge 2 . Le projecteur sur la contrainte linéaire possède une forme très simple et intuitive. En effet, Proj{z:s=Hz} (x) = s + x − Hx. 2.1.2 Implémentation Création du masque aléatoire Le but ici est de créer un masque (image binaire) aléatoire dont la proportion de pixels manquants est donnée en argument. Les opérateurs utiles seront : pnewimage, pim2sf, paddnoise, pnormalization, pbinzarization. — Synthétiser une image vide (pnewimage) de même taille que l’image que vous voulez masquer. Convertissez cette image en réel (pim2sf). — Ajouter un bruit uniforme (paddnoise) de moyenne 0 et d’écart-type 1. Normaliser l’image de bruit ainsi obtenue entre 0 et 1 (pnormalization). — Binarisez (pbinarization) l’image de bruit en utilisant comme seuil bas la proportion donnée en argument. — Visualisez le masque obtenu. — Appliquez ce masque à l’image de lena.pan ou auto1.pan (préalablement converties en réel) et visualisez le résultat. L’application du masque correspond à l’action de H, et l’image ainsi masquée est celle que l’on a appelée s dans (2). Implémentation de l’itération Le but maintenant est de restaurer (inpainter) l’image à partir de sa version masquée s en implémentant l’itération (5). On utilisera l’initialisation x(0) = s. Les opérateurs utiles sont : plaplacian, padd, psub, pmult, pdiv, pmask, pmultcst. — Ecrire l’enchaînement d’opérateurs permettant de coder (5), le pas de descente µ est choisi par l’utilisateur avec µ satisfaisant la borne supérieure énoncée juste après (5). — Etudiez l’influence du nombre d’itérations. — Appliquez l’itération avec plusieurs masques aléatoires en augmentant la proportion de pixels manquants. Commentez les résultats. 2.2 Régularisation par la variation totale pour l’inpainting Bien que la régularisation de Tikhonov permette d’obtenir des résultats relativement bons, elle ne préserve par les contours dans l’image (léger effet de flou observé). La régularisation par la variation totale (TV) permet de pallier à ce problème. La TV (discrète) d’une image x est la semi-norme définie par : X kxkTV = |∇x(n, m)| , (6) (n,m)∈Ω où ∇ est l’opérateur de gradient discret avec des conditions aux bords appropriées (ici Neup mann) et |v| = v12 + v22 pour tout vecteur v dans R2 . La fonctionnelle à optimiser en lieu et place de (3) est maintenant : min JTV (x), tel que s = Hx, x JTV (x) = kxkTV . 2. Le lecteur intéressé pourra prouver cette borne en se basant sur les résultats du cours. 3 (7) ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM 2.2.1 Algorithme de minimisation La fonctionnelle JTV est convexe mais non-différentiable (sur les éléments du noyau de ∇, i.e. les constantes). Vous n’avez pas traité l’optimisation non-lisse en cours, et de ce fait, pour s’affranchir de cette difficulté, nous allons remplacer la semi-norme TV par la version lisse suivante : X p kxkTVS,ǫ = |∇x(n, m)|2 + ǫ , (8) (n,m)∈Ω où le paramètre ǫ est choisi suffisamment petit (en pratique typiquement ici 0.01). Avec cette modification, la fonctionnelle devient maintenant C ∞ à gradient Lipschitz se prêtant alors à une minimisation par descente de gradient projeté. Cette itération s’écrit dans ce cas x(k+1) = Proj{z:s=Hz} x(k) − µ∇x JTV (x(k) ) !! (k) ∇x = Proj{z:s=Hz} x(k) + µdiv p , (9) |∇x(k) |2 + ǫ 2 [ où div est l’opérateur de divergence : div = −∇∗ . Le choix du pas de descente µ ∈]0, 1+8/ǫ (k) est suffisant pour assurer la convergence de la suite x . Toutefois, cette borne supérieure peut s’avérer pessimiste en pratique. Elle aboutit à un algorithme qui converge d’autant plus lentement que ǫ est petit. Pour accélérer la convergence, le pas de descente sera choisi manuellement en pratique. 2.2.2 Implémentation Le but maintenant est d’implémenter l’itération (9) et de comparer au résultat de la régularisation de Tikhonov. On utilisera l’initialisation x(0) = s. Les opérateurs utiles sont : pgradneumann, pdivneumann, padd, paddcst, pmult, pmultcst, pdiv, pmask„ pmodulus, ppow, psqrt. — Ecrire l’enchaînement d’opérateurs permettant d’implémenter (9), le pas de descente µ est choisi manuellement. — Etudiez l’influence du nombre d’itérations. — Comparer au résultat de la régularisation de Tikhonov, en particulier au voisinage des contours. Quels sont les avantages et les inconvénients de chaque régularisation. 2.3 Restauration d’une photographie ancienne Appliquez les deux itérations précédentes avec les deux types de régularisation à la restauration de l’image girls.pan en utilisant le masque des craquelures fourni. Etudiez l’influence du nombre d’itérations. Comparer et commenter. 3 Déconvolution Les données observées au travers de tout capteur (notamment) d’images ont subi des dégradations. Notamment, si on s’intéresse aux systèmes d’acquisition linéaires spatialement invariants (SLI) avec bruit additif, l’équation de dégradation s’écrit : s = h⊛x+ε , 4 (10) ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM où ⊛ désigne le produit de convolution circulaire et ε sera supposé gaussien centré stationnaire et blanc de variance σ 2 . h est la réponse impulsionnelle du système d’acquisition (PSF). Elle peut être connue a priori via une étape d’identification ou de calibrage. Inverser le filtre de convolution h est aussi connu sous le nom de déconvolution. Ce problème peut être résolu soit par des méthodes linéaires ou non-linéaires. 3.1 Régularisation de Tikhonov pour la déconvolution Ici, on va adopter le cadre variationnel avec la régularisation de Tikhonov comme ci-dessus, mais du fait de la présence de bruit, on relâchera la contrainte égalité vers une attache/fidélité aux données quadratique. En gardant les mêmes notations que ci-dessus, la fonctionnelle à minimiser maintenant est JTikh (x) = λ 1 ks − (x ⊛ h)k2 + k∆xk2 , 2 2 (11) où λ > 0 est le paramètre de régularisation pondérant le poids de la régularisation par rapport à la fidélité aux données. En utilisant la formule de Plancherel, on peut facilement prouver que # " ∗ (k , k ) ĥ u v . (12) x⋆ (m, n) = TFD−1 ŝ(ku , kv ) |ĥ(ku , kv )|2 + λS∆ (ku , kv ) où ŝ et ĥ sont les TFD de s et h respectivement, et S∆ (ku , kv ) est la densité spectral de puissance du noyau du Laplacien discret ∆. Bien évidemment, cette expression ne fait sens que si le dénominateur est non nul, c.à.d. 6 ∃(ku , kv ) tel que ĥ(ku , kv ) et S∆ (ku , kv ) s’annulent simulatément 3 . C’est l’équation de déconvolution (12) que nous allons implémenter ici. 3.1.1 Implémentation h sera simulé par un filtre moyenneur 9×9. Les opérateurs utiles seront : pfft, pifft, pfftshift, pfftconvolution, pshapedesign, psetcst, paddnoise, plaplacian, pmult, pdiv, pmultcst. — Synthétiser le filtre h (pshapedesign) et le normaliser (pnormalization, pmultcst). Ce filtre doit être réel bien évidemment. — Appliquer ce filtre à une image test (pfftconvolution). — Bruiter l’image obtenue (convoluée) par un bruit additif gaussien blanc. — Appliquer la formule de déconvolution (12) à l’image convoluée bruitée en écrivant l’enchaînement des opérateurs qui l’implémente. — Etudier l’infulence du paramètre de régularisation ainsi que celui de l’écart-type du bruit. Commentez les résultats. 3.2 Déconvolution avec régularisation par la variation totale Régulariser le problème de déconvolution par la TV lissée correspond à la minimisation de la fonctionnelle 1 JTVS (x) = ks − (x ⊛ h)k2 + λkxkTVS,ǫ , (13) 2 3. Le lecteur aura certainement remarqué que ceci n’est autre que la condition nécessaire et suffisante assurant la coercivité de JTikh , et donc que l’ensemble des minimiseurs est borné. 5 ENSICAEN 3ème année Informatique Image, M2 IMALANG, MS ATRIVM auquel cas la descente de gradient pour la minimiser est : x(k+1) = x(k) + µ h̄ ⊛ (s − h ⊛ x(k) ) + λdiv ∇x(k) p |∇x(k) |2 + ǫ !! , (14) où h̄ est la symétrique de h par rapport à l’origine. Convoluer par h̄ est équivalent à multiplier par ĥ∗ dans le domaine de Fourier. Implémenter cette itération. Comparer encore une fois à la régularisation de Tikhonov. Quelles conclusions en tirer. 6