Patrick Labatut
(
)
Étude d'article réalisée dans le cadre du cours :
Traitement des Images (DEA MVA 2004-2005).
La suppression du bruit est un des pré-traitements essentiels en vision par ordinateur : il s'agit d'éliminer ce qui est du aux aléas des mesures tout en essayant de ne pas altérer l'information utile contenue dans l'image. Cette opération est fondamentale pour assurer la robustesse des techniques de vision de haut niveau qui requièrent, pour la plupart, l'estimation de dérivées spatiales directement à partir des niveaux de gris des pixels de l'image.
Nous nous limiterons dans la suite de cette étude à la suppression du bruit additif (gaussien ou impulsionnel) : le bruit multiplicatif fait l'objet de méthodes spécifiques.
Les filtres linéaires (dont les plus utilisés en pratique sont le filtre moyenne et le filtre gaussien, en général sur de petites fenêtres de taille 3x3 ou 5x5) ne sont pas très bons et ne permettent d'éliminer que le bruit gaussien additif et pas le bruit impulsionnel. De plus, ils émoussent les contours et font disparaître les lignes trop fines ou les coins.
Aussi, on préfère utiliser le filtre médian qui jouit ainsi d'une bonne réputation puisqu'il arrive à combiner à la fois une suppression efficace du bruit impulsionnel et la conservation des détails suffisamment importants. Ce filtre fait partie de ce que l'on appelle la classe des filtres de rang : la sortie de ce filtre est basée sur un tri des échantillons observés au voisinage de celui dont on détermine la réponse. Les filtres de rang sont généralement robustes, car insensibles aux valeurs extrêmes en entrée et ils ont la propriété intéressante de ne pas créer de valeur qui n'existe pas en entrée.
Cependant, dans le cas de lignes fines ou de coins (particulièrement utilisés en appariement en stéréo-vision), le filtre médian est trop sévère et élimine tout ou partie de ces détails entre autres parce que l'analyse qu'il effectue ne respecte pas les relations de voisinage entre ces éléments.
Nous allons donc étudier le filtre médian relâché, qui est une légère évolution du filtre médian simple, présenté dans les articles [1] et [2] et dont le but est d'avoir une tolérance plus importante envers les détails.
Dans cette section, nous rappelons la définition du filtre médian et présentons le filtre médian relâché (les notations sont les mêmes que dans les articles de référence [1] et [2]) ainsi que le filtre médian pondéré centré.
On considère une suite d'échantillons (Xi)i∈Zd, et une fenêtre glissante W. Soit Wi la fenêtre centrée en un échantillon Xi et contenant 2N+1 échantillons : Wi={Xi+r,r∈W}.
Exemples :


Soit alors ([Wi]r)r∈W la suite ordonnée des échantillons de la fenêtre Wi : [Wi]1≤...≤[Wi]2≤...≤[Wi]2N+1. On pose m=N+1.
La sortie du filtre médian simple (Simple Median abrégé SM dans la suite) au point Xi est : Yi=SM(Wi)=med(Wi)=[Wi]m.
Soit maintenant l et u deux bornes (1≤l≤m≤u≤2N+1) qui définissent ainsi une sous-suite de la suite ([Wi]r)r∈W, telle que si Xi appartient à cette sous-suite alors il est n'est pas modifié par le filtre médian relâché. Ces deux paramètres autorisent un compromis entre suppression du bruit et conservation des détails.
La sortie du filtre médian relâché (Relaxed Median abrégé RM dans la suite) au point Xi est : Yi=RMl,u(Wi)=Xi si Xi∈[[Wi]l,[Wi]u] et Yi=RMl,u(Wi)=[Wi]m=SM(Wi) sinon.
On remarque que pour certaines valeurs particulières de u et l, on obtient des filtres remarquables :
La sortie du filtre médian pondéré centré (Center Weighted Median abrégé CWM dans la suite) au point Xi est : Yi=CWM2K+1(Wi)=med(Wi•{Xi}•...•{Xi})=SM(Wi•{Xi}•...•{Xi}) où • désigne la concaténation de listes (suites finies) et 2K concaténations sont effectuées (il y a 2K+1 exemplaires de Xi dans la liste dont on prend l'élément médian).
RM préserve mieux les contours que SM.
RM préserve bien les lignes en présence de bruit blanc.
On fait l'hypothèse suivante de symétrie sur les bornes u et l : u=2N+2-l (u et l sont symétriques par rapport à la position médiane m).
La sortie de RM est invariante par translation et homothétie de l'entrée : ∀ s,t ∈ ℜ, RM(sWi+t)=sRM(Wi)+t.
Les propriétés suivantes permettent de comprendre quelles structures sont conservées par le filtre RM. On appelle signal « racine », un signal qui n'est pas modifié par filtrage.
Un signal est racine de RMl,2N+2-l si et seulement si, pour toute position de la fenêtre glissante, il existe au moins l échantillons ayant la même valeur que l'échantillon central.
Dans le cas du filtre médian, on sait que les signaux racines sont les voisinages constants (de longueur minimale N+1) et les contours (au sens de régions monotones entre deux voisinages constants de valeurs différentes).
La longueur minimal d'un voisinage constant pour RMl,2N+2-l est l.
On remarque que lorsque l décroît, la longueur minimale des voisinages constants décroît également, et donc des détails plus fins peuvent être conservés.
Les racines de RMl,2N+2-l sont racines de RMl',2N+2-l' pour tout l≥l'. Autrement dit, en notant Rl l'ensemble des racines de RMl,2N+2-l et S l'ensemble de toux les signaux : ...⊆Rl⊆Rl-1⊆...⊆S.
Le filtre médian relâché et le filtre médian pondéré centré ont été implémentés sous la forme de modules MegaWave2 pour permettre de manipuler aisément des images. D'autres modules auxiliaires ont aussi été écrits pour faciliter l'exploitation des images obtenues et l'interprétation des résultats.
Nous avons comparé les performances en débruitage du filtre médian simple (SM), du filtre médian relâché (RM) et du filtre médian pondéré centré (CWM) avec les paramètres suivants :
L'efficacité du filtrage est mesurée par le rapport des distances euclidiennes entre l'image bruitée filtrée et l'image originale d'une part et l'image bruitée et l'image originale d'autre part. Ce rapport est appelé moyenne normalisée de l'erreur au carré (Normalized Mean Square Error ou NMSE); il est ≥ 1 lorsque le filtrage a permis de se rapprocher de l'image originale au sens de la distance euclidienne. Ainsi si S désigne l'image originale, X l'image bruitée et Y l'image bruitée filtrée :
Les images synthétiques utilisées sont les suivantes :
L'exemple suivant permet de vérifier que les filtres se comportent comme prévu : ils éliminent facilement le bruit impulsif et par contre ne sont pas très efficaces contre le bruit gaussien. Visuellement les résultats des différents filtres sont comparables.
image originale (512x512)
image bruitée (bruit impulsionnel de densité d=10%)
image bruitée filtrée (SM 5x5)
image bruitée filtrée (RM12,14 5x5)
image bruitée filtrée (CWM3 5x5)
image bruitée (bruit gaussien de déviation standard σ=20)
image bruitée filtrée (SM 5x5)
image bruitée filtrée (RM12,14 5x5)
image bruitée filtrée (CWM3 5x5)
Dans ce deuxième exemple, on constate la supériorité de RM avec des paramètres bien choisis pour la conservation des détails fins : le bloc 4 de droite de l'image initiale se transforme en rectangle presque uniforme lorsqu'il est filtré par SM alors qu'avec RM il est encore possible de distinger clairement 3 segments horizontaux et verticaux. Enfin, CWM est à mi-chemin entre les deux puisqu'il reste possible de distinguer 3 segments horizontaux et verticaux mais ceux-ci ont commencé à fusionner.
image originale (256x256)
image filtrée (SM 5x5)
image filtrée (RM10,16 5x5)
image filtrée (CWM5 5x5)
Nous avons regroupé ici les moyennes de la NMSE sur les deux images synthétiques, pour différents réglages des filtres. On constate bien que les filtres ont un comportement analogue : ils sont décevants face au bruit gaussien et excellents pour le bruit impulsionnel avec le classement SM≤RM≤CWM.
| filtre (fenêtre) | gaussien (σ) | impulsionnel (d) | |||||
|---|---|---|---|---|---|---|---|
| 15 | 20 | 25 | 10% | 20% | 30% | ||
| SM | 3x3 | 0.5425810 | 0.3405870 | 0.2437620 | 0.0356110 | 0.0278720 | 0.0384251 |
| RM4,6 | 3x3 | 0.4769250 | 0.3170470 | 0.2335200 | 0.0335183 | 0.0278186 | 0.0391969 |
| RM3,7 | 3x3 | 0.3773710 | 0.2662700 | 0.2122870 | 0.0321824 | 0.0416147 | 0.0619325 |
| CWM3 | 3x3 | 0.3372030 | 0.2349680 | 0.1835550 | 0.0288263 | 0.0327181 | 0.0537714 |
| SM | 5x5 | 1.3305800 | 0.7578130 | 0.5006020 | 0.0809747 | 0.0439601 | 0.0353378 |
| RM12,14 | 5x5 | 1.3156400 | 0.7523660 | 0.4963390 | 0.0797212 | 0.0427297 | 0.0348045 |
| RM11,15 | 5x5 | 1.3035700 | 0.7468660 | 0.4959120 | 0.0792875 | 0.0411022 | 0.0335655 |
| RM10,16 | 5x5 | 1.2603000 | 0.7243900 | 0.4813470 | 0.0769085 | 0.0401380 | 0.0330367 |
| CWM3 | 5x5 | 1.0170100 | 0.5872090 | 0.3954290 | 0.0665592 | 0.0349049 | 0.0297042 |
| CWM5 | 5x5 | 0.9098750 | 0.5239890 | 0.3538110 | 0.0576801 | 0.0303343 | 0.0286806 |
Les images réelles utilisées sont les suivantes:
Cet exemple sur une image réelle permet de montrer les difficultés rencontrées face au réglage des paramètres . Le filtre RM conserve le mieux le motif en escalier entre la toiture de droite et la bâtisse, alors que le filtre SM le transforme en vaguelettes. Le filtre CWM parvient également à ne pas trop détériorer ces détails mais une analyse plus approfondie montre qu'il est moins bon que RM. Par contre, ces deux filtres font apparaître d'importants artefacts dans le ciel alors que le filtre effectue presque parfaitement son travail de suppression du bruit : la conservation des détails implique une perte de la qualité de la suppression du bruit.
image originale (256x256)
image bruitée (bruit impulsionnel de densité d=10%)
image filtrée (SM 3x3)
image bruitée filtrée (RM3,7 3x3)
image bruitée filtrée (CWM3 3x3)
À nouveau, on regroupe dans un tableau les résultats de NMSE pour plusieurs paramètres des filtres : le classement établi sur les images synthétiques n'est plus vraiment respecté, on constate seulement que RM peut être rendu meilleur que SM en suppression du bruit pour un bon choix de paramètres et que CWM est assez souvent très légèrement meilleur que SM.
| filtre (fenêtre) | gaussien (σ) | impulsionnel (d) | |||||
|---|---|---|---|---|---|---|---|
| 15 | 20 | 25 | 10% | 20% | 30% | ||
| SM | 3x3 | 0.0924191 | 0.0660461 | 0.0537103 | 0.0207873 | 0.0133615 | 0.0139090 |
| RM4,6 | 3x3 | 0.0938630 | 0.0685944 | 0.0566740 | 0.0192259 | 0.0129928 | 0.0147151 |
| RM3,7 | 3x3 | 0.0990236 | 0.0782932 | 0.0682388 | 0.0175680 | 0.0163661 | 0.0226740 |
| CWM3 | 3x3 | 0.0777088 | 0.0633544 | 0.0565274 | 0.0135314 | 0.0123988 | 0.0177747 |
| SM | 5x5 | 0.1259790 | 0.0773626 | 0.0546564 | 0.0347986 | 0.0184012 | 0.0136698 |
| RM12,14 | 5x5 | 0.1260440 | 0.0774750 | 0.0548055 | 0.0344945 | 0.0182481 | 0.0135851 |
| RM11,15 | 5x5 | 0.1262370 | 0.0779649 | 0.0553622 | 0.0339218 | 0.0178939 | 0.0133892 |
| RM10,16 | 5x5 | 0.1262530 | 0.0787450 | 0.0565035 | 0.0330836 | 0.0174180 | 0.0131312 |
| CWM3 | 5x5 | 0.1065120 | 0.0672765 | 0.0488298 | 0.0281264 | 0.0151737 | 0.0117241 |
| CWM5 | 5x5 | 0.0938279 | 0.0624122 | 0.0474645 | 0.0231363 | 0.0130885 | 0.0108974 |
Comme nous l'avons déjà rappelé en introduction, la suppression du bruit n'est qu'un pré-traitement avant l'utilisation de techniques de vision de haut niveau. Nous donnons ainsi deux applications : les détections de contours et de coins dans une image (très utilisées respectivement en segmentation et en stéréo-vision).
L'exemple suivant ne permet pas de trancher favorablement en faveur d'un des filtres : SM fait perdre certains contours fins sur le nez, entre les yeux et les narines mais les deux autres filtres rajoutent des artefacts qui entraînent la détection de petits contours qui n'existent pas.
image originale (512x512)
image bruitée (bruit impulsionnel de densité d=20%)
contours de l'image originale
contours de l'image bruitée
contours de l'image bruitée filtrée (SM 3x3)
contours de l'image bruitée filtrée (RM3,7 3x3)
contours de l'image bruitée filtrée (CWM3 3x3)
Les coins de Harris permettent de démarrer le processus d'appariement en stéréo-vision, processus qui trouve des correspondances entre deux images. Il est très important que les coins utilisés soient de bonne qualité, pour assurer une reconstruction correcte. Ici, on remarque au niveau de la fenêtre de droite, que le filtre SM fait apparaître de nombreux faux coins, alors que le filtre RM restitue presque les coins trouvés sur l'image originale. Le filtre CWM engendre de trop nombreux coins en particulier des coins souvent très proches les uns des autres mais aussi de vrais coins, ce qui est vraiment gênant pour l'application considérée ultérieurement. Ainsi, même si des artefacts apparaissent avec RM (dus à l'obligation d'être plus tolérant au bruit pour conserver les détails fins), ils ne se révèlent pas aussi génants que ceux créés par CWM ou, dans une moindre mesure, par SM.
image originale (256x256)
image bruitée (bruit impulsionnel de densité d=10%)
coins de l'image originale
coins de l'image bruitée
coins de l'image bruitée filtrée (SM 3x3)
coins de l'image bruitée filtrée (RM3,7 3x3)
coins de l'image bruitée filtrée (CWM3 3x3)
Nous avons montré par l'exemple que les propriétés du filtre médian relâché avancées dans les articles de référence [1] et [2] sont effectivement vérifiées : ce filtre qui n'est en fin de compte qu'une légère modification du filtre médian simple permet de choisir un compromis entre suppression du bruit et conservation des détails.
Cependant, jouer sur les paramètres l et u de ce filtre s'avère délicat et parfois insuffisant : on retrouve alors certains des défauts du filtre médian simple. De plus, dans la plupart des cas, le filtre médian pondéré centré se montre aussi performant sinon plus.
L'apport de ce filtre est donc plus théorique que pratique, si l'on veut vraiment lutter contre les deux inconvénients du filtre médian et de ses variantes simples, on pourra s'orienter d'une part vers les filtres médians à plusieurs niveaux ([5]) qui utilisent des masques conserver des détails fins ou bien vers les nouveaux travaux de l'un des auteurs ([6]) qui combinent les filtres moyenne et médian relâché pour lutter efficacement contre le bruit blanc et conserver suffisamment de détails.
Le code source des filtres et scripts écrits pour cette étude d'article :
Pour des raisons de place, toutes les données originales ou générées à l'aide des filtres ne sont pas incluses (images au format TIFF compressées sans perte), mais peuvent être recréées à l'aide des scripts, des filtres et de l'environnement MegaWave2.