极市导读
本文介绍了北大研究团队提出的VL-SAM模型,这是一个完全无训练的开放式检测分割模型,通过结合视觉-语言模型和Segment-Anything模型,使用注意力图作为提示来解决开放式物体检测和分割任务,在长尾实例分割数据集和边缘案例物体检测数据集上表现出良好的性能。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
论文: Training-Free Open-Ended Object Detection and Segmentation via Attention as Prompts
论文地址:https://arxiv.org/abs/2410.05963
创新点
提出了一个无需训练框架 VL-SAM
,将广义物体识别模型(即视觉-语言模型)与广义物体定位模型(即Segment-Anything
模型)结合起来,以解决开放式物体检测和分割任务。设计了一个注意力图生成模块,通过头聚合和正则化的注意力流来聚合 VLM
中所有头和层的注意力图,从而生成高质量的注意力图。设计了提示生成模块迭代地从注意力图中迭代地抽样正负点,并将抽样的点发送给 SAM
以分割相应的物体。VL-SAM
在长尾实例分割数据集(LVIS
)和边缘案例物体检测数据集(CODA
)上也表现出了良好的性能,证明了VL-SAM
在现实世界应用中的有效性。VL-SAM
表现出良好的模型泛化能力,可以结合各种VLM
和SAM
。
内容概述
现有的基于深度学习的感知模型依赖于大量标注的训练数据来学习识别和定位物体。然而,训练数据无法覆盖现实世界场景中的所有类型的物体。当遇到分布外的物体时,现有的感知模型可能无法识别和定位物体,这可能导致严重的安全问题。
开放世界感知试图在动态和不可预测的环境中提供准确的结果,这些环境包含新颖的物体并涉及场景领域的转变。目前的开放世界感知方法大致可以分为两类:开放集和开放式。开放集方法通常使用预训练的CLIP
模型计算图像区域与类别名称之间的相似性,但在推理过程中需要预定义的物体类别作为CLIP
文本编码器的输入。开放式则利用大型视觉语言模型(VLMs
)强大的泛化能力来识别物体,但VLM
的定位能力不如特定的感知模型准确。
为此,论文提出了VL-SAM
,将现有的通用物体识别模型VLM
与通用物体定位模型SAM
结合起来解决开放式物体检测和分割任务。这是一个无训练的框架,通过注意力图作为中间提示连接这两个通用模型。
给定一个图像输入,首先使用VLM
描述场景并列出图像中所有可能的物体。然后,对于每个物体,利用带有头聚合和注意力流的注意力生成模块,从VLM
获得高质量的注意力图。最后,从注意力图生成点提示,并将其迭代发送给SAM
以获得位置预测。
VL-SAM
现有模型
SAM
模型
SAM
是一个基于提示的分割模型,由三个组件组成:图像编码器、掩码解码器和提示编码器。SAM
以图像和一组提示(包括点、框和掩码)作为输入,多尺度分割掩码。
基于自回归的
VLM
模型
基于自回归的VLM
的主流框架由四个部分组成:图像编码器、文本分词器、投影层和语言解码器。给定图像和文本作为输入,采用下一个符号预测范式。
注意力生成模块
VL-SAM
的主要思想是将物体的注意力图用作SAM
的分割提示,如何为一个物体生成高质量的注意力图至关重要。
头聚合
给定一幅图像输入,请求VLM
提供图像中所有可能的物体。在这个过程中,缓存来自VLM
的所有查询和键。
通过因果掩码和 SoftMax 归一化对查询和键进行相乘, 获得相似性矩阵 , 其中 是查询和键的长度, 是 Transformer 头的数量, 表示 Transformer 层的数量。
使用均值-最大注意力头权重从所有 Transformer 头中聚合信息, 即选择矩阵 在维度 上的最大相似性权重, 并在维度 上进行平均, 以获得权重 , 表明每个层中每个头的重要性:
逐点乘以权重 和相似性矩阵 并进行平均, 得到每层的注意力图:
注意力流
注意力流用于以进一步聚合所有层的注意力, 使用注意力展开方法来计算从层 到层 的注意力:
经过注意力展开后,只需要最后一层的注意力图。为了获得生成的token
的图像注意力图,从中选择相应的行和列。
由于VLM
使用因果掩码进行自回归生成,简单地采用注意力展开方法会导致注意力崩溃。
论文使用一个简单的正则化项来有效地缓解这个问题。对于每一列,假设未掩码的长度为 ,将该列中的每个值乘以 。通过这个正则化项, 左上角的注意力值将受到限制。
SAM
提示生成器
前面产生的注意力图中存在一些不稳定的假阳性峰值。为了过滤这些假阳性区域,首先使用阈值来过滤弱激活区域,并找到最大连通区域作为正区域。剩余区域作为负区域。之后,从正区域中抽取一个具有最大激活值的正点,并从负区域中抽取一个具有最弱激活值的负点,作为SAM
的点提示对。
迭代优化
SAM
解码器的分割结果可能包含粗糙的边缘和背景噪声,采用两种迭代策略进一步优化分割结果。
遵循 PerSAM
中的级联后优化,将使用正负对生成的初始分割掩码作为SAM
解码器的额外提示输入。使用第一种迭代策略中的分割掩码来过滤注意力图 。然后,从被过滤的注意力图中使用提示生成方法迭代生成正负对,并将它们发送到 SAM
解码器,最后使用NMS
汇总结果。
多尺度集成
由于 VLM 中图像编码器的低分辨率图像输入, VLM 可能无法识别小物体。为了解决这个问题,遵循 SPHINX 的方法,将图像( )从四个角落分割成四个子图像( ),并独立地将每个子图像发送给 VL-SAM 。最后, 将 VL-SAM 对四个子图像和整张图像的输出进行集成。
问题提示集成
VLM
的输出对输入提示非常敏感。为了获得对输入图像更全面的描述,要求VLM
生成十个用于场景描述的问题提示,然后,使用生成的问题提示来进行VL-SAM
的物体分割,并对所有问题提示的输出进行集成。
主要实验
公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货
点击阅读原文进入CV社区
收获更多技术干货