
通过注意力提示实现免训练的开放式目标检测与分割 原创 精华
摘要
现有的感知模型通过从大量标记数据中学习取得了巨大成功,但在开放世界场景中仍存在困难。为缓解这一问题,研究人员引入开放集感知任务,以检测或分割训练集中未见过的对象。然而,这些模型在推理时需要预定义的对象类别作为输入,而在现实场景中无法获取这些类别。最近,研究人员提出了一个新的、更实际的问题,即开放式目标检测,它在没有任何对象类别作为输入的情况下发现未见对象。在本文中,我们提出 VL-SAM,这是一个免训练框架,它将通用对象识别模型(即视觉语言模型)与通用对象定位模型(即分割一切模型)相结合,以解决开放式目标检测和分割任务。无需额外训练,我们使用注意力图作为提示连接这两个通用模型。具体而言,我们设计了一个注意力图生成模块,通过头部聚合和正则化的注意力流,在视觉语言模型的所有头部和层中聚合和传播注意力图,从而生成高质量的注意力图。然后,我们使用提示生成模块从注意力图中迭代采样正样本点和负样本点,并将采样点发送给分割一切模型(SAM)以分割相应的对象。在长尾实例分割数据集(LVIS)上的实验结果表明,我们的方法在目标检测任务上优于先前的开放式方法,并且可以提供额外的实例分割掩码。此外,VL-SAM 在极端情况目标检测数据集(CODA)上取得了良好的性能,证明了 VL-SAM 在实际应用中的有效性。而且,VL-SAM 表现出良好的模型泛化性,可以结合各种视觉语言模型和分割一切模型。
1、引言
深度学习在感知任务中取得了显著成功,自动驾驶就是一个典型的实际应用。现有的基于深度学习的感知模型依赖大量有标记的训练数据来学习识别和定位对象。然而,训练数据无法涵盖现实场景中的所有对象类型。当面对分布外的对象时,现有的感知模型可能无法识别和定位对象,这可能导致严重的安全问题。
许多开放世界感知方法被提出来解决这个问题。开放世界感知试图在动态和不可预测的环境中给出精确结果,这些环境包含新的对象并涉及场景领域的转移。当前的开放世界感知方法大致可分为两类:开放集和开放式。开放集方法通常使用预训练的 CLIP 模型计算图像区域与类别名称之间的相似性。因此,在推理过程中,它们需要预定义的对象类别作为 CLIP 文本编码器的输入。然而,在许多现实应用场景中,我们没有确切的预定义对象类别。例如,在自动驾驶中,自动驾驶汽车可能会遇到意外的对象,包括各种珍稀动物。此外,有些对象不能用简单的类别名称来表示,比如穿着动物服装的人,看起来像动物但实际上是人。一些方法使用通用障碍物检测来处理未知对象。然而,许多东西没有明显的三维形状,比如地面上的坑洼或颗粒。因此,开放集方法无法处理所有情况。相比之下,开放式方法更通用、更实用,因为它们可以自己预测对象类别和位置。
在另一项研究中,大型视觉语言模型(VLMs)显示出强大的通用对象识别能力,例如,它可以识别自动驾驶场景中极端情况下的罕见对象。然而,视觉语言模型的定位能力比特定的感知模型更不准确,有时会遗漏对象或给出错误的定位结果。另一方面,作为一个纯粹的视觉模型,分割一切模型(SAM)对来自许多不同领域的图像表现出良好的通用分割能力。然而,分割一切模型无法为分割出的对象提供类别,并且可能会产生许多不相关的分割结果。
在本文中,我们建议将现有的通用对象识别模型(即视觉语言模型)与通用对象定位模型(即分割一切模型)相结合,以解决开放式目标检测和分割任务。我们提出 VL-SAM,这是一个免训练框架,它使用注意力图作为中间提示连接两个通用模型,如图 1 所示。具体来说,我们利用视觉语言模型在描述整个驾驶场景时生成的注意力图来提示分割一切模型进行分割。首先,给定视觉语言模型生成的标记,我们使用该标记作为查询,从视觉语言模型的所有层和头中获取注意力图。然后,在注意力图生成模块中,我们引入头部聚合和注意力流机制,通过所有的头和层聚合和传播全局注意力图。此外,为了缓解在使用注意力流传播时因果掩码导致的注意力崩溃问题,我们采用一个正则化项来约束注意力流传播过程。之后,为了更好地引导分割一切模型使用注意力图进行分割,我们提出一个提示生成模块,通过分组和采样正样本点和负样本点作为分割一切模型的点提示。此外,为了减少遗漏对象的数量,我们进一步使用分割一切模型的分割结果从注意力图中迭代采样正样本点和负样本点,直到收敛。
图 1:VL-SAM 示意图。无需额外训练,我们使用注意力图作为中间提示连接视觉语言模型和分割一切模型。
这项工作的主要贡献总结如下:
•我们提出了 VL-SAM,这是一个免训练的开放式目标检测和分割框架,它使用注意力图作为提示连接通用对象识别模型和通用对象定位模型。
•我们引入了头部聚合和正则化的注意力流机制,通过因果掩码在所有头和层中聚合和传播注意力图。
•我们提出了一种带有注意力图正样本点和负样本点采样策略的迭代优化流程。
•VL-SAM 在长尾实例分割数据集 LVIS 上优于开放式方法 GenerateU,并且与现有的开放集方法相比取得了有竞争力的结果。在自动驾驶应用中,VL-SAM 在 CODA 数据集上实现了良好的极端情况目标检测性能。
2、相关工作
2.1 视觉语言模型
大型语言模型(LLMs),包括 GPT-3、GLM 和 LLaMA,已经展示出类似人类的对话和推理能力。然而,大型语言模型处理和理解视觉数据的能力有限,限制了其在更多现实场景中的应用。为了克服这一问题,前沿的视觉语言模型(VLM)应运而生,为应用开辟了新的前景。最近,BLIP-2 提出了 Q-Former,通过三种对齐预训练损失连接和融合图像和文本嵌入。LLaMA-Adapter、LLaVA 和 MiniGPT 引入了适配器或投影层来对齐图像和文本的嵌入空间。CogVLM 提出了视觉专家模块,将图像特征转换为与不同 Transformer 头中的文本特征对齐。SPHINX 利用多种混合技术处理多个视觉任务。此外,CogAgent 和 LLaVA-Phi 将视觉语言模型视为一个智能体或助手来完成各种任务。现有的视觉语言模型,特别是 GPT-4V,在理解和推理新的或罕见的情况方面表现出很强的泛化能力,例如,它可以处理自动驾驶中的极端情况。然而,视觉语言模型的定位能力比特定的感知模型(如分割一切模型)弱。
在本文中,我们为视觉语言模型配备通用分割模型(即分割一切模型),以解决视觉语言模型在开放式目标检测和分割中的定位限制问题。我们通过使用注意力图作为提示连接两个模型,无需额外训练。
2.2 开放世界目标检测和分割
随着 CLIP 模型的出现,开放世界分类、目标检测和实例分割同时取得了很大进展。开放世界方法试图在推理过程中发现和识别训练集中未见过的对象。目前的开放世界方法大致可分为两类:开放集和开放式。开放集方法在推理时需要重新定义对象类别(包括训练集中见过的和未见过的对象)作为输入。相比之下,开放式方法可以同时定位见过和未见过的对象并生成它们的名称,就像当前的视觉语言模型所做的那样。在现实应用中,感知模型可能不知道确切的类别。例如,在自动驾驶中,自动驾驶汽车经常在路上遇到未知对象,包括翻车和各种形状的工程车辆。因此,开放式问题更通用、更实际。
•开放集方法:凭借 CLIP 强大的文本 - 图像嵌入匹配能力,当前的开放集目标检测方法主要使用提议网络获取前景对象的边界框和嵌入,然后使用 CLIP 作为开放集分类模块来预测它们的类别。最近,GLIP 提议使用短语定位来预训练开放世界目标检测器。GroundingDINO 提出跨模态融合,将文本信息引入图像编码器进行对象定位。SWORD 设计了一种新颖的对比方法来学习实例分割中前景和背景之间的差异。YOLO-World 引入了一种 “提示 - 然后检测” 范式用于实时开放世界目标检测。然而,上述方法需要预定义的对象类别作为文本编码器的输入。
•开放式方法:GenerateU 首先提出了开放式问题。同时,DetCLIPv3 引入了类似的开放式概念。它们提出了一个带有语言模型的生成框架,同时生成对象类别和边界框。为了实现更好的泛化能力,它们构建了一个包含边界框和字幕对的大型数据集,并在构建的数据集上对整个网络进行微调。
相比之下,我们提出了一个免训练的开放式框架 VL-SAM,它结合了通用识别和分割模型。VL-SAM 可以使用通用识别模型生成对象类别,然后使用通用分割模型定位对象。
图 2:VL-SAM 框架概述。我们首先使用视觉语言模型描述输入图像并生成所有可能的对象名称。然后,对于每个对象名称,我们使用注意力图生成模块获得相应的注意力图。最后,我们从注意力图中采样点提示并将它们发送到分割一切模型,以预测检测和分割结果。
3、方法
如图 2 所示,我们给出了所提出框架的概述。我们分别使用视觉语言模型和分割一切模型作为通用对象识别模型和对象定位模型。给定图像输入,我们首先使用视觉语言模型描述场景并列出图像中所有可能的对象。然后,对于每个对象,我们使用带有头部聚合和注意力流的注意力生成模块从视觉语言模型中获得高质量的注意力图。最后,我们从注意力图生成点提示,并迭代地将它们发送到分割一切模型以获得位置预测。
3.1 预备知识
•分割一切模型:分割一切模型是一种基于提示的分割模型,具有出色的数据生成能力。它由三个组件组成:图像编码器、掩码解码器和提示编码器。分割一切模型将图像和一组提示(包括点、框和掩码)作为输入。为了使用提示分割对象,分割一切模型首先使用图像编码器提取图像特征。同时,这组提示被发送到提示编码器转换为提示令牌。然后,图像特征、提示令牌和掩码令牌在掩码解码器中通过双向 Transformer 进行交互。最后,掩码令牌通过与 MaskDINO 类似的方式,与图像特征相乘转换为多尺度分割掩码。
•基于自回归的视觉语言模型:当前基于自回归的视觉语言模型在各种视觉语言任务中取得了惊人的性能。当前视觉语言模型的主流框架包括四个部分,即图像编码器、文本标记器、投影层和语言解码器。给定图像和文本作为输入,视觉语言模型分别使用图像编码器和文本标记器提取图像令牌和文本令牌。然后,通过投影层将图像令牌与文本令牌对齐。之后,将来自两个模态的令牌连接起来并发送到语言解码器以生成文本输出。语言解码器采用下一个令牌预测范式,即当前生成令牌x_{t}的概率取决于所有先前的令牌(x_{1}, x_{2}, ..., x_{t-1})。
图 3:头部聚合。我们使用注意力头权重聚合来自所有注意力头的信息。
图 4:注意力流。我们使用注意力流从第一层传播注意力到最后一层
3.2 注意力图生成
VL-SAM 的主要思想是使用对象的注意力图作为分割一切模型进行分割的提示。因此,如何为对象生成高质量的注意力图至关重要。为了实现这一点,我们引入注意力流,在视觉语言模型的所有 Transformer 头和层中聚合和传播注意力图。
具体来说,给定图像输入,我们让视觉语言模型给出图像中所有可能的对象。在此过程中,我们缓存来自视觉语言模型的所有查询和键。然后,我们将查询和键与因果掩码相乘,并进行 SoftMax 归一化,以获得相似度矩阵S \in N ×N ×H ×L,其中N是查询和键的长度,H是 Transformer 头的数量,L表示 Transformer 层的数量。S_{i, j}^{h, l}表示头h、层l中查询i和键j之间的相似度。之后,我们使用平均最大注意力头权重聚合来自所有 Transformer 头的信息,如图 3 所示。具体而言,我们选择矩阵S在维度j上的最大相似度权重,并在维度i上求平均,以获得注意力头权重W \in 1 ×1 ×H ×L:
W = Mean(Max(S, dim=1), dim=0)
图 5:注意力崩溃示意图。对于每一列,从左到右,我们展示了图像输入、注意力流(崩溃)、正则化注意力流,以及视觉语言模型生成的答案。
(问题:“列出路上的所有物体。”
答案:在路上,有车辆(一辆红色卡车和一辆蓝色公共汽车)、路标、人行横道、白色障碍物,还有一些从图像中无法清晰识别的较小物体。
问题:“列出路上的所有物体。”
答案:在路上,有车辆(包括一辆白色 SUV 在前景)、交通信号灯、道路标记、人行横道,以及一个装满沥青修补材料的坑洼。
问题:“列出路上的所有物体。”
答案:路上的物体包括一辆白色公共汽车、一辆黄色卡车、交通锥,以及一个穿着迷彩服的人。)
显然,注意力头权重表示每个头在每一层中的重要性。然后,我们将注意力头权重与相似度矩阵S逐元素相乘,并对所有头求平均,如下所示:
S' = Mean(S \odot W, dim=2)
在聚合了来自所有头的所有信息之后,我们使用注意力流进一步聚合来自所有层的注意力,如图 4 所示。具体来说,我们使用注意力展开方法计算从层l-1到层l的注意力,如下所示:
其中I是单位矩阵。在注意力展开之后,我们只需要最后一层的注意力图。为了获得生成令牌的图像注意力图,我们从\bar{S}^{L}中选择相应的行和列。
然而,由于视觉语言模型在自回归生成中使用因果掩码,简单地采用注意力展开方法会导致注意力崩溃,如图 5 所示。幸运的是,我们发现了一个简单的正则化项,可以有效地缓解这个问题。具体来说,对于每一列,假设未掩码的长度为L_{0},我们将该列中的每个值乘以1-(L_{0}-1) / L。有了这个正则化项,左上角的注意力值将受到约束。
3.3 分割一切模型提示生成
在 3.2 节中生成的注意力图存在一些不稳定的误报峰值。为了过滤这些误报区域,我们首先使用阈值过滤弱激活区域,并找到最大连通区域作为正区域。其余区域作为负区域。之后,我们从正区域中采样具有最大激活值的正样本点,从负区域中采样具有最弱激活值的负样本点。正样本点和负样本点作为分割一切模型的点提示对。
3.4 迭代优化
分割一切模型解码器的分割结果可能包含粗糙的边缘和背景噪声。我们采用两种迭代策略进一步优化分割结果。在第一种迭代策略中,我们遵循 PerSAM 中的级联后优化方法,将使用正样本点和负样本点对生成的初始分割掩码作为分割一切模型解码器的额外提示输入。在第二种迭代策略中,我们使用第一种迭代策略中的分割掩码对注意力图\bar{S}'进行掩码操作。然后,我们从掩码后的注意力图中使用 3.3 节中的提示生成方法迭代生成正样本点和负样本点对,并将它们发送到分割一切模型解码器。最后,我们使用非极大值抑制(NMS)聚合结果。
3.5 多尺度集成
由于视觉语言模型中图像编码器的图像输入分辨率较低,视觉语言模型可能无法识别小物体。例如,它可能会生成这样的答案:“在路上,有车辆(一辆红色卡车和一辆蓝色公共汽车)、路标、人行横道、白色障碍物,还有一些从图像中无法清晰识别的较小物体”。为了缓解这个问题,我们仿照 SPHINX 的做法,将一幅大小为(H×W)的图像从四个角分割成四个大小为(H/2×W/2)的子图像 ,并将每个子图像独立输入到 VL-SAM 中。最后,我们将 VL-SAM 对四个子图像和原始整幅图像的输出结果进行集成。
3.6 问题提示集成
视觉语言模型的输出对输入提示很敏感。为了更全面地描述输入图像,我们让视觉语言模型用 “如果我们想让你列出给定图像中所有可能的物体,我们应该问什么问题?请给出你认为合适的 10 个问题” 这句话来生成 10 个用于场景描述的问题提示。然后,我们使用生成的问题提示让 VL-SAM 分割物体,并对所有问题提示的输出进行集成。
4、实验
4.1 实现细节
我们选择带有 EVA2-CLIP-E 的 CogVLM-17B 和 Vicuna-7B-v1.5 作为视觉语言模型。CogVLM-17B 将大小为 490×490 的图像划分为 35×35 的图像块。我们将 CogVLM-17B 的温度设置为 0.8,核采样的 top-p 值设置为 0.1。对于生成的定位模型,我们使用配备 ViT-Huge 的分割一切模型。
我们以无需训练的零样本方式在所有数据集上评估 VL-SAM。为了从视觉语言模型生成的句子中获取物体类别,我们仿照 Tag2Text 的做法,从给定句子中解析标签。为了在具有预定义物体类别名称的数据集上评估开放式性能,我们仿照 GenerateU 的做法,采用 CLIP 文本编码器,并将生成的物体类别映射到数据集中的预定义类别进行评估。具体来说,我们使用文本提示 “一个 {物体类别}” 作为 CLIP 文本编码器的输入,计算生成的物体类别与预定义类别之间的相似度,以进行映射。所有模型的推理都在一台配备 80G A800 的机器上进行。
4.2 主要结果
•LVIS 数据集:我们在 LVIS 数据集上评估 VL-SAM,该数据集的类别分布呈长尾状,包含超过 1000 个物体类别的注释。仿照之前的研究,我们主要在 LVIS 小型验证集上评估 VL-SAM,并报告稀有物体的固定平均精度(AP)。
如表 1 所示,我们列出了三类感知方法的性能,即封闭集、开放集和开放式。开放集和开放式的区别在于,开放集需要确切的物体类别先验知识作为输入,而开放式可以在推理过程中以零样本的方式生成这些类别。在实际场景中,我们通常不知道场景中预定义的物体类别。因此,开放式方法更通用、更实用。可以看出,VL-SAM 在稀有物体平均精度(AP)上比 GenerateU 高出 3.4。值得注意的是,VL-SAM 是一个无需训练的框架,可以同时获得边界框和分割掩码。相比之下,GenerateU 需要在视觉基因组(VG)和 GRIT 数据集上对图像编码器和语言模型进行微调,这需要大量的训练成本,并且只能预测边界框。此外,VL-SAM 与开放集检测方法和封闭集分割方法相比,分别在检测和分割性能上具有竞争力。
•CODA 数据集:为了进一步证明所提方法在实际应用中的有效性,我们在表 2 中展示了 VL-SAM 在自动驾驶极端情况目标检测数据集 CODA 上的结果。具体来说,我们可以看到,区域提议网络(RPN)的平均召回率(mAR)仅为 10.6,这表明当前依赖物体提议的开放集检测器在处理极端情况时存在困难。对于更新的开放集检测器,它们使用 CLIP 作为物体类别预测器,获得了更高的平均召回率。对于开放式方法,LLaVA-Grounding 将视觉语言模型和定位模型集成到一个模型中,比开放集方法表现更好。然而,将视觉语言模型和定位模型集成到一个模型中需要对两个模型进行联合训练,这会增加额外的训练成本。相比之下,VL-SAM 是一个无需训练的框架,平均召回率从 LLaVA-Grounding 的 18.4 大幅提升到 40.1。
此外,我们评估了当前分割一切模型的性能上限。我们使用真实边界框作为分割一切模型解码器的框提示来分割物体。可以观察到,在这种设置下,分割一切模型的平均召回率达到 54.1,50 次召回率(AR_{50})达到 94.1,因为分割一切模型在分割任务上存在局限性,它有时会对物体进行过度或欠分割,无法获得完美的分割结果。尽管如此,VL-SAM 达到了这个性能上限的 74.1% 的平均召回率,证明了所提框架的有效性。总体而言,VL-SAM 在 CODA 数据集上取得了良好的性能。
4.3 消融实验
•主要组件:如表 3 所示,我们在 CODA 数据集上进行消融实验,分析 VL-SAM 每个组件的有效性。对于基线朴素注意力方法,我们使用最后一层的注意力图并对所有注意力头求平均。可以看到,即使使用多尺度和问题集成技术,朴素注意力基线的结果也不理想。使用我们提出的注意力生成模块,我们将基线的平均召回率提高了 7.9。通过提示生成添加点对使平均召回率提高了 2.2。此外,使用迭代优化模块优化分割图,将检测性能从 12.3 的平均召回率提升到 14.1。此外,多尺度图像输入和问题提示集成分别使平均召回率提高了 13.2 和 12.8。尽管多尺度和问题提示集成显著提高了性能,但如果没有我们提出的组件,这两种集成技术并不有效。总之,结果显示了 VL-SAM 中每个组件的有效性。
•注意力生成:为了从视觉语言模型中获得高质量的注意力图,我们引入注意力头权重来融合 Transformer 头,并为注意力流添加正则化项。如表 4 所示,由于因果掩码导致的注意力崩溃,简单使用注意力流几乎无法让分割一切模型识别物体(见图 5)。有了正则化项,注意力流机制比朴素注意力方法表现更优,平均召回率提高了 6.3。此外,融合注意力头权重使平均召回率提高了 1.6。
•模型泛化性:为了证明 VL-SAM 框架的模型泛化能力,我们采用另外两种流行的视觉语言模型 MiniGPT-4 和 LLaVA 来替代 CogVLM,并使用 MobileSAM 替代分割一切模型。在表 5 中,我们展示了在 VL-SAM 框架中使用这些模型的结果。实验结果表明,用 MiniGPT-4 或 LLaVA 替代 CogVLM 可能会降低极端情况下的物体定位性能,因为 CogVLM 在多模态对话和推理能力上比 MiniGPT-4 和 LLaVA 更强。这表明我们的 VL-SAM 框架可以从更强大的视觉语言模型中受益。此外,用更轻量级但精度较低的 MobileSAM 替代分割一切模型也会导致性能下降。尽管如此,所有这些结果都优于表 2 中的先前方法(18.4 的平均召回率)。这证明了我们的框架可以推广到多种视觉语言模型和分割模型。
5、局限性
由于我们结合视觉语言模型和分割一切模型来解决开放式目标检测和分割任务,VL-SAM 继承了视觉语言模型和分割一切模型的缺陷。第一个缺陷是视觉语言模型中的幻觉问题。VL-SAM 也存在幻觉现象,会生成错误的物体令牌和注意力图。第二个缺陷是 VL-SAM 的推理速度较慢。然而,这些缺陷在未来是可以解决的。例如,有许多更高效的分割一切模型变体,包括 EfficientSAM 和 MobileSAM。我们的框架可以从这些新模型中受益,因为我们可以轻松地用这些更高效、高精度的模型替代 VL-SAM 中的 CogVLM 和分割一切模型。
6、结论
在本文中,我们介绍了 VL-SAM,这是一个通过注意力图级联视觉语言模型和分割一切模型的框架,用于解决开放式目标检测和分割任务。无需额外训练,我们将视觉语言模型生成的注意力图作为分割一切模型分割物体的提示。我们引入注意力流机制来聚合高质量的注意力图。此外,我们提出了一种带有正样本点和负样本点对采样策略的迭代优化流程,以获得更准确的分割掩码。在长尾通用实例分割数据集 LVIS 上的实验结果表明,VL-SAM 击败了开放式方法 GenerateU,并且与封闭集和开放集方法相比取得了有竞争力的性能。此外,VL-SAM 在极端情况目标检测数据集 CODA 上也取得了良好的结果。
本文转载自公众号AIRoobt ,作者:Zhiwei Lin等
原文链接:https://mp.weixin.qq.com/s/tnO7DWGoZi_JQq3h04yVUw
