rapport de mini-projet : equations aux dérivées …rapport de mini-projet : equations aux...

20
Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa Benjamin Kohl Ibrahim Zangré Responsable : Antoine Henrot. 1

Upload: others

Post on 29-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Rapport de Mini-Projet :

Equations aux dérivées partielles.

APPLICATION A LA RESTAURATION D’IMAGES

BRUITEES

Par

Thierry KlaaBenjamin KohlIbrahim Zangré

Responsable : Antoine Henrot.

1

Page 2: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Table des matières

Introduction 3

1 Présentation du Problème 4

2 Etude théorique 5

2.1 Existence d’une solution au problème de minimisation . . . . . . . . . . . 52.2 Formulation variationnelle du problème . . . . . . . . . . . . . . . . . . . 62.3 Existence et unicité d’une solution au problème variationnel . . . . . . . . 72.4 Equation différentielle satisfaite par la solution u0 . . . . . . . . . . . . . 8

3 Simulation numérique sous Matlab 9

3.1 Description de la méthode de résolution et codes . . . . . . . . . . . . . . 93.2 Exemples de restauration d’image . . . . . . . . . . . . . . . . . . . . . . . 15

Conclusion 19

Bibliographie 20

2

Page 3: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Introduction

L’ère du numérique a révolutionné le monde de l’imagerie. Elle a conduit de nombreuxscientifiques à développer des méthodes de restauration d’image. En effet, lors de sonacquisition numérique, une image est souvent dégradée par des phénomènes de bruit dusà d’une mauvaise acquisition.

L’objectif de ce travail sera de restaurer une image initiale bruitée, en cherchant uneimage plus lisse, proche de la première.

3

Page 4: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Chapitre 1

Présentation du Problème

On définit une image bruitée par :

g : Ω =]0, 1[×]0, 1[−→ [0, 1]

(x, y) −→ g(x, y)

où g(x, y) représente le niveau de gris de pixel situé en (x, y).On remarque que la fonction g est positive bornée, on la supposera donc à carré inté-grable, choix justifié par le fait que g est à valeur constante sur chaque pixel, et qu’il y’aun nombre fini de pixels.

La restauration de cette image peut se faire en minimisant sur H1(Ω) l’énergie dedébruitage :

J(u) =1

2

Ω

(u− g)2dxdy +1

2

Ω

c|∇u|2dxdy (1.1)

où c est une fonction de (x, y),on suppose que c(x, y) ≥ c0 > 0.

On obtient alors une fonction minimisant cette énergie qui sera proche de g et plusrégulière. u sera l’image lissée.

4

Page 5: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Chapitre 2

Etude théorique

2.1 Existence d’une solution au problème de minimi-

sation

On a vu ci-dessus que trouver une image plus “lisse “ revient à trouver une fonction ude H1

( Ω) à valeurs dans [0, 1] qui minimise la fonctionnelle J . Nous allons donc montrer

que l’infimum noté I de J existe et est atteint pour un certain u0 dans H1(Ω) .

Pour cela, considérons une suite (un)n∈N de H1(Ω) qui minimise J (une telle suite existetoujours par défintion d’une borne inférieure), telle que (J(un))n∈N soit décroissante.Alors, il existe n0 ∈ N tel que pout tout n ≥ n0, J(un) ≤ I + 1.Montrons que (un)n∈N est bornée dans H1

( Ω) :

Pour tout n ≥ n0,

J(un) =1

2

Ω

(un − g)2dxdy +

1

2

Ω

c|∇un|2dxdy ≤ I + 1 (2.1)

Or :

1

2

Ω

(u2n−2ung+g

2)dxdy+1

2

Ω

c|∇un|2dxdy ≥

1

2(min(1, c0)‖u‖2H1(Ω))+

1

2

Ω

g2dxdy−

Ω

ungdxdy

Et par Cauchy Schwarz, et sachant que ‖g‖L2(Ω) ≤ 1, on a

Ω

ungdxdy ≤ ‖g‖L2(Ω)‖u‖L2(Ω) ≤

‖u‖H1(Ω). Donc −

Ω

ungdxdy ≥ −‖u‖H1(Ω).

On obtient alors en utilisant (2.1), pour tout n ≥ n0 :

I + 1 ≥ J(un) ≥1

2min(1, c0)‖un‖

2H1(Ω) − ‖un‖H1(Ω) (2.2)

Par conséquent, (un)n∈N est bornée dans H1(Ω).

Donc il existe une suite extraite de (un)n∈N qui converge faiblement dans H1(Ω) versune fonction u0 de H1(Ω) et fortement vers u0 dans L2(Ω), par compacité de l’injectionde H1(Ω) dans L2(Ω).

5

Page 6: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Alors,

Ω

(un − g)2dxdy

n−>∞−→

Ω

(u0 − g)2dxdy, et ‖u0‖H1(Ω) ≤ lim inf(‖un‖H1(Ω)).

Cela implique 12

Ω

c|∇u0|2dxdy ≤ lim inf(

1

2

Ω

c|∇un|2dxdy).

Finalement, J(u0) ≤ lim inf(J(un)), et u0 réalise le minimum de J sur H1(Ω).

2.2 Formulation variationnelle du problème

Dire que u est une solution du problème 1 est équivalent à dire que pour tout v dansH1(Ω) et t ∈ R, on a :

J(u+tv)−J(u) = t(

Ω

(u−g)vdxdy+

Ω

c∇u∇vdxdy)+1

2t2(

Ω

v2dxdy+

Ω

c|∇v|2dxdy) ≥ 0

Lemme 2.2.1. At+Bt2 ≥ 0 , ∀t ∈ R ⇔ A = 0 et B ≥ 0

u est solution du problème si et seulement si :

Ω

(u− g)vdX +

Ω

c∇u∇vdX = 0

et :1

2(

Ω

v2dxdy +

Ω

c|∇v|2dxdy ≥ 0

Cette dernière inégalité est toujours vérifiée vues les hypotèses faites sur c. On en déduitla forme variationnelle suivante du problème (1.1) :

Ω

(uv + c∇u∇v)dX =

Ω

gvdX, ∀v ∈ H1(Ω) (2.3)

6

Page 7: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

2.3 Existence et unicité d’une solution au problème

variationnel

Nous allons appliquer le théorème de Lax-Milgram pour prouver l’existence d’uneunique solution au problème variationnel donc au problème de minimisation (1.1).

On définit la forme linéaire L et la forme bilinéaire a :

L : H1(Ω) −→ R

v −→< L, v >=∫

ΩgvdX

a : H1(Ω)×H1(Ω) −→ R

(u, v) −→ a(u, v) =∫

Ω(uv + c∇u∇v)dX)

Proposition 2.3.1. On considère c ∈ L∞(Ω) : L est une forme linéaire continue sur

H1(Ω) et a est une forme bilinéaire continue symétrique. Si de plus |c(x, y)| ≥ c0 > 0,

alors a est coercive.

Démonstration. L (resp. a) est clairement une forme linéaire (resp. bilinéaire symétrique).

| < L, v > | ≤

Ω

|gv|dX ≤ ‖g‖L2(Ω)‖v‖L2(Ω) ≤ ‖g‖L2(Ω)‖v‖H1(Ω)

Donc L est continue.

|a(u, v)| ≤

Ω

(‖c‖∞|∇u∇v|+ |uv|)dX ≤ (1 + ‖c‖∞)‖u‖H1(Ω)‖v‖H1(Ω)

Donc a est continue.

Dans le cas où c(x, y) ≥ c0 > 0 :

|a(u, u)| ≥

Ω

(c0|∇u|2 + u2)dX ≥ min(1, c0)‖u‖2H1(Ω)

Donc a est coercive.

Existence et Unicité

Sous les hypothèses :• La fonction c est dans L∞.

• Il existe c0 tel que c(x, y) ≥ c0 > 0.On supposera desormais que ces hypothèses seront vérifiées dans toute la suite.On applique le théorème de Lax-Milgram. a(u, v) =< L, v > possède une solution

unique u0, et comme a est symétrique, u0 réalise le minimum sur H1(Ω) de la fonctionnelle(1.1).

7

Page 8: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

2.4 Equation différentielle satisfaite par la solution u0

u0 est solution de :

∀v ∈ H1(Ω),

Ω

(u0v + c∇u0∇v)dX =

Ω

gvdX

Alors ∀v = ϕ ∈ D(Ω),

< g, ϕ >=∫

ΩgϕdX =

Ω(uϕ+ c∇u∇ϕ)dX =

n∑

i=1

< c∂u0

∂xi,∂ϕ

∂xi>+ < u0, ϕ >

=< −div(c∇u0) + u0, ϕ >

Donc −div(c∇u0) + u0 = g, dans D’(Ω).c’est à dire :

−div(c∇u0) + u0 = g (2.4)

Moralement on a envie que u0 soit plus régulière, c’est à dire que l’égalité ci-dessussoit vérifiée presque partout ; ce qui est vérifié si u0 est dans H2(Ω).

Avant d’appliquer le théorème de régulatité, déterminons la condition de bord rescpectéepar u0 :

Nous travaillerons avec une condition de bord de Neumann car il s’agit de la manièrela plus simple d’appréhender le problème. Si ∂u0

∂n= f :6= 0 sur ∂Ω alors nécessairement

on aurait un terme∫

∂Ωfvdσ supplémentaire dans la forme variationnelle. Donc f = 0.

Théorème de régularité

On a :

• Ω est un ouvert convexe ;• u0 est solution du problème variationnel (2.3)• c est dans L∞(Ω)• ∂u0

∂n∈ H

1

2 (∂Ω)

Donc u0 est dans H2(Ω).

8

Page 9: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Chapitre 3

Simulation numérique sous

Matlab

Le problème revient à resoudre le problème elliptique suivant :Trouver u0 (qu’on sait être dans H2(Ω)) qui vérifie :

−div(c∇u0) + u0 = g dans Ω =]0, 1[×]0, 1[

∂u0

∂n= 0 sur ∂Ω

(3.1)

3.1 Description de la méthode de résolution et codes

Nous avons tenté successivement plusieurs méthodes.– Méthode des différences finies, d’abord sans, puis avec matrices creuses. Mais les

images obtenues par les algorithmes n’étaient pas satisfaisantes

– Méthode des éléments finis avec maillage régulier. Cette méthode, à laquelle nousavons réfléchi, semble correcte, mais nous avons finalement opté pour la méthodesuivante

– Méthode des éléments finis avec maillage optimalNous importerons une image bruitée g sous le format noir-blanc dans Matlab. La solutionu0 de (3.1) devra être une image plus régulière et proche de g.Pour cela, nous nous servirons de la fonction Matlab assempde qui qui utilise une méthoded’éléments finis.Le prototype de la fonction est :u=assempde(b,p,e,t,c,a,f)pour un problème du type :

−div(c(x, y)∇u) + a(x, y)u = f dans Ω

Conditions de bord(Neumann, Dirichlet ou Fourier) = b sur ∂Ω

où :• b représente les conditions de bords du problème

9

Page 10: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

• p, e et t caractérisent le mailage : p, le vecteur qui contient les coordonnées desnoeuds du maillage, t repertorie les domaines triangulaires, et e, les arrêtes

• f est la fonction second membre représentée ici par un vecteur qui contient les va-leurs ”f(xi)” de f aux différents noeuds du maillage

• u contient les valeurs de la solution aux centres de gravité des domaines triangulairesdu maillage

Pour nous a(x, y) = Constante= 1, et c(x, y) est une fonction quelconque (positive, bornéeet supérieue à c0 > 0) ou une matrice. Nous verons plus tard l’influence de la fonction csur l’image ”résultat”.

Cependant, une image en noir-blanc est représentée dans Matlab par une matrice.Nous allons donc devoir transformer cette matrice en un vecteur colonne qui contient uneapproximation des valeurs de la matrice aux différents points du maillage. La fonctionMatlab qui effectue cette tache est la suivante :

Function Matlab 1 :

10

Page 11: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

function [ ImagTriangle ] = imag2trimesh(p,imagegray)

% transforme une matrice en vecteur qui contient les valeurs aux points du

% maillage

[x, y] = size(p);

ImagTriangle = zeros(1, y);

for i = 1 : y

x1 = floor(p(1,i));

x2 = ceil(p(1,i));

y1 = floor(p(2,i));

y2 = ceil(p(2,i));

if x1 ~= x2

v1 = abs(p(1,i) - x1) * imagegray(y1, x2) + abs(x2 - p(1,i)) * imagegray(y1, x1);

v2 = abs(p(1,i) - x1) * imagegray(y2, x2) + abs(x2 - p(1,i)) * imagegray(y2, x1);

else

v1 = imagegray(y1, x1);

v2 = imagegray(y2, x1);

end

if y1 ~= y2

ImagTriangle(1,i) = v2 * abs(p(2,i) - y1) + v1 * abs(y2 - p(2,i));

else

ImagTriangle(1,i) = v1;

end

end

11

Page 12: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

On crée une fonction inTriangle(x1,y1,x2,y2,x3,y3,x0,y0), qui renvoie le booléen ”(x0, y0) appartient au triangle (x1,y1) ;(x2,y2) ;(x3,y3)”.

Function Matlab 2 :

function [ flag ] = inTriangle(x1,y1,x2,y2,x3,y3,x,y)

% flag = 1 point(x,y) et dans le triangle ou sur le bord

% flag = 0 point(x,y) sinon

S = abs((x1-x2)*(y1-y3)-(y1-y2)*(x1-x3));

S1 = abs((x-x2)*(y-y3)-(y-y2)*(x-x3));

S2 = abs((x-x1)*(y-y3)-(y-y1)*(x-x3));

S3 = abs((x-x2)*(y-y1)-(y-y2)*(x-x1));

flag = 0;

if S+0.000005 >= S1+S2+S3

% on laisse 0.000005 en prévision d’erreurs d’arrondis

flag = 1;

end

12

Page 13: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

La fonction u est un vecteur colonne qui représente les valeurs barycentriques surchaque triangle du maillage de la solution, ceci dans l’ordre de numérotation des trianglesdu maillage. Nous codons donc une fonction inverse de la précédente qui permet de re-trouver la matrice de l’image à partir de ce vecteur solution.

Function Matlab 3 :

function [ Image ] = trimesh2imag( p, t, ImagTriangle, M, N )

% [ Image ] = trimesh2imag( p, t, ImagTriangle )

% p et t sont les caractérisiques géométriques du maillage

% ImagTriangle est le vecteur solution du problème obtenu avec assempde

% Image(M, N)

Image = zeros(M, N);

[x,y] = size(t);

for i = 1 : y

x1 = p(1,t(1,i));

y1 = p(2,t(1,i));

x2 = p(1,t(2,i));

y2 = p(2,t(2,i));

x3 = p(1,t(3,i));

y3 = p(2,t(3,i));

Xmax = max([x1,x2,x3]);

Ymax = max([y1,y2,y3]);

Xmin = min([x1,x2,x3]);

Ymin = min([y1,y2,y3]);

for x0 = ceil(Xmin) : floor(Xmax)

for y0 = ceil(Ymin) : floor(Ymax)

[flag] = inTriangle(x1,y1,x2,y2,x3,y3,x0,y0);

if flag == 1

Image(y0,x0) = 1/3 * (ImagTriangle(t(1,i)) + ImagTriangle(t(2,i)) ...

+ ImagTriangle(t(3,i)));

end

end

end

end

13

Page 14: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Voici maintenant le programme principal dans lequel on construit le maillage, et oùon précise les paramètres de l’équation différentielle et les conditions aux bords.

Function Matlab 4 :

% Transorme l’image RGB en Noir et Blanc

% OriginalPic.jpg --> OriginalGrayPic.jpg

% [M,N] est la taille de l’image

imwrite(rgb2gray(imread(’OriginalPic.jpg’)),’OriginalGrayPic.jpg’);

% M est Y, N est X

% ImGray( M, N )

ImGray = imread(’OriginalPic2.jpg’);

[M,N] = size(ImGray);

if M > 1000 || N > 1000

disp(’IMAGE TOO LARGE’);

return;

end

g = [2 2 2 2

1 N N 1

N N 1 1

1 1 M M

1 M M 1

1 1 1 1

0 0 0 0];

[p,e,t] = initmesh(g);

[x,y] = size(p);

%On affine le maillage jusqu’à ce que le nombre de points du maillage soit

%superieur au nombre de pixels de l’image initiale.

while y <M*N

[p,e,t] = refinemesh(g,p,e,t);

[x,y] = size(p);

end

% On définit le vecteur image g=ImagTriangle

[ ImagTriangle ] = imag2trimesh( p, ImGray);

14

Page 15: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

% conditions au bord

b = [1 1 1 1

0 0 0 0

1 1 1 1

1 1 1 1

48 48 48 48

48 48 48 48

48 48 48 48

48 48 48 48

49 49 49 49

48 48 48 48];

f = ((ImagTriangle(t(1,:)))+(ImagTriangle(t(2,:)))+(ImagTriangle(t(3,:))))/3;

c=’1’;

ImagTriangle=assempde(b,p,e,t,1,c,f );

[ Image ] = trimesh2imag( p, t, ImagTriangle, M, N );

Image = Image / 256;

figure(2)

imshow(ImGray);

figure(3)

imshow(Image)

3.2 Exemples de restauration d’image

Figure 3.1 – Avant Figure 3.2 – Après

Cette restauration est faite avec c(x, y) = 1.

15

Page 16: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Einstein avant,

Figure 3.3 – Avant

Einstein après, pour c= 0.9

Figure 3.4 – Après

- Pour c(x, y) = 2.5, on obtient :

Figure 3.5 – Avant Figure 3.6 – Après

16

Page 17: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

- Pour c(x, y) = 0.5, on obtient :

Figure 3.7 – Avant Figure 3.8 – Après

Essayons à présent des fonctions c(x, y) non constantes.

- Pour c(x, y) = cos(x)cos(y), on obtient :

Figure 3.9 – Avant Figure 3.10 – Après

Ce résultat n’est pas étonnant car ici, c ne vérifie pas les hypothèses qui permettentde garantir l’existance et l’unicité d’une solution au problème.

17

Page 18: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

- Pour c(x, y) = 107e−0.001(x2+y2), on obtient :

Figure 3.11 – Avant Figure 3.12 – Après

18

Page 19: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Conclusion

Nous sommes partis du problème de minimisation de la fonctionnelle J définie par :

J(u) =1

2

Ω

(u− g)2dxdy +1

2

Ω

c|∇u|2dxdy (3.2)

où c est une fonction de (x, y), vérifiant c(x, y) ≥ c0 > 0, afin de régulariser la fonc-tion g(x,y) représentant une image. Ainsi, suivant les choix de c, nous avons vu que lasolution de ce problème de minimisation n’était pas toujours proche de g. En particulier,les fonctions dont les valeurs explosent (type polynômes ou exponentielles) ne sont pasjudicieuses car elles introduisent un contraste trop important et les images obtenues sontle plus souvent toutes moires, toutes blanches, ou noires sur une partie et blanche surl’autre ( cf. figure(3.12).

L’avantage d’utiliser des fonctions constantes est qu’elles permettent de conserver unniveau de gris ”proportionnel” à celui de l’image initiale en tout point, tout en obtenantune image finale plus régulière.

Par ailleurs, plus la constante choisie est grande, plus l’image finale est sombre. Et inver-sement, plus la constante choisie est faible, plus l’image finale est claire, le choix de c = 1permet de restituer au mieux le contraste initial de l’image.

19

Page 20: Rapport de Mini-Projet : Equations aux dérivées …Rapport de Mini-Projet : Equations aux dérivées partielles. APPLICATION A LA RESTAURATION D’IMAGES BRUITEES Par Thierry Klaa

Bibliographie

[1] Variation et optimisation de formes, Antoine Henrot et Michel Pierre

[2] Cours EDP, Antoine Henrot

20