黄 印 周 军 梅红岩
(辽宁工业大学电子与信息工程学院 辽宁 锦州 121001)
图像隐写是将额外信息以不可见的方式隐藏到图像载体中的一种信息安全技术[1]。图像隐写技术在多媒体信息安全领域和版权保护领域有着广泛的应用价值,受到了国内外许多学者的关注[2-5]。
根据秘密信息的隐藏方式,图像隐写方法主要有三类,即基于修改的隐写方法、基于选择的隐写方法、基于生成式的隐写方法。基于修改的隐写方法[6-7]以修改图像的方式嵌入秘密信,但含密图像总会不可避免地留有修改痕迹。随着基于深度学习的隐写分析技术不断发展,使得基于修改的隐写方法在隐匿信息时,秘密信息不被发现的可能性越来越小。基于选择的隐写方法[8-10]不修改原始图像,根据待传递的密文选择图像,有效避免了隐写分析技术的检测,但查询符合特定条件的图像困难,使得基于选择的隐写方法停留在理论探索阶段。
基于生成式的隐写方法主要借助生成对抗网络GAN(Generative Adversarial Network,GAN)[11]优秀的图像生成能力,以秘密信息为驱动来生成含密图像。Wu等[12]提出一种基于GAN的卡登格子方案,可以在图像的破损区域嵌入秘密信息,但容量较低。刘明明等[13]提出基于ACGAN的图像隐写方法,能够将秘密信息隐藏在图像标签中,并使用辅助分类器对图像分类来获得秘密信息,然而训练过程中需要大量的图像标签,适用性不够理想。Hu等[14]提出基于DCGAN图像隐写方法,可以在发送端把秘密信息隐藏在噪声数据中,在接收端提取出所隐藏的秘密信息。但该方法直接利用GAN嵌入隐写信息并提取,未考虑秘密信息对图像风格的影响。例如,秘密信息控制图像的颜色、类别等显式的图像特征,这些特征与秘密信息紧密相关,影响图像隐写方法的隐蔽性。
有鉴于此,本文基于双分支生成对抗网络提出了一种新的图像隐写方法,主要工作如下:(1) 给出一种双分支编码器,以无监督学习的方式减少图像风格和秘密信息之间的联系。双分支编码器的风格分支控制图像风格;信息分支隐藏秘密信息,使秘密信息在隐藏时具有较高的隐蔽性。(2) 引入互学习训练方法,使训练方向相反的双分支编码器、解码器协同工作,提高模型的准确率。实验验证了本文方法在容量、隐蔽性和准确率方面的优势。
生成对抗网络GAN是Goodfellow等[11]提出的一种无监督学习的方法,主要由生成网络和判别网络两部分组成,如图1所示。GAN借鉴博弈论中对抗的思想,将生成网络和判别网络分别看作是博弈的双方,博弈双方通过对抗来不断迭代优化网络中的参数,使生成网络和判别网络的性能得到提升。GAN的目标是学习真实样本x的数据分布Pdata。首先定义随机噪声z,通过生成网络G来生成样本G(z)。然后利用判别网络D,判断输入数据的来源,即判断数据是来自生成样本还是真实样本。最后训练生成网络G使生成的样本G(z)的数据分布尽可能符合真实样本x的数据分布Pdata,训练判别网络D使其精准地判断数据的来源。
图1 GAN结构
在GAN中生成网络G和判别网络D的优化可看作是一个二元极小极大的问题,建立包含G和D的目标函数V(G,D),训练过程如式所示:
Ez~Pz[log(1-D(G(z)))])
(1)
式中:E为数学期望;Pz为噪声的数据分布。
GAN通过交替更新两个网络的参数来完成训练,先固定生成网络G,更新判别网络D的参数,再固定判别网络D,更新生成网络G的参数。当Pz=Pdata时,生成网络G与判别网络D达到全局最优解。
随着研究的深入,许多学者提出了对GAN的改进方法。WGAN[15]引入Wasserstein距离来优化JS散度,生成更多的图像种类。InfoGAN[16]对随机噪声z进行约束,提高了对随机噪声z的解释性。DCGAN[17]将传统GAN与卷积神经网络进行结合,增加了训练的稳定性,提高了生成图像的质量。StyleGAN[18]将潜在因子映射到隐藏空间,以无监督学习的方式分离图像中人物的姿势、身份等高级属性。同时,利用随机噪声来使人物的头发、雀斑等特征发生变化。
一般地,应用生成对抗网络进行图像隐写,主要应用经典生成对抗网络方法进行隐写,直接应用单一输入将秘密信息隐写于图像中,秘密信息直接控制图像特征,影响了隐写的隐蔽性[14]。
本文提出一种基于双分支生成对抗网络的图像隐写方法。双分支生成对抗网络在生成含密图像的过程中,以无监督学习的方式减少图像风格和秘密信息之间的联系,网络的基础模型的组成主要包括信息映射方法、双分支编码器、判别器以及解码器。信息映射方法是指将秘密信息按一定规则映射为信息向量的方法;双分支编码器采用双分支结构进行设计,主要包括信息分支、风格分支和生成器,其中,信息分支主要用于隐藏秘密信息,风格分支主要用于控制图像风格,生成器采用StyleBlock模块[19]进行设计;判别器采用Stylegan[18]中判别器结构,利用对抗训练使生成的图像更加真实;解码器与判别器相似,但最后一层采用全连层,主要用于提取秘密信息。此外,文中图像隐写方法还应用互学习训练方法来提高模型准确率。基于双分支生成对抗网络的图像隐写方法如图2所示。
图2 基于双分支生成对抗网络的图像隐写方法
通过构建秘密信息与信息向量之间的一种映射规则,将秘密信息隐藏在生成的图像之中,使图像传输的同时,也将秘密信息传输出去。
从均匀分布[-1,1]中随机采样来获得维度为nz的信息向量z={zi|i=1,2,…,nz}。记二进制秘密信息s的维度为ns,nz与ns之间的维数关系满足式(2)。
ns=σnz
(2)
式中:σ为缩放因子,可取的值有1、2、3,维度nz为100。
秘密信息与信息向量之间的映射规则采用Hu等[14]描述的规则,记序列m={mi|i=1,2,…,ns}每一分量是秘密信息s中σ位二进制数所对应的十进制数的值,建立m到z之间的映射关系,如式(3)所示。
(3)
式中:函数random(x,y)的功能是随机生成区间[x,y]之间的一个数;δ是区间间隔,文中设置为0.001。
为了从信息向量中恢复秘密信息,建立z到m之间的映射关系,z到m之间的映射关系式如式(4)所示。
mi=(zi+1)×2σ-1i=1,2,…,nz
(4)
通过式(4)将信息向量z恢复为m,将m进行二进制转换来得到秘密信息s,实现秘密信息的提取。
现有大部分基于生成式的图像隐写方法利用GAN进行图像隐写的时候,通常只将秘密信息作为网络输入。为了生成含密图像,秘密信息往往需要控制生成图像的风格,导致隐蔽性降低。大多数以无监督方式分离图像特征的深度学习方法之所以能取得成功,是因为这些网络将多输入结构考虑进来,比如信息生成对抗网络InfoGAN[16]、风格生成对抗网络StyleGAN[18]。本文将多输入结构引入到图像隐写任务中,重新设计编码器输入结构,给出了一种双分支编码器,使得网络以无监督学习的方式减少秘密信息对含密图像风格的影响。双分支编码器设计的基本思想是通过不同分支来控制含密图像的合成,采用两个分支来分别控制图像的风格和隐藏秘密信息,从而充分提高图像隐写任务的隐蔽性。
双分支编码器结构主要包括信息分支、风格分支和生成器三部分。信息分支中,输入的是信息向量z(由信息映射方法得到),该分支的主要目的是隐藏秘密信息。风格分支中,输入的是随机采样的噪声w,该分支的主要目的是控制图像风格。生成器利用信息分支和风格分支输出的结果,生成携带秘密信息的图像。双分支编码器结构如图3所示。
图3 双分支编码器结构图
在信息分支网络结构中,将结果逐像素添加至特征图中,达到隐藏秘密信息的目的。在风格分支网络结构中,将结果输出至卷积层中来控制不同尺度下图像特征的强度,从而有效控制图像风格。风格分支和信息分支都包含若干全连接层和仿射变换。其中,风格分支包括8个串联的全连接层和10个仿射变换A;信息分支包含5个并联的全连接层和10个仿射变换B。本文利用StyleBlock模块[19]作为生成器的基础结构,StyleBlock模块结构由调制器、解调器、双线性上采样和3×3卷积构成,一方面利用调制器、解调器对3×3卷积的权重归一化来提高GAN训练稳定性,另一方面利用双线性上采样使神经网络在训练过程中由粗粒度到细粒度的生成图像,StyleBlock模块结构如图4所示。
图4 StyleBlock模块结构
生成器由5个StyleBlock模块和1×1卷积构成,网络的输出为携带秘密信息的图像,生成器结构如表1所示。
表1 生成器结构
图像隐写准确率是一项十分重要的属性,反映提取秘密信息的能力。本文通过互学习训练方法来达到提高模型准确率的目的。互学习神经网络模型[20]借助正、负向神经网络,将“原因”和“结果”互相作为学习对象,进行双向学习。
应用互学习神经网络训练方法,本文使双分支编码器、解码器两个训练方向相反的网络相互学习。在给定秘密信息时,正向学习利用双分支编码器生成含密图像,实现顺向认知过程;在给定含密图像时,负向学习利用解码器来重构秘密信息,完成逆向认知过程。我们将解码器产生的误差以反向传播的方式对双分支编码器的权重进行优化,将原本相互独立的双分支编码器、解码器结合起来。其中,为了减少对图像风格的影响,只对信息分支权重进行调整。解码器产生的误差如式(5)所示。
(5)
式中:nz为信息向量的维度。z为双分支编码器输入的信息向量,z′为解码器提取的信息向量。
设神经网络的迭代次数为k,样本总数为M,则基于双分支生成对抗网络的图像隐写方法训练过程如算法1所示。
算法1基于双分支生成对抗网络的图像隐写方法
1.初始化双分支编码器、判别器和解码器网络结构网络权值;
2.重新排列训练样本顺序;根据样本批量个数d,将训练样本平均分成t个子批量[20],t=M/d,表示向上取整;
3.利用对抗学习[11]和互学习训练方法训练双分支编码器、判别器和解码器;
4.将步骤3循环进行t次;
5.将秘密信息S拆分成若干子序列si,i=1,2,…,l;
6.根据信息映射方法将每个子序列si映射为信息向量z;
7.利用双分支编码器生成含密图像;
8.利用解码器从含密图像中提取信息向量z′;
11.根据误差结果和迭代次数k判断是否达到收敛要求,若达到要求,则网络完成训练,否则循环步骤2-步骤10。
其中,步骤5-步骤7是含密图像生成过程,步骤8-步骤10是秘密信息提取过程。
基于双分支生成对抗网络的图像隐写方法流程如图5所示。
图5 基于双分支生成对抗网络的图像隐写方法流程
基于双分支生成对抗网络的图像隐写方法的核心算法主要包括含密图像生成和秘密信息提取两个部分,为了更好地理解文中图像隐写方法的工作原理,分别总结两个算法的伪代码如算法2和算法3所示。
算法2含密图像生成算法
Input:秘密信息S、双分支编码器G
Output:含密图像stego
1.Begin
2.ns=σ×nz
3.l=length(S)/ns
4.fori=1 toldo
//处理秘密信息
5.forj=1 tonsdo
//处理秘密信息子序列
6.m=0
7.fork=itoi+σ-1do
//信息映射方法
8.m=m+2j+σ-1-ksik
9.endfor
10.j=j+σ
11.generaterby using Eq.(3)
12.insertrintozi
13.endfor
14.generatewi~Uniform(-1,1)
15.generatestegoi=G(wi,zi)
//生成含密图像
16.insertstegoiintostego
17.endfor
18.returnstego
19.End
算法3秘密信息提取算法
Input:含密图像stego、解码器E
Output:秘密信息S
1.Begin
2.l=length(stego)
3.fori=1 toldo
//处理含密图像
4.zi=E(stegoi)
//提取信息向量
5.m=0
6.fori=1 tonzdo
//信息映射方法
7.generatemby using Eq.(4)
8.insert binary bits with value ofmintoSi
9.endfor
10.insertSiintoS
11.endfor
12.returnS
13.End
文中使用的实验环境是学院实验室现有环境,实验设备为一台装有Tesla P100显卡、Intel Xeon CPU的服务器,服务器的内存为13 GB,操作系统为Ubuntu16.04,算法程序用Python3.7版本的Pytorch深度学习框架实现,使用的集成开发环境为VSCode。
实验在CelebA人脸数据集[21]上进行,CelebA人脸数据集是来自香港中文大学的开放数据集,共包含10 117个人物身份的202 599幅彩色脸部图像,涉及各种姿态和复杂背景。每张脸部图像尺寸为178像素×218像素,包含5个脸部特征点和40种属性(性别、发色等)的脸部相关标记。
在实验中,将CelebA人脸数据集图像像素值归一化到[-1,1]之间,子批量大小设置为64。网络模型的初始权重服从N(0,0.02),采用Adam优化方法,学习率设置为0.000 2,更新变量β1=0.5,β2=0.999。信息向量z的维度nz采用Hu等[14]提出的方法中的参数设置,设置为nz=100。从均匀分布[-1,1]中随机采样来获得维度为100的噪声w。
隐写容量由图像中隐藏秘密信息的比特数和图像尺寸决定。由信息映射方法可知,nz维信息向量z中的每个值对应秘密信息s中σ位二进制比特数。对于尺寸为N×N的图像,图像隐写容量C的计算方法如式(6)所示。
(6)
应用本文提出的方法将100维的信息向量z作为输入,生成尺寸为64×64的含密图像,在σ=1时,文中方法的隐写容量为2.44×10-2bit/pixel;在σ=3时,文中方法的隐写容量为7.32×10-2bit/pixel。Liu等[21]的方法和Otori等[22]的方法生成的含密图像尺寸较大,但在隐写容量上,本文提出的方法隐写容量较高。此外,Hu等[14]提出的方法在无载体图像隐写方法中具有高隐藏容量的特点,当本文提出的方法生成的图像尺寸、秘密信息以及信息映射方法与Hu等[14]的方法相同时,方法的隐写容量也与Hu等的方法[14]相同,因此本文提出的方法也具有高隐写容量的特点。方法的隐写容量对比结果如表2所示。
表2 隐写容量对比
隐蔽性是衡量图像隐写效果的重要因素。评价图像隐写的隐蔽性主要分为主观评价和客观评价,前者主要通过人的主观感受来评价图像隐蔽性,后者是根据量化指标对隐蔽性进行衡量。为验证文中方法的隐蔽性,将Liu等[14]的方法得到的图像隐写结果作为基准实验,再与本文提出的图像隐写方法得到的结果作定性和定量两方面的分析与比较。
在定性实验中,Hu等[14]使用DCGAN作为基础模型,模型训练比较稳定,生成图像质量较好。不过,其在隐藏信息时秘密信息直接决定图像风格。我们提出的方法将模型的输入拆分为两个分支,能够有效减少秘密信息对图像风格的影响,例如本文模型可以在生成携带不同秘密信息的图像Gs时,使含密图像的风格相近,同时,本文模型也能够在生成隐藏相同秘密信息的图像Gn时,使含密图像的风格变化较大。此外,本文提出的图像隐写方法的图像更自然,图像中噪声更少。定性实验对比结果如图6所示。
图6 定性实验对比结果
在定量实验中,本文利用峰值信噪比(Peak Signal To Noise Ratio,PSNR)和结构相似度(Structural Similarity Index,SSIM)2个指标对图像隐蔽性进行分析。PSNR如式(7)所示。
(7)
式中:n=8,EMS为两个图像之间的均方误差。
SSIM如式(8)所示。
SSIM(x,y)=L(x,y)C(x,y)S(x,y)
(8)
式中:L(x,y)、C(x,y)、S(x,y)分别表示图像的亮度、对比度和结构相似度。PSNR和SSIM的数值越大代表图像越相似。
为了更加客观和准确地评价图像隐写方法的隐蔽性,本文随机选取100幅含密图像进行测试,然后在PSNR和SSIM指标上对方法进行对比。相较于DCGAN[14]的评价结果,本文方法生成的图像Gs在PSNR和SSIM上分别提高了17.65和0.60,说明本文方法在隐藏不同秘密信息时,可以减少含密图像的风格差异。本文方法生成的图像Gn在PSNR和SSIM两个评价指标上基本与DCGAN[14]一致且低于本文方法生成的图像Gs,说明本文方法在隐藏相同秘密信息时,可以增大含密图像的风格差异。由此可得采用本文方法可有效减少秘密信息对图像风格的影响,提高图像隐写的隐蔽性。定量实验对比结果如表3所示。
表3 定量实验对比结果
本文利用误码率(Bit Error Rate,BER)验证模型的准确率。BER定义为RBE=m/M×100%,其中,m表示错误恢复秘密信息的比特数,M表示传输秘密信息的总比特数。
σ值和不同图像尺寸影响本文模型的准确率。随着训练的进行,本文模型的误码率不断降低,在训练到30左右批次时趋于稳定。在σ=1且图像尺寸为64×64的情况下,本文模型的误码率在1%左右。随着σ值的增加(图像尺寸的减小),本文模型的误码率开始上升。图7、图8分别给出了σ值和不同图像尺寸对本文模型误码率的影响。
图7 不同σ取值下的误码率
图8 不同图像尺寸下的误码率
互学习训练方法在提高模型准确率方面有较好的效果。应用互学习训练方法可以降低模型的误码率,我们将不使用互学习训练方法的基准模型和使用互学习训练方法的模型进行了比较,结果表明,使用互学习训练方法明显降低模型的误码率。图9展示了互学习训练方法在本文模型和DCGAN[14]上对误码率的影响,可以看出,利用互学习训练方法在两个模型上表现出较大的促进作用。
图9 互学习训练方法对模型误码率的影响
本文给出的图像隐写方法能够应用在网络信息传递中传递秘密信息,可应用于国防、信息安全、人类生活和隐私保护等各个领域。为了直观地说明方法的应用过程及场景,下面以隐写秘密信息为例,说明本文提出方法的主要过程和效果。
第一步,发送方随机生成300维的秘密信息{011010…110}。
第二步,发送方根据信息映射方法将秘密信息映射为100维的信息向量{-0.101,-0.352,…,0.602}。
第三步,发送方在已训练好的双分支编码器上输入信息向量和5个不同噪声w进行测试,得到的5种风格含密图像如图10所示。
图10 生成的含密图像
第四步,发送方从生成的含密图像中随机选取一幅图像发送给接收方。
第五步,接收方采取发送方的逆过程,利用解码器从接收到的含密图像中提取信息向量。
第六步,接收方根据信息映射方法将信息向量映射为秘密信息,实现秘密信息的提取。
本文以人们的行为习惯为构造原则,根据社交平台上较为广泛使用的人们行为习惯,利用双分支生成对抗网络,构造出具有实际意义的携带秘密信息的人脸图像并在社交网络上传输。从图10可以看出,生成的人脸图像在表达形式上符合特定的逻辑表达,符合人们的行为习惯,能达到隐蔽传递信息的目的。人脸图像是由双分支编码器直接生成的伪自然图像,没有对载体做任何修改,避免了在隐写过程中对特定原始图像载体的依赖。同时,生成的伪自然图像十分逼真,利用人眼难以区分自然图像和伪自然图像的差别。此外,我们还利用无监督学习的方式减少秘密信息对人脸图像风格的影响,保证相同秘密信息在不同时间和地点,所得到的人脸图像呈现风格不同,可以更好地伪装成日常传输的常用图像。面对复杂且多样的隐写分析人员,相比于传统的图像隐写方法,本文所提出的方法能更加安全地进行秘密通信。
本文在使用生成对抗网络实现图像信息隐藏的过程中,提出了基于双分支生成对抗网络的图像隐写方法,该方法具有高容量、高准确率和良好的隐蔽性等特性。双分支生成对抗网络可以有效地将秘密信息隐藏在图像中,并减少秘密信息对图像风格的影响。本文在保证高隐蔽性的基础上,利用互学习训练方法,提高了模型的准确率,这是大多数基于生成式的图像隐写方法未涉及的。本文在CelebA数据集上进行了实验验证,实验结果表明,本文在提高隐蔽性和提升准确率方面的模型设计是有效的。下一步将考虑通信中噪声的影响,从而进一步提高方法的鲁棒性。