Image steganalysis based on deep learning
10223780 ยท 2019-03-05
Assignee
Inventors
Cpc classification
G06T2201/0083
PHYSICS
G06T2201/0065
PHYSICS
International classification
Abstract
The present invention provides a method for detecting image steganography based on deep learning, which comprises: filtering images having steganographic class label or true class label in a training set with a high-pass filter to obtain a training set including steganographic class residual images and true class residual images; training a deep network model on said training set to obtain a trained deep model for steganalysis; filtering the image to be detected with said high-pass filter to obtain a residual image to be detected; detecting said residual image to be detected on said deep model so as to determine whether said residual image to be detected is a steganographic image. The method for detecting image steganography in the present invention can create an automatic blind steganalysis model through feature learning and can identify steganographic images accurately.
Claims
1. A method for detecting image steganography based on deep learning, characterized by comprising: filtering images having steganographic class label or true class label in a training set with a high-pass filter to obtain a training set including steganographic class residual images and true class residual images; training a deep network model on said training set to obtain a trained deep network for steganalysis; filtering the image to be detected with said high-pass filter to obtain a residual image to be detected; detecting said residual image to be detected on said trained deep network so as to determine whether said residual image to be detected is a steganographic image.
2. The method for detecting image steganography based on deep learning according to claim 1, characterized in that said deep network model is a Convolutional Neural Network (CNN).
3. The method for detecting image steganography based on deep learning according to claim 2, characterized in that said CNN comprises at least two convolutional layers, at least one fully-connected layer and an output layer.
4. The method for detecting image steganography based on deep learning according to claim 3, characterized in that an activation function for elements in the convolutional layers is a Gauss function.
5. The method for detecting image steganography based on deep learning according to claim 3, characterized in that an activation function for elements in the fully-connected layer is a ReLU function (6):
f(x)=max(0,x)(6).
6. The method for detecting image steganography based on deep learning according to claim 3, characterized in that an activation function for elements in the output layer is a softmax function (8):
7. The method for detecting image steganography based on deep learning according to claim 2, characterized in that said training the deep network model comprises performing an average pooling operation to pooling windows corresponding to the convolutional layer.
8. The method for detecting image steganography based on deep learning according to claim 2, characterized in that said training a deep network model to obtain the trained deep network for steganalysis comprises: training the deep convolutional neural network CNN using a back propagation algorithm through minimizing the function shown in formula (9) so as to obtain the trained deep network for steganalysis:
log z.sub.i(9) wherein i{1, 2}.
9. The method for detecting image steganography based on deep learning according to claim 1, characterized in that said high-pass filter can be either linear or non-linear.
10. The method for detecting image steganography based on deep learning according to claim 1, characterized in that said image is a gray scale image.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5) In the figures,
DETAILED DESCRIPTION
(6)
(7) S101: filtering steganographic class images and true class images in a training set with a high-pass filter to obtain steganographic class residual images and true class residual images. Preferably, said images are gray scale images with a size of 256256.
(8) Preferably, said filtering with a high-pass filter comprises convolving image I with a filtering kernel template K as shown by equation (1):
Z=KI(1)
wherein, K is a filtering kernel that is included in the commonly used high-pass filters in traditional steganalysis, and said high-pass filters includes linear filtering kernels or non-linear filtering kernels; the present embodiment only provides one of the feasible ways, and K is a matrix with a size of 55:
(9)
(10) S102: training a deep network model using said steganographic class residual images and true class residual images to obtain a deep network based steganalysis model.
(11) Preferably, said deep network is a Convolutional Neural Network (CNN); said CNN comprises at least two convolutional layers, at least one full-connected layer; wherein the CNN, as a representative deep learning method, is a neural network with a special network structure, which incorporates such structure design concepts as local receptive fields, weight sharing, and pooling, and can learn effective feature expressions directly from data.
(12) Preferably, said CNN has altogether 5 convolutional layers, one fully-connected layer, and one output layer; in practical application, the number of convolutional layers and fully-connected layers can be determined according to such specific aspects as the size of the training image, the data scale, etc.; the input and output of each of the convolutional layers are multiple two-dimensional matrixes, which are called feature maps, and the output of each convolutional layer serves as the input of the next layer; wherein the number of feature maps output by each convolutional layer is 16, but other numerical values may also be chosen in practical application.
(13) Preferably, each of the convolutional layers comprises the following three operations:
(14) First, performing a convolution operation according to equation (3):
Y.sub.j.sup.l=.sub.iX.sub.i.sup.lK.sub.ij.sup.l+b.sub.j.sup.l(3)
wherein, X.sub.i.sup.l represents the i.sup.th input matrix of the l.sup.th convolutional layer, K.sub.ij.sup.l: represents a convolutional kernel having a size of mm for connecting the i.sup.th input matrix and the j.sup.th convolutional output matrix of the l.sup.th convolutional layer, and b.sub.j.sup.l: represents the bias of the j.sup.th convolutional output matrix of the l.sup.th convolutional layer.
(15) Preferably, the convolution kernel of the first and fifth convolutional layers has a size of 55, and the convolution kernel of the second to fourth convolutional layers has a size of 33; the convolution step size of each layer is 1 and no zero-padding operation is performed; in actual application, a convolution kernel of other sizes may be used.
(16) Second, activating each element in an output matrix Y.sub.j.sup.l+1 obtained from the convolution operation, here the activation function for elements in the convolutional layers is a Gauss function f(x):
f(x)=e.sup.x.sup.
(17) Finally, performing an average pooling operation for the activated output matrix to obtain a final output of said convolutional layer; wherein an average value pooling function is to calculate a mean value for elements in non-overlapping areas having a size of kk in the matrix; wherein the size of the pooling windows in each convolutional layer is 33 and the step size thereof is 2, but other values may be chosen for the size and step size of the pooling window according to the specific situation.
(18) Each fully-connected layer comprises multiple units; in the present embodiment, each full-connected layer comprises 128 units; in practical application, the number of units in each full-connected layer can be other values according to the specific situation.
(19) Preferably, operation of the full-connected layers comprises connecting two adjacent fully-connected layers according to equation (5):
y.sub.i.sup.l=f(.sub.iw.sub.ij.sup.lx.sub.i.sup.l+b.sub.j.sup.l)(5)
wherein, x.sub.i.sup.l represents an i.sup.th input unit of the l.sup.th fully-connected layer, w.sub.ij.sup.l represents a weight connecting the i.sup.th input unit and a j.sup.th output unit of the l.sup.th fully-connected layer, b.sub.j.sup.l represents the bias of the j.sup.th output unit of the l.sup.th fully-connected layer; here each unit is connected to all units of the previous layer, wherein the first fully-connected layer is connected to the last convolutional layer, the last fully-connected layer is connected to the output layer, and the output of each layer serves as the input of the next layer; f(x) is an activation function, preferably, an activation function for elements in the full-connected layers is ReLU function (6):
f(x)=max(0,x)(6)
(20) Preferably, the number of the output layer is one, and operation of the output layer comprises:
(21) First, performing a calculation according to equation (7):
y.sub.i=.sub.iw.sub.ijx.sub.i+b.sub.j(7)
wherein, x.sub.i represents an i.sup.th input unit of the output layer, w.sub.ij represents a weight connecting the i.sup.th input unit and a j.sup.th output unit of the output layer, b.sub.j represents an offset of the j.sup.th output unit of the output layer; wherein the output of the last full-connected layer serves as its input.
(22) Then, activating the output layer, and the activation function for elements in the output layer herein is softmax function (8):
(23)
wherein i{1, 2}.
(24) Preferably, said training a deep network on the training set on to obtain the trained detection model for steganalysis comprises:
(25) training the CNN using a back propagation algorithm through minimizing the function shown in formula (9) so as to obtain the trained deep network for steganalysis:
log z.sub.i(9)
wherein i{1, 2}.
(26) S103: filtering the image to be detected with the high-pass filter to obtain a residual image.
(27) The process of filtering the image to be detected is the same as in S101, so it will not be elaborated anymore.
(28) S104: detecting said residual image using said trained deep network based detection model so as to determine whether the corresponding image to be detected to be detected is a steganographic image.
(29) Embodiment 1 of the method for detecting image steganography based on deep learning in the present invention filters images that have been labeled in advance and uses said images to form training sets, and then trains a deep neural network on said training sets to obtain a universal image steganalysis model. In this way, it can create an automatic blind detection model through deep learning and can identify steganography images accurately.
(30)
(31) S102: training a deep network model using said steganographic class residual images and true class residual images to obtain a deep network based steganalysis model.
(32) Preferably, said deep network model is a deep convolutional neural network CNN; said deep convolutional neural network CNN comprises at least two convolutional layers that are cascaded at the inputs and outputs thereof in turn, at least one fully-connected layer and an output layer.
(33) Preferably, said CNN has altogether 5 convolutional layers and 1 fully-connected layers; in practical application, the number of convolutional layers and fully-connected layers can be determined according to such specific aspects as the size of the training image, the data scale, etc.; the input and output of each of the convolutional layers are multiple two-dimensional matrixes, which are called feature graphs, and the output of each convolutional layer serves as the input of the next layer; wherein the number of feature graphs output by each convolutional layer is 16.
(34) Preferably, each of the convolutional layers comprises the following three operations:
(35) First, performing a convolution operation according to equation (3):
Y.sub.j.sup.l=.sub.ix.sub.i.sup.lK.sub.ij.sup.l+b.sub.j.sup.l(3)
wherein, X.sub.i.sup.l represents the i.sup.th input matrix of the l.sup.th convolutional layer, K.sub.ij.sup.l: represents a convolutional kernel having a size of mm for connecting the i.sup.th input matrix and the j.sup.th convolutional output matrix of the l.sup.th convolutional layer, and b.sub.i.sup.l: represents an offset of the j.sup.th convolutional output matrix of the l.sup.th convolutional layer.
(36) Preferably, the convolution kernel of the first and fifth convolutional layers has a size of 55, and the convolution kernel of the second to fourth convolutional layers has a size of 33; the convolution step size of each layer is 1 and zero-padding operation is performed.
(37) Second, activating each element in an output matrix Y.sub.j.sup.l+1 obtained from the convolution operation, here an activation function for elements in the convolutional layers is a Gauss function f(x):
f(x)=e.sup.x.sup.
(38) Finally, in the operations included in the convolutional layer, performing a average pooling operation to the activated output matrix to obtain a final output of said convolutional layer; wherein the size of the pooling windows in each convolutional layer is 55 and the step size thereof is 2, but other values may be chosen for the size and step size of the pooling window according to the specific situation.
(39) Each fully-connected layer comprises multiple units; in the present embodiment, each full-connected layer comprises 256 units; in practical application, the number of units in each fully-connected layer can be other values according to the specific situation.
(40) Preferably, operation of the fully-connected layers comprises connecting two adjacent fully-connected layers according to equation (5):
y.sub.i.sup.l=f(.sub.iw.sub.ij.sup.lx.sub.i.sup.l+b.sub.j.sup.l)(5)
wherein, x.sub.i.sup.l represents an i.sup.th input unit of the l.sup.th fully-connected layer, w.sub.ij.sup.l represents a weight connecting the i.sup.th input unit and a j.sup.th output unit of the l.sup.th fully-connected layer, b.sub.j.sup.l represents the bias of the j.sup.th output unit of the l.sup.th fully-connected layer; here each unit is connected to all units of the previous layer, wherein the first fully-connected layer is connected to the last convolutional layer, the last fully-connected layer is connected to the output layer, and the output of each layer serves as the input of the next layer; f(x) is an activation function, preferably, an activation function for elements in the full-connected layers is ReLU function (6):
f(x)=max(0,x)(6)
(41) Preferably, the number of the output layer is one, and operation of the output layer comprises:
(42) First, performing a calculation according to equation (7):
y.sub.i=.sub.iw.sub.ijx.sub.i+b.sub.j(7)
wherein, x.sub.i represents an i.sup.th input unit of the output layer, w.sub.ij represents a weight connecting the i.sup.th input unit and a j.sup.th output unit of the output layer, b.sub.j represents the bias of the j.sup.th output unit of the output layer; wherein the output of the last full-connected layer serves as its input.
(43) Then, activating the output layer, and an activation function for elements in the output layer herein is softmax function (8):
(44)
wherein i{1, 2}.
(45) Preferably, said training a deep network on the training set on to obtain the trained detection model for steganalysis comprises:
(46) training the CNN using a back propagation algorithm through minimizing the function shown in formula (9) so as to obtain the trained deep network for steganalysis:
log z.sub.i(9)
wherein i{1, 2}.
(47) Finally it shall be noted that the above embodiments are merely for illustrating instead of limiting the technical solutions of the present invention; while the present invention has been described in detail with reference to the above embodiments, those skilled in the art shall understand that modifications can be made to the technical solutions recited in the above embodiments, or equivalent substitutions can be made to some or all of the technical features thereof; such modifications or substitutions will not make the corresponding technical solutions to substantively depart from the scope of the technical solutions described in the embodiments of the present invention.