APP下载

多数据集深度学习模型的修图处理识别*

2020-02-20陈先意

计算机与生活 2020年2期
关键词:卷积像素神经网络

杨 滨,陈先意

1.江南大学 设计学院,江苏 无锡 214122

2.江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122

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

1 引言

当下自拍风靡各种平台,成为人们日常生活中不可或缺的展示途径。近几年,图像处理软件的飞速发展,也带动移动应用领域一大批修图、美化应用的兴起,如Snapseed、Retouch、Inpaint等。照片经过这些修图软件处理后变得更美丽,数字摄影作品经过美化处理后带来了更强的视觉冲击力。如图1所示,图1(a)经过Retouch软件去除了图像上部的手,得到图1(b)。但是修图、美化软件的快速发展和普及也带来了一些社会问题和安全问题。摄影作品造假、网络诈骗等事件频繁出现,看到的图像有多少是可信的,正成为一个棘手的问题[1]。

Fig.1 Example of removing objects by using Retouch图1 Retouch去除物体的例子

由于所有的图像操作都不可避免地会扭曲图像中相邻像素之间的某些固有关系,不少学者针对这些相邻像素点间固有关系的不一致性进行深入研究[2]。

文献[3]是较早关注Inpainting图像修复领域研究的文献,他们提出了一种基于实例的修复去除物体的有效伪造检测算法。该方法使用了中心像素映射、最大零连通组件标记和片段拼接检测三种技术以提升检测的准确率。早期基于篡改特征的图像取证方法主要使用浅层网络实现,例如支持向量机(support vector machine,SVM)。文献[4]提出了一种基于图像边缘分析和模糊检测的人工模糊边界取证方法。作者基于非次采样轮廓线变换系数,将边缘划分为三种类型,然后提取每种边缘类型的六维特征并用于训练SVM。实验结果表明,该方法可以检测出拼接篡改的模糊边界[5]。但是该方法有个缺点,即它不能应用于未经历过滤波操作的图像。因此,设计一个能够检测各种篡改操作留下的特征的方法非常重要。为了实现这一点,使用了来自深度学习的工具,即卷积神经网络(convolutional neural networks,CNN)。

近年来,深度学习技术飞速发展,不少数字取证方法也开始借助深度学习工具,这其中以卷积神经网络最为常用。一般最直接的方法是把中值滤波后的图像直接输入到CNN中训练。但是这种方法准确率很低[6]。文献[7]尝试用从篡改图像中提取出中值滤波残差特征对CNN进行训练。最终通过训练过的取证CNN获得90%以上的正确率。数据的结构信息是表示先验知识的一种有效方式,可以有效提升分类器的效率[8]。

文献[9]设计了一个新的卷积层,输入图像经过该卷积层后,将输出图像每个像素的预测误差特征,通过该特征训练CNN,以实现篡改识别。该方法能有效检测出多种篡改操作。因为通过像素预测算法对滑动窗口的中央像素进行预测,并统计出该像素点的预测误差特征,所以在滤波检测中的错误率也相对较高。

文献[10]提出一种基于深度神经网络的图像修复取证算法,该算法可通过解码器网络预测出像素的类别,根据类别的不一致性判断图像是否经过修复篡改操作。同时也使用特征金字塔网络对解码器网络中的特征图进行信息补充。

文献[11]提出了一种基于多尺度CNN的篡改图像检测方法。通过对多尺度CNN检测器的分析,可以得到一组每幅图像的篡改概率图。通过对能量函数最小化,利用图切割算法实现篡改概率图的数据融合问题。

由于数字图像中常用模糊操作隐藏或抹去篡改的痕迹,针对常用的高斯模糊、均值模糊及中值模糊操作的识别问题,文献[12]通过在传统的卷积神经网络模型中添加一个信息处理层的方式,构建了一种深度卷积神经网络模型。通过提取出输入图像块的滤波频域残差特征,让网络模型具备识别一次滤波与二次滤波操作的能力。

目前,大多数卷积神经网络结构只支持单标签数据。利用现有的单标签网络实现多标签分类的最直接方法是训练多个模型,从而将多分类转化为二分类,以消除多标签产生的歧义性问题。但将多个标签完全分开,分别进行特征提取和分类识别,也同样忽略了它们之间可能存在的关联对分类提供的有效信息。文献[13]提出了一种基于改进卷积神经网络的医学图像分割方法。首先采用卷积神经网络对冠状面、矢状面以及横断面三个视图下的2D切片序列进行分割,然后将三个视图下的分割结果进行集成,得到最终的结果。

为了使得深度神经网络模型能够更准确高效地学习到不同数据集的共性特征,本文提出了一种基于多数据集学习卷积神经网络模型的修图操作识别方法。首先从原始图像和修改后图像中提取周期性特征组成多数据集训练集。在训练过程中,将不同数据集的图像特征数据输入到多数据集神经网络模型中。此外,还设计了一个多域损失函数,以增强深入学习特征的识别能力。

2 多数据集学习的神经网络模型

近年来,多数据集学习(multi-dataset learning,MDL)的神经网络模型被提出,并应用在多个领域。MDL是一种通过跨不同但相关领域共享知识来改进学习的策略[14]。多数据集学习是指在不同的上下文域中共享关于同一问题的信息。该学习必须以一种有效编码多个域通用功能的方式对超参数进行关联。当在多个不同但相关的数据域中有一个任务数据时,就形成多数据集神经网络[15]。文献[16]使用MDL技术对面部属性进行分类。文献[17]使用MDL技术从人脸图像中区分人的性别。

尽管MDL技术在人脸识别、目标识别和目标跟踪等传统的计算机视觉应用中得到了很大的成功,但是在取证领域却较少出现相关应用的研究。

如图2所示,本文提出的MDL神经网络模型主要包含两个相同的组成部分CNN。这组CNN模型分别对应两种美图软件的实验图像集。在本实验中,使用Retouch和Snapseed两款软件产生的图像作为实验图像集。两个CNN模型之间共享参数,每个CNN包括4个卷积+池化层组。在最后的卷积+池化层组之后的是两个全连接层,用于为每个输入样本生成表示。最后,利用一个针对多数据集网络模型的损失函数来得到目标表达式的分布,并计算分类误差,以便对参数进行微调。

Fig.2 Proposed MDL neural network model图2 本文提出的MDL神经网络模型

其网络模型参数设置如表1所示。用m×m@N表示卷积+池化层组的卷积参数,其中m表示卷积核的大小,N表示卷积核数量。最大池层(max-pooling)用于在卷积层之后减小特征映射的大小。使用串联校正线性单元(concatenated rectified linear units,CReLU)技术以实现在不损失精度的情况下减少一半的计算量。

网络模型之间使用了参数共享机制。参数的共享机制是神经网络的多任务学习中最常见的一种方式。该机制应用到所有任务的所有隐含层上,保留了任务相关的输出层。共享机制也降低了过拟合的风险。

Table 1 Parameters setting of network model表1 网络模型参数设置

使用不同数据库的多域方法的主要困难之一是,并非所有样本都标记为所有任务[18]。为解决这一问题,研究人员在不同领域中设计了各种类型的损失函数。在CNN中,通常使用SoftmaxLoss函数来强制不同类别的特征保持分离。网络所学习的特征对应于不同的特征空间聚类。但由于类内变化较大,不同聚类中的特征可能会变得分散。同时由于各个阶间的高度相似性,集群也经常会出现重叠现象。

为了解决该问题,文献[17]提出了使用Center Loss算法来减少聚类内的特征变化幅度。它在估计每个类特征的中心的同时,调整属于不同类中心的特征之间的距离。中央损失函数可以将特征聚集到相应的类中心。然而,由于该算法没有考虑类间相似性,在多数据集学习中效果还有进一步提高的空间。

在中央损失函数算法的启发下,提出了一种新的MDL函数来增强神经网络特征学习的识别能力。MDL不仅能够压缩每个集群,而且能够隔离集群。

假设LC为中央损失函数,其定义为:

其中,yi和xi分别表示第i个对象和它从全连接层得到的特征向量。是所有标记为yi的特征向量的中心,k是该聚类中的特征数量。在反向传播(back propagation,BP)的过程中,计算相对于LC输入样本的xi的偏导数的中心:

在迭代优化中更新聚类的中心:

其中,δ(yi,j)定义为:

为了充分利用多数据集处理的特征信息,计算其中某一个样本与其他所有聚类中心之间的距离,设为LMT。

其中,λ是预定义的边界参数,为了减少计算量,使用随机梯度下降(stochastic gradient descent,SGD)算法[18]通过在线学习来更新参数。这样上式变为:

选择合适的参数P以跳过一些与当前中心相对较远的类中心。在本文中,P设置为1.5倍聚类中心距离。最后,根据不同数据集的LMT值得到损失函数LML

3 图像特征提取和神经网络训练

在对数傅里叶域中,模糊前后的图像具有等距性。基于此特性,文献[19]提出了一种基于黎曼测地线(Riemannian geodesic)[20]的高斯模糊核恢复方法,该方法对原始图像和模糊图像之间的模糊不变量进行评估,并从模糊图像中恢复模糊核。该方法有效应用于Retouch软件模糊的图像中。受到该算法的启发,基于黎曼测地线提取图像块中的高斯模糊核参数作为深度学习的图像特征。设Kε为卷积核函数,满足归一化性质。设为f的傅里叶变换,Kε的傅里叶变换为:

由于卷积在频域表现为乘性操作,取对数运算可把卷积转换为求和。设在对数傅里叶空间的卷积为:

上式表明对数傅里叶空间函数卷积后偏移了πεδ2的距离。在二维空间里,函数f和Kε在空域、频域和对数傅里叶域的卷积操作与一维域类似。文献[20]对黎曼对称空间上的高斯分布概率进行了深入研究,指出指数黎曼度量和多项式黎曼度量对R →C(C为复数域)函数系在R+(正实数集)上卷积操作具有等距性,因此指数黎曼度量和多项式黎曼度量可量测卷积前、后的信号变化。设偏移πεδ2的轨迹方向单位向量为:

得到:

上式是以高斯型卷积核Kε为基础的推演结果。通过以下步骤计算模糊核的预测值。

步骤1把图像I、润饰图像Im变换至对数傅里叶空间,分别得到。

步骤2分别计算模糊量。

步骤3计算模糊核的预测值ε。

步骤4当预测值ε大于给定阈值v的时候,则判定该图像进行了模糊修饰操作。

4 实验和结果分析

使用在一台配有Nvidia GeForce GTX 1080Ti 11 GB RAM显卡的服务器上进行神经网络模型架构并执行训练任务。从多个公共实验库中选取了5 000张实验图像,其中的公共数据库包括:BOSSbase1.01[21]、UCID图像数据库[22]、CASIA v2.0图像库[23]。图像分辨率为512×512至2 048×1 356之间。随机对其中70%的图像进行Retouch和Snapseed操作,得到两个训练图像集,剩下的30%图像作为测试集。本文所提的检测方法以图像块为检测对象,这样有利于定位出图像的具体修改位置,因此图像块大小的选择十分重要,过大的图像块会造成少量像素修改难以被检测;而过小的图像块的修改特征又难以被神经网络所学习。根据多次实验结果,本文确定分割图像块的大小为64×64像素。因此所有图像被裁剪为64×64大小的图像块。

采用真阳性率(true positive rate,TPR)和假阳性率(false positive rate,FPR)对检测结果进行检测。TPR是正确识别的被篡改图像的分数,而FPR是将原始图像识别为被篡改图像的分数。

图3和图4分别给出了使用本文提出方法对Snapseed数据集和Retouch数据集中例子的识别结果。图3第一行实验图像使用了修复功能,第二行实验图像使用了局部增亮功能;图4的两行实验图像则分别使用了Retouch软件的去除及拉伸功能。实验结果表明,本文提出的方法能够准确判别出当前主流软件的大部分修图处理操作。

Fig.3 Detection examples on images processed by Snapseed图3 对Snapseed处理过的图片的识别例子

表2给出了本文提出的修图检测方法的实验结果。从测试结果可以看出本文方法具有较高的TPR和较低的FPR值,可以应用于实际取证、识别场景中。

Fig.4 Detection examples on images processed by Retouch图4 对Retouch处理过的图片的识别例子

Table 2 Experimental results on different datasets表2 不同数据集上的实验结果

由于针对图像修饰软件的识别方面的研究比较少,选取了当前比较有代表性的图像修改检测方法(文献[3]、文献[9]、文献[10]和文献[24])在不同数据集上进行对比实验。其中,只有文献[3]并未使用深度神经网络技术。这4个方法的特征如下,对比实验的结果如表3所示。

Table 3 Comparison results of each method on two datasets表3 每种方法在两个数据集上的实验结果对比

文献[3]使用了中心像素映射、最大零连通组件标记和片段拼接检测3种技术以提升检测的准确率。

文献[9]通过给传统CNN添加一个处理层来检测图像像素点不连贯性。

文献[10]提出使用特征金字塔网络对解码器网络中的特征图进行信息补充。

文献[24]利用重采样特征和A-对位分析算法,计算篡改值得分并输出检测结果。

总体来看,各种方法在Snapseed数据集上的检测成绩比在Retouch数据集上的低。这是由于Snapseed比Retouch的高斯模糊参数值相对较低,同时Retouch常常使用更多的边缘虚化操作。但是总体而言,两个数据集的实验结果相差不大。

文献[9]设计了一个新的卷积层,输入图像经过该卷积层后,将输出图像每个像素的预测误差特征通过该特征训练神经网络,以实现篡改识别。该方法的特征提取处理相对简单,它的TPR值并不令人十分满意,而且其FPR值也相对较高。这是因为通过像素预测算法对滑动窗口的中央像素进行预测,并统计出该像素点的预测误差特征。而在自然图像中,存在不少符合该预测误差条件的真实图像,这将导致神经网络模型出现误判,提高了其FPR值。得益于卷积内核网络的使用,文献[24]获得了较高的TPR和较低的FPR值。然而,该方法需要根据实际情况调整参数和热图输出百分比来提升准确率,因此不太适合于实际应用中。文献[3]中的检测方法由于针对inpainting修改类型,因此其检测结果也比较令人满意。综合实验结果显示,本文提出的基于多数据集深度学习模型的修图操作识别方法优于现有主流的方法,并获得了最高的识别成绩。

5 结束语

本文针对手机APP中的修图处理软件,提出一种基于多数据集特征学习的神经网络模型,并给出其网络拓扑结构设计。区别于传统的多个神经网络并行操作,提出的模型能在共享网络模型参数的同时对多个特征数据集进行深度学习,使检测算法具备多特征识别能力。为了增强深度特征学习的能力,对多个子神经网络输出特征进行融合,本文还设计了一种针对多模块神经网络模型的损失函数。实验结果验证了本文提出的方法的有效性。

猜你喜欢

卷积像素神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
像素前线之“幻影”2000
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
“像素”仙人掌
三次样条和二次删除相辅助的WASD神经网络与日本人口预测