2.1 Fonctions à variation bornée
La variation totale mesure l'amplitude totale des oscillations d'un
signal. En traitement de l'image, elle dépend de la longueur des
lignes de niveaux (formule de la co-aire). La variation totale d'une
fonction f est ainsi définie par
Si f n'est pas différentiable, on considère cette dérivée au sens
général des distributions. On peut alors considérer la variation
totale d'une fonction discontinue. On dit que f est à variation
totale bornée si
La variation totale dans le cas d'un signal discretisé à la fréquence 1/T permet de mieux comprendre sa signification.
Soit le signal obtenu par un échantillonnage uniforme
de période T. La variation totale discrète se calcule par une différence
finie (semblable à une dérivée d'un signal continu):
où ( ) désigne les abscisses des extrema locaux de f . Le signal
discret sera alors à variation totale bornée si est
majorée par une constante indépendante de la résolution 1/T.
2.2 Un algorithme de minimisation de la
variation totale
L'objectif est de minimiser la fonctionnelle suivante:
où
représente le terme d'attache aux données comme dans la section
précédente. L'article de Fatemi Rudin Osher, propose une
mise en uvre
basée sur une descente de gradient. Le calcul du gradient du terme
de variation totale donne .
Pour une mise en uvre
numérique il faut disposer d'un schéma discret de l'algorithme.
Dans l'article originel, les auteurs établissent une approximation
de
par éléments finis.
Nous présentons dans ce document une variante de cet algorithme
proposée par Casas, Kunisch et Pola [1]. Ces derniers proposent
une analyse exacte de l'opérateur en introduisant l'ensemble des
fonctions discrètes. Toutefois on notera que les deux schémas
aboutissent finalement à des résultats identiques
Référence
[1] Casas, Kunisch, Pola, ``Regularization by Functions of Bounded Variation
and Applications to Image Enhancement'', Universidad de Cantabria,
num 5-1996, 1996
2.3 Vers un algorithme
numérique
2.3.1 Images sur un domaine discret
Une image continue est une correspondance .
Premièrement, on décompose le domaine
en sous-domaines. On pose
Cela définit un plus petit pavé
qui contient .
Ensuite chaque intervalle
est sous-divisé en
intervalles, partitionant ainsi
en
sous-pavés ,
c'est à dire en
pixels lorsqu'il s'agit d'une image:
Maintenant on peut encore définir une partition de
en posant
Enfin on associe à cette partition l'espace des fonctions constantes
par morceaux sur les pixels .
C'est l'ensemble
2.3.2 Expression de la variation totale
Le premier résultat important est l'introduction des ``bords discrets''
dans l'image, si bien que l'on a la propriété en dimension
N=2
 |
(2) |
Le calcul de la variation totale d'une image rectangulaire pxn
peut se faire en faisant intervenir un vecteur de dimension
qui se calcule à l'aide d'une application linéaire
représentée par une matrice A. Les éléments
du vecteur
sont en fait les différences
- on calcule ainsi des différences de pixels sur les bords horizontaux
et verticaux. La norme
du vecteur
donne le terme de régularisation souhaité.
2.3.3 Note sur la mise en uvre
du calcul
Explicitons la forme de la matrice A. On suppose que l'image comporte p
lignes et n colonnes et qu'elle est représentée par un vecteur
de dimension nxp qui contient les valeurs des pixels de l'image lorsqu'elle
est balayée de la gauche vers la droite et de haut en bas.

où
est la matrice identité p x p,
la matrice identité n x n,
représente le produit de Kronecker,
est une matrice (n-1)xn
et
est une matrice (p-1) x p, définie de manière identique à .
Coder A sous forme d'une matrice ordinaire, c'est-à-dire indexée
par ses lignes et ses colonnes conduirait à une occupation mémoire
inutile. En effet la dimension de A est très grande, typiquement
de l'ordre de .
Mais il suffit de remarquer que sur une ligne de cette matrice, il n'y
a que deux éléments non nuls: (+1) et (-1). La matrice A
peut donc être codée comme un tableau de lignes contenant
la position de ces deux éléments.
2.4 Méthode de descente de gradient
adoptée
On a vu plus haut qu'il fallait prendre le gradient du terme de régularisation.
D'après les résultats précédents, on a en fait:
On peut vérifier que le calcul du gradient de
donne
 |
(3) |
Ceci aboutit donc à un schéma simple de l'algorithme
de descente du gradient.
|