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

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