张敏情, 李宗翰, 刘 佳, 雷 雨
(1. 武警工程大学 密码工程学院 陕西 西安 710086; 2. 武警工程大学 网络与信息安全武警部队重点实验室 陕西 西安 710086)
随着深度学习技术的进步,生成对抗网络(generative adversarial networks,GAN)[1]作为一种深度生成模型的典型代表得到了广泛关注,成为当前计算机科学研究的前沿与热点。GAN是Goodfellow 等于 2014年提出的一种深度生成模型。该模型由一个生成器和一个判别器构成,通过建立生成器和判别器的极小、极大博弈,来优化生成样本的能力。理论上通过GAN模型训练的生成器生成样本的分布能够逐步逼近真实数据样本的分布,生成模型构造自然图像能力的显著提升,为实现载体合成式图像隐写方法提供了技术支撑。同时,以数据驱动的生成模型为基础展开隐写技术的研究,将使隐写方案设计模式在传统人工设计的基础上,能够充分借助自动化手段不断完善,为图像隐写方法的研究注入新的动力。
在现代隐写方法中,载体合成式隐写是指在不预先指定原始载体的情况下,按照一定规则直接生成含密载体,含密载体与真实的自然载体应具有不可区分性。Hayes等在文献[2]的基础上,提出利用三方对抗网络,让机器自学习的一种隐写方法[3]。Liu等提出了基于ACGAN的无载体信息隐藏方案stego-ACGAN[4],该方案首先建立秘密信息与噪声的映射关系——码表,而后利用ACGAN的特点,将噪声和类别标签联合,作为驱动直接生成含密图像。Liu等从早期的卡登格子的思想出发,利用图像补全技术,提出了一个数字化的卡登格子的方案[5-6]。该方案从损毁图像出发,在损毁图像上进行修改,并将这个含有消息的损毁图像作为约束条件,利用图像补全技术进行图像合成,合成的图像中含有秘密消息。通信双方利用共享的卡登格子进行消息嵌入和提取。由于传统GAN采用随机噪声生成图像,难以达到隐写的目的,Hu等[7]提出的DCGAN隐写方案通过将秘密信息分段并映射成(-1,1)上的噪声,而后输入到生成器中生成含密图像,恢复消息时,将含密图像输入到预先训练好的提取器中并输出噪声,利用映射关系将噪声恢复成秘密信息,但此方法存在隐写图像质量不高,隐写容量较低的缺点。针对此问题,本文提出一种基于边界平衡生成对抗网络(BEGAN)的载体合成式隐写方法。BEGAN采用自编码器结构,结合与以往生成模型不同的损失函数来估计分布的误差之间的距离,能够生成更加逼真的图像,且训练速度更快更稳定。通过BEGAN模型进行本文隐写方案的实施,能够有效解决生成图像的质量和隐写容量都较低的问题。
传统的隐写评价是通过对比隐写图像与原始载体来实现的,如峰值信噪比、结构相似性[8]、均方差、通用质量指标[9]等。载体合成的隐写不需要原始载体,而是依赖生成模型直接生成含密图片。本节分析了当前生成图像隐写质量评价的若干指标,首次把生成的含密图像质量评价纳入到隐写安全评价方案中,这是因为在隐写方案中,图像的真实程度直接决定了该含密载体被怀疑为含密图像的可能性。在传统的基于载体的隐写方案中,通常通过定义原始载体和含密载体的失真度来表示这种安全性,在生成式隐写中,由于无法获得一个原始的载体,因此需要定义一个图像质量来进行含密图像质量的评价。生成对抗网络的模型评价有inception score(IS)[10],IS评分能够评估图像质量及多样性,但一些看似噪声的图像的IS评分也可能很高。
文献[11]提出的mode score(MS)评分能在一个指标中成功地测量生成模型的多样性视觉质量,但在没有标签的数据集或标签不足以表征每种数据模式的情况下,指标不能很好地工作。
文献[12]提出的generative adversarial metric(GAM)评价方法需要两个模型相互比较从而进行评价,对于较多模型一起比较的情况,该方法较复杂。
文献[13]提出的frechet inception distance(FID)评价方法相对于IS方法来说,在相同条件下,FID方法能力更强,对扰动的判别更准,而IS是波动的、保持不变的,甚至是下降的。本文采用FID作为生成的含密图像质量的评价指标。
BEGAN[14]是一个简单且具有鲁棒性的 GAN 架构,有训练速度快且能稳定收敛的优点。其与以往的GAN不同之处在于:BEGAN的判别器使用的是由编码器和解码器组成的自编码结构。如图1所示,编码器结构以图像信息作为输入,每层卷积2次,采用3×3的卷积核,在其输出端应用指数线性单位。每次下采样步幅为2,每次采样时卷积滤波器线性增加。在编码器与解码器交界处,处理一个通过全连接产生的嵌入状态的张量。解码器结构与编码器相反,其输入为1×128的噪声,输出为图像信息。
图1 BEGAN的结构Figure 1 Structure of BEGAN
GAN以及其变种都是希望生成器生成的数据分布尽可能地接近真实数据的分布,当生成数据分布等同于真实数据时,则认为生成器生成的样本难以区分。而BEGAN采用的方式是估计分布的误差之间的距离,只要分布的误差分布相近,则认为这些分布相近。BEGAN模型的损失函数为
LD=L(x)-kt·L(G(zD)),LG=L(G(zD))=-LD,
其中:x表示真实图像;G(zD)表示生成图像;zD与zG为来自z的样本。判别器的损失LD为真实图像与经过自编码器后生成的图像之间的损失。
为了控制G网络和D网络之间能力的平衡,以及G网络生成样本多样性和质量之间的平衡,模型还引入γ和k两个参数,用kt来控制梯度下降中对L(G(zD))的控制程度,λk是kt+1的更新步长。超参数γ为生成样本损失L(G(z))与真实样本损失L(x)的期望之比,此超参数能够通过均衡判别器与生成器来稳定训练过程,可用来衡量生成样本的多样性,其值越低表示生成样本多样性越低,所用公式为
kt+1=kt+λk(γL(x)-L(G(zG))),γ=E[L(G(z))]/E[L(x)]。
BEGAN采用编码-解码结构使得生成图像更接近真实图像,且在实际应用中,BEGAN生成图像在质量上比DCGAN生成图像质量高,所以本文方案采用BEGAN模型。
如图2所示,发送方与接收方协商好模型参数,接收方预先训练好提取器。发送时,发送方将秘密信息转化为噪声,并输入到生成器中得到含密图像,然后通过信道传递给接收方;接收方在接收到含密图像后,将之输入到预先训练好的提取器中,提取出噪声后,用事先约定好的方法转化为秘密信息以完成解密。
图2 本文方法结构图Figure 2 Structure of the proposed method
BEGAN结构中的编码器输入为图像,输出为1×128的张量,考虑采用相似结构的情况下,修改约束条件,构建成为提取器,用来恢复含密载体中的秘密消息。提取器结构如图3所示,输入为从生成器中生成的尺寸为64*64*3的含密图像,输出为1×128的噪声向量。中间各卷积层使用3*3的卷积,并在其输出端重复应用2次指数线性单位。相邻卷积层之间下采样步幅为2,且每次采样时卷积滤波器线性增加。最后,在4个卷积层后采用一个全连接层。
图3 提取器结构Figure 3 Structure of the extractor
BEGAN的思想是衡量真实图像和生成图像分别与它们经过自编码器后生成的图像之间的损失,若这两个损失趋近于零,则认为生成器能够生成足够真实的图片。损失函数可以简化成
loss_real=Y-decoder(encoder(Y)),
(1)
loss_fake=G(x)-decoder(encoder(G(x))),
(2)
其中:Y为真实图像样本;x为输入噪声;decoder和encoder组合表示自编码器auto-encoder,其输入为图像,输出也为图像。公式(1)表示真实图像样本与经过编码解码器后的图像之间的损失。公式(2)表示由噪声生成的图像和其经过编码-解码器之后得到的图像之间的损失。此两个损失均为计算图像与图像之间的损失。
在训练提取器时,将损失函数修改为
loss_real=x-E(G(x)),
(3)
loss_fake=E(Y)-E(decoder(encoder(Y))),
(4)
其中:G代表生成器;E代表提取器,且E的输入为图像,输出为1×128的噪声向量。公式(3)表示输入噪声与该噪声依次经过生成器和提取器之后,提取出来的噪声之间的损失。公式(4)表示真实图像样本提取出的噪声,与先经过编码-解码器再提取出的噪声之间的损失。与训练生成器不同的是,在训练提取器时,式(3)和(4)计算的是噪声与噪声之间的损失。
2.2.1隐藏方案 如图4所示,首先对二进制秘密信息进行分段,而后将各段秘密信息转化为各自对应的噪声zi,将所有噪声zi连接起来成为输入噪声z,并将此噪声z输入到BEGAN中,生成含密图像S,实现信息隐写。具体隐藏方法如下:
步骤1将二进制秘密信息m按每128位划分为一个秘密信息片段,若最后一段秘密信息位数不足128位,则将最后一段的剩余位数用0填充,m={m1,m2,…,mn}。
步骤2设定映射关系:二进制秘密信息中的0随机映射为(-1,0)上的噪声,1随机映射为[0,1)上的噪声,如图5所示,第1位秘密信息0随机映射为-0.757,第2位秘密信息1随机映射为0.654……以此类推。而后根据映射关系将每段秘密信息片段mi转化为(-1,1)上的噪声zi,最后将所有噪声片段zi连接起来成为输入噪声z。
步骤3将噪声z输入到BEGAN中,输出含密图像S,S=G(z)。
图4 隐藏方法的结构Figure 4 Structure of the hiding method
图5 隐写步骤Figure 5 Steps of the steganography
2.2.2提取方案 当BEGAN模型训练好之后,将已经收敛的生成器用于训练提取器。当提取器收敛后,用于提取方案的实施。本方案结构如图6所示。具体提取方案如下。
图6 提取方法的结构Figure 6 Structure of extraction method
步骤1将生成器生成的含密图像输入到预先训练好的提取器中,并输出噪声。
步骤2将噪声中的每个噪声片段按映射关系转化为秘密信息片段。
步骤3将所有秘密信息片段连接起来,得到秘密信息。
实验中,真实样本数据集为celebA人脸数据集(共包含10 177个名人身份的202 599张图像),本实验取其中20 000张用于训练模型,输入噪声大小为1×128,输出图像大小为64×64,学习率为1e-4,gamma=0.4,训练180轮。实验平台为谷歌的深度学习平台Tensorflow v1.13.1,计算显卡为RTX2070 Max-Q。
BEGAN训练效果如图7所示,第1轮时能够看到模糊的人脸轮廓,第33轮开始效果比较好。本文一共训练180轮迭代,第73轮与最后一轮已经用肉眼无法区别好坏,说明从73轮开始,生成器已经接近收敛且能够生成质量较高的图片。
图7 各迭代轮数生成的图像效果Figure 7 Image effect generated by the number of iterations
图8 恢复准确率对比Figure 8 Comparison of the recovery accuracy
将提取器训练400轮迭代,而后对BEGAN生成的含密图像进行提取,图8为与文献[7]中的DCGAN的提取器相比,恢复准确率对比图,在初始阶段,BEGAN的提取器模型的恢复准确率仅能够达到46%,比DCGAN的提取器模型稍低,但随着训练轮数的增加,BEGAN的提取器模型的恢复准确率提高较快,且在训练150轮之前,BEGAN提取器的恢复准确率均高于DCGAN提取器,恢复准确率在75%左右,这是由于BEGAN采用自编码器的结构,并设计了能够快速稳定训练和提高图像视觉质量的损失函数,使模型能够更快收敛,而改进的BEGAN提取器很好地继承了上述优点,使得在前期能够比DCGAN提取器表现更好,恢复准确率更高。该模型由于前期训练速度快,能够更快提高恢复准确率,可应用于需要快速达到训练效果且需要更少计算资源的场景。图中后续恢复准确率被限制在75%左右,经分析,是由于设计的提取器模型虽然前期能够很快收敛,但后期随着训练深入会在某一固定值附近震荡,导致恢复准确率很难继续提高,下一步将对提取器结构进行改进,从而解决此收敛问题。
图9 DCGAN、BEGAN 收敛时的图像质量Figure 9 Comparison of image quality when DCGAN and BEGAN are convergence
如图9所示,尽管两个模型使用训练集相同,但生成效果却相差较大。整体上来看,DCGAN收敛后的图像在背景的多样性上表现较强,但生成的人脸效果不够细腻,存在较多的失真,如图9(a)所示,第二行第七张图和第九行第十张图存在脸部不完整、背景失真较严重的情况;而BEGAN生成人脸的效果在细节上更细腻,面部看起来更加自然,这是由于BEGAN自编码器结构采用的是估计分布误差之间距离的方式,能够有效缩小生成图像与真实图像之间的分布误差,使生成图像在细节上更加细腻、自然。
如图10所示,通过对比DCGAN模型与BEGAN模型隐写后的图像质量,可以看出,BEGAN不仅在生成图像上表现良好,而且隐写后生成的图像质量也比较高。另一方面,本文用FID的图像质量评价方法,来进行客观评价。采用celebA原始图像、BEGAN隐写后图像以及DCGAN隐写后图像各10 000张,用BEGAN和DCGAN隐写后的图像分别与celebA原始图像计算FID值。celebA测试图像被裁剪成64×64大小。经计算,DCGAN隐写后图像的FID为11.25,BEGAN为10.37。而FID数值越小,表示生成图像质量越好。所以BEGAN隐写后的图片质量比DCGAN隐写后图片质量高。通过上述主客观对比,从理论和实验上证明了使用BEGAN模型进行隐写可以提高图像质量,即更换生成模型对隐写图像的生成质量存在较大影响。
图10 DCGAN与BEGAN隐写后图片质量Figure 10 The quality of stego-image via DCGAN and BEGAN
本文隐写方案生成的含密图像尺寸为64×64,每幅含密图像携带秘密信息为128 bit,隐写容量=单幅含密图像携带秘密信息位数/图像尺寸,计算隐写容量为3.13×10-2bit/pixel。表1为本文方案与其他载体合成隐写方案的容量对比。文献[15]和[16]载体合成式隐写方案生成的图像尺寸较大,但在隐写容量上,本文方案隐写容量较高。文献[17]采用DCGAN的隐写方案,其生成图像尺寸与本文一样,均为64×64,但DCGAN方案中采取的用来生成含密图像的噪声为100 bit的噪声,隐写容量为2.44×10-2bit/pixel,而本文方案中由于BEGAN模型固定输入噪声为128 bit,隐写容量相比DCGAN高0.69×10-2bit/pixel。实验证明,通过使用BEGAN模型在相同图像尺寸的情况下,增大输入噪声长度,能够增加单幅图像携带秘密信息位数,从而提高隐写容量。
表1 隐写容量对比Table 1 Steganographic capacity comparison
使用celebA原始图像、BEGAN隐写后图像以及BEGAN无隐写图像各10 000张,通过文献[17]中的隐写分析算法进行检测。检测共分两种情况:第一种情况是BEGAN隐写后的图像与BEGAN无隐写图片之间的对比,即含密图像与生成图像之间的分类准确率;第二种情况为BEGAN无隐写图像与celebA真实图像数据集之间的对比,即生成图像与真实图像之间的分类准确率。通过实验分析计算得到:第一种情况的分类准确率为0.499,说明生成的含密图像和不含密的生成图像之间不可区分;第二种情况的分类准确率为0.98,说明即使区分出是否为生成图像,也很难区分生成的图像中是否含有秘密消息,该方法抗隐写分析能力较强。
本文将模型的训练时间与隐写时间进行对比分析,模型的训练时间指模型在搭建完毕后,开始训练时算起,直到模型训练到指定轮数中间所消耗的时间;隐写时间即实现隐写方案所用时间。经实验发现,DCGAN模型及其提取器的训练时间为32 400秒,而BEGAN模型及其提取器的训练时间为28 800秒,在训练时间上比DCGAN快3 600秒,验证了BEGAN采用自编码器能够快速收敛的优点。在隐写方案的实施上,本文对1 000 bit秘密消息进行隐藏,由于DCGAN方案输入噪声为100 bit,需要生成10张隐写图像;BEGAN方案输入噪声为128 bit,需要生成8张图像。上述两种方案所用时间分别为71.69秒和37.47秒,BEGAN方案的隐写时间比DCGAN方案快34.22秒。不仅由于BEGAN本身结构更优,其隐写固定秘密信息长度所需生成的图像数量也比DCGAN方案少,使得在时间复杂度上,基于BEGAN模型的隐写方案表现更好。
本文提出了基于BEGAN的新型生成式隐写模型,且首次将图像质量作为生成式隐写的评价方法。与文献[7]中方案相比,本文采用了基于解码的BEGAN用于含密图像生成,同时采用高维的噪声驱动,并利用基于编码器的消息提取器实现稳健的消息提取。实验结果表明本文方案在隐写容量、抗隐写分析能力以及生成的含密图像质量上均有所提高。另外,在生成式隐写中更换更强大的生成模型并适当增大噪声长度,能够增强生成的含密图像质量以及增大隐写容量。下一步考虑采用生成图像质量更好、隐写容量更大的模型来实现隐写方案。