第一次阅读时间:2023/9/15-2023/9/20
论文链接:https://ieeexplore.ieee.org/abstract/document/8654686
代码链接:
录用信息:IEEE Transactions on Pattern Analysis and Machine Intelligence
论文标题:

提出问题:
提出解决方案:
优势&实验结果:
尽管将深度神经网络整合进发现存在的隐藏信息在最近给人留下了一个令人印象深刻的结果。但是将深度神经网络整合进隐藏过程本身的尝试却很少。在这篇文章中,一些使用深度神经网络DNN去选择哪一个LSB去代替信息的二进制,一些人使用DNN去决定从container images提取哪一个bits,也有一些人使用GAN去训练一个判别器返回一些隐藏信息被发现可能性的信号。
在这个工作中,神经网络决定将隐藏信息放置到哪,如何去压缩,如何去代表。将隐藏的信息扩散到环绕像素的所有bit和所有颜色通道中。解码网络和编码网络同时训练,解码网络被用于揭露隐藏的图片。
该训练系统学会将隐藏图片压缩和放置到host Image最不容易注意到的部分。

分为3个部分,第一个部分是Prep Network,第二个部分为Hiding Network,第三个部分为Reveal Network,Reveal Network虽然是被接受者所使用的,但是其是同时和Prep Network和Hiding Network同时训练的。

Error term1 并没有改变 Reveal Network的权重,Reveal Network不需要重建主机映像,只需要恢复隐藏图像,相比之下,所有网络都使用来自Error term 2的信号进行训练,因为每个网络都负责保存和转发关于隐藏图像的信息。


以下是30个神经网络中最佳的网络结构和超参数,所有输入和输出的图片都是200×200的像素,3通道RGB,网络被ADAM所训练,并且权重被初始化为(0,1),并没有使用Batch_Normalization,所有实验都使用了Tensor-Flow的默认参数,除了指定的以外。β=0.75的时候展现出了少量的数量好处,在数量上,每个RGB通道的平均颜色损失,对于Host Image来说是2.4,对于hidden Image来说是3.4。

本文的主要工作是明确的证明在有限的视觉可察觉伪影上的图片编码大量的信息是可能的,但是这仅仅是视觉上的,并没有明显的尝试主动的对机器检测隐藏信息的存在,换言之,机器检测还是可以检测出图片中编码着隐藏信息的。
现已存在发现LSBs中的隐藏信息的攻击,stegExpose
我们可以看到在container image的一个通道上翻转一位bit,只会影响该通道。
而对reconstruction hidden image,我们可以看到,在容器图像的任何颜色通道中,任何位位置的位翻转,在隐藏图像的重建中对所有颜色通道都有影响。换句话说,隐藏图像的信息分布在各个通道上,这也是它为什么不同通过简单的查看LSB来检测到的原因。
并且在空间维度上也影响。平均而言,对隐藏图像的每个像素的编码分布在与容器图像中对应像素的距离为7的像素中。因为由图7可看出更改container像素点距离为7以内的隐藏像素的Loss都比较大。其次,空间分布的数量与神经网络的结构和卷积的大小直接相关。上面提到隐藏像素的Loss,设S‘为正常通过隐藏揭示网络得到的隐藏图像,S’'为修改了一个bit后通过隐藏揭示得到的隐藏图像,我们对S’和S’‘做L2距离,发现L2距离的大小和被改动像素点的距离有关系。


在高检出率的条件下,这种技术并不适合需要隐藏信息的应用程序,现在我们需要将注意力转向隐藏图像内容的可发现性,而不仅仅是隐藏图像的存在。
假设对手获得了Host Image,这个Host Image是未经过改变的,对手可以放大original host和container的像素级差异,来得到隐藏图像的痕迹,因为隐藏的图像是未经过安全加密的,视觉识别特征是可见的。
隐藏图像在包含大的均匀颜色斑块的主机图像中最容易看到(图8-A、B、C和G)。

如果发送方小心地只使用高熵图像呢?这些隐藏的信息还能被识别出来吗?为了从攻击者的角度来回答这个问题,我们假设对手无法访问发送者所使用的确切网络。然而,攻击者可以成功地训练他们自己的深度图像隐藏网络。有了这种能力,他们就能为我们的网络创造一个对手吗?回想一下,对手的隐藏网络开发的表示将与我们的不同(如前所述,每个网络的编码器和解码器配对后只能一起工作)。对手并不是试图模拟我们的系统,而是可以通过训练许多随机初始化的隐藏系统的变体来收集关于隐藏过程的大规模统计数据。
我们再往下看
之前我们使用了30个不同的网络和结构来找到最佳的网络架构,现在我们重新返回到被丢弃的网络中,我们从被丢弃的网络中获得那些被训练了的样本,组成3元组
按照我的理解,使用多种网络和结构训练出来的图片组成三元组,作为隐藏了图片的标签,对其中隐藏图片随机修改作为没隐藏的图片的标签,即前者为阳性,后者作为阴性来训练一个二分类器,对该二分类器输入Host Image和Container Image,即可得到是否隐藏了图片。
这意味着,如果隐藏的图像是已知的,那么验证其存在的证据就可以可靠地从容器中提取出来,而无需访问特定的解码网络。此攻击假定对手可以访问未更改的主机映像。现在让我们让攻击更广泛:当未改变的主机不可用时,会发生什么?我们试图在没有得到未改变的主机的情况下重新训练歧视网络。令人惊讶的是,检测的准确率仍然很高,达到了94.5%。

作为最后的攻击,如果攻击者没有办法获得Host Image,使用最简单的攻击,通过一系列的模糊操作来只转换container image,从而产生容易模糊,然后计算这和容器图像之间的差值,并加强结果,我们可以从图10中看到,仍然存在对嵌入图像的内容的提示,这并没有使用到host Image和hidden Image。

模糊技术的要求是即使未被改动的host Image被获取了,隐藏图片的内容也很难被确定。模糊技术的错误必须保持局部性,无可加性和可乘性,并且不会传播。
模糊隐藏图像的一个简单方法是在像素被传送到隐藏网络之前对他们进行排列,图像的接收器将容器图像通过解码网络,该网络显示了一个混乱的隐藏图像,然后“不排列”。这个过程有一个重要的特性,即每个像素重建中的误差是严格的局部的(不影响其他像素),即使没有任何重建误差,排列后的图像也无法识别。
在一个独立的测试集上评估的最佳网络的结果如图11所示。中间排列的图像也显示出来。请注意,在排列中缺乏空间结构,而潜在的隐藏物的颜色分布是可识别的(第3列,标记为“Shuffled-1”)。最重要的是,即使在主机图像的重建过程中,误差被放大,隐藏的图像也没有可识别的痕迹(图11,第7列)。表2给出了该系统(第1行)与不使用排列的系统(第4行)的平均误差。第3行显示了使用之前训练过的网络进行排列的结果(不使用排列)。


将同样大小的多个图片嵌入到另一个相同大小的图像中,隐藏的图像可以排列,也可以不排列。这也是一种混淆方法。
具体的说,我们试图隐藏两个完整大小的N×N图像在Host Image,训练方式和隐藏一个图像的时候类型,如图12,在我们的实验中,每幅图像的l2损失是相等的。与以前一样,这个系统需要对所有这三个组成部分进行再培训。样本结果如图13所示,测试集的定量误差比较见表3。正如预期的那样,误差增加了,但重建结果在视觉上仍然很好。
在上面的过程中,我们训练了识别网络来确定一个特定的隐藏图像是否被嵌入到一个容器图像中。我们用这个双图像隐藏系统测试了这些相同的网络。在单个图像隐藏任务中,检测网络的准确率为94%。当使用本节中描述的网络对多个图像进行编码时,准确率下降到73百分比。正如我们所希望的那样,隐藏更多信息的过程进一步混淆了隐藏的图像。
两个图像分别排列并隐藏在单个主机图像中。与只使用单一的隐藏图像和非排列的双隐藏图像系统相比,重建误差显著增加。尽管这些网络的训练时间要长得多:在一个GPU上使用30天,但误差仍有所增加。表3提供了定量结果。隐藏图像和重建图像的实例如图14所示。尽管噪声和重建误差增加,但图像的内容,包括边缘和梯度,仍然基本保持完整和容易识别。



我们使用一个查询系统来对original host, hidden-1,hidden-2 image 进行检索,检索的数据库包含了ImageNet images, randomly selected iamges from photography sites on the web, and publicly available images from the Corel Database. 总共265万图像,我们测试了准确率,每次实验都进行了1000次检查,如table 4 所示,大多数实验的得分都是完美的,1000次检索中只有一个没有工作。

文中创建了一个由三个深度神经网络组成的系统来隐藏图像中的图像。在另一个相同大小的图像中嵌入一个全彩图像,需要为隐藏的图像投入很大比例的比特。但是,通过深度神经网络的压缩,得到隐藏图像的解码结果,以及包含隐藏图像的主机图像的外观,分别与原始隐藏图像和主机图像非常接近。在大多数被检查的案例中,没有看到视觉上可识别的伪影。
然而,当隐藏这么多的信息时(被隐藏信息与被隐藏信息的比例为1:1),对隐藏信息的检测可能是不可避免的。更有问题的问题是,如第3节所示,即使没有访问未改变的主机映像,也可以识别出隐藏映像内容的痕迹。此外,这可以通过各种技术来实现,从简单的容器图像转换到更复杂的基于机器学习的对手,这些对手使用从许多相似(虽然不一定相同)的)深度神经网络嵌入系统中收集的统计数据。为了进行水印和图像更改检测和认证,了解隐藏信息的内容,使得在进行修改时更容易删除和/或复制它。文中提出了通过训练一个检测网络来判别是否隐藏了图片,该检测网络使用了被丢弃的网络和架构训练得到的三元组
为了解决这个问题,我们对隐藏系统扩展了俩个方向。
首先,我们证明了系统编码乱码图片的能力。因为神经网络不再可以探索空间相关性,这需要重新训练隐藏系统的所有部分。并且网络对隐藏图像需要投入更多的表征能力。虽然重建后的hidden image和host image的损失都增加了,但是重建的host和hidden图片仍然保持比较好的质量,更重要的是,没有排列值,没有隐藏图像的可见痕迹被发现。==即将Hidden Image进行重排列,视觉上看到的是模糊的图片,但是颜色还是能看出来的。==对模型进行重训练,使它具有重新排列的能力,在解码的时候恢复隐藏图像的能力。即可达到即使将误差放大,也无法看到隐藏图像痕迹,这在没有使用重排列的时候,对containner 进行放大误差,是可以看到隐藏图像的痕迹的。