TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

开放词汇检测:将 CLIP 文本 embedding 附加到检测器上 — OWL-ViT、OWLv2、Grounding DINO、YOLO-World、YOLOE

状态:草稿(2026-10-13),部分为实测数据。 分类头示例仅模仿了结构而没有使用真正的 CLIP 权重(code/12_open_vocab_head.py,笔记本 CPU 1秒内)。本文中的模型未在我们的环境中运行(未实测)。论文数据来自原文献及对应条件,硬件则以等级标出。CLIP 自身的训练原理将在姊妹系列(自监督、视频、姿态、体育)中介绍。 写作规则:以实测数据为基础,未能测量的数据标记为「未实测」。

目录

1. 闭集词汇的壁垒

第 5、6、8 篇介绍的检测器是 闭集词汇模型。使用 COCO 训练时,它们只能识别 80 种物体(人、汽车、网球拍……)。若要让其识别「乒乓球拍」或「乒乓球桌」,必须收集带有该标签的数据并重新训练。

从结构上看,原因很简单。检测器的最终分类头是 (영역 특징) · Wᵀ 形式,其中 W 是每个类别占一行的 固定矩阵(80×d)。若要增加一个类别,W 就需要多一行,而该行的数值只有通过数据训练才能获得。

열린 어휘 검출: 고정 분류 머리를 글자 임베딩으로 바꾼다 닫힌 어휘(보통 검출기) 영역 특징 분류 머리 W (80×d) COCO 80종만. 새 종류는 다시 학습 열린 어휘(OWL-ViT · Grounding DINO · YOLO-World · YOLOE) 영역 임베딩 r 글자 인코더(CLIP 계열) 입력: "racket", "ball", "table" … 유사도 r·tᵢ / τ 어휘마다 점수 어휘 = 그때그때 적는 글자 클래스 추가 = 행 하나 추가 어휘를 미리 정하면 글자 임베딩을 한 번만 계산해 가중치로 「구워」 둘 수 있다(YOLO-World·YOLOE).
图:闭集检测器的固定分类头与使用文本编码器生成的 embedding 代替它的开放词汇检测器的对比

2. 钥匙:CLIP 的文本 embedding

CLIP(2021)通过互联网上的 4 亿对图文对进行训练,使图像编码器和文本编码器在同一空间中输出向量。这是一种通过拉近匹配的图文、拉远不匹配的图文来进行的 对比学习。其结果是,「a photo of a racket」的文本向量与球拍照片的图像向量距离更近。将该文本向量用作分类器权重时,在未使用任何 ImageNet 训练图片(零样本)的情况下,ImageNet top-1 达到了 76.2%(ViT-L/14,336px)。这与直接使用 ImageNet 训练 ResNet-50 的水平相当。

CLIP 的训练原理将在姊妹系列中介绍,本文仅探讨 如何将该文本向量附加到检测器上。核心思路只有一行:u 不要训练 W 的行,而是通过将类别名称输入文本编码器来生成它们。

닫힌 어휘:  점수 = r · W[클래스]ᵀ               (W 는 학습한 80×d 행렬)
열린 어휘:  점수 = r · 글자인코더("racket")ᵀ / τ  (어휘는 쓸 때 적는다)

动手尝试:添加类别 = 添加一行

我们用一个随机的双层 MLP 来模拟文本编码器,而不是真正的 CLIP 权重,并将其附加到 80×80 特征图(输入 640px,对应 8 的步幅)的分类头上(实测。数字本身没有意义,重点在结构)。

어휘 3개 → 분류 머리 행렬 (3, 256)
「racket」을 더하면 (4, 256) — 다른 가중치는 그대로, 출력 칸마다 로짓이 4개
두 방식 출력 최대 차 0.0e+00, 프레임당 9.09 ms → 2.71 ms

最后一行对比了每帧将词汇输入文本编码器的方案,以及只将词汇编码一次并将其 预烘焙 为矩阵的方案。结果完全相同,且减少了耗时。由于模拟编码器非常小,差异仅约 3 倍,但实际的 CLIP 文本编码器是 Transformer,这种差异会更大(未实测)。这正是第 6 节中 YOLO-World 与 YOLOE 的目标所在。

3. OWL-ViT(2022):ViT 每个 token 一个边界框

Minderer 等人提出的 OWL-ViT 展示了最简单的方法。

  1. 引入像 CLIP 那样通过对比学习训练的 ViT(第 7 篇)。
  2. 在最后 取消 将所有 token 聚合到一起的池化操作。这样每个图像块 token 都会保留输出。
  3. 为每个 token 附加轻量级的 边界框头(该 token 负责的物体边界框)和 分类头(token embedding)。分类头的权重是 类别名称的文本 embedding。
  4. 使用检测数据(混合 OpenImages、Objects365、Visual Genome 中的两个)进行微调。

与第 8 篇的 DETR 类似,一个 token(槽)负责一个物体,匹配也采用 DETR 式的集合损失。不同之处在于没有单独的槽,而是 图像块 token 直接就是槽。

结果(论文):在 LVIS v1.0 验证集上,AP 为 34.6, 罕见类别 AP 为 31.2(ViT-L/14,使用 Objects365+VG 训练,840px)。由于罕见类别的名称在训练中被略去,31.2 是针对首次见到的类别的零样本数值。

也可以不用文本,而是用 示例图像来查询。将图像块的 embedding 用作查询,就变成了「寻找与此相似的东西」。在未参与训练的 COCO 类别上,单样本检测 AP50 从以往最高的 26.0 提升到了 41.8。

4. OWLv2(2023):自主打标签以扩充

检测标签成本高昂。Minderer 等人在 OWLv2 中通过 自训练(self-training)突破了这一壁垒。

  1. 使用原有的 OWL-ViT(CLIP L/14)为整个网络图像数据集 WebLI(约 100 亿对图文对)打上 伪边界框标签。词汇则提取自图像的替代文本。
  2. 使用这些伪标签训练新模型(OWL-ST)。训练样本超过 10 亿个。
  3. 使用检测数据进行微调。

结果(论文):LVIS 罕见类别 AP 达到 31.2% → 44.6%(L/14,相对提升 43%),更大的 G/14 则达到 47.2%。随着规模扩大,训练效率也得到了优化。结合了仅对前 k 个 token 计算边界框的「物体度」头、在训练时丢弃 50% 像素方差较低的图像块、以及将多张图像拼接成马赛克的策略,使训练计算量减半,吞吐量翻倍。

这与第 9 篇 SAM 的数据引擎思路相同: 模型生成标签,并利用这些标签训练更好的模型。 第 11 篇的 SAM 3 将 PCS 准确率与此 OWLv2 进行了对比。

5. GLIP 与 Grounding DINO:深度融合文本与图像

OWL-ViT 仅在最后通过 一次点积将图像特征与文本 embedding 结合。如果像「左侧选手拿的球拍」这样涉及句子内部的关系,这种方法就不够用了。另一条路线则是从一开始就将二者深度融合。

深度融合的代价是速度。一旦文本改变,图像侧的计算也必须重新进行,因此无法预先烘焙词汇。

6. YOLO-World 与 YOLOE:实现实时检测

这是尝试将开放词汇引入第 6 篇 YOLO 系列速度优势中的尝试。

YOLO-World(2024):使用了将文本 embedding 融入 YOLO 特征金字塔的 RepVL-PAN,以及区域-文本对比损失。核心在于**「先提示,后检测」**。用户确定词汇后,只需编码一次并将其 重新参数化为网络权重(re-parameterize),在推理时即可完全剥离文本编码器。这正是第 2 节示例中的「预烘焙」。

结果(论文表 2):LVIS minival 零样本 35.4 AP,52.0 FPS。这是一个带有许多附加条件的数值。最大的 YOLO-World-L(烘焙后 4800 万参数,烘焙前 1.1 亿·17.6 FPS),在 Objects365 + GoldG + 带伪标签的 24.6 万张 CC3M 上训练,是在单张数据中心 GPU 上不使用 FP16 和 TensorRT 测得的数值。官方仓库为 GPL-3.0 ,商业使用需另行咨询。

YOLOE(2025):将三种提示整合到一个模型中。

结果(论文):相比 YOLO-Worldv2-S,LVIS minival +3.5 AP,训练成本约为 1/3,推理快 1.4 倍(推理用数据中心 GPU,TensorRT)。官方仓库为 AGPL-3.0 。

这两个模型也都包含在 Ultralytics 软件包(AGPL-3.0)中。第 6 篇第 5 节的 AGPL 条款同样适用。

7. 总结:如何选择

模型 文图交汇点 词汇烘焙 优势 许可证
OWL-ViT / OWLv2 最后点积 支持 简单、示例图像查询、规模化 代码在 google-research/scenic 仓库。本文未确认许可证
Grounding DINO 自始至终深度融合 困难 句内关系、准确率 Apache-2.0
YOLO-World 特征金字塔 烘焙嵌入 实时 GPL-3.0
YOLOE 分类头 烘焙嵌入 实时、三种提示 AGPL-3.0
SAM 3(第 11 篇) 检测器查询 + 存在 token — 延伸至掩码与视频 SAM License

8. 局限性与我们的项目

本文结束了系列第 1 部分。无需标签的自监督学习、CLIP,以及视频、姿态、体育模型将在姊妹系列(自监督·视频·姿态·体育篇文件夹)中继续。

TT 一言。 以前要教旧检测器认识「球拍」,得收集一大堆球拍的照片。现在只需要 「racket」 这个词就行了。不过,如果只说 「table」 可能会把餐桌找出来,所以必须选好词。

参考文献

登录后即可点赞

评论

还没有评论。

登录后即可发表评论