APP下载

基于卷积神经网络框架的回声隐藏检测方法

2020-04-09王让定严迪群林昱臻

计算机应用 2020年2期
关键词:幅度音频准确率

王 杰,王让定,严迪群,林昱臻

(宁波大学信息科学与工程学院,浙江宁波315211)

0 引言

随着计算机和信息技术快速发展,信息隐藏技术受到越来越多的关注与研究。隐写术是信息隐藏的重要分支,它以公开的数字媒体作为载体,将秘密信息嵌入其中,以达到隐藏秘密消息的目的。隐写分析是与隐写术相对抗的技术,它的目的是对可疑的载体进行分析检测,判断是否存在秘密信息,进一步破坏甚至提取秘密信息,防止隐写术的滥用,从而保护数字内容或者网络通信的安全。

回声隐藏是一种音频时域隐写算法,Bender 等[1]在1996年首次提出传统回声隐藏算法,该算法通过在音频中引入回声来嵌入秘密信息,相较于其他隐写算法,回声隐藏算法具有不增加新的噪声、难以察觉、隐藏效果较好的优点,同时也具有一定的鲁棒性。之后,Oh 等[2]、Kim 等[3]对其进行了改进,目前回声隐藏算法已经广泛应用于秘密通信和版权保护等方面。在回声隐藏算法不断发展的同时,针对回声隐藏算法的隐写分析的研究也得到了研究者的广泛关注。Zeng等[4]提出一种基于功率倒谱和贝叶斯分类器的隐写分析方法,通过提取音频功率倒谱峰值作为特征,使用贝叶斯分类器进行分类。实验结果表明,该方法针对传统回声隐藏算法的检测率可以达到80%以上。杨榆等[5]提出一种基于倒谱和差分方差统计量(Variants of Difference of Sum of Cepstrum,VDSC)隐写分析方法,通过构造VDSC 来反映隐写对自然音频的影响,并通过不断变换分段的大小和偏置条件来设定阈值,从而判定是否进行过回声隐藏隐写。实验结果表明,该方法针对传统回声隐藏算法检测率为88%。Xie 等[6]提出一种基于峰位聚集指数(Peak Location Aggregation Index,PLAI)的隐写分析方法,使用滑动窗记录倒谱系数峰值出现的位置,如果有很大概率出现在相同位置,则判断为有隐写过;但该算法会受到回声嵌入位置的影响。实验结果表明,针对不同回声隐藏算法,该方法的检测率都在85%左右。王昱洁等[7]提出一种基于功率倒谱统计特征的隐写分析方法,以平均功率倒谱的差分方差和平坦度作为统计特征,并使用支持向量机进行分类。实验结果表明,针对三种不同回声隐藏算法,该方法的准确率有较大的提升。但是在回声隐藏算法的回声幅度较低时,以上这些基于手工提取特征的方法的检测准确率并不理想。

近年来,随着深度学习的不断发展,为音频信息隐藏领域的研究带来了新的契机。在音频取证领域,Chen 等[8]提出一种基于卷积神经网络(Convolutional Neural Network,CNN)音频操作检测方法,设计了一个CNN 框架,并使用音频改进离散余弦变换(Modified Discrete Cosine Transform,MDCT)系数作为网络的输入数据。在音频隐写领域,Chen 等[9]提出一种基于CNN 的wav 音频隐写分析方法,在他们的CNN 网络框架中加入了一个固定卷积层用于计算输入数据残差,并且使用了Lin等[10]提出的1×1的卷积层方法。Wang等[11]提出一种基于CNN 的mp3 音频隐写的检测方法,使用了mp3 音频的量化改进离散余弦变换(Quantified Modified Discrete Cosine Transform,QMDCT)系数作为网络的输入数据,并使用高通滤波器对数据进行处理。除此之外,还有文献[12]提出了基于CNN 的高级音频编码(Advanced Audio Coding,AAC)检测方法,文献[13]提出了基于自编码器(Autoencoder)的AMR(Adaptive Multi-Rate)双压缩检测方法。以上这些基于深度学习的检测方法得到的结果与传统方法相比有了很大的提升。

基于以上的背景,本文提出了基于卷积神经网络的回声隐藏隐写分析方法。首先,使用短时傅里叶变换(Short-Time Fourier Transform,STFT)得到音频的幅度谱系数矩阵作为分类的浅层特征;然后,在此基础上构建了一个包含四个卷积模块以及三层全连接层的CNN 模型用于提取深度特征以及分类;最后,在三种经典的回声隐藏算法上对提出的方法进行了隐写分析实验评估。实验结果表明,本文方法在三种回声隐藏算法的检测性能上与传统的基于手工特征的方法和基于深度学习的方法相比都有较明显的提升。

1 经典回声隐藏算法

1.1 传统回声隐藏算法

Bender等[1]最早提出了传统回声隐藏算法(记作K1)。该算法嵌入密信的方法是:将音频载体s(n)分段,每段长度从几毫秒到几十毫秒,每段用于嵌入1 bit的密信;然后构造2个分别代表密信“0”和“1”的不同回声核。回声核是回声隐藏算法最重要的部分,传统回声核如图1所示。回声核的回声幅度α一般值取为0.6~0.9,用2 个不同的延迟时长d0、d1来代表不同密信比特,一般延迟时长为0.5~2 ms。当密信比特为0 时,该段加上代表“0”的回声核;密信比特为1 时,该段加上代表“1”的回声核。回声核的回声幅度需要精心挑选:当回声幅度过小时,会出现提取失败的问题;但当回声幅度过大时,又会使隐藏的效果大大降低。

传统回声核可表示为:

图1 传统回声核示意图Fig.1 Schematic diagram of echo hiding with traditional kernel

式中:h(n)表示回声核,δ(n)表示单位脉冲信号,α 为回声幅度,d为回声延迟。

1.2 双极性回声隐藏算法

目前对传统回声隐藏算法的研究集中在对回声核的改造,研究的关键是如何使回声核的回声幅度α 可以尽量选取较小的值,以此达到更好的隐藏效果,同时还要保证准确提取秘密信息。

Oh等[2]在传统回声隐藏算法的基础上提出了双极性回声隐藏算法(记作K2),使用初始状态不同的正负两种极性的回声核,双极性回声核如图2 所示。实验结果表明K2 增强了隐藏效果,在低频区域比原始回声核表现得更加平滑。

图2 双极性回声核示意图Fig.2 Schematic diagram of echo hiding with positive and negative kernels

双极性回声核可表示为:

式中:α1、d1和α2、d2分别表示两个初始状态相反的正负极性回声的回声幅度和延迟时长。

1.3 双向回声隐藏算法

Kim 等[3]在传统回声隐藏算法的基础上提出了双向回声隐藏算法(记作K3),双向回声核如图3所示。

图3 双向回声核示意图Fig.3 Schematic diagram of echo hiding with backward and forward kernels

人耳除了存在时域后掩蔽效应之外,还存在前掩蔽效应。K3就是同时使用这两种掩蔽效应,在分段后的载体音频前后分别加入延迟时长相同的回声,使得密信提取的正确率提高,增强了鲁棒性。双向回声核可表示为:

式中:αδ(n-d)表示后向回声,αδ(n+d)表示前向回声。

2 基于CNN的回声隐藏隐写分析方法

2.1 浅层特征幅度谱系数提取

在已有的基于手工提取特征的隐写分析方法中,例如文献[4-7]都提取了音频的倒谱系数作为特征进行分类,而音频提取倒谱系数时首先需要提取音频的幅度谱系数,再进行相应的操作得到倒谱系数,因此可以认为原始音频与使用回声隐藏算法隐写后的音频之间在幅度谱系数上已经存在差异。基于此,比较并分析了它们两者在频域上的差异。使用STFT将音频从时域转换到频域,并求幅值,得到幅度谱系数矩阵,计算过程如下:

首先对一个音频样本x(n)(实验中每个音频样本时长1 s,采样频率为16 kHz,每个样本共16 000帧),选择以长度为1 024 的帧长进行分帧以保持局部的平稳。为了提高时域特性,选择帧移为512 的汉宁窗进行加窗,得到分帧后的语音信号xi(n),i表示第i帧。然后对每帧语音信号xi(n)进行傅里叶变换的点数N为512的STFT,得到各帧的频谱系数Xi(k),即:

再分别对第i帧第j个频率点求其幅值:

最后得到513×33的幅度谱系数矩阵。

随机选取一个样本,并对其进行3 种回声隐藏算法的隐写。对每个样本求取频域系数矩阵,然后求取各频率点幅值,最后对得到的幅度谱系数矩阵的每个频率点的所有帧求取平均值,发现原始音频与每种回声核隐写后的音频之间存在着细微的差异,如图4 所示。图中横坐标为幅度谱系数矩阵的513 个频率点,纵坐标为在每个频率点上的原始音频与隐写后音频的平均幅度差值。可以看到,虽原始音频与隐写后音频的差异在各个频率点上都有分布,但差异并不明显。

2.2 基于CNN的深度特征提取与分类

传统隐写分析方法在构造分类器时需要良好的特征提取,与之不同的是深度学习的方法可以从浅层特性中获取高层抽象的特征,从而替代手工提取。文献[9]中选择直接将音频的原始采样点作为网络的输入,文献[8]和文献[11]中根据音频操作和MP3 的特性选择将MDCT 系数和QMDCT 系数作为浅层特征输入到网络。而在2.1 节的分析中发现,原始音频与进行回声隐藏隐写后的音频在幅度谱系数的每个频域点的平均值上有所差异,但是差异表现并不突出。因此,本文根据这一回声隐藏算法的特性,选择以幅度谱系数矩阵作为浅层特征输入到卷积神经网络,并进行深度特征的提取和分类。

图4 原始音频与三种回声核的频率点均值差值Fig.4 Average difference of audio frequency points between original audio and three kernels

经过实验与对网络框架的微调,最后设计并确定了针对回声隐藏算法的隐写分析CNN框架如图5所示。选择将整个幅度谱系数矩阵(513×33)作为输入数据,网络框架中首先包含了4 个卷积模块,每个模块的结构为:卷积层—Relu 激活函数—卷积层—批标准化层—Relu激活函数—平均池化层。然后将经过卷积模块得到的深度特征数据输入到三层全连接层中,最后以Softmax输出概率。

图5 本文提出的CNN框架Fig.5 Proposed CNN framework

2.2.1 卷积层

卷积层是使用卷积核对输入的数据矩阵进行卷积操作,卷积层具有局部感知和权值共享的特点:局部感知减少了网络参数的个数,权值共享是指卷积核在卷积过程中权重不会改变。卷积操作的数学表达式为:

2.2.2 池化层

池化层作为一种下采样的方法通常用于减少特征维数,以保留输入数据的主要属性并减少训练参数。它分为两种:最大池化和平均池化,其中最大池化适用于保留纹理信息,而平均池化适用于保留平滑信息。在大部分的卷积神经网络框架中使用了最大池化层,但在实验结果中发现针对回声隐藏算法的检测,使用平均池化的效果更好。因此本文将平均池化层的内核大小设置为3×3,步长为2。

2.2.3 批标准化层

当网络框架的层数过深时会导致网络收敛速度变慢,并且在反向传播时会出现梯度消失的现象。批标准化[14]的引入一定程度上解决了这两个问题,对数据进行批标准化后输出的结果的均值为0、方差为1。除此以外,在网络框架中加入批标准化后,允许我们设定较高的学习率,减少正则化以及Dropout 的使用。因此,在网络框架的每个卷积模块以及全连接层中都加入了一层批标准化层,以防止过拟合。

2.2.4 激活函数

激活函数的引入使得网络中增加了非线性因素,因此网络可以逼近非线性函数。本文的网络框架使用了ReLU[15]激活函数,数学表达为:

ReLU 是一个线性的、非饱和形式的激活函数,能够节省计算时间,加快网络的收敛,在一定程度上可以缓解梯度消失的情况。它会使得输出小于0的神经元最后的输出结果为0,这样的设定使网络拥有了稀疏性,同时减少参数的相互依存关系,缓解了过拟合问题。

2.2.5 全连接层

在本文的网络框架中,4 个卷积模块用于提取特征,而3层全连接层则是实现分类,将所有局部特征重新进行组装。3层全连接层中第一层有1 024 个神经元,第二层有512 个神经元,第三层有2 个神经元对应于样本分类数,最后以Softmax输出分类结果,Softmax的数学表达式为:

其中:z 为原始向量,σ(z)为压缩后的向量。它将原始向量压缩到另外一个向量中,并使其中每个元素的范围都在(0,1)内。

2.3 隐写分析方法流程

在训练阶段,提取训练样本的幅度谱系数矩阵作为CNN模型的输入数据,并训练CNN 模型;在测试阶段,提取测试样本的幅度谱系数矩阵输入到训练完成的CNN 模型进分类;将CNN 模型的分类结果与已知的正确标签进行对比,最后得到准确率。隐写分析方法流程如图6所示。

图6 基于CNN的回声隐藏隐写分析方法流程Fig.6 Flowchart of echo hiding steganalysis method based on CNN

3 实验结果与分析

3.1 实验设置

在TIMIT 语音库[16]上进行了实验。首先从TIMIT 语音库获取语音段(采样频率为16 kHz,脉冲编码调制(Pulse Code Modulation,PCM)编码精度为16 位),并将每段语音分割为1 s 长的一段,这样一共得到15 000 个样本。对于传统回声隐藏(K1)、双极性回声隐藏(K2)和双向回声隐藏(K3),为了进行对比实验,参考文献[7]对嵌入密信时的分段长度、回声核的延迟时长和回声幅度进行设置,并用随机生成的密信嵌入到15 000 个音频样本,3 种回声隐藏的回声核参数设置如表1所示。

按不同回声核及不同回声幅度一共得到了9 个隐写音频数据集,并在每个隐写数据集中加入未隐写的15 000 个音频样本,最后得到的每个数据集中就有30 000个音频样本。

本文网络使用Adam 优化器,学习率初始化为0.000 1,以二元交叉熵作为损失函数,批处理大小设置为128。在网络的训练过程中,以分类准确率作为评价指标,如果网络迭代2次准确率也没有提升时,学习率减少一半。使用早停策略监测训练损失率,如果网络迭代5 次损失率也没有优化时,停止网络,保存训练过程中最优模型。

表1 回声核参数设置Tab.1 Parameter setting of echo kernels

3.2 实验结果与对比

分别使用每个数据集进行实验,其中24 000 个音频样本作为训练样本,6 000 个音频样本用作验证与测试样本,最后得到在测试样本上的准确率,同时也选择了文献[7]和文献[9]的方法与本文方法进行对比,结果准确率如表2所示。

其中文献[7]中使用的是基于手工提取特征的隐写分析方法,文献[9]方法是目前最先进的wav 音频隐写分析检测框架。从结果中可以看到,针对以上3 种回声隐藏算法,除了在回声幅度为0.3 的K3 回声核的条件下本文方法的结果略差于文献[7]方法,其余结果普遍优于其他两种方法,并且本文方法的准确率即使在回声幅度较低的情况下也能达到90%以上。其中回声幅度为0.1 的K3 回声核检测效果最差,低于95%,该条件下的训练准确率如图7 所示。其中:横坐标为Epochs,表示对所有训练样本训练的次数;纵坐标为准确率。从图7 所示训练过程可以看到,从第6 个Epoch 开始,在测试集上准确率并没有明显的提升,而训练集中的准确率仍在上升,这说明网络的训练已经开始出现了过拟合的情况。我们认为,可能的原因是网络的输入数据在原始音频和隐写后的音频差异上的变化还不够明显,网络的训练到达了瓶颈。

3.3 调整网络框架实验结果

为了得到更优化网络框架以及结果,在实验中对网络结构进行了大量的尝试与调整,例如对网络深度、激活函数等进行了实验,实验结果准确率如表3所示。

表2 三种算法的准确率对比Tab.2 Accuracy comparison of three methods

图7 回声幅度0.1的K3核训练准确率Fig.7 Training accuracy of K3 kernel with echo amplitude of 0.1

表3 不同网络结构的准确率对比Tab.3 Accuracy comparison of different network structures

3.3.1 增加网络深度

多层网络是深度学习的一大特征,但是过度增加网络深度时可能会出现梯度消失。尝试增加一个卷积数量为1 024的卷积模块,在回声幅度0.1 的K3 核的训练准确率如图8 所示。可以看出,在尝试增加一个卷积数量为1 024的卷积模块后,不仅准确率有所下降,并且网络变得不稳定,因此4 层卷积模块已经满足深度要求。

图8 增加网络深度时回声幅度0.1的K3核训练准确率Fig.8 Training accuracy of K3 kernel with 0.1 echo amplitude when increasing network depth

3.3.2 修改激活函数

结构中使用的ReLU 激活函数是目前普遍使用的激活函数,而在ReLU 出现之前,Tanh 在网络结构中使用较多,因此,也对Tanh 进行了考察。从结果可以看到,Tanh 的结果与ReLU相比较差。

3.3.3 移除权重初始化

使用均值为零、标准偏差为0.01 的高斯分布初始化所有权重,这是一种较为常见的初始化方式,权重的初始化对于网络的训练很重要,不好的初始化参数会导致梯度传播问题,降低训练速度。当去除权重初始化时,结果准确率变低,所以这个条件是必须的。

3.3.4 增大卷积核尺寸

当把卷积核大小增加到7×7 时,网络的训练时间增加,不仅如此,从结果可以看到准确率降低。这是因为增大卷积核的尺寸意味着更大的感受野,但也同时增加了更多的参数。

3.4 交叉实验结果

考虑到在实际应用中,隐写分析者往往不知道隐写者使用的是回声隐藏算法的情况下,也不知道回声核的种类以及相应的回声幅度,对实验策略进行了调整。固定一种回声核的一种回声幅度的数据集作为训练集用于训练网络,将训练好的网络用于检测其他回声核或者相同回声核不同回声幅度的数据集,即进行交叉实验,结果如表4 所示(其中不涉及交叉实验的用“—”表示)。

表4 交叉实验的准确率对比Tab.4 Accuracy comparison of cross-over testing

从交叉结果中可以得到以下结论:第一,在同种回声核、不同回声幅度的情况下,使用回声幅度较小的数据集进行训练,网络会提取更深层次的特征,对回声幅度较大的数据集进行测试也有较高的准确率;第二,在不同回声核的情况下,使用K3数据集进行训练,得到的网络模型对其他两种回声核的检测也具有一定泛化能力。所以在实际应用中,可以使用K3回声核,在回声幅度尽量小的数据集进行训练,然后对音频进行隐写分析。

4 结语

本文提出了一种基于卷积神经网络的回声隐藏隐写分析方法,提取音频的幅度谱系数矩阵作为浅层特征,并在这个基础上设计了一个针对回声隐藏算法的隐写分析卷积神经网络框架,进行深度特征提取与分类。本文方法在对3 种回声隐藏算法不同回声幅度的条件下得到的准确率都在93%以上,这样的结果与传统手工提取特征的隐写分析方法相比有了很大的提升。最后,我们调整了实验的策略,进行了交叉实验,结果表明以双向回声隐藏算法作为训练数据得到的网络模型泛化能力较强。

不足的地方是双向回声隐藏算法在回声幅度较低时的检测准确率与其他两种回声隐藏算法检测准确率相比不够高。我们认为比较可行的方法是增加类似文献[9]和文献[11]的固定卷积层进行残差的方法。在未来的工作中,我们会针对双向回声隐藏算法进行隐写分析的研究。

猜你喜欢

幅度音频准确率
Egdon Heath (Extract from The Return of the Native)
单次止损幅度对组合盈亏的影响
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
柏韵音频举办Pureaudio 2021新产品发布会
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
开盘录音带音频资料的数字化
2019年10月汽车产销总体继续回升 但回升的幅度仍较低
2014年中期预增(降)幅度最大的50家上市公司