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

Private GIT Repository
dff
[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 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 fonction 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éthode 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 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 contient du bruit,
243 en considérant ces voisins verticaux. Ces derniers sont vraiment 
244 pertinents dans un objectif de détecter les bords. Cependant, leur lien avec 
245 les lignes de niveau n'est pas direct. De plus tous les pixels qui sont dans la 
246 deuxième et la quatrième colonne de ce noyau sont ignorés.
247 Le noyau de Prewitt a des propriétés similaires.
248 Le noyau de différence centrale $\textit{Kc}_{x^2}''$ n'est pas influencé par les 
249 voisins verticaux du pixel central et peu paraître plus adapté ici.
250 Cependant, le noyau $\textit{Kc}_{xy}''$ perd aussi les valeurs des pixels 
251 qui sont alignés verticalement et diagonalement avec le pixel central.
252 Enfin, le noyau de différence intermédiaire  $\textit{Ki}_{x^2}''$ décale
253 à gauche la valeur des variations horizontales de $\dfrac{\partial P}{\partial x}$:
254 Le pixel central  $(0,0)$ reçoit  exactement la valeur 
255 $\dfrac{P(0,2)-P(0,1)}{1} - \dfrac{P(0,1)-P(0,0)}{1}$,
256 qui est une approximation de 
257 $\dfrac{\partial P}{\partial x}(0,1)$ et non de 
258 $\dfrac{\partial P}{\partial x}(0,0)$.
259 De plus, le noyau de différence intermédiaire $\textit{Ki}_{xy}''$ ne concerne 
260 que les pixels du coin supérieur droit, en perdant toutes les autres informations.
261 La section suivante propose une autre approche pour calculer les lignes de niveau avec une précision accrue.
262
263 \section{Des noyaux pour des lignes de niveau}\label{sec:second}
264 On ne restreint pas aux noyaux de taille fixe (comme  $3\times3$ or $5 \times 5$ 
265 dans les schémas précédents). Au contraire, on considère des noyaux de taille variable  
266 $(2n+1)\times (2n+1)$, $n \in \{1,2,\dots,N\}$, où
267 $N$ est un paramètre de l'approche.
268 Les variations horizontales du gradient sont extraites grâce au noyau de taille $(2n+1)\times (2n+1)$: 
269 \[
270 \arraycolsep=1.4pt
271 \def\arraystretch{1.4}
272 \def\arraystretch{1.4}
273     \textit{Ky}_{x^2}''=
274     \left(
275     \begin{array}{ccccccccc}
276          0           & & & & \dots& & & & 0  \\
277          \vdots      & & & & & & & & \vdots \\
278          0           & & & & \dots & & & & 0  \\
279          \dfrac{1}{2n}& 0 & \dots & 0  & -\dfrac{2}{2n} & 0  & \dots & 0& \dfrac{1}{2n} \\
280          0           & & & & \dots& & & & 0  \\
281         \vdots      & & & & & & & & \vdots \\
282          0           & & & & \dots & & & & 0  
283     \end{array}
284     \right)
285 \]
286
287 Lorsque le produit de convolution est appliqué sur une fenêtre $(2n+1)\times(2n+1)$,
288 le résultat est 
289 $\dfrac{1}{2}\left(\dfrac{P(0,n)-P(0,0)}{n} - \dfrac{P(0,0)-P(0,-n)}{n}\right)$, 
290 qui représente en effet les variation horizontales de la partie horizontale 
291 du gradient autour du pixel central. On obtient donc bien une approximation de 
292 $\dfrac{\partial^2 P}{\partial x^2}$.
293 Lorsque $n$ vaut 1, ce noyau est une version centrée du noyau horizontal de différence 
294 intermédiaires. $\textit{Ki}_{x^2}''$ à un facteur  $1/2$ près).
295 Lorsque $n$ vaut 2, on retrouve $\textit{Kc}_{x^2}''$.
296
297 Les variations verticales du gradient sont aussi obtenues en faisant subir 
298 à $\textit{Ky}_{x^2}''$ une rotation d'angle  $\pi/2$.
299 Les variations diagonales sont obtenues à l'aide du gradient 
300 $\textit{Ky}_{xy}''$ défini par:
301
302 \[
303 \arraycolsep=1.4pt
304 \def\arraystretch{1.4}
305 \textit{Ky}_{xy}'' = \dfrac{1}{4}
306 \left(
307     \begin{array}{ccccccccc}
308      \frac{1}{n^2}& \dots & \frac{1}{2n} & \frac{1}{n} 
309      & 0 &
310      -\frac{1}{n}&-\frac{1}{2n} & \dots &  -\frac{1}{n^2} 
311      \\
312      \vdots & 0     &    &
313      & \dots &
314       &  &  0 & \vdots 
315      \\
316      \frac{1}{2n} & 0 &        &
317      & \dots &
318         &  & 0& -\frac{1}{2n} 
319      \\
320      \frac{1}{n} & 0 &    &    
321      & \dots &
322       &  & 0 &  -\frac{1}{n}
323      \\
324      0      &      & & & \dots& & & & 0  \\
325      -\frac{1}{n} & 0 &        &
326      & \dots &
327         &  &0 & \frac{1}{n}
328      \\
329      -\frac{1}{2n} & 0 &       &
330      & \dots &
331       &  & 0 &  \frac{1}{2n} 
332      \\
333       \vdots & 0 &    &    
334      & \dots &
335         &  & 0& \vdots 
336      \\
337      -\frac{1}{n^2}&  \dots & -\frac{1}{2n} & -\frac{1}{n} 
338      & 0 &
339      \frac{1}{n}& \frac{1}{2n} & \dots  & \frac{1}{n^2}
340     \end{array}
341     \right).
342 \]
343
344
345
346 En effet, lorsque  $n$ vaut 1, $\textit{Ky}_{xy}''$ se retrouve en calculant la moyenne
347 des variations horizontales de la composante verticale du gradient calculé à l'aide de 
348 $\textit{Ky}_{y}'$. Pour cette valeur de $n$, on a
349 $\textit{Ky}_{xy}'' =   \textit{Kc}_{xy}''$. 
350 Pour chaque nombre  $n$, $1 <  n \le N$, $\textit{Ky}_{xy}''$ se retrouve de la même
351 manière, c'est-à-dire en effectuant des moyennes de variations. 
352 Une preuve de la construction se trouve dans l'article~\cite{ccfg16:ip}.
353
354
355
356 L'objectif est de détecter les grandes variations des dérivées premières. 
357 Ainsi les dérivées secondes seront approximées comme les maximums des 
358 matrices hessiennes  obtenues lorsque $n$ varie entre  $1$ et $ N$.
359
360 La dérivée partielle $\dfrac{\partial^2 P}{\partial x^2}$ est définie par 
361
362 \begin{equation}
363 \dfrac{\partial^2 P}{\partial x^2}
364 = \max \left\{ 
365 \abs{\dfrac{\partial^2 P}{\partial x^2}_1}, \dots, \abs{\dfrac{\partial^2 P}{\partial x^2}_N}
366 \right \}. 
367 \label{eq:d2p_dx2}
368 \end{equation}
369 où $\dfrac{\partial^2 P}{\partial x^2}_n$ est le résultat de l'application 
370 du noyau $\textit{Ky}_{x^2}''$ de taille $(2n+1)\times (2n+1)$.
371 La même approche itérative est appliquée pour construire les 
372 approximations de 
373 $\dfrac{\partial^2 P}{\partial y \partial x}$ 
374 et de 
375 $\dfrac{\partial^2 P}{\partial y^2}$.
376
377 La section suivante étudie la pertinence d'interpoler une image par un polynome 
378 lorsqu'on cherche a obtenir ces dérivées secondes.
379
380
381 \section{Interpolation polynomiale pour le calcul de la matrice hessienne}\label{sec:poly}
382 Soit $P(x,y)$ la  valeur du pixel $(x,y)$ et soit  $n$, $1 \le n \le N$, 
383 tel que l'objectif est de trouver un polynome d'interpolation dans la fenêtre de taille  
384 $(2n+1)\times(2n+1)$ dont le pixel central a pour indice $(0,0)$.  
385 Il existe un unique polynôme $L : \R\times \R \to \R$ 
386 de degré $(2n+1)\times(2n+1)$ tel que  $L(x,y)=P(x,y)$ pour chaque pixel  
387 $(x,y)$ de cette fenêtre et ce polynome est défini par  
388 \begin{equation}
389 \begin{array}{l}
390 L(x,y) =  
391 \sum_{i=-n}^{n}
392 \sum_{j=-n}^{n}P(i,j)
393 \left( 
394 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
395 \frac{x-j'}{i-j'}
396 \right)
397 \left( 
398 \prod_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
399 \frac{x-i'}{i-i'}
400 \right)
401 \end{array}
402 \end{equation}
403 On peut facilement prouver que la dérivée partielle  de $L$ selon $x$ est 
404 \begin{equation}
405 \begin{array}{l}
406 \dfrac{\partial L}{\partial x} =  
407 \sum_{i=-n}^{n}
408 \sum_{j=-n}^{n} 
409 P(i,j)
410 \left( 
411 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
412 \frac{y-j'}{j-j'}
413 \right)
414 \left( 
415 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
416 \frac{1}{i-i'}
417 \prod_{\stackrel{-n\leq i''\leq n}{i''\neq i,i'}}
418 \frac{x-i''}{i-i''}
419 \right)
420 \end{array}
421 \end{equation}
422 \noindent et ainsi en déduire que les dérivées partielles de second ordre 
423 sont 
424 \begin{eqnarray}
425 \dfrac{\partial^2 L}{\partial x^2} &=&  
426 \sum_{i=-n}^{n}
427 \sum_{j=-n}^{n} 
428 P(i,j)
429 \left( 
430 \prod_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
431 \frac{y-j'}{j-j'}
432 \right) 
433 \left( 
434 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
435 \frac{1}{i-i'}
436 \sum_{\stackrel{-n\leq i''\leq n}{i''\neq i,i'}}
437 \frac{1}{i-i''}
438 \prod_{\stackrel{-n\leq i'''\leq n}{i'''\neq i,i',i''}}
439 \frac{x-i'''}{i-i'''}
440 \right)
441 \label{eq:deriv:poly:x2} \\
442 \dfrac{\partial^2 L}{\partial y \partial x} &= & 
443 \sum_{i=-n}^{n}
444 P(i,j) 
445 \left( 
446 \sum_{\stackrel{-n\leq j'\leq n}{j'\neq j}}
447 \frac{1}{j-j'}
448 \prod_{\stackrel{-n\leq j''\leq n}{j''\neq j, j'}}
449 \frac{y-j''}{j-j''}
450 \right)
451 \left( 
452 \sum_{\stackrel{-n\leq i'\leq n}{i'\neq i}}
453 \frac{1}{i-i'}
454 \prod_{\stackrel{-n\leq i''\leq n}{i''\neq i, i'}}
455 \frac{x-i''}{i-i''}
456 \right)
457 \label{eq:deriv:poly:yx}
458 \end{eqnarray}
459 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.
460 En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) 
461 se simplifie en 
462
463 \begin{equation}
464 \begin{array}{l}
465 \dfrac{\partial^2 L}{\partial x^2} =  
466 \sum_{i=-n}^{n}
467 P(i,0)
468 \left( 
469 \sum_{\stackrel{-n\leq i' < i'' \le n}{i',i''\neq i}}
470 \frac{2}{(i-i')(i-i'')}
471 \prod_{\stackrel{-n\leq i'''\leq n}{i'''\neq i,i',i''}}
472 \frac{i'''}{i'''-i}
473 \right).
474 \end{array}
475 \label{eq:deriv:poly:x2:simpl:2}
476 \end{equation}
477
478 \begin{table}[ht]
479     \caption{Noyaux $Ko''_{x^2}$ pour  calculer des dérivées de second ordre à partir d'interpolation polynomiale}
480     \centering
481 \def\arraystretch{1.4}
482     \begin{tabular}{|c|c|}
483          \hline
484          $n$ & $Ko''_{x^2}$ \\
485          \hline
486          $2$ & $\left[\dfrac{-1}{12}, \dfrac{4}{3} , \dfrac{-5}{2}, \dfrac{4}{3} \dfrac{-1}{12}\right]$ \\
487          \hline
488          $3$ & $\left[\dfrac{1}{90}, \dfrac{-3}{20}, \dfrac{3}{2}, \dfrac{-49}{18}, \dfrac{3}{2}, \dfrac{-3}{20}, \dfrac{1}{90}\right]$ \\
489          \hline
490          $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]$\\
491          \hline
492          %$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]$\\
493          %\hline
494     \end{tabular}
495
496     \label{table:sod:hori:poly}
497 \end{table}
498
499
500 \begin{table}[ht]
501 \caption{ Noyaux pour les dérivées secondes en $x$ et $y$ lors de l'interpolation polynomiale\label{table:sod:diag:poly}
502 }
503 \centering
504 %\scriptsize
505 \def\arraystretch{1.5}
506 \begin{tabular}{|c|c|}
507     \hline
508     $n$ & $Ko''_{xy}$\\
509     \hline
510     2 & $
511 \begin{bmatrix} 
512 \dfrac{1}{4} & 0 &  \dfrac{-1}{4}\\
513  0 & 0 &0\\
514 \dfrac{-1}{4} & 0 &  \dfrac{1}{4}\\
515 \end{bmatrix}
516 $
517  \\   
518  \hline
519    3 &  
520    $\begin{bmatrix} 
521 \dfrac{1}{144} & \dfrac{-1}{18} & 0 & \dfrac{1}{18} & \dfrac{-1}{144}\\
522 \dfrac{-1}{18} & \dfrac{4}{9} & 0 & \dfrac{-4}{9} & \dfrac{1}{18}\\
523 0 & 0 & 0 & 0 &0\\
524 \dfrac{1}{18} & \dfrac{-4}{9} & 0 & \dfrac{4}{9} & \dfrac{-1}{18}\\
525 \dfrac{-1}{144} & \dfrac{1}{18} & 0 & \dfrac{-1}{18} & \dfrac{1}{144}
526 \end{bmatrix}
527 $\\
528   \hline
529 \end{tabular}
530 \end{table}
531
532 Cette dérivée partielle peut s'écrire comme un produit de convolution avec un noyau
533 noté $Ko''_{x^2}$. Des instances de tels noyaux, pour $n=2$, $3$ et  $4$
534 sont données au tableau~\ref{table:sod:hori:poly}. De manière similaire,  
535 le tableau~\ref{table:sod:diag:poly} donne deux exemples pour $n=1$ et $n=2$ 
536 de noyaux $Ko''_{xy}$ permettant de calculer directement les dérivées 
537 de second ordre selon $x$ et $y$ en $(0,0)$.
538 On remarque que pour $n=1$, le noyau est égal à $Kc''_{xy}$. 
539
540
541
542
543
544
545
546 \section{Fonction de distorsion}\label{sec:distortion}
547 Une fonction de distorsion associe à chaque pixel  $(i,j)$ 
548 le coût $\rho_{ij}$ du modification  par $\pm 1$. L'objectif est d'associer une 
549 valeur faible aux pixels dont toutes les dérivées secondes sont éloignées de 0 
550 et une valeur rédhibitoire sinon.
551 Dans WOW comme dans  UNIWARD la fonction de distorsion est définie par 
552 \[
553 \rho_{ij}^w = 
554 \left(
555 \abs{\xi_{ij}^h}^{p} +
556 \abs{\xi_{ij}^v}^{p} +
557 \abs{\xi_{ij}^d}^{p} 
558 \right)^{-\frac{1}{p}}
559 \]
560 où $p$ est un nombre négatif et  
561 $\xi_{ij}^h$ (resp. $\xi_{ij}^v$ et $\xi_{ij}^d$)
562 représentent la pertinence horizontale (resp. verticale et diagonale) de modification.
563 Une faible pertinence dans une direction signifie que l'embarquement 
564 dans ce pixel est inapproprié.
565 La fonction de distorsion que l'on a retenu est une particularisation ($p=-1$) 
566 de cette dernière:
567 \[
568 \rho_{ij} = 
569 \left(
570 \abs{\dfrac{\partial^2 P}{\partial x^2}(i,j)}^{-1} +
571 \abs{\dfrac{\partial^2 P}{\partial y^2}(i,j)}^{-1} +
572 \abs{\dfrac{\partial^2 P}{\partial y \partial x}(i,j)}^{-1}
573 \right)
574 \]
575
576
577 \section{Expérimentations}\label{sec:experiments}
578
579 Tout d'abord, l'ensemble du code est accessible en ligne\footnote{\url{https://github.com/stego-content/SOS}}.
580 La Figure~\ref{fig:oneimage} représente les résultats d'embarquement de données dans 
581 l'image 38 du challenge BOSS~\cite{Boss10} en suivant les deux schémas basés 
582 sur les dérivées secondes présentés dans ce chapitre.
583 Le taux d'embarquement $\alpha$ est fixé à 0.4 bits par pixel et les noyaux sont 
584 construits avec $N=4$. On remarque bien que les pixels dans les zones uniformes 
585 et les pixels dans les bords bien définis ne sont pas modifiés par l'approche tandis 
586 qu'au contraire les zones peu prévisibles (le monument par exemple) 
587 concentrent les changements.
588
589
590
591
592 \begin{figure}[ht]
593     \centering
594     \begin{tabular}{|c|c|c|}
595     \hline
596     Schéma & Image. Stego. & Différence avec le support \\
597     \hline
598     Approche à base de $Ky$  &\includegraphics[scale=0.20]{images/38_dp}&
599     \includegraphics[scale=0.20]{images/38_dp_diff} \\
600     \hline
601     Approche à base de  $Ko$  & \includegraphics[scale=0.20]{images/38_poly} &
602     \includegraphics[scale=0.20]{images/38_poly_diff} \\
603     \hline
604     \end{tabular}
605     \caption{Exemple de changements dus à un embarquement avec  $\alpha = 0.4$}
606     \label{fig:oneimage}
607 \end{figure}
608
609
610
611
612
613 \subsection{Choix des paramètres}
614
615 Les deux méthodes présentées ici dépendent de noyaux dont la taille va jusqu'à  
616 $(2N+1)\times(2N+1)$. Cette section montre comment évaluer $N$ pour maximiser 
617 le niveau de sécurité.
618 Pour chaque approche, 1,000 images stégos avec  
619 $N=2$, $4$, $6$, $8$, $10$, $12$ et $14$ et dont les supports appartiennent 
620 à l'ensemble des 10000 images du challenge BOSS. 
621 La sécurité de l'approche a été évaluée avec le stéganalyseur 
622 Ensemble Classifier~\cite{DBLP:journals/tifs/KodovskyFH12}.
623 Pour un taux d'embarquement   $\alpha$ égal soit à  $0.1$ ou soit à  $0.4$, 
624 l'erreur moyenne de test (exprimée en pourcentage) a été calculée. 
625 Le tableau~\ref{table:choice:parameter} synthétise les résultats.
626 On observe que la taille $N=4$ (respectivement $N=12$) 
627 permet d'obtenir des erreurs suffisamment élevées pour l'approche basée sur $Ky$  
628 (resp. pour celle basée sur  $Ko$). 
629 Ces deux valeurs de paramètre sont retenues par la suite.
630
631 \begin{table}[ht]
632 \caption{Erreur moyenne de test en fonction de la taille du noyau}
633 \centering
634 \setlength{\tabcolsep}{3pt} 
635 \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
636 \cline{2-9}
637 \multicolumn{1}{c|}{} & \multirow{2}{*}{$\alpha$} & \multicolumn{7}{c|}{$N$} \\
638 \cline{3-9}
639 \multicolumn{1}{c|}{}&  & $2$ & $4$&  $6$&  $8$& $10$& $12$ & $14$ \\
640 \hline{}
641 Erreur moyenne    
642 & \textit{0.1} & 39& 40.2&  39.7&  39.8& 40.1& $39.9$&  $39.8$  \\
643 \cline{2-9}
644 de test pour le noyau $K_y$ & \textit{0.4}& 15& 18.8& 19.1&  19.0& 18.6& 18.7 & 18.7 \\
645 \hline
646 Erreur moyenne    & \textit{0.1} & 35.2 & 36.6&  36.7&  36.6& 37.1& 37.2 & 37.2 \\
647 \cline{2-9}
648 de test pour le noyau $K_o$ & \textit{0.4}  & 5.2 & 6.8& 7.5 & 7.9 & 8.1 & 8.2 & 7.6 \\
649 \hline
650 \end{tabular}
651 \label{table:choice:parameter}
652
653 \end{table}
654
655
656 \subsection{Évaluation de la sécurité}
657 Comme dans ce qui précède, la base du challenge BOSS a été retenue.
658 Ici c'est cependant l'ensemble des 10000 images qui a été utilisé pour évaluer 
659 la sécurité.
660 C'est aussi les caractéristiques SRM et Ensemble Classifier qui ont été utilisées 
661 pour évaluer la sécurité de l'approche..
662 Quatre taux d'embarquement  0.1, 0.2, 0.3 et  0.4
663 ont été retenus. Pour chaque expérience, 
664 l'aire sous la courbe de ROC (AUC),
665 l'erreur moyenne de test (ATE), 
666 l'erreur OOB (OOB) sont données et tous les résultats sont synthétisés 
667 dans le tableau~\ref{table:experiments:summary}.
668 Même si la sécurité est souvent plus faible que celle observée 
669 pour les outils les plus récents, 
670 les résultats concernant $K_y$ sont encourageants car ils ne sont pas éloignés de 
671 ceux de l'état de l'art sans aucune optimisation.
672 Enfin la faible sécurité de $K_o$ s'explique par le fait que le polynôme interpole 
673 exactement l'image en tous les points de la fenêtre, mais il ne tient pas forcément 
674 compte des variations dans celle-ci. Les dérivées secondes sont certes faciles 
675 à exprimer, mais elles ne représentent pas nécessairement fidèlement celles de l'image.
676
677 \begin{table}
678 \caption{Évaluation de la sécurité}\label{table:experiments:summary}
679 \centering
680 \begin{tabular}{|l|l|l|l|l|}
681 \hline
682  & Taux & AUC & ATE   &  OOB \\ \hline
683 {WOW}   
684             & 0.1 & 0.6501 & 0.4304 & 0.3974\\
685             & 0.2 & 0.7583 & 0.3613 & 0.3169\\
686             & 0.3 & 0.8355 & 0.2982 & 0.2488\\
687             & 0.4 & 0.8876 & 0.2449 & 0.1978\\ 
688                                        \hline
689
690 {SUNIWARD}  & 0.1 & 0.6542 & 0.4212 & 0.3972\\
691             & 0.2 & 0.7607 & 0.3493 & 0.3170\\
692             & 0.3 & 0.8390 & 0.2863 & 0.2511\\
693             & 0.4 & 0.8916 & 0.2319 & 0.1977\\ 
694  \hline
695  {MVG}      & 0.1 & 0.6340 & 0.4310 &0.4124 \\
696             & 0.2 & 0.7271 & 0.3726 &0.3399 \\
697             & 0.3 & 0.7962 & 0.3185& 0.2858\\
698             & 0.4 & 0.8486& 0.2719& 0.2353 \\ 
699  \hline
700   {HUGO}    & 0.1 & 0.6967 & 0.3982 & 0.3626 \\
701             & 0.2 & 0.8012 & 0.3197 & 0.2847 \\
702             & 0.3 & 0.8720 & 0.2557 & 0.2212 \\
703             & 0.4 & 0.9517 & 0.1472 & 0.1230 \\ 
704  \hline
705 {Approche à base de $Ky$} 
706             & 0.1 & 0.7378 & 0.3768 & 0.3306 \\
707             & 0.2 & 0.8568 & 0.2839 & 0.2408 \\
708             & 0.3 & 0.9176 & 0.2156 & 0.1710 \\
709             & 0.4 & 0.9473 & 0.1638 & 0.1324\\
710  \hline
711 {Approche à base de $Ko$} 
712             & 0.1 & 0.6831 & 0.3696  & 0.3450 \\
713             & 0.2 & 0.8524 & 0.1302  & 0.2408 \\
714             & 0.3 & 0.9132 & 0.1023  & 0.1045 \\
715             & 0.4 & 0.9890 & 0.0880  & 0.0570 \\
716                               \hline 
717                               
718 \end{tabular}
719 \end{table}
720
721
722 %\begin{figure}[ht]
723 %\centering
724 %\includegraphics[width=9cm]{22} 
725 %\caption{Average Testing Error(ATE) } 
726 %\label{fig1}
727 %\end{figure}
728
729 %\begin{figure}[ht]
730 %\centering
731 %\includegraphics[width=9cm]{11} 
732 %\caption{Out of Bag($E_{\textit{OOB}}$)} 
733 %\label{fig2}
734 %\end{figure}
735
736 %\begin{figure}[ht]
737 %\centering
738 %\includegraphics[width=9cm]{33} 
739 %\caption{Area Under Curve(AUC)} %\label{fig3}
740 %\end{figure}
741
742
743 \section{Conclusion}
744 La principale contribution de ce chapitre est de proposer des 
745 fonctions de distorsion basées sur des approximations de dérivées 
746 secondes, l'idée sous-jacente étant qu'une zone où les lignes de niveau 
747 ne sont pas clairement définies est peu prévisible.
748 Deux approches d'approximation ont été présentées.
749 La première  basée 
750 sur un produit de convolution, exploite des noyaux déjà intégrés dans des
751 algorithmes de détection de bords.
752 La seconde s'appuie sur une interpolation polynomiale de l'image.
753 Ces deux méthodes ont été complètement implantées et leur sécurité 
754 face à des stéganalyseurs a été étudiée. Les résultats encouragent 
755 à poursuivre dans cette direction.