From: couchot Date: Sat, 27 Aug 2016 10:18:56 +0000 (+0200) Subject: avancées ds YsousraStego X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/commitdiff_plain/f4997f36924772119b653509ff5ae4e8aef4200a avancées ds YsousraStego --- diff --git a/stegoyousra.tex b/stegoyousra.tex index dc17a7a..efd326d 100644 --- a/stegoyousra.tex +++ b/stegoyousra.tex @@ -37,33 +37,26 @@ en Section~\ref{sec:experiments}. -\section{Derivatives in an Image}\label{sec:gradient} +\section{Des dérivées dans une image}\label{sec:gradient} -This section first recalls links between level curves, gradient, and -Hessian matrix (Section~\ref{sub:general}). -It next analyses them using kernels from signal theory -(Section~\ref{sub:class:1} and Section~\ref{sub:class:2}). +Cette section rappelle d'abord les liens entre lignes de niveau, gradient et +matrice hessienne puis analyse ensuite leur construction à l'aide +de noyaux de la théorie du signal. -\subsection{Hessian Matrix}\label{sub:general} -Let us consider that an image can be seen as a numerical function $P$ that -associates a value $P(x,y)$ to each pixel of coordinates $(x,y)$. -The variations of this function in $(x_0,y_0)$ -can be evaluated thanks to its gradient -$\nabla{P}$, which is the vector whose two components -are the partial derivatives in $x$ and in $y$ of $P$: - -\[\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). -\] - -In the context of two variables, the gradient vector -points to the direction where the function has the highest increase. -Pixels with close values thus follow level curve that is orthogonal -to the one of highest increase. - -The variations of the gradient vector are expressed in the -Hessian matrix $H$ of second-order partial derivatives of $P$. +\subsection{Matrice hessienne}\label{sub:general} +On considère qu'une image peut être assimilée à une fonction de $\R^+\times \R^+$ +dans $\R^+$ telle que la valeur $P(x,y)$ est associée à chaque pixel de coordonnées $(x,y)$. +Les variations d'une telle fonction en $(x_0,y_0)$ peuvent être évaluées +grace au gradient +$\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). +$ +Le vecteur gradient pointe dans la direction où la fonction a le plus fort acroissement. +Des pixels ayant des valeurs voisines sont sur des lignes de niveaux qui sont orthogonales +à ce vecteur. +Les variations du vecteur gradient s'expriment usuellement à l'aide de la matrice +hessienne $H$ des dérivées partielles de second ordre de $P$. \[ H = \begin{bmatrix} \dfrac{\partial^2 P}{\partial x^2} & @@ -73,67 +66,65 @@ H = \begin{bmatrix} \end{bmatrix}. \] - - - -In one pixel $(x_0,y_0)$, the larger the absolute values of this matrix are, -the more the gradient is varying around $(x_0,y_0)$. -We are then left to evaluate such an Hessian matrix. - -This task is not as easy as it appears since natural images are not defined -with differentiable functions from $\R^2$ to $\R$. -Following subsections provide various approaches to compute these -Hessian matrices. - -\subsection{Classical Gradient Image Approaches}\label{sub:class:1} -In the context of image values, the most used approaches to evaluate gradient vectors are the well-known ``Sobel'', ``Prewitt'', ``Central Difference'', and ``Intermediate Difference'' ones. +En un pixel $(x_0,y_0)$, plus les valeurs de cette matrice sont éloignées de zéro, +plus le gradient varie en ce point. Evaluer 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. + +\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 +sont ``Sobel'', ``Prewitt'', ``Différence centrale'' et `` Difference intermediaire''. +Chacune de ces approches applique un produit de convolution $*$ entre un noyau $K$ +(rappelé dans le tableau~\ref{table:kernels:usual}) et une fenêtre $A$ de taille +$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$. +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 +dérivées partielles. + +Les deux éléments de la première ligne (respectivement de la seconde ligne) +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}$). \begin{table}[ht] -\caption{Kernels of usual image gradient operators\label{table:kernels:usual} +\caption{Noyaux usuels pour évaluer des gradients d'images\label{table:kernels:usual} } \centering \scriptsize \begin{tabular}{|c|c|c|} \hline - Name& Sobel & Prewitt \\ + Nom& Sobel & Prewitt \\ \hline - Kernel & $\textit{Ks}= \begin{bmatrix} -1 & 0 & +1 \\ -2 & 0 & +2 \\ -1 & 0 & +1 \end{bmatrix} $ & + Noyau & $\textit{Ks}= \begin{bmatrix} -1 & 0 & +1 \\ -2 & 0 & +2 \\ -1 & 0 & +1 \end{bmatrix} $ & $\textit{Kp}= \begin{bmatrix} -1 & 0 & +1 \\ -1 & 0 & +1 \\ -1 & 0 & +1 \end{bmatrix} $\\ \hline\hline - Name & Central & Intermediate \\ - & Difference &Difference \\ + Nom & Difference & Différence \\ + & centrale & Intermediaire \\ \hline - Kernel & $\textit{Kc}= \begin{bmatrix} 0&0&0 \\ -\dfrac{1}{2} & 0 & +\dfrac{1}{2} \\ 0&0&0 \end{bmatrix} $ & + Noyau & $\textit{Kc}= \begin{bmatrix} 0&0&0 \\ -\dfrac{1}{2} & 0 & +\dfrac{1}{2} \\ 0&0&0 \end{bmatrix} $ & $\textit{Ki}= \begin{bmatrix} 0&0&0 \\ 0 & -1 & 1 \\ 0&0&0 \end{bmatrix} $ \\ \hline \end{tabular} \end{table} -Each of these approaches applies a convolution product $*$ between a kernel $K$ (recalled in Table~\ref{table:kernels:usual}) and - a $3\times 3$ window of pixel values $A$. The result - $A * K$ is an evaluation of the horizontal gradient, -\textit{i.e.}, $\dfrac{\partial P}{\partial x}$ -expressed as a matrix in $\R$. -Let $K\rl$ be the result of a $\pi/2$ rotation applied on $K$. -The vertical gradient $\dfrac{\partial P}{\partial y}$ is similarly obtained by computing $A * K\rl$, which is again expressed as a matrix in $\R$. - -The two elements of the first line -of the Hessian matrix are the result -of applying the horizontal gradient calculus -first on $\dfrac{\partial P}{\partial x}$ and next -on $\dfrac{\partial P}{\partial y}$. -Let us study these Hessian matrices in the next section. -\subsection{Hessian Matrices induced by Gradient Image Approaches}\label{sub:class:2} +\subsection{Matrices hessiennes induites par des approches +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 grandient et le gradient du gradient (la matrice hessienne) +sont les mêmes. -First of all, it is well known that -$\dfrac{\partial^2 P}{\partial x \partial y} $ is equal to -$\dfrac{\partial^2 P}{\partial y \partial x}$ if -the approach that computes the gradient and the -one which evaluates the Hessian matrix are the same. For instance, in the Sobel approach, it is easy to verify that the calculus of $\dfrac{\partial^2 P}{\partial x \partial y}$