分享

统一检测和分割任务!港科大&清华&IDEA提出基于Transformer统一目标检测与分割框架Mask DINO,效果SOTA!

 我爱计算机视觉 2022-07-07 发布于江苏
详细信息如下:


  • 论文链接:https:///abs/2206.02777[1]

  • 项目链接:https://github.com/IDEACVR/MaskDINO[2]

      01      

摘要

本文提出了一种统一的目标检测和分割框架Mask-DINO。Mask DINO通过添加一个支持所有图像分割任务(实例、全景和语义)的mask预测分支,扩展了DINO(DETR with Improved Denoising Anchor Boxes)。它利用DINO的查询嵌入对高分辨率像素嵌入图进行点积来预测一组二进制mask。

DINO中的一些关键组件通过共享架构和训练过程进行了扩展,以进行分割任务。Mask DINO简单、高效、可扩展,并且受益于联合大规模检测和分割数据集。实验表明,Mask-DINO在ResNet-50主干和带有SwinL主干的预训练模型上都显著优于所有现有的专门分割方法。

此外,Mask DINO在实例分割(COCO上为54.5 AP)、全景分割(COCO上为59.4 PQ)和语义分割(ADE20K上为60.8 mIoU)方面建立了迄今为止最好的结果。

      02      

Motivation

目标检测和图像分割是计算机视觉的基本任务。这两项任务都与定位图像中感兴趣的对象有关,但具有不同的focus级别。目标检测是定位感兴趣的对象并预测其边界框和类别标签,而图像分割则侧重于不同语义的像素级分组。此外,图像分割包括各种任务,包括实例分割、全景分割和关于不同语义的语义分割。

为这些任务开发的基于卷积的经典算法具有专门的结构,如用于目标检测的Faster RCNN,用于实例分割的Mask RCNN,以及用于语义分割的FCN,取得了显著的进步。虽然这些方法在概念上简单有效,但它们是为专门的任务定制的,并且缺乏处理其他任务的泛化能力。目前也催生出了一些能够联合处理多个任务的模型,到目前为止,HTC++仍然是COCO目标检测和实例分割排行榜上SOTA模型广泛使用的目标检测和实例分割方法。

随着进入基于Transformer的检测器的新时代,检测和分割任务会分化为不同的模型。DETR首先将Transformer引入到目标检测中。DETR是一种基于端到端查询的目标检测器,它采用一个具有二部匹配的集合预测目标。虽然DETR同时处理目标检测和全景分割任务,但其分割性能仍低于经典的分割模型。为了提高基于查询的模型的检测和分割性能,研究人员开发了用于目标检测、实例分割、全景分割和语义分割的专用模型。

在改进目标检测的努力中,DINO利用了DAB-DETR的动态锚定框公式和DN-DETR的查询去噪训练,进一步开发了对比去噪训练、混合查询选择,通过这两种方法来加速训练和提高检测性能。因此,DINO作为一个类似DETR的模型,首次在COCO目标检测排行榜上获得SOTA结果。

类似地,为了改进图像分割,MaskFormer和Mask2Former提出使用基于查询的Transformer架构来统一不同的图像分割任务,以执行mask分类。这些方法在多个分割任务上取得了显著的性能改进。然而,检测和分割模型仍然存在显著差异,这阻碍了检测和分割任务之间的任务和数据协作。例如,最先进的基于查询的实例分割模型Mask2Former仍然落后于基于HTC++和Swin-V2-G的经典模型。

解释这种性能差距的一个原因是,基于HTC的模型是在大规模检测数据集(即Objects365)上预训练的,但Mask2Former不能利用检测数据进行预训练。虽然作者相信检测和分割可以在一个统一的体系结构中相互帮助,但简单地使用DINO进行分割和使用Mask2Former进行检测的结果表明,它们不能很好地完成其他任务。此外,多任务训练甚至会影响原始任务的性能。

这自然会导致两个问题:1)为什么检测和分割任务在基于查询的模型中不能相互帮助?2)是否有可能为所有检测和分割任务开发一个统一的体系结构,以取代专门的任务

为了解决这些问题,作者提出了Mask-DINO,它通过添加一个与box预测分支并行的Mask预测分支来扩展DINO。受其他图像分割统一模型的启发,作者重用DINO中的内容查询嵌入,对所有分割任务执行mask分类。由于DINO缺乏用于mask预测的高分辨率特征映射,作者遵循MaskFormer和Mask2Former,构建了一个从主干和Transformer编码器特征获得的高分辨率像素嵌入映射(输入图像分辨率的1/4)。Mask分支通过简单地使用像素嵌入映射点乘每个内容查询嵌入来预测二进制mask。

虽然DINO不是为像素级对齐而设计的,但作者发现重用其内容查询嵌入进行Mask预测是非常有效的。这在很大程度上归因于Transformer解码器中基于交叉注意力的特征池化,允许查询嵌入仅聚合输入图像中的相关特征。除了Mask分支,作者还扩展了DINO中Box预测的三个关键组件,以提高分割性能。

首先,提出了统一的查询选择,将Mask查询初始化为锚(anchor),从编码器密集先验中选择mask。其次,提出了针对mask的统一去噪训练来加速分割训练。第三,使用混合的二部匹配来更精确地匹配box和mask。

Mask DINO在概念上很简单,很容易在DINO框架下实现。mask预测的扩展被设计为尽可能简单,以便Mask DINO可以重用DINO中的所有算法改进,以及可以从更大的检测数据集预训练的特征表示。作者还发现,在Mask2Former中,硬约束和密集的mask注意力是不必要的。

Mask DINO表示,简单地将Transformer编码器的多尺度特征concat起来,并使用可变形注意力(deformable attention),可以产生显著的分割效果。此外,由于本文使用稀疏可变形注意力,Mask DINO在计算上是高效的。

      03      

方法

Mask DINO是DINO的扩展。在内容查询嵌入之上,DINO有两个分支用于框预测和标签预测。这些框会动态更新,并用于引导每个Transformer解码器中的可变形注意力。Mask DINO为mask预测添加了另一个分支,并最小限度地扩展了检测中的几个关键组件,以适应分割任务。为了更好地理解 Mask DINO,作者首先简要回顾DINO,然后介绍Mask DINO。

3.1 Preliminaries: DINO

DINO是一种典型的类DETR模型,由主干网、Transformer编码器和Transformer解码器组成。框架如上图所示(蓝色阴影部分,无红线)。DINO将DETR中的每个位置查询表示为4D锚定框(anchor box),该锚定框通过每个解码器层动态更新。DINO使用具有可变形注意力的多尺度特征。

因此,更新后的锚定框也用于以稀疏和柔和的方式约束可变形注意力。DINO采用去噪训练,并进一步发展对比去噪以加速训练收敛。此外,DINO还提出了一种混合查询选择方案来初始化解码器中的位置查询,并提出了一种look-forward-twice的方法来改进box梯度反向传播。

3.2 Why a universal model has not replaced the specialized models?

基于Transformer的检测器和分割模型已经取得了显著的进展。例如,DINO和Mask2Former分别在COCO检测和全景分割方面取得了最好的结果。受这些进步的启发,作者试图简单地将这些专用模型扩展到其他任务,但发现其他任务的性能大大落后于原始任务。看起来,琐碎的多任务训练甚至会影响原始任务的性能。然而,在基于卷积的模型中,将检测和实例分割任务结合起来是有效且互利的。例如,HTC++在COCO实例分割中仍然排名第一。


在这项工作中,作者希望回答两个问题:1)
为什么检测和分割任务在基于Transformer的模型中不能相互帮助?2)是否有可能为所有检测和分割任务开发一个统一的结构,以取代专门的任务?作者将以DINO和Mask2Former为例来讨论上述问题。

Why cannot Mask2Former do detection well?

Mask2Former的Transformer解码器是为分割任务而设计的,由于三个原因不适合检测。

首先,它的查询遵循DETR中的设计,但无法利用Conditional DETR、Anchor DETR和DAB-DETR中研究的更好的位置先验。例如,它的内容查询在语义上与Transformer编码器的特征一致,而它的位置查询只是可学习的向量,就像在vanilla DETR中一样。如果去掉它的mask分支,它就变成了DETR的一个变体,其性能不如最近改进的DETR模型。

其次,Mask2Former在Transformer解码器中采用了masked attention(带注意力mask的多头注意力)。从前一层预测的注意力mask是密集的和硬约束的,这对于框预测既不有效也不灵活。

第三,Mask2Former无法逐层显式执行box 细化。此外,它在解码器中从粗到细的mask细化未能使用编码器的多尺度特征。

Why cannot DETR/DINO do segmentation well?

DETR在其架构中加入了一个分割头,以显示扩展到分割任务的潜力。然而,其性能有限。有三个原因。首先,它的分割头不是最优的。DETR允许每个查询嵌入具有最小特征图的点积来计算attention map,然后对其进行上采样以获得mask预测。这种设计缺乏查询和主干中较大的特征图之间的交互。

其次,DETR不能在每个解码器层中使用mask辅助损失。由于DETR的分割头很重,因此其结构对分割效率很低。因此,它只计算最后一个解码器层中的分割损失。第三,它不支持mask细化,因为mask位置预测无法从一层传递到下一层。

The motivation of Mask DINO

使用基于卷积的模型来统一检测和分割任务已经成为一种趋势,这不仅简化了模型设计,而且促进了检测和分割之间的相互合作。作者提出Mask DINO主要有三个动机。

首先,DINO在目标检测方面取得了SOTA结果。之前的工作,如Mask RCNN、HTC和DETR已经表明,可以扩展检测模型来进行分割,并帮助设计更好的分割模型。其次,检测比实例分割相对容易。因此,box预测可以引导人们关注更有意义的区域,并为mask预测提取更好的特征。第三,DINO和其他类似DETR的模型的新改进也有助于分割任务。

例如,Mask2Former采用可学习的解码器查询,无法利用编码器中选定的前K个特征中的位置信息来指导mask预测。上图(a)(b)(c)显示第0解码器层中的Mask2Former的输出与GT mask相差较远,而mask-DINO作为region proposal输出更好的mask。Mask2Former还采用专门的mask注意力来引导模型关注感兴趣的区域。

然而,mask注意力是一个硬约束,它会忽略所提供mask之外的特征,并可能忽略后续解码器层的重要信息。此外,可变形注意力还可以更好地替代其高效性,使注意力可以应用于多尺度特征,而无需太多计算开销。

上图(d)(e)显示了Mask2Former在其第一解码器层中的预测mask和Mask DINO的相应输出。Mask2Former的预测只覆盖了不到一半的GT mask,这意味着注意力无法在下一个解码器层看到整个实例。此外,如上图(f)(g)所示,box还可以将可变形注意力引导到背景的适当区域。

3.3 Our Method: Mask DINO

Mask DINO采用与DINO相同的检测架构设计,只需进行最小的修改。在Transformer解码器中,Mask DINO添加了一个用于分割的Mask分支,并扩展了DINO中用于分割任务的几个关键组件。如图1所示,蓝色阴影部分的框架是原始的DINO模型,分割的附加设计用红线标记。

Segmentation branch

按照其他用于图像分割的统一模型,作者对所有分割任务执行mask分类。DINO不是为像素级对齐而设计的,因为它的位置查询被表示为锚定框,而它的内容查询用于预测框偏移和类别。

为了进行mask分类,作者采用Mask2Former中的一个关键思想,构造一个从主干和Transformer编码器特征中获得的像素嵌入图。如图1所示,通过将来自主干的1/4分辨率特征映射与来自Transformer编码器的上采样1/8分辨率特征映射融合来获得像素嵌入映射。然后将解码器中的每个内容查询嵌入与像素嵌入映射进行点积,得到输出mask


其中是分割头,是一个卷积层,用于将通道维度映射到Transformer隐藏维度,是一个简单的插值函数,用于执行的2x上采样。这个分割分支在概念上很简单,很容易在DINO框架中实现。

Unified query selection for mask

作者在DINO中扩展了框查询选择方案来得到Mask DINO。在编码器中需要预测box和mask,并选择排名靠前的box和mask来初始化解码器查询。选定的box和mask可以作为解码器更好的初始化的锚。作者在Mask DINO中初始化内容和锚定框查询,而DINO只初始化锚定框查询。

Unified denoising for mask

在目标检测中,查询去噪对加速收敛和提高性能非常有效。作者还将此技术扩展到Mask DINO,将带噪的Ground Truth(GT)框及其标签提供给解码器,并训练模型来重建GT box和mask。

Hybrid matching

Mask DINO以松散耦合的方式预测具有两个平行头的box和mask。因此,两个头可以预测一对相互不一致的box和mask。为了解决这个问题,作者在二部匹配中同时考虑了box和mask,以鼓励获得更准确的匹配结果

Decoupled box prediction

对于全景分割任务,对“stuff”类别的框预测是不必要的,而且直观上效率很低。例如,许多“stuff”类别都是类似于“sky”的背景,其GT mask派生的框非常不规则,通常覆盖整个图像。因此,对这些类别的框预测可能会误导实例级(“thing”)检测和分割。

为了解决这个问题,作者删除了“stuff”类别的框损失和框匹配。更具体地说,框预测pipeline对于“stuff”保持不变,以定位有意义的区域并提取具有可变形注意力的特征。然而,不计算他们的预测损失。在本文的混合匹配中,“stuff”的框损失设置为“thing”类别的平均值。这种解耦设计可以加速训练,并为全景分割带来额外收益。


      04      

实验


上表展示了Mask DINO和目前主流方法的对比。


在上表中,作者将Mask DINO与其他实例分割和目标检测模型进行了比较。在相同的设置下,Mask DINO的性能优于Mask2Former和DINO等专用模型以及HTC等混合模型。

特别是,在12个epoch和50个epoch设置下,实例分割结果大大超过强baseline Mask2Former(+2.7 AP和+2.3 AP)。此外,Mask DINO显著提高了收敛速度,在不到一半的训练周期内优于Mask2Former(24个epoch的44.2 AP)。


在上表中,作者将Mask DINO与其他模型进行了比较。Mask DINO在12 epoch和50 epoch设置上分别比以前的所有最佳模型高出1.0 PQ和1.1 PQ。这表明Mask-DINO具有收敛速度快、性能优越的优点。


在上表,作者展示了使用ResNet-50主干进行语义分割的性能。作者对这些小数据集使用100个查询。在ADE20K和Cityscapes方面的表现均优于Mask2Former。


在上表中,作者将Mask DINO与SOTA模型在三种图像分割任务上进行了比较,以显示其可扩展性。作者在Objects365检测数据集上使用SwinL主干和预训练DINO。由于Mask-DINO是DINO的一个扩展,因此可以使用预训练好的DINO模型对Mask-DINO进行微调,以完成分割任务。在对相应任务微调Mask-DINO后,在实例(54.5 AP)、全景(59.4 PQ)和语义(60.8 mIoU)分割上取得了最好的结果。


上表显示了实例分割的查询选择结果,其中作者提供了单个模型中不同解码器层的性能。


在上表中,Mask DINO表明,在解码器中使用更多的特征尺度可以持续提高性能。


在DINO中,将解码器层数增加到9层会降低box的性能。在上表中,结果表明,增加解码器层的数量将有助于Mask DINO中的检测和分割。作者认为多任务训练变得更加复杂,需要更多的解码器来学习所需的映射函数。


为了验证Mask-DINO中的任务协作,作者使用相同的模型,但训练不同的任务,并报告了12个epoch和50个epoch的结果。如上表所示,仅训练一项任务会导致性能下降。虽然只有训练目标检测能在box预测的早期阶段更快地收敛,但最终的性能仍然不如同时训练两个任务。


在上表中,作者展示了解耦box预测对全景分割的有效性。


在上表中,制作者发现,仅使用box或mask进行二部匹配在掩码DINO中不是最优的。统一的匹配目标使优化更加一致。


在上表中,作者消融每个算法组件,并显示每个组件对最终性能的贡献。


      05      

总结


在本文中,作者提出了Mask DINO作为一个统一的基于Transformer的框架,用于目标检测和图像分割。从概念上讲,Mask DINO是DINO从检测到分割的自然扩展,只需对一些关键组件进行最小的修改。

Mask DINO优于以前的专用模型,在所有三个分割任务(实例、全景和语义)上都能获得最佳结果。此外,Mask-DINO表明,在基于查询的模型中,检测和分割可以相互帮助。此外,Mask DINO使语义和全景分割能够受益于在大规模检测数据集上预训练的更好的视觉表示。

参考资料

[1]https:///abs/2206.02777
[2]https://github.com/IDEACVR/MaskDINO

END





    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多