]> AND Private Git Repository - hdrcouchot.git/blob - stegoyousra.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
relecture
[hdrcouchot.git] / stegoyousra.tex
1 La plupart des schémas de stéganographie sont conçus de sorte  à minimiser une 
2 fonction de distorsion. Dans les exemples du chapitre précédent, 
3 ces fonctions de distorsion sont construites dans l'objectif de préserver 
4 les caractéristiques de l'images. 
5 On comprend aisément que dans des régions uniformes ou sur des bords clairement définis,
6 une modification même mineure de l'image est facilement détectable.
7 Au contraire dans les textures, le bruit ou les régions chaotiques 
8 sont  difficiles à modéliser. Les caractéristiques des images 
9 dont ces zones ont été modifiées sont ainsi similaires à celles
10 des images initiales.
11
12 Ces régions sont caractérisées par des courbes de niveau très perturbées.
13 Ce chapitre présente une nouvelle fonction de distorsion pour la stéganographie 
14 qui est basée sur les dérivées du second ordre, l'outil mathématique usuel 
15 pour les courbes de niveau.
16
17 Pour peu qu'on sache définir une fonction $P$ 
18 qui associe à chaque pixel $(x,y)$ sa valeur $P(x,y)$,
19 les pixels tels que les dérivées secondes de $P$ ont des valeurs élevées 
20 sont des bon candidats pour contenir un bit du message.
21 Cependant, une telle fonction $P$ n'est connue que de manière discrète,
22 \textit{i.e.}, en un nombre fini de points. 
23 Les dérivées premières et secondes ne peuvent donc pas être évaluées mathématiquement.
24 Au mieux, on peut construire une fonction qui approxime ces $P$ sur cet ensemble 
25 de pixels. Ordonner alors les pixels selon la matrice hessienne 
26 (\textit{i.e.}, la matrice des dérivées secondes) n'est pas trivial puisque celle-ci 
27 contient de nombreuses valeurs pour un seul pixel donné. 
28
29 On verra dans ce chapitre comment des approximations des dérivées 
30 premières et secondes pour des images numériques (Section~\ref{sec:gradient}) on peu être
31 obtenues.
32 Deux propositions de dérivées secondes sont ensuite 
33 données et prouvées (Section~\ref{sec:second} et Section~\ref{sec:poly}).
34 Une adaptation d'une fonction de distorsion existante est étudiée
35 en Section~\ref{sec:distortion} et des expériences sont présentées 
36 en Section~\ref{sec:experiments}.
37 Ce chapitre a été publié dans~\cite{ccfg16:ip}.
38
39
40
41 \section{Des dérivées dans une image}\label{sec:gradient}
42
43 Cette section rappelle d'abord les liens entre lignes de niveau, gradient et 
44 matrice hessienne puis analyse ensuite leur construction à l'aide
45 de noyaux de la théorie du signal.
46
47
48 \subsection{Matrice hessienne}\label{sub:general}
49 On considère qu'une image peut être assimilée à une fonction de $\R^+\times \R^+$
50 dans $\R^+$ telle que la valeur $P(x,y)$ est associée à chaque  pixel de coordonnées $(x,y)$.
51 Les variations d'une telle fonction en $(x_0,y_0)$ peuvent être évaluées 
52 grâce au gradient 
53 $\nabla{P}(x_0,y_0) = \left(\frac{\partial P}{\partial x}(x_0,y_0),\frac{\partial P}{\partial y}(x_0,y_0)\right).
54 $
55 Le vecteur gradient pointe dans la direction où la fonction a le plus fort accroissement.
56 Des pixels ayant des valeurs voisines sont sur des lignes de niveaux qui sont orthogonales
57 à ce vecteur.
58
59 Les variations du vecteur gradient s'expriment usuellement à l'aide de la matrice
60 hessienne $H$ des dérivées partielles de second ordre de $P$.
61 \[
62 H = \begin{bmatrix} 
63 \dfrac{\partial^2 P}{\partial x^2} & 
64 \dfrac{\partial^2 P}{\partial x \partial y} \\
65 \dfrac{\partial^2 P}{\partial y \partial x} & 
66 \dfrac{\partial^2 P}{\partial y^2} \\
67 \end{bmatrix}. 
68 \]
69
70 En un pixel $(x_0,y_0)$, plus les valeurs de cette matrice sont éloignées de zéro,
71 plus le gradient varie en ce point. Évaluer ce type de matrice est ainsi primordial
72 en stéganographie. Cependant cette tâche n'est pas aussi triviale qu'elle n'y 
73 paraît puisque les images naturelles ne sont pas  définies à l'aide 
74 de fonction différentiables de $\R^+\times \R^+$
75 dans $\R^+$. La suite montre comment obtenir des approximations de telles matrices. 
76
77 \subsection{Approches classiques pour évaluer le gradient dans des images}\label{sub:class:1}
78 Dans ce contexte, les approches les plus utilisées pour évaluer un gradient 
79 sont ``Sobel'', ``Prewitt'', ``Différence centrale'' et `` Différence intermédiaire''.
80 Chacune de ces  approches applique un produit de convolution $*$ entre un noyau $K$
81 (rappelé dans le tableau~\ref{table:kernels:usual}) et une fenêtre $A$ de taille 
82 $3\times 3$. Le résultat 
83  $A * K$ est une approximation du gradient horizontal
84 \textit{i.e.}, $\dfrac{\partial P}{\partial x}$.
85 Soit $K\rl$ le résultat de la rotation  d'un angle $\pi/2$ sur $K$.
86 La composante verticale du gradient,  $\dfrac{\partial P}{\partial y}$ est obtenue 
87 de manière similaire en évaluant $A * K\rl$. Lorsqu'on applique ceci sur toute 
88 la matrice image, on obtient peu ou prou une matrice de même taille pour chacune des 
89 dérivées partielles. 
90
91 Les deux éléments de la première ligne (respectivement de la seconde ligne) 
92 de la matrice hessienne
93 sont le résultat du calcul du gradient sur la matrice $\dfrac{\partial P}{\partial x}$
94 (resp. sur la matrice  $\dfrac{\partial P}{\partial y}$).
95
96
97 \begin{table}[ht]
98 \caption{Noyaux usuels pour évaluer des gradients d'images\label{table:kernels:usual}
99 }
100 \centering
101 \begin{tabular}{|c|c|c|}
102     \hline
103     Nom&   Sobel & Prewitt \\
104     \hline
105     Noyau & $\textit{Ks}= \begin{bmatrix} -1 & 0 & +1 \\ -2 & 0 & +2 \\ -1 & 0 & +1 \end{bmatrix} $ &
106     $\textit{Kp}= \begin{bmatrix} -1 & 0 & +1 \\ -1 & 0 & +1 \\ -1 & 0 & +1 \end{bmatrix} $\\
107     \hline\hline
108     Nom & Différence  & Différence  \\
109             & centrale & Intermédiaire \\ 
110     \hline
111     Noyau & $\textit{Kc}= \begin{bmatrix} 0&0&0 \\ -\dfrac{1}{2} & 0 & +\dfrac{1}{2} \\ 0&0&0 \end{bmatrix} $ &
112     $\textit{Ki}= \begin{bmatrix} 0&0&0 \\ 0 & -1 & 1 \\ 0&0&0 \end{bmatrix} $ \\
113     \hline
114 \end{tabular}
115 \end{table}
116
117
118
119
120 \subsection{Matrices hessiennes induites  par des approches 
121 de gradient d'images}\label{sub:class:2}
122 Il est connu que  
123 $\dfrac{\partial^2 P}{\partial x \partial y} $ est égal à 
124 $\dfrac{\partial^2 P}{\partial y \partial x}$ si 
125 les méthode qui calculent le gradient et le gradient du gradient (la matrice hessienne)
126 sont les mêmes.
127 Le tableau~\ref{table:hessian:usual} résume les les noyaux 
128 $K_{x^2}''$ et
129 $K_{xy}''$  
130 qui permettent de calculer respectivement 
131 $\dfrac{\partial^2 P}{\partial x^2}$ et 
132 $\dfrac{\partial^2 P}{\partial x \partial y}$ comme un produit de convolution 
133 pour chacun des opérateurs de gradient rappelés à la section précédente.
134
135
136 \begin{table}[ht]
137 \caption{Noyaux usuels pour évaluer des gradients de second ordre d'images
138 \label{table:hessian:usual}
139 }\centering
140 \begin{tabular}{|c|c|}
141     \hline
142     Sobel & Prewitt \\
143     \hline
144     $
145     \textit{Ks}_{x^2}''= 
146     \begin{bmatrix} 
147     1 &  0  & -2  & 0 & 1 \\ 
148     4 &  0  & -8  & 0 & 4 \\ 
149     6 &  0  & -12 & 0 & 6 \\
150     4 &  0  & -8  & 0 & 4 \\ 
151     1 &  0  & -2  & 0 & 1 
152     \end{bmatrix} 
153     $
154     & 
155     $
156     \textit{Kp}_{x^2}''= 
157     \begin{bmatrix} 
158     1 &  0  & -2  & 0 & 1 \\ 
159     2 &  0  & -4  & 0 & 2 \\ 
160     3 &  0  & -6 & 0 & 3 \\
161     2 &  0  & -4  & 0 & 2 \\ 
162     1 &  0  & -2  & 0 & 1 
163     \end{bmatrix} 
164     $
165     \\
166     \hline
167     $
168     \textit{Ks}_{xy}''=
169     \begin{bmatrix} 
170     -1 & -2 & 0 & 2 & 1 \\ 
171     -2 & -4 & 0 & 4 & 2 \\ 
172     0  & 0  & 0 & 0 & 0 \\
173     2 & 4 & 0 & -4 & -2 \\ 
174     1 & 2 & 0 & -2 & -1 
175     \end{bmatrix} 
176     $
177     &
178     $
179     \textit{Kp}_{xy}''=
180     \begin{bmatrix} 
181     -1 & -1 & 0 & 1 & 1 \\ 
182     -1 & -1 & 0 & 1 & 1 \\ 
183     0  & 0  & 0 & 0 & 0 \\
184     1 & 1 & 0 & -1 & -1 \\ 
185     1 & 1 & 0 & -1 & -1 
186     \end{bmatrix} 
187     $ \\
188     
189     \hline\hline
190     Différence & Différence  \\
191     centrale  &intermédiaire \\ 
192     \hline
193     $
194     \textit{Kc}_{x^2}''= 
195     \begin{bmatrix} 
196     0 &  0  & 0  & 0 & 0 \\ 
197     0 &  0  & 0  & 0 & 0 \\ 
198     \dfrac{1}{4} &  0  & -\dfrac{1}{2} & 0 & \dfrac{1}{4} \\
199     0 &  0  & 0  & 0 & 0 \\ 
200     0 &  0  & 0  & 0 & 0  
201     \end{bmatrix} 
202     $
203     & 
204     $
205     \textit{Ki}_{x^2}''= 
206     \begin{bmatrix} 
207     0 &  0  & 0  & 0 & 0 \\ 
208     0 &  0  & 0  & 0 & 0 \\ 
209     0 &  0  & 1  & -2 & 1 \\
210     0 &  0  & 0  & 0 & 0 \\ 
211     0 &  0  & 0  & 0 & 0  
212     \end{bmatrix} 
213     $
214     \\
215     \hline
216     $
217     \textit{Kc}_{xy}''= 
218     \begin{bmatrix} 
219      -\dfrac{1}{4}  & 0 & \dfrac{1}{4}\\ 
220      0  & 0 & 0 \\ 
221      \dfrac{1}{4} & 0 &  -\dfrac{1}{4} 
222     \end{bmatrix} 
223     $
224     & 
225     $
226     \textit{Ki}_{xy}''= 
227     \begin{bmatrix} 
228      0  & -1 & 1 \\ 
229      0  & 1 & -1 \\ 
230      0  &  0 & 0 
231     \end{bmatrix} 
232     $\\
233     \hline
234 \end{tabular}
235
236 \end{table}
237
238 Le noyau $\textit{Ks}_{x^2}''$ permet de détecter si le le pixel central 
239 pixel central appartient à une bord ``vertical'', même si celui contient du bruit,
240 en considérant ces voisins verticaux. Ces derniers sont vraiment 
241 pertinents dans un objectif de détecter les bords. Cependant, leur lien avec 
242 les lignes de niveau n'est pas direct. De plus tous les pixels qui sont dans la 
243 deuxième et la quatrième colonne de ce noyau sont ignorés.
244 Le noyau de Prewitt a des propriétés similaires.
245 Le noyau de différence centrale $\textit{Kc}_{x^2}''$ n'est pas influencé par les 
246 voisins verticaux du pixel central et peu paraître plus adapté ici.
247 Cependant, le noyau $\textit{Kc}_{xy}''$ perd aussi les valeurs des pixels 
248 qui sont alignés verticalement et diagonalement avec le pixel central.
249 Enfin, le noyau de différence intermédiaire  $\textit{Ki}_{x^2}''$ décale
250 à gauche la valeur des variations horizontales de $\dfrac{\partial P}{\partial x}$:
251 Le pixel central  $(0,0)$ reçoit  exactement la valeur 
252 $\dfrac{P(0,2)-P(0,1)}{1} - \dfrac{P(0,1)-P(0,0)}{1}$,
253 qui est une approximation de 
254 $\dfrac{\partial P}{\partial x}(0,1)$ et non de 
255 $\dfrac{\partial P}{\partial x}(0,0)$.
256 De plus, le noyau de différence intermédiaire $\textit{Ki}_{xy}''$ ne concerne 
257 que les pixels du coin supérieur droit, en perdant toutes les autres informations.
258 La section suivante propose une autre approche pour calculer les lignes de niveau avec une précision accrue.
259
260 \section{Des noyaux pour des lignes de niveau}\label{sec:second}
261 On ne restreint pas aux noyaux de taille fixe (comme  $3\times3$ or $5 \times 5$ 
262 dans les schémas précédents). Au contraire, on considère des noyaux de taille variable  
263 $(2n+1)\times (2n+1)$, $n \in \{1,2,\dots,N\}$, où
264 $N$ est un paramètre de l'approche.
265 Les variations horizontales du gradient sont extraites grâce au noyau de taille $(2n+1)\times (2n+1)$: 
266 \[
267 \arraycolsep=1.4pt
268 \def\arraystretch{1.4}
269 \def\arraystretch{1.4}
270     \textit{Ky}_{x^2}''=
271     \left(
272     \begin{array}{ccccccccc}
273          0           & & & & \dots& & & & 0  \\
274          \vdots      & & & & & & & & \vdots \\
275          0           & & & & \dots & & & & 0  \\
276          \dfrac{1}{2n}& 0 & \dots & 0  & -\dfrac{2}{2n} & 0  & \dots & 0& \dfrac{1}{2n} \\
277          0           & & & & \dots& & & & 0  \\
278         \vdots      & & & & & & & & \vdots \\
279          0           & & & & \dots & & & & 0  
280     \end{array}
281     \right)
282 \]
283
284 Lorsque le produit de convolution est appliqué sur une fenêtre $(2n+1)\times(2n+1)$,
285 le résultat est 
286 $\dfrac{1}{2}\left(\dfrac{P(0,n)-P(0,0)}{n} - \dfrac{P(0,0)-P(0,-n)}{n}\right)$, 
287 qui représente en effet les variation horizontales de la partie horizontale 
288 du gradient autour du pixel central. On obtient donc bien une approximation de 
289 $\dfrac{\partial^2 P}{\partial x^2}$.
290 Lorsque $n$ vaut 1, ce noyau est une version centrée du noyau horizontal de différence 
291 intermédiaires. $\textit{Ki}_{x^2}''$ à un facteur  $1/2$ près).
292 Lorsque $n$ vaut 2, on retrouve $\textit{Kc}_{x^2}''$.
293
294 Les variations verticales du gradient sont aussi obtenus en faisant subir 
295 à $\textit{Ky}_{x^2}''$ une rotation d'angle  $\pi/2$.
296 Les variations diagonales sont obtenues à l'aide du gradient 
297 $\textit{Ky}_{xy}''$ défini par:
298
299 \[
300 \arraycolsep=1.4pt
301 \def\arraystretch{1.4}
302 \textit{Ky}_{xy}'' = \dfrac{1}{4}
303 \left(
304     \begin{array}{ccccccccc}
305      \frac{1}{n^2}& \dots & \frac{1}{2n} & \frac{1}{n} 
306      & 0 &
307      -\frac{1}{n}&-\frac{1}{2n} & \dots &  -\frac{1}{n^2} 
308      \\
309      \vdots & 0     &    &
310      & \dots &
311       &  &  0 & \vdots 
312      \\
313      \frac{1}{2n} & 0 &        &
314      & \dots &
315         &  & 0& -\frac{1}{2n} 
316      \\
317      \frac{1}{n} & 0 &    &    
318      & \dots &
319       &  & 0 &  -\frac{1}{n}
320      \\
321      0      &      & & & \dots& & & & 0  \\
322      -\frac{1}{n} & 0 &        &
323      & \dots &
324         &  &0 & \frac{1}{n}
325      \\
326      -\frac{1}{2n} & 0 &       &
327      & \dots &
328       &  & 0 &  \frac{1}{2n} 
329      \\
330       \vdots & 0 &    &    
331      & \dots &
332         &  & 0& \vdots 
333      \\
334      -\frac{1}{n^2}&  \dots & -\frac{1}{2n} & -\frac{1}{n} 
335      & 0 &
336      \frac{1}{n}& \frac{1}{2n} & \dots  & \frac{1}{n^2}
337     \end{array}
338     \right).
339 \]
340
341
342
343 En effet, lorsque  $n$ vaut 1, $\textit{Ky}_{xy}''$ se retrouve en calculant la moyenne
344 des variations horizontales de la composante verticale du gradient calculé à l'aide de 
345 $\textit{Ky}_{y}'$. Pour cette valeur de $n$, on a
346 $\textit{Ky}_{xy}'' =   \textit{Kc}_{xy}''$. 
347 Pour chaque nombre  $n$, $1 <  n \le N$, $\textit{Ky}_{xy}''$ se retrouve de la même
348 manière, c'est-à-dire en effectuant des moyennes de variations. 
349 Une preuve de la construction se trouve dans l'article~\cite{ccfg16:ip}.
350
351
352
353 L'objectif est de détecter les grandes variations des dérivées premières. 
354 Ainsi les dérivées secondes seront approximées comme les maximums des 
355 matrices hessiennes  obtenues lorsque $n$ varie entre  $1$ et $ N$.
356
357 La dérivée partielle $\dfrac{\partial^2 P}{\partial x^2}$ est définie par 
358
359 \begin{equation}
360 \dfrac{\partial^2 P}{\partial x^2}
361 = \max \left\{ 
362 \abs{\dfrac{\partial^2 P}{\partial x^2}_1}, \dots, \abs{\dfrac{\partial^2 P}{\partial x^2}_N}
363 \right \}. 
364 \label{eq:d2p_dx2}
365 \end{equation}
366 où $\dfrac{\partial^2 P}{\partial x^2}_n$ est le résultat de l'application 
367 du noyau $\textit{Ky}_{x^2}''$ de taille $(2n+1)\times (2n+1)$.
368 La même approche itérative est appliquée pour construire les 
369 approximations de 
370 $\dfrac{\partial^2 P}{\partial y \partial x}$ 
371 et de 
372 $\dfrac{\partial^2 P}{\partial y^2}$.
373
374 La section suivante étudie la pertinence d'interpoler une image par un polynome 
375 lorsqu'on cherche a obtenir ces dérivées secondes.
376
377
378 \section{Interpolation polynomiale pour le calcul de la matrice hessienne}\label{sec:poly}
379 Soit $P(x,y)$ la  valeur du pixel $(x,y)$ et soit  $n$, $1 \le n \le N$, 
380 tel que l'objectif est de trouver un polynome d'interpolation dans la fenêtre de taille  
381 $(2n+1)\times(2n+1)$ dont le pixel central a pour indice $(0,0)$.  
382 Il existe un unique polynôme $L : \R\times \R \to \R$ 
383 de degré $(2n+1)\times(2n+1)$ tel que  $L(x,y)=P(x,y)$ pour chaque pixel  
384 $(x,y)$ de cette fenêtre et ce polynome est défini par  
385 \begin{equation}
386 \begin{array}{l}
387 L(x,y) =  
388 \sum_{i=-n}^{n}
389 \sum_{j=-n}^{n}P(i,j)
390 \left( 
391 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
392 \frac{x-j'}{i-j'}
393 \right)
394 \left( 
395 \prod_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
396 \frac{x-i'}{i-i'}
397 \right)
398 \end{array}
399 \end{equation}
400 On peut facilement prouver que les dérivées partielles  de $L$ selon $x$ est 
401 \begin{equation}
402 \begin{array}{l}
403 \dfrac{\partial L}{\partial x} =  
404 \sum_{i=-n}^{n}
405 \sum_{j=-n}^{n} 
406 P(i,j)
407 \left( 
408 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
409 \frac{y-j'}{j-j'}
410 \right)
411 \left( 
412 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
413 \frac{1}{i-i'}
414 \prod_{\stackrel{-n\leq i''\leq n}{i''\neq i,i'}}
415 \frac{x-i''}{i-i''}
416 \right)
417 \end{array}
418 \end{equation}
419 \noindent et ainsi en déduire que les dérivées partielles de second ordre 
420 sont 
421 \begin{eqnarray}
422 \dfrac{\partial^2 L}{\partial x^2} &=&  
423 \sum_{i=-n}^{n}
424 \sum_{j=-n}^{n} 
425 P(i,j)
426 \left( 
427 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
428 \frac{y-j'}{j-j'}
429 \right) 
430 \left( 
431 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
432 \frac{1}{i-i'}
433 \sum_{\stackrel{-n\leq i''\leq n}{i''\neq i,i'}}
434 \frac{1}{i-i''}
435 \prod_{\stackrel{-n\leq i'''\leq n}{i'''\neq i,i',i''}}
436 \frac{x-i'''}{i-i'''}
437 \right)
438 \label{eq:deriv:poly:x2} \\
439 \dfrac{\partial^2 L}{\partial y \partial x} &= & 
440 \sum_{i=-n}^{n}
441 P(i,j) 
442 \left( 
443 \sum_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
444 \frac{1}{j-j'}
445 \prod_{\stackrel{-n\leq j''\leq n}{j''\neq j, j'}}
446 \frac{y-j''}{j-j''}
447 \right)
448 \left( 
449 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
450 \frac{1}{i-i'}
451 \prod_{\stackrel{-n\leq i''\leq n}{i''\neq i, i'}}
452 \frac{x-i''}{i-i''}
453 \right)
454 \label{eq:deriv:poly:yx}
455 \end{eqnarray}
456 Ces dérivées secondes sont calculées pour chaque pixel central, \textit{i.e.} le pixel dont l'indice est  $(0,0)$ dans la fenêtre.
457 En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) peut 
458 se simplifie en 
459
460 \begin{equation}
461 \begin{array}{l}
462 \dfrac{\partial^2 L}{\partial x^2} =  
463 \sum_{i=-n}^{n}
464 P(i,0)
465 \left( 
466 \sum_{\stackrel{-n\leq i' < i'' \le n}{i',i''\neq i}}
467 \frac{2}{(i-i')(i-i'')}
468 \prod_{\stackrel{-n\leq i'''\leq n}{i'''\neq i,i',i''}}
469 \frac{i'''}{i'''-i}
470 \right).
471 \end{array}
472 \label{eq:deriv:poly:x2:simpl:2}
473 \end{equation}
474
475 \begin{table}[ht]
476     \caption{Noyaux $Ko''_{x^2}$ pour  calculer des dérivées de second ordre à partir d'interpolation polynomiale}
477     \centering
478 \def\arraystretch{1.4}
479     \begin{tabular}{|c|c|}
480          \hline
481          $n$ & $Ko''_{x^2}$ \\
482          \hline
483          $2$ & $\left[\dfrac{-1}{12}, \dfrac{4}{3} , \dfrac{-5}{2}, \dfrac{4}{3} \dfrac{-1}{12}\right]$ \\
484          \hline
485          $3$ & $\left[\dfrac{1}{90}, \dfrac{-3}{20}, \dfrac{3}{2}, \dfrac{-49}{18}, \dfrac{3}{2}, \dfrac{-3}{20}, \dfrac{1}{90}\right]$ \\
486          \hline
487          $4$ & $\left[\dfrac{-1}{560}, \dfrac{8}{315}, \dfrac{-1}{5}, \dfrac{8}{5}, \dfrac{-205}{72}, \dfrac{8}{5}, \dfrac{-1}{5}, \dfrac{8}{315}, \dfrac{-1}{560}\right]$\\
488          \hline
489          %$5$ & $\left[\dfrac{1}{3150}, \dfrac{-5}{1008}, \dfrac{5}{126}, %\dfrac{-5}{21}, \dfrac{5}{3}, \dfrac{-5269}{1800}, \dfrac{5}{3}, %\dfrac{-5}{21}, \dfrac{5}{126}, \dfrac{-5}{1008}, \dfrac{1}{3150}\right]$\\
490          %\hline
491     \end{tabular}
492
493     \label{table:sod:hori:poly}
494 \end{table}
495
496
497 \begin{table}[ht]
498 \caption{ Noyaux pour les dérivées secondes en $x$ et $y$ lors de l'interpolation polynomiale\label{table:sod:diag:poly}
499 }
500 \centering
501 %\scriptsize
502 \def\arraystretch{1.5}
503 \begin{tabular}{|c|c|}
504     \hline
505     $n$ & $Ko''_{xy}$\\
506     \hline
507     2 & $
508 \begin{bmatrix} 
509 \dfrac{1}{4} & 0 &  \dfrac{-1}{4}\\
510  0 & 0 &0\\
511 \dfrac{-1}{4} & 0 &  \dfrac{1}{4}\\
512 \end{bmatrix}
513 $
514  \\   
515  \hline
516    3 &  
517    $\begin{bmatrix} 
518 \dfrac{1}{144} & \dfrac{-1}{18} & 0 & \dfrac{1}{18} & \dfrac{-1}{144}\\
519 \dfrac{-1}{18} & \dfrac{4}{9} & 0 & \dfrac{-4}{9} & \dfrac{1}{18}\\
520 0 & 0 & 0 & 0 &0\\
521 \dfrac{1}{18} & \dfrac{-4}{9} & 0 & \dfrac{4}{9} & \dfrac{-1}{18}\\
522 \dfrac{-1}{144} & \dfrac{1}{18} & 0 & \dfrac{-1}{18} & \dfrac{1}{144}
523 \end{bmatrix}
524 $\\
525   \hline
526 \end{tabular}
527 \end{table}
528
529 Cette dérivée partielle peut s'écrire comme un produit de convolution avec un noyau
530 noté $Ko''_{x^2}$. Des instances de tels noyaux, pour $n=2$, $3$ et  $4$
531 sont données au tableau~\ref{table:sod:hori:poly}. De manière similaire,  
532 le tableau~\ref{table:sod:diag:poly} donne deux exemples pour $n=1$ et $n=2$ 
533 de noyaux $Ko''_{xy}$ permettant de calculer directement les dérivées 
534 de second ordre selon $x$ et $y$ en $(0,0)$.
535 On remarque que pour $n=1$, le noyau est égal à $Kc''_{xy}$. 
536
537
538
539
540
541
542
543 \section{Fonction de distorsion}\label{sec:distortion}
544 Une fonction de distorsion associe à chaque pixel  $(i,j)$ 
545 le coût $\rho_{ij}$ du modification  par $\pm 1$. L'objectif est d'associer une 
546 valeur faible aux pixels dont toutes les dérivées secondes sont éloignées de 0 
547 et une valeur rédhibitoire sinon.
548 Dans WOW comme dans  UNIWARD la fonction de distorsion est définie par 
549 \[
550 \rho_{ij}^w = 
551 \left(
552 \abs{\xi_{ij}^h}^{p} +
553 \abs{\xi_{ij}^v}^{p} +
554 \abs{\xi_{ij}^d}^{p} 
555 \right)^{-\frac{1}{p}}
556 \]
557 où $p$ est un nombre négatif et  
558 $\xi_{ij}^h$ (resp. $\xi_{ij}^v$ et $\xi_{ij}^d$)
559 représentent la pertinence horizontale (resp. verticale et diagonale) de modification.
560 Une faible pertinence dans une direction signifie que l'embarquement 
561 dans ce pixel est inapproprié.
562 La fonction de distorsion que l'on a retenu est une particularisation ($p=-1$) 
563 de cette dernière:
564 \[
565 \rho_{ij} = 
566 \left(
567 \abs{\dfrac{\partial^2 P}{\partial x^2}(i,j)}^{-1} +
568 \abs{\dfrac{\partial^2 P}{\partial y^2}(i,j)}^{-1} +
569 \abs{\dfrac{\partial^2 P}{\partial y \partial x}(i,j)}^{-1}
570 \right)
571 \]
572
573
574 \section{Expérimentations}\label{sec:experiments}
575
576 Tout d'abord, l'ensemble du code est accessible en ligne\footnote{\url{https://github.com/stego-content/SOS}}.
577 La Figure~\ref{fig:oneimage} représente les résultats d'embarquement de données dans 
578 l'image 38 du challenge BOSS~\cite{Boss10} en suivant les deux schémas basés 
579 sur les dérivées secondes présentés dans ce chapitre.
580 Le taux d'embarquement $\alpha$ est fixé à 0.4 bits par pixel et les noyaux sont 
581 construits avec $N=4$. On remarque bien que les pixels dans les zones uniformes 
582 et les pixels dans les bords bien définis ne sont pas modifiés par l'approche tandis 
583 qu'au contraire les zones peu prévisibles (le monument par exemple) 
584 concentrent les changements.
585
586
587
588
589 \begin{figure}[ht]
590     \centering
591     \begin{tabular}{|c|c|c|}
592     \hline
593     Schéma & Image. Stego. & Différence avec le support \\
594     \hline
595     Approche à base de $Ky$  &\includegraphics[scale=0.20]{images/38_dp}&
596     \includegraphics[scale=0.20]{images/38_dp_diff} \\
597     \hline
598     Approche à base de  $Ko$  & \includegraphics[scale=0.20]{images/38_poly} &
599     \includegraphics[scale=0.20]{images/38_poly_diff} \\
600     \hline
601     \end{tabular}
602     \caption{Exemple de changements dus à un embarquement avec  $\alpha = 0.4$}
603     \label{fig:oneimage}
604 \end{figure}
605
606
607
608
609
610 \subsection{Choix des paramètres}
611
612 Les deux méthodes présentées ici dépendent de noyaux dont la taille va jusqu'à  
613 $(2N+1)\times(2N+1)$. Cette section montre comment évaluer $N$ pour maximiser 
614 le niveau de sécurité.
615 Pour chaque approche, 1,000 images stégos avec  
616 $N=2$, $4$, $6$, $8$, $10$, $12$ et $14$ et dont les supports appartiennent 
617 à l'ensemble des 10000 images du challenge BOSS. 
618 LA sécurité de l'approche a été évaluée avec le stéganalyseur 
619 Ensemble Classifier~\cite{DBLP:journals/tifs/KodovskyFH12}.
620 Pour un taux d'embarquement   $\alpha$ égal soit à  $0.1$ ou soit à  $0.4$, 
621 l'erreur moyenne de test (exprimée en pourcentage) a été calculée. 
622 Le tableau~\ref{table:choice:parameter} synthétise les résultats.
623 On observe que la taille $N=4$ (respectivement $N=12$) 
624 permet d'obtenir des erreurs suffisamment élevées pour l'approche basée sur $Ky$  
625 (resp. pour celle basée sur  $Ko$). 
626 Ces deux valeurs de paramètre sont retenues par la suite.
627
628 \begin{table}[ht]
629 \caption{Erreur moyenne de test en fonction de la taille du noyau}
630 \centering
631 \setlength{\tabcolsep}{3pt} 
632 \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
633 \cline{2-9}
634 \multicolumn{1}{c|}{} & \multirow{2}{*}{$\alpha$} & \multicolumn{7}{c|}{$N$} \\
635 \cline{3-9}
636 \multicolumn{1}{c|}{}&  & $2$ & $4$&  $6$&  $8$& $10$& $12$ & $14$ \\
637 \hline{}
638 Erreur moyenne    
639 & \textit{0.1} & 39& 40.2&  39.7&  39.8& 40.1& $39.9$&  $39.8$  \\
640 \cline{2-9}
641 de test pour le noyau $K_y$ & \textit{0.4}& 15& 18.8& 19.1&  19.0& 18.6& 18.7 & 18.7 \\
642 \hline
643 Erreur moyenne    & \textit{0.1} & 35.2 & 36.6&  36.7&  36.6& 37.1& 37.2 & 37.2 \\
644 \cline{2-9}
645 de test pour le noyau $K_o$ & \textit{0.4}  & 5.2 & 6.8& 7.5 & 7.9 & 8.1 & 8.2 & 7.6 \\
646 \hline
647 \end{tabular}
648 \label{table:choice:parameter}
649
650 \end{table}
651
652
653 \subsection{Évaluation de la sécurité}
654 Comme dans ce qui précède, la base du challenge BOSS a été retenue.
655 Ici c'est cependant l'ensemble des 10000 images qui a été utilisé pour évaluer 
656 la sécurité.
657 C'est aussi les caractéristiques SRM et Ensemble Classifier qui ont été utilisées 
658 pour évaluer la sécurité de l'approche..
659 Quatre taux d'embarquement  0.1, 0.2, 0.3 et  0.4
660 ont été retenus. Pour chaque expérience, 
661 l'aire sous la courbe de ROC (AUC),
662 l'erreur moyenne de test (ATE), 
663 l'erreur OOB (OOB) sont données et tous les résultats sont synthétisés 
664 dans le tableau~\ref{table:experiments:summary}.
665 Même si la sécurité est souvent plus faible que celle observée 
666 pour les outils les plus récents, 
667 les résultats concernant $K_y$ sont encourageants car ils ne sont pas éloignés de 
668 ceux de l'état de l'art sans aucune optimisation.
669 Enfin la faible sécurité de $K_o$ s'explique par le fait que le polynôme interpole 
670 exactement l'image en tous les points de la fenêtre, mais il ne tient pas forcément 
671 compte des variations dans celle-ci. Les dérivées secondes sont certes faciles 
672 à exprimer, mais elles ne représentent pas nécessairement fidèlement celles de l'image.
673
674 \begin{table}
675 \caption{Évaluation de la sécurité}\label{table:experiments:summary}
676 \centering
677 \begin{tabular}{|l|l|l|l|l|}
678 \hline
679  & Taux & AUC & ATE   &  OOB \\ \hline
680 {WOW}   
681             & 0.1 & 0.6501 & 0.4304 & 0.3974\\
682             & 0.2 & 0.7583 & 0.3613 & 0.3169\\
683             & 0.3 & 0.8355 & 0.2982 & 0.2488\\
684             & 0.4 & 0.8876 & 0.2449 & 0.1978\\ 
685                                        \hline
686
687 {SUNIWARD}  & 0.1 & 0.6542 & 0.4212 & 0.3972\\
688             & 0.2 & 0.7607 & 0.3493 & 0.3170\\
689             & 0.3 & 0.8390 & 0.2863 & 0.2511\\
690             & 0.4 & 0.8916 & 0.2319 & 0.1977\\ 
691  \hline
692  {MVG}      & 0.1 & 0.6340 & 0.4310 &0.4124 \\
693             & 0.2 & 0.7271 & 0.3726 &0.3399 \\
694             & 0.3 & 0.7962 & 0.3185& 0.2858\\
695             & 0.4 & 0.8486& 0.2719& 0.2353 \\ 
696  \hline
697   {HUGO}    & 0.1 & 0.6967 & 0.3982 & 0.3626 \\
698             & 0.2 & 0.8012 & 0.3197 & 0.2847 \\
699             & 0.3 & 0.8720 & 0.2557 & 0.2212 \\
700             & 0.4 & 0.9517 & 0.1472 & 0.1230 \\ 
701  \hline
702 {Approche à base de $Ky$} 
703             & 0.1 & 0.7378 & 0.3768 & 0.3306 \\
704             & 0.2 & 0.8568 & 0.2839 & 0.2408 \\
705             & 0.3 & 0.9176 & 0.2156 & 0.1710 \\
706             & 0.4 & 0.9473 & 0.1638 & 0.1324\\
707  \hline
708 {Approche à base de $Ko$} 
709             & 0.1 & 0.6831 & 0.3696  & 0.3450 \\
710             & 0.2 & 0.8524 & 0.1302  & 0.2408 \\
711             & 0.3 & 0.9132 & 0.1023  & 0.1045 \\
712             & 0.4 & 0.9890 & 0.0880  & 0.0570 \\
713                               \hline 
714                               
715 \end{tabular}
716 \end{table}
717
718
719 %\begin{figure}[ht]
720 %\centering
721 %\includegraphics[width=9cm]{22} 
722 %\caption{Average Testing Error(ATE) } 
723 %\label{fig1}
724 %\end{figure}
725
726 %\begin{figure}[ht]
727 %\centering
728 %\includegraphics[width=9cm]{11} 
729 %\caption{Out of Bag($E_{\textit{OOB}}$)} 
730 %\label{fig2}
731 %\end{figure}
732
733 %\begin{figure}[ht]
734 %\centering
735 %\includegraphics[width=9cm]{33} 
736 %\caption{Area Under Curve(AUC)} %\label{fig3}
737 %\end{figure}
738
739
740 \section{Conclusion}
741 La principale contribution de ce chapitre est de proposer des 
742 fonctions de distorsion basées sur des approximations de dérivées 
743 secondes, l'idée sous-jacente étant qu'une zone où les lignes de niveau 
744 ne sont pas clairement définies est peu prévisible.
745 Deux approches d'approximation ont été présentées.
746 La première  basée 
747 sur un produit de convolution, exploite des noyaux déjà intégrés dans des
748 algorithmes de détection de bords.
749 La seconde s'appuie sur une interpolation polynomiale de l'image.
750 Ces deux méthodes ont été complètement implantées et leur sécurité 
751 face à des stéganalyseurs a été étudiée. Les résultats encouragent 
752 à poursuivre dans cette direction.