基于残差全卷积网络的图像拼接定位算法

2019-11-05 07:37吴韵清陈北京鞠兴旺
应用科学学报 2019年5期
关键词:像素点定位精度残差

吴韵清,吴 鹏,陈北京,鞠兴旺,高 野

1.南京信息工程大学计算机与软件学院,南京210044

2.南京信息工程大学江苏省大气环境与装备技术协同创新中心,南京210044

3.东南大学江苏省计算机网络技术重点实验室,南京210096

数码相机、摄像头等图像采集设备的普及使数字图像在司法、新闻、医学影像等多个领域发挥了重要作用.以Photoshop 为代表的各类图像处理软件大量出现,这些软件获取方便且功能强大,可被越来越多的非专业人士熟练使用.但人们在享受数字图像处理技术带来便捷的同时,也面临着数字图像真实性的严峻挑战.若带有恶性目的篡改者擅自修改敏感领域的数字图像,其后果不堪设想.

面对迫切的社会需求,数字图像取证技术应运而生.目前,数字图像主流取证技术可分为主动取证和被动取证两大类.主动取证技术需事先嵌入附加信息,使其在应用场景上具有局限性[1].被动取证技术无需任何预处理,比主动取证技术更具现实意义.对数字图像内容的篡改有许多方式,拼接是最常用的手段,具体是指从一幅图像中复制一些区域粘贴到另一幅图像的操作[2].因此,本文将重点研究数字图像拼接篡改被动取证问题,即数字图像拼接定位问题.

针对数字图像的拼接定位问题,传统算法的研究重点在于特征提取和分类算法.它们提取的特征主要包括基于JPEG 压缩特性的特征[3-6]、基于相机特性的特征[7-9]、基于图像处理的特征[10]、基于物理特性的特征[11-14]等.但这些特征都是手动提取,泛化性一般,只能处理一些特定的情形.近年来,学者们也提出了一些基于深度学习的图像被动篡改定位算法[15-19].相较于传统算法,基于深度学习的算法无需提取显式的特征,而是通过网络训练自动学习期望的特征.比如,文献[15]利用卷积神经网络(convolutional neural networks,CNN)自动学习特征.文献[16]以DCT 系数直方图作为卷积神经网络的输入,通过对单压缩区域和双压缩区域分类来实现篡改定位.文献[17]考虑了不同类型的输入(空域、频域、多域),对文献[16]的网络进行改进.为达到像素级精度,文献[18]提出用全卷积神经网络(FCN)替代CNN,并结合条件随机场(CRF),还融合3个不同FCN 结构的定位结果.这些算法虽然精度有所提高,但CRF 与FCN 各自独立,不是一个端到端的结构.因此,文献[19]改进了文献[18]提出的方法,改变CRF的使用方式并增强对目标区域的学习,使整个网络成为一个端到端的学习系统,其定位精度有所改进,但随着网络深度的加深网络不易收敛[20],优化空间有限.基于上述分析,本文将在FCN 中引入残差结构,进而提出一种新的图像篡改拼接定位算法.

1 相关工作

1.1 全卷积神经网络

FCN 是文献[21]提出的一种图像分割网络模型.该网络可对图像中每个像素进行分类,解决语义级别的图像分割问题.与经典的CNN 通过全连接层对图像分类不同,FCN 使用卷积层代替了全连接层并通过反卷积上采样恢复图像的大小,从而达到对图像中每个像素点分类的目的.采用不同的反卷积方式,文献[21]给出FCN32、FCN16、FCN8 3种网络结构,如图1所示.从图1可以看出,FCN32 在输出前对最后一个卷积层产生的特征图直接进行32倍上采样得到最终输出,因此它对大目标比较敏感.为了对小目标和细节敏感,FCN16 和FCN8 则在上采样之前通过跳跃结构融合多层特征:FCN16 融合了池化4 的输出和池化5 的2 倍上采样后的输出,然后进行16 倍上采样;FCN8 则融合了池化3 的输出、池化4 的2 倍上采样后的输出以及池化5 的2 倍上采样后的输出,然后进行8 倍上采样.虽然3 种网络结构上采样方式各不相同,但最后输出结果的尺寸都与原图相同.

图1 3 种不同全卷积神经网络的结构图(2×,4×,8×分别是2 倍上采样,4 倍上采样和8 倍上采样)Figure1 Network structure of three different fully convolutional networks (2×,4×,and 8×represent 2×upsampling,4×upsampling,and 8×upsampling,respectively)

1.2 深度残差网络

随着网络深度的加深,误差不断积累.在反向传播过程中,最初几层的梯度值可能几乎为0,使网络无法收敛,这种现象称为“梯度弥散”.由于“梯度弥散”现象的存在,20 层以上的深度网络随着层数的增加,效果不升反降,网络出现退化,即当网络变得越来越深时,训练的准确率趋于平缓,但训练误差变大.

为解决该问题,文献[20]提出了ResNet,其原理如下:由于神经网络的本质是将某空间维度的向量a经过非线性变换H(a)映射到另一空间维度,网络训练过程就是优化H(a);由于H(a)难以优化,文献[20]提出不再用多个堆叠的层直接拟合期望的特征映射,而是用它们拟合一个残差映射,引入更容易学习的H(a)的残差形式F(a) =H(a)-a.假设最优化残差映射比最优化期望的映射更容易,即F(a)=H(a)-a比F(a)=H(a)更容易优化,则在极端情况下,期望的特征映射是恒等映射,此时,残差网络的任务是拟合H(a)=0,而普通网络要拟合的是H(a)=a,显然前者更容易优化.深度残差网络由多个残差单元(residual unit)组成,在每个残差单元中输入直接连接到输出,类似一个“高速通道”,两部分相加形成最后的输出,使输出层的残差传递得更远,在训练更深层的网络时网络收敛速度更快.

1.3 条件随机场

CRF 最初是用于图像分割领域的后处理算法,其目标是通过图像中像素点的观测值推理该像素点对应的类别标签值.它不仅考虑相邻像素点间的关联性,而且考虑图像中任意两像素点间的关联性.

一幅图像可看成一个图模型G=(V,E),图模型中的点可映射为图像中的像素点.V是所有像素点对应的标签集合,即V={X1,X2,X3,···,XN},其中Xi是像素点i对应的类别标签,E是图中点与点之间的边集合.图模型G符合概率分布其中Z是用于标准化的配分函数,x是像素点的像素值,E(x)是能量函数,其表达式为

式中,xi和xj分别为像素点i和j的像素值;ψu(xi)为一元势函数,用于衡量该像素点属于类别标签Xi的概率;ψp(xi,xj)为成对势函数,能衡量将像素点i和j同时标记为Xi和Xj的概率,可进一步表示为若干高斯函数的和

式中,µ(xi,xj)表示两像素值间的兼容性,w(n)为第n类对应的权重,k(n)(fi,fj)为第n类对应的高斯函数,用于度量像素点i和j的特征向量fi和fj之间的相似度,其计算方法为

式中,pi、pj、Ii、Ij分别表示两像素点的位置和颜色信息,θα、θβ、θγ为两像素点间的相关参数,式(3)的前一部分代表双边滤波,即空间接近且灰度值接近的像素可能属于同一物体;后一部分表示空间滤波,目的是去除结果中的一些孤立小区域,进行空间平滑.w1(n)w2(n)是第n类对应的高斯函数中双边滤波和空间滤波的比例系数.

2 本文算法

2.1 残差优化的全卷积神经网络

ResNet 借鉴了高速网络的思想,在网络中加入shortcut 连接形成残差单元.每层输出的不仅是输入的映射,还是映射和输入的叠加.残差单元的引入增加了当前层以前的先验特征,加强了网络中信息的传递.因此,网络训练阶段模型收敛速度更快,训练所得模型整体效果更优.

本文所提网络模型迁移残差思想改造基于FCNs(FCN8,FCN16,FCN32)的网络结构,将部分卷积层改造成残差单元的结构形成残差块.图2细化展示了残差优化的FCNs.

从图2可以看出,FCN32、FCN16、FCN8 都包含1个卷积块、4个残差块和1个反卷积块.在3 种网络中,残差块的结构完全相同,即每个残差块包含3个卷积层,前2个卷积层后紧跟一个激活层.为了加强网络中特征的传递,在第1个卷积层后引入shortcut 连接,将其激活后的输出与第2个卷积层的输出相加,再进行激活.

2.2 本文算法的主要结构

基于上述残差优化的FCNs,提出基于残差全卷积网络的图像拼接定位算法.该算法仍然采用CRF 进行后处理,但与文献[18]不同的是,本文将CRF 与FCN 连接在一起,使FCN和CRF 利用反向传播算法进行端到端训练,而不是孤立的后处理.

如图2所示,FCN32 网络是对最后一组卷积产生的特征图直接进行32 倍上采样,所以它对大目标敏感而对小目标和细节不敏感.FCN8 网络则先融合最后3 组卷积的特征图然后进行8 倍上采样,对小目标和细节更敏感.FCN16 则介于两者之间,融合3个网络既可以处理不同尺度的图像内容[18-19],又可以相互补充细节特征,从而提高篡改定位的精度.具体融合方法为

式中,yout为融合结果,yFCN32、yFCN16、yFCN8分别为FCN32、FCN16、FCN8 的预测结果,α1和α2是融合权重系数,本文中均取1/3.具体算法如图3所示.

图2 残差优化的FCNs(FCN8,FCN16,FCN32)网络结构图(红色为卷积层,绿色为激活层,黄色为池化层,蓝色为50% dropout 层,灰色为反卷积层)Figure2 Network structure of residual-optimized FCNs (FCN8,FCN16,FCN32) (the blocks marked with red,green,yellow,blue,and gray represent convolutional layer,active layer,pooling layer,50% dropout layer,and deconvolution layer,respectively)

图3 本文算法的主要结构图Figure3 Main structure of the proposed algorithm

3个不同FCN 分支的损失函数均采用分类问题中最常用的交叉熵损失函数.为增强模型的泛化性能,防止出现过拟合问题,在损失函数中增加L2 正则化,其根本思想是在网络模型中加入一个可以刻画模型复杂程度的指标.本文所选L2 正则化为

式中,R(w)为模型的复杂程度,w为整个网络所有的权值参数组成的向量.因此,网络模型的损失函数为

式中,p(m)为真实标签的概率分布,q(m)为本文算法预测结果的概率分布,λ是反映模型复杂度损失在整个损失函数所占比例的参数.需要注意的是,由于本文算法的原始输出结果不是概率分布形式,需先进行Softmax 回归处理得到q(m).

3 实 验

3.1 实验数据集与评价指标

本文网络基于Caffe 框架,用Python 语言编写,为训练残差全卷积拼接定位网络,在公开数据集CASIA v2.0 上随机选取5/6 的拼接篡改图片作为训练集,剩余1/6 作为测试集.另外,为测试所提网络的泛化能力,将训练好的网络结构在2个公开数据集CASIA v1.0 和DVMM 上进行交叉验证.由于这两个数据集不提供真实标签(ground truth),实验前需人工手动生成标签.具体方法是通过Matlab 软件对图像作差,从相应篡改图像中减去原始图像,生成对应的ground truth.图4分别展示了CASIA v2.0、CASIA v1.0、DVMM 这3个公开数据集中的一些实例及其对应的ground truth.

F1_score 是统计学领域中用来衡量类模型精确度的一种常用指标.现有工作大多采用其作为定位结果评价指标,像素级F1_score的计算公式为

式中,Precision为篡改像素被检测为篡改的概率,Recall为篡改像素被检测出的概率.它们的计算公式如下

式中,TP为被正确检测出的像素数,FP为被错误检测为篡改的像素数,FN为未被检测出的篡改像素数.

图4 3个公开数据集的一些实例及其对应的分类结果Figure4 Some examples on three public available datasets and their corresponding ground truth

3.2 网络参数初始化

网络在初始化时采用了微调的技巧,即将一个训练好的模型参数迁移运用到另一个相似任务的训练中.因为此时无需重新训练每一层,所以大大减少了训练时间.而且微调技巧配合相关调参技巧可提高整个模型的泛化能力.

具体来说,由于16 层VGG 模型(下称VGG-16)与本文网络的结构相似,以VGG-16训练好的模型参数作为所提残差全卷积网络模型训练的基础.具体实现时,将上述所提残差优化的FCNs(FCN8,FCN16,FCN32)的网络结构所有卷积层的掩膜都设置为3×3,三维卷积中每一个模块的卷积核深度不断加深,前5个模块的卷积核深度分别对应的是64、128、256、512、512.所有池化层的掩膜都设置为2×2,采用最大池化.微调训练好的VGG-16 模型参数可加快网络模型的训练速度,不仅节省时间还大大节省GPU 计算资源.另外,所提篡改定位网络比VGG-16 模型多出的几个卷积层参数使用He初始化[20].

3.3 实验结果与分析

本文首先在数据集CASIA v2.0 上直接测试了算法的定位性能,然后在数据集CASIA v1.0 和DVMM 上进行交叉验证测试算法的泛化性能.表1和2 分别展示了19个对比算法的实验结果.

为了更好地展示拼接定位的可视化效果,图5展示了3个数据库中部分拼接篡改图像的定位结果.在每组图例中,从左到右依次为原图以及算法12~19 的定位结果.另外,为了说明基于深度学习的算法的优势,将本文算法与现有8 种传统算法(ADQ[3]、NADQ[4]、DCT[5]、BLK[6]、CFA1[7]、CFA2[8]、NOI1[13],NOI2[14])进行对比;为了说明引入残差的效果,将3 种不引入残差思想和CRF 的算法(FCN8,FCN16,FCN32)与3 种只引入残差思想的算法(FCN8+残差、FCN16+残差、FCN32+残差)进行对比;为了说明引入CRF 以及3个网络融合的效果,将本文算法与3 种不考虑CRF 的算法(FCN8+残差,FCN16+残差、FCN32+残差)以及3 种未考虑三网融合的(FCN8+残差+CRF、FCN16+残差+CRF、FCN32+残差+CRF)进行对比;为了说明将FCN 与CRF 形成端对端系统的效果,将本文算法与文献[18]所提算法进行对比.

表1 定位性能对比(CASIA v2.0)Table1 Comparison on localization ability (CASIA v2.0)

表2 泛化性能对比Table2 Comparison on generalization ability

图5 3个数据库中部分拼接篡改图像定位结果Figure5 Localization results of some spliced images on three datasets

由表1、表2、图5可知:

1)基于深度学习的算法(编号9~19)较传统算法(编号1~8)在定位精度上有较大的优越性.这是因为传统算法提取的特征都是手动提取特征,其泛化性一般,只能处理一些特定的情形,而基于深度学习的算法则通过网络训练自动学习期望的特征.在基于深度学习的算法中,本文所提算法最优.

2)在不同的架构(FCN8、FCN16、FCN32)中,基于FCN8 的一些算法的定位算法性能更优,尤其是在边缘细节保持方面(见图5),而本文提出算法融合了上述3 种结构,使其定位结果最优.

3)引入残差结构后,基于3 种FCN 结构的算法的定位精度都有所提高.以CASIA v2.0 为例,加入残差后,FCN32 的定位精度提高了17.409%,FCN16 的定位精度提高了5.886%,FCN8 的定位精度提高了2.504%.残差的加入对FCN32 的改进最大,这与FCN32在上采样过程特征丢失较多有关.

4)引入CRF 后,基于3 种FCN 结构的算法的定位精度也有所提高.以CASIA v2.0 为例,加入CRF 后,FCN32 的定位精度提高了11.227%,FCN16 的定位精度提高了14.229%,FCN8的定位精度提高了12.075%;

5)相较于文献[18]所提算法,将FCN 与CRF 形成一个端到端的系统后定位精度提升明显.

最后,对本文算法的抗JPEG 压缩鲁棒性进行测试.用CASIA v2.0 数据集中的所有拼接篡改图像进行训练,然后对CASIA v1.0 数据集中的所有拼接篡改图像进行JPEG 压缩作为测试集,考虑了50 和70 两种不同的质量因子.表3展示了各算法的抗JPEG 鲁棒性测试结果.

从表2和3 可以看出,对于每种算法,在JPEG 压缩攻击下拼接定位的精度有所下降,且随着JPEG 压缩因子的降低,因图像质量变差,定位精度也相应下降.但本文算法比其他算法的抗JPEG 压缩鲁棒性更强.

表3 抗JPEG 压缩鲁棒性对比Table3 Comparison on robustness against JPEG compression

4 结 语

为解决随着深度加深篡改定位网络不易收敛的问题,本文引入残差全卷积网络,然后基于残差全卷积网络与CRF 提出一种基于残差全卷积网络的图像拼接定位算法.在3个公开数据集上的实验验证了本文算法的定位性能优于现有一些算法,也具有更好的泛化性能和抗JPEG 鲁棒性.实验表明,FCN8 结构在3 种不同的FCN 结构(FCN32,FCN16,FCN8)中表现最优,也验证了残差结构和CRF 后处理对精度提升的贡献.下一步将构建网络层模拟一些后处理操作和攻击,然后在网络训练阶段增加这些网络层,以解决目前基于深度学习技术存在的算法鲁棒性不够强的问题.

猜你喜欢
像素点定位精度残差
基于双向GRU与残差拟合的车辆跟驰建模
基于局部相似性的特征匹配筛选算法
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
GPS定位精度研究
GPS定位精度研究
基于5×5邻域像素点相关性的划痕修复算法
立式车床数控回转工作台定位精度研究
基于canvas的前端数据加密
高分三号SAR卫星系统级几何定位精度初探