首个支持视觉和文本查询的开放集目标检测方法
NeurIPS2023
文章:https://arxiv.org/abs/2305.18980
代码:https://github.com/YifanXu74/MQ-Det
主框图
摘要
这篇文章提出了MQ-Det,一种高效的架构和预训练策略,它利用文本描述的开放集泛化能力和视觉示例的丰富描述粒度作为类别查询,即多模态查询目标检测。MQ-Det将视觉查询融入现有的仅基于语言查询的检测器。文章提出了一个即插即用的门控类可扩展感知器(GCP)模块,用于在冻结检测器上增强类别文本与类别相关的视觉信息。为了解决由于冻结检测器带来的学习惯性问题,提出了一种视觉条件的掩码语言预测策略。MQ-Det的简单而有效的架构和训练策略与大多数基于语言查询的目标检测器兼容,从而实现多种应用。实验结果表明,多模态查询大大提高了开放世界检测的性能。例如,MQ-Det在LVIS基准测试中显著提高了最先进的开放集检测器GLIP的性能,无需任何下游微调,相较于GLIP提高了7.8%的AP。在13个少样本下游任务中,MQ-Det平均提高了6.3%的AP,而GLIP仅需额外增加3%的调制时间。
引言
近年来,随着大规模视觉语言预训练模型的兴起,目标检测领域已经进入了一个全新的范式,即使用查询文本进行目标定位。受益于预训练模型在大规模数据上的泛化能力,这种文本查询范式在通向开放集目标检测的道路上取得了稳定的进步。
与传统的固定类别集合(通常由有限数量的数字表示)相比,文本查询可以表示更广泛的概念,但也存在描述粒度不足的内在限制。例如,类别同义词(如“bat”可以表示木头制作的球棒,也可以表示一种动物)会导致模糊的查询。与此同时,对于一些细粒度的类别(如图1所示的鱼类品种检测),仅使用有限的文本很难描述鱼类的具体模式。显然,解决文本查询描述粒度不足问题的一个直接方案是设计额外的文本描述,但这存在三个明显障碍:
1)很难全面描述视觉细节。为大量类别编写文本描述是一项繁琐的工作。
2)较长的查询文本会增加预训练模型的理解难度。
3)带来更多的计算开销。
最先进的文本查询检测器GLIP即使为一些类别设计了额外的文本描述,也只能在Aquarium数据集上将平均精度(AP)从17.7%提高到18.4%。与文本相比,图像可以提供更丰富的视觉线索。但同时,人工生成的文本具有更高的信息密度,因此具有更强的泛化能力。鉴于此,一个自然的想法是将文本和图像结合起来,构成多模态查询,兼具前者的广度和后者的丰富粒度。然而,如何获得这样的多模态查询检测模型仍面临挑战:
1)直接使用有限的视觉示例进行微调会导致灾难性遗忘。
2)大规模基础模型具有良好的泛化能力,但如果重新组织和从头训练,需要承担繁重的训练负担(例如,GLIP需要超过3000万的数据存储和近480个V100 GPU天的训练时间)。
本文填补了多模态查询目标检测(MQ-Det)的空白,提出了一种高效的插件式训练架构。MQ-Det的核心思想是融合描述丰富的视觉线索和具有很强泛化能力的文本表示,同时只需在现有基于语言查询的目标检测基础模型的基础上增加很小的训练成本。作者在Objects365数据集上对模型进行微调,仅占用GLIP预训练时间的3%,就能在LVIS基准测试中通过提供5个视觉示例和文本类别描述,将微调-free的性能显著提高7.8%。
为了实现这一目标,作者提出了一个即插即用的Gated Class-scalable Perceiver (GCP)模块,用于在文本编码器的每个高级阶段动态融合信息丰富的视觉线索和高度泛化的语言线索。另外,作者还设计了一种视觉条件的掩码语言预测策略,以确保在冻结检测模型的基础上进行足够的多模态融合。作者观察到,在将视觉线索以门控残差的方式加入时,学习过程往往会陷入初始优化点附近的局部最优,而无法引入足够的视觉知识。因此,作者随机mask文本tokens,让对应的视觉查询独立地进行目标预测。作者冻结初始的检测基础模型,只训练调制阶段的GCP模块,这非常高效。
综上,本文的贡献如下:
1)首个引入既具有广度又具有丰富粒度的多模态查询的工作,为开放集目标检测开辟了一条新路。
2)提出了一个即插即用的GCP模块,用于动态融合多模态查询中信息丰富的视觉线索和高度泛化的语言线索,并采用视觉条件的掩码语言预测策略,在冻结检测模型的基础上实现充分的多模态融合。
3)MQ-Det在finetune-free和few-shot场景下展现出强大的迁移能力,而所需的训练时间远少于之前的最先进基础检测器。具体来说,MQ-Det在具有挑战性的LVIS基准测试中,相比GLIP提高了7.8%的AP,在13个下游few-shot检测任务[23]中平均提高了6.3%的AP,而调制过程仅占用了GLIP所需训练时间的3%。
方法
Gated Class-scalable Perceiver(GCP)
在第2.2节中,作者提出了一种名为Gated Class-scalable Perceiver(GCP)的即插即用架构,用于将视觉查询融入预训练的语言查询目标检测模型。具体来说,GCP模块被设计插入到文本编码器的每个高级阶段之间,以动态融合来自视觉查询的类相关视觉信息。
GCP模块包含以下两个关键组件:
1)类相关的交叉注意力层:每个类别的文本查询令牌独立地与对应的视觉查询进行交叉注意力计算,以获取丰富的视觉细节。这种设计没有类别特定的参数,可以扩展到不同粒度的类别。2)门控层:根据视觉查询的质量,动态调整交叉注意力产生的增强视觉特征的权重。这通过一个MLP层实现,它将交叉注意力的结果和文本查询令牌作为输入,产生一个标量门控值。门控值初始化为0,这样在训练开始时,输出与预训练文本编码器匹配,有助于训练稳定性和最终性能。
通过在文本编码器中以残差方式加入GCP模块的输出,该模块可以无缝地融合视觉和语言查询。由于GCP没有类别特定的参数,它可以很容易地应用于各种预训练的语言查询目标检测模型,如GLIP和GroundingDINO。此外,GCP允许模型在推理时泛化到任何数量的类和视觉查询,增强了通用性。总的来说,这种即插即用的GCP架构为有效地将视觉查询融入语言查询目标检测模型提供了一个简单而有效的设计。它为多模态查询目标检测提供了坚实的基础。
Modulated pre-training
在第2.3节中,作者提出了一种调制预训练的策略,通过在大规模图像文本数据集上进行额外的训练,将视觉查询融入预训练的语言查询目标检测模型。具体来说,调制预训练包含以下步骤:
1)提取视觉查询:从包含视觉实例的大型数据集(D)中提取视觉查询。每个类别的查询数远多于最终使用的查询数(k)。
2)在冻结的检测器上训练GCP模块:只训练新加入的GCP模块,而冻结预训练的语言查询目标检测模型(如GLIP)。这大大减少了训练时间。
3)视觉条件的掩码语言预测:为了解决仅依赖文本特征导致的学习惯性问题,提出了一种视觉条件的掩码语言预测策略。随机mask文本tokens,让模型从视觉查询中提取信息进行预测。这确保了视觉查询在训练中的充分参与。
微调
在调制预训练之后,可以对模型进行微调,以适应下游任务。由于GCP模块是即插即用的,微调也可以只针对GCP模块进行,而保持预训练模型的其他部分冻结。这只需要很少的计算资源。通过这种调制预训练策略,模型可以接受文本和视觉查询作为输入,实现多模态目标检测,而只需在预训练模型上增加很小的训练成本。实验结果表明,这种策略在finetune-free和few-shot场景下都取得了显著的性能提升。它使模型能够利用语言查询的泛化能力和视觉查询的丰富粒度。