戴云峰,冯兴明,丁亚杰,王瀚,王庆华
1. 国网江苏省电力有限公司盐城供电分公司,江苏 盐城 224000
2. 常州中能电力科技有限公司,江苏 常州 213000
近年来,深度神经网络在计算机视觉(computer vision, CV)领域的应用已经从图像级别扩展到像素级别[1]。随着深度神经网络的能力越来越强大,区分粒度也越来越细致。实例分割算法中以Mask-RCNN[2]为代表的两阶段方法遵循先检测后分割的理念。两阶段的实例分割方法在截取到目标实例边界框作为感兴趣区域(region of interest, RoI)时,RoI 的特征改变了原有特征的长宽比,导致输入语义分割网络的RoI 特征不会保留原始输入图像其他区域的特征,并且基于两阶段的实例分割方法由于其整个网络的参数量相比单一的网络更多,导致基于两阶段的实例分割网络在训练阶段需要更复杂的策略[3]。此类方法通常精度较高,但实时性较差。
为了解决两阶段实例分割方法中实时性较差的问题,基于单阶段的实例分割方法逐渐成为了热门的研究方向[4]。Bolya 等[5]提出的YOLCAT 网络模型,在现有的单阶段目标检测框架上添加了用于语义分割的掩膜分支,将实例分割任务分解为2 个并行的子任务:一是生成1 组原型掩膜;二是预测每个实例的掩膜置信度,之后将原型掩膜与其对应的置信度线性组合得到输出的实例掩膜。Wang 等[6]提出的SOLO 网络模型将实例分割任务转化为单纯的分类任务,以目标实例的位置与形状作为分类依据,判断像素是否属于同一实例。Tian 等[7]提出的全卷积单阶段目标检测( fully convolutional one-stage object detection,FCOS)网络模型,以全卷积神经网络为基本架构,采取逐像素的预测方法实现对目标边界框的检测。同时,FCOS 网络模型是一种基于无锚点(anchor-free)的目标检测方法[8],避免了在检测锚点(anchor)框时会引入更多需要优化的超参数以及计算量较大等问题。但是,anchor-free 目标检测模型的检测头通常是由若干卷积层堆叠而成,这种简单的结构设计导致网络的特征表征能力不足,从而限制了目标检测的性能[9]。
针对上述问题,提出了一种基于改进FCOS 框架的实例分割网络,该网络能够准确地分割出目标在图像中的位置。本文提出的网络在单阶段目标检测框架的基础上添加底层分支、顶层注意力分支以及融合模块,融合多尺度的特征信息,获取更为丰富的语义信息,消除冗余信息的干扰,细化分割结果,能够更加精确地实现目标物体实例分割。在MSCOCO 数据集[10]上开展的实验及在实际场景中的定性实验结果表明了所提出的方法的优越性,结合自顶向下的注意力以及自底向上的局部特征不仅减少了误检率,也提高了分割结果的稳定性,在融合模块中的非极大值抑制操作抑制了冗余信息的干扰,提高了网络的分割精度[11]。
本文提出的方法在单阶段目标检测框架FCOS 的特征提取阶段新增了一个底部分支,用于计算特征图在像素粒度的得分;在FCOS 框架的主干(Head)模块后添加了一个顶层注意力分支,用于计算FCOS 框架特征金字塔每一层输出边界框内的全局注意力特征图;最后设计一个融合模块融合底层分支和顶层分支的特征图并输出最终的实例分割预测结果。所提出的网络结构如图1 所示。
如图1 所示,底层分支的输入既可以是FCOS 框架骨干网络的输出特征图Ci,也可以是特征金字塔的输出特征图Pi。顶层注意力分支的输入为FCOS 框架的Head 模块,其在Head 模块的输出上添加了1 层卷积层来预测边界框内每个位置的注意力得分[12]。对于每个预测的实例,融合模块将底层分支的输出裁剪到实例对应边界框的大小,并将其与注意力分支的输出线性组合。
如图1 所示,底层分支是在FCOS 框架的骨干网络或者特征金字塔之上引申出来的,本节以B表示底层分支的输出。B的大小为N×K×其中N为批次(batch size)大小,K为B的数量,H、W分别为底层分支输入特征图的高度和宽度大小,S为底层分支中卷积层的步长。
顶层注意力分支是在FCOS 框架的Head 网络之后添加了1 层卷积层用以预测目标检测边界框内的注意力图,该分支的输出表示为A。假定FCOS 框架Head 网络的第l层 输出大小为Hl×Wl,则顶层注意力分支在每个位置的注意力图的大小为N×(K×M×M)×Hl×Wl,其中M×M为注意力图的分辨率。
顶层注意力分支的注意力图能够对FCOS 框架预测的目标检测框内实例的粗略形状以及姿态信息进行编码,顶层注意力分支卷积层输出大小为Hl×Wl的K×M×M通道特征图。在输入融合模块之前,对顶层注意力分支的特征图应用FCOS 框架的后处理操作挑选出D个目标检测边界框及其对应的注意力图FCOS 框架的后处理操作为非极大值抑制(non-maximum suppression, NMS)[13]方法,其作用是消除目标检测方法中对于同一个物体冗余的预测框。
融合模块的输入来自底层分支的特征图B、顶层注意力分支的注意力图A及其对应的预测边界框O。首先利用Mask-RCNN 中的感兴趣区域池化(region of interest pooling,RoIPool)操作将特征图B裁剪到与预测边界框O相同的尺寸,输出固定大小为R×R的特征图,该过程表示如下:
图2为RoIPool 操作的示意图,其可以总结为以下3 个步骤。
图2 RoIPool 操作示意
1)输入为特征图B以及目标检测的边界框O,将边界框O映射回特征图B上的对应RoI区域;
2)对映射后的RoI 区域划分为大小相同的网格;
3)在划分后的网格内应用最大池化操作。
具体到本文提出的方法中,在训练阶段使用真值图(ground truth)的预测框作为RoIPool 操作的边界框O,在前向计算阶段使用目标检测网络输出的预测框作为RoIPool 操作的边界框O。处理完特征图B和预测边界框O后需要将注意力图A也统一至同样的尺寸R×R,通常来说注意力图A的尺寸M×M小于R×R,因此这里需要对注意力图A进行插值:
接着对插值后的注意力图a′
d的K个通道施加softmax 激活函数对其进行正则化,得到一组注意力得分图sd:
最后对RoIPool 操作的输出rd和式(1)的注意力得分图sd在K个维度上逐像素点乘,得到掩膜图md:
本文算法在MSCOCO[10]数据集上进行多种对比实验以及消融实验,并在实际场景中全面评估提出的实例分割方法。实验数据集选择MSCOCO 2017 实例分割数据集,该数据集包含123 000 张图像,涉及80 个类别标签。提出的网络模型选择train 2017 子集作为训练集,包含115 000 张训练图像。消融实验选择val 2017 子集作为评估模型的验证集,包含5 000 张图像。最终在test-dev 子集上评估提出方法的性能,选择平均精度(average precision,AP)[14]作为评价指标。MSCOCO 2017数据集对AP 按照交并比(intersection over union,IoU)[15]和目标尺寸大小将AP 细分为RAP、RAP,50、RAP,75以及RAP,S、RAP,M、RAP,L。其中RAP,50表示只统计IoU 大于50%的AP,RAP,75表示只统计IoU 大于75%的AP。RAP,S、RAP,M和RAP,L分别表示小尺寸目标、中等尺寸目标以及大尺寸目标的AP。
具体来说,提出的网络模型选择ResNet-50[16]作为特征提取的骨干网络,选择DeepLabV3+的解码器作为底层分支的网络结构。在训练阶段的batch size 设置为8,初始学习率设置为0.01。
本文方法在MSCOCO[10]数据集的test-dev 子集上全面评估提出的方法并与Mask-RCNN[2]、PolarMask[17]、YOLACT[5]以及TensorMask[18]这4 种方法进行对比。本文提出的网络模型超参数的设置为:融合模块特征图大小R=56,底层分支输出特征图的通道数K=4,顶层注意力图大小M=14。插值方法选取双线性插值,底层分支的输入为FCOS 框架特征金字塔的P3层和P5层。
本文提出的网络模型将训练集增加至270 000张图像,采取多尺度训练策略以降低训练难度。表1 为对比实验的实验结果。在表1 中,所评估的方法分别在2 种骨干网络下进行了对比,R-50 表示骨干网络为ResNet-50[16],R-101 表示骨干网络为ResNet-101[19]。表1 表明本文算法在MSCOCO 数据集上取得了超越所有对比算法的性能,同时运算时间短于除YOLACT 以外的所有方法。
表1 不同实例分割方法的定量对比实验结果
除了在MSCOCO[10]数据集上评估本文所提出的方法,还在实际场景下进行了定性实验。在定性实验中选取9 个场景,将提出的方法与Mask R-CNN[2]方法进行对比,图3 为实验结果。
图3 实际场景下的定性实验结果
与Mask R-CNN 方法相比,本文提出的方法误检率更低,例如图3 的场景4 中的雨伞,Mask R-CNN 方法将其检测为“stop sign”;在图3 的场景7 中,Mask R-CNN 方法对同一个斜挎包检测出2 个目标框;在图3 的场景9 中,Mask RCNN 方法将摩托车背后的树检测成了“人”。
同时,虽然本文方法存在个别的漏检目标,例如图3 场景1 中的凳子以及场景2 中的手提箱,但是相比于Mask R-CNN 方法来说稳定性更高。本文方法在目标检测框的预测方面更加稳定的原因在于提出的方法结合自顶向下的注意力以及自底向上的局部特征,而在融合模块中采取了非极大值抑制的后处理操作,抑制了顶层分支注意力图中概率较小的目标检测框。
本文提出的网络模型由FCOS 目标检测网络、底层分支、顶层注意力分支以及融合模块4 个部分组成。FCOS 目标检测网络的超参数与其论文保持一致,底层分支的超参数包括底层分支输出的通道数K以及底层分支的输入来源于FCOS 目标检测框架的特征提取骨干网络还是特征金字塔部分。顶层分支的超参数为注意力图的分辨率M,融合模块的超参数包括RoIPool 操作的输出维度R以及注意力图上采样的方法选择最近邻上采样方法还是双线性上采样方法。文中进行了大量的消融实验研究不同超参数的组合对网络性能的影响。
对于底层分支输出特征图的通道数K,设置一组对比实验分别将K的值设置为1、2、4、8。表2为该组对比实验的实验结果,实验结果表明当K取4 时网络模型能够达到最优性能。
表2 超参数K 的对比实验%
接下来设计一组对比实验研究顶层注意力图的分辨率M和融合模块RoIPool 操作的输出大小R的选取。由于超参数M与R的设置与K相关,具体来说当K设置为4 时,M和R的上采样比例应当大于4。因此设计的对比实验选取了4~14 的4 种不同上采样比例,RoIPool 操作按照输出大小R设计了28 和56 这2 组对照实验,表3为实验结果。实验结果表明随着注意力图分辨率M的增加,在上采样的过程中能够合并更详细的实例信息,而网络的总体耗时基本保持不变。因为注意力图来自顶层分支,本身包含有限的细节信息,所以当注意力图分辨率M增大到P的1/4 时,边际效应越来越明显。
表3 超参数M 和R 的对比实验
由于大小为M×M的顶层注意力图需要上采样到R×R才能与融合模块的特征图进行融合,因此上采样的方法也会对网络模型的性能产生影响。为了研究上采样方法对网络性能的影响,本节设置最近邻和双线性这2 种插值方法的对比实验。实验结果显示在表4 中,实验结果表明双线性插值方法比最近邻插值方法在平均精度上提升了0.2%。
表4 最近邻上采样与双线性上采样的对比实验
为了研究底层分支的输入对网络整体性能的影响,设置2 组不同输入来源的对比实验。底层分支的输入来源有2 种:一种是FCOS 目标检测框架特征提取的骨干网络,在本节具体为ResNet-50 网络的输出;另一种底层分支的输入来源是FCOS 目标检测框架的特征金字塔,表5 为这组对比实验的实验结果。在表5 中,与图1 对应,第1 行表示底层分支的输入为FCOS 框架骨干网络的C3层和C5层,第2 行表示底层分支的输入为FCOS 框架特征金字塔的P3层和P5层。表5 表明以特征金字塔作为底层分支的输入来源能够在提高网络精确度的同时减少耗时。
表5 底层分支不同输入来源的对比实验
针对单阶段实例分割方法网络的特征表征能力不足问题,本文提出一种基于改进FCOS 的实例分割方法,该方法在FCOS 网络架构的基础上增加了底层分支、顶层注意力分支及特征融合模块,以便更好地结合局部空间位置特征和全局语义信息,提高检测的精度和稳定性。在MSCOCO 数据集上的实验结果表明,本文方法相比两阶段实例分割方法不仅提高了分割精度而且降低了运算时间;在实际场景下的定性实验同样显示了本文方法的有效性。下一步将研究在网络结构中增加边缘信息以提高本文算法的分割精度。