引言: “简单”描述的复杂性

在计算机视觉领域,识别一个物体——比如一辆“汽车”——是一个在很大程度上已经解决的问题。我们拥有强大的模型,可以在拥挤的街道上高精度地发现汽车。但是,如果我们想更进一步呢?如果我们需要知道这辆车是生锈的湿润的金属质感的还是复古的呢?

这就是属性检测 (Attribute Detection) 的挑战。与处理具体名词的物体分类不同,属性检测处理的是形容词。这些属性塑造了我们感知世界的方式,但对于 AI 模型来说,掌握它们却极其困难。

为什么?因为属性本质上是模糊且具有组合性的。

看看下面这张图。如果要求描述左边的山羊,一位标注者可能会说它是“棕色”的,而另一位可能会坚持认为它是某种特定的“红褐色”。有人可能会关注“弯曲的角”,而另一个人则关注“斑点图案”。

图 1. 属性标注示例。

如图 1 所示,人工标注通常是稀疏的、不完整的且主观的。在这样的数据上训练模型往往会导致偏差。例如,如果一个模型只在“红苹果”上训练过,它可能很难识别出“红色的车”。

此外,标准的方法——在固定的属性列表上训练庞大的模型——限制了可扩展性。如果你想让你的机器人识别“布满灰尘的”表面,但“布满灰尘”不在训练集中,那你就无能为力了。

这引出了 COMCA (Compositional Caching,组合缓存) , 这是由特伦托大学和思科研究中心的研究人员提出的一种新颖方法。COMCA 是一种免训练 (training-free) 的开放词汇属性检测方法。它不需要耗费人力的标注或昂贵的重新训练。相反,它利用视觉语言模型 (VLMs) 的能力和一种巧妙的“缓存”机制来理解物体及其属性的复杂、组合的本质。

在这篇文章中,我们将解构 COMCA 的工作原理,解释它为何优于现有的基线方法,以及它如何解决野外环境下的属性检测问题。

背景: 视觉语言模型与缓存

在深入了解 COMCA 的机制之前,我们需要建立两个基本概念: 视觉语言模型 (VLMs) 和基于缓存的适应。

视觉语言模型 (VLMs)

CLIP (Contrastive Language-Image Pre-training) 这样的模型已经彻底改变了计算机视觉。CLIP 包含两个编码器: 一个用于文本 (\(f_t\)),一个用于图像 (\(f_v\))。它的训练目标是将图像及其对应的描述映射到高维向量空间中的同一点。

从数学上讲,图像 \(x\) 和类名 \(c\) 之间的相似度是通过余弦相似度计算的:

公式 1

如果向量指向相同的方向,得分就会很高。这使得 CLIP 能够执行零样本检测 (zero-shot detection) : 只要你能用文本描述它们,它就能识别训练期间未明确见过的类别。

基于缓存的适应 (Cache-based Adaptation)

虽然 CLIP 很强大,但它是一个通才。为了在不重新训练整个模型的情况下使其适应特定任务,研究人员使用了缓存 (caching) 技术。

把缓存想象成一张“小抄”或“备忘单”。如果你想对狗的品种进行分类,你可以检索几百张不同品种的参考图像,并将它们的特征向量存储在一个键值缓存中 (键是图像特征,值是标签) 。

当一个新的测试图像到来时,模型不仅将其与文本描述“金毛寻回犬”进行比较,还与缓存中存储的参考图像的视觉特征进行比较。这个优化过程可以用数学公式表示为:

公式 2

在这里,模型计算输入图像 \(x\) 与缓存图像 \(x_c\) 之间的相似度。这有助于模型将输入与已知的视觉示例对齐。

属性检测中标准缓存的问题

标准缓存对物体 (名词) 效果很好。然而,对于属性 (形容词) ,它却失效了。

如果你为属性“圆形”建立一个缓存,你可能会用橙子、篮球和硬币来填充它。如果你随后给模型输入一张“圆桌子”的图像,其视觉特征可能无法与橙子或硬币很好地对齐,尽管它们都共享“圆形”这一属性。

属性是组合性 (compositional) 的。它们不存在于真空中;它们修饰物体。此外,单张图像包含许多属性。一辆“红色的车”同时也可能是“闪亮的”、“金属质感的”、“不透明的”和“快速的”。标准缓存给图像分配单一的“硬”标签 (例如,这张图 = “红色”) ,忽略了所有其他共存的属性。

COMCA 通过引入组合缓存 (Compositional Caching) 解决了这个问题。

核心方法: COMCA

COMCA 的设计理念建立在两个原则之上:

  1. 上下文至关重要: 并非所有属性都适用于所有物体 (你可以有“成熟的猕猴桃”,但不能有“成熟的汽车”) 。
  2. 多重性: 每个物体同时拥有多个属性。

COMCA 的架构优雅且分阶段进行。它仅基于你感兴趣的属性和物体列表,动态地创建一个专门的缓存。

图 2. COMCA 缓存构建概览。

如图 2 所示,该流程包括估计兼容性、构建缓存和细化标签。让我们一步步拆解。

第一步: 属性-物体兼容性

为了构建一个有用的缓存,我们首先需要知道哪些属性-物体对在现实世界中是真实存在的。盲目地将每个属性与每个物体配对会产生噪声 (例如,“透明的狗”) 。

COMCA 利用两个知识来源来估计这种兼容性: 网络规模数据库大型语言模型 (LLMs)

数据库先验

系统查询一个大型图像-文本数据库 (如 CC12M) 。它统计属性 \(a\) 和物体 \(o\) 在标题中共同出现的频率。

公式 5

这给出了基于现实世界数据的原始频率计数。

LLM 先验

数据库可能存在偏差。标题经常提到“湿狗”,但很少提到“干狗” (因为默认状态是干的) 。为了解决这个问题,COMCA 查询 LLM (如 GPT-3.5) 来估计属性修饰物体的语义可能性。

公式 8

组合分数

这两个分数结合起来形成一个鲁棒的概率分布 \(\Phi_O(a)\)。这告诉系统: “如果我要找属性成熟 (ripe) ,我应该优先考虑水果的图像,而不是汽车的。”

公式 9

第二步: 可扩展的缓存构建

一旦系统知道了哪些物体最能代表特定属性,它就会填充缓存。它不只是搜索“圆形”;它会根据第一步得出的兼容性分数,搜索“圆桌子”、“圆形橙子”和“圆形时钟”。

系统根据分布 \(\tilde{\Phi}_O(a)\) 为每个属性采样 \(K\) 个物体。然后,它使用检索函数 (T2I) 从数据库中提取相关图像。

公式 5 (采样)

生成的缓存是一组图像集合,它们在多样化且语义相关的上下文中视觉化地呈现了该属性。

公式 6 (缓存集)

第三步: 软标签 (关键“秘方”)

这是 COMCA 最关键的创新。

在传统方法中,如果一张“红色的车”的图像被检索到“红色”类别下,它会被分配一个 [1, 0, 0…] 的标签,意味着“这是红色的,其他都不是”。但那张图也是金属质感的、闪亮的和不透明的。

COMCA 应用了软标签 (Soft Labeling) 。 它承认缓存中的每张图像都可能表现出多个目标属性。

首先,系统计算缓存图像 \(x_c\) 与每一个目标属性 \(a\) 的文本嵌入之间的相似度。

公式 10

这生成了一个原始相似度分数。然而,原始的 VLM 分数可能充满噪声或聚集在一个很小的范围内。为了使这些分数有用,COMCA 使用整个缓存的统计数据 (均值 \(\mu_C\) 和标准差 \(\sigma_C\)) 对它们进行归一化。

公式 11

这为缓存中的每一张图像创建了一个关于所有属性的概率分布。现在,缓存中的“红色的车”对“红色”分数的贡献很大,但在推理过程中,它也会 (适当地) 对“金属质感”和“闪亮”的分数做出贡献。

第四步: 推理

在推理阶段,当一张新图像到来时,COMCA 计算两件事:

  1. 标准零样本分数: 标准的 CLIP 相似度。
  2. 优化后的缓存分数: 输入图像与缓存图像之间的相似度,并由我们要计算的软标签进行加权。

基于缓存的分数定义为:

公式 12

最后,这两个部分通过一个超参数 \(\lambda\) 混合,生成最终预测:

公式 13

结果是一个免训练的预测,它受益于存储在缓存中的特定视觉证据,并由软标签进行了适当的加权。

实验与结果

研究人员在两个主要基准上评估了 COMCA: OVAD (Open-Vocabulary Attribute Detection,开放词汇属性检测) 和 VAW (Visual Attributes in the Wild,野外视觉属性) 。

定量性能

结果显示,COMCA 显著优于现有的免训练方法,甚至可以与需要大量训练数据的方法相媲美。

让我们看看与最先进方法的对比。

表 6. 与最先进技术的比较。

在表 6 (主要结果的扩展版本) 中,我们可以看到 COMCA (绿色高亮) 在 OVAD 上达到了 27.4 mAP , 在 VAW 上达到了 58.1 mAP

  • 它击败了基于图像 (Image-based) 的基线 (没有组合逻辑的简单检索) 。
  • 它击败了 TIP-AdapterSuS-X , 这些是为物体分类设计的流行缓存方法。
  • 值得注意的是,在 OVAD 基准测试中,它甚至优于 LOWA , 这是一种在 133 万个样本上训练过的基于训练的方法。

我们还看到了 COMCA 在不同主干网络上的通用性。无论是使用 CLIP (RN50, ViT-B/32, ViT-L/14) 还是其他模型如 CoCa 或 BLIP,COMCA 都一致地提升了基线性能。

表 7. 不同主干网络下的给定框结果。

如上所示,将 COMCA 应用于 CLIP ViT-L/14 主干网络之上,在 OVAD 上性能提升了 +6.5 mAP , 在 VAW 上提升了 +10.0 mAP 。 这证明了该方法与模型无关;它可以提升你插入的任何 VLM 的性能。

“免训练”优势

COMCA 最强有力的论据之一是其对域偏移 (domain shifts) 的鲁棒性。基于训练的模型往往会过度拟合其训练数据的偏差。如果你在 COCO 属性上训练,模型就会学习“COCO 风格”的属性。

图 4 完美地展示了这种跨数据集的泛化能力。

图 4. 跨数据集结果。

  • 左图 (OVAD): 黄色条代表在其他数据集 (如 VAW 或 COCO) 上训练的模型试图在 OVAD 上进行预测。它们的性能显著下降。绿色条 (COMCA) 保持坚挺。
  • 右图 (VAW): 同样,在 OVAD 上训练的模型在 VAW 上的表现很差 (红色条) ,而 COMCA (绿色条) 表现出色。

因为 COMCA 是基于目标属性从网络/数据库动态构建缓存的,所以它不会受到固定训练集中固有的“可见与不可见”偏差的影响。

定性分析

数字很好,但它在图像上真的有效吗?

图 9 提供了 OVAD (一种基于训练的监督模型) 、标准 CLIP 和 COMCA 之间的定性比较。

图 9. 额外的定性结果。

  • 笔记本电脑 (左) : OVAD 认为材质是“纸/纸板” (错误) 。CLIP 认为是“光滑的”。COMCA 正确识别出“垂直/直立”和“双色”。
  • 滑板 (右) : 注意那个滑板。标准 CLIP 很难识别特定的纹理。COMCA 更准确地识别了相关属性,因为它的缓存中包含了共享这些特定属性的视觉相似物体 (滑板) 。

消融实验: 验证组件

为了确认 COMCA 的每个部分都是必要的,作者进行了消融实验。

1. 软标签重要吗? 是的。图 6 展示了软标签 (红/绿条) 与独热标签 (黄条) 的影响。在所有先验类型 (LLM vs 数据库) 中,软标签都带来了巨大的提升。

图 6. 不同缓存先验下的软标签。

2. 我们需要多少样本 (Shots)? 图 5 显示了随着增加 \(K\) (每个属性的样本数) 时性能的变化。在 OVAD (紫线) 上,性能随样本数增加稳步上升直到 16 个样本。在 VAW (红线) 上,即使样本很少性能也很稳定,因为 VAW 拥有如此多的属性,使得缓存自然地变得非常密集和多样化。

图 5. 每个属性的样本数量消融实验。

结论与启示

COMCA 代表了在无需承担高昂训练成本的情况下,使计算机视觉系统更加细粒度和具有描述性的重要一步。

通过认识到属性是组合性的——它们依赖于它们所修饰的物体,很少孤立出现——COMCA 为视觉语言模型构建了一个更聪明的“记忆”。

  1. 它利用兼容性确保缓存包含语义上合理的图像。
  2. 它利用软标签确保充分利用这些图像丰富的多属性本质。

其影响是广泛的。对于机器人技术、图像检索和自动字幕生成,COMCA 提供了一种在开放世界环境中检测细微属性 (如“成熟的”、“破损的”或“复古的”) 的方法,而不受固定训练数据集的限制。

对于学生和研究人员来说,COMCA 是关于如何利用大型基础模型中“冻结”知识的大师级范例。与其微调参数,有时最好的方法仅仅是给模型提供更好、更具上下文的参考资料。