• Aucun résultat trouvé

La méthode de level set a été introduite par Osher et Sethian [93]. Initialement, la méthode a été appliquée pour résoudre les problèmes de propagation de flammes, où la vitesse de la flamme est donnée en fonction de la courbure moyenne locale du front de flamme. Cette formulation est à la base de la méthode de level set, aujourd’hui utilisée dans de nombreuses applications de physiques, dynamique des fluides, graphiques, visualisation, traitement d’images, vision par ordinateur, contrôle, etc. [92, 107].

2.3.1 Généralités

À la différence de la représentation paramétrique (explicite) où le contour est représenté par l’ensemble des points qui l’établissent, la représentation implicite décrit le contour par

2.3. Méthode de Level Set 37

une fonction implicite. Celle-ci conduit à une représentation qui est indépendante de la paramétrisation du contour.

Par exemple, supposons que l’axe réel R soit divisé en trois parties par les points −x0 et x0 (voir F i g u r e 2.4). On peut définir chaque partie par deux sous-domaines :

Ω− =] − x0, x0[le domaine intérieur, et Ω+ =] −∞, −x0[S ]x0,∞[ le domaine extérieur.

Le bord entre les deux régions est représenté par l’ensemble des points ∂Ω ={−x0, x0}.

Celui-ci représente l’interface Γ entre les deux régions décrites par une représentation explicite. Dans une représentation implicite, l’interface est définie par la ligne de niveau zéro d’une fonction φ(x).

−x0 x0

Ω−

Ω+

Ω+

φ =|x| − 1

F i g u r e 2.4 – Exemple d’une fonction implicite.

La fonction φ(x), appellée fonction level set, est définie par une fonction de distance signée

(2.22) |φ(x)| = dr(x)

La fonction de distance signée représente la distance entre le point x et l’interface Γ , et le signe est déterminé afin qu’il soit négatif à l’intérieur et positif l’extérieur. La fonction dr(x), x ∈Rna les propriétés suivantes :

dr(x) > 0∀ x ∈ Ω+ (2.23a) dr(x) < 0∀ x ∈ Ω− (2.23b) dr(x) = 0∀ x ∈ ∂Ω (2.23c) |∇dr(x)| = 1 (2.23d)

Alors, on peut définir la méthode de level set [93], telle qu’une fonction implicite φ(x, t) dynamique, qui se déplace dans l’espace Rn en fonction du temps t. Ainsi, l’interface peut être récupérée à n’importe quel instant de temps t par le positionnement au niveau zéro de la fonction implicite :

38 Chapitre 2. Détection des contours

Le mouvement de la fonction implicite φ(x, t) vers l’interface Γ peut être décrit par l’équation de mouvement d’Euler-Lagrange :

(2.25) ∂φ

∂t +∇φ(x, t) · ~V(x) = 0

L’équation (2.25) est connue aussi sous le terme d’équation level set ou level set equation [92]. Le terme ~V(x) = ∂x

∂t représente le champ de vitesse qui permet l’évolution de l’interface φ(x, t) = 0 dans l’espace (voir F i g u r e 2.5).

-20 -15-10 -5

0

5 10

15 20-20-15-10

-50

510

1520

~

V

φ(x, t)

φ

0

(t = 2)

φ

0

(t = 1)

φ

0

(t = 0)

F i g u r e 2.5 – Fonction level set représentée dans l’espace 3D.

Normalement, le champ de vitesse est constitué d’une composante tangentielle et d’une composante normale

(2.26) V(x, t) = (V~ tT + VnN)

mais seule la composante normale est prise en compte. En effet, la composante normale est dirigée dans la même direction que le gradient de la fonction implicite ∇φ(x, t), et la contribution de la composante tangentielle est nulle [40] (VtT · ∇φ(x, t) = 0). Ainsi

l’équation de level set s’ecrit :

(2.27) ∂φ

2.3. Méthode de Level Set 39 avec N · ∇φ(x, t) = |∇φ(x, t)|∇φ(x, t) · ∇φ(x, t) (2.28) =|∇φ(x, t)| L’équation (2.25) devient : (2.29) ∂φ ∂t + Vn·|∇φ(x, t)| = 0

où Vnest la composante normale. Celle-ci est caractérisée par la courbure moyenne κ,

telle que Vn = −κ [92]. Ainsi, le mouvement d’une courbe, définie dans le cadre de la

formulation level set, et basée sur la courbure moyenne s’écrit :

(2.30) ∂φ

∂t = κ|∇φ(x, t)|

2.3.2 Modèle géométrique par level set

À partir de l’équation (2.30) Caselles et al. [18] ont développé un modèle géométrique de contour actif basé sur la méthode de level set. L’évolution de la courbe est décrite par la fonction de level set φ, {x ∈ R2 : φ(x, t) = k}, k ∈ R, qui varie suivant la direction

normale et avec une vitesse dépendante de la courbure moyenne. En décrivant la courbure moyenne κ dans l’équation (2.7), en fonction de φ, l’équation de level set s’écrit :

(2.31) ∂φ

∂t =|∇φ| ∇ ·  ∇φ

|∇φ| 

En outre dans [18] un terme de force constante υ est introduit dans la direction normale au level set, ainsi qu’un terme multiplicatif g(x) afin d’arrêter le level set sur le contour désiré. Alors l’équation (2.31) se réécrit

(2.32) ∂φ ∂t = g(x)|∇φ|  ∇ · ∇φ |∇φ|+ υ  | {z } β

où, υ ∈R+, est une valeur constante.

Le terme β fait en sorte que le déplacement du level set φ soit proportionnel à la courbure moyenne. Le terme υ, appelé force de ballon [27], permet d’augmenter significa- tivement la vitesse de convergence vers la solution en régime permanent, et la détection des objets non convexes.

La fonction g(x), qui satisfait les propriétés décrites en (2.19), est définie par :

(2.33) g(x) = 1

1 +|∇Gσ∗ I|2

où Gσ∗ I est la convolution de l’image avec un noyau gaussien, afin de réduire les effets

40 Chapitre 2. Détection des contours

Le terme g(x) permet de contrôler la vitesse de mouvement de φ. Lorsque, φ se rapproche des bords de l’objet, la valeur de|∇Gσ∗ I|2 est très grande et donc g(x) tend

vers zéro. Ceci représente une condition stationnaire, ∂φ∂t = 0, pour laquelle le level set s’arrête.

Cependant, la condition g(x) = 0 ne se vérifie que dans le cas d’une détection idéale des bords. Ainsi, l’équation (2.32) n’est pas appropriée à la détection de bords caractérisés par une haute variation du gradient. Dans le travail de Caselles et al. [19], un nouveau terme du gradient est pris en compte de telle sorte que l’équation (2.32) devient :

∂φ ∂t =|∇φ| ∇ ·  g(x) ∇φ |∇φ|  + υ g(x)|∇φ| (2.34) = g(x)|∇φ| (κ + υ) | {z } β + ∇φ · ∇g(x) | {z } nouveau terme (2.35)

La figure (Figure 2.6) montre le rôle que joue le terme ∇g(x) dans le cas 1D. Comme on peut observer, les directions des gradients pointent vers l’intérieur des vallées de la fonction g(x). Tout d’abord, cette force permet de propager la courbe vers le bord, mais elle maintient également la courbe en position stable.

Comme il est montré dans [19], l’équation (2.34) représente la solution au problème (2.21) dans le cadre d’une formulation par level set. Le contour est obtenu par le niveau zéro de la fonction level set, φ(t = 0). Bien que le modèle obtenu en (2.34) ne dépende pas de la paramétrisation du contour, une question importante reste encore : le choix de la fonction d’arrêt g(x). Celle-ci étant basée sur le gradient, elle souffre des mêmes problèmes que les opérateurs de détection de bords. Pour améliorer la détection des bords, différentes solutions ont été proposées : par exemple les travaux de [96, 97, 45] proposent des opérateurs de détection plus performants qui utilisent des filtres anisotropes.

La méthode de segmentation présentée ci-dessus est basée sur l’intensité du gradient de l’image, et est donc sujette aux problèmes des régions à faible contraste. Cependant, des approches différentes ont été utilisées dans la segmentation d’image comme par exemple les méthodes basées sur les régions qui s’appuient sur la fonctionnelle de Mumford-Shah [86, 22]. Nous abordons cette méthode dans la section suivante.