Filtre de courbure moyenne

(Mean Curvature Motion)

Jean-François Aujol et Laurent Garcin

Mars 2000.  Projet du cours de MBAI à l'ENST.


 
 

Sommaire


 

De l'équation de la chaleur au filtre de courbure moyenne

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é proposées visant à éliminer le bruit tout en gardant une certaine précision sur les contours. Koenderink et Witkin ont introduit une analyse dite "scale space" reliée à l'équation de la chaleur.
du/dt = d2u/dx2 + d2u/dy2
Comme la solution de cette équation est une gaussienne, on retrouve l'approche classique par convolution en lissage d'images. En effet, la résolution de l'équation ci-dessus revient à convoler u avec une gaussienne à différentes échelles. On sait bien que cette méthode permet de lisser l'image initiale, mais malheureusement on perd de la précision sur les contours.

Lions, Morel et Alvarez ont alors proposé une modification non-linéaire de l'équation précédente :

du/dt = | Du | curv(u) où curv(u)=div(Du/|Du|)
L'équation obtenue est dite équation de mouvement selon la courbure moyenne. Concrètement, cela équivaut à une diffusion dégénérée dans la direction orthogonale au gradient de u et non pas dans la direction du gradient. C'est pourquoi une telle diffusion permet de garder la localisation exacte et la précision des contours tout en lissant le reste de l'image.
 

Principe du filtre de courbure moyenne

Soit u(x,y) la fonction représentant notre image. Le filtre de courbure moyenne déforme les lignes de niveau de u selon leur courbure. On comprend donc que ce filtre permet de lisser des images bruitées car le bruit correspond à une forte courbure locale.
 

Mouvement initial

Forme finale (ligne foncée)

Remarque:
Le filtre de courbure moyenne se généralise aux dimensions supérieures à 2 (de tels filtres sont utilisés pour les images 3D).
 

Applications du filtre de courbure moyenne

Le mouvement  selon la Courbure Moyenne intervient plus ou moins directement dans de nombreux domaines:

La formulation par courbes de niveau

On étudie l'évolution d'une hypersurface S de Rn (n=2,3).
On la considère comme la ligne de niveau d'une fonction u(.,t):
C'est l'approche par Level-Set d'Osher et Sethian.

Si on suppose que l'ensemble des lignes de niveau de u(.,t) évolue selon la courbure moyenne,

(i.e.) dM/dt = k N où k et N son respectivement la courbure et la normale au point de la ligne de niveau considéré
alors u(.,t) est solution du problème:


Réciproquement, si u(.,t) est solution de l'équation précédente, les courbes de niveau de u(.,t) évoluent selon le flot à courbure moyenne, à condition que u(.,t) soit régulière et que le gradient de u ne s'annule jamais.

Exemple:
L'image ci-dessous a été quantifiée sur cinq niveaux de gris de manière à simplifier la carte des courbes de niveau. Les images suivantes montrent l'évolution des lignes de niveau au cours de la diffusion par courbure moyenne.
On constate que les lignes de niveau non significatives disparaissent et que les lignes de niveau restantes se rapprochent de lignes droites, ce qui correspond bien à l'idée intuitive d'une déformation proportionnelle à la courbure.
 
 
 


 

Filtre de courbure moyenne et morphologie mathématique

En traitement d'image, les opérateurs morphologiques sont des opérateurs non linéaires. Ils permettent de filtrer itérativement des images. Ils prossèdent une propriété qui les rend fort pratiques: ils commutent avec les changements de contraste des images, ce qu'on vérifie expérimentalement (voir images ci-dessous).
 
 

Image initiale

Image après changement de contraste

Image filtrée puis contrastée

Image contrastée puis filtrée

On peut de plus montrer que tous les opérateurs morphologiques (ie monotone, invariant par contraste) sont asymptotiquement équivalents à un mouvement de l'image selon sa courbure.
En particulier, le filtre de courbure moyenne peut etre obtenu comme limite d'un filtre médian itéré.
 
 

Débruitage d'images en utilisant le filtre de courbure moyenne


Image initiale
  • entropie = 7.20267

Image  avec un bruit gaussien de variance 20
  • SNR = 8.43984
  • PSNR = 20.8807
  • MSE = 398.765
  • MRD = 37.2549
  • entropie = 7.7172

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;4.0]
  • SNR = 19.8258
  • PSNR = 32.2666
  • MSE = 28.9816
  • MRD = 53.6036
  • entropie = 7.27529

Image restaurée avec le filtre médian
  • Fenêtre de rayon 3
  • 2 itérations
  • SNR = 20.0451
  • PSNR = 32.486
  • MSE = 27.5543
  • MRD = 38.7387
  • entropie = 7.29013

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;3.2]
  • SNR = 19.9923
  • PSNR = 32.4331
  • MSE = 27.8915
  • MRD = 44.1964
  • entropie = 7.29827

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;2.0]
  • SNR = 18.6906
  • PSNR = 31.1315
  • MSE = 37.639
  • MRD = 29.0043SNR = 13.5788
  • entropie = 7.36105

Image initiale
  • entropie = 7.20267

Image bruitée avec un bruit impulsionnel à 10%
  • SNR = 6.01762
  • PSNR = 18.4585
  • MSE = 696.528
  • MRD = 98.19
  • entropie = 7.34938

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;4.0]
  • SNR = 21.4155
  • PSNR = 33.8564
  • MSE = 20.0978
  • MRD = 52.0362
  • entropie = 7.22499

Image restaurée avec le filtre médian
  • Fenêtre de rayon 3
  • 2 itérations
  • SNR = 23.7604
  • PSNR = 36.2012
  • MSE = 11.7129
  • MRD = 47.0588
  • entropie = 7.16098

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;2.5]
  • SNR = 23.1165
  • PSNR = 35.5574
  • MSE = 13.5846
  • MRD = 42.5339
  • entropie = 7.24221

Image restaurée avec le filtre de courbure moyenne
  • Pas de temps = 0.1
  • Intervalle de temps = [0.0;2.0]
  • SNR = 22.3289
  • PSNR = 34.7698
  • MSE = 16.2858
  • MRD = 42.0814
  • entropie = 7.2574
retour au sommaire