A propos de la méthode du serpent en traitement des images numériques Philippe Destuynder et Olivier Wilk Spécialité Mathématiques Conservatoire National des Arts et Métiers 292 rue S t Martin 75141 Paris 17 décembre 2004 < R > 1/24
PLAN LES PROBLEMES POSES (some of them!) Un exemple simple inspiré d un film Les objectifs LE LISSAGE Le lissage de base (linéaire) Le lissage non linéaire LA METHODE DU SERPENT LOVE Formulation du modèle Calcul du gradient de l énergie reptile Le venin du serpent Un limiteur de pente Exemples animés CONCLUSION ET PERSPECTIVES < R > 2/24
OBJECTIFS Supprimer les défauts Accentuer les contours Segmenter : retrouver les objets Reconnaître les objets Remplacer les objets et ajuster. < R > 3/24
UNE DEMARCHE DE TRAITEUR D IMAGES Il y a 5 opérations de traitement : Le lissage non linéaire La segmentation L extraction et l identification La substitution La réparation < R > 4/24
L IMAGE INFORMATIQUE ET L IMAGE NUMERIQUE Une image informatique est une matrice (en 2D) représentant l intensité lumineuse en chaque point d une grille régulière. Pour pouvoir la manipuler mathématiquement on peut l interpoler. Le schéma le plus simple est l interpolation bilinéaire entre 4 points. η 1 (x 1, x 2 ) = (1 + ξ 1)(1 + ξ 2 ) 4 η 3 (x 1, x 2 ) = (1 ξ 1)(1 ξ 2 ) 4, η 2 (x 1, x 2 ) (1 ξ 1)(1 + ξ 2 ), 4, η 4 (x 1, x 2 ) = (1 + ξ 1)(1 ξ 2 ). 4 où il faut remplacer ξ 1 et ξ 2 par respectivement : 2( x 1 x K 1 x 1 ), et 2( x 2 x K 2 x 2 ). (1) 1 ξ 2 1 ^ K 1 ξ1 1 < R > 5/24 FIG. 1 L élément de référence
LE LISSAGE DE BASE Désignons par f une image mathématique construite à partir d une image informatique par interpolation. Pour tout petit paramètre ε on construit une image dite lissée et solution du problème suivant : ε min v 2 + 1 v f 2. (2) v H0 1(Ω) 2 2 Ce qui revient à résoudre : Bilan de cette opération On a gommé les petites imperfections Les contours ont été étalés Ω Ω ε u ε + u ε = f dans Ω, u ε H 1 0(Ω). (3) < R > 6/24
EXEMPLE Nous voyons l effet de flou créé par ce lissage linéaire. < R > 7/24
LE LISSAGE NON LINEAIRE Considérons une fonctionnelle dont les minimiseurs peuvent être discontinus. Pour tout petit paramètre ε on construit une image dite lissée et solution du problème suivant (type surface minima et a(n) est un paramètre d ajustement de seuil) : min J ε (= ε v H0 Ω[ 1 + a(n) v 2 1] + 1 v f 2 ). (4) 1(Ω) 2 Ω Ce qui revient à résoudre : εa(n) u ε div( 1 + a(n) uε 2) + uε = f dans Ω, u ε H 1# 0 (Ω). (5) où H 1# 0 (Ω) est le "bidual "de H 1 0(Ω) pour la norme donnant la coercivité de J ε. < R > 8/24
EXEMPLE Bilan de cette opération On a gommé les petites imperfections Les contours recherchés sont préservés et mis en évidence < R > 9/24
AUTRES EXEMPLES L image traitée fait ressortir les segments importants et gomme les autres. < R > 10/24
Cas d une image présentant des craquelures < R > 11/24
UNE AUTRE DEMARCHE Considérons une ligne de discontinuités fermée notée γ dans l ouvert Ω. Elle le sépare en deux parties soient Ω γ i et Ωγ e. On note : V γ = {v L 2 (Ω), v Ω γ i H 1 (Ω γ i ), ; v Ω γ e H1 (Ω γ e) v Ω = 0} On remplace le modèle de lissage par le suivant : Ω e Le modèle du serpent lové Ω i min γ G(γ), où ε G(γ) = min v V γ v 2 + 1 2 Ω γ 2 γ Ω v f 2 (6) < R > 12/24
< R > 13/24
Calcul du gradient de l énergie reptile par rapport à γ On considère un champ de déplacements θ représentant un déplacement de la ligne de discontinuités γ. Il est étendu de façon arbitraire sur un voisinage de γ dans l ouvert Ω. On se propose alors de calculer : et on trouve... lim η 0 G(γ + ηθ) G(γ) η (7) < R > 14/24
Expression du gradient de l énergie reptile par rapport à γ G γ (θ) = [ε u s 2 + u 2 2fu]θ.νds g(s)θ(s).νds = 1 γ 2 γ On peut alors envisager une méthode du gradient du type suivant pour déplacer les points m de γ : m n+1 = m n ϱg(s(m n )) ϱ R + pour déplacer le serpent γ. Cependant une difficulté majeure apparaît... < R > 15/24
LE VENIN DU SERPENT Calcul analytique (calcul formel) en 1D du gradient. Lorsqu on se rapproche de la discontinuité de f c est à dire du contour de l image, le gradient g plonge! Plus on est proche du contour plus on est instable. < R > 16/24
Un limiteur de pente Suivant une suggestion de C. Fabre, on pose : g g = où α [0, [, (1 + g 2 ) α Pour α = 0 on a g = g, pour α > 0.5 on fait décroître le gradient g et pour α = 0.5 on a un limiteur de pente. Les cas α > 0.5 permettent de mettre en œuvre les algorithmes traditionnels de gradient avec succès. En fait on minimise une nouvelle fonctionnelle mais qui a pour minimum une solution du problème de départ. < R > 17/24
Nouvelle fonctionnelle à minimiser α > 0.5 pour le cas 1D < R > 18/24
Influence de α {0, 0.5, 1} sur des cas simples. Cas d un rond Cas d un demi rond < R > 19/24 On voit que α = 0 pose problème car on est bloqué.
Quelques exemples La cigogne Le petit cheval Les îles Les petits ronds Les oiseaux Les chiffres < R > 20/24
CONCLUSIONS ET PERSPECTIVES Le 3D en utilisant la stéréoscopie Possibilité d enrichir le critère à minimiser Faire mieux que ce qui existe < R > 21/24