7.2 Un ´etat de l’art
7.3.3 Deuxi`eme algorithme de marquage propos´e : utilisation de l’algo-
L’algorithme pr´ec´edent fait intervenir deux transform´ees en ondelettes : la classique transform´ee en ondelettes orthogonale, et pour la d´etection des contours (et donc la
lo-Image attaqu´ee Echelle 2 Echelle 3 PSNR (db)
Image marqu´ee 100% 100% 27.77
cropping4 W150.jpg 89.1% 85.9%
cropping4 W350.jpg 92.2% 85.9%
cropping6 W150.jpg 79.7% 82.8%
dpr1 J100.jpg 59.4% 79.7% 22.62
medfilt2 J100.jpg 68.8% 93.8% 23.47
midpoint1 J100.jpg 60.9% 79.7% 21.33
gaussian1 J100.jpg 95.3% 95.3% 25.02
gaussian2 J100.jpg 93.8% 95.3% 25.02
hardthresh1 J100.jpg 75% 95.3% 24.14
jpegcompression1 J75.jpg 100% 100% 26.12
jpegcompression1 J50.jpg 98.4% 100% 24.56
jpegcompression1 J25.jpg 93.8% 100% 23.96
jpegcompression1 J15.jpg 67.2% 92.2% 23.22
jpegcompression1 J10.jpg 65.6% 84.4% 22.59
projective10 W150.jpg 68.8% 82.8% 20.97
projective7 W350.jpg 73.4% 79.7% 21.97
rowcol1 W350.jpg 81.3% 82.8%
softthresh1 J100.jpg 60.9% 84.3% 23.20
sampledownup2 J100.jpg 79.7% 85.9% 20.50
templateremove1 J100.jpg 81.3% 100% 24.78
trimmedmean1 J100.jpg 76.6% 95.3% 23.34
waveletcompression1 W350.jpg 100% 100% 26.05
waveletcompression1 W150.jpg 93.8% 98.4% 25.83
wiener1 J100.jpg 81.3% 100% 24.79
Fig. 7.10 – R´esultat de l’extraction d’une marque al´etoire 8×8 dans l’image de Lenna 128×128, avecR1 = 600,R2= 0.08,Cp = 30. 1`ere colonne : les images attaqu´ees (J indique une compression JPEG classique, le chiffre qui suit est le taux de compression : J10 indique que 10% des coefficients sont conserv´es. W indique une compression par seuillage des coefficients d’ondelettes, le chiffre qui suit est le nombre de coefficients gard´e). Deuxi`eme colonne : r´esultat quand on cache la marque dans les coefficients de la deuxi`eme ´echelle la plus fine (pourcentage de coefficients de la marque correctement extraits). Troisi`eme colonne : 3`eme ´echelle la plus fine. 4`eme colonne : PSNR de l’image attaqu´ee par rapport
`a l’image originale (en db).
calisation des points `a marquer), le d´etecteur de Canny multi-´echelles pr´esent´e aux cha-pitres IV et V. Or, on peut directement marquer les coefficients de la transform´ee en ondelettes continue de l’image obtenue par le d´etecteur de Canny, puis appliquer un des algorithmes d’inversion pr´esent´es au chapitre IV ; les points marqu´es, `a l’instar de l’algo-rithme pr´ec´edent, sont ceux des contours. Mais ici, nous allons mettre le premier point de la marque dans les points dont la r´egularit´e est comprise entre α1 et α1+, le deuxi`eme dans les points de contour de r´egularit´e comprise entreα2 et α2+, et ainsi de suite. Les coefficientsα1,α1,· · · αn sont pass´es en clef priv´ee (et sont connus seulement de ceux qui ont le droit de d´etecter la marque)
Cet algorithme se d´eroule lui aussi en 5 ´etapes (voir figure 7.11).
Etape 1
?
-αk < α < αk+ Etape 2
Etape 3 6
3 Etape 4
6
- @
@@R Etape 5
Image des points de
contours Cf
Positions Pts `a marquer
(xk, yk) Image
originale f
Module Ond.
´ech. a Maf
Marque m taille M2
Module marqu´e M]af
Image marqu´ee
g
Fig. 7.11 – Deuxi`eme algorithme de marquage – Premi`ere ´etape
Comme pour le premier algorithme, on produit l’image Cf des points de contours de l’image hˆotef en utilisant l’algorithme pr´esent´e chapitre V.
– Etape 2
Elle consiste `a appliquer `a l’image originalef la transform´ee en ondelettes utilis´ee pour le d´etecteur multi-´echelles de Canny (voir chapitre IV) jusqu’`a une ´echellea, qui peut ˆetre consid´er´ee comme clef secr`ete (elle ne sera donc connue que des personnes ayant le droit d’extraire la marque). Le module de la transform´ee en ondelettes de f `a l’´echelle a(voir 4.1.7) sera not´eMaf. Elle a la mˆeme taille,N×N, que l’image originale.
– Etape 3
La troisi`eme ´etape consiste `a trouver dans l’image Cf des points de contours, les
points que l’on va marquer.Elle fait intervenirM ×M nouvelles valeurs qui seront consid´er´ees comme clefs secr`etes : lesαk, pourk = 1· · ·M2. Les points o`u est ins´er´e lek`eme point de la marque sont les points de contour dont la r´egularit´e lipschitzienne est comprise entreαketαk+. Il faut s’assurer qu’il y ait toujours au moins un point deCf de r´egularit´e comprise dans chacun des intervalles [αk, αk+] : on peut s’en assurer en choisissant des valeursαkqui correspondent effectivement aux r´egularit´es de certains points de contour. D’autre part, il faut choisir de fa¸con `a ce que les intervalles restent disjoints : par exemple, on peut calculer
A=mink|αk+1−αk|, pourk = 1· · ·M2−1 et en prenantinf´erieur ou ´egale `a A, par exemple,
=A.
contrˆole la redondance de l’inclusion de la marque.
– Etape 4
L’´etape 4 consiste `a ajouter dans la matriceMaf les M2 points de la marque, aux positions d´etermin´ees dans l’´etape pr´ec´edente. La nouvelle matrice sera not´ee M]af. Plutˆot que de rajouter la marque mˆeme, (donc soit un 0, soit un 1), on rajouteR1 fois la marque (donc soit un 0, soit R1), o`u R1 est la constante de marquage, elle aussi pass´ee comme clef secr`ete.
– Etape 5
Cette derni`ere ´etape consiste `a appliquer l’un des algorithmes de reconstruction pr´esent´e dans le chapitre IV (en pratique, nous avons utilis´e l’algorithme pr´esent´e dans le paragraphe Reconstruction relative `a l’algorithme B-spline cascade de la section IV.4.3).
Remarque 7.3.2
– Nous disposons ici d’un certain nombre de valeurs (la constante de marquage R1, les r´egularit´es αk des points de contour `a marquer, et l’´echelle a `a laquelle la marque est ajout´ee) qui ne seront connues que des personnes qui incluent la marque dans l’image et des destinataires, ceux qui ont le droit d’extraire la marque. Ces constantes de s´ecurit´e sont importantes dans la mesure o`u, si l’algorithme vient `a ˆetre connu, ce sont elles qui empˆecheront des personnes non-autoris´ees d’extraire la marque.
– Nous avons vu que contrˆole la redondance du marquage ; celle-ci est un avantage, puisqu’elle rend plus robuste l’algorithme de d´etection de la marque (disposant d’une vingtaine de points plutˆot que d’un seul pour d´ecider si le k`eme point de la marque est un 0 ou un 1, on minimise les risques d’erreur). Cependant, nous sommes li-mit´es par le nombre de points de contour disponibles (qui doit ˆetre, de toute fa¸con toujours sup´erieur `a M2!). Pour gagner en redondance, il faut donc d´etecter plus de points de contours : cela peut se faire en baissant, dans le d´etecteur multi-´echelles de Canny pr´esent´e au chapitre V, le nombreamax d’´echelles que doit traverser un point singulier pour ˆetre consid´er´e comme point de contours. Il y a bien sˆur un compromis
`
a r´ealiser sur cette valeur : prendre amax trop petit revient `a d´etecter des points de contour peu significatifs, dans lesquels la marque est plus visible ou plus fragile !
Second algorithme de marquage appliqu´e `a Lenna
Ici, nous appliquons l’algorithme de marquage `a l’image de Lenna ; les r´egularit´es des points `a marquer sont choisies comme suit : appelons alpha la matrice des points de contours, o`u alpha(i, j) = 30 si (i, j) n’est pas un point de contour, et o`u alpha(i, j) est la r´egularit´e du point de contour (i, j) sinon. On trie, dans un vecteurCol, les coefficients alpha(i, j) diff´erents de 30, par ordre croissant. SoitLla longueur de ce vecteur ; on d´efinit
h= [ L M2].
Les r´egularit´es choisies (il en fautM ×M) seront alors
αk =Col((k−1)h+ 1) pour k= 1· · ·M2
On marque les coefficients d’ondelettes obtenus apr`es 7 convolutions par Θ, le masque binˆomial.
La figure 7.12 montre l’image marqu´ee (visuellement identique `a l’image originale de Lenna si la constante de marquage n’est pas trop importante), et la diff´erence entre l’image marqu´ee et l’image originale (on y voit que la marque est cach´ee dans les contours). Si l’on prend une constante de marquageR1 = 7 (images du haut), la marque est discr`ete, et l’image marqu´ee est visuellement identique `a l’image originale. En revanche, avec un choix de R1 = 300, la marque prend une importance d´emesur´ee par rapport aux coefficients d’ondelettes, et se per¸coit dans l’image reconstruite.
La proc´edure d’extraction de la marque
On sait que la marque recherch´ee a une taille M ×M et est compos´ee de 0 et de 1.
On dispose, pour extraire la marque, des param`etres suivants :
– Les r´egularit´es αk, k = 1· · ·M×M des points o`u ont ´et´e cach´es les ´el´ements de la marque.
– La constante de marquage R1
– L’´echelle a indiquant dans quels coefficients d’ondelettes est cach´ee la marque.
– L’image originale f.
Appelons g l’image attaqu´ee d’o`u il faut extraire la marque. Pour extraire la marque contenue dansg, on va :
1. Relancer l’algorithme de d´etection et de classification sur g, de fa¸con `a obtenir une matricealphag des points de contours : si (i, j) est un point de contour,alphag(i, j) est la r´egularit´e locale de ce point de contour, sinon,alphag(i, j) vaut 30.
2. Lancer la transform´ee en ondelettes utilis´ee pour le d´etecteur du chapitre V jusqu’`a l’´echelle a : on obtient ainsi la matrice des modules des coefficients `a l’´echelle a, M g(., ., a).
3. Pour tester si le k`eme ´el´ement de la marque est un 0 ou un 1 :
– on consid`ere tous les points de contours (xik, yki)i=1···Nk dont la r´egularit´eαg(xik, yki) est comprise entreαk et αk+, o`u
=mink|αk+1−αk|, pour k = 1· · ·M2−1.
Image marqu´eeg Diff´erence entre l’image marqu´ee et l’image hˆote
20 40 60 80 100 120
20
40
60
80
100
120
20 40 60 80 100 120
20
40
60
80
100
120
R1 = 7 : PSNR=17.18 db
20 40 60 80 100 120
20
40
60
80
100
120
20 40 60 80 100 120
20
40
60
80
100
120
R1 = 300 : PSNR=45.79 db
Fig.7.12 – R´esultats pour Lenna avec diff´erentes valeurs deR1 : siR1 est trop important, la marque se voit dans l’image reconstruite
On fait alors la moyenne des modules en ces points : M edg = 1
Nk
Nk
X
i=1
M g(xik, yik, a)
– On proc`ede de fa¸con identique avec l’image originale f (ce qui oblige `a calculer alphaf etM f(., ., a), les ´equivalents pourf de alphag et M g(., ., a)) : on obtient ainsi la moyenne des modules des coefficients de r´egularit´e comprise entre αk et αk+pour l’image originale, M edf.
– Si les deux moyennes diff`erent beaucoup, c’est que l’ajout duk`eme ´el´ement de la marqueM a chang´e la valeur du module de la transform´ee en ondelettes, donc ce k`eme ´el´ement est un 1 (M(k) = 1). Dans le cas contraire, le k`eme ´el´ement est un 0 (M(k) = 0). En pratique, on d´ecide que
(M edg−M edf)> 1
3R1 ⇐⇒ M(k) = 1
4. On dira que l’extraction a r´eussi si au moins 90% des coefficients de la marque ont
´et´e correctement d´etect´es (c’est `a dire, pour une marque M 8×8, qu’au plus 6 coefficients sont mal d´etect´es).