Efficient Dense-Field Copy-Move Forgery Detection----CMFD论文笔记

一、idea从何而来

1)相对于sparse-field方法来说,dense-field的准确率好多了。

2)之前的dense-field方法虽然比sparse-field的方法性能好,但是它在特征匹配阶段的处理时间太高,所以作者在特征匹配阶段以PatchMatch方法代替,大大加快了处理速度,还可以保持一定的平移、旋转、尺度不变性。总之,与同类dense-field算法相比,它准确率不差、更鲁棒、更快。

二、CMFD算法框架

检测算法的一般步骤

  • 特征提取:在感兴趣像素点及其邻域计算合适的特征,还表达图像属性。
  • 特征匹配:基于相关特征,计算每个像素点的最佳匹配。
  • 后处理:过滤和处理偏移域(offset field,连接像素点和它们的最近邻点),来减少虚报(false alarm)。

注:sparse-field只有稀疏的关键像素点,而dense-field对所有像素点都经历上面三个阶段。所以为加快匹配速度,提取的特征应该尽可能短。

特征提取

1)RGB值。特征向量长,且受JPEG压缩、噪声、常见形变的影响。

2)DCT, Wavelet, PCA, SVD。虽然特征向量不长,但不具有尺度和旋转不变性。

3)圆谐变换:Zernick Moments(ZM), Polar Cosine Transforms(PCT),具有旋转不变性。 Fourier-Mellin Transform(FMT)的变体,具有尺度不变性。注:本文采用!

特征匹配

1)详尽搜索最近邻(exhaustive search for nearest neighbor),计算量太大,不可行。

2)搜索近似最近邻(approximate nearest neighbor ):

  • 词典排序(lexicographic sorting),对噪声和其它形式的破坏敏感。
  • kd-tree,sensitive hashing,虽然鲁棒性更好,速度也不错,但是它们适合一般情况,没有考虑此文中的具体情况,即。评:是不是可以改进到适合此文中的情况?
  • 改进的PatchMatch,专门寻找图像中的最近邻像素点,可大幅降低处理时间,同时还能生成准确而规则的偏移域。注:本文采用!

后处理

  • 基于密集线性拟合(Dense Linear Fitting, DLF)

三、特征匹配之PatchMatch方法

铺垫

I={ I(s)RK,sΩ} (1)

I 是图像,定义在矩形网格 Ω 上。 s 是二维向量,表示像素点所在的下标; K 指的是图像的通道数(如灰度图 K=1 ), f(s) 是定义在中心为 s P 像素矩形邻域的特征向量(如把块中 P 个像素组成一个特征向量),不过通常 f(s) 精简多了。

定义 D(f(s1),f(s2)) 为合适的特征间的距离度量。

定义偏移域 { δ(s),sΩ} ,且满足

δ(s)=argminϕ:s+ϕΩ,ϕ0D(f(s),f(s+ϕ)) (2)

当然最近邻 s=s+δ(s)

这个式子的含义是,找到一个偏移量 ϕ 使 s s+ϕ 像素(本点像素除外)的特征间的距离度量最小,这个偏移量 ϕ 便是 s 像素的偏移。对每个像素点进行此运算。

PatchMatch

  • 初始化偏移域:

    δ(s)=U(s)s (3)

    其中, U(s) 是二维随机变量,从图像均匀采样得到。当 ||δ(s)||<TD1 时,exclude这些偏移量(exclude指的是重新采样,还是把 δ(s) 设为一个常数如零?)。

    这个式子的含义是,生成一个偏移量图(偏移量是2维的,怎么用图表示?)。

    随机的初始化的原理是,虽然一个像素点产生好偏移量的可能性很小,但整张图像的所有像素点都产生不好偏移量的可能也很小,所以总会有少量偏移量好的像素点,而这正是我们需要的。

    • 传播:先从上至下、从左至右扫描每个像素点 s ,当前像素点 s 的偏移量更新为:

      δ(s)=argminϕΔP(s)D(f(s),f(s+ϕ)) (4)

    其中, ΔP(s)={ δ(s),δ(sr),δ(sc)} sr sc 分别是像素点 s 左边和上边的像素点; 当反向扫描时,也要反过来。

    这个式子的含义是,找到一个偏移量 ϕ 使 s s+ϕ 像素的特征间的距离度量最小(偏移量 ϕ 被限制在本身像素点的偏移量、上方和左边像素的偏移量); 其作用是若一个像素点的偏移量好( D(f(s),f(s+ϕ)) 较小),其相邻像素点偏移量应该跟它接近,这就实现了好偏移量的传播。

    • 随机搜索

    必要性:传播过程是贪婪,因此是次优的,取决于随机初始化的质量。

    基于当前偏移域,每个像素点的候选偏移量为:

    δi(s)=δ(s)+Ri,i=1,...,L (5)

    其中, Ri 是二维随机变量,均匀采样于半径(radius没边长的意思啊…)为 2i1 的正方形,不包括原点。

    随机搜索的更新为:

    δ(s)=argminϕΔR(s)D(f(s),f(s+ϕ)) (6)

    其中, ΔR(s)={ δ(s),δ1(s),...,δL(s)} 。此式含义与(2)(4)式类似。

    改进的PatchMatch方法

    Efficient Dense-Field Copy-Move Forgery Detection----CMFD论文笔记_第1张图片

    特征提取、偏移域初始化、随机搜索阶段没变,而只改进了传播阶段:

    在改进之前,当前像素的偏移量 δ(s) 只与零阶的 δ(sc) δ(sr) 比较,分别记为 δˆ0r(s) δˆ0c(s) , 描述固定的偏移量,对应刚性平移。

    改进之后,当前像素的偏移量 δ(s) 要考虑到上图各个位置的偏移量,描述不同的线性偏移域,对应旋转、尺度变化、旋转与尺度变化。记

    δˆ0x(s)=δ(sx)

    δˆ1x(x)=2δ(sx)δ(sxx)

    x{ r,d,c,a} (7)

    扫描方式也从自上至少、自从至右,增加了自左上至右下、自右上至左下。

    扩大的预测偏移域集为:

    ΔP(s)={ δ(s),δˆ0r(s),δˆ0c(s),δˆ0d(s),δˆ0a(s),δˆ1r(s),δˆ1d(s),δˆ1c(s),δˆ1a(s)} (8)

    这样修改之后,只要邻域像素有一个正确的偏移域,就会很快(只要2次迭代)传播到其它区域。注:两次迭代的大方向分别是从上至下、从下至上,每次迭代又有4个小方向 r,c,d,a

    四、基于DLF的后处理

    为什么要进行后处理

    特征匹配阶段产生的偏移域还很混乱,因为噪声、压缩、几何形变、光照变化、相似区域等等。

    后处理的目标

    1)调整偏移域,提高真“复制-移动”(copy-move)的检测率。

    2)添加一些合适的约束,降低假“复制-移动”的检测率。

    后处理的步骤

    1)以半径为 ρM 的圆形窗口,进行中值滤波。第2步中要计算的最小均方误差对野点(outlier)很敏感,所以要先进行中值滤波,去除野点。

    2)在半径为 ρN 的圆形邻域中,计算最小均方线性模型的拟合误差 ϵ2(s)

    3)给 ϵ2(s) 设置阈值 T2ϵ 。用于分割图像以挑选出候选的“复制-移动”区域,阈值的设置可采用不同策略。

    4)删除距离小于 TD2 个像素的区域对。因为相似的背景区域(非“复制-移动”区域)通常比较相互接近。

    5)删除面积小于 TS 个像素的区域。因为相似的细节(非“复制-移动”区域)通常较小。

    6)映射(mirroring)检测到的区域。当判断像素 s 是“复制-移动”区域时,我们也像素 s+δ(s) 标记为“复制-移动”区域,之所以这样做是因为图像描述同一物体的多个重复区域时,仍会导致出现虚警(false alarm),尤其是使用尺度和旋转不变性的特征时。

    7)以半径为 ρD=ρM+ρN 的圆形结构,进行几何形态学的膨胀操作。中值滤波和模型拟合都会腐蚀”复制-移动“区域,所以要通过膨胀操作来还原。

    密集线性模型的拟合误差的计算

    五、特征提取

    两个要素:

    • 变换方式(Transform)
    • 采样方式(Sampling)

    作者的参数设置如下表所示:

    Efficient Dense-Field Copy-Move Forgery Detection----CMFD论文笔记_第2张图片

    下图分别为长形采样点、极坐标采样点、对数极坐标采样点。

    Efficient Dense-Field Copy-Move Forgery Detection----CMFD论文笔记_第3张图片

你可能感兴趣的:(DIF论文笔记,DIF)