基于生成对抗网络的端到端JPEG域图像隐写方法

文档序号:24622581发布日期:2021-04-09 20:28阅读:72来源:国知局
基于生成对抗网络的端到端JPEG域图像隐写方法

本发明涉及多媒体安全,深度学习,隐写及隐写分析领域,尤其涉及一种基于生成对抗网络的端到端jpeg域图像隐写方法。



背景技术:

隐写术是一种将秘密信息嵌入到数字媒体载体中并且不被旁人所感知到载体所发生的变化的技术。随着多媒体技术的不断发展,载体的形式也越来越多样,例如:文本,图片,音频和视频等。图像隐写主要利用了人眼的视觉冗余。通过图像隐写,发送者将想要传递的秘密信息嵌入载体图像中得到载密图像,而载体图像和载密图像间的细微区别人的肉眼无法感知到。发送者将该载密图像传送给接收者,除了发送者和接收者以外,没有人能发现载密图像中存在秘密信息,以此来实现秘密通信。隐写区别于加密最大特点就是不仅隐藏了秘密信息,而且隐藏了“信息隐藏”这一行为。



技术实现要素:

本发明旨在实现一种基于生成对抗网络的端到端jpeg域图像隐写方法,采用深度学习的生成对抗网络来进行jpeg域上的图像隐写。

为了达到上述技术效果,本发明的技术方案如下:

一种基于生成对抗网络的端到端jpeg域图像隐写方法,其特征在于,秘密信息的嵌入与提取均由生成对抗网络来完成。所述的生成对抗网络包括三个部分:编码器,解码器以及判别器。另外加入干扰层用于模拟实际传输信道中会受到的常见干扰。其训练过程包括以下步骤:

s1:将秘密信息和载体图像在jpeg域上的dct系数矩阵输入到编码器中,编码器输出载密图像对应的dct系数矩阵。

s2:将载密图像的dct系数矩阵输入到idct(离散余弦反变换)变换模块中,得到空域载密图像。

s3:将载密图像输入干扰层,得到加入干扰后的噪声载密图像的dct系数。

s4:将上述生成的噪声载密图像的dct系数输入到解码器中,得出解密信息。

s5:将s1中的载体图像的dct系数矩阵输入到idct变换模块中,得到空域载体图像。

s6:将s5中的空域载体图像和s2得到的空域载密图像输入到判别网络中,判别网络对载体图像和载密图像进行二分类,将该分类误差作为损失函数,并把该损失反向传播从而进行网络的更新。

s7:重复步骤s1-s6,直至得到训练后的生成对抗网络。

s8:根据提取信息的准确率与载密图像的安全性,挑选出效果最佳的模型。将载体图像和秘密信息放入训练好的编码器生成载密图像,将载密图像放入解码器得到解密信息。

优选地,s1中的载体图像dct系数矩阵由matlab处理得到,秘密信息为随机生成的和载体图像大小一致的二值图像。编码器包含一个预处理层和三个卷积层组,每一个卷积层组分别包含一个卷积层,批归一化层和激活层。

优选地,s2中的idct变换模块先将载密图像的dct系数矩阵进行反量化,得到载密图像在ycbcr空间上的dct系数,将该dct系数进行idct变换,再转换到rgb色彩空间上即得到rgb载密图像。

优选地,s3中的干扰层一共包含四种实际生活中常见的干扰,分别是裁剪,高斯噪声,椒盐噪声以及jpeg压缩,每一次训练可选取其中一种干扰或是多种干扰叠加,亦或是不加入干扰。加入多种叠加干扰的鲁棒性会优于不加入干扰或是加入单类干扰的。

其中对于jpeg压缩来说,主要包含以下三个步骤:对空域图像进行dct变换操作,量化,取整,最后熵编码得到压缩后的图像,流程图如图2所示。但取整操作会截断梯度的传递,所以我们引入了模拟取整函数来模拟取整的同时保持梯度的传递:

simu_round(x)=[x]+(x-[x])3

优选地,s4中的解码器包含四个卷积层组,每一个卷积层组分别包含一个卷积层,批归一化层和激活层。

优选地,s6中的判别网络大致结构和解码器相似,包含四个卷积层组和一个全连接层,每一个卷积层组分别包含一个卷积层,批归一化层和激活层,最后一个卷积层组还加入了一个池化层。

优选地,判别网络的损失函数采用判别网络常用的交叉熵损失函数。生成网络编码器-解码器选取载体图像与载密图像的差距和嵌入秘密信息与提取出来的秘密信息的差距和判别网络损失的加权和作为损失函数,计算损失并进行反向传播来更新网络,以此进行有效的生成对抗训练。判别网络的损失函数采取了常用的交叉熵函数,表示为:

其中y'i表示判别器的输出标签,yi表示图像原本的标签。

生成网络由编码器和解码器联合构成,损失函数表示为:

lg=λa*lc+λb*lm-β*ld

其中lg表示生成对抗网络的损失,该损失由三个部分的和加权构成,lc为载体图像与载密图像的差距,lm为嵌入的秘密信息与提取的解密信息的差距,而则为判别网络的损失,用于对抗判别网络;λa,λb,β分别为上述三个部分的权重;载体图像与载密图像的差异lc及嵌入秘密信息与提取秘密信息的差异lm可表示为:

lc=α*mse(c,s)+(1-ssim(c,s))

lm=α*mse(m,m')+(1-ssim(m,m'))

其中c表示载体图像,s表示载密图像,m表示嵌入秘密信息,m'表示提取秘密信息,mse为两个对象之间的均方差。mse表示为:

mse(x,y)=||x-y||2

ssim用于衡量两个对象的结构相似度,范围是[0,1],其中ssim越接近1,说明两个对象相似度越高,当ssim=1时,说明两个对象完全一致。ssim表示为:

ssim(x,y)=[l(x,y)]l*[c(x,y)]m*[s(x,y)]n

其中l(x,y)为亮度的比较,c(x,y)为对比度的比较,s(x,y)结构的比较。l(x,y),c(x,y),s(x,y)分别表示为:

其中μx和μy分别代表x,y的平均值,θx和θy分别代表x,y的标准差,θxy代表x和y的协方差,而c1,c2,c3分别为常数,避免分母为0带来的系统错误。通过计算两个损失函数并进行反向传播计算更新梯度,不断调整参数以更新网络。

优选地,s8中要结合提取信息准确率的收敛情况以及载密图像的视觉效果和抗检测性来挑选最优模型。

与现有技术相比,本方案的优点是:

1)在jpeg域上进行秘密信息的嵌入,相比之前的方法,更加适合经过jpeg压缩的图像。

2)本方法采用的网络来进行嵌入与提取,实施简单,易于使用。

3)在图片进入解码器前经过干扰层,干扰层包含多种不同形式,例如jpeg压缩,高斯噪声等,提高了该方法的鲁棒性。

4)本方法基于生成对抗网络,相比之前的工作,提高了隐写安全性。

5)本方法基于生成对抗网络,不需要太多的先验知识,均由网络自己学习得出,设计简单,易于实现。

附图说明

图1为基于生成对抗网络的端到端jpeg域图像隐写方法中对抗训练的流程图;

图2为编码器网络的示意图;

图3为彩色图像的dct变换模块的流程图;

图4为彩色图像的idct变换模块的流程图;

图5为实际进行jpeg压缩的流程图;

图6为解码器网络的示意图;

图7为判别器网络的示意图;

具体实施方式

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提供一种基于生成对抗网络的端到端jpeg域图像隐写方法,秘密信息的嵌入与提取均由经过训练得到的生成对抗网络来完成,所述的生成对抗网络包括编码器、解码器及判别器。其中生成对抗网络训练的具体流程如图1所示,主要包括以下步骤:

s1:将秘密信息和载体图像在jpeg域上的dct系数矩阵输入到编码器中,编码器输出载密图像对应的dct系数矩阵。

对于载体图像集,本实例选取了mscoco数据集的10万张彩色图像。对mscoco数据集进行处理,将图像大小统一到256x256。对于不足256x256的图像,我们进行上采样操作,对于超过256x256的图像,我们进行中心裁剪操作。本实施例中将图像进行qf(图像压缩质量因子)=75的压缩,以其dct系数作为输入。

对于秘密信息,本实例采用随机生成的与载体图像大小一致的矩阵,大小为256x256,且矩阵的取值只能是0或1。

编码器包含一个预处理层组和三个卷积层组,预处理层组和每一个卷积层组分别包含一个卷积层,批归一化层和激活层。卷积层设计为3x3的卷积核,步长为1,填充为1。激活层采用线性整流函数relu。卷积核的个数!编码器的网络结构如图2所示。

s2:将载密图像的dct系数矩阵输入到idct变换模块中,得到空域载密图像。

idct变换模块先将载密图像的dct系数用压缩质量因子qf=75的量化表进行反量化,即与qf=75的量化矩阵相乘,得到载密图像在ycbcr空间上的dct系数,将该dct系数进行idct变换操作,再转换到rgb空间上即得到rgb空间载密图像。idct变换实质即dct变换的逆变换。彩色图像的dct变换模块的具体流程如图3所示,idct变换模块流程如图4所示。

s3:将载密图像输入干扰层,得到加入干扰后的噪声载密图像的dct系数。

本方法提出的干扰层一共包含四种实际生活中常见的干扰,分别是裁剪,高斯噪声,椒盐噪声以及jpeg压缩,每一次训练可选取其中一种干扰或是多种干扰叠加,亦或是不加入干扰。加入多种叠加干扰的鲁棒性会优于不加入干扰或是加入单类干扰的。

本实施例选择加入jpeg干扰,本实施例中,选用压缩因子为75的量化表进行量化。由于进行压缩的过程中,取整操作会截断梯度的传递,所以本方法采用了模拟取整操作来保留梯度的传递。实际的jpeg压缩流程如图5所示。

s4:将上述生成的噪声载密图像的dct系数输入到解码器中,得出解密信息。

解码器包含四个卷积层组,每一个卷积层组分别包含一个卷积层,批归一化层和激活层。卷积层设计为3x3的卷积核,步长为1,填充为1。激活层采用泄露修正线性单元leakyrelu。解码器的网络结构如图6所示。

s5:将s1中的载体图像的dct系数矩阵输入到idct变换模块中,得到空域载体图像。

s6:将s5中的空域载体图像和s2得到的空域载密图像输入到判别网络中,判别网络对载体图像和载密图像进行二分类,将该分类误差作为损失函数,通过反向传播算法进行训练,根据梯度来更新网络,不断提升生成对抗网络的性能。

判别网络大致结构和解码器相似,包含四个卷积层组和一个全连接层,每一个卷积层组分别包含一个卷积层,批归一化层和激活层,最后一个卷积层组还加入了一个池化层。卷积层均设计为3x3的卷积核,步长为2,填充为1。前三个卷积层组的激活层采用泄露修正线性单元leakyrelu。最后一个卷积层组的激活层采用线性整流函数relu,并加入了自适应平均池化层。判别网络的结构如图7所示。

判别网络的损失函数采用判别网络常用的交叉熵损失函数。生成网络由编码器解码器联合构成,选取载体图像与载密图像的差距和嵌入秘密信息与提取出来的秘密信息的差距和判别网络损失的加权和作为损失函数,计算损失并进行反向传播来更新网络,以此进行有效的生成对抗训练。判别网络的损失函数采取了常用的交叉熵函数:

其中y'i表示判别器的输出标签,yi表示图像原本的标签。

生成网络由编码器和解码器联合构成,损失函数表示为:

lg=λa*lc+λb*lm-β*ld

其中lg表示生成对抗网络的损失,该损失由三个部分的和加权构成,lc为载体图像与载密图像的差距,lm为嵌入的秘密信息与提取的解密信息的差距,而则为判别网络的损失,用于对抗判别网络;本实施例中,选取λa=1,λb=1,β=1为上述三个部分的权重;载体图像与载密图像的差异lc及嵌入秘密信息与提取秘密信息的差异lm表示为:

lc=α*mse(c,s)+(1-ssim(c,s))

lm=α*mse(m,m')+(1-ssim(m,m'))

其中c表示载体图像,s表示载密图像,m表示嵌入秘密信息,m'表示提取秘密信息,mse为两个对象之间的均方差,该实施例选取α=1。mse可表示为:

mse(x,y)=||x-y||2

ssim用于衡量两个对象的结构相似度,范围是[0,1],ssim越接近1,两个对象相似度越高,当ssim=1时,两个对象完全一致。ssim表示为:

ssim(x,y)=[l(x,y)]l*[c(x,y)]m*[s(x,y)]n

其中l(x,y)为亮度的比较,c(x,y)为对比度的比较,s(x,y)结构的比较,实际计算中,该实施例选取l=m=n=1。l(x,y),c(x,y),s(x,y)分别表示为:

其中μx和μy分别代表x,y的平均值,θx和θy分别代表x,y的标准差,θxy代表x和y的协方差,而c1,c2,c3分别为常数,避免分母为0带来的系统错误。在实际计算中,我们一般设定c3=c2/2。通过计算两个损失函数并进行反向传播计算更新梯度,不断调整参数以更新网络。

s7:重复步骤s1-s6,直至得到训练后的生成对抗网络。

实施例2

本实施例通过实施例1训练得到的生成对抗网络来进行jpeg域图像隐写,具体包括:

s8:生成对抗网络训练结束后,根据提取信息的准确率与载密图像的安全性,从训练的多个生成对抗网络中挑选出一个效果最佳的生成对抗网络;将载体图像和秘密信息放入训练好的编码器即可生成载密图像,将载密图像放入解码器即可得到解密信息。

步骤s8中,结合提取信息准确率的收敛情况以及载密图像的视觉效果和抗检测性来挑选最佳的生成对抗网络。经过多方面考量验证,在本实施例中,我们选取实施例1中迭代次数125000次的模型,表现效果为最佳。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1