PFE

45 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
45
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

PFE

  1. 1. Projet tutoré Présenté par : BOUDLAL Ayoub & TAHIRI Chaimaa Pour obtenir le diplôme de Licence fondamentale : Sciences Mathématiques et Applications ' & $ % Étude et résolution numérique de deux modèles basés sur des équations aux dérivées partielles pour le débruitage des images soutenu le : 25 Juin 2015 devant le jury composé de : Mr Fouad ZINOUN Président Professeur de l’Enseignement Supérieur à la FSR Mr Mohammed ZIANI Encadrant Professeur de l’Enseignement Supérieur à la FSR Mr Mostafa OUARIT Examinateur Professeur de l’Enseignement Supérieur à la FSR Année universitaire : 2014/2015 1
  2. 2. Table des matières Introduction 5 1 Équations aux dérivées partielles en traitement d’images 7 1.1 Image numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Filtrage par convolution . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Modèles utilisés en traitement d’images . . . . . . . . . . . . . . . . 10 1.3.1 Équation de la chaleur . . . . . . . . . . . . . . . . . . . . . . 11 1.3.2 Modèle de Pérona-Malik . . . . . . . . . . . . . . . . . . . . . 11 2 Résolution numérique 16 2.1 Approximation des dérivées . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.1 Approximation de la dérivée première . . . . . . . . . . . . . 16 2.1.2 Approximation de la dérivée seconde . . . . . . . . . . . . . 17 2.2 Discrétisation par différences finies . . . . . . . . . . . . . . . . . . . 18 2.2.1 Équation de la chaleur . . . . . . . . . . . . . . . . . . . . . . 18 2.2.2 Équation de Pérona-Malik . . . . . . . . . . . . . . . . . . . . 20 3 Résultats numériques 23 3.1 Dégradation d’images . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Critère d’analyse et d’évaluation pour le débruitage d’images . . . 23 3.3 Méthodes de débruitage . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.1 Débruitage par l’équation de la chaleur . . . . . . . . . . . . 24 3.3.2 Débruitage par le modèle de Pérona-Malik . . . . . . . . . . 26 3.4 Boîte à outils "Imagerie" de Matlab . . . . . . . . . . . . . . . . . . . 27 3.4.1 Filtrages d’images . . . . . . . . . . . . . . . . . . . . . . . . 29 2
  3. 3. TABLE DES MATIÈRES 3.4.2 Détection de contours . . . . . . . . . . . . . . . . . . . . . . 31 Conclusion et discussion 34 3
  4. 4. Remerciements Avant d’aborder le rapport de projet de fin d’étude, nous tenons à exprimer nos précieux remerciements à la Faculté des Sciences de Rabat. Nous tenons à remercier Mr. Ziani Mohammed, notre encadrant de mémoire, pour tout le soutien, l’aide, l’orientation et la guidance qu’il nous a apporté durant toute cette période de réalisation de notre mémoire. Merci aux Professeurs Mostafa Ouarit et Fouad Zinoun d’avoir accepté d’être dans le jury et d’évaluer ce travail. Nous ne pouvons pas ceux qui par leur amour et leur confiance ont soutenu morale- ment ce travail : nos familles. Spécialement nos parents pour le soutien inconditionnel dont ils ont fait preuve depuis que notre projet de fin d’étude est défini. Merci pour le soutien financier, moral, psychologique et matériel. Si nous sommes ici aujourd’hui, c’est grâce à vous ! Enfin, nous remercions nos amis et camarades de promotion pour ces trois années passées ensemble, dans les meilleurs moments comme dans les pires. 4
  5. 5. Introduction En analyse d’image il arrive souvent de se retrouver confronté à un phéno- mène de bruit sur les images ce qui rend le traitement des données difficile. Le phénomène de bruit peut être soit d’origine externe, perturbation du système d’acquisition de l’image par des facteurs tel que la luminosité, la pollution, soit d’origine interne au signal du fait des fluctuations spontanées des grandeurs élec- triques mises en œuvre dans l’acquisition de l’image. L’apparition de bruit dans une image est donc préjudiciable à bien des égards pour son analyse, sa classifi- cation et sa compréhension tant intuitive que formelle. Afin de minimiser ce phénomène de bruitage de l’image plusieurs techniques ont été développées. Les plus intuitives consistent à lisser l’image en remplaçant la valeur d’un pixel par la valeur moyenne de son voisinage ou la valeur médiane, il s’agit d’une opération de convolution de l’image considérée par un filtre. Ces techniques de traitement du bruit par des processus linéaires présentent souvent des défauts et se révèlent inefficaces dans le cadre d’images fortement bruitées, la valeur des pixels bruités influant à ordre égal que celle des pixels significatifs le résultat. L’application des équations aux dérivées partielles (EDP) semble par contre une approche relativement efficace contre le bruit que peuvent subir les images. La 1ère EDP utilisée était l’équation de la chaleur. C’est un processus de diffusion pour homogénéiser l’intensité de l’image. Un inconvénient de l’équation de la chaleur est qu’il ne distingue pas entre le bruit et les contours de l’image. Ainsi, l’image résultante après filtrage serait souvent floue. Pour remédier à cet incon- vénient, le modèle de Pérona-Malik a été introduit. Ce dernier consiste a lisser les zones homogènes et de rechausser les contours. Le but de ce rapport est d’étudier et analyser ces modèles et présenter des mé- 5
  6. 6. TABLE DES MATIÈRES thodes numériques utilisées pour les résoudre efficacement. Le rapport sera or- ganisé de la manière suivante : Dans le premier chapitre on étudie les modèles basés sur l’équation de chaleur et Pérona-Malik pour le débruitage des images. Dans le deuxième chapitre on utilise différents schémas aux différences finies pour résoudre ces modèles. On donne aussi une comparaison de ces schémas en terme de complexité et de sta- bilité. Dans le dernier chapitre on utilise les modèles présentés dans le chapitre 1 pour améliorer la qualité de quelques images et on compare numériquement les schémas de différence finies utilisés. On donne aussi dans ce chapitre un aperçu sur la boîte à outils imagerie de Matlab. 6
  7. 7. Chapitre1 Équations aux dérivées partielles en traitement d’images Une équation aux dérivées partielles (EDP) est une équation dont les solutions sont des fonctions inconnues (variables) vérifiant certaines conditions concernant leurs dérivées partielles. Les EDPs ont été introduites en traitement d’images en 1984, voir [4]. Partant de l’équation classique de la chaleur, une grande va- riété d’EDP est utilisée pour résoudre quelques problèmes de base en traitement d’images. 1.1 Image numérique Une image numérique est une matrice de pixels repérés par leur coordonnées (x, y). S’il s’agit d’une image couleur, un pixel est codé par 3 composantes (r,g,b) chacune comprise au sens large entre 0 et 255, représentant respectivement les "doses" de rouge, vert et bleu qui caractérisent la couleur du pixel. S’il s’agit d’une image en niveau de gris, il est codé par une composante comprise au sens large entre 0 et 255, représentant la luminosité du pixel, voir figure 1.1. En effet chaque entier représentant un niveau de gris est codé sur 8 bits. Il est donc compris entre 0 (blanc) et 28 − 1 = 255 (noir). C’est la quantification la plus courante. Dans ce rapport, on ne considère que les images en niveau de gris. 7
  8. 8. 1.2. FILTRAGE PAR CONVOLUTION Cameraman 256x256 Echantillon de cameraman 8x8 (249 :256,249 :256) Fig. 1.1 – Image numérique 1.2 Filtrage par convolution La convolution est l’une des principales opérations utilisées en traitement des images. La convolution d’une image I par un noyau de filtrage h est définie par : I(x, y) ∗ h(x, y) = +∞ +∞ +∞ +∞ I(x − u, y − v)h(u, v)dudv. Dans le cas discret, cette équation s’écrit : I(x, y) ∗ h(x, y) = N −N M −M I(x + i, y + j)h(i, j) La valeur de chaque pixel est recalculée on se basant sur la valeur du pixel lui- même et sur les valeurs des pixels voisins. La combinaison des filtres à l’utili- sation de la convolution a permis le développement d’un très grand nombre de filtres. Il existe, en général, deux types de filtres : Les filtres lisseurs : Ils sont utilisés à enlever le bruit d’une image ou la simpli- fier en la rendant plus régulière. Ils correspondent à des filtres passe-bas dans le domaine fréquentiel. Ce type de filtrage est généralement utilisé pour atténuer le bruit de l’image, c’est la raison pour laquelle on parle habituellement de lissage. 8
  9. 9. 1.2. FILTRAGE PAR CONVOLUTION Donnons maintenant quelques exemples de filtres lisseurs : Filtre moyenneur : Le niveau de gris du pixel central est remplacé par la moyenne des niveaux de gris des pixels voisins. La taille du noyau dépend de l’intensité du bruit et de la taille des détails significatifs de l’image traitée. Les effets du filtre moyenneur varient avec la taille du noyau ; plus les dimensions du noyau seront importantes, plus le bruit sera éliminé. Mais en contrepartie, les détails fins seront eux-aussi effacés et les contours étalés. Filtre gaussien : Les filtres moyenneurs ont pour effet de lisser considérable- ment l’image d’entrée. Il est donc préférable, pour éviter ce type d’effet, d’utiliser un masque avec cœfficient plus élevé au centre que sur les contours du noyau. Le filtre gaussien répond parfaitement à ce type de problème et est parmi les noyaux les plus utilisés pour lisser les images. Ce filtre est de type linéaire et une version discrétisée de la fonction gaussienne 2D est donnée par : G(x, y) = 1 √ 2πσ2 exp x2 + y2 4σ2 , où σ caractérise l’écart-type. Le paramètre de la taille détermine la largeur à mi- hauteur de la gaussienne (LMH, largeur à mi-hauteur). La relation entre la largeur à mi-hauteur et σ est : LMH = 2 √ 2 ln 2σ = 2.35482σ. Par exemple, le noyau d’un filtre gaussien 3 × 3 avec un écart-type σ = 0.6746 est donné par : h(u, v) = 1 25    1 3 1 3 9 3 1 3 1    . Les filtres rehausseurs : Ils sont utilisés à faire ressortir les régions de contraste et les détails ou pour estimer des grandeurs différentielles. Ils correspondent à des filtres passe-haut dans le domaine fréquentiel. Dans le cas de filtre de rehaus- sement on cite l’exemple de filtre passe haut, caractérisé par un noyau compor- tant des valeurs négatives autour du pixel central. Cette accentuation augmente 9
  10. 10. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES le contraste des limites entre les zones homogènes de l’image et est alors appelée extraction de contours. 1.3 Modèles utilisés en traitement d’images Les EDPs ont pris une grande importance dans le domaine de traitement d’images. Ces équations sont nées du principe de physique de la diffusion qui est basé sur celle qui s’établit dans une matière fluide à savoir que l’équation de diffusion est similaire à celle des concertations locales d’un fluide qui s’équi- librent. Le transfert pour atteindre l’équilibre des concentrations s’exprime avec la première loi empirique de Fick : j = −D. u, avec : D : tenseur de diffusion, symétrique défini positif, u((x, y, z), t) : concentration de matière au point (x, y, z) à l’instant t, u : gradient spatial de la concentration de matière, j : flux de matière. L’équation montre que le sens de déplacement du flux de la matière est opposé à la concentration, c.-à-d. que la concentration passe d’une région plus forte vers une région plus faible. Si u et j sont parallèles, on parle d’une diffusion iso- trope, dans ce cas on peut remplacer D par un scalaire g nommé diffusivité. Le cas général est appelé anisotrope. La propriété de transport de matière sous la condition de conservation s’exprime avec l’équation de continuité : ∂u ∂t = −div(j), où t représente le temps et ∂u ∂t la dérivée temporelle de la concentration de ma- tière. En combinant ces deux équations, on obtient l’équation de diffusion (se- conde loi empirique de Fick) : ∂u ∂t = div(D. u). Dans le cas où le tenseur de diffusion D est constant on parle de diffusion homo- gène, et dans le cas où il dépend de la structure différentielle de u, la diffusion 10
  11. 11. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES est non-homogène. Cette équation apparaît dans beaucoup de domaines. Dans le domaine du transfert de chaleur, c’est l’équation de la chaleur. En traitement d’images, on peut assimiler la concentration u au niveau de gris et les conditions initiales à l’image de départ. 1.3.1 Équation de la chaleur Koenderink a démontré en 1984, que la convolution d’une image bruitée par un filtre gaussien est la solution de l’équation de la chaleur pour σ = √ 2t. Dans le domaine de l’imagerie, cette équation est mieux connue sous le nom d’équation de diffusion. Elle s’écrit sous la forme :    ∂u ∂t − ∆u(t, x) = 0 si x ∈ Ω et t ∈]0, T] u(x, 0) = u0(x) ∂u ∂N = 0 sur ∂Ω, avec Ω est le domaine de l’image et N le vecteur normal. Les conditions qui inter- viennent naturellement en traitement d’images sont les conditions de Neumann ∂u ∂N = 0 sur ∂Ω. Pour imposer une telle condition, il suffit de prolonger l’image discrète u par réflexion par rapport à ses bords, voir [1]. La diffusion des pixels par l’équation de la chaleur présente un défaut majeur. Les contours sont endommagés. Le problème qui se pose est comment conserver les contours d’une image tout en éliminant le bruit ? L’algorithme de Pérona-Malik répond à ce problème par une prise en compte du gradient. 1.3.2 Modèle de Pérona-Malik La faiblesse de l’équation de la chaleur et que la diffusion est identique en tout point de l’image. L’image est lissée aussi bien dans les zones homogènes que le long des contours. Donc pour éviter cette altération des contours, le filtrage par diffusion non-linéaire est utilisé. L’introduction des équations de diffusion non-linéaire dans le domaine du trai- tement des images remonte à un article de Pérona-Malik, voir [5]. Ce modèle consiste à lisser l’image dans les zones homogènes et de ne pas faire évoluer 11
  12. 12. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES l’image le long des contours. L’équation correspondante s’écrit :    ∂u ∂t (x, y, t) = div (g(| u|). u(x, y, t)) u(x, y, 0) = u0(x, y) ∂u ∂N = 0 sur ∂Ω, avec Ω est le domaine de l’image, N est le vecteur normal et | u| est la norme du gradient de u. La fonction g est décroissante avec g(0) = 1 et lim s→+∞ g(s) = 0. Par exemple, Pérona-Malik ont proposé les fonctions suivantes : g(s) = 1 1 + (s λ )2 et g(s) = exp − λ s 2 Le paramètre λ est appelé " seuil ou paramètre contraste " comme nous allons voir, il joue un rôle important dans le comportement de la diffusion. Cette métrique impose une diffusion plus faible pour des valeurs de gradients d’autant plus élevées. Donc les contours sont préservés. Une interprétation per- met de saisir plus facilement les différences avec la diffusion isotrope, voir [7], est obtenue en écrivant l’équation en termes de dérivées secondes directionnelles, voir la figure 1.2, dans la direction du gradient : −→η = ux | u| , uy | u| T , et dans la direction orthogonale −→ ξ = − uy | u| , ux | u| T , avec u = (−→ux, −→uy) est le vecteur gradient de u et | u| = u2 x + u2 y est sa norme. Posons c = g(| u|). Dans le repère ( −→ i , −→ j ) du système d’axes (x, y) de l’image nous avons : ∂u ∂t = div(c u) = div(c[ux, uy]) = ∂ ∂x cux + ∂ ∂y cuy. 12
  13. 13. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES Fig. 1.2 – Direction du gradient et direction orthogonale ou encore ∂u ∂t = g(| u|)[uxx + uyy] + ∂ ∂x g(| u|) ux + ∂ ∂y g(| u|) uy, On a ∂ ∂x g(| u|) ux = g(| u|) | u| (uxxux + uxyuy)ux et ∂ ∂y g(| u|) uy = g(| u|) | u| (uyyuy + uyxux)uy. Ceci donne l’expression suivante : ∂u ∂t = g(| u|)[uxx + uyy] + g(| u|) | u| (uxxux + uxyuy)ux + g(| u|) | u| (uyyuy + uyxux)uy. 13
  14. 14. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES Ainsi, dans la nouvelle repère (−→η , −→ ξ ) du système d’axes (x, y) la dérivée première uη de u par rapport à −→η s’exprime par : −→η = U−→η = | U|, et la dérivée seconde uηη s’écrit : uηη = uη −→η = 1 | u| [ ∂ ∂x (| u|)ux + ∂ ∂y (| u|)uy] = (uxxux + uxyuy)ux + (uyyuy + uxyux)uy (| u|)2 = uxxu2 x + 2uxyuxuy + uyyu2 y (| u|)2 . Le laplacien étant invariant au changement de base, on peut écrire : ∆u = uxx + uyy = uηη + uξξ. En combinant les équations précédentes nous obtenons : ∂u ∂t = div(g(| u|))| u| = g(| u|)(uηη + uξξ) + (| u|)g (| u|)uηη = [g(| u|) + (| u|)g (| u|)]uηη + g(| u|)uηη. Cette dernière équation peut s’écrire sous la forme :    ∂u ∂t = cξ.uξξ + cη.uηη cξ = g(| u|) cη = g(| u|) + (| u|)g (| u|). La fonction φ(s) = s.g(s) est appelée fonction flux, elle gère la diffusion selon la direction du gradient. La figure 1.3 représente les fonctions de diffusion et de flux associées aux deux fonctions de diffusion proposées par Pérona et Malik. 14
  15. 15. 1.3. MODÈLES UTILISÉS EN TRAITEMENT D’IMAGES Fig. 1.3 – Représentation des fonctions de diffusion et de flux associées aux deux fonc- tions de diffusion proposées par Pérona et Malik Le comportement de l’équation de diffusion est maintenant plus facile à interpré- ter. Dans la direction orthogonale au gradient, la diffusion anisotrope induit un lissage modulé par la norme du vecteur gradient. Le chapitre suivant représente la résolution numérique par différences finies des modèles mentionnés dans ce chapitre. 15
  16. 16. Chapitre 2 Résolution numérique En analyse numérique, la méthode des différences finies est une technique courante de recherche de solutions approchées d’équations aux dérivées par- tielles qui consiste à résoudre un système de relations (schéma numérique) liant les valeurs des fonctions inconnues en certains points suffisamment proches les uns des autres, en se basant sur l’approximation des dérivées présentées dans les EDPs. Le problème posé sur le domaine continu (espace - temps) n’est pas résoluble tel quel par un ordinateur, qui ne peut traiter qu’un nombre fini d’inconnues. Pour se ramener à un problème en dimension finie, on discrétise l’espace et/ou le temps. Si le problème original est linéaire on obtient un système linéaire. Si le problème original est non linéaire on aura un système non linéaire. 2.1 Approximation des dérivées 2.1.1 Approximation de la dérivée première En un point x et pour une valeur h du pas de discrétisation tels que u soit trois fois dérivable sur l’intervalle [x − h, x + h] la formule de Taylor-Young conduit aux deux relations : u(x + h) = u(x) + 3 n=1 hn n! u(n) (x) + h3 ε1(x, h), 16
  17. 17. 2.1. APPROXIMATION DES DÉRIVÉES u(x − h) = u(x) + 3 n=1 (−h)n n! u(n) (x) + h3 ε2(x, h), où les deux fonctions εi(x, h) convergent vers 0 avec h. Par conséquent, δ+u(x) = u(x + h) − u(x) h = u (x) + h 2 u (x) + h2 3! u(3) (x) + h2 ε1(x, h), δ−u(x) = u(x − h) − u(x) h = −u (x) + h 2 u (x) − h2 3! u(3) (x) + h2 ε2(x, h). Ainsi, δ+u(x) et δ−u(x) représentent des approximations d’ordre 1 de u (x). En soustrayant les développements précédents, ce qui revient à faire la moyenne de deux différences finies antérieures et postérieure à u(x), on obtient : δ0u(x) = u(x + h) − u(x − h) 2h = u (x) + h2 6 u3 (x) + h2 ε3(x, h). C’est une approximation d’ordre 2 de u (x). 2.1.2 Approximation de la dérivée seconde En un point x et pour une valeur du pas de discrétisation tels que soit quatre fois dérivable sur l’intervalle [x − h, x + h], la formule de Taylor-Young conduit à la relation : u(x + h) = u(x) + 4 n=1 hn n! u(n) (x) + h4 ε1(x, h) u(x − h) = u(x) + 4 n=1 (−1)n hn n! u(n) (x) + h4 ε2(x, h), où les fonctions εi(x, h) convergent vers 0 avec h tend vers 0. Par conséquent, on peut approcher u (x) par le terme : u(x + h) − 2u(x) + u(x − h) h2 . 17
  18. 18. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES 2.2 Discrétisation par différences finies On note u l’image considérée et ui,j sa valeur au pixel (i, j). Le pas d’espace h est pris égal à 1. Pour approcher les solutions des modèles du chapitre 1 on aura besoin des approximations en espace des dérivées suivantes, voir [6] : Différences finies centrées : ∂ui,j ∂x ui+1,j − ui−1,j 2 . ∂ui,j ∂y ui,j+1 − ui,j−1 2 . Différences finies décentrées à droite : ∂ui,j ∂x ui+1,j − ui,j. ∂ui,j ∂y ui,j+1 − ui,j. Différences finies décentrées à gauche : ∂ui,j ∂x ui,j − ui−1,j. ∂ui,j ∂y = ui,j − ui,j−1. Pour les dérivées secondes : ∂2 u ∂2x ui+1,j − 2ui,j + ui−1,j. ∂2 u ∂2y ui,j+1 − 2ui,j + ui,j−1. 2.2.1 Équation de la chaleur Le schéma d’Euler explicite consiste à utiliser un schéma aux différences finies décentré à droite en temps. Il s’écrit : 18
  19. 19. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES uk+1 i,j − uk i,j ∆t − ∆uk i,j = 0, k = 0, 1, ..., M, avec ∆t = T M . Alors le schéma s’écrit : uk+1 i,j − uk i,j ∆t − (uk i+1,j + uk i−1,j + uk i,j+1 + uk i,j−1 − 4uk i,j) = 0, ou encore uk+1 i,j = (1 − 4∆t)uk i,j + ∆t(uk i+1,j + uk i−1,j + uk i,j+1 + uk i,j−1). En écrivant u sous la forme d’un vecteur U, l’écriture matricielle de ce schéma est la suivante : Uk+1 = AUk , k = 0, 1, ..., M, où A est une matrice à 5 diagonales et elle ne dépend que de ∆t. Ce schéma néces- site seulement un produit matrice-vecteur en chaque pas de temps. Cependant il est seulement stable sous la condition ∆t ∆x2 + ∆t ∆y2 ≤ 1 2 , voir [3]. Le schéma d’Euler implicite consiste à utiliser un schéma aux différences finies décentré à gauche en temps uk+1 i,j − uk i,j ∆t − ∆uk+1 i,j = 0, k = 0, 1, ..., M. Le schéma s’écrit : uk+1 i,j − uk i,j ∆t − (uk+1 i+1,j + uk+1 i−1,j + uk+1 i,j+1 + uk+1 i,j−1 − 4uk+1 i,j ) = 0. ou encore uk i,j = (1 − 4∆t)uk+1 i,j − ∆t(uk+1 i+1,j + uk+1 i−1,j + uk+1 i,j+1 + uk+1 i,j−1). L’écriture matricielle est la suivante : AUk+1 = Uk , k = 0, 1, .., M. L’avantage de ce schéma est qu’il est inconditionnellement stable, voir [3]. Mais il demande la résolution d’un système linéaire en chaque pas du temps. On peut 19
  20. 20. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES réduire efficacement la complexité de cette résolution en décomposant la discré- tisation suivant x et y séparément, on obtient ainsi deux systèmes tridiagonales qu’on peut résoudre facilement par l’algorithme de Thomas, voir l’annexe. On effectue d’abord une discrétisation suivant x : u k+1 2 i,j − uk i,j ∆t = u k+1 2 i+1,j + u k+1 2 i−1,j − 2u k+1 2 i,j , puis une discrétisation suivant y : uk+1 i,j − u k+1 2 i,j ∆t = uk+1 i,j+1 + uk+1 i,j−1 − 2uk+1 i,j . Ce second schéma implicite s’écrit sous la forme : i. Uk+1 2 = A−1 x Uk ii. Uk+1 = A−1 y Uk+1 2 , pour k = 0, 1, ..., M. Par exemple, dans le cas d’une matrice de 4 lignes et 5 co- lonnes, la matrice Ax a la forme suivante Ax =          A A 0 A 0 A A          où A =      β + α α 0 0 α β α 0 0 α β α 0 0 α β + α      , α = −∆t et β = 1 + 2∆t. On définit de la même façon la matrice Ay. 2.2.2 Équation de Pérona-Malik Le schéma explicite aux différences finies pour approcher la solution de l’équa- tion de Pérona-Malik peut s’écrire 20
  21. 21. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES un+1 i,j − un i,j dt = div g(| un ij|) ∂un ij ∂x ∂un ij ∂y = divg(| un ij|) ∂un ij ∂x g(| un ij|) ∂un ij ∂y = ∂ ∂x g(| un ij|) ∂un ij ∂x ϕn(x,y)i,j + ∂ ∂y g(| un ij|) ∂un ij ∂y ψn(x,y)i,j ∂ ∂x ϕn (x, y)i,j = ϕn i+1 2 ,j − ϕn i−1 2 ,j h = gn i+1 2 ,j (un i+1,j − un i,j) − gn i−1 2 ,j (un i,j − un i−1,j) ∂ ∂y ϕn (x, y)i,j = ϕn i,j+1 2 − ϕn i,j−1 2 h = gn i,j+1 2 (un i,j+1 − un i,j) − gn i,j−1 2 (un i,j − un i,j−1) un+1 i,j = un i,j+dt(gn i+1 2 ,j (un i+1,j−un i,j)+gn i−1 2 ,j (un i,j−un i−1,j)+gn i,j+1 2 (un i,j+1−un i,j)+gn i,j−1 2 (un i,j−un i,j−1)) un+1 i,j = un i,j + dt[gn i+1 2 ,j dEU + gn i−1 2 ,j dWU + gn i,j+1 2 dSU + gn i,j−1 2 dNU], avec : dEU = un i+1,j − un i,j, dWU = un i,j − un i−1,j, dSU = un i,j+1 − un i,j, dNU = un i,j − un i,j−1, et on prend : gn i+1 2 ,j = g(|dEU|), 21
  22. 22. 2.2. DISCRÉTISATION PAR DIFFÉRENCES FINIES gn i−1 2 ,j = g(|dWU|), gn i,j+1 2 = g(|dSU|), gn i,j−1 2 = g(|dNU|). Le schéma explicite pour approcher la solution du modèle de Pérona-Malik est facile à implémenter. Cependant, il est conditionnellement stable. On peut utiliser un schéma implicite qui est toujours stable, mais il demande la résolu- tion d’un système non-linéaire à chaque pas de temps. Une autre alternative est d’utiliser schéma semi-implicite. 22
  23. 23. Chapitre 3 Résultats numériques Dans ce chapitre, on applique les modèles du chapitre 1 pour le débruitage de quelques images. 3.1 Dégradation d’images Dans la pratique, une image peut être dégradée par plusieurs types et formes de bruit, la source principale des bruits dans les images numériques survenues pendant l’acquisition (numérisation) et la transmission. Ainsi, il est important de connaître la nature du bruit contaminant l’image. En fait, le type de bruit le plus connu et le plus difficile à réduire, est le bruit blanc gaussien, il apparaît dans l’image comme une variation aléatoire autour des valeurs d’intensité. Il est mo- délisé par la densité de probabilité gaussienne (unidimensionnelle) de moyenne nulle et de variance σ2 suivante : f(x) = 1 √ 2πσ e − x2 2σ2 . (3.1) 3.2 Critère d’analyse et d’évaluation pour le débrui- tage d’images La pertinence des méthodes de débruitage dépend de deux critères, subjectif et objectif permettant d’évaluer l’efficacité de ces méthodes. Le critère subjectif représente l’aspect visuel, il va permettre à l’utilisateur d’identifier le contenu des images, la netteté de celles-ci, la présence d’artefacts et la qualité des contours. Le 23
  24. 24. 3.3. MÉTHODES DE DÉBRUITAGE critère objectif se base sur deux mesures : l’erreur quadratique moyenne (MSE) et le rapport signal sur bruit (PSNR). Bien qu’ils ne correspondent pas toujours avec la perception humaine, ils sont souvent considérés comme des bonnes mesures de la fidélité d’une évaluation d’image. Ces critères sont définis comme suit : - Erreur quadratique moyenne (MSE) : Mean Squared Error MSE = 1 MN M i=1 N j=1 (X(i, j) − X(i, j))2 , (3.2) avec : - X : Image originale, - X : Image débruitée, - M : Nombre de lignes de l’image, - N : Nombre de colonnes de l’image, - (i, j) : positionnement des pixels. - Rapport signal sur bruit (PSNR) : Peak Signal to Noise Ratio PSNR = 10 log10 2552 MES , (3.3) où 255 est la valeur maximale d’un pixel pour une image codée par 8 bits/pixel en niveaux de gris. 3.3 Méthodes de débruitage L’implémentation des codes a été faite sur MATLAB. 3.3.1 Débruitage par l’équation de la chaleur La figure 3.1 est un exemple de débruitage de l’image Cameraman par l’EDP de la chaleur (schémas explicite et implicite) avec le nombre d’itérations est fixé à 50 et le pas de discrétisation en temps est variable. Pour les deux schémas, si le pas de discrétisation en temps est faible, les zones homogènes sont bien res- taurées et les contours sont bien conservés, mais par contre si le pas de discré- tisation en temps est important, les bords sont érodés, toutefois on constate une légère augmentation du PSNR du schéma implicite, cela s’explique par le faite 24
  25. 25. 3.3. MÉTHODES DE DÉBRUITAGE Image originale Image bruité Explicite (dt=0.01) Implicite (dt=0.01) PSNR= 26.60 dB PSNR= 26,67 dB Explicite (dt=0.2) Implicite (dt=0.2) PSNR= 19.82 dB PSNR= 19.87 dB Fig. 3.1 – Images débruitées par l’équation de la chaleur (schèmas implicite et explicite) avec un pas de discrétisation en temps variable et le nombre d’itérations est fixé à 50 que la méthode implicite est inconditionnellement stable mais il reste très coû- teux à cause de la taille du système linéaire à résoudre à chaque pas de temps. Toutefois les calculs sont très réduits par application de l’algorithme de Thomas. La table 3.1 présente une comparaison en temps d’exécution des deux méthodes pour résoudre l’EDP par les deux schémas implicites (la méthode par inversion classique de la matrice du schéma implicite et algorithme de Thomas) pour dif- férentes valeurs de dt. La figure 3.2 montre que si en augmente le nombre d’ité- ration en gardant le pas temporel dt fixe, la clarté diminue en éliminant le bruit. 25
  26. 26. 3.3. MÉTHODES DE DÉBRUITAGE Temps de calcul en seconde dt=0.01 dt=0.1 dt=0.5 dt=1 Algorithme d’inversion de la matrice 84.01 37.24 7.24 5.83 Algorithme de Thomas 0.551 0.544 0.541 0.540 Tab. 3.1 – Comparaison du temps de calcul pour les deux schémas implicites avec un nombre d’itérations égal à 10. Nous pouvons donc constater que bien qu’étant très efficace sur l’élimination du bruit, la propagation par l’équation de la chaleur ne permet pas une conservation des bords de l’image qui s’en retrouve donc altérée. les contours sont endomma- gés par la diffusion des pixels voisins. Le problème qui se pose est donc comment conserver les contours d’une image tout en éliminant le bruit sur une image ? La solution de ce problème consiste à utiliser un modèle de type Pérona-Malik. Image filtrées Image filtrées Image filtrées après 10 itérations après 50 itérations après 150 itérations PSNR= 24,16 dB PSNR= 20,93 dB PSNR= 19,24 dB Fig. 3.2 – Image "Cameraman" (256x256) débruitée par l’équation de la chaleur (Schéma explicite) : Le pas de discrétisation en temps est fixé à 0.1 avec nombre d’itérations va- riable 3.3.2 Débruitage par le modèle de Pérona-Malik La figure 3.3 présente une comparaison subjective et objective, entre la diffu- sion isotrope (image gauche) et la diffusion anisotrope (image droite). La diffusion anisotrope présente un lissage conditionnel, dont le comportement est fonction de la norme du gradient de l’image, grâce à la fonction g définie dans le chapitre 1. Le principe est de diffuser fortement dans les zones à faibles gra- dients (zones homogènes), et faiblement dans les zones à forts gradients (contours). Le seuil λ de la fonction g permet de distinguer les zones à faible gradient de celles à fort gradient. Nous pouvons classifier les résultats obtenus par l’algorithme de Pérona-Malik dans la figure 3.4 prenant en compte la variation de λ et celle du 26
  27. 27. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB Par l’équation de la chaleur Par Perona-Malik PSNR = 20,93 dB PSNR = 33.30 dB Fig. 3.3 – Comparaison entre le filtrage par les équations de la chaleur et Pérona-Malik avec un pas de discrétisation égale 0.001 et le nombre d’itérations est fixé à 50. nombre d’itérations. Nous constatons que pour T=200 l’image s’en retrouve gran- dement altérée, en augmentant λ. Le débruitage d’une image fortement bruitée par Pérona-Malik présente un risque que le bruit soit interprétée comme un contour, l’augmentation du paramètre λ altère l’image, voir figure 3.5. La figure 3.6 montre que pour dt = 0.1, le débruitage par Pérona-Malik donne de meilleurs résultats pour un nombre d’itérations égal à 20 avec λ est fixé à 2 (figure gauche), et donne de meilleurs résultats pour une valeur de λ égale 2.5 avec le nombre d’itération est fixé à 50 (figure droite). 3.4 Boîte à outils "Imagerie" de Matlab La boîte à outils (Image Processing Toolbox) propose un ensemble complet d’algorithmes et de fonctions destinés au traitement d’images. Parmi les princi- pales fonctionnalités de cette boîte à outils, on cite : 1. Analyse des images (segmentation, morphologie, statistiques, mesure, etc.) 2. Amélioration d’images, filtrage et restauration 3. Transformations géométriques et méthodes de recalage d’images basées sur l’intensité 4. Applications de visualisation (visualisation d’images et de vidéos). 27
  28. 28. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB λ=20 et T=20 λ=50 et T=20 λ=100 et T=20 PSNR = 33.01 dB PSNR = 32,19 dB PSNR = 31,10 dB λ=20 et T=100 λ=50 et T=100 λ=100 et T=100 PSNR = 28,53 dB PSNR = 25,65 dB PSNR = 24,71 dB λ=20 et T=200 λ=50 et T=200 λ=100 et T=200 PSNR = 25,39 dB PSNR = 23,24 dB PSNR = 22,81 dB Fig. 3.4 – Résultats obtenus par l’algorithme de Pérona-Malik prenant en compte la va- riation de λ et celle du nombre d’itérations T. La boîte à outils comprend des routines de filtrage spécialisées et une fonction de filtrage multidimensionnel généralisée qui gère les types d’image en entiers, offre de nombreuses options de gestion de l’effet de bords et effectue des convolutions et corrélations. En utilisant des filtres et des fonctions prédéfinis, on peut : 1. Filtrer avec des opérateurs morphologiques. 2. Déflouter et rendre plus nette l’image. 3. Supprimer le bruit avec un filtrage linéaire, médian ou adaptatif. 28
  29. 29. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB Image fortement bruitée λ=20 λ=100 Fig. 3.5 – Images débruitées par Pérona-Malik avec nombre d’itérations fixé à 400. Fig. 3.6 – Résultats en terme de PSNR avec dt est fixé à 0.1. PSNR en fonction du nombre d’itérations (figure gauche) et PSNR en fonction de λ (figure droite). 4. Effectuer une égalisation d’histogramme. 5. Remapper la plage dynamique. 6. Ajuster le contraste. 3.4.1 Filtrages d’images Pour améliorer la qualité visuelle de l’image, on doit éliminer les effets des bruits en lui faisant subir un filtrage. Filtre Gaussien : Le filtre gaussien est un filtre isotrope caractérisé par un écart type σ. Le code ci-dessous présente un exemple de filtrage d’une image à l’aide du noyau gaussien. I=imread(’cameraman.tif’) ; figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ; 29
  30. 30. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB [m,n] = size(I) ; J = imnoise(I, ’gaussian’, 0, 0.001) ; % bruitage d’image J = im2double(J) ; figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ; F=fspecial(’gaussian’) ; % créer des filtres prédéfinis J=imfilter(double(J),F) ; % opération par fenêtre glissante figure(3) ; imagesc(J) ; colormap gray ;title(’Image filtrer’) ; La figure 3.7 montre les résultats obtenus. Image originale Image bruitée Image débruitée - PSNR= 23.32 dB PSNR= 26.30 dB Fig. 3.7 – Application du filtre Gaussian Filtre Median : C’est un filtre non-linéaire qui ne peut pas s’implémenter comme une convolution. On remplace la valeur d’un pixel par la valeur médiane dans son voisinage. Afin de réaliser ce filtre sous Matlab on applique le code suivant : I=imread(’cameraman.tif’) ; figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ; [m,n] = size(I) ; J = imnoise(I, ’gaussian’, 0, 0.001) ; J = im2double(J) ; figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ; s= strel(’disk’,1) ; k=imopen(J,s) ; n=imclose(k,s) ; f=imclose(J,s) ; p=imopen(n,s) ; 30
  31. 31. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB figure(3) ; imagesc(p) ; colormap gray ; title(’Image débruitée’) ; La figure 3.8 montre les résultats obtenus : Image originale Image bruitée Image débruitée - SNR= 302.18 SNR= 295.07 Fig. 3.8 – Application du filtre de Median 3.4.2 Détection de contours Le but de la détection de contours est de repérer les points d’une image nu- mérique qui correspondent à un changement brutal de l’intensité lumineuse. La détection des contours d’une image réduit de manière significative la quantité de données et élimine les informations qu’on peut juger moins pertinentes, tout en préservant les propriétés structurelles importantes de l’image. Il existe un grand nombre de méthodes de détection de l’image. Dans ce qui suit quelques méthodes de la boîte à outils imagerie seront exposées. Filtre de Sobel : Le principe de ce filtre est que l’opérateur calcule le gradient de l’intensité de chaque pixel. Ceci indique la direction de la plus forte variation du clair au sombre, ainsi que le taux de changement dans cette direction. On connait alors les points de changement soudain de luminosité, correspondant probable- ment à des bords, ainsi que l’orientation de ces bords. Une application de ce filtre est implémenté dans le code suivant : I=imread(’cameraman.tif’) ; figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ; [m,n] = size(I) ; J = imnoise(I, ’gaussian’, 0, 0.001) ; 31
  32. 32. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB J = im2double(J) ; figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitée’) ; F=fspecial(’sobel’) ; J=imfilter(J,F) ; figure(3) ; imagesc(J) ; colormap gray ;title(’Image débruitée’) ; La figure 3.9 montre le résultat obtenu. Image originale Image bruitée Image débruitée - PSNR= 23.3 dB PSNR= 3.14 dB Fig. 3.9 – Application du filtre de Sobel filtre de Prewitt : En terme simple le filtre de Prewitt, calcule le gradient d’in- tensité lumineuse de l’image à chaque point, donnant la direction et le taux de la plus grande décroissance. Le résultat nous indique les changements escarpé (pente raide) de luminosité de l’image et donc étalement des contours probables de celle-ci. En pratique cette technique est plus fiable et facile à mettre en œuvre qu’un algorithme plus direct. Techniquement, il s’agit d’un opérateur différen- tiel discret calculant une approximation du gradient d’intensité lumineuse d’une image. Afin de réaliser ce filtre sous Matlab on applique le code suivant : I=imread(’cameraman.tif’) ; figure(1) ; imagesc(I) ; colormap gray ; title(’Image originale’) ; [m,n] = size(I) ; J = imnoise(I, ’gaussian’, 0, 0.001) ; J = im2double(J) ; figure(2) ; imagesc(J) ; colormap gray ; title(’Image bruitee’) ; 32
  33. 33. 3.4. BOÎTE À OUTILS "IMAGERIE" DE MATLAB F=fspecial(’prewitt’) ; J=imfilter(J,F) ; figure(3) ; imagesc(J) ; colormap gray ; title(’Image debruitee’) ; La figure 3.10 montre le résultat obtenu : Image originale Image bruitée Image débruitée - PSNR= 23.28 dB PSNR= 3.14 dB Fig. 3.10 – Application du filtre de Prewitt 33
  34. 34. Conclusion Le problème étudié dans ce projet est celui du débruitage d’images numé- riques corrompues par un bruit blanc gaussien. Les méthodes utilisées pour ré- cupérer une meilleure image reposent sur des modèles basés sur des EDPs. Ces équations ont été étudiées dans le cadre de débruitage d’images formulées à par- tir du processus de diffusion isotrope et anisotrope. Les résultats obtenus par lis- sage isotrope, sont peu satisfaisants. Il opère en effet de manière identique dans toutes les directions, et ne possède aucune direction privilégiée, atténuant ainsi bruit et contours sans distinction. Un modèle de type Pérona-Malik peut remédier à cet inconvénient. En effet, il permet d’introduire la notion de diffusion aniso- trope dont le principe est de diffuser fortement dans les zones à faibles gradients (zones homogènes) et faiblement dans les zones à forts gradients (contours). La résolution de ces modèles peut être effectuée efficacement en utilisant la mé- thode des différences finies. Pour l’équation de la chaleur, on a comparé les deux schémas explicite et implicite. Ce dernier est connu par sa stabilité, mais il de- mande la résolution d’un système linéaire en chaque pas de temps. On peut réduire le coût de ce schéma en transformant le problème en deux systèmes li- néaires avec des matrices tridiagonales qu’on peut résoudre efficacement par l’al- gorithme de Thomas. Pour le modèle de Pérona-Malik, on a implémenté seule- ment le schéma explicite en prenant des valeurs de ∆t suffisamment petites pour assurer la stabilité du schéma. Il serait intéressant d’implémenter le schéma im- plicite qui est toujours stable et qui donne lieu à un problème non linéaire en chaque pas de temps qu’on peut résoudre par une méthode de type Newton. Enfin, on a présenté la boîte à outils "Imagerie" de Matlab et on a utilisé quelques fonctions prédéfinies pour le débruitage et la détection des contours des images. 34
  35. 35. Annexe (Algorithme de Thomas [6] ) Soit à résoudre un système linéaire Ax = b avec A a une forme tridiagonale A =       a1 c1 0 e2 a2 ... ... cn−1 0 en an       . Si la factorisation LU de A existe, les matrices L et U sont bidiagonales et ont la forme L =       1 0 β2 1 ... ... 0 βn 1       , U =       α1 c1 0 α2 ... ... cn−1 0 αn       . Les coefficients αi et βi sont déterminés par les relations de récurrence α1 = a1, βi = ei αi−1 , αi = ai − βici−1, i = 2, . . . , n. Pour résoudre le système linéaire Ax = b, il est facile maintenant de résoudre les deux systèmes bidiagonaux Ly = b et Ux = y, pour obtenir les formules suivantes (Ly = b) : y1 = b1, yi = bi − βiyi−1, i = 2, . . . , n, (Ux = y) : xn = yn αn , xi = yi − cixi+1 αi , i = n − 1, . . . , 1. Cette technique est connue sous le nom d’algorithme de Thomas. Son coût est de l’ordre de n opérations. 35
  36. 36. Bibliographie [1] J.-F. Aujol, Traitement d’images par approches variationnelles et équations aux dérivées partielles. Semestre d’enseignement UNESCO sur le traitement des images numériques, Avril 2005 à Tunis. [2] M. Bergounioux, Méthodes mathématiques pour le Traitement d’image, Cours de Master, Mai 2009. [3] R. Herbin, Analyse numérique des équations aux dérivées partielles, Univer- sité Aix Marseille 1, Cours de Master, Décembre 2012. [4] J.J. Koenderink, The structure of images, Biological Cybernetics, Vol. 50, pp 363-370, 1984. [5] P. Perona, J. Malik, Scale space and edge detection using anisotropic diffusion, IEEE transactions on Pattern Analysis and Machine Intelligence, 12, pp 629- 639, 1990. [6] A. Quarteronni, F. Saleri et P. Gervasio, Calcul scientifique, Springer, 2010. [7] S. Yesli, Filtrage par Diffusion Anisotropique Appliquée aux images IRM, Mé- moire de magister, Faculté de génie électrique et d’informatique, Université Mouloud Mammeri. 36
  37. 37. Résumé Ce projet traite le débruitage d’images numériques corrompues en utilisant deux modèles basés sur des équations aux dérivées partielles. Le premier modèle étudié est l’équation de la chaleur, il repose sur un processus de diffusion isotrope pour un lissage de l’image traitée. Ce modèle présente un inconvénient majeur car il ne fait pas distinction entre le bruit et les contours de l’image. Pour remé- dier à cet inconvénient, la notion de diffusion anisotrope a été introduite, dont le principe est de diffuser fortement dans les zones à faibles gradients (zones ho- mogènes), et faiblement dans les zones à forts gradients (contours), c’est le cas du modèle de Pérona-Malik. La résolution de ces modèles est effectuée en utilisant la méthode des différences finies. Les schémas utilisés sont implémentés sur Matlab et une comparaison de ces schémas est faite. Enfin, un aperçu sur l’utilisation de la boîte à outils "Imagerie" pour le traitement d’images est présenté. 37

×