APP下载

基于双层解耦策略和注意力机制的遮挡目标分割

2023-02-18周浙泉吕淑静

电子与信息学报 2023年1期
关键词:掩模双层实例

吕 岳 周浙泉 吕淑静

①(华东师范大学通信与电子工程学院 上海 200062)

②(华东师范大学计算机科学与技术学院 上海 200062)

③(上海市多维度信息处理重点实验室 上海 200062)

1 引言

工业应用中经常出现需要检测分割遮挡目标的场景,如在物流的自动化分拣中,传输带上堆叠快递包裹的分割。然而,遮挡目标的分割是一个具有挑战性的问题,主要难点在于目标之间的严重遮挡会导致实例分割方法难以检测到遮挡目标以及难以清晰地生成遮挡目标的预测掩模。

目前,常见的实例分割方法主要可分为基于区域生成(proposal-based)的实例分割方法和区域生成无关(proposal-free)的实例分割方法。proposalbased实例分割方法[1,2]需要利用区域生成网络(Region Proposal Network, RPN)生成大量目标区域候选框,然后通过在每个候选框中做实例相关的操作得到最后的分割结果。如基于区域的掩模卷积神经网络(Mask Region-based Convolutional Neural Network, Mask RCNN)[1]扩展了更快速的基于区域的卷积神经网络(Faster Region-based Convolutional Neural Network, Faster RCNN)[3]的网络结构,它在Faster RCNN网络的末尾拼接了一个全卷积分支作为掩模头(mask head),该掩模头对每个候选框中的特征进行卷积操作并得到预测掩模。文献[2]提出了一种基于轮廓的实例分割方法,它在候选框4个端点的基础上逐渐生成一组紧紧包围实例的轮廓点。然而,遮挡目标场景中的候选框会出现严重重叠,在利用非极大值抑制(Non-Maximum Suppression, NMS)去除冗余候选框时容易错误地移除正确的候选框,并且由于遮挡实例的候选框中易出现多个实例,proposal-based实例分割方法在基于候选框的分割时难以将对应的实例准确分割。近年来,以条件卷积实例分割网络(Conditional convolutions for Instance segmentation, CondInst)[4]为代表的proposal-free实例分割方法取得巨大成功,已成为实例分割领域的热点。相比于proposalbased方法,这类proposal-free方法取消了基于候选框分割的步骤,因而更加适合应用在遮挡目标分割中。文献[4]提出的CondInst动态地对每个实例生成独一无二的掩模头权重参数,通过将特征图输入到这个掩模头即可得到相应实例的预测掩模。文献[5]将一个实例看作以实例重心位置为原点的一组极坐标,这种方法将实例分割问题转换成目标检测问题。文献[6,7]提出了“实例类别”的概念,根据实例的坐标分割每个实例。文献[8]将掩模表示为一个固定维度的向量从而将分割任务转换为回归任务。然而,proposal-free方法在分割遮挡目标时仍有局限,这类方法在同时预测遮挡的多个目标时会产生歧义性,导致网络在分割遮挡目标时的准确度降低。

遮挡目标的检测分割是当前的一个研究热点。一些工作针对检测分割遮挡目标时出现的困难提出了新的损失函数,如文献[9]提出了一种聚合损失函数,该损失函数可以使候选框靠近并紧凑地定位到相关的标注真值,文献[10]在损失函数中引入了一个额外的惩罚使得候选框尽量远离其他标注真值。还有一些工作尝试改进NMS策略,例如文献[11,12]建议降低邻近预测的置信度而不是直接丢弃这些预测,文献[13,14]提出了使用一个神经网络去执行NMS策略。其他工作如文献[15,16]提出了不同的包围框应使用不同的NMS阈值。然而,在对遮挡目标检测分割时,相邻目标包围框之间的严重重叠导致这些基于包围框的方法依旧难以很好地检测到遮挡目标。对遮挡目标分割的另一种有效策略是多实例预测,如文献[17]将长短时记忆网络(Long Short-Term Memory, LSTM)整合到网络中,并利用LSTM依次解码网格中的多个实例。文献[18]提出了一种基于迭代的检测策略,每一次迭代会产生一些新的预测结果。CrowdDet[19]则在每个候选框中预测出一组而不是一个实例。但是为了实现多实例预测,这些方法引入了额外的网络结构或者设计了特殊的损失函数,使得网络的训练和推理变得复杂。

鉴于目前研究中存在的问题,本文提出一种基于双层解耦策略和注意力机制的网络模型用于遮挡目标的自动分割。本模型基于proposal-free的CondInst网络,根据目标实例重心是否被遮挡将实例分类为无遮挡实例和有遮挡实例,并引入双层解耦检测头自动预测实例的遮挡类型并利用不同的分支对不同遮挡类型的实例进行解耦预测从而解决了预测的歧义性。此外,还设计了注意力改进模块用于改进有遮挡实例的分割结果,该模块将无遮挡实例的预测掩模组合为注意力权重图,并利用该注意力权重图帮助有遮挡实例生成其预测掩模。在后处理阶段,该模型使用基于掩模的NMS策略(Mask-NMS)代替基于包围框的NMS策略(Box-NMS),从而使本文方法在预测遮挡目标时不会因包围框的高度重叠而错误地移除目标。通过对比实验,证明了本文提出的方法较其他方法具有更优的性能。

本文还采集了一个遮挡快递包裹实例分割数据集。该数据集包含1539张图像,总共8631个包裹实例,在实验与分析小节中会介绍该数据集的详细信息。

2 方法

2.1 CondInst网络

CondInst取消了生成候选框的步骤,与基于生成区域的方法相比,更加适用于分割遮挡目标,但CondInst在预测遮挡目标时仍然有很大的局限性。图2展示了CondInst在检测分割遮挡目标时的一些失败案例(预测失败的实例用红色虚线框框出):在图2的第1行中,网络没有检测出一个被严重遮挡的包裹;在图2的第2行中,对于该严重遮挡的快递包裹,CondInst预测出的掩模非常不正确。这些错误的主要原因是CondInst缺乏一种机制处理这种遮挡情况,当CondInst网络尝试预测图2第1列中包裹的时候,因原始CondInst在每个位置只能预测出一个实例,所以当一个位置出现多个实例时CondInst难以同时对这些包裹进行预测,因此网络必须有能力针对这种多遮挡目标的预测进行解耦。

图2 CondInst的失败案例

CondInst预测出一个实例的重心,并从实例的重心位置得到生成实例掩模所需的掩模头控制参数。当实例的重心被其他实例遮挡时,CondInst需要同时对这两个实例进行打分和预测,此时CondInst的预测就会产生歧义。基于以上分析,本文根据实例的重心是否被遮挡将实例分为有遮挡实例与无遮挡实例。然后,通过在原始CondInst的每一个输出头中添加一条并行的分支将检测头扩展到双层解耦检测头。在双层解耦检测头中,无遮挡实例和有遮挡实例会自动通过不同的分支进行预测,从而达到了解耦的目的。更进一步,本文在实验中发现网络对无遮挡实例的预测结果比有遮挡实例预测结果更加准确,因此本文引入了注意力改进模块,利用无遮挡实例的预测掩模组合成为注意力权重图来帮助网络生成有遮挡实例的掩模。

2.2 基于双层解耦策略和注意力机制的CondInst网络

图3给出了本文方法的网络结构图。本方法的网络结构也分为3个部分:(1)带有FPN的主干网络,用于提取特征;(2)双层解耦检测头,用于解耦检测实例;(3)注意力改进模块,用于生成实例的预测掩模。带有FPN的主干网络部分与CondInst相同,所以下面仅介绍双层解耦检测头与注意力改进模块。

图3 基于双层解耦策略和注意力机制的CondInst网络结构

2.2.1 双层解耦检测头

CondInst的每个输出头只包含1条全卷积分支,因此对于Pi的每个位置,CondInst只能预测出1个实例。然而在本文方法中,为了解耦无遮挡实例和有遮挡实例的预测,Pi的每个位置应可以预测出两种实例。正如图3所给出的,本文通过在原始的输出头中并行地添加1条相同的全卷积分支来扩展这4个输出头。扩展后,对于Pi的每个位置,每个输出头的第1条分支负责检测有遮挡实例,每个输出头的第2条分支负责检测无遮挡实例。此外,如图3所示,本文共享了输出头中两条分支的前几个卷积层,该设计不仅可以减少网络的参数,也可以提高网络性能。在本文中,默认每个输出头中的前两个卷积层是共享的。

2.2.2 注意力改进模块

在训练的初期,注意力权重An产生的预测结果多为噪声,此时应当给予该损失函数一个较小的权重,当网络的性能随着训练的进行不断提升后,该损失函数的权重也应随之上升,因此本文设计了一个动态损失函数权重wG来平衡两个损失函数的权

其中,λ是平衡两个损失函数的权重,默认设置为1。

2.2.3 推理过程

3 实验与分析

本节首先介绍实验数据,然后在该数据集上评估本文方法。

3.1 实验数据

本文采集了一个遮挡快递包裹实例分割数据集。该数据集由1539张样本图像组成,包含8631个快递包裹实例。所有图像的分辨率是640×360,以PNG格式存储。在实验中将数据集分成训练集和测试集,其中训练集有860张图像,包含4856个包裹实例,测试集有679张图像,包含3775个包裹实例,图4展示了数据集中的部分样本图像。

图4 遮挡快递包裹数据集图像

3.2 评估指标

根据之前遮挡目标的相关工作,本文使用下列3个评估指标:

(1) 平均精度(Average Precision, AP)。AP是实例分割和目标检测中最广泛使用的指标之一,反映了模型预测结果的精度和召回率,数值越高表示性能越好。

(2) 召回率(Recall)。Recall体现了模型检测出正样本的能力,数值越高表示性能越好。

(3) 漏检率(log-average Miss Rate on false positive per image in [10-2, 100], MR-2)[22]。MR-2是遮挡目标检测中非常重要且常用的指标,该指标对假阳性样本非常敏感,MR-2的数值越低模型性能越好。

3.3 实验环境及参数设置

本文实验环境是Ubuntu 16.04, Cuda10和Cudnn7.6,使用一块1080Ti GPU。全部实验模型都以ResNet-50作为主干网络,并使用在Image-Net上预训练的模型作为初始权重。在训练时,输入图像短边的大小从[288, 488]中随机采样生成,并采用左右翻转数据增强策略以减少过拟合,Batch_size大小为8,模型迭代20k次,初始学习率为0.005并在10k次和15k次迭代时学习率除以10,所有Box-NMS的默认IoU阈值为0.6。

3.4 实验结果与分析

3.4.1 与基准模型对比

本节将与两种实例分割基准模型Mask RCNN[1]和CondInst[4]进行性能比较。Mask RCNN与CondInst分别是proposal-based方法和proposalfree方法中的最佳性能模型之一。对于CondInst,采用AdelaiDet中的官方开源版本。对于Mask RCNN,采用detectron2中的官方开源版本。CondInst和Mask RCNN的初始学习率分别是0.005和0.01。

表1给出了各模型分别基于Box-NMS和Matrix-NMS后处理策略的比较结果。由于Matrix-NMS策略较Box-NMS策略更适合用在遮挡目标的后处理过程,所以具体分析使用Matrix-NMS后处理策略的实验结果。从表1可以看到,不带有注意力改进模块的版本相比于基准模型提高了4.17%的AP、4.64%的Recall以及4.23%的MR-2,这体现了双层解耦策略的有效性。加上注意力改进模块后,又再次提高了0.52%的AP、0.32%的Recall和0.98%的MR-2,这说明了利用无遮挡实例的预测掩模作为注意力权重的方法可以提高模型性能。

表1 不同方法与不同NMS策略的分割结果(%)

图5是不同方法的可视化结果图,可视化置信度阈值为0.3。第1列是输入图像,第2列是CondInst的结果,第3列是Mask RCNN的结果,第4列是本文方法中由预测无遮挡实例的分支生成,第5列是本文方法中由预测有遮挡实例的分支生成,最后一列是本文方法的结果。图5失败的预测用红色虚线包围框标注。从图5(b)和图5(c)可以看出,CondInst和Mask RCNN的分割结果中有许多目标被漏检如图5(b) 的第2行以及图5(c)的第1行,并且分割掩模的精度较低如图5(b)的第1行以及图5(c)和第3行,这种现象在有遮挡目标上尤为明显。从图5(d)-图5(f)可以看出本文方法对有遮挡目标和无遮挡目标都可以较好地检测,并且分割掩模也更加清晰。从可视化结果来看,本文所提方法效果最好。

图5 本文方法和基准方法的可视化结果对比

3.4.2 与遮挡目标检测模型对比

目前,关于遮挡目标的实例分割工作较少,为了更好的比较本文方法的性能,本节将与一些遮挡目标检测方法进行对比。此节中,采用目标检测指标与Soft-NMS[11]和CrowdDet[19]对比,CrowdDet是当前遮挡目标检测的最优模型之一。对于Soft-NMS,本文根据其论文在Faster RCNN的上复现了Soft-NMS,对于CrowdDet,本文采用官方开源版本。Soft-NMS和CrowdDet的初始学习率分别是0.005和0.01。

表2给出了比较结果。本文的实例分割方法可以从包围框头获取实例的包围框,也可以通过计算出预测掩模的上下左右边界得到包围框,表2同时展示两种结果,表2的最后一行是基于包围框头的结果,倒数第2行是基于掩模的结果。从表2可以看出,本文方法相比于其他两种方法AP提高了0.45%、Recall提高了0.05%、MR-2提高了6.17%,这进一步验证了本文方法对遮挡目标的分割十分有效。

表2 与遮挡目标检测方法比较的结果(%)

3.4.3 双层解耦策略与注意力改进模块的性能分析

为了更加详细地分析添加双层解耦策略与注意力改进模块后分割精度的变化,表3分别给出了无遮挡实例和有遮挡实例的分割结果。从表3的第1行和第2行可以得到,在双层解耦策略下,无遮挡实例的AP和AR仅提升了1.90%和0.89%,而有遮挡实例的AP和AR却分别提升了13.97%和13.87%,这说明双层解耦策略极大地提升模型针对有遮挡实例的分割性能从而带来了模型整体性能的提升。从表3的第2行和第3行可以看到,注意力改进模块在维持无遮挡实例的分割性能基本不变的同时提高了有遮挡实例的分割性能(AP提升了0.90%,AR提升了0.72%),这充分说明了注意力改进模块的有效性。

表3 针对有遮挡实例和无遮挡实例的分割结果(%)

图6给出了注意力改进模块的可视化对比结果,其中第1列是原始图像,第2列是无遮挡实例的分割结果,第3列是根据无遮挡实例的分割结果生成的注意力权重图,第4列是仅使用双层解耦策略产生的有遮挡实例分割结果,红色虚线框是分割结果不准确的区域,第5列是同时使用双层解耦策略和注意力改进模块产生的有遮挡实例分割结果。通过对比第4列和第5列的分割结果我们发现注意力改进模块可以生成更加准确的分割掩模。

图6 注意力改进模块的可视化对比

3.5 消融实验

本节研究双层解耦检测头中的共享卷积层数目与推理过程中的置信度阈值σ对本文方法性能的影响。

3.5.1 双层解耦检测头中的共享卷积层数目

双层解耦检测头的每一个输出头包含并行的两条分支,每条分支包含4个卷积层,并且两条分支的前几个卷积层是共享的,这可以减少网络参数的数量并提升网络性能。容易看出,共享的卷积层尝试捕捉无遮挡实例和有遮挡实例之间的共有特征,而后面的非共享卷积层捕捉只适用于某一种实例的特定特征,因此过少的非共享卷积层会使得网络难以区分无遮挡实例和有遮挡实例。表4展示了共享卷积层数目对网络性能的影响。实验结果表明,网络的性能一开始会随着共享卷积层的数目的减少而缓慢增加,但当数目减少到2之后,网络的性能会逐渐下降,因此本文将共享卷积层的数目设置为2。

表4 共享卷积层的数量对模型性能的影响

3.5.2 推理过程中的置信度阈值σ

在推理过程中,需选出置信度高的无遮挡实例组合成注意力权重An。如果置信度阈值σ过低,不准确的预测掩模会将更多的噪声引入注意力权重图中,当置信度阈值σ过高时,有遮挡实例的预测又难以从无遮挡实例的预测结果中获益。表5给出了不同阈值下对模型性能的影响,从表中可以得到当阈值设置为0.65时模型性能较高。值得注意的是,当阈值为1时,模型的结果低于只用了双层解耦检测头的模型,这是因为当阈值过高时会导致注意力权重图的值几乎全为1,这与训练时输入到掩模头的数据分布不符,从而导致此时性能低于只使用双层解耦检测头的版本。

表5 不同置信度阈值σ 对模型性能的影响

4 结束语

本文提出了一种基于双层解耦策略和注意力机制的遮挡目标分割方法,本方法引入了双层解耦检测头对输入图像中的无遮挡实例和有遮挡实例进行解耦预测,并利用基于无遮挡实例预测掩模的注意力权重图来帮助有遮挡实例的分割进一步提升了网络的分割精度。本文还采集了一个遮挡快递包裹实例分割数据集,通过在该数据集上的实验证明本文所提方法有效地提高了分割遮挡目标的准确率。下一步将探索结合其他proposal-free实例分割网络的效果。

猜你喜欢

掩模双层实例
细粒度图像分类的通道自适应判别性学习方法
双层最值问题的解法探秘
墨尔本Fitzroy双层住宅
基于直写技术的微纳掩模制作技术研究进展*
“双层巴士”开动啦
掩模图像生成时阈值取值的合理性探讨
次级通道在线辨识的双层隔振系统振动主动控制
完形填空Ⅱ
完形填空Ⅰ
三角形网格规则点的多进制细分算法