X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/blobdiff_plain/02fd942d6a30fe7197b732c94450ca466b7a49f5..refs/heads/master:/stegoyousra.tex diff --git a/stegoyousra.tex b/stegoyousra.tex index cfda20f..76a70fb 100644 --- a/stegoyousra.tex +++ b/stegoyousra.tex @@ -1,10 +1,10 @@ La plupart des schémas de stéganographie sont conçus de sorte à minimiser une fonction de distorsion. Dans les exemples du chapitre précédent, ces fonctions de distorsion sont construites dans l'objectif de préserver -les caractéristiques de l'images. +les caractéristiques de l'image. On comprend aisément que dans des régions uniformes ou sur des bords clairement définis, une modification même mineure de l'image est facilement détectable. -Au contraire dans les textures, le bruit ou les régions chaotiques +Au contraire les textures, le bruit ou les régions chaotiques sont difficiles à modéliser. Les caractéristiques des images dont ces zones ont été modifiées sont ainsi similaires à celles des images initiales. @@ -17,23 +17,26 @@ pour les courbes de niveau. Pour peu qu'on sache définir une fonction $P$ qui associe à chaque pixel $(x,y)$ sa valeur $P(x,y)$, les pixels tels que les dérivées secondes de $P$ ont des valeurs élevées -sont des bon candidats pour contenir un bit du message. +sont des bons candidats pour contenir un bit du message. Cependant, une telle fonction $P$ n'est connue que de manière discrète, \textit{i.e.}, en un nombre fini de points. Les dérivées premières et secondes ne peuvent donc pas être évaluées mathématiquement. -Au mieux, on peut construire une fonction qui approxime ces $P$ sur cet ensemble +Au mieux, on peut construire une fonction qui approxime les +dérivées de $P$ sur cet ensemble de pixels. Ordonner alors les pixels selon la matrice hessienne (\textit{i.e.}, la matrice des dérivées secondes) n'est pas trivial puisque celle-ci contient de nombreuses valeurs pour un seul pixel donné. On verra dans ce chapitre comment des approximations des dérivées -premières et secondes pour des images numériques (Section~\ref{sec:gradient}) on peu être +premières et secondes pour des images numériques (Section~\ref{sec:gradient}) +ont pu être obtenues. Deux propositions de dérivées secondes sont ensuite données et prouvées (Section~\ref{sec:second} et Section~\ref{sec:poly}). Une adaptation d'une fonction de distorsion existante est étudiée en Section~\ref{sec:distortion} et des expériences sont présentées en Section~\ref{sec:experiments}. +Ce chapitre a été publié dans~\cite{ccfg16:ip}. @@ -70,8 +73,9 @@ En un pixel $(x_0,y_0)$, plus les valeurs de cette matrice sont éloignées de z plus le gradient varie en ce point. Évaluer ce type de matrice est ainsi primordial en stéganographie. Cependant cette tâche n'est pas aussi triviale qu'elle n'y paraît puisque les images naturelles ne sont pas définies à l'aide -de fonction différentiables de $\R^+\times \R^+$ -dans $\R^+$. La suite montre comment obtenir des approximations de telles matrices. +de fonctions différentiables de $\R^+\times \R^+$ +dans $\R^+$. +La suite montre comment obtenir des approximations de telles matrices. \subsection{Approches classiques pour évaluer le gradient dans des images}\label{sub:class:1} Dans ce contexte, les approches les plus utilisées pour évaluer un gradient @@ -81,13 +85,13 @@ Chacune de ces approches applique un produit de convolution $*$ entre un noyau $3\times 3$. Le résultat $A * K$ est une approximation du gradient horizontal \textit{i.e.}, $\dfrac{\partial P}{\partial x}$. -Soit $K\rl$ le résultat de la rotation d'un angle $\pi/2$ sur $K$. +Soit $K'$ le résultat de la rotation d'un angle $\pi/2$ appliquée à $K$. La composante verticale du gradient, $\dfrac{\partial P}{\partial y}$ est obtenue -de manière similaire en évaluant $A * K\rl$. Lorsqu'on applique ceci sur toute -la matrice image, on obtient peu ou prou une matrice de même taille pour chacune des +de manière similaire en évaluant $A * K'$. Lorsqu'on applique ceci sur toute +la matrice image, on obtient une matrice de même taille pour chacune des dérivées partielles. -Les deux éléments de la première ligne (respectivement de la seconde ligne) +Les deux éléments de la première colonne (respectivement de la seconde) de la matrice hessienne sont le résultat du calcul du gradient sur la matrice $\dfrac{\partial P}{\partial x}$ (resp. sur la matrice $\dfrac{\partial P}{\partial y}$). @@ -121,9 +125,9 @@ de gradient d'images}\label{sub:class:2} Il est connu que $\dfrac{\partial^2 P}{\partial x \partial y} $ est égal à $\dfrac{\partial^2 P}{\partial y \partial x}$ si -les méthode qui calculent le gradient et le gradient du gradient (la matrice hessienne) +les méthodes qui calculent le gradient et le gradient du gradient (la matrice hessienne) sont les mêmes. -Le tableau~\ref{table:hessian:usual} résume les les noyaux +Le tableau~\ref{table:hessian:usual} résume les noyaux $K_{x^2}''$ et $K_{xy}''$ qui permettent de calculer respectivement @@ -234,20 +238,21 @@ pour chacun des opérateurs de gradient rappelés à la section précédente. \end{table} -Le noyau $\textit{Ks}_{x^2}''$ permet de détecter si le le pixel central -pixel central appartient à une bord ``vertical'', même si celui contient du bruit, -en considérant ces voisins verticaux. Ces derniers sont vraiment +Le noyau $\textit{Ks}_{x^2}''$ permet de détecter si le +pixel central appartient à un bord ``vertical'', même si celui-ci + contient du bruit, +en considérant ses voisins verticaux. Ces derniers sont vraiment pertinents dans un objectif de détecter les bords. Cependant, leur lien avec les lignes de niveau n'est pas direct. De plus tous les pixels qui sont dans la deuxième et la quatrième colonne de ce noyau sont ignorés. Le noyau de Prewitt a des propriétés similaires. Le noyau de différence centrale $\textit{Kc}_{x^2}''$ n'est pas influencé par les -voisins verticaux du pixel central et peu paraître plus adapté ici. +voisins verticaux du pixel central et peut paraître plus adapté ici. Cependant, le noyau $\textit{Kc}_{xy}''$ perd aussi les valeurs des pixels qui sont alignés verticalement et diagonalement avec le pixel central. Enfin, le noyau de différence intermédiaire $\textit{Ki}_{x^2}''$ décale à gauche la valeur des variations horizontales de $\dfrac{\partial P}{\partial x}$: -Le pixel central $(0,0)$ reçoit exactement la valeur +le pixel central $(0,0)$ reçoit exactement la valeur $\dfrac{P(0,2)-P(0,1)}{1} - \dfrac{P(0,1)-P(0,0)}{1}$, qui est une approximation de $\dfrac{\partial P}{\partial x}(0,1)$ et non de @@ -257,7 +262,8 @@ que les pixels du coin supérieur droit, en perdant toutes les autres informatio La section suivante propose une autre approche pour calculer les lignes de niveau avec une précision accrue. \section{Des noyaux pour des lignes de niveau}\label{sec:second} -On ne restreint pas aux noyaux de taille fixe (comme $3\times3$ or $5 \times 5$ +On ne se +restreint pas aux noyaux de taille fixe (comme $3\times3$ or $5 \times 5$ dans les schémas précédents). Au contraire, on considère des noyaux de taille variable $(2n+1)\times (2n+1)$, $n \in \{1,2,\dots,N\}$, où $N$ est un paramètre de l'approche. @@ -287,10 +293,10 @@ qui représente en effet les variation horizontales de la partie horizontale du gradient autour du pixel central. On obtient donc bien une approximation de $\dfrac{\partial^2 P}{\partial x^2}$. Lorsque $n$ vaut 1, ce noyau est une version centrée du noyau horizontal de différence -intermédiaires. $\textit{Ki}_{x^2}''$ à un facteur $1/2$ près). +intermédiaire. $\textit{Ki}_{x^2}''$ à un facteur $1/2$ près). Lorsque $n$ vaut 2, on retrouve $\textit{Kc}_{x^2}''$. -Les variations verticales du gradient sont aussi obtenus en faisant subir +Les variations verticales du gradient sont aussi obtenues en faisant subir à $\textit{Ky}_{x^2}''$ une rotation d'angle $\pi/2$. Les variations diagonales sont obtenues à l'aide du gradient $\textit{Ky}_{xy}''$ défini par: @@ -370,17 +376,17 @@ $\dfrac{\partial^2 P}{\partial y \partial x}$ et de $\dfrac{\partial^2 P}{\partial y^2}$. -La section suivante étudie la pertinence d'interpoler une image par un polynome -lorsqu'on cherche a obtenir ces dérivées secondes. +La section suivante étudie la pertinence d'interpoler une image par un polynôme +lorsqu'on cherche à obtenir ces dérivées secondes. \section{Interpolation polynomiale pour le calcul de la matrice hessienne}\label{sec:poly} Soit $P(x,y)$ la valeur du pixel $(x,y)$ et soit $n$, $1 \le n \le N$, -tel que l'objectif est de trouver un polynome d'interpolation dans la fenêtre de taille +tel que l'objectif est de trouver un polynôme d'interpolation dans la fenêtre de taille $(2n+1)\times(2n+1)$ dont le pixel central a pour indice $(0,0)$. Il existe un unique polynôme $L : \R\times \R \to \R$ de degré $(2n+1)\times(2n+1)$ tel que $L(x,y)=P(x,y)$ pour chaque pixel -$(x,y)$ de cette fenêtre et ce polynome est défini par +$(x,y)$ de cette fenêtre et ce polynôme est défini par \begin{equation} \begin{array}{l} L(x,y) = @@ -396,7 +402,7 @@ L(x,y) = \right) \end{array} \end{equation} -On peut facilement prouver que les dérivées partielles de $L$ selon $x$ est +On peut facilement prouver que la dérivée partielle de $L$ selon $x$ est \begin{equation} \begin{array}{l} \dfrac{\partial L}{\partial x} = @@ -453,7 +459,7 @@ P(i,j) \label{eq:deriv:poly:yx} \end{eqnarray} 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. -En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) peut +En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) se simplifie en \begin{equation} @@ -494,7 +500,7 @@ P(i,0) \begin{table}[ht] -\caption{ Noyaux pour les dérivéees secondes en $x$ et $y$ lors de l'interpolation polynomiale\label{table:sod:diag:poly} +\caption{ Noyaux pour les dérivées secondes en $x$ et $y$ lors de l'interpolation polynomiale\label{table:sod:diag:poly} } \centering %\scriptsize @@ -541,7 +547,7 @@ On remarque que pour $n=1$, le noyau est égal à $Kc''_{xy}$. \section{Fonction de distorsion}\label{sec:distortion} Une fonction de distorsion associe à chaque pixel $(i,j)$ -le coût $\rho_{ij}$ du modification par $\pm 1$. L'objectif est d'associer une +le coût $\rho_{ij}$ de modification par $\pm 1$. L'objectif est d'associer une valeur faible aux pixels dont toutes les dérivées secondes sont éloignées de 0 et une valeur rédhibitoire sinon. Dans WOW comme dans UNIWARD la fonction de distorsion est définie par @@ -555,7 +561,7 @@ Dans WOW comme dans UNIWARD la fonction de distorsion est définie par \] où $p$ est un nombre négatif et $\xi_{ij}^h$ (resp. $\xi_{ij}^v$ et $\xi_{ij}^d$) -représentent la pertinence horizontale (resp. verticale et diagonale) de modification. +représente la pertinence horizontale (resp. verticale et diagonale) de modification. Une faible pertinence dans une direction signifie que l'embarquement dans ce pixel est inapproprié. La fonction de distorsion que l'on a retenu est une particularisation ($p=-1$) @@ -570,7 +576,7 @@ de cette dernière: \] -\section{Experimentations}\label{sec:experiments} +\section{Expérimentations}\label{sec:experiments} Tout d'abord, l'ensemble du code est accessible en ligne\footnote{\url{https://github.com/stego-content/SOS}}. La Figure~\ref{fig:oneimage} représente les résultats d'embarquement de données dans @@ -611,10 +617,9 @@ concentrent les changements. Les deux méthodes présentées ici dépendent de noyaux dont la taille va jusqu'à $(2N+1)\times(2N+1)$. Cette section montre comment évaluer $N$ pour maximiser le niveau de sécurité. -Pour chaque approche, 1,000 images stegos avec -$N=2$, $4$, $6$, $8$, $10$, $12$ et $14$ et dont les supports appartiennent -à l'ensemble des 10000 images du challenge BOSS. -LA sécurité de l'approche a été évaluée avec le stéganalyseur +Pour chaque approche ($N=2$, $4$, $6$, $8$, $10$, $12$ et $14$), +1000 images stégos du challenge BOSS ont été selectionnées. +La sécurité de l'approche a été évaluée avec le stéganalyseur Ensemble Classifier~\cite{DBLP:journals/tifs/KodovskyFH12}. Pour un taux d'embarquement $\alpha$ égal soit à $0.1$ ou soit à $0.4$, l'erreur moyenne de test (exprimée en pourcentage) a été calculée. @@ -622,7 +627,7 @@ Le tableau~\ref{table:choice:parameter} synthétise les résultats. On observe que la taille $N=4$ (respectivement $N=12$) permet d'obtenir des erreurs suffisamment élevées pour l'approche basée sur $Ky$ (resp. pour celle basée sur $Ko$). -Ces deux valeurs de paramètre sont retenues par la suite. +Ces deux valeurs de paramètres sont retenues par la suite. \begin{table}[ht] \caption{Erreur moyenne de test en fonction de la taille du noyau} @@ -654,7 +659,7 @@ Comme dans ce qui précède, la base du challenge BOSS a été retenue. Ici c'est cependant l'ensemble des 10000 images qui a été utilisé pour évaluer la sécurité. C'est aussi les caractéristiques SRM et Ensemble Classifier qui ont été utilisées -pour évaluer la sécurité de l'approche.. +pour évaluer la sécurité de l'approche. Quatre taux d'embarquement 0.1, 0.2, 0.3 et 0.4 ont été retenus. Pour chaque expérience, l'aire sous la courbe de ROC (AUC), @@ -736,23 +741,16 @@ compte des variations dans celle-ci. Les dérivées secondes sont certes faciles %\end{figure} -% \section{Conclusion} - -% The first contribution of this paper is to propose of a distortion -% function which is based on second order derivatives. These -% partial derivatives allow to accurately compute -% the level curves and thus to look favorably on pixels -% without clean level curves. -% Two approaches to build these derivatives have been proposed. -% The first one is based on revisiting kernels usually embedded -% in edge detection algorithms. -% The second one is based on the polynomial approximation -% of the bitmap image. -% These two methods have been completely implemented. -% The first experiments have shown that the security level -% is slightly inferior the one of the most stringent approaches. These first promising results encourage us to deeply investigate this research direction. - -% 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. -% 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. - - +\section{Conclusion} +La principale contribution de ce chapitre est de proposer des +fonctions de distorsion basées sur des approximations de dérivées +secondes, l'idée sous-jacente étant qu'une zone où les lignes de niveau +ne sont pas clairement définies est peu prévisible. +Deux approches d'approximation ont été présentées. +La première basée +sur un produit de convolution, exploite des noyaux déjà intégrés dans des +algorithmes de détection de bords. +La seconde s'appuie sur une interpolation polynomiale de l'image. +Ces deux méthodes ont été complètement implantées et leur sécurité +face à des stéganalyseurs a été étudiée. Les résultats encouragent +à poursuivre dans cette direction. \ No newline at end of file