论文笔记(一)——Learning Rich Features for Image Manipulation Detection

论文链接:http://openaccess.thecvf.com/content_cvpr_2018/CameraReady/2813.pdf

论文主要提出了一种双流的Faster R-CNN网络,给定manipulated image,对其进行端到端的训练,以便检测被篡改的区域。双流分别为RGB stream、noise stream。其中,RGB stream主要目的是从RGB图像输入中提取特征,从而发现像强烈对比差异,非自然的篡改边界等之类的tampering artifacts。Noise stream 主要利用噪声特征去发现在真实区域和篡改区域之间的噪声不一致性,噪声特征是从steganalysis rich model filter layer中提取的。之后,通过bilinear pooling layer融合两个流的特征,以便进一步结合这两种模态的空间信息。

1.Introduce

常见的篡改技术有以下三类:
Image splicing:从一个真实图像复制部分区域然后粘贴它们到其他图片。
Copy-move:复试和粘贴部分区域在相同的图像内。
Remove:从一张图像中删除部分区域,然后修复它。

与目前的object detection不同,用于image manipulation dection的网络旨在仅检测tampered regions。论文中提出的方法是关于如何通过利用RGB image content和image noise feature使object detection网络进行图像操作检测。
论文中提出的双流操作检测网络不仅模拟visual tampering artifacts,也捕获局部噪声特征中的不一致性。
整体网络框图如下:
在这里插入图片描述
在这个双流网络中,采用Faster R-CNN并且进行end-to-end训练。深度学习检测模型如Faster R-CNN在一些尺度上检测语义对象有较好的性能。

RPN(Region Proposal Network)是Faster R-CNN的一部分,用于提出可能包含感兴趣对象的图像区域,并且使其适用于图像操作检测。为了区分篡改区域,论文利用了从RGB通道提取的特征去捕获在篡改边界的视觉不一致性、篡改区域和真实区域的对比差异等线索。

第二个流分析图像中的局部噪声特征。这么做的主要原因是:当一个物体从一张图像中移除然后粘贴它到另一张图像时,在原图像和目标图像之间的噪声特征可能不相匹配。在使用者随后将篡改的图像进行压缩后可能会部分掩盖这个差异。为了利用这些特征,论文作者将RGB图像转变到noise domain和使用局部噪声特征作为第二个流的输入。在文中采用的是SRM(steganalysis rich model) filter kernels生成噪声特征。

RGB和noise streams共享相同的region proposal(来自仅使用RGB特征作为输入的RPN网络)。然后RoI pooling layer从RGB和noise streams选择spatial特征。通过RGB RoI特征生成预测的边界框。然后通过bilinear pooling组合两个流的spatial co-occurrence features。最后,通过一个全连接层和一个softmax层传递结果,网络产生预测标签并且判断预测区域是否被篡改。

2.Method

使用了一个同时执行manipulation classification和bounding box regression的多任务框架。在RGB流中使用RGB图像,在noise流中使用SRM图像。在全连接层之前,通过bilinear pooling融合两个流用于操作分类。RPN使用RGB流去定位篡改区域。

2.1 RGB Stream
RGB stream是单独的Faster R-CNN网络,用于bounding box regression和manipulation classification。使用ResNet 101从输入的RGB图像学习特征。

ResNet最后的卷积层输出的特征被用于操作分类。

RPN网络使用这些特征提出用于bounding box regression的RoI。
RPN网络的loss是:
在这里插入图片描述

g_i表示锚i在一个mini batch中是潜在的被篡改区域的概率,g_i*表是对于锚i的ground-truth是positive。f_i和f_i*分别是锚i和ground-truth的四维边界框坐标。L_cls表示RPN网络的交叉熵,L_reg表示用于平滑提议边界框回归的L1损失。N_cls表示在RPN中mini-batch的size,L_reg是anchor location的数目。λ用来平衡这个两个损失。

传统的使用RPN的对象检测倾向于寻找可能是对象的区域,论文中的RPN网络寻找可能被篡改的区域。

2.2 Noise Stream
篡改图像可能经过一些后期处理从而隐藏拼接边界、减少对比差异。此时,使用局部噪声分布可以提供额外的证据。

Noise Stream更关注noise,论文中使用SRM filter从RGB图像提取局部噪声特征作为noise stream的输入。

论文中,噪声是通过像素值与仅通过内插相邻像素的值产生的像素值的估计之间的残差来建模。从30个filter开始,以及滤波后邻近输出的最大最小等非线性操作,SRM聚集了基本的噪声特征。SRM量化并截断这些filter的输出和提取邻近的共现信息作为最后的features。论文作者发现使用30个kernels不如使用3个kernels效果好。而且,直接将其送入到预训练的网络中。

Noise stream中SRM filterlayer的kernel size是553,SRM layer的输出通道是3。

Noise stream和RGB Stream共享相同的RoI pooling。由于对于RPN网络,RGB特征比noise特征执行效果好,所以仅使用RGB通道进行bounding box regression。

2.3 bilinear pooling
为了节省内存和加快训练速度,论文中使用compact bilinear pooling对RGB和noise两个流的结果进行融合,用于manipulation detection。

在全连接层和softmax层之后,可以得到RoI region的预测分类。

在这里,使用交叉熵损失用于manipulation classification,平滑L1损失用于bounding box regression。总体loss为:
在这里插入图片描述

L_RPN是RPN网络中的loss。L_tamper表示最后的交叉熵分类损失;L_bbox表示最后的边界框回归损失;f_RGB和f_N表示来自RGB和noise stream的RoI features。

3.实验

由于没有充足的数据用于训练,实验时首先在合成的数据集上进行预训练。
合成数据集是用过使用COCO中的图像和标注生成的。使用分割标注从COCO中随机选取objects,然后粘贴到其他图像中。训练集和测试集分别是90%、10%。

为了使包含一些authentic region是的RoI更好比较,在训练期间默认将边界框扩大20像素,以便RGB和噪声流都能够了解篡改区域和真实区域之间的不一致性。

实验时使用的评价指标时F1 score和AUC。
在NIST16、CASIA、Columbia、COVER四个数据集上进行了实验,并且与一些baseline model(ELA、NOI1、CFA1、MFCN、J-LSTM)进行了比较。
在这里插入图片描述
同时对不同的数据增强进行了比较,发现image flipping有利于性能的提升,像JPEG压缩和noise有较小的帮助。
在这里插入图片描述

也证明了论文提出的方法对JPEG和resize攻击具有鲁棒性。
在这里插入图片描述

同时,在NIST16数据集上探索操纵技术检测并分析所有三种篡改技术的检测性能。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chaofanjun/article/details/84956287