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

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