
FastInst:一种简单基于查询的实时实例分割模型
1、摘要
目前,实例分割方法均聚焦于基于查询的模型,尽管这些模型是端对端且非极大值抑制(NMS),但在高精度实时基准测试上的优势尚未得到很好的证明。本文展示了基于查询的模型在高效实例分割算法上的巨大潜力,提出了一个简单、有效的基于查询的框架FastInst。FastInst可以实时速度(即32.5 FPS)运行,同时在没有附加的COCO测试中产生40.5 AP。
具体来说,FastInst遵循最近推出的Mask2Former的元架构,主要设计包括实例激活引导查询、双路径更新策略和真实掩码引导学习,故能够使用更轻的像素解码器,更少的Transformer解码器层来获得更好的性能。实验表明,FastInst在速度和准确性上都优于大多数最先进的实时算法,代码开源在https://github.com/junjiehe96/FastInst
2、主要贡献
1.证明了基于查询的模型可以在保持快速的速度的情况下,在实例分割任务中获得出色的性能
2.为了实现高效的实时实例分割,提出了实例激活引导查询、双路径Transformer解码器架构和查询特征与像素特征之间的直接通信三个关键技术
3.引入ground-truth掩码引导学习,防止掩码注意力陷入次优查询更新过程
4.在具有挑战性的MS COCO数据集上评估FastInst。如图1所示,FastInst在保持快速的同时,在COCO基准测试上获得了强大的性能,超过了以前大多数最先进的方法。希望FastInst可以作为实时实例分割的新基准,并推动基于查询的实例分割模型的发展。
图1 COCO数据集中速度-性能权衡
3、整体结构
将输入图像输入到主干网络,得到C3、C4和C5特征映射,其分辨率分别为输入图像的1/8、1/16和1/32。然后通过1×1卷积将这三个特征映射投影到256通道的特征映射上,并输入到像素解码器中。像素解码器聚合上下文信息并输出增强的多尺度特征映射E3、E4和E5。之后,从特征图E4中选取Na个实例激活引导查询,与Nb个辅助可学习查询连接,得到查询总数。Transformer解码器将总查询数和平坦化的高分辨率像素特征E3作为输入,以双路径的方式更新像素特征X和查询Q,并预测每个解码器层的对象类别和分割掩码。
图2 整体框架
4、主要方法
4.1 轻量级像素编码器
多尺度上下文特征映射对于图像分割至关重要,但是复杂的多尺度特征金字塔网络会增加计算量。因此,这里使用Transformer解码器中的细化像素特征来生成分割掩码,能有效减少像素解码器对大量上下文聚合的需求。为了权衡好分割精度和速度,使用了PPM-FPN的变体算法在C5之后采用金字塔池化模块来扩大感受野,提高性能。
4.2 实例激活引导的查询
受Deformable DETR启发,提出了实例激活引导查询方法。通过给定像素解码器的输出特征图,在特征图E4之上添加一个辅助分类头,再进行softmax激活,得到每个像素的类概率预测pi∈∆K+1,其中∆K+1是(K+1)维的单一概率单形,K为类数,i为像素索引,辅助分类头由3×3卷积和1×1卷积组成。通过pi可以得到每个像素的前景概率,然后从特征图E4中选取前景概率较高的Na个像素嵌入作为对象查询。
训练中,采用基于匹配的Hungarian损失来监督辅助分类头。它使用先验框和二元分类分数来匹配问题,使用只带位置损失Loc的类预测来计算分配成本。位置损失Loc是当像素位于该对象的区域时,为0;否则,它是1。因为只有落在对象内部的像素才能够推断出此对象的类和掩码嵌入,同时加快了训练收敛速度。
将上述策略生成的查询称为实例激活(IA)引导引导查询。与零或可学习查询相比,IA引导查询在初始时保存了关于潜在对象的丰富信息,并提高了Transformer解码器中查询迭代的效率。
4.3 双路Transformer解码器
从底层特征图中选择Na个IA引导查询后,与Nb个辅助学习查询连接,得到查询总数Q,其中辅助学习查询用于对背景像素特征进行分组,并在后续的双路更新过程中提供与图像无关的信息。然后,将总查询Q和平坦化的1/8高分辨率像素特征X送入Transformer解码器,先为查询Q和像素特征X添加位置嵌入,之后利用是连续的Transformer解码器层进行更新。
其中,单个Transformer解码器层包含一个像素特征更新和一个查询更新,整个过程类似于EM (Expectation-Maximization)聚类算法,E步:根据像素特征所属的中心(查询)更新像素特征;M步骤:更新集群中心。最后,利用改进后的像素特征和查询预测每一层的对象类别和分割掩码。
位置嵌入。位置信息对于区分具有相似语义的不同实例至关重要,因此使用可学习位置嵌入代替非参数正弦位置嵌入,结果发现在不影响性能的情况下能提高模型推理速度。整个过程是:采用固定大小的可学习空间位置嵌入P∈RS×S×256(S为空间大小,常设为Na的平方根),然后在转换中,将P插值为E3 和E4两种大小,前一种是平坦化为像素特征X的位置嵌入,后一个是根据特征图E4中的位置选择位置嵌入。
像素特征更新。像素特征更新的框架由交叉注意和前馈层组成,如图2右侧所示。将每个交叉注意层的查询和键中都进行位置嵌入操作,然后通过对查询的交叉关注来聚合全局特性。
查询更新。使用不对称的掩码注意力再利用自注意和前馈网络进行查询更新。掩码注意力将每个查询的注意力限制在前一层预测掩码的前景区域内,同时,位置嵌入也被添加到每个掩码层和自注意层的查询和键中,并假设通过跟随自注意来收集上下文信息。这样显著提高了基于查询的模型在图像分割任务中的性能。
预测。应用两个独立的3层MLP在每个解码器层进行精确的IA引导查询并预测对象类和掩码嵌入,其中,每个IA引导查询都需要预测所有对象类的概率,包括空类。首先,对细化后的像素特征进行线性投影,得到掩码特性,再利用掩码嵌入与掩码相乘来获取每个查询的分段掩码。每个transformer解码器层中的MLP和线性投影层的参数是不共享,因为查询和像素特征是交替更新,它们的特征可以在不同解码器层的不同表示空间中。此外,由于实例分割需要对每个预测进行评估的置信度评分,故将类概率分数与掩码分数(即前景区域掩码概率的平均值)相乘作为置信度分数。
4.4 ground-truth 掩码引导学习
尽管掩码注意引入了先验稀疏注意知识,加速了模型收敛并提高了性能,但它限制了每个查询的接受域,并可能导致Transformer解码器陷入次优的查询更新过程。因此,引入ground-truth 掩码引导学习来缓解这个问题。
首先,应用最后一层的双边匹配ground-truth掩码代替第一层的掩码注意所使用的预测掩码,对于最后一层中不匹配的任何实例查询(包括辅助可学习查询)使用标准交叉注意,即:
这种固定匹配保证了每个Transformer解码器层预测的一致性,并节省了训练时的匹配计算成本。通过引导学习,允许每个查询在训练过程中看到其目标预测对象的整个区域,有助于掩码注意关注于更合适的前景区域内。
5、实验
将FastInst与COCO数据集上最先进的实时实例分割算法进行对比准确性和推理速度,如表1所示。结果表明,FastInst在性能和速度上都优于以往最先进的实时实例分割方法。例如,使用ResNet50骨干网络设计的FastInst-D1模型性能比SparseInst高0.9AP,同时使用更少的训练周期和更少的推理时间。
表1 COCO数据集上的实例分割
6、结论
本文提出了基于查询的FastInst实时实例分割框架和实例激活引导查询、双路径更新策略和ground-truth掩码引导学习三个高效组件,在保持快速推理速度的同时在COCO数据集上取得了优异的性能。大量的实验证明了核心思想的有效性以及FastInst相对于之前最先进的实时技术的优势。
局限性:
(1)和一般的基于查询的模型一样,FastInst不擅长小目标。尽管使用更强的像素解码器或更大的特征映射对其进行了改进,但引入了更重的计算负担,结果仍然不能令人满意。
(2)ground-truth掩模引导学习虽然提高了掩模注意的表现,但也增加了训练成本。
文章转载自公众号:深蓝AI
