图像篡改检测之融合LSTM和编码器方法

1 融合LSTM和编码器方法

论文:Hybrid LSTM and Encoder-Decoder Architecture for Detection of Image Forgeries (基于混合LSTM和编码器-解码器结构的图像伪造检测)
Code link:https://github.com/jawadbappy/forgery_localization_HLED
长短期记忆(LSTM)网络是循环神经网络的一种,擅长于解决序列数据中的长期依赖问题,在长序列数据中往往有更好的表现。在图像篡改定位中,LSTM通常与CNN结合起来使用。此时,图像或其特征图会被分割成小块,形成序列数据,从而可通过LSTM来对小块之间的关系进行建模,这有助于获得可区分原始区域和篡改区域的有效特征。

1.1 为了定位图像中被操纵区域的目标,提出了一个统一的架构:

利用重采样特征、LSTM网络和编码器-解码器架构来学习被操纵图像区域的像素级定位。给定图像,将其分成几个块/补丁,然后从每个块中提取重采样特征(如第4节所述)。利用LSTM网络在频域学习被操纵块和非被操纵块之间的相关性。利用和修改编码器-解码器网络来捕获空间信息。每个编码器生成不同大小和数量的特征映射。在经过解码器之前,先嵌入LSTM网络的特征映射和编码器的编码特征映射。执行端到端训练,通过使用真值掩码信息的反向传播来学习网络的参数。
在这里插入图片描述

1.2 方法概述:

网络可以分为三部分:

  • 具有重采样特征的LSTM网络:
    第一部分,将图像分割成小块。对于每个patch,提取了重采样特征。对于提取的重采样特征,使用Hilbert曲线(在第3节中讨论)来确定输入LSTM细胞的patch的顺序。让LSTM单元在频域中学习操纵和非操纵块之间的转换。最后,从LSTM单元输出生成特征映射,并将其与编码器的特征映射相结合。
  • 卷积编码器网络:
    第二部分,编码器由残差块、批归一化和激活函数组成。在每个残差块上,用快捷连接方式进行两次卷积。对每个残差单元进行最大池化操作,实现平移不变性。设计一个解码器,它可以更好地表示掩码中的不同区域。结合编码器的空间特征和LSTM的输出特征来学习操纵的本质。然后,将这些特征作为解码器的输入。
  • 解码器网络:
    第三部分,每个解码器都遵循基本操作,如上采样、卷积、批处理归一化和激活特征映射(使用激活函数)。解码器帮助学习被操纵类和非被操纵类的详细信息。最后,使用softmax层来预测被操纵的像素和未被操纵的像素。利用被操纵区域的真值掩模进行端到端训练,对每个像素进行分类。计算交叉熵损失,然后利用反向传播算法最小化交叉熵损失。优化后,找到了网络的最优参数集,这些参数集将用于预测给定测试集的操纵区域。

总结:首先生成卷积编码器的空间域信息和LSTM的频域信息,然后利用解码器网络获得更精细的二进制掩码表示,从低分辨率特征图中定位篡改区域。

1.3 Hilbert Curve(希尔伯特曲线):

长短期记忆(LSTM)通常用于存在顺序信息的任务中。LSTM的性能高度依赖于patch的排序(提取patch的序列)。利用Hilbert曲线对patch进行排序后,再使用LSTM网络。作者的经验观察到,这种排序技术有助于提高定位的性能。

1.4 具有重采样特征的LSTM网络:

LSTM网络以处理不同应用程序中的顺序数据而闻名,在计算机视觉中,LSTM网络已经被成功的用于捕获一系列像素之间的依赖关系。使用LSTM检测图篡改的关键时学习不同块之间的边界变换,从而提供被篡改区域和未被篡改之间的判别特征。
重采样信号在线性预测误差中具有周期相关性,应用Radon变换沿不同投影角度累积误差。在实验中,使用了10个角度。最后,应用快速傅里叶变换(FFT)来找出信号的周期性。一般来说,这些重采样特征能够捕获不同的重采样特征——高于或低于阈值的JPEG质量阈值、上采样、下采样、顺时针旋转、逆时针旋转和剪切(在仿射变换矩阵中)。

1.4.1 LSTM由来

长短期记忆模型(long-short term memory)是一种特殊的RNN模型,是为了解决RNN模型梯度弥散的问题而提出的
RNN与LSTM最大的区别在于LSTM中最顶层多了一条名为cell state的信息传送带,也就是信息记忆的地方。
cell state时整个模型中的记忆空间,随着时间的变化而变化,传送带本身无法控制那些信息是否被记忆,其控制作用的是“门”。

1.4.2 门

LSTM中有三个控制门:输入门,输出门,记忆门。控制门结构主要由一个sigmoid函数跟点成操作组成,sigmoid函数的值在0~1之间点乘操作决定多少信息可以传过去。
首先经过forget gate:选择忘记过去某些信息
第二经过input gate记忆现在的某些信息
然后将强两步的信息进行合并(过去的记忆+现在记忆)
最后经过output gate输出

1.5 编码器网络:

使用卷积层来设计编码器,使网络理解被操纵和非被操纵类之间的外观、形状和空间关系,使用卷积层来生成用于语义分割的空间热图。编码器中的每个残差单元生成一组特征映射,在每个卷积层使用批归一化,批归一化对协方差偏移具有鲁棒性,激活函数选择ReLU。在每个残差单元结束时,执行步长位2的最大池化,将特征映射的大小减少2倍,在每一层使用最大池化保证转换不变性,最大池化会导致特征图空间分辨率损失,边界细节的损失通过解码器来补偿。

1.6 解码器网络:

要求在预测期间存储编码器特征映射。不太社和现实生活,需要大量内存。用解码器取代全连接层,解码器对编码器的特征输出进行解码。
每个解码器首先对前一层学习到的特征映射执行上采样。然后进行卷积运算和批处理归一化。最后,利用2张热图对解码器网络末端的被操纵类和非被操纵类进行预测。

1.7 总结:

提出了一种基于深度学习的方法来对篡改图像中的被操纵区域进行语义分割。提出CNN-LSTM模型,可以有效的对操纵区域和非操纵区域进行分类。利用CNN架构类设计一个编码器网络,提供被操作区域的空间特征。在LSTM网络里加入小块的重采样特征,学习被操纵小块和非被操纵小块之间的差异。
最后利用解码器网络学习编码后的特征映射到二进制掩码的映射。

1.8 代码复现检测结果

该网络使用数据集格式为hdf5格式,使用8张篡改图像和手机拍摄的8张未篡改图像进行测试,使用给定模型权重进行测试。
复现步骤:(1)制作hdf5格式数据集(2)提取数据集中的特征存储到hdf5文件中(3)调用网络模型和数据集进行测试
根据结果可知:误检率比较大,如篡改检测图的第2、4、7张,该模型认为8张未篡改图中,全部有篡改痕迹,检测全部错误。
测试结果如下(每张测试图中的四张图片分别为:输入原图、输入篡改区域的二值掩模、输出预测二值掩模、输出概率热图 ):
篡改图8张
1
2
3
4
5
6
7
8


未篡改图8张
9
10
11
12
13
14
15
16

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值