L'objet de l'article que nous commentons est de décrire un filtre détecteur de contours. Le principe général, comme pour tout détecteur de contour, est de repérer la présence de fronts de niveaux de gris en repérant des extrema de gradient ou un passage par zéro du Laplacien.
L'originalité de l'approche développée par S. Sarkar er K.L. Boyer consiste à réaliser un filtre récursif dont la réponse impulsionnelle s'approche de la réponse idéale d'un filtre détecteur de contours.
Pour ce faire, un certain nombre de critères d'optimalité sont présentés. Le problème d'optimisation est ensuite transformé en un problème variationnel, dont l'équation différentielle de stationnarité fournit un faisceau de réponses impulsionnelles idéales. Celles-ci sont étudiées, puis approchées par des exponentiel-polynomes à deux paramètres, dont l'interpretation en tant que réponse impulsionnelle de filtres recursifs est immédiate.
Pour bien poser le problème il convient de défnir les critères d'optimalité que l'on cherche a maximiser. Précisons tout d'abord les notations employées :
2.1 Réponse
On souhaiterait tout d'abord que la réponse de notre filtre soit le moins ambigüe possible et qu'elle se repère par un passage par zéro avec une pente forte, malgrès le bruit. On introduit ainsi un premier critère : le "Slope Ratio" :
2.2 Localisation
En présence de bruit, on cherche également à définir un critère exprimant la robustesse de la localisation du contour. On démontre que le critère suivant convient :
2.3 Fausses Alarmes et Détections manquées
Un troisième critère est présenté, mesurant le nombre de fausses alarmes et détections manquées. Il s'agit tout simplement d'une évaluation de la distance moyenne entre deux fausses détections (problème qui s'apparente à une marche au hasard), renormalisée par la variance de la réponse impulsionnelle. Le Multiple Response Criterion s'obtient ainsi :
3. Résolution
3.1 Adimensionnalisation du prolème
Maintenant que le problème a été exprimé dans toute sa généralité, il convient de le simplifier. On se restreint pour commencer à des contours en forme de marche d'escalier (fonction de Heaviside).
Des deux premiers critères, on peut obtenir des critères indépendants des échelles des amplitudes relatives des contours et du bruit. En multipliant ces deux critères adimensionnels l'un par l'autre, on obtient un critère invariant par changement d'échelle spatiale dont la monotonie dans les deux critères est assurée.
Le problème consiste maintenant à trouver une fonction f(x) maximisant le critère sigma.lambda, sous contrainte de MRC fixé. Les auteurs résolvent le problème par une méthode variationnelle.
3.2 Résolution de problème varitionnel
Le problème (bien posé) s'exprime alors de la façon suivante :
Trouver une fonction f(x) qui minimise
Sous les contraintes
| Normalisation | Paramètre fixant le MRC | Détection en zéro |
|
|
|
Nous ne nous étendons pas sur la résolution de ce problème. On introduit un Lagrangien prenant en compte les contraintes via des multiplicateurs de Lagrange. On cherche a minimiser son intégrale.
On cherche une solution stationnaire pour notre problème, on obtient son équation d'Euler, qui nous fournit l'équation différentielle suivante :
Ou les lambda_i sont les multiplicateurs de Lagrange associés aux trois contraintes.
La solution est fonction des lambda i et de la condition initiale f(0). Quelques calculs techniques issus du sens donné aux multiplicateurs permettent de se restreindre aux domaines suivants pour les paramètres :
Les auteurs décrivent ensuite un processus de résolution itératif de l'équation permettant d'obtenir la fonction maximisant sigma lambda pour un MRC donné.
3.3 Résultats théoriques
Le Graphique ci dessous est révélateur de la forme de la réponse impulsionnelle obtenue.

Notons qu'avec l'augmentation du MRC, celle-ci devient davantage resserée autour de 0 et ses creux latéraux (nécessaires à l'obtention de ce qui est en gros une dérivée seconde) sont plus accentués. C'est assez logique : on cherche à réduire le taux d'erreur, il faut donc être davantage précis ... au risque de devenir plus sensible au bruit.
3.4 Comparaisons avec d'autres filtres
Les auteurs comparent leur filtre avec un filtre DOG (Derivative of a Gaussian)
A MRC fixé (environ 1.9), le DOG donne un sigma lambda de 0.47 et le filtre optimal 0.91, ce qui laisse espérer de meilleurs résultats.
4. Obtention des filtres récursifs
4.1 Obtention des coefficients
Nous disposons maintenant presque d'une solution opérationnelle. Il nous reste a remarquer que, pour des MRC compris entre 1.5 et 2.5, la réponse impulsionnelle idéale est très bien approchée par un élément de la famille a deux paramètres :
Les fonction sont d'intégrales nulle et s'interprête immédiatement comme des réponses impulsionnelles de filtres récursifs.
On peut citer ci dessous les valeurs des coefficients du filtre en fonction des paramètres alpha et beta :
| Alpha | Beta | ||
| alpha0 | beta0 | ||
| alpha1 | beta1 | ||
| alpha2 | beta2 |
Correspondant au filtre récursif suivant
4.2 Implémentation
Nous nous sommes largement inspiré du code fournit par M. Boyer pour l'implémentation de ce filtre. L'algorithme effectue les étapes suivantes :
Construction du filtre recursif dérivateur mono directionnnel décrit ci-dessus à partir des coefficients alpha et beta.
Construction d'un filtre gaussien moyenneur orthogonal au filtre derivateur
Application du filtre à l'image pour des balayages video et anti-video, afin d'obtenir les images de gradient en x et en y.
Construction de l'image du carre du gradient
Construction des images du gradient du carre du gradient
Construction de l'image du gradient du (carre) du gradient, pris dans la direction gradient
Cette image est seuillee pour produire l'image des gradients
Il est ensuite procede à un filtrage un peu particulier qui vise a éliminer les controus fantomes (cf Application). Ces contours sont ceux ou les dérivées première et troisième sont de même signe