时间:2024-05-04
刘晶晶 夏 炎 刘 镇
(江苏科技大学计算机学院 镇江 212003)
近些年来,信息隐藏已经成为信息安全领域的重要课题之一,受到学术界的广泛关注[1]。数字隐写术是信息隐藏的主要分支。基于数字图像的隐写术分析成为信息安全领域的研究热点之一[2~3]。传统的图像隐写术分析方法分为两步:一是特征提取,例如小波直方图特征、马尔科夫特征、离散余弦变换系数的共生矩阵特征[4~5]。二是特征分类,例如Fisher算法、支持向量机[6~7]。由于传统的方法可靠性低或者是训练过程非常耗时,会对隐写术分析效率造成不利影响。近些年随着可编程图像处理器GPU 编程技术的成熟,以及其强大的并行计算和浮点运算能力为图像处理的加速提供了编程基础[8]。使得深度学习成功的应用于图像特征提取和分析领域。
随着深度学习在图像分类领域的优异表现,越来越多的研究人员将深度学习应用在自己的研究领域。通过组合低层特征形成更加抽象的高层表示属性类别或者特征[9]。深度学习可以自动提取隐写分析特征,能够有效减少时间复杂度、提高效率[10]。Qian Y 等[10]在BOSSbase 数 据 集 上[11]测 试HUGO[12],WOW[13]算法,虽然能减少训练时间,但是其检测准确率比空域富模型[14]加集成分类器(EC)的组合模型低3%~4%。
虽然能够将深度学习引入到图像隐写术分析领域,并且取得很好的分类和检测效果。但是由于深度学习模型训练参数难调,加上卷积层数过多会造成训练过拟合现象。并不能很好地体现出深度学习的隐写术分析方法相对于传统隐写分析方法的优势。因此需要针对特定的隐写问题采用特定的网络模型和训练参数。
本文提出一种在BOSSBase 数据集上针对HUGO 算法的图像隐写术分析方法,研究在不同嵌入率、减少卷积层数、去掉池化层、增加卷积核,以及使用批正则化(Batch Normalization,BN)函数对隐写分析准确率的影响。实验表明,针对HUGO隐写算法,在嵌入率为0.4bpp的情况下本文算法能达到89%的检测准确率。比文献[14]提高了12%;在嵌入率为0.1bpp 的情况下,本文算法能够达到80.1%,能够提高19%。
本文采用如图1 所示的卷积神经网络框架,主要模块包括输出层、HPF 层、卷积层、池化层、全连接层和输出层。输入图像首先进过使用图像缩放软件将尺寸统一缩放至512*512 的尺寸。通过一个高通滤波层(HFP)5*5pi 的卷积核进行噪声处理。在卷积层中进行图像特征提取。池化层进行尺寸的降维,卷积部分最终输出一个包含128 维特征的向量。通过一个全连接层后连接Softmax函数进行是否是含有隐藏信息的判断,最后输出可能性最高的类别的结果。
图1 隐写分析术网络框架
文献[13]表示使用HPF 高通滤波器能突出噪声残余,并且论证了高通滤波器对隐写分析的必要性。对于图像言,低频部分权重较大,不易嵌入信息,因此都在权重较小的高频部分嵌入信息。以求尽量嵌入信息后图像的内容不被察觉。通过高通滤波器,能够突出噪声残余,即放大嵌入信息,能够更好地提取隐写图像的特征。在实验中发现,如果不使用这个预处理的过程。模型训练很难收敛,或者收敛速度很慢。在使用中我们固定这个矩阵,使得在训练过程中不能改变参数值,固定值F。相对应的参数学习率也设置为0。
对于卷积神经网络而言,网络的训练是一个复杂的过程。由于存在内部变量的迁移,随着训练的进行会放大前面训练参数的变化。导致当前的特征的概率分布与初始层特征的概率分布不一致,进而之前的训练参数不在适用。机器学习和深度学习中有一个假设,即训练数据的分布应该和特征的分布是相同的。这里输入网络的数据使用Batch-Normalization如式(1)所示。
使得每层的输入数据都是均值为0,方差为1。但是输出限制在均值为0,方差为1的条件下会使得模型的泛化能力变差。因此需要加入可以学习的参数β和γ对数据进行缩放和平移。模型训练中会不断的更新β和γ的值。Batch-Normalization是模型批量训练数据时候的优化输入数据分布。即在保证批量输入数据的时候,生成和对抗数据的分布限定在一个可控的范围内。
激活函数的选择是构建卷积神经网络的重要环节。本文对ReLUs 进行改进,如式(2)所示。由于ReLU 函数在负半区的导数为0,所以一旦激活神经元进入负半区,那么梯度就会为0,也就是说这个神经元不会经历训练,即所谓的模型出现梯度稀疏。处理办法可以在负半区加上一个很小的斜率用来抑制这种情况的出现如图2所示。
图2 原ReLU激活函数和修改后的Non-ReLU激活函数
池化层又叫子采样层,在卷积神经网络中,经过卷积层后再接上池化层能够在保证图像特征的同时,减少计算量。其实是对图像的一种采样。在识别和分类任务中。采样能够很好地工作。但是在隐分析中,由于过度采样会导致隐写分析信息的丢失。隐写分析的目的就是检测出这些信息。所以池化会产生反作用。本文在实验阶段分别对采用池化和不采用池化层进行了验证分析。发现如果过度使用确实会出现分析效果不明显。
实验中的数据集采用的是BOSSbaseV1.01。该数据集中含有10000 张分辨率为512*512 的pgm格式的灰度图像。是目前隐写分析最常用的数据集。隐写的图通过在载体图像中嵌入数据得到,嵌入算法用的是HUGO。采用嵌入率为0.1bpp 和0.4bpp。算法的实现程序来自于数据集提供。由于数据量的不足,本文采用切分数据集的方式将单张512*512 像素的图像切分成4 张256*256 的图像。这样扩充到40000 张载体/隐写图数据集。选取其中32000 张作为训练集,8000 张作为测试集。
实验平台使用的是英伟达的DGX-1 深度学习服务器,Intel XeonE5-2698 v4 2.2 GHz 处理器、8 片Tesla P4 GPU、256G内存、4TB的SSD固态。软件平台为Ubuntu16.04 操作系统、TensorFlow1.8.0-gpu深度学习框架、CUDA9.0、CUDNN7.14。
本文实验中采用批训练的方式,批值为50 Batch。选择的下降法是随机梯度下降法。基础的学习率为0.01,学习率的衰减权重为0.0001,上一次更新的权重为0.6,权重衰减系数为0.0002。最大的迭代次数为1000 次,为了更好地观察训练时候的模型变换。对于HPF 层学习率为0 保持参数不变。
本文实验了在嵌入率为0.4bpp的时候分别对,有HPF 层、无HPF 层、有池化层、无池化层、有HPF层+池化层和有HPF 层+池化层的情况分类进行了实验。发现结果在嵌入率比较高的时候HPF 层对于隐写分析的性能提升还是有的,也验证了文献[13]的结论。在去掉池化层以后虽然提成不明显,在取几次实验最优结果后比较得出,去掉池化层还是能有提升。最后在有HPF 层和无池化层的网络结构中得出的最好的结果是89.01%的准确率,如表1所示。
表1 有无HPF层的损失值(loss)和准确率
在选定有HPF层和无池化层的网络结构后,本文又对0.1bpp 和0.4bpp 的嵌入率做了对比实验。发现低嵌入率因为嵌入的数据量比较少。没有高嵌入的检测效果好。由此得出来,信息隐藏的越少,越是难以检测。这也符合客观事实规律。结果如表2所示。
表2 0.1bpp和0.4bpp的嵌入率下的检测结果
图3 0.4bpp时本文方法的损失值和精度值随训练步数变化图
在0.4bpp 的嵌入率的时候本文的方法能够比较好地分析出隐写的图像。但是在低嵌入率的情况下本文的方法略差于Qian 等的CNN 模型。0.4bpp时候的损失和精度如图3所示。
实验结果表明针对HUGO隐写算法,在嵌入率为0.4bpp 的情况下本文算法能达到89%的检测准确率。比文献[15]提高了12%;在嵌入率为0.1bpp的情况下,本文算法能够达到80.1%,能够提高19%。利用深度学习方法分析的模型有很大的提升空间,下一步将继续优化深度学习技术在隐写分析领域的通用性,进一步提高隐写分析的检测精度。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!