zoukankan      html  css  js  c++  java
  • Image splicing forgery detection combining coarse to refined convolutional neural network and adaptive clustering

    粗到精的卷积神经网络与自适应聚类相结合的图像拼接篡改检测

    研究方向:图像篡改检测

    论文出处:ELSEVIER A类

    学校:西安电子科技大学网络工程学院、重庆邮电大学计算机科学与技术学院

    关键字:Splicing forgery detection、Convolutional neural networks、Adaptive clustering、Image-level CNN

    论文提出的检测方法:提出的检测方法包括两部分,第一部分为一个粗到细的卷积神经网络(C2RNet),第二部分为自适应聚类。在第一部分中将粗的卷积神经网络称为C-CNN,细的神经网络称为R-CNN,两个网络分为两个阶段提取图像中篡改和未被篡改区域之间不同的属性,在此过程中为了降低运算量,采用Image-level的卷积网络来代替Patch-level的卷积网络。在这之后将网络输出的可疑篡改区域,应用自适应聚类算法进一步确定篡改的区域。

    实验采用的数据集:CASIA,COLUMB,FORENSICS

    实验结果:本文提出的检测算法与目前最好的算法相比,能够实现可观的效果。并且在多种篡改方式上都实现了良好的效果。


    1.基础知识

        数字图像篡改分为两种类型:copy-move forgery(复制粘贴篡改)和splicing forgery(拼接篡改)。前者指的被篡改的部分来自本身的一部分,后者指的是被篡改的部分来自非本身的部分。拼接篡改比复制粘贴篡改的检测更加难。

        最新的一些研究提取不同的一些特征来鉴别图像是否被篡改,这些特征有lighting(光照), shadows(阴影), sensor noise(传感器噪声), and camera reflections(相机反射原理).

        拼接篡改的检测方法主要基于4类,分别为基本图像属性的检测,成像设备属性的检测,图像压缩属性的检测,哈希技术。这四类检测方法的局限性如下:

    • 如果在拼接后应用了一些隐藏伪造的技术,例如整体模糊操作,则可能后导致检测失败。
    • 如果设备的噪声强度较弱,则基本成像设备属性的检测方法可能失效。
    • 基于图像压缩属性的检测方法只能检测JPEG格式的图像篡改。
    • 基于哈希技术的检测方法依赖于原始未经篡改图像的哈希,则不能严格分类为盲伪造检测类型。

        卷积神经网络成功的两个原因,如下:

    • CNN框架利用了领域内的像素通常是高度相关联,采用分组的本地连接,而非所有像素单元之间使用一对一连接(大多数神经网络的情况)。
    • CNN体系结构采用特征共享,每个通道(特征图)都是在所有位置使用相同的卷积核通过卷积运算生成的。

    2.网络框架结构及相应算法

    2.1. 网络框架结构

    QzkfpD.png

        上图种的上一部分为从粗到细的CNN网络,下一部分为自适应聚类算法。

        在上一部分,分为两个特征学习过程,第一个特征学习过程是基于粗CNN,能够粗略的确认在图像篡改区域和图像未篡改区域的差别,尤其是边缘。第二个特征学习过程是基于细CNN,能够进一步学习到必要的在图像篡改区域和图像未篡改区域的差别,即在粗CNN得到的边缘进一步筛选。

        在下一部分,在通过C2RNet得到最终更加准确的可疑篡改区域(Net_out)后,采用自适应聚类算法确定最终准确的篡改篡改区域(FD_Out),然后利用填充算法进行填充,得到最终结果。


    2.2. C2RNet网络参数

    2.2.1. 粗卷积神经网络(C-CNN)网络参数

        C-CNN是基于VGG-16,它包括13个卷积层,每个卷积层采用RELU激活函数,5个最大池化层,2个全连接层。

        数据的输入:图像块(image Patch)(W_c×W_c)(篡改图片和对应原始图片),论文中(W_c)设置为32,一共生成115000的patch标签作为篡改和115000patch标签作为非篡改。

        数据的输出:二分类问题,是包含篡改区域的块还是不包括篡改区域的块。

    QzGfaT.png


    2.2.2. 细卷积神经网络(R-CNN)网络参数

    QzGIG4.png

        C-CNN输出的是可疑的篡改区域,这就意味着图片边缘附近可能存在一些不正确检测到的区域,这表明C-CNN学习到的结果需要进一步过滤掉,同时也说明了C-CNN网络中输入的Patch大小无法提供足够的局部信息来探索图片的差异。因此,可以通过级联一个精的CNN网络来滤除那些不准确的区域。

        R-CNN是基于VGG-19,它包括16个卷积层,5个最大池化层,3个全连接层。

        数据的输入:图像块(image Patch)(W_r×W_r)(为了使R-CNN获得更多足够的本地信息,(W_r>W_c),这些patch来自原始图像和可疑篡改区域),论文中(W_c)设置为96,一共生成115000的patch标签作为篡改和115000patch标签作为非篡改。

        数据的输出:二分类问题,是包含篡改区域的块还是不包括篡改区域的块。

    2.2.3. 为了加快计算速度采用Image-level CNN

        图像被每个像素为中心的重叠的patch块,然后每个像素块输入到网络中进行训练。例如图像的大小为M×N,被分成每个patch的步幅为1,则重叠的patch块数数量为((M-W+1)×(N-W+1)),让将这些图像patch按顺序输入到网络中。本文中为了加快计算速度,将patch-level CNN 转换成 image-level CNN。

        两者关系如下:

    QzBW6O.png

    QzB50H.png

        可疑观察到两者的结果是等效的,区别如下:

    • 最大池化被替换成重叠的最大池化
    • 在重叠最大池化后添加下采样步骤

    2.2. 自适应聚类算法

        自适应聚类算法整体流程:QzDBgf.png

        由R-CNN网络得到的输出为Net_out,自适应聚类算法分为两步:自适应离群滤波(adaptive outlier filtering)和填充操作(convex full filling process)。

        具体算法如下:

    QzDj8x.png

        具体算法解析如下:将Net_out分成(C_1)(C_n)个簇,簇的中心分别为(b_1)(b_n),计算这几个簇的几何质心(g_c),通过欧氏距离计算(b_i到g_c)的距离,记为(d_igc).通过下面公式在计算这些欧式距离的均值(overline{d_gc}),通过下面公式计算出标准偏差(sd)

    QzR9p9.png

    QzRa1s.png

        如果(sd)满足如下条件:

    QzRr7T.png

        则所有的(c_1)(c_n)全部作为确定的篡改的区域记为(widetilde{Net-out})

        如果(sd)不满足,则说明一小部分簇并非篡改区域,取一个阈值(t_h),将每个簇中包括像素最多的(d_gc)作为基准,计算各个簇到基准的欧氏距离,若欧氏距离小于(t_h),则认为该簇为篡改区域。

        最后用填充算法对符合条件的簇进行填充为一个区域,生成FD_out。

        具体例子如下

    QzWgVf.png

        如图,图片被分成了四个簇,每个簇的质心为黑色块(a),计算几何质心(gc),分别计算每个簇质心到几何质心的欧氏距离(d_igc)(b),计算标准偏差(sd),发现(sd)不满足条件,选择每个簇包括像素最多的簇的(d_igc)为基准,此例为(C_1),计算其它簇到基准的欧式距离,若大于阈值,该簇为非篡改区域,将剩余的簇填充为一个区域,即为最终篡改区域FD_out。


    3.实验与分析

    实验的数据集:

    • CASIA:包括1275个数据,原始图片和篡改图片各1275。存储格式为TIFF,分辨率为384×256。训练数据集为1226,剩余的49做为测试集。
    • CLOUMB:包括179个数据,原始图片和篡改图片各179。存储格式为TIFF,分辨率为757×568。训练数据集为139,剩余的40做为测试集。
    • FORENSICS:包括144个数据,原始图片和篡改图片各179。存储格式为PNG,分辨率为2018×1536。训练数据集为94,剩余的50做为测试集。

        以上数据集中的数据称为普通拼接篡改图像。

        同时,本论文还进行了5中更加复杂拼接篡改,分别为JPEG压缩,噪声添加,图片缩放,图片旋转和前四种的组合,由于以前的研究图片均采用JPEG,故我们将所有的TIFF格式图片转换成JPEG,质量因子为100%。

    衡量标准:

        TP:表示为正确检测到篡改的像素数

        FP:表示为错误检测到篡改的像素数

        FN:表示为错误检测到的未篡改像素的数量

        采用Precision、Recall、F-Measure来衡量算法性能,公式如下

    Qz56Sg.png

    神经网络框架:Tensorflow


    3.1. 聚类簇的数量n

    QzqYNR.png

        通过实验分析,当N=4时,准确率最高。


    3.2. 实验评估和对比分析

        过往图像篡改方法DCT , ADQ , ELA , NADQ , CFA , NOI , NFC , MPRNU , C-Net , DF-Net , and LSC-Net。这些检测方法可以在像素级别检测篡改区域。

    3.2.1. 普通拼接篡改检测结果

        六个示例结果如图,图中的a1-a2来自CASIA,a3-a4来自COLUMB,a5-a6来自FORENSICS,a7是一张图中有多个篡改部分,并且是图片的大小是非标准。分别计算了六个示例的衡量标准的平均值(Precision、Recall、F-measure),如下表。

    QzXTVe.png
    QzXIbD.png
    QzX5DO.png
    QzXxr8.png


    3.2.2. 复杂拼接篡改检测结果

        以下所有图的三列分别为衡量标准Precision, Recall , and F-measure。

    A)在JPEG压缩条件下篡改检测的结果

    lSGJ6s.png

        横坐标为压缩质量因子。

        a1和a3是来自CASIA,b1和b3是来自COLUMB,c1和c3来自FORENSICS。


    B)在添加噪声条件下篡改检测的结果

    Qzjwid.png
    QzjaIH.png
    QzjUde.png

        横坐标为不同的方差数。

        a1和a3是来自CASIA,b1和b3是来自COLUMB,c1和c3来自FORENSICS。


    C)在组合条件下篡改检测的结果(JPEG压缩和加噪声组合)

    lSJWKs.png

        a1-a3显示了在JPEG压缩率为60%的CASIA下添加不同方差的噪声的结果。

        b1-b2显示了在JPEG压缩率为80%的CASIA下添加不同方差的噪声的结果。

        c1-c3显示了在JPEG压缩率为60%的COLUMB下添加不同方差的噪声的结果。

        d1-d3显示了在JPEG压缩率为80%的COLUMB下添加不同方差的噪声的结果。

        e1-e3显示了在JPEG压缩率为60%的COLUMB下添加不同方差的噪声的结果。

        f1-f3显示了在JPEG压缩率为80%的COLUMB下添加不同方差的噪声的结果。


    D)在缩放条件下篡改检测的结果

    lSNYCT.png

        横坐标为缩放因子。

        a1和a3是来自CASIA,b1和b3是来自COLUMB,c1和c3来自FORENSICS。


    E)在旋转条件下篡改检测的结果

    lSNDV1.png

        横坐标为旋转度数。

        a1和a3是来自CASIA,b1和b3是来自COLUMB,c1和c3来自FORENSICS。


    F)运行时间的对比

    lSNHG8.png

        上表中包括了patch-level CNN和image-level CNN的对比。


    F)部分实验结果与其它方法对比可视图

    lSUcoq.png
    lSU6wn.png


    4. 结论

        实验结果表明,该方法取得了比其他先前检测方法更好的结果。由于这些数据集的容量限制了针对所提出的检测方法对C2RNet的训练,因此尚未获得理想的结果。

        由于后处理方法(自适应聚类算法)的限制,所提出的检测方法仅聚焦于图像中的单个篡改区域,并且在以后的研究中将考虑并修复该问题。


    总结

        本论文实际上就是利用语义分割,新颖的地方就是利用两个神经网络的级联来实现一步一步精确的检测,在提取到Net_out后,利用K-means来提取真实的篡改区域。

        在实验采用了多种比对方法进行对比,使实验结果更加准确。

  • 相关阅读:
    需学习
    CentOS中一些基本的操作记录
    允许IIS下载无后缀文件及“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。”的解决方法
    sql server使用的注意点及优化点 自备
    kali 系列学习02
    kali 系列学习01
    运维自动化之13
    运维自动化之12
    运维自动化之11
    运维自动化之10
  • 原文地址:https://www.cnblogs.com/wenshinlee/p/12082856.html
Copyright © 2011-2022 走看看