作者 | 小书童 编辑 | 集智书童
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【语义分割】技术交流群
后台回复【分割综述】获取语义分割、实例分割、全景分割、弱监督分割等超全学习资料!
![838ba7f24f1a75ba8b59bc4ebfe51af7.png](https://i-blog.csdnimg.cn/blog_migrate/dc0ac4bc8a5e44a2bf4cce5cbb27be4c.png)
最近对实例分割的关注集中在基于查询的模型上。尽管这些模型是无非最大值抑制(NMS)和端到端的,但在高精度实时基准测试上的优势尚未得到很好的证明。
在本文中展示了基于查询的模型在高效实例分割算法设计方面的强大潜力。作者提出了FastInst,这是一个简单、有效的基于查询的实时实例分割框架。FastInst可以以实时速度(即32.5 FPS)执行,同时在COCO测试开发中产生超过40的AP(即40.5 AP)。
具体来说,FastInst遵循了最近引入的Mask2Former的元架构。其关键设计包括实例激活引导查询、双路径更新策略和GT Mask引导学习,使之能够使用更轻的像素解码器、更少的Transformer解码器层,同时实现更好的性能。
实验表明,FastInst在速度和准确性方面都优于大多数最先进的实时模型,包括强大的全卷积Baseline。
代码:https://github.com/junjiehe96/FastInst
1、简介
实例分割旨在分割图像中所有感兴趣的对象。Mask R-CNN等主流方法遵循检测然后分割的设计。尽管这些方法简单直观,但会生成大量重复的区域建议,从而引入冗余计算。为了提高效率,出现了许多基于全卷积网络(FCN)的单阶段方法。它们端到端地分割目标,而不包含区域建议。这种方法的推理速度很有吸引力,尤其是在实时场景中。然而,由于密集的预测,经典的单阶段方法仍然依赖于手动设计的后处理步骤,如非最大值抑制(NMS)。
最近,随着DETR在目标检测中的成功,出现了基于查询的单阶段实例分割方法。他们利用多功能、强大的注意力机制,结合一系列可学习的查询,来推断对象类别和分割掩码,而不是卷积。例如,Mask2Former通过在主干上添加像素解码器和Masked Attentension Transformer解码器,简化了实例分割的工作流程。与之前的方法不同,Mask2Former不需要额外的手工组件,如训练目标分配和NMS后处理。
Mask2Former虽然简单,但也有自己的问题:
它需要大量的解码器层来解码对象查询,因为它的查询是静态学习的,需要很长的过程来细化;
它依赖于重像素解码器,例如多尺度可变形注意力Transformer(MSDeformAttn),因为它的目标分割掩码直接依赖于像素解码器的输出,像素解码器被用作区分不同目标的每像素嵌入特征;
屏蔽注意力限制了每个查询的感受野,这可能导致Transformer解码器陷入次优查询更新过程。
尽管Mask2Former取得了出色的性能,但其在快速、高效的实例分割方面的优势尚未得到很好的证明,这对自动驾驶汽车和机器人等许多现实世界的应用至关重要。事实上,由于缺乏先验知识和注意力机制的高计算复杂性,基于查询的模型的效率通常不令人满意。高效的实时实例分割基准仍然由基于经典卷积的模型主导。
在本文中通过提出FastInst来填补这一空白,FastInst是一个简洁有效的基于查询的实时实例分割框架。证明了基于查询的模型可以在保持快速的同时在实例分割任务上取得优异的性能,在高效的实例分割算法设计中显示出巨大的潜力。例如,设计的基于ResNet-50主干的最快查询模型在COCO测试开发中以53.8 FPS(每秒帧数)实现了35.6 AP,在单个V100 GPU上进行了评估(见图1);此外,最佳权衡模型可以以实时速度执行,即32.5 FPS,同时产生超过40的AP,即40.5 AP,据我们所知,这在以前的方法中尚未实现。
具体而言,本文模型遵循Mask2Former的元架构。为了实现高效的实时实例分割,本文提出了3个关键技术。首先,使用实例激活引导查询,它从底层特征图中动态选择具有高语义的像素嵌入作为Transformer解码器的初始查询。与静态零或可学习查询相比,这些选择的查询包含了关于潜在目标的丰富嵌入信息,并减少了Transformer解码器的迭代更新负担。
其次,在Transformer解码器中采用了双路径结构,其中查询特征和像素特征交替更新。这样的设计增强了像素特征的表示能力,并将从重像素解码器设计中拯救出来。此外,它在查询特征和像素特征之间进行了直接通信,加快了迭代更新收敛,有效地减少了对解码器层数的依赖。第三,为了防止掩蔽注意力陷入次优查询更新过程,引入了基本事实掩蔽引导学习。
将标准Mask注意力中使用的Mask替换为最后一层二分匹配的GT Mask,以再次转发Transformer解码器,并使用固定的匹配分配来监督输出。该指南允许每个查询在训练过程中看到其目标预测目标的整个区域,并有助于Mask注意力在更合适的前景区域内注意力。
在具有挑战性的MS COCO数据集上对FastInst进行了评估。如图1所示,FastInst在保持快速的同时,在COCO基准上获得了强大的性能,超过了以前大多数最先进的方法。作者希望FastInst可以作为实时实例分割的新基线,并推动基于查询的实例分割模型的开发。
![3b125915fd66dc28f0fae225e2385dd6.png](https://i-blog.csdnimg.cn/blog_migrate/bca4ae6786f7e5b044bc950abdb094ca.png)
2、相关工作
现有的实例分割技术可以分为3类,即基于区域的方法、基于实例激活的方法和基于查询的方法。
「基于区域的方法」首先检测目标边界框,然后应用RoI操作,如RoI Pooling或RoI Align,以提取用于对象分类和遮罩生成的区域特征。作为一项开创性的工作,Mask RCNN在Faster R-CNN之上添加了一个掩码分支,以预测每个目标的分割Mask。后续方法要么专注于提高检测到的边界框的精度,要么解决Mask R-CNN中出现的低质量分割Mask。尽管在几个基准上的性能有所提高,但这些基于区域的方法存在许多重复的区域建议,这损害了模型的效率。
「基于实例激活的方法」使用一些有意义的像素来表示目标,并训练这些像素的特征以在预测期间被激活用于分割。一类典型的此类方法是基于中心激活,它迫使目标的中心像素与分割和分类相对应。例如,SOLO利用目标的中心特征来预测用于分割的Mask Kernel。MEInst和CondInst在基于中心激活的检测器FCOS上建立了模型,并增加了预测动态卷积的Mask嵌入向量的分支。最近,SparseInst学习了一个加权像素组合来表示目标。所提出的FastInst利用位于具有高级语义的目标区域中的像素作为目标的表示,并提取它们的特征作为查询。
DETR中出现了「基于查询的方法」,并表明具有端到端集合预测的Transformer编码器-解码器的卷积主干可以在实例分割任务上获得良好的性能。SOLQ和ISTR利用学习的目标查询来推断用于实例分割的Mask嵌入。Panoptic SegFormer添加了一个位置解码器来提供目标位置信息。Mask2Former引入了Mask注意力,以提高性能和更快的收敛速度。
Mask DINO将目标检测和图像分割任务统一起来,在实例分割方面取得了良好的效果。尽管性能出众,但基于查询的模型通常计算成本太高,无法在现实世界中应用。与卷积网络相比,它们在快速、高效的实例分割方面的优势尚未得到很好的证明。本文的目标是利用Transformer强大的建模能力,同时设计一个高效、简洁和实时的实例分割方案,以促进基于查询的分割方法的应用。
此外,许多工作还在图像分割任务中使用Dual path Transformer架构。然而,它们的设计通常很复杂,很难部署。只在简单的Transformer层上构建双路径架构,以提高效率。
3、本文方法
3.1、 总体架构
如图2所示,FastInst由3个模块组成:主干网、像素解码器和Transformer解码器。
![929db86e66f8575aa423cb186304b7a4.png](https://i-blog.csdnimg.cn/blog_migrate/e9ff5a272ff49576315cb9221d1477c4.png)
模型将输入图像馈送到主干,并获得3个特征图、和,其中分辨率分别为输入图像的1/8、1/16和1/32。通过1×1卷积层将这3个特征图投影到具有256个通道的特征图,并将它们输入像素解码器。像素解码器聚合上下文信息并输出增强的多尺度特征图、和。
之后,从特征图中选择实例激活引导查询,与辅助可学习查询连接,以获得总查询,其中。Transformer解码器将总查询以及平坦的高分辨率像素特征作为输入,表示为,其中。然后在Transformer解码器中,以双路径方式更新像素特征和查询,并预测每个解码器层的目标类和分割Mask。
3.2、轻量化像素解码器
多尺度上下文特征图对于图像分割至关重要。然而,使用复杂的多尺度特征金字塔网络增加了计算负担。与之前的方法不同,前者直接使用来自像素解码器的底层特征图,在Transformer解码器中使用细化的像素特征来生成分割Mask。这种设置减少了像素解码器对重上下文聚合的要求。因此,可以使用轻量级的像素解码器模块。为了更好地权衡准确性和速度,我们使用了一种称为PPM-FPN的变体,而不是标准FPN,它在之后采用了金字塔池模块,以扩大感受野,从而提高性能。
3.3、实例激活引导查询
目标查询在Transformer体系结构中起着至关重要的作用。DETR收敛缓慢的原因之一是其目标查询初始化为零。尽管可学习查询缓解了这个问题,但它们仍然与图像无关,并且需要许多Transformer解码器层来细化。受可变形DETR的启发,该方法从金字塔特征中选择查询边界框用于目标检测,提出了实例激活引导查询,该查询直接从底层多尺度特征图中选择具有高语义的查询。
具体来说,给定像素解码器的输出特征图,在特征图E4上添加一个辅助分类头,然后进行softmax激活,以产生每个像素的类概率预测,其中是()维概率单纯形,是类的数量,加上一表示“无对象”(∅),是像素索引,辅助分类头由两个卷积层组成,分别具有3×3和1×1的kernel-size。通过获得了每个像素的前景概率,,。
然后,从具有高前景概率的特征图E4中选择Na个像素嵌入作为目标查询。在这里,首先选择为相应类平面中的局部最大值的类(即,,其中是的空间8相邻索引集),然后选择在中前景概率最高的类。注意,在对应的类平面中具有非局部最大概率的像素意味着在其8邻域中存在具有该类的较高概率得分的像素。由于位置如此接近,自然更喜欢选择其相邻像素,而不是将其作为目标查询。
在训练过程中,应用基于匹配的匈牙利损失来监督辅助分类头。与DETR不同,DETR使用先前的Anchor和二进制分类分数来解决匹配问题,只使用具有位置成本的类预测来计算分配成本。位置成本被定义为当像素位于该目标的区域中时为0的指示符函数;否则为1。这种成本背后的直觉是,只有落在目标内部的像素才有理由推断该对象的类和Mask嵌入。此外,定位成本降低了二分匹配空间,加快了训练收敛速度。
将从上述策略生成的查询称为实例激活引导(IA引导)查询。与零或可学习查询相比,IA引导的查询在初始时保存了关于潜在对象的丰富信息,并提高了Transformer解码器中查询迭代的效率。
注意,还可以从特征图或中选择查询。较大的特征图包含更丰富的实例线索,但计算负担更重。使用中等大小的特征图来进行权衡。
3.4、双路变压器解码器
在从底层特征图中选择引导的查询后,将它们与辅助可学习查询连接起来,以获得总查询,其中辅助可学习的查询用于帮助对背景像素特征进行分组,并在随后的双重更新过程中提供一般的图像无关信息。然后,将与平坦的1/8高分辨率像素特征X组合的总查询馈送到Transformer解码器中。
在Transformer解码器中,为查询和像素特征添加位置嵌入,然后添加连续的Transformer解码器层来更新它们。一个Transformer解码器层包含一个像素特征更新和一个查询更新。
整个过程就像EM(期望-最大化)聚类算法。步骤:根据像素特征所属的中心(查询)更新像素特征;步骤:更新集群中心(查询)。与单路径更新策略相比,双路径更新策略同时优化了像素特征和查询,减少了对重像素解码器的依赖,并获得了更多细粒度的特征嵌入。最后,使用细化的像素特征和查询来预测每一层的目标类和分割Mask。
(1)Positional embeddings
位置信息对于区分具有相似语义的不同实例至关重要,尤其是对于具有相同类的目标。使用可学习的位置嵌入来代替非参数正弦位置嵌入,发现它可以在不影响性能的情况下提高模型推理速度。
具体来说,使用固定大小的可学习空间位置嵌入,其中是空间大小,根据经验将其设置为IA引导的查询数的四舍五入平方根。在转发过程中,将插值为2个不同的大小。一个是具有与相同的大小,然后将其平坦化为像素特征的位置嵌入;另一个与大小相同,根据它们在特征图中的位置,从中为IA-guided查询选择位置嵌入。辅助可学习查询采用额外的个可学习位置嵌入。
(2)Pixel feature update
首先更新像素特征。给定平坦的像素特征和查询,像素特征更新的流水线由交叉注意力层和前馈层组成,如图2右侧所示。位置嵌入被添加到每个交叉注意力层的查询和关键字。对于像素特征的更新,不使用自注意力,由于像素特征的序列长度长,这将引入大量的计算和内存成本。全局特征可以通过对查询的交叉注意力进行聚合。
(3)Query update
不对称地,使用Mask注意力,然后是自注意力和前馈网络进行查询更新,如Mask2Former中所述。Mask注意力将每个查询的注意力限制为仅关注来自前一层的预测Mask的前景区域内,并且假设上下文信息是通过随后的自注意力收集的。这样的设计显著提高了图像分割任务中基于查询的模型性能。在这里,位置嵌入也被添加到每个Mask和自注意层的查询和键中。
(4)Prediction
在每个解码器层的精化IA引导查询之上应用两个单独的3层MLP,以分别预测对象类和Mask嵌入。每个IAguided查询都需要预测所有目标类的概率,包括“无对象”(∅)类。将线性投影添加到细化的像素特征以获得Mask特征。然后将Mask嵌入与Mask特征相乘,以获得每个查询的分割Mask。
这里,每个Transformer解码器层的MLP和线性投影的参数是不共享的,因为查询和像素特征是交替更新的,并且它们的特征可以在不同解码器层的不同表示空间中。
此外,实例分割需要每个预测的置信度分数来进行评估。遵循先前的工作,将类概率得分与Mask得分(即前景区域中Mask概率的平均值)相乘作为置信度得分。
3.5、Ground truth mask-guided learning
尽管Mask注意力引入了先验稀疏注意力知识,加速了模型收敛并提高了性能,但它限制了每个查询的感受野,并可能导致Transformer解码器陷入次优查询更新过程。
为了缓解这个问题,引入了GT Mask引导学习。首先,使用最后一层的二分匹配GT Mask来代替第l层的Mask注意力中使用的预测Mask。对于与最后一层中的任何实例都不匹配的查询(包括辅助可学习查询),使用标准的交叉注意力,即,
![4acd45500d7ec2662085f024fa3ad71b.png](https://i-blog.csdnimg.cn/blog_migrate/7facd43a38fd37f25860ebfd89e1da9d.png)
其中,是第层中第个查询的注意力Mask,是最后一个解码器层的匹配,是最后一层中第个查询的匹配GT Mask。这里表示GT目标的数量。然后,使用替换的注意力Mask 与原始输出查询和第l层的像素特征相结合,这些像素特征被细化并用于更好的指导,作为再次转发第l变换器解码器层的输入。
新输出根据固定匹配进行监督,与最后一层的二分匹配结果一致。这种固定匹配确保了每个Transformer解码器层的预测的一致性,并节省了训练期间的匹配计算成本。通过这种引导学习,允许每个查询在训练期间看到其目标预测目标的整个区域,这有助于Mask的注意力进入更合适的前景区域。
3.6、损失函数
FastInst的总体损失函数可以写为:
![abdd62c0006076aad2d6df5695f8e597.png](https://i-blog.csdnimg.cn/blog_migrate/a72112f28de8af50c8400db5142c1855.png)
其中,是IA引导查询的辅助分类头的实例激活损失,和分别是预测损失和GT Mask引导损失。
(1)Instance activation loss
的定义为:
![04d4da0663a4c9f551770454e46b6586.png](https://i-blog.csdnimg.cn/blog_migrate/09e3e290b5fc209c8975fdaa67700636.png)
其中λ是超参数,为“无目标”类的交叉熵损失,权重为。这里是的空间大小,从中选择IA引导的查询。使用匈牙利算法来搜索预测集和地面实况集之间的最优二分匹配。对于匹配成本,将权重为λ的额外位置成本添加到上述分类成本中,如第3.3节所示。
(2)Prediction loss
根据先前的工作,Transformer解码器的预测损失定义为:
![80910f726b6b8064c5cb10639a52502f.png](https://i-blog.csdnimg.cn/blog_migrate/bfc9098d4c41bfb64f7ae9703e630b36.png)
其中,表示Transformer解码器层数,表示IA引导的查询在被馈送到Transformer解码器之前的预测损失,和分别表示分割Mask的二进制交叉熵损失和骰子损失,并且是“无对象”权重为0.1的对象分类的交叉熵损失。λ,λ和λ是平衡三种损失的超参数。类似地,利用匈牙利算法来搜索目标分配的最佳二分匹配。对于匹配成本,为每个查询添加一个额外的位置成本λ。
(3)GT mask-guided loss
GT Mask引导损耗类似于方程(4)。唯一的区别是,它不计算第0层的损失,并使用固定的目标分配策略,这与最后一个Transformer解码器层的二分匹配结果一致。
4、实验
4.1、主要结果
![d095d4f89a5361346c5b3cd44536c600.png](https://i-blog.csdnimg.cn/blog_migrate/4617a2a896d5708ad89283b23fcf5ba1.png)
4.2、消融研究
(1)IA-guided queries
![41b69b8b24864993eb00f9215392a0e0.png](https://i-blog.csdnimg.cn/blog_migrate/068f00d6bf3ef62d61b9507bf4dd81b6.png)
(2)Dual-path update strategy
![c28cb593d208fb8cb9da9f5ce81067ec.png](https://i-blog.csdnimg.cn/blog_migrate/cc019b1a3ed73317ef917d1d3db49706.png)
(3)GT mask-guided learning
![98cd2ad99e059f81a99f0d18f7eead26.png](https://i-blog.csdnimg.cn/blog_migrate/3352a608b432306ceb915c7c5163ca67.png)
(4)Pixel decoder
![64c7fb0a2bd8e6239f38b75e57eb74e0.png](https://i-blog.csdnimg.cn/blog_migrate/472897eaa57dc517941b593ffadc36ad.png)
(5)Transformer decoder layer number.
参考Table 6(a)。
(6)IA-guided query number
参考Table 6(b)。
(7)Auxiliary learnable query number
参考Table 6(c)。
(8)Query selection source.
参考Table 6(e)。
(9)Instance activation loss.
参考Table 6(f)。
(10)Positional embeddings
![8f4b8476819338c63ce7325af51095b7.png](https://i-blog.csdnimg.cn/blog_migrate/e8d91a50b7b0859fbc351f821adde3ff.png)
5、参考
[1].FastInst: A Simple Query-Based Model for Real-Time Instance Segmentation.
视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称