黎玲利,孟令兵,李金宝
(1.黑龙江大学计算机科学技术学院,黑龙江哈尔滨150080;2.齐鲁工业大学(山东省科学院)山东省人工智能研究院,山东济南250014)
显著性目标检测旨在从输入图像中识别出最引人注目的对象,是很多计算机视觉任务的预处理步骤。传统的显著性目标检测方法主要依赖于手工提取的特征(如颜色、纹理、图像梯度等)来计算目标的显著度,虽然能对图像进行显著性检测,但是需要进行处理大量的显著性先验信息,限制了模型在复杂环境下检测的能力,并且传统的检测方法效率较低、检测时间较长。
早期的深度学习方法采用多层感知机进行显著性检测。例如,Zhao等[1]通过设计具有全局和局部上下文信息的模型检测目标的显著性。Lee等[2]利用低级特征辅助高级特征实现更精准的显著性检测。上述方法主要依赖于图像局部区域信息和全连接网络进行显著性目标检测,这些方法无法捕获显著性目标的空间结构信息,并且检测非常的耗时。
现有的研究工作[3-7]采用“编码-解码”结构的卷积神经网络进行显著性检测,大大提升了检测效果。例如,Pang等[3]提出聚合交互模块通过相互学习的方式,有效地利用相邻层的特征使网络自适应地提取多尺度信息。Xu等[4]提出交叉特征模块融合不同层次的特征,并且提出一种级联反馈解码器修正和细化显著图。Qin等[5]提出一个两级嵌套的RSU模块的U型方法。Liu等[6]通过整合全局上下文和多尺度的局部上下文以提升显著性检测性能。Zeng等[7]通过全局语义信息和局部高分辨率细节信息处理高分辨率图像。这些方法虽然能够提高显著性目标检测的效果,但是,需要设计复杂的特征提取网络,会导致计算成本的增加。
近几年显著性目标检测的工作都着重于设计更复杂的特征融合方法,以提高模型检测效果。Zhang等[8]利用多尺度上下文感知特征提取模块获取丰富上下文信息,同时利用门控机制传递信息特征。Feng等[9]在编码和解码之间构建注意反馈模块捕捉目标整体的结构。Wu等[10]提出一种双分支结构多尺度注意力模块的检测方法。Zhou等[11]提出了一个交互式的双流解码器来同时实现显著性检测、轮廓检测及两者的相关性建模。Wu等[12]提出了一种利用显著目标检测和前景轮廓检测交织监督策略的多任务算法。Zhang等[13]提出一种渐进式注意力指导循坏网络的检测方法。Xu等[14]提出一种级联的条件随机场模型。Li等[15]提出了一个边缘信息引导的层次特征融合网络检测方法。Chen等[16]提出了一个自顶向下的反向注意力模块嵌入编码解码中学习残余信息。这些方法在编码器和解码器之间引入复杂的模块,易将多余的信息传递到解码阶段,干扰模型的预测。
针对上述问题,本文提出一个多尺度特征提取(multi-scale feature extraction,MSFE)和多级别特征融合(multi-level feature fusion,MLFF)的显著性检测方法,记为MSML方法。首先,在网络深层嵌入多尺度特征提取模块,缓解显著性目标区域与背景不连续、边界易模糊等问题。其次,多级别特征模块融合多种不同层次的特征信息,不仅可以抑制浅层传递的噪声,同时在解码阶段可以更有效地恢复显著性目标的空间结构细节信息,提高模型的检测效果。
本文提出的多尺度特征提取和多级别特征融合的显著性检测方法的网络框架,如图1所示,该网络采用编码解码结构方式的U型结构。在编码特征提取阶段,采用Resnet50作为主干网络,输入图像经过4个残差块进入多尺度特征提取模块;在解码阶段,采用多级别特征融合模块逐步生成高分辨率的显著图,并且引入中继监督的方式,可以有效地防止梯度消失。
图1 本文的多尺度特征提取和多级别特征融合的网络框架图Fig.1 Network fr amework of MSML by the proposed method
卷积神经网络的深度与感受野不成比例,由于采用固定尺寸的卷积核提取目标特征,只能提取局部的特性信息,感受野大小受到了限制,无法捕获丰富的上下文信息,不利于检测交错复杂的自然图像。为了在目标区域和背景之间生成更准确、更清晰的边界,本文采用不同扩张率的空洞卷积获取不同尺度的信息,再融合不同尺度的信息获取丰富的上下文信息,最后对特征图通道间的关系进行建模,自适应学习每个通道的重要性,得到校准后的特征图作为解码阶段的输入。
多尺度特征提取模块如图2所示。首先,输入为经过4次残差块提取后的特征图Mm;然后,采用不同扩张因子对其进卷积操作,其中,卷积核设定的大小为3×3,扩张因子r设置为1、3、5、7;同时,采用自适应平均池化操作,获取到相同分辨率、相同通道数不同尺度的上下文特征信息,将各个尺度的特征信息进行级联,得到最终融合的特征图Mc。
图2 多尺度特征提取模块Fig.2 Multi-scalefeature extraction module
级联后的特征图具有不同尺度的上下文信息,对级联后的特征图通道关系建模,衡量特征图通道的重要性进而校准通道信息,更加有利于定位显著性目标的区域。校准特征图通道模块如图3所示。首先,对输入的特征图Mc进行2次卷积操作分别得到Mc1、Mc2;其次,将Mc1与Mc2做相乘和相加运算;最后,得到校准后的特征图Moc作为解码阶段的输入。
图3 注意力模块Fig.3 Attention module
不同层次特征包含不同信息的分布,浅层的特征包含丰富的空间结构信息,但是其分辨率较高,所以全局上下文信息较为薄弱。深层的特征包含丰富的语义信息,可以有效地对显著性目标进行精准定位,但是,其分辨率较低,缺少显著性目标的空间细节信息。除此以外,全局上下文特征信息能够从全局的角度推断显著性目标与背景之间的关系,能够突出目标的区域,淡化背景信息的干扰,所以将这些不同级别的特征信息融合可以有效地提高显著性检测的精准度。由于深层的语义特征信息在自顶向下的传递过程中逐步被淡化,使得显著性目标在层层卷积上采样后丢失了高级别语义信息的指导,导致模型检测性能下降。因此,本文在每层卷积进行上采样时将融合的浅层特征信息和深层特征信息都加入全局上下文特征信息,可以弥补深层的语义信息的淡化,有效抑制背景信息的干扰,并在每层卷积都能实现对显著性目标的精准定位。
多级别特征融合模块如图4所示。首先,由上述多尺度模块提取的特征图经过全局平均池化(GAP)得到全局上下文特征信息;然后,校准全局上下文特征图通道信息,生成具有全局信息的掩码;浅层特征经过卷积运算与具有全局信息的掩码相乘,再经过卷积运算得到特征图的输出。全局上下文特征信息与浅层特征信息的融合,弥补了高级语义信息的淡化,同时,可以抑制浅层的背景噪声,更精准地实现显著性目标的定位。与上述融合方法类似,浅层特征信息经过卷积运算生成对应的掩码,并与深层特征信息生成的掩码相乘;同时,深层特征信息经过卷积运算生成对应的掩码,再与浅层特征信息生成的掩码相乘;由此实现浅层特征信息和深层特征信息的互补,可以有效地利用二者之间的有用信息生成精准的掩码;并通过融合操作将这些特征信息进行级联;最后,应用3×3的卷积运算得到特征图M1。此外,同时级联浅层特征信息、深层特征信息和全局上下文特征信息;之后,采用3×3的卷积运算,进一步校准特征图通道信息;再经过3×3的卷积运算输出特征图M2。将输出的2种不同级联方法的特征图M1、M2相加,再次校准融合后特征图通道信息,得到最终输出的特征图,将其作为输入进入下一阶段的解码过程。由此经过层层的上采样逐步生成高分辨率的显著图。整个过程计算公式如(4)~(9)所示:
图4 多级别特征融合模块Fig.4 Multi-level feature fusion module
为了验证本文方法的有效性,在5个公开的数据集上进行了评估,分别是DUTS[17]、ECSSD[18]、DUTOMRON[19]、HKU-IS[20]和PASCAL-S[21]。其中:DUTS数据集包括10 553张训练图像和5 019张测试图像,是目前为止最大的显著性目标检测数据集。HKU-IS数据集包含4 447张图像,这些图像大多数存在不连续的显著性目标,前景与背景较相似,并且整张图像的对比度较低。DUT-OMRON数据集包含5 168张自然图像,每张图像几乎都有复杂的背景信息,是最具有挑战性的数据集。ECSSD数据集包含1 000张具有复杂空间结构的图像。PASCAL-S数据集包含850张图像。每个数据集都是由原图和与之对应的真值图组成。本文采用DUTS的10 553张图片作为训练集,使用目前普遍采用的训练策略[22-25],水平翻转训练图像用于扩充数据集,防止模型过拟合。采用Adam优化器,初始学习率设置为0.000 1,设置每2轮迭代更改学习率,其中,衰减率设置为0.9。设置数据批次大小为18,实验的显卡是RTX 2080 Ti,采用深度学习框架pytorch和python语言在Linux系统完成本文实验。
本文采用F-measure、平均绝对误差和S-measure作为评价指标。F-measure是衡量模型的整体指标,由精确率和召回率共同计算得出:
式中,NTP为检测出正确的像素,NFP为检测出不正确的像素,NFN为未检测出正确的像素。
平均绝对误差(MAE)是检测的显著图与人工标注的真值图平均绝对误差,计算公式如(13)所示:
式中,P和G为检测的显著性图和人工标注的真值图,W和H为图像的宽和高,x和y为像素点的横纵坐标。平均绝对误差越小,代表检测的显著图与真值图越接近,方法越好。
S-measure是目标感知和区域感知的结构相似性,计算公式如(14)所示:
将本文方法与13种典型的显著性检测方法进行了比较,包括ABMP[6]、AFNet[11]、BASNet[26]、CPDR[10]、F3Net[4]、ITSD[9]、MINet[3]、MLMSNet[12]、PAGR[13]、PICA-R[8]、SMJD[14]、U2Net[5]、HRSODT[7]。各种显著性检测方法在5个测试集的结果如表1所示。由表1可知:在ECSSD数据集上,本文方法在3个评价指标上都得到最优的效果;在HKU-IS数据集上,本文方法的Fmax、Sm比F3Net和MINet分别提高了0.004、0.006;在PASCAL-S数据集上,本文方法的Fmax、Sm比F3Net分别提高了0.001、0.004。在4个数据集(除DUTOMRON)中,本文方法的Fmax和Sm明显高于其他对比方法,但是,在DUT-OMRON数据集上本文方法的Fmax、Sm低于其他对比方法。这是由于该数据集具有极其复杂的背景,其他方法需要设计强大的特征提取网络和多损失联合优化的策略用于检测,虽然检测效果优于本文方法,但计算成本较高。因此,综合所有数据集和评价指标,本文方法要明显优于其他对比方法。此外,本文还给出5个数据集的PR曲线、Fmeasure曲线和检测的显著图,从客观评价指标和主观感受共同衡量不同模型检测的效果。
图5为本文方法与其他检测方法的PR曲线。其中,PR曲线包围的面积越大,说明该方法的效果越好。
表1 不同模型的测试结果Tab.1 Test resultsof different models
图5 5个数据集的PR曲线Fig.5 Precision-Recall curves on five common saliency datasets
从图5中可以看出:在PASCAL-S、ECSSD、HKUIS和DUTS-TE数据集上,本文方法的PR曲线都在其他方法的上方,包围的面积大于其他方法,说明本文方法的检测性能优于其他方法。在DUT-OMRON数据集上,本文方法也优于大部分对比方法的检测效果。
本文给出了F-measure曲线,如图6所示。其中,Fmeasure是精确率和召回率的调和平均数,反映出显著性检测的综合指标。由图6可知,在PASCAL-S、ECSSD、HKU-IS和DUTS-TE数据集中本文方法得出了更均衡的结果,具有更好的泛化能力。
图7为本文方法与其他方法的检测显著图对比,其中,GT为真实标签。
图6 5个数据集的F-measure曲线Fig.6 F-measure curves on five common saliency datasets
图7 不同模型的可视化结果Fig.7 Comparison of visual resultsof different methods
由图7可知:从第5行(人物)和第6行(酒杯)结果可以看出,其他方法虽然能够较准确地检测出显著性目标区域,目标区域内部也比较均匀,但是目标区域与背景边界较为模糊,而本文方法能够准确分割出目标区域与背景边界。对于第2行(透明玻璃)、第3行(小花)、第4行(远景建筑)的图像,本文方法也能够完整准确地检测出目标区域,并且检测结果较光滑和均匀,而其他方法大多数方法得检测效果较差,甚至无法检测出显著性区域。实验结果表明,本文提出的多尺度特征提取模块有效地缓解了显著性目标与背景不连续、边界易模糊等问题,同时,本文设计的多级别特征融合模块,在抑制背景噪声的同时,能够使检测的显著性目标更完整、更均匀。综合来看,本文方法的视觉效果更好,检测结果的显著图纹理清晰、边界轮廓明显。
为了验证模块的有效性,在PASCAL-S和ECSSD数据集上进行模块的消融实验,结果如表2所示。其中:BL即Baseline,是原始的U-net网络架构;MSFE表示本文的多尺度特征提取模块;MLFF表示本文的多级别特征融合模块;no AM表示没有加入注意力模块。
从表2中可以看出:在PASCAL-S和ECSSD数据集上,对比于Baseline,本文的多尺度特征提取模块(MSFE)使Fmax分别提高了0.01、0.013,MAE分别下降了0.008、0.007;本文的多级别特征融合模块(MLFF)使Fmax分别提高了0.015、0.015,MAE分别下降了0.008、0.010。同时使用本文方法的多尺度特征提取模块和多级别特征融合模块在Fmax、MAE指标上达到了最优的效果。因此,本文提出的多尺度特征提取模块和多级别特征融合模块可以有效地提高检测的性能。
表2 在2个数据集上的消融实验结果Tab.2 Ablation experiments results on two datasets
本文提出了一种多尺度特征提取和多级别特征融合的显著性检测方法。采用不同扩张率的空洞卷积获取丰富的上下文信息,缓解显著性目标区域与背景不连续、边界易模糊等问题。本文提出的多级别特征融合模块,不仅可以抑制噪声的传递,而且可以有效地恢复显著性目标空间结构的细节信息。从定性评价和定量评价的角度评估,本文提出的方法都有显著的提升。在下一步工作中,将采用特征提取能力更强的主干网络提高算法的精度,继续优化网络减少模型的参数量。