1. INTRODUCTION
Depuis quelques temps on assiste à un regain d’intérêt pour un certain nombre
de problèmes liés au domaine du traitement des images. On note aujourd’hui
une évolution dynamique dans la manière d’aborder et de résoudre une
certaine classe de problèmes très importants dans le domaine du traitement
des images et de celui de la vision par ordinateur.
En étudiant les articles les plus récents qui illustrent cette nouvelle tendance, il
s’avère qu’une grande partie de ces techniques nécessite l’utilisation
d’équations aux dérivées partielles.
Cette approche constitue l’objet de ce rapport qui présente l’implémentation
d’une équation aux dérivées partielles particulières pour le filtrage d’images
bruitées.
Ce rapport commence donc par une présentation de l’étude puis expose les
moyens utilisés avant de présenter l’implémentation de trois filtres possédant
des caractéristiques différentes.
1
2. I. Présentation de l’étude
Un des buts principaux en traitement d’images est l’élimination du bruit
et la détection des contours afin de pouvoir effectuer une
interprétation de l’image sur une version simplifiée de l’image originale.
De nombreuses méthodes ont été élaborées dont le formalisme des
équations aux dérivées partielles visant à éliminer le bruit tout en
gardant une certaine précision sur les contours.
Ce projet à donc pour but d’implémenter une équation aux dérivées
partielles permettant de filtrer une image bruitée.
Pour atteindre cet objectif, j’ai dans un premier temps implémenté
deux autres équations qui en sont des cas particuliers. Il s’agit donc
d’un filtre gaussien qui est le premier modèle d’EDP introduit dans le
traitement d’image et une d’une version améliorée proposée par
Peronna et Malik.
Pour atteindre ces objectifs, j’ai du exploiter plusieurs outils tels que les
bibliothèques comme CImg élaborée pour manipuler les images et la
bibliothèque OFELI conçue pour résoudre des équations aux dérivées
partielles par la méthode des éléments finies.
2
3. II. Outils
1. Bibliothèque CIMG
CImg est une bibliothèque C++ Open Source conçue spécialement
pour le traitement d’images réalisée par David TSCHUMPERLE à
partir de 1999 à l’INRIA (Sophia Antipolis) et développée par la suite
au sein de l’équipe Image du laboratoire CNRS CREYC à Caen. CImg
est distribuée sous la licence CeCiLL (Licence commune
CNRS/INRIA/CEA). La bibliothèque n’est composée que d’un unique
fichier entête « CImg.h » fournissant l’ensemble de classes et de
fonction qui, une fois inclus dans un projet, peuvent être utilisées
pour changer/sauvegarder, traiter et afficher des images. La
bibliothèque fonctionne sur de nombreux systèmes (Unix/X11,
Windows, Mac OS X…).
Le namespace cimg_library définit dans la bibliothèque englobe les
classes templates suivantes :
-CImg<T> : représente une image de dimension 4, chaque pixel est de
type T.
-CimgDisplay<T> : représente une fenêtre dans laquelle pourront
être affichées des images CImg. Cette classe permet aussi de gérer les
évènements clavier et souris.
-CImgException<T> : exceptions levées lorsqu’une erreur survient
lors de l’appel d’une fonction.
-CImgList<T> : liste d’objets CImg.
-CImgStats<T> : permet d’effectuer des statistiques sur les images de
type CImg.
3
4. III. Image
Avant de présenter les différents filtres implémentés il est
nécessaire de préciser ce qu’est une image en l’occurrence une
image bruitée et la type d’image sur laquelle j’ai travaillé.
Une image est constituée d’un ensemble de points pixels
(PICture ELement). Il représente ainsi le plus petit élément
constitutif d’une image numérique (on parle d’image
numérique lorsque les quantités physiques qui caractérisent
l’image sont convertis valeur numérique). L’ensemble de ces
pixels est contenu dans tableau à deux dimensions constituant
l’image.
Les axes de l’image sont orientés sont orientés de la façon
suivante :
-L’axe X est orienté à droite
-L’axe Y est orienté de haut en bas contrairement aux notations
conventionnelles en mathématiques, ou l’axe Y est orienté vers
le haut.
Pour représenter informatiquement une image, il suffit donc de
créer un tableau de pixels dont chaque case contient une
valeur. La valeur stockée dans une case est codée sur un certain
nombre de bits déterminant la couleur ou l’intensité du pixel.
Dans le cadre du projet j’ai travaillé sur des images numériques
noire et blanc qui sont un cas simple à manipuler dans un
programme. Elles constituées de pixels pouvant prendre des
valeurs comprises entre 0 et 255. Cela représente le niveau de
gris de l’image.
4
5. IV. Implémentation des filtres
J’ai dans le cadre de ce projet implémenté trois différents filtres
à savoir le filtre gaussien, de Peronna-Malik et le filtre de
courbure moyenne. Chacun de ces filtres possèdent des
caractéristiques différentes.
1. Filtre gaussien.
La première équation aux dérivées partielles à avoir été
utilisée en traitement d’images est certainement l’équation
de la chaleur. Elle correspond à une EDP parabolique.
− ∆ , =0, ≥0
0, =
Ici, représente l’image bruitée à filtrer.
L’introduction de cette équation provient de la remarque
suivante : si la donnée initiale est suffisamment régulière,
la solution explicite de l’équation précédente est donnée par :
, = √ − = √ ∗
Ou désigne le noyau Gaussien en dimension 2 :
1 | |
= exp −
2 2
5
6. L’opération de convolution par un noyau positif est une
opération de base en traitement d’image. Cela correspond à un
filtre passe bas.
J’ai appliqué le filtre ainsi crée sur une image noire et blanc
représentée en niveau de gris et qui a été bruitée.
La figure ci-dessous montre les résultats obtenus.
Figure1. Image bruitée
6
8. Figure3. Image filtrée à l’aide du filtre gaussien (delta=0.4)
On peut ainsi remarquer que le filtre Gaussien a pour effet de flouter l’image
bruitée. De plus suivant le temps d’évolution on obtient une version plus ou
moins lissée de l’image de départ.
8
9. 2. Filtre de peronna-Malik
Les filtres de diffusion non-linéaire fondés sur un formalisme
EDP on été introduits par Peronna et Malik pour améliorer
les résultats obtenus par l’EDP de la chaleur. Depuis ce type
de d’équation est largement utilisé pour la préservation de
contours, le filtrage et le rehaussement. Le formalisme EDP
de ce type de filtre est donné par :
= |∇ | ∇ × 0,
=0 × 0,
0, =
Ou l’opérateur |. | correspond à la norme euclidienne dans
Ou est une fonction décroissante de dans .
.
On remarque que si = 1, on retrouve l’équation de la
On impose souvent que 0 = 1 et lim → = 0.
chaleur.
Ainsi, dans les régions de faible gradient, l’équation agit
essentiellement comme une EDP de la chaleur, et dans les
régions de fort gradient, la régularisation est stoppée (ce qui
permet de préserver les bords).
Dans le cadre du projet j’ai implémenté cette équation en
prenant comme fonction :
9
10. 1
|∇I| =
|∇I|
On montre que la formulation variationnelle associée à ce
problème s’écrit comme suite :
tel que ∀
1
Rechercher ont ait :
. + ∇ .∇ = 0
|∇ |
On remarque que cela revient à résoudre une équation de la
chaleur en prenant comme terme :
∗ = |∇ |
Par la suite comme précédemment, j’ai appliqué le filtre ainsi
crée sur l’image précédente. Les résultats obtenus sont
visualisable sur les images ci-dessous.
10
12. 3. Filtre de courbure moyenne
Lions, Morel et Alvarez ont proposés une modification non-linéaire de
l’équation de la chaleur présentée précédemment afin d’améliorer la
précision sur les contours que l’on n’obtient pas avec un filtre
gaussien. Le modèle proposé à cet effet correspond à l’équation
suivante :
∇
= |∇ |
|∇ |
0, =
Concrètement cette équation correspond à une diffusion dégénérée
dans la direction orthogonale au gradient de et non pas dans la
direction du gradient. C’est pourquoi une telle diffusion permet de
garder la localisation exacte et la précision de contours tout en lissant
le reste de l’image.
Le terme |∇ |
∇
|∇ |
est un terme de diffusion dégénéré. En effet il
diffuse dans la direction orthogonale à |∇ | (mais pas dans la
direction de cette dernière). Le but de ce terme étant de lisser de la
part et d’autre des bords, tout en préservant justement les bords (un
bord est défini comme la ligne le long de laquelle le gradient est
« grand »).
On montre que la formulation variationnelle associée à ce problème
1 1
s’écrit :
. + ∇ .∇ = 0
|∇ | |∇ |
12
13. Comme précédemment cela revient à résoudre l’équation de la
chaleur en considérant les termes suivants :
∗ = |∇ | = |∇ |
Par analogie avec les coefficients ci-dessus que l’on retrouve dans
l’équation générale de la chaleur ou :
: Représente la masse volumique
: La capacité thermique
: La diffusivité thermique
Par la suite j’ai testé le filtre de courbure moyenne sur l’image
précédente. Les résultats obtenus sont observables sur les figures ci-
dessous.
13
15. Figure5. Image filtrée à l’aide du filtre de courbure moyenne (10 itération)
L’image présentée correspond donc à l’image de départ filtrée par le filtre de
courbure moyenne. J’ai donc obtenue une image très floue. En augmentant le
nombre d’itération je constate que l’image devient de plus en plus floue.
15
16. V. Bilan
Durant cette année j’ai travaillé à l’implémentation d’une équation aux
dérivées destiner à filtrer une image bruitée, à l’aide des bibliothèques
OFELI et CImg. Pour une meilleur approche j’ai du implémenter des
équations qui correspondent aux cas particuliers de cette dite équation.
Ce rapport présente donc trois types de filtres et leurs caractéristiques.
Ainsi j’ai obtenu avec le filtre gaussien une image qui devient de plus en
plus floue en fonction du nombre d’itération temporelle. Avec le filtre de
Peronna-Malik, j’ai pu constater que pour une itération, on obtient une
image plus ou moins floue que celle obtenue avec le filtre gaussien.
Enfin l’application du filtre de courbure moyenne sur le l’image bruitée a
donnée en sortie une image qui est très floue. Cette caractéristique
augmente avec le nombre d’itération.
Enfin travailler sur ce projet m’a permis de découvrir les applications
multiples des équations aux dérivées partielles dans le traitement
d’image. J’ai également pu manipuler des bibliothèques telles qu’OFELI
et en particulier CImg qui est une bibliothèque très utilisée en imagerie.
Toutefois il aurait été souhaitable d’élargir l’étude sur les images en
couleur. En effet cette étude a traitée uniquement des images
numériques noire-blanc. Cela reviendrait à considérée chaque
composante des pixels par exemple (RGB) et à appliquer les différents
filtres à chacune de ses composantes.
16
17. CONCLUSION
Ce rapport présente donc l’implémentation d’un filtre par l’approche EDP. Il
commence par introduire quelques cas particuliers de filtre et leurs résultats
avant de présenter le filtre de courbure moyenne ; Tous implémentés à l’aide
des bibliothèques CImg et OFELI. On a pu donc observer les différents résultats
que l’on pouvait obtenir à l’aide de ces différents filtres et la simplicité que
peut fournir l’approche des EDP en traitement d’image.
17
18. Bibliographie
Rachid Deriche et Olivier Faugeras : Les EDP en Traitement des Images et Vision
par Ordinateur N° 2697 Novembre 1995.
Christophe Cudel, Bruno Colicchio, Alain Dieterlen: Sources de dégradations et
restauration d'images.
Jean-François Aujol : Traitement d’images par approches variationnelles et
équations aux dérivées partielles, Avril 2005, CMLA, ENS Cachan, CNRS, PRES
UniverSud.
18