在之前的文章中( 图像篡改检测和定位(一) ),我们谈到图像篡改检测的几种方法,在这里我们主要讨论整个体系的框架里面不同的算法各自的优势,以及存在的问题。

我们可以根据经验大致把图像篡改检测一般性方法归纳为Fig-1所示的三个主要步骤:(1)输入图像预处理;(2)特征提取器;(3)特征输出后处理。事实上,目前的算法主要都在研究这三个部分。

目前的文章大部是基于CNN模型的算法,这里面有一个共同特征:绝大部分文章都把图像做了分片(切割)处理,这里面显然存在一些问题:(1)切片块在篡改区域的交界处,特征是不明显的;(2)切片块的输出特征向量只能代表切片块自己,一但误判,没有补救措施,结果就是误判;(3)很多文章是没考虑纹理度特征的,事实上纹理度密集区域的篡改特征相对低文理处明显。

2.Related Work

A.预处理(Pre-processing)

图像的预处理方法有很多,归结来说这些模型的作用都是在抑制图像内容,提取残差噪声。

预处理的文章有两个类别:(1)静态滤波器(手工设计);(2)动态滤波器(CNN模型);

静态滤波器有很多了,中值滤波MFR(median filter residual) [4],相机是别的PRNU噪声(photo response non-uniformity noise) [5],重采样滤波器[6]、[7],还有图像隐写分析里面用的SRM(steganalytic features)[8]。下面主要看看动态预处理。

Belhassen Bayar 和 Matthew C. Stamm应该是最早提出的动态预处理层的作者了,随后他们在系列的领域(相机模型识别、图像后处理、图像篡改检测)里面开始疯狂地发文章,用的都是一套模型。

这篇文章作为这个方向的终结发在2018年的TIFS里面,应该是很成功的,而这两位作者从2015年就开始用这个idea发文章了。

这篇文章主要解决后处理操作的检测,包括了:Median filtering (MF),Gaussian Blurring (GB),Additive White Gaussian Noise,Resampling,JPEG compression。不得不说,文章写得真的好,motivation阐述严谨、实验部分做的非常完备。

文章的思想也朴素的不能再朴素,在预处理层强制地让CNN内核除中心点为1,然后令中心点为-1,也就是类似归一化处理。作者声称是在模仿静态过滤器做的事情,那么到底先有鸡还是先有蛋??这么做真的有变好吗?这些都是问题。

还是Belhassen Bayar 和 Matthew C. Stamm的文章,换了个话题,采用了2中方法融合预处理,MFR(Median Filter Residual)和他们提出来的Constrained CNN。换汤不换药,一样的效果,不一样的问题。

目前,动态预处理的文章就只有他们的。

B.特征提取(Feature Extraction)

C.特征后处理(Post-processing)

图像篡改检测最难的地方就在于整张图像中篡改块的定位,因为定位是像素级别(pixel-level),不同于检测是图像级别(image-level)。另一方面,不谈整张图像(full image level)篡改区域定位,单单看单个切片块(patch level)的正确率,很多文章都正确率都是95%以上,事实上这种意义相对较小。

那么常见后处理,有几种方法呢?简单地可以分为:(1)单特征提取器融合;(2)多特征提取器融合。

单特征提取融合算法只能检测一种篡改方式;多特征提取器融合主要为了解决多个篡改数据(Copy-Move,Splicing,Removal等等)。

Tampering Detection and Localization through Clustering of Camera-Based CNN Features[9]

还是这篇文章,只用了CNN作为输入特征,期间考虑CNN向量中对每个类别的置信度、纹理度特征、以及融合后的密度系数。

提取的特征简洁、分析的数据很有依据,算法效果也是很好。

Image Forgery Localization via Integrating Tampering Possibility Maps[10]

这篇文章在motivation里面详细讲到了两种检测算法:Splicing和Copy-Move的检测算法,于是作者把CNN+PatchMatch放入特征提取器里面,最后做一步阈值处理决定这张图属于Splicing还是Copy-Move,不同的类别参考的权重系数不一样。

所以文章能够检测多种算法:

但是文章存在比较大的问题是运行速度慢,作者也在文章中阐述特征包含18157维,执行速度比较慢。

4. Conclusion

wait…

图像篡改检测C语言,图像篡改检测和定位(二)相关推荐

  1. 语音端点检测c语言,语音端点检测的方法.ppt

    语音端点检测的方法 语音端点检测的方法 演讲者:刘德体 语音端点检测的目的和意义 基于短时能量和短时平均过零率的端点检测 基于倒谱特征的端点检测 基于熵的端点检测 基于复杂性的端点检测(KC复杂性和C ...

  2. 恶意代码检测c语言,恶意代码检测分析软件

    恶意代码辅助分析工具最新版,这款就是刚被优化的代码检测软件,最大的用处的就是帮助你们检测自己电脑中的恶意代码,从而让你们一直拥有安全稳定的环境. 软件简介: 可以分析出系统里恶意代码的软件,免受电脑受 ...

  3. 图像压缩算法动态规划c语言,图像压缩算法  动态规划

    图片在计算机存储的是图片中的一个一个像素,也就是像素的灰度值.灰度值的范围是0~255.有灰白图像和彩色图像,它们每个像素的通道数量不同.灰白图像是单通道的,而彩色图像是3个通道的(BGR),也就是彩 ...

  4. c语言shengchen图像,430编程C语言常识(IAR)(二)结构体与联合体

    回复: 107 430编程C语言常识(IAR)(二)结构体与联合体 (288035412) 出0入0汤圆 电梯直达 发表于 2012-4-7 18:36:29 | 只看该作者 |倒序浏览 |阅读模式 ...

  5. grubbs检测c语言,Grubbs算法检测离群值

    ▲概述:一组测量数据中,如果个别数据偏离平均值很远,那么这个(这些)数据称作"可疑值".如果用统计方法-例如格拉布斯(Grubbs)法判断,能将"可疑值"从此组 ...

  6. 图像旋转源程序c语言,图像旋转 - 红尘潇洒,独自前行,但尽人事,莫问前程 - OSCHINA - 中文开源技术交流社区...

    效果 Matlab代码 clc clear all close all I=imread('lena.jpg'); [W,H,chanel]=size(I); dst_data=zeros([W,H, ...

  7. 图像内复制粘贴篡改取证matlab_[论文笔记] 篡改检测:RGB-N

    [论文笔记] Learning Rich Features for Image Manipulation Detection 说在前面 个人心得: 第一次关注篡改检测,最常见的篡改方式是拼接.复制移动 ...

  8. 图像篡改入门02 利用空间结构篡改定位

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @图像篡改入门02 利用空间结构篡改定位 图像篡改被动取证 利用图像空间结构进行篡改定位 使用一个CNN-LSTM的网络模型捕获篡改边 ...

  9. 图像视频伪造检测,针对DeepFake技术检测效果不佳

    随着Deepfake技术的发展,互联网上充斥着大量包含伪造人脸的虚假视频,Deepfakes类技术的滥用带来巨大的负面影响,本文给出一些典型检测思路及方案.很多情况下,Deepfake"以假 ...

最新文章

  1. 最近在学C语言,非常痛苦,怎么办?
  2. ECCV2020 | 即插即用,涨点明显!FPT:特征金字塔Transformer
  3. pyspark rdd 数据持久化
  4. 如何在工作中快速成长?致工程师的 10 个简单技巧
  5. debian与cenos常见命令不同处
  6. NLP数据挖掘基础知识
  7. LeetCode 14. 最长公共前缀 (单指针水平扫描)
  8. 查看系统中支持CUDA的设备数量和属性---deviceQuery示例
  9. NYOJ113 - 字符串替换
  10. 在 Angular 8 中,我们可以期待些什么
  11. ASP.net揭秘笔记
  12. i5双线程_新老系统多项测试:多线程运算谁更靠谱
  13. pe_xscan做了几个改动
  14. echarts制作航线轨迹原来是这样的
  15. logisim数据选择器_【Logisim实验】构建立即数-随机存储器-寄存器的传送
  16. 关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续?”的有关问题的总结解答
  17. 求解最大连续子序列和问题———分治法
  18. OceanBase可视化工具ODC2.3下载地址。
  19. 逻辑回归 自由度_回归自由度的官方定义
  20. MongoDB:常见的面试题和答案

热门文章

  1. linux命令 - tail:查看文件最后几行的命令
  2. 【杂谈】研究生最后一年学习计划
  3. LibreOffice/Calc:单元格设置下拉菜单
  4. 机器学习基础(六)贝叶斯统计
  5. ngx_http_core_module模块提供的变量
  6. JS算法笔记---移除元素
  7. CLIP-对比图文多模态预训练的读后感
  8. [流体力学]描述流体运动的方法:拉格朗日法和欧拉法
  9. Python2视频教程
  10. 离散信号的周期性判定,C++实现