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