Forged Image Detection and Location


Tamper Detection

1.Abstract

图像篡改检测(Tamper Detection)旨在挖掘数字图像的恶意处理,例如删除、添加、复制、截取图像中的对象。

图像篡改检测在军事防卫、司法鉴定、图像防伪等领域有重要的价值。

本文旨在通过分析近年来基于深度学习的图像篡改检测发展,总结该方向主要发展方向、可以探索方向。


2.Introduction

图像篡改检测从篡改方法上可以分为:

  • (1)图像接片检测(Image Splicing Detection)
  • (2)图像复制-黏贴检测(Copy-Move Detection)

  • (3)图像对象移除检测(Object Removal Detection)

(1)和(2)有本质区别,(1)主要通过截取图像A的某个物体到图像B,并检测图像B是否被篡改;(2)主要用过复制图像A的某个物体,移动到另外一个位置,并检测图像A是否被篡改,即(1)的复制物体来自于多个图像,(2)的物体对象来自同一张图像。

关于(1)的例子如下,图像中的第三张图来源于原图像A,原图像B中防火栓标志的合成:

Image Splicing

关于(2)Copy-Move的比较有名的例子是伊朗导弹齐射伪造事件。

2008年伊朗不断发布该国“试射多枚远程导弹”的消息,随后《纽约时报》发现,这张有四枚导弹腾空而起的照片存在被“人为修改”的痕迹:其中一枚导弹(从小图2右侧数第二枚)很可能是照片上其他两枚导弹“PS后的产物”。

Iran fake image

目前,对于(1)、(2)检测的算法比较多,而针对(3)的算法比较少见,接下来我们将分析最近几年使用深度学习解决上面几个问题论文,从而分析该领域的当前现状、未来方向。


3.Related Work

关于上述几种篡改方法,图像篡改检测算法大致可以分为传统算法和深度学习算法,传统算法的特点是手工提取特征、建立模型、分析特征并分类;深度学习的算法主要通过使用CNN模型,提取特征,并通过Softmax分类,实现端到端(end-to-end)自适应学习模式。

基于深度学习模型数字图像篡改分析架构(右)和基于手工制作功能的传统数字图像篡改分析架构(左)。<br>右侧流程图中的向上和向下箭头显示前向和后向传播方向。

[2] 总结了这两种算法的框架模型,基于深度学习模型数字图像篡改分析架构将像素作为输入,并且由三种层组成:图像处理层,用于特征表示的若干卷积层,以及用于分类的若干完全连接的层。端到端自动检测系统最大的优势是自动学习参数。接下来我们分析下近年来几篇基于深度学习模型数字图像篡改分析论文。




1.A deep learning approach to detection of splicing and copy-move forgeries in images [3]

这篇论文是2016年发表在WIFS,关于深度学习模型数字图像篡改的开山之作。

10层卷积层的架构模型

文章提出了一种基于深度学习技术的伪造图像伪造检测方法,该方法包含10层卷积层,其中第一层为SRM富模型(spatial rich model)[4] 预处理层,有助于加快网络收敛;输出使用SVM二分类;中间层卷积核多为3x3。

早年算法,整体来看比较中规中矩,只能做到检测是否篡改(Detection ),无法做到定位(Localization ),同时使用的是CASIA v1.0、CASIA v2.0、Columbia gray DVMM 这三个数据库完成实验。

2.Detection and Localization of Image Forgeries using Resampling Features and Deep Learning [5]

这篇文章是2017年发表在CVPR Workshop,使用重采样算法实现篡改检测的算法。

用于检测和本地化数字操作的端到端框架

算法主要包含2个步骤,第一,通过重叠的图像块计算重采样随机特征;第二,使用深度学习分类器和高斯条件随机场模型来创建热力图,从而定位篡改区域。算法先将图像块重叠堆放,然后使用CNN特诊提取,接着建立统计学模型,根据统计直方分布,分析篡改小块的位置。

数字图像成像过程

上图显示了数字图像成像过程,其中成像过程需要经历:模拟信号处理、数字信号处理,其中模拟信号处理包含镜头偏移、CFA插值等;数字信号处理包含了去马赛克、伽马矫正、重采样等等,而不同的图像的重采样程度是不同的,经过篡改必然导致篡改部位重采样率的差异,文章的算法正是源于这个原理。

3.Tampering Detection and Localization through Clustering of Camera-Based CNN Features[6]

这篇文章也是发表在CVPR Workshop的基于CNN篡改检测、定位的文章。

图像I被分成块P(ij)。 每个补丁由通过CNN提取的特征向量f(ij)和置信度得分Q(ij)描述。<br>自定义聚类算法产生篡改掩码预测M,其也用于检测。

文章提出了一种图像篡改检测和定位算法,利用不同相机模型留在图像上的特征足迹,最直接的原理即是检测图像的拍摄相机来源,由于不同型号相机拍摄的照片所携带的模式噪声不一样,以此鉴定图像是否篡改、篡改定位。

这篇文章是作者 Bondi 在2016年发表[7]的工作的延续,[7]通过建立CNN+SVM模型,鉴定数字图像拍摄来源,但是存在一定的缺陷,即是相同型号相机生成的图像篡改无法被检测出来。算法的基本模型考虑到了两层因数:第一,CNN检测到的部位是否被篡改(即f(i, j));第二,我们知道纹理度低的部位的篡改明显存在误差,因此,作者根据纹理度计算公式对每个图像小块计算置信度因子(即Q(i, j)),其中Q(i, j)定义为:

纹理度转换置信度计算公式

最后将两个计算结果合成后得到篡改部位的置信度热力图,然后经过K-mean聚类、概率模型去噪得到最终的结果:

所提出的定位算法的伪造图像和中间输出的示例,伪造用红色虚线突出显示。<br>K-means检测到的簇被映射到不同的颜色,白色和黑色像素分别代表M的0和1值。

算法使用Dresden图像库,该数据集由来自26种不同相机模型的超过16k图像组成,描绘了总共83个场景,关于篡改图像如何制作,本文作者没有解释。这篇文章做得相对完整,从图像切片(patches)->CNN特征提取/Q纹理度换算置信度->整合块热力图->除噪,每个步骤都很扎实。


4.Reliability Map Estimation For CNN-Based Camera Model Attribution [8]

这篇文章是[6]经过简单修改后重新发的文章,本质上没有很大的变化。

Block diagram of the proposed approach. Image I is split into patches. Each patch Pk, k∈[0, K] is processed by the proposed CNN (composed by Mcam and Mip) to obtain a reliability score gk and a camera model estimate.

文章提出了一个置信度(Reliability)图模型,将补丁块(Patch)放入CNN先训练模型、提取特征,然后得到热力图,得到最终的置信度热力图后除噪过滤出篡改部位。

Accuracy curves on training (Dip) and validation T(DV) datasets using Pre-Trained and Transfer strategies

算法主要分为两部分,CNN特征提取、置信度图去噪,其中CNN特征提取使用了预训练(Pre-Trained)方法和迁移学习方法(Transfer),上面是算法在训练集、校验集的正确率。

5.Deep Matching and Validation Network: An End-to-End Solution to Constrained Image Splicing Localization and Detection [9]

文章发表在2017 ACM on Multimedia Conference,作者代码在Gitlab: https://gitlab.com/rex-yue-wu/Deep-Matching-Validation-Network

Constrained image splicing detection problem, where true spliced pixels are labeled as white. From top to bottom, sample detection labels are 1, 1, and 0, respectively.

文章考虑的主要问题是限制性的图像篡改检测问题(constrained image splicing detection (CISD) problem),即问题提供查询图像Q和潜在篡改来源图像P,需要从图像Q中检测是否有物体来源于图像P,问题更倾向于Copy-Move篡改模型。文章提出一种深度匹配网络(Deep Matching and Verification Network (DMVN)),扩展了底层拼接问题的公式,以考虑两个输入图像,一个查询图像Q和一个潜在的供体图像P。

Deep matching and validation network for the constrained image splicing detection and localization.

文章提到创新点为:(1) 相比传统算法,DMVN是一种端到端(End-to-End)模型;(2) 相比其他深度学习算法,DMVN不仅特征提取自动,而且后处理也是非干预;(3) 创新地提出深度学习模块(Deep Dense Matching和Visual Consistency Validator),用于执行视觉匹配和验证。

仔细地看了下论文,算法主要包含以下流程(1) CNN Feature Extractor:使用的是VGG-16;(2) Deep Dense Matching:使用的是inception-based Mask Deconvolution模块,来源于[10];(3) Visual Consistency Validator:用于强制模型聚焦于两个图像中的分割区域,将两个Mask快融合起来。总体看来,是将多个深度学习网络拼接起来。


4. Conclusion

笔者将[6]的算法实现了一遍,其中:
(1)CNN特征提取的算法比较普通;
(2)后处理中滤波算法显得比较出众,主要有两种:①对CNN输出执行度做L1范式滤波,②对于去除低文理区域预测结果,对于图像纹理度指数获取算法,网上、文献里面都没有找到,应该是作者自己的研究。

(a)图像原始图;(2)使用[7]中的文理检测算法得到的热力图

纹理度可知:最有可能篡改的部位为树,因此滤波时候存在一定的可能性过度过滤早点,从结果也可以得知监测的篡改部位变小了。

论文[7]的实现,(a)篡改过的图像;(b)篡改的区域图,黑色为篡改部位;(c)CNN计算出来的概率图,黑色为未篡改部位,颜色越浅越篡改的置信度越高;(e)经过L1均值滤波结果;(e)经过纹理度去噪结果。

简单做个总结:
  • 大部分深度学习算法离不开传统算法的原理,基本上都源于数字图像的成像过程留下的模式噪声;
  • 目前算法基本上可以同时解决检测篡改(Detection )、篡改定位(Localization );
  • 深度学习鉴定复制-黏贴(Copy-Move)的算法比较少,关键是如何让算法认识到寻找两个相似物体,基本上都是研究接片检测(Image splicing);
  • 目前的主要算法可以分为:传统手工特征统计学习模型;机器学习半自动化模型;深度学习全自动模型(End-to-End);

5. Reference


本文出自 夏日小草,转载请注明出处:http://homeway.me/2018/08/05/tamper-detection-an-overview

by grasses 2018.08.05

Fork me on GitHub