• Aucun résultat trouvé

Bien qu’ils ne soient pas spécifiquement conçus pour répondre à ce type de problématique, les al- gorithmes de constance couleur semblent adaptés à la restauration d’images sous-marines. Le système visuel humain est capable de percevoir une scène sans tenir compte des changements d’illumination grâce à un mécanisme que l’on nomme la constance couleur. Avec une certaine tolérance, celui-ci peut séparer la réflectance de l’illuminant du signal perçu. La constance couleur se définit comme la capacité à séparer la réflectance des objets de la composition spectrale de l’illuminant. Autrement dit, l’œil est capable de retrouver l’apparence chromatique d’un objet sans tenir compte de la couleur de la lumière. Ainsi, ces algorithmes, basés sur le principe de constance couleur, vont pouvoir compenser l’illumination bleutée et/ou verdâtre des images engendrée par l’intéraction de la lumière avec l’eau. Plusieurs méthodes de ce type existent. Nous allons en présenter ici deux algorithmes connus et performants.

2.2.1 Algorithme de Retinex

La théorie Retinex de Land [30], [12]

Les images projetées sur la rétine de l’oeil humain sont captées par deux types de cellules, les bâ- tonnets et les cônes. Ces dernières apportent l’information couleur dépendante de la longueur d’onde de la lumière perçue. Ces cellules effectuent différentes pondérations spatiales locales sur des informa- tions issues de petites zones de la rétine. De plus, il a été montré que la luminosité perçue par l’homme

2.2. Les algorithmes de constance couleur 19

était proportionnelle au logarithme de l’intensité. C’est ce comportement de l’oeil humain que la théorie de Land traduit en essayant de modéliser l’apparente constance des couleurs que réalise notre cerveau quelque soit la luminosité. Si l’on considère une cellule d’un cône de typeλ, la cellule rétinienne k + 1

génère un signal proportionnel au quotient de l’intensité reçue par cette cellule et celle reçue par la cellule voisinek, λ ∈ {l, m, s} : rkλ= log I λ k+1 Ikλ ! .

et pour les cellules d’un même cheminu :

ruλ= X k∈chemin log I λ k+1 Iλ k ! .

Pour chaque longueur d’onde fondamentale, on calcule la moyenne de la réflectance relative au point

k sur l’ensemble des chemins menant à la cellule k. Avec N le nombre de chemins, ce signal peut

s’écrire : rλ= 1 N N X u=1 rλu. Single-Scale Retinex (SSR)

Cet algorithme s’appuie directement sur la théorie de Land décrite précédemment. L’algorithme ajuste l’intensité des pixels avec celles de ses voisins. L’intensité des voisins est pondérée par une fonc- tion gaussienne d’encerclement.

F (x, y) = K.exp(x

2+ y2

σ2 ).

oùσ est un facteur d’échelle qui détermine l’amplitude de la gaussienne, x et y les coordonnées dans

le masque etK une constante de normalisation telle que : ZZ

F (x, y)dxdy = 1.

Le Single-Scale Retinex s’écrit comme suit où⊕ représente la convolution et i ∈ {R, G, B} le canal chromatique considéré :

Ri(x, y) = logIi(x, y) − log[F (x, y) ⊕ Ii(x, y)].

Constance couleur

L’intensité des pixels de l’image s’exprime comme le produit de la réflectance de la scène et l’illu- mination. Ainsi, nous pouvons écrire :

oùSi(x, y) est la distribution spatiale de l’illumination, ri(x, y) la distribution de la réflectance. La

convolution avec la fonction d’encerclementF fonctionne comme le calcul d’une moyenne pondérée du

voisinageSi(x, y)ri(x, y) et :

Ri(x, y) =

Si(x, y)ri(x, y)

Si(x, y)ri(x, y)

.

En général, l’illumination varie faiblement au niveau local, on considère alors :

Si(x, y) ≈ Si(x, y).

Par conséquent on obtient l’indépendance de la source d’illumination et :

Ri(x, y) =

ri(x, y)

ri(x, y)

.

Multi-Scale Retinex (MSR)

Les résultats fournis par l’algorithme de Single-Scale Retinex dépendent du facteur d’échelle utilisé. De petites valeurs deσ engendrent une compression de la gamme dynamique (par exemple rehaussement

des détails dans les zones d’ombre) et les images vont tendre à devenir grises, tandis que de plus fortes valeurs fournissent un meilleur rendu des couleurs. L’idée du Multi-Scale Retinex est d’effectuer l’algo- rithme de SSR à différentes échelles et de combiner les images résultantes en effectuant une moyenne pondérée, ce qui permet de faire un compromis entre compression dynamique et rendu des couleurs.

RM SRi= N

X

n=1

ωn.Rn,i.

ouωncorrespond au poids attribué à l’image résultante du nième Single-Scale Retinex. En pratique,

on prend généralement un poids uniformeωn= N1.

Restauration des couleurs

Il est nécessaire d’effectuer un post-traitement des données obtenues afin de pouvoir afficher l’image résultante de l’algorithme. Du fait du passage au logarithme et du calcul de la moyenne, les valeurs des trois canaux, assez éloignées au départ, se resserrent. D’autre part, ces valeurs peuvent être négatives. Il est nécessaire d’effectuer un recalage des valeurs. Une solution est d’introduire des poids relatifs aux trois composantes dépendant de l’intensité relative des couleurs de l’image originale.

Ii′(x, y) = I(x, y)/

3

X

k=1

Ii(x, y).

Plusieurs fonctions ont été testées. Cependant celle proposée par Jobson semble fournir les meilleurs résultats. Elle est définie par :

Ci(x, y) = β.log[α.Ii′(x, y)].

2.2. Les algorithmes de constance couleur 21

FIG. 2.2 – Correction par algorithme de Multi-Scale Retinex.

FIG. 2.3 – Schématique de l’algorithme ACE.

RM SRCRi(x, y) = Ci(x, y)RM SRi(x, y).

Pour finir, il suffit de recaler les valeurs sur chacun de ces canaux chromatiques dans le domaine approprié. La figure 2.2. illustre une correction par l’algorithme de Multi-Scale Retinex. Les couleurs des rochers et des poissons sont bien restituées et l’aspect bleuté de l’image est bien compensé. D’autres algorithmes de correction existent. On citera notamment l’algorithme ACE présenté dans [43] et comparé à l’algorithme de Retinex.

2.2.2 Algorithme automatique d’égalisation couleur ACE (Automatic Color Equaliza- tion)

Cet algorithme simule les processus de perception impliqués dans le système visuel humain. La méthode est basée sur la fusion de deux méthodes de constance couleur : le patch blanc (White Patch [WP]) et le monde gris (Gray World [GW]). Cet algorithme se décompose en deux étapes : la première étape consiste en un ajustement chromatique et spatial et la deuxième étape concerne la reproduction des couleurs comme le montre la figure 2.3.

c désigne le canal chromatique considéré. Icreprésente l’image initiale ,Rcle résultat de l’ajustement

chromatique et spatial etOcl’image résultante en sortie de l’algorithme.

Monde gris et patch blanc

Les algorithmes de constance couleur sont définis à partir d’hypothèses. L’une d’elles est l’hypothèse du monde gris (Gray World assumption). Celle-ci suppose que dans une image présentant des variations de couleurs suffisantes, la valeur moyenne de chacun des canaux RGB est proche d’un gris moyen. Cette

FIG. 2.4 – Ensemble de fonctionsr(.).

hypothèse est généralement vraie dans le cas d’images représentant des scènes réelles. Une seconde méthode est basée sur la théorie du patch blanc. Elle suppose que les valeurs maximales de chaque canaux représentent la réflectance maximale de l’illuminant comme celle causée par une réflexion spéculaire d’un objet qui était blanc à l’origine.

Ajustement chromatique et spatial

La procédure d’ajustement chromatique et spatial produit une image R dans laquelle l’ensemble

des pixels sont traités par rapport au contenu de l’image. Ce traitement repose sur deux paramètres : une fonctionr(.) qui influence le comportement du WP et le contraste de l’image, et une fonction d(.)

qui intègre le concept d’influence spatiale. Par conséquent, un changement de forme de ces fonctions influence l’effet global ou local de la méthode ACE. Chaque pixelp de l’image R est traité en considérant

séparément sur chacun des canaux chromatiquesc ∈ {R, G, B} tel que :

Rc(p) = X j∈I,j6=p rIc(p) − Ic(j)  d(p, j) , (2.23)

où la fonctiond(.) est une fonction de distance qui pondère la part de contribution locale ou globale et

la fonctionr(.) est une fonction qui tient compte de la luminosité relative des pixels. Les fonctions d(.)

etr(.) contrôlent l’influence relative des pixels en tenant compte de l’ajustement spatial de la luminosité

du canalc. Les auteurs précisent que la distance euclidienne donne les meilleurs résultats. La fonction r(.) agit comme un modificateur de contraste. Trois fonctions sont proposées : linéaire, saturation, et

sigmum. Celles-ci sont illustrées par la figure 2.4. La deuxième étape consiste à restituer et à réhausser les couleurs dans l’image de sortie.

Recalage des données dans l’espace couleur

La valeur de sortie dans la matrice intermédiaire R varie entre min et max, qui sont deux valeurs

réelles arbitraires dépendantes du contenu de l’image. Pour chacun des canaux, les données doivent être recalées dans l’intervalle[0..255] de l’image finale O en choissant des valeurs de références pour recaler

les valeurs. La méthode proposée décale linéairement les valeurs dansRcpar la formule suivante :