Digital Image Tamper Detection An Overview


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]

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

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),上面是算法在训练集、校验集的正确率。


4. Conclusion

简单做个简单总结:

  • 大部分深度学习算法离不开传统算法的原理,基本上都源于数字图像的成像过程留下的模式噪声;
  • 老套路依然可以行,传统算法经过改造搬运到深度学习算法中;
  • 目前算法基本上解决检测是否篡改(Detection ),同时实现定位(Localization );
  • 目前还没有使用深度学习鉴定复制-黏贴(Copy-Move)的算法,基本上都是研究接片检测(Image splicing);

5. Reference


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

by grasses 2018.08.05

Fork me on GitHub