• Aucun résultat trouvé

Nous insérons la palette de couleurs dans les bits de poids faibles (LSB : Least Significant Bit) des pixels de l’image d’index (l’image est de taille N pixels). La palette de couleurs C, c’est- à-dire le message à insérer, est représentée par un vecteur binaire m composé de |m| bits2. Le

payload d’insertion relatif, en bit/pixel, est donc α = |m|/N. Par conséquent, le payload α dépend uniquement de la taille N de l’image d’index.

L’image d’index est donc divisée en régions de taille b1/αc pixels. Un Générateur de Nombre Pseudo-Aléatoire (GNPA) choisit aléatoirement, pour chaque région, un seul pixel i comme site d’insertion. Cette procédure de partitionnement garantit une répartition homogène du message sur toute l’image d’index. Le LSB du pixel i est alors modifié en fonction du bit m[j], j ∈ {1, ..., |m|} à insérer3:

Indexm(i) = Index(i)− Index(i) mod 2 + m[j],

avec Indexm(i)la valeur du pixel i après insertion.

Cette technique d’insertion de la palette de couleurs garantit que chaque pixel marqué est au pire modifié d’un niveau de gris. Ainsi, le pixel couleur reconstruit est toujours proche de sa couleur originale. En effet, le troisième terme de l’équation 8.1 impose que les couples de couleur soient faiblement éloignés.

8.3 Résultats

Nous avons appliqué la méthode sur des images couleur de taille 256 ×256 pixels. Pour toutes les expériences, λ1 = 1, λ2 = 0.01×N/(K+1) et γ = 2 (voir équation 8.1). Les résultats obtenus

montrent que l’approche est efficace quel que soit le type d’image (voir PSNR du tableau 8.1). Les principales étapes de notre approche sont commentées ci-dessous sur l’image baboon4.

Après avoir minimisé l’équation 8.1 sur l’image baboon avec K = 256 couleurs nous obte- nons une image d’index (figure 8.1.b) et sa palette de couleurs (figure 8.1.c). L’image de luminance est donnée figure 8.1.a. L’image d’index et l’image de luminance sont visuellement similaires et la valeur de PSNR de 27.90 dB confirme ce sentiment. Notons que l’image d’index est bien

2. |m| = 256 couleurs × 3 composantes × 8 bits = 6144 bits.

3. La formule est donnée pour des valeurs d’index appartenant à [0, K − 1].

a) Luminance b) Image d’index c) Palette

d) Image couleur e) Reconstruction f) Index de[Chaumont et al. 06]

FIGURE 8.1 – Quelques étapes de la sécurisation de la couleur par l’approche par modélisation floue.

meilleure que celle obtenue dans [Chaumont et al. 06, Chaumont et al. 13] et représentée figure 8.1.f. (PSNR = 16.32 dB).

Dans la méthode proposée dans [Chaumont et al. 06, Chaumont et al. 13], la première étape est une quantification vectorielle sur K = 256 couleurs. Une telle quantification tend à uniformi- ser la distribution des valeurs index ; l’histogramme de l’image d’index de [Chaumont et al. 06, Chaumont et al. 13] est relativement plat (voir « Histogramme image Index avec k-mean » de la figure 8.2). La similarité avec l’histogramme de luminances est donc faible. Dans la méthode que nous proposons ici, l’intervalle de niveaux de gris et la forme de l’histogramme de l’image d’index (figure 8.2) sont plus proches de l’histogramme de luminances. On peut également remarquer sur l’histogramme d’index que de nombreuses valeurs d’index sont inutilisées ce qui se traduit par la présence de couleurs inutiles dans la palette de couleurs (figure 8.1.c). Notons également sur la palette de couleurs de la figure 8.1.c que les couples de couleurs sont colorimétriquement proches grâce au troisième terme de l’équation 8.1. Il faut enfin préciser que le coût de calcul nécessaire à la minimisation de l’équation 8.1 est très élevé. Dans l’article [Chaumont et al. 07d] nous propo- sons de réduire ce coût en utilisant une version sous-échantillonnée de l’image. Le temps de calcul est effectivement moindre, mais en contrepartie les PSNRs des images sont plus faibles.

FIGURE8.2 – Histogrammes.

La longueur du message inséré (la palette de couleurs) est de |m| = 6144 bits ce qui donne un payload d’insertion pour une image de 256 × 256 pixels, de α = 6144/(256 × 256) = 0.093 bit/pixel. L’image d’index est alors partitionnée en blocs de 10 pixels. Dans chaque bloc, un bit de la palette de couleurs est inséré à la position choisie par le GNPA comme expliqué dans la section 8.2. La sécurité est obtenue par l’utilisation d’une clé secrète de 128 bits comme graine pour le GNPA.

La figure 8.1.e représente l’image couleur reconstruite à partir de l’image d’index marquée. Cette image est visuellement proche de l’image couleur originale même si la valeur de PSNR de 27.90 dB est faible. Notons que la dégradation de l’image couleur quantifiée due à l’insertion de données cachées (dans l’image d’index) est faible car au pire une couleur est remplacée par une couleur colorimétriquement proche.

Les PSNRs sont donnés dans le tableau 8.1. Les images couleur reconstruites sont de qualité moyenne (plus de 27 dB), mais visuellement plaisantes. Par rapport à l’approche par substitution de [Campisi et al. 02] (voir le tableau 9.1 au chapitre suivant), la qualité des images couleur re- construites est parfois meilleure, parfois moins bonne. Par contre, l’image d’index est très proche de l’image de luminance. Nous verrons dans le chapitre suivant qu’en réduisant l’importance de la contrainte liée à la luminance, les images couleurs reconstruites sont de meilleure qualité.

Les PSNRs pour l’image d’index marqué sont supérieurs à 29 dB. Dans le cadre d’une applica- tion de sécurisation de la couleur par dissimulation dans une image en niveaux de gris, il peut être dommageable pour la sécurité que les images en niveaux de gris (c’est-à-dire les images d’index marquées) soient de bonne qualité. En effet, les images peuvent être « re-coloriées » de manière semi-automatique [Chaumont et al. 08b]. La colorisation peut être considérée comme une attaque indirecte dans le sens où il n’y a pas extraction de la palette de couleurs, mais simple estimation d’une palette menant à une image couleur agréable. Le chapitre suivant expose une solution rédui- sant énormément la qualité PSNR de l’image d’index marquée ce qui rend beaucoup plus difficile l’attaque par colorisation.

TABLE 8.1 – PSNR calculé entre l’image de luminance et l’image d’index marquée, et PSNR calculé entre l’image couleur originale (espace RGB) et l’image reconstruite (espace RGB) en utilisant l’image d’index marquée embarquant sa palette de couleurs.

images PSNRluminance

(originale, index−marqu´ee) PSNRcouleur(originale, reconstruite)

baboon 29.74 dB 27.90 dB airplane 35.95 dB 33.66 dB pepper 35.03 dB 31.68 dB house 35.40 dB 35.45 dB barbara 34.86 dB 30.74 dB

8.4 Conclusion

Dans ce chapitre, nous proposons une méthode pour insérer de manière sécurisée dans une image en niveaux de gris ses informations couleur. Cette méthode repose sur la décomposition d’une image couleur en une image d’index et une palette de couleurs. L’image d’index joue le rôle de l’image de luminance et la palette de couleurs est cachée dans l’image d’index. La mé- thode est composée de deux étapes majeures qui sont : la décomposition de l’image couleur (en une image d’index et une palette de couleurs) et l’insertion de données cachées. L’originalité de l’approche est de modéliser le problème avec une fonction énergétique et ensuite de la minimiser. Les résultats obtenus montrent une réelle amélioration en comparaison de [Chaumont et al. 06, Chaumont et al. 13]. La complexité de l’approche ainsi que sa faille de sécurité face à l’attaque par colorisation sont cependant problématiques. Le chapitre suivant propose une approche qui n’a pas ces inconvénients.

Annexe

Calcul des Pi,k

Sachant que les valeurs d’appartenance doivent appartenir à l’intervalle [0, 1] et que

∀i,PKk=1Pi,k = 1, nous exprimons cette contrainte supplémentaire en ré-écrivant l’équation 8.1 :

Emod= E + λ N X i=1 K X k=1 (1− Pi,k).

En annulant∂Emod

∂Pi,k nous pouvons exprimer Pi,k: Pi,k =

λ 2× (dist2(C(k), I(i)) + λ

1(Y(i)− k)2)

. (8.5)

Sachant que ∀i,PK

k=1Pi,k = 1, nous déduisons alors λ :

λ = PK 1

l=1 2×(dist2(C(l),I(i))+λ1

1(Y(i)−l)2 .

L’équation 8.4 est alors obtenue en substituant λ dans l’équation 8.5.

Calcul des C(k)

En annulant ∂E

∂C(k), nous pouvons exprimer C(k) par un système linéaire donné à l’équa-

tion 8.3 ; La matrice A et le vecteur B du système linéaire A.C = B sont donnés ci-dessous :

A =       

λ2+Pi=Ni=1 Pγi,1 −λ2 0 ...

−λ2 λ2+Pi=Ni=1 Pγi,2 0 ...

0 0 λ2+Pi=Ni=1 Pγi,3 ...

0 0 −λ2 ... ... ... ... ...        , B =        Pi=N

i=1 Pγi,1I(i)

Pi=N i=1 P γ i,2I(i) ... Pi=N

i=1 Pγi,K−1I(i)

Pi=N i=1 P γ i,KI(i)        .

Chapitre 9

Une approche par heuristique étendue

au cas 512 couleurs

Résumé

Dans ce chapitre, nous proposons une méthode de dissimulation de la couleur dans une image en niveaux de gris reprennant le principe de réorganisation de palette [Chaumont et al. 07b] ainsi qu’une approche de tatouage réversible [Chaumont et al. 09a]. L’approche permet d’obtenir des images couleurs de grande qualité puisque lors de la quantification couleur nous utilisons une pa- lette de 512 couleurs au lieu des 256 couleurs de [Chaumont et al. 07b] et [Chaumont et al. 07c]. La méthode est composée de deux étapes : la décomposition de l’image couleur en image d’index et palette de couleurs, et la dissimulation de la palette de couleurs et d’un plan de bits.

9.1 Introduction

Dans le chapitre précédent, nous avons évoqué deux approches permettant de protéger les informations couleur d’une image en dissimulant la palette de couleurs dans l’image d’index. Dans [Chaumont et al. 07b] nous trions les couleurs de la palette afin d’obtenir une image d’index proche de l’image de luminance. La palette obtenue est telle que les couleurs consécutives sont proches. Dans [Chaumont et al. 07c] l’image d’index et la palette sont obtenues grâce à l’opti- misation d’une fonction modélisant le problème de la dissimulation de la palette dans une image d’index. Dans ces deux approches, la sécurité et la qualité de l’image couleur sont insuffisantes.

Dans ce chapitre nous proposons une solution qui améliore la qualité de l’image couleur et rend plus difficile l’attaque par colorisation [Chaumont et al. 08b]. Les points clés de l’approche sont :

– l’utilisation d’une palette de 512 couleurs ; les valeurs d’index appartiennent à {0, ..., 511} ; l’image d’index est donc codée sur 9 bits,

– la compression de la palette de couleurs et d’un plan de bits, – l’utilisation d’un algorithme de tatouage réversible à fort payload, – la dissimulation dans une image en niveaux de gris codée sur 8 bits.

Le schéma général d’insertion et d’extraction est donné à la figure 9.1. Les différentes étapes sont : la décomposition d’une image couleur dans une image d’index et une palette de couleurs (section 9.2.1 et 9.2.2), le codage de la palette de couleurs et d’un plan de bits (section 9.2.3), et le tatouage

FIGURE 9.1 – Schéma général de l’insertion et de l’extraction pour l’approche de dissimulation par palette de 512 couleurs.

de l’image 8 bits construite à partir de l’image d’index (section 9.3). Le message à dissimuler dans l’image en niveaux de gris 8 bits est composé de la palette de couleurs et d’un plan de bits. L’image tatouée peut alors être stockée sur un site web public. Le schéma d’extraction est illustré figure 9.1. Ce schéma est l’exact inverse du schéma d’insertion.

9.2 La décomposition de l’image