APP下载

改进的DeepLabv3+同图复制篡改检测算法

2024-04-10谭湘琼张宏怡吴航星薛永新

厦门理工学院学报 2024年1期
关键词:残差注意力损失

谭湘琼,张宏怡,吴航星,薛永新

(厦门理工学院光电与通信工程学院,福建 厦门 361024)

随着数字媒体技术的进步,图像编辑软件越来越多样化,如 Photoshop、美图秀秀等。通过使用这些图像编辑软件,人们能够轻易地篡改数字图像内容,但恶意篡改后的图片会严重损坏原始信息的真实性,影响公众对客观事物的正确认知,甚至给社会和国家造成恶劣影响。在图像取证中,同图复制是最常见的一种篡改方式,该篡改方式是指将图像的部分内容复制粘贴到同一图像中[1],在此类型的篡改图像中,存在篡改区域和真实区域的光照强度和对比度高度相似的情况,导致现有的同图复制篡改检测方法难以提取篡改边缘细节特征。因此,如何有效地提取篡改边缘特征,进一步提高检测算法的准确性,是当前图像篡改检测领域的重要挑战。

基于传统特征提取的复制粘贴篡改检测算法大致可以分为基于重叠块的检测算法和基于关键点的检测算法。基于重叠块的算法将图像分割成重叠的块,通过计算一个块与所有其他块的相似度来定位被篡改的区域,例如PCA[2]。基于重叠块的算法虽然有一定检测效果,但计算复杂度高,对几何变换无效。基于关键点的检测算法通过提取关键点特征进行相似度匹配来定位篡改区域,如ORB[3],这类算法对几何变换具有较好的鲁棒性,但检测平滑的篡改区域会失效。近年来,随着卷积神经网络(convolutional neural network,CNN)在计算机视觉领域的广泛应用,研究人员开始探索深度学习在图像盲取证中的应用。Zhang 等[4]首次提出将堆叠自编码器用于拼接伪造检测,该方法学习每个图像块的上下文特征,但检测像素精度较差。Bi 等[5]提出一种环形残差U-Net 网络用于图像拼接伪造检测,通过CNN 中的残差传播和反馈过程来增强CNN 的学习模式,但该方法的泛化性和鲁棒性还有待进一步提高。Rao等[6]提出多语义注意力模型,并将其集成到卷积神经网络中,用于实现图像的伪造检测和定位,但该方法对小物体的篡改检测性能有待提高。Xiao等[7]采用级联卷积神经网络和自适应聚类算法相结合的检测框架,实现从粗到细的篡改定位,然而聚类的结果只能粗略地定位篡改区域的位置,并且只适用于单个篡改对象。Bappy 等[8]提出基于CNN-LSTM 的模型,学习共享边界中被篡改区域和未被篡改区域的差异特征,从而定位被篡改区域,但该方法采用图像块进行检测,不能有效结合上下文的特征信息进行训练。Zhang 等[9]提出一个隐写分析丰富模型用于获取图像的噪声残差,利用DenseNet 进行二分类,通过上采样后定位最终的篡改区域,然而在篡改区域和非篡改区域具有相同来源的场景中,该方法的检测精度会降低。Barni等[10]提出一个多分支卷积神经网络来识别复制粘贴篡改中的源目标和篡改目标,从而对篡改区域进行定位的方法,但此方法存在较严重的篡改边界像素漏检和误检问题。综上,目前篡改检测算法很少从全局的角度考虑图像的篡改检测和定位问题,无法充分融合上下文的特征信息,存在篡改区域定位精度低,容易出现篡改目标边界像素过度分割和错误分割问题。为此,本文提出一种改进的DeepLabv3+同图复制篡改检测算法,通过在DeepLabv3+网络中引入双重注意力机制,强化模型对上下文特征信息的提取能力,提高模型对多个不同大小的篡改区域的检测精度;在DeepLabv3+的解码器中添加残差细化模块,以解决篡改边缘分割不准确的问题,并通过实验验证改进的DeepLabv3+同图复制篡改检测算法的性能。

1 算法改进

改进的DeepLabv3+同图复制篡改检测算法框架如图1 所示,改进DeepLabv3+主要由编码器、解码器、残差细化模块3 部分组成。在编码器中,改进的DeepLabv3+使用MobileNetV2 的预训练模型作为主干特征提取网络,使优化后的网络更快地达到最优训练效果,避免陷入局部最优解。在MobileNetV2与ASPP模块之间引入双重注意力模块,从空间和通道维度上增强模型的全局感受野。首先,将双重注意力模块提取到的图像特征送入 ASPP 模块中,通过一个1 × 1 卷积层,3 个3 × 3 的空洞卷积及全局平均池化层得到不同大小感受野的特征图,并进一步融合得到多尺度特征。然后,将ASPP提取的多尺度特征和主干网络MobileNetV2提取的浅层特征输入到解码器中获得粗掩膜图像。最后,通过残差细化模块对粗掩膜进行优化,得到定位边界更为精细的预测图像。

图1 改进的DeepLabv3+同图复制篡改检测算法框架Fig 1 Framework of enhanced DeepLabv3+ copy-move tampering detection algorithm

此外,在二分类交叉熵损失函数的基础上加入结构相似度损失函数和交并比损失函数,目的是增强模型对篡改边界的敏感性,避免出现边界像素漏检和误检的情况。

1.1 双重注意力机制模块

针对CNN 只提取局部特征的问题,在主干特征提取网络MobileNetV2 与ASPP 之间引入双重注意力模块用于提取全局特征,双重注意力机制模块如图2所示。双重注意力模块由空间注意力模块和通道注意力模块并联组成,可以从空间和通道维度上捕捉全局像素点的相关性,并找出篡改区域与真实区域之间的差异特征。

图2 双重注意力机制模块示意图Fig 2 Dual attention mechanism module

空间注意力模块中,首先对特征图A(C×H×W)进行3次卷积运算得到特征图B、C、D,将3个特征图的维度从C×H×W转换形状为C×N,其中N=H×W。然后,将特征图B(C×N)转置为B(N×C),并与特征图C(C×N)相乘,再经过Softmax 函数计算出空间注意力矩阵图S(N×N)。最后将空间注意力矩阵图S(N×N)转置后与特征图D(C×N)相乘,将相乘的结果乘以一个尺度系数α,并转换形状为C×H×W与特征图A 求和计算输出特征图E。空间注意力矩阵sji和输出特征图E 的计算过程为

式(1)和式(2)中:i和j分别表示行和列;α初始化设置为0,随着不断迭代逐渐学习到更大的权重。

通道注意力模块中,假设将特征图A(C×H×W)转换形状后得到特征图A′(C×N),将特征图A′(C×N)再转置后得到特征图A′′(N×C)。通道注意力模块首先将A′(C×N)与A′′(N×C)相乘,再经过softmax函数计算得到通道注意力矩阵X(C×C)。然后将X转置与A′(C×N)进行矩阵相乘,再乘以尺度系数β。最后将相乘的结果转换形状为C×H×W与A 相加得到输出特征图E。通道注意力模块的计算过程为

式(3)和式(4)中:i和j分别表示行和列;β初始化设置为0,随着不断迭代逐渐学习到更大的权重。

1.2 残差细化模块

考虑到现有的基于深度学习[11]的伪造检测方法只针对检测篡改区域,没有对检测模型生成的掩码进行细化,这在一定程度上会影响检测精度。改进的DeepLabv3+算法将检测模型生成的掩膜视为粗糙掩膜。粗糙掩码作为残差细化模块的输入,与U-Net[12]类似,生成细化掩码。残差细化模块主要由输入层、下采样层、桥接层、上采样层和输出层组成,具体如图3 所示。输入部分包括64 个大小为3 × 3 的卷积核,其次是批归一化和ReLU函数。桥接部分组成结构类似于输入部分,同样是包含64 个卷积核大小为3 × 3 的卷积层,批量归一化和ReLU 函数。下采样采用平均池化层,上采样采用双线性插值。同时,在搭建残差细化网络框架中还加入跳跃连接,将输入级的特征映射添加到上采样后的特征映射中。最后,经过sigmoid激活函数的卷积层,得到最终的细化掩膜。

图3 残差细化模块示意图Fig 3 Residual refinement module

1.3 混合损失函数

为保存更多的图像结构信息并突出显示篡改区域的边界,改进DeepLabv3+算法将混合损失函数定义为

式(5)中:lbce、lssim和liou分别表交叉熵(BCE)损失[13]、结构相似度(SSIM)损失[14]和交并比(IOU)损失函数[15]。BCE损失是在二分类任务中最常见的损失函数,其计算公式为

式(6)中:G(i,j) ∈{0,1}为像素(i,j)的标签;T(i,j)为像素(i,j)是否被篡改的概率值。但lbce只计算每个单独的像素,没有考虑每个像素与相邻像素之间的关系。

SSIM 损失函数可以在关注每个像素的局部领域的同时,捕获更深层次的结构信息,通常用于度量两幅图像间的结构相似性。通过SSIM 损失,残差细化网络可以更加关注被篡改区域的边界,并在训练过程中赋予边界更多的权重。SSIM损失可以表示为

式(7)中:uG和uT分别为G和T的均值;σG和σT分别为G和T的标准差;σGT为协方差矩阵。此外,ε1= 0.000 1和ε2= 0.000 9保持不变,以避免分母为零。

IOU损失函数通常是作为目标检测和语义分割任务的评价指标,近年来常被用于网络训练的损失函数,其主要的计算公式为

在训练网络时,根据式(5)将这3 种损失函数组合在一起,其中BCE 损失函数使所有像素都具有平滑的梯度,SSIM损失函数可以保留图像的结构信息,IOU损失函数使网络更加关注篡改区域。

2 实验验证与结果分析

2.1 数据集和评价指标

选用2个同图复制篡改类型的数据集[16-17]作为实验数据集,即COPYMOVE_NIST 和COPYMOVE_COCO数据集,2 个公开数据集都提供篡改图片和标签二值图像。在模型训练中,首先将所有图像调整为480×480 像素的标准尺寸作为网络的输入,使用均值为0、方差为0.01 的高斯分布初始化网络权重,模型采用Adam 优化器进行训练,初始学习率为0.001,使用混合损失函数记录模型的损失,所有实验均在NVIDIA GeForce RTX 3090上进行。

为更好地在像素级层面上对改进DeepLabv3+算法进行客观地评估,使用精度(precision,P)、召回率(recall,R)和F1作为评价指标。3个评价指标的计算公式为

式(9)和式(10)中:Tp表示将篡改像素预测为篡改像素的数目;Fp表示将背景像素预测为篡改像素的数目;FN表示将篡改像素预测为背景像素的数目。

2.2 消融实验分析

本节通过消融实验来进一步验证双重注意力机制、残差边缘细化模块以及混合损失函数的有效性。消融实验包括2 个部分:网络结构消融实验和损失消融实验。消融实验在COPYMOVE_COCO 数据集上进行。

为验证双重注意力模块和残差细化模块的有效性,将网络结构进行消融实验,该实验均采用交叉熵损失函数用于模型训练。3个评价指标的计算结果如表1所示。

表1 网络结构消融实验结果对比Table 1 Experimental results of network structure ablation compared

网络结构消融实验结果示例如图4 所示。Base-Atten 和Base-RRM 相比于Base,精度分别提高1%和1.7%。表1 中,“√”表示采用的网络添加相对应的模块。结合表1 和图4 中示例可以看出,Base-Atten 和Base-RRM 的预测结果与Base 相比,漏检的像素数量显著减少,对于篡改区域边界分割也更为精准,进一步验证双重注意力机制和残差边缘细化模块有效。同时,Base-Atten-RRM 与Based 的3个评价指标均达到最优,精确率提升2.3%。实验结果表明,引入双重注意力机制和残差细化模块的DeepLabv3+算法可有效地缓解网络篡改区域边界像素预测不准确的问题,提高网络的整体性能。

图4 网络结构消融实验结果示例Fig 4. Example of network structure ablation experimental results

为验证混合损失函数能使模型达到更好的训练效果,对Base-Atten-RRM 网络使用不同的损失函数进行对比实验。3 个评价指标结果如表2 所示,损失函数消融实验结果对比如图5 所示。实验结果表明,虽然lbsi的F1值略低于lb的F1值上,但精度和召回率分别提升0.4%和0.8%。结合图5中的结果对比可以得出,使用混合损失函数得出预测结果达到更优越的篡改区域定位性能,在边缘区域处理得更为细致,进一步验证混合损失函数对于篡改边界定位的有效性。

表2 损失函数消融实验结果对比Table 2 Experimental results of loss function ablation compared

图5 损失函数消融实验结果示例Fig 5 Example of loss function ablation experimental results

2.3 对比实验分析

将改进的DeepLabv3+跟FCN[18]、U-Net[12]和DeepLabv3+[19]进行比较。COPYMOVE_NIST 和COPYMOVE_COCO2个数据集的实验结果如表3所示。由表3可以看出,在COPYMOVE_COCO 数据集上,DeepLabv3+得出的精确率略低于U-Net,而改进DeepLabv3+得出的各项指标在2 个数据集上都优于另外3 种算法。各算法在2 个数据集中的部分检测结果如图6 所示,其中图6(a)~(c)来自COPYMOVE_COCO 数据集,图6(d)~(e)来自COPYMOVE_NIST数据集。

表3 不同算法的评价指标结果对比Table 3 Evaluation index results of different algorithms compared

图6 不同算法的检测结果对比Fig 6 Detection results of different algorithms compared

由图6 可以看出,无论篡改图像是复杂背景(图(a))还是单一背景(图(b)),复制黏贴篡改区域是图像目标的整体(图(a))还是部分(图(d)),改进的DeepLabv3+算法相比于其他算法都可以很好地解决漏检和误检的问题,篡改区域的边界定位更加明确清晰。然而,改进DeepLabv3+算法对于检测处于光线较暗(图(d))或黑色背景中的篡改对象(图(e))也会出现定位效果不佳和边缘不够细致的问题。所以,后续工作可以在模型中引入篡改图像的反射分量和光照分量,对背景偏暗的篡改图像适当增强亮度,以进一步提升模型的定位能力。

3 结论

为解决现有的同图复制篡改检测算法对篡改区域边界难以提取边缘特征、定位精度较低的问题,提出一种基于改进的DeepLabv3+同图复制篡改检测算法。通过在主干特征提取网络和ASPP模块之间引入双重注意力模块,增强网络的上下文特征信息提取能力,提高模型对多尺度篡改区域的适应性,并使用残差细化模块提升模型对预测图像篡改边界和区域的敏感度。网络结构消融实验表明,双重注意力模块和残差细化模块对于DeepLabv3+模型改进的有效性,引入双重注意力模块的DeepLabv3+相比于原始DeepLabv3+,精度提升1%,引入残差细化模块的DeepLabv3+相比于原始DeepLabv3+,精度提升1.7%。损失函数消融实验表明,结构相似度损失函数和交并比损失函数能有效提升模型在训练过程中对于篡改边界区域的关注度,混合损失函数相比于原交叉熵损失函数,精度提升2.4%,召回率提升1.4%。不同算法的对比实验表明,本文提出的改进DeepLabv3+相比于FCN、U-Net 和DeepLabv3+,精度、召回率和F1均有所提升,在COPYMOVE_NIST 和COPYMOVE_COCO 数据集上的检测精度分别达到0.929和0.895,能够准确定位出篡改区域。

猜你喜欢

残差注意力损失
基于双向GRU与残差拟合的车辆跟驰建模
让注意力“飞”回来
胖胖损失了多少元
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
玉米抽穗前倒伏怎么办?怎么减少损失?
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一般自由碰撞的最大动能损失
损失