SpliceRadar: A Learned Method For Blind Image Forensics
论文下载地址:https://arxiv.org/abs/1906.11663
- 论文总结
- 论文将残差条件作为惩罚项加入lossfunction中,训练计算残差图像的滤波器集,计算出的残差图像可以很好的抑制图像语义内容,但是仍无法有效抑制图像的语义边缘;
- 利用互信息(MI)作为惩罚项加入lossfunction,可以增强图像子块与其cnn计算出来的featuremap之间的信息独立性,以此达到抑制图像语义边缘信息的目的;
- 利用带有label的相机模式数据作为训练数据训练模型,可以在图像篡改数据库上进行篡改定位测试,准确度还挺高。
Motivation:
- 本来是做相机模式分类的网络,用在篡改定位上效果还挺好;
- 通过各种抑制图像语义信息的手段实现语义无关的篡改检测。
How and why:
-
上图为本论文所用网络结构示意图,其中RF模块和MI损失函数这两部分即为抑制图像语义信息的手段。论文最主要的目的就是提取图像语义无关的low-level feature,提取这玩意一共分两步:
1. 残差信息提取上图中第一层RF层里包含很多个通过学习得到的filter,这些个filter的作用就是计算图像残差,将残差图像作为RF层计算得到的feature map,这样就达到抑制语义信息的目的。其实这里面的RF就是参考空间富模型的思路,只不过这里面的RF filters不是人工设计的,而是通过深度学习得到的。
同时论文里还提到在RF层之后,要在损失函数里加上一个惩罚项 R R F = ( ∑ k ( R R F ( k ) ) 2 ) 1 2 {{R}}_{RF}=\left(\sum_{k}\left({{R}}_{RF}^{(k)}\right)^{2}\right)^{\frac{1}{2}} RRF=(∑k(RRF(k))2)21,其中 R R F ( k ) { {R}}_{RF}^{(k)} RRF(k)如下式所示,
R R F ( k ) = w k ( 0 , 0 ) + ∑ m , n ≠ 0 w k ( m , n ) {{R}}_{RF}^{(k)}=w_k(0,0)+\sum_{m,n\neq0}w_k(m,n) RRF(k)=wk(0,0)+∑m,n=0wk(m,n)
该惩罚项为了保证RF中的每个filter中的权重之和等于0。该惩罚项的形式在参考文献[1]里为filter中心点权重为-1,其余点权重之和为1.
2. 语义边缘抑制
RF层虽然能抑制语义信息,但是RF实际上就是好多个高通滤波器,高通滤波自然没法滤除图像的语义边缘(因为图像边缘属于图像的高频分量),这时候MI(互信息)就派上用场了,通过计算输入图像patch与RF经过两conv层和btn层之后的输出结果feature map做互信息,当互信息最小的时候说明输入patch和此时的feature map相关性最小,也就是图像语义内容与该feature map无关,就做到语义无关了。
3. 用高斯混合模型的方式生成篡改定位热点图
作者假设拼接篡改区域比原始图像的要小,因此拼接篡改定位实际上就是一个二分类问题,把所有图像patch分类,一类是篡改,一类是原图,那篡改定位结果就出来了。论文把图像分成patch,对所有patch的FC2的结果feature vector使用EM算法分成2个高斯子成分,作者采用随机初始值的方式运行EM算法100次,取似然值最大的那次作为最终结果,然后在做形态学处理,然后缩放为原图大小。
本方法缺点:
- 检测精度为patch level而达不到pixel level
- 当图像压缩后,可能造成相机模式检测结果出现误差,进而影响篡改检测结果(这个缺点仅为我的猜测)
参考文献:
[1] Bayar, B., & Stamm, M. C. (2017). Augmented convolutional feature maps for robust CNN-based camera model identification. 2017 IEEE International Conference on Image Processing (ICIP). doi:10.1109/icip.2017.8297053