GLIP
CLIP 做的是图像级对齐:整张图和整段文本在嵌入空间中的接近程度。这对图文检索和零样本分类足够了,但当你需要定位图片中的具体对象时("图中的狗在哪里?"),CLIP 就无能为力了。
目标检测需要对象级的理解——每个候选区域和对应的文本描述之间的对齐。GLIP 的核心洞察是:目标检测本质上就是一种定位(grounding)任务。如果你能把"检测"和"定位"统一成同一个任务,就能利用大规模图文对数据来训练检测器,突破标注数据的瓶颈。
传统检测器的分类头:对每个候选区域预测一个离散类别。GLIP 的做法是:将分类头替换为region-word 对齐得分:
\(S = O \cdot P^{T}\)
其中 \(O\) 是图像的区域特征(region embeddings),\(P\) 是文本的短语特征(phrase embeddings)。对齐得分越高,说明该区域越可能对应该短语描述的对象。
这个公式的精妙之处在于:当你用"dog"作为文本输入时,它做的是目标检测;当你用"the brown dog sitting on the left"作为输入时,它做的是短语定位。同一个模型、同一个损失函数、同一套训练流程。
Deep Fusion:让视觉"听懂"语言
CLIP 的视觉和语言编码器是完全独立的,只在最后一层做对齐。GLIP 认为这对细粒度任务不够——视觉编码器需要知道"语言在说什么",才能提取与语言相关的视觉特征。
解决方案是 deep fusion:在图像编码器和语言编码器之间插入交叉注意力层,让视觉特征和语言特征在编码过程中就互相交互。这使得视觉表征具有语言感知能力——同一张图在不同语言描述下,视觉编码器会提取不同的特征。
Self-Training:自动生成定位标注
GLIP 的另一个创新是用已有模型为无标注数据自动生成 grounding box。具体流程:
- 用 GLIP-L(在 gold 数据上训练)对 24M web 图文对生成定位标注
- 生成 78.1M 伪标注 grounding box
- 用这些伪标注训练更大的模型
与 BLIP 的 CapFilt 类似,GLIP 的 self-training 也是一种数据自举——用已有模型来"标注"无标注数据,扩大训练集规模。
Zero-shot COCO 检测
| 模型 | 训练方式 | AP |
|---|---|---|
| Faster R-CNN ResNet-101 | 监督训练 | 42.0 |
| GLIP-L | 零样本(zero-shot) | 49.8 |
零样本检测 49.8 AP,超越监督训练的 Faster R-CNN 7.8 个点。这说明 GLIP 通过统一检测与定位,利用大规模图文对数据学到的表征远比传统检测器在有限标注数据上学到的更通用。
Phrase Grounding(Flickr30K)
GLIP 在短语定位任务上同样表现强劲,验证了"检测 = 定位"统一的有效性。
跨任务迁移
GLIP 的 region-word 对齐使其能直接用于:
- 开放词表检测:检测训练时没见过的类别
- 视觉定位:根据自然语言描述定位图中对象
- 指代表达理解:理解"左边那只红色的狗"这类描述
GLIP 的贡献可以从粒度维度理解:CLIP 做图像级对齐,BLIP 做图像级但加了细粒度匹配(ITM),GLIP 直接推进到对象级/区域级对齐。
GLIP 的"检测 = 定位"统一思想与同年 BLIP 的"理解 = 生成"统一思想是平行的创新,分别从粒度和功能两个维度推进了 VLP。后续的 Grounding DINO 等工作直接继承了 GLIP 的路线。
GLIP 和 BLIP 的互补也值得关注:一个擅长"在哪里"(定位),一个擅长"是什么"(理解/生成)。理想的多模态模型需要同时具备这两种能力。
GLIP 的关键问题是粒度。CLIP 只学习整张图和整段文本是否匹配,但目标检测要求模型知道具体区域对应哪个词。GLIP 将检测类别看作短语,把目标检测重写为 grounding:检测 dog 等价于定位短语 dog;定位“the brown dog on the left”则是更细粒度的同一件事。技术上,GLIP 用区域特征矩阵 O 与短语特征矩阵 P 相乘得到对齐分数 S = O·P^T。这个分数既可以服务开放词表检测,也可以服务自然语言短语定位。Deep fusion 解决了另一个问题:如果视觉和语言只在最后一层相似度计算时相遇,视觉特征本身并不知道当前文本关注什么。GLIP 在编码过程中引入跨模态交互,使图像特征可以被语言查询调制。GLIP-L 在 zero-shot COCO detection 上达到 49.8 AP,超过监督 Faster R-CNN ResNet-101 的 42.0。
graph LR A[输入] --> B[核心模块] B --> C[对齐 / 压缩 / 训练] C --> D[下游能力] D --> E[实验验证]
CLIP 学到的是“整张图像”和“整段文本”的相似度,因此它天然适合分类和检索。GLIP 学到的是“图像区域”和“文本短语”的相似度,因此它天然适合检测和定位。两者看起来都在做视觉语言对齐,但对齐粒度完全不同。
这种粒度差异会直接决定模型能力边界。全局对齐可以知道图里大概有狗,但无法告诉你狗在哪里,也无法区分“左边的狗”和“右边的狗”。区域级对齐则能处理对象、属性和空间关系,这对开放词表检测、机器人感知和视觉问答中的证据定位都很重要。
GLIP 的 self-training 也体现了 VLP 领域共同的数据逻辑:高质量人工标注稀缺,但 web 图文数据丰富;如果模型能把弱监督数据转成结构化伪标注,就能把规模优势带到细粒度任务中。后来的 Grounding DINO、开放词表检测和视觉 grounding 系统都沿用了这条路径。


MiniMax 对图 A 的理解确认:GLIP 使用双流结构并在中间层做 deep fusion,右侧对齐矩阵表示 region features 与 word/phrase features 的匹配分数。检测类别可以被拼接为文本 prompt,定位句子也可以作为 prompt,因此检测与 grounding 共享同一套 region-word alignment 机制。
参考来源
- Li, L.H. et al. "Grounded Language-Image Pre-training." CVPR 2022. arXiv:2112.03857
- 代码仓库: microsoft/GLIP