HiDDeN: Hiding Data with Deep Networks Supplementary Material
用深层网络补充材料隐藏数据
A Model Architecture
我们将卷积、批量归一化和ReLU的组合表示为Conv-BN-ReLU块。在我们的实验中,所有的Conv-BN-ReLU块,除非另有说明,都有3 × 3的核,步长1和填充1。(3 × 3 kernels, stride 1, and padding 1)。
给定输入Ico形状C × H × W,编码器对输入图像应用四个具有64个输出滤波器的Conv-BN-ReLU块,产生64×H×W图像激活体积。然后它在空间上复制M个H × W次,形成一个L × H × W的消息体。这两个体积与原始图像一起,按通道连接成单个(64 + L + C) × H × W激活。编码器随后应用具有64个输出滤波器的Conv-BN-ReLU块。具有1 × 1内核、步长1、无填充和C输出滤波器的最终卷积层用于产生具有C ×H ×W形状的Ien。在最终卷积之后,不应用激活函数。
噪声层,给定Ico,Ien,产生形状为C × H’× W’的Ino。解码器需要支持 H ′ ≠ H , W ′ ≠ W H^{\prime} \neq H, W^{\prime} \neq W H′=H,W′=W的情况,例如当图像被裁剪时。
解码器包含7个Conv-BN-ReLU块,每个块有64个滤波器,最后一个Conv-BN-ReLU块有1个滤波器。在所有空间维度上执行平均合并,最终(L×L)线性层产生预测消息Mout。由于使用平均池,解码器对H’和W’不做任何假设。为了评估Mout测试的准确性,我们将每个条目四舍五入到0或1,然后与最小值Min进行比较。
对手的结构类似于解码器,但卷积更少。它包含3个Conv-BN-ReLU块,每个块有64个滤波器。激活体积在空间维度上平均,具有两个输出单元的线性层产生两类分类问题的逻辑。
B Digimarc Baseline
据我们所知,最近的数字水印方法没有开源实现。作为一个基线,我们比较了Digimarc [32],一个用于数字水印的封闭源商业包。
由于Digimarc是封闭源代码,我们不知道它编码的消息的确切大小。数字水印必须编码6位标识、2位个人识别码、32位整数、相应的类别(三个选项中的一个)和三个布尔值。它还需要确定解码的数据没有被破坏。我们估计64位编码可以满足这些要求。
作为用户,我们无法从Digimarc获得输入和解码信息;所以我们不能报告每一位的准确性。相反,Digimarc解码器只报告每个图像的“成功”或“失败”。所以我们只知道完整的消息是否被正确重构。作为一个粗略的代理,我们测量数字马克成功解码信息的图像比例。Digimarc必须手动应用于每幅图像,因此结果平均为10幅图像。
请注意,在我们的训练中,我们的模型在128×128的图像中编码一个30位的消息。然而,Digimarc建议用户对至少256 × 256大小的图像进行编码。在这些图像上,数字马克的水印只有我们比特率的1/2倍。因此,与Digimarc (256)相比,可以应用容量为1/2的纠错码来进一步减少错误。因此,我们考虑使用容量为1/2的LDPC36-128码[33],以匹配两种方法的比特率。初步实验表明,当信道误码率≤ 5%时,纠错码能够正确重构全码字,当信道误码率≥ 10%时,完全重构消息的能力下降到< 10%。因此,我们将模型的位精度与Digimarc的解码成功率进行对比,其中≥ 95%的精度对应于100%的完美重建,≤ 90%的精度对应于0%的完美重建。结果如图11所示。
C Combined Model Training Details
第二个实验中讨论的“组合”模型是用一组噪声层来训练的,这些噪声层在每个迷你批次中交换。这是一个自然的概括,从学习对一个特定噪声鲁棒性的模型到同时学习对多个噪声鲁棒性的模型。在组合模型的训练过程中,我们使用了各种噪声层:Dropt p = 0.3,Dropt p = 0.7,Cropout p = 0.3,Cropout p = 0.3,Crop p = 0.7,高斯模糊σ = 2,高斯模糊σ = 4,JPEG-drop,JPEG-mask和Identity层。