MULTI-STAGE RESIDUAL HIDING FOR IMAGE-INTO-AUDIO STEGANOGRAPHY论文笔记
1、introduction
DL方式隐写的缺点:
1)这些方法中的大多数对于不同数据模式之间的隐写术似乎无能为力。
2)由于其知识的多样性,直接隐藏秘密消息是困难的,因此通常会导致明显的差异。
为了克服上述方法的缺点,本文提出了一种基于深度神经网络的图像到音频隐写术(DITAS)框架,如图1所示,其中设计了两个多阶段网络:隐藏网络和显示网络。 具体地,隐藏网络用相应的阶段子网络对不同音频子序列内减小的残留误差进行编码,而显示网络对具有相应的阶段子网络的经修改载波的残留误差进行解码,以产生最终的显示结果。 所提出的框架以渐进方式隐藏秘密消息,这使得隐藏过程更加容易。 在基准数据集上的实验结果表明,所提出的方法能够实现优于其他算法的性能。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fieg4aSg-1609931655080)(C:\Users\lzy\AppData\Roaming\Typora\typora-user-images\1609864514646.png)]
主要贡献概括如下:
1)我们提出了一种基于深度学习的新颖的图像音频隐写术框架,该框架相对于其他方法具有出色的隐藏能力。
2)通过隐藏多级的剩余误差,该方法不仅可以更灵活地控制有效载荷容量,而且使隐藏过程更加容易。
3)我们的框架将剩余误差嵌入到不同的音频子序列中,这意味着即使丢失部分载波,也可以在一定程度上恢复秘密图像。
2 隐写方法
2.1 Hiding Network
给定大小为
w
×
h
w×h
w×h的秘密图像
S
0
S_0
S0和载体音频
A
l
A_l
Al,其中w,h为秘密图像的宽度和高度,l表示掩盖音频的尺寸。 通过使用多级网络,我们将秘密图像的多级剩余误差逐步嵌入到载体音频中。 具体地,首先从覆盖音频序列中选择t个不重叠的音频子序列,其在数学上表示为
{
T
1
,
T
2
,
.
.
.
,
T
t
}
\{T_1,T_2,...,T_t\}
{T1,T2,...,Tt},并且每个子序列的尺寸为
w
∗
h
w * h
w∗h。 所提出的框架由t个阶段组成,以将秘密图像的残留错误相应地嵌入到这t个子序列中。 更具体地说,对于第i阶段,我们隐藏了原始秘密图像与先前i-1阶段揭示子网的揭示结果之间的残留误差。 隐藏过程可以表示为
T
~
i
=
H
(
S
i
,
T
i
;
θ
H
i
)
\tilde T_i=\mathcal{H}(S_i,T_i;\theta_{H_i})
T~i=H(Si,Ti;θHi)
其中
H
\mathcal{H}
H表示隐藏网络的操作,
θ
H
i
θ_{H_i}
θHi是第i层段隐藏子网的参数。$ S_i
是
要
隐
藏
的
秘
密
图
像
的
第
i
级
剩
余
误
差
,
而
是要隐藏的秘密图像的第i级剩余误差,而
是要隐藏的秘密图像的第i级剩余误差,而\tilde T_i
是
保
留
载
体
音
频
是保留载体音频
是保留载体音频T_i$的感知保真度的隐藏结果(容器)。 残留误差Si可以表示为
S
i
=
S
0
−
C
i
−
1
,
C
i
−
1
=
∑
j
=
0
i
−
1
R
j
S_i=S_0-C_{i-1},C_{i-1}=\sum_{j=0}^{i-1}R_j
Si=S0−Ci−1,Ci−1=j=0∑i−1Rj
其中,
S
0
S_0
S0是原始秘密图像,
R
i
R_i
Ri表示第i阶段revealing子网络的揭示结果,这将在下一个小节中进行说明,并且
R
0
R_0
R0是大小为
S
0
S_0
S0的零张量。
C
i
C_i
Ci表示前i个阶段revealing子网的显示结果的总和。
2.2 Revealing Network
在hiding网络计算出音频子序列
T
~
i
\tilde T_i
T~i后,revealing网络的目标是在揭示阶段从隐藏的音频序列中提取秘密图像。具体地,给定隐藏的音频子序列
T
~
i
\tilde T_i
T~i,揭示过程可以表示为
R
i
=
R
(
T
~
i
;
θ
R
i
)
R_i=\mathcal{R}(\tilde T_i;\theta_{R_i})
Ri=R(T~i;θRi)
其中,
R
\mathcal{R}
R表示 revealing网络的操作,
θ
R
i
θ_{R_i}
θRi表示第i层revealing网络的参数,
R
i
R_i
Ri表示
T
~
i
\tilde T_i
T~i揭示的残留结果,在获得残差
R
i
R_i
Ri后,将其累加得到最终的解释结果,即
C
i
=
∑
j
=
0
i
R
j
C_i=\sum_{j=0}^iR_j
Ci=∑j=0iRj,值得强调的是,所提出的框架在不同的音频子序列中嵌入了多级残差,因此从容器序列中逐步提取了揭示的结果。 换句话说,子序列彼此独立,即使丢失了一些子序列,也可以在一定程度上揭示秘密图像,从而提高了所提方法的鲁棒性。
2.3 损失函数
在本文提出的框架中,我们有两个主要任务:一个是秘密图像隐藏,另一个是秘密图像提取。因此,有两个损失项分别约束容器和提取的实体。 此外,所提出的框架由t个阶段组成,因此完整的损失函数可以表示为:
L
(
θ
H
i
,
θ
R
i
)
=
∑
i
=
1
t
L
H
i
(
θ
H
i
)
+
λ
i
L
R
i
(
θ
R
i
)
\mathcal{L}(\theta_{H_i},\theta_{R_i})=\sum_{i=1}^t\mathcal{L}_{H_i}(\theta_{H_i})+\lambda_i\mathcal{L}_{R_i}(\theta_{R_i})
L(θHi,θRi)=i=1∑tLHi(θHi)+λiLRi(θRi)
其中
L
H
i
\mathcal{L}_{H_i}
LHi为信息隐藏隐藏第i级隐藏子网络的损失,而
L
R
i
\mathcal{L}_{R_i}
LRi为信息提取隐藏第i级隐藏子网络的损失。
θ
H
i
\theta_{H_i}
θHi和
θ
H
i
\theta_{H_i}
θHi是它们的参数。 λi是控制它们之间权衡的正则化参数。 具体而言,隐藏损失定义为
L
(
θ
H
i
)
=
1
N
∑
i
=
1
N
∣
∣
H
(
S
i
,
T
i
;
θ
H
i
)
−
T
i
∣
∣
2
2
\mathcal{L}(\theta_{H_i})=\frac 1N \sum_{i=1}^N||\mathcal H(S_i,T_i;\theta_{H_i})-T_i||_2^2
L(θHi)=N1i=1∑N∣∣H(Si,Ti;θHi)−Ti∣∣22
另一方面,为了确保提取信息的准确性,定义了另一个提取损失
L
(
θ
R
i
)
=
1
N
∑
i
=
1
N
∣
∣
R
(
T
~
i
;
θ
R
i
)
−
S
i
∣
∣
2
2
\mathcal{L}(\theta_{R_i})=\frac 1N \sum_{i=1}^N||\mathcal{R}(\tilde T_i;\theta_{R_i})-S_i||_2^2
L(θRi)=N1i=1∑N∣∣R(T~i;θRi)−Si∣∣22
其中,
T
~
i
=
H
(
S
i
,
T
i
;
θ
H
i
)
\tilde T_i=\mathcal{H}(S_i,T_i;\theta_{H_i})
T~i=H(Si,Ti;θHi)表示含有秘密图像的载体音频子序列。
3、实验结果和分析
3.1
为了通过卷积操作将秘密图像嵌入到封面音频中,需要对一维音频子序列Ti进行预处理。 具体而言,进行了两种音频数据预处理方法:
1)将原始音频数据直接整形为新的张量(tensor)。
2)应用短时傅立叶变换(STFT)将音频从频域转换到频域
预处理后,为Ti生成一个w×h的张量,该张量可以方便地与秘密图像Si串联在一起,作为第i级隐藏子网的输入。在提出的隐藏和显示网络中,如图2所示,使用了残差块。 具体而言,对于每个阶段隐藏子网,每个卷积层都由64个内核组成,最后一层除外,其大小为3×3,其中包含单个内核以确保输出和封面音频张量之间的尺寸一致性。 类似地,对于揭示网络,最后的卷积层具有3个内核以提取最终的揭示残差,其余层包括64个内核。 我们在Titan X GPU上使用python工具箱Pytorch [18]训练模型。 自适应矩估计(Adam)[19]被用来优化所有网络参数。 此外,我们将λi设置为0.8。 为了选择最佳阶段数(t),我们训练了一个具有10个阶段的模型,图4显示了性能与阶段数之间的关系,从中我们可以看到,随着阶段数的增加,性能会增长逐渐变慢,我们在模型中设置t = 5。值得强调的是,可以以端到端的方式对建议的框架进行训练。
对于训练,我们使用数据集VOC2012 [20]的训练集作为秘密图像,并使用LJ语音数据集[21]作为载体音频。 为了进行测试,我们选择2种在文献中被广泛使用的图像作为秘密图像:自然图像(包括Set14 [22],LIVE1 [23],VOC2012的Val [20]和ImageNet [14]的Val)和人脸图像(包括CelebA数据集[12]。 此外,我们使用TIMIT音频数据集[24]作为载体音频。 对于训练细节,补丁大小设置为64×64,这是从训练数据集中随机裁剪的,我们将批处理大小设置为16。所有层的学习率均初始化为1e-4,每层学习率降低3倍 20个迭代。 我们训练整个网络200次迭代。