Reconstructing CLIP for Open-Vocabulary Dense Perception¶
会议: CVPR 2026
论文: CVF Open Access
代码: 待确认
领域: 多模态 VLM(开放词汇密集感知 / CLIP 自蒸馏)
关键词: 开放词汇密集感知、CLIP、自蒸馏、value embedding、头选择门控
一句话总结¶
DenseRC 针对"如何为 CLIP 构建好的密集特征"这一被忽视的问题,揭示 cls token 的泛化语义其实来自多层 value embedding、而空间聚合会放大语义错位,于是用多层 value 作基底、配一个轻量的头选择门控(HSG)只在 head 维重加权,造出与全局语义对齐的密集表示,在开放词汇检测和分割多个基准上刷新 SOTA。
研究背景与动机¶
领域现状:CLIP 这类大规模视觉-语言模型(VLM)在零样本图像分类上很强,于是大家想把它迁到开放词汇密集感知(OVDP,含开放词汇检测 OVD 与分割 OVS),让模型在区域/像素级识别训练时没见过的任意类别。
现有痛点:CLIP 是为"全局图文对齐"优化的,其密集特征跨模态对齐弱、特征一致性差。现有两条路各有短板——① 用细粒度区域-文本监督重训 CLIP(如 FineCLIP 造 40M 区域-caption 对),但密集标注成本远高于图文对,难扩展;② 自蒸馏:用冻结 CLIP 的全局表示(cls token)当桥,去监督可训练的密集编码器,无需额外标注。自蒸馏更可扩展,但当前实现都不够好。
核心矛盾:自蒸馏要把学生的密集特征对齐到对应图像 crop 的冻结 cls token,因此怎么构建密集特征才是关键,但这一步一直没被认真研究。CLIPSelf 直接用 CLIP 最后一层空间输出,残差连接不可避免地注入噪声;DeCLIP 用 self-self 注意力聚合增强 patch 语义,但聚合会混进无关 patch(如天空区域)造成与 crop 教师之间的语义鸿沟;而特征一致性问题(同类内方差大、类间可分性低,尤其 stuff 区域)也没解决好。
本文目标:拆成两个子问题——(1)抽什么特征作密集基底;(2)怎么构建才能既判别又对齐。
切入角度:回到 cls token 内部去问"它到底编码了什么视觉语义"。把每层自注意力更新 \(c^{(l)} = c^{(l-1)} + \text{Proj}(\text{Attn}^{(l)} \cdot v^{(l)})\) 沿所有层展开,发现最终 cls token 本质是在聚合多层 value embedding。这给"抽什么"一个有原则的答案;再沿空间维和 head 维拆解自注意力,从理论上分析"怎么构建"。
核心 idea:用多层 value embedding 作密集特征的语义一致基底,放弃会引入无关 patch 干扰的空间聚合、改用头选择门控(HSG)只在 head 维自适应重加权,再加一路从 DINOv2 蒸特征相关性的一致性约束——构建"与 cls 兼容"的密集表示。
方法详解¶
整体框架¶
DenseRC(Dense Representations Construction)是一个自蒸馏框架:学生 VLM 编码图像后,不再用最后一层空间输出,而是抽取多层 value embedding 作为密集特征的构建基底;这些 value 经头选择门控 HSG 在 head 维自适应重加权(不做任何空间聚合),构建出密集表示 \(X_{dense}\);训练时一路用冻结教师 VLM 对图像 crop 的 cls token 做语义对齐(自蒸馏),另一路从冻结 DINOv2 蒸 patch 间特征相关性做一致性约束。最终直接用 DenseRC 替换下游管线里的 CLIP,无需改任何超参,即可服务开放词汇检测/分割。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["学生 CLIP 编码图像"] --> B["抽取多层 value embedding<br/>语义一致基底"]
B --> C["HSG 头选择门控<br/>去空间聚合·仅 head 维重加权"]
C --> D["构建密集表示 X_dense"]
D -->|L_semantics 对齐 crop 的 cls| E["冻结教师 VLM cls token"]
D -->|L_coherence 蒸特征相关性| F["冻结 DINOv2 (VFM)"]
D --> G["下游 OVDP:检测 / 分割"]
关键设计¶
1. 解构 cls token 语义来源:多层 value embedding 才是密集特征的一致基底
针对"CLIPSelf 用最终空间输出被残差注噪"这个痛点,本文先回答"抽什么"。在 CLIP 的 ViT 里,cls token 每层经自注意力和 MLP 更新;由于 MLP 主要是 token 内变换,分析视觉信息来源时只保留注意力通路并改写为 \(c^{(l)} \leftarrow c^{(l-1)} + A^{(l)}v^{(l)}\)(\(A^{(l)}\) 吸收注意力权重和投影参数)。沿全部 \(L\) 层展开(去掉与数据无关的常量初始化 \(c^{(0)}\))得到
这说明最终 cls token 根本上是在聚合多层 value embedding。于是把学生的密集表示也设计成同样的聚合形式 \(X_{dense} = \sum_{l=1}^{L} A_p^{(l)} \cdot v_p^{(l)}\),其中 \(v_p^{(l)}\) 是 value 特征、\(A_p^{(l)}\) 是构建模块。和直接拿最后一层空间特征(带残差噪声)或只取最后一层单一 value 相比,多层 value 提供了与全局语义最一致的基底(消融 Table 5 证实 multi-v 全面更优)。
2. HSG 头选择门控:理论证明空间聚合必然放大对齐误差,改成只在 head 维重加权
这是回答"怎么构建"的核心,针对"DeCLIP 空间聚合混进无关 patch 造成语义鸿沟"的痛点。把构建模块 \(A_p\) 沿空间维和 head 维拆开分析:设教师对区域 \(r\) 的目标表示 \(c_r = \sum_l M^{(l)} v_r^{(l)} + \varepsilon_r\),对比两种策略——"空间-头融合(S)"会跨空间位置聚合 \(\tilde{v}_r^{(S)} = \sum_j S_{rj} P v_j\),"仅头建模(H)"逐 patch 独立变换 \(\tilde{v}_r^{(H)} = W v_r\)。用 MSE 推导期望损失,空间聚合比纯头建模多出一个严格为正的干扰项
即只要空间聚合给区域无关的 off-target token 分了非零权重,就必然 \(L^{(H)} < L^{(S)}\),对齐误差被放大。经验上(Fig.3)空间聚合还让少数主导 patch 吞掉大部分梯度(峰值幅度 ~10,均值仅 0.26),多数待优化 patch 几乎收不到监督;去掉空间聚合后梯度分布更均匀(均值 0.7),密集监督更稳。基于此,HSG 彻底放弃空间聚合,只在 head 维做门控:\(v = W_v(\text{LN}(x)) \in \mathbb{R}^{H \times N \times (D/H)}\),\(A_p = \sigma(W_H(\text{LN}(x))) \in \mathbb{R}^{N \times H}\),\(\sigma\) 是 sigmoid,逐 head 产生门控权重;\(W_H\) 是跨所有 Transformer 层共享的单层线性投影,几乎不加参数。这样做的依据是:实测各 head 在"对 cls 的跨模态语义贡献"和"局部性偏好(平均注意力距离)"上高度异质,统一聚合是次优的,必须显式按 head 重加权。
3. 特征一致性蒸馏:从 DINOv2 蒸 patch 相关性,对单一特征流统一施约束
光对齐语义还不够,密集表示的特征一致性(类内紧凑、类间可分,尤其 stuff 区域)也得管。DenseRC 从冻结的视觉基础模型 DINOv2 直接在密集特征上蒸 patch 间特征相关性,鼓励密集表示呈现类内紧凑、类间可分。和 DeCLIP 的关键区别在于:DeCLIP 把一致性损失(作用在解耦的注意力流)和密集对齐损失(作用在 value 流)分开施加在两条流上;DenseRC 则把两个约束统一加在同一条密集特征流 \(X_{dense}\) 上,逼它同时拿到跨模态对齐和特征一致性。总目标为
\(L_{semantics}\) 用余弦相似度对齐 RoIAlign 后的区域特征与教师 crop 的 cls token,\(L_{coherence}\) 用 MSE 蒸 DINOv2 的特征相关性,\(\lambda\) 是权衡系数(实验取 0.025 最优)。
损失函数 / 训练策略¶
在 COCO train2017 上做自蒸馏,4×A100、每卡 batch 4、训练 6 epoch、AdamW、学习率 \(1\times10^{-5}\)、weight decay 0.1。训练时每张图随机切成 \(m \times n\) 网格(\(m,n \in \{1,\dots,6\}\))做局部对齐蒸馏,输入 resize 到 1024×1024。\(v_p\) 取最后三层 value embedding(经验最稳最准)。\(\lambda = 0.025\)。
实验关键数据¶
自定义/关键指标说明:AP\(^{Novel}_{50}\)=OV-COCO 新类在 IoU=0.5 下的 mAP;mAP\(_r\)=OV-LVIS 稀有类 mAP(IoU 0.5–0.95 平均);mIoU=分割交并比;mAcc=区域零样本分类的 Top-1/Top-5 平均准确率。所有下游设定都只是把 CLIP 直接换成 DenseRC、不改任何超参。
主实验:开放词汇检测 / 分割(与 SOTA 对比)¶
| 任务/基准 | 指标 | CLIPSelf | DeCLIP(前 SOTA) | DenseRC(本文) |
|---|---|---|---|---|
| OV-COCO(ViT-B/16) | AP\(^{Novel}_{50}\) | 37.6 | 41.1 | 45.6(+4.5) |
| OV-COCO(ViT-L/14) | AP\(^{Novel}_{50}\) | 44.3 | 46.2 | 54.8 |
| OV-LVIS(ViT-B/16) | mAP\(_r\) | 25.3 | 26.8 | 29.0(+2.2) |
| OV-LVIS(ViT-L/14) | mAP\(_r\) | 34.9 | 37.2 | 39.6 |
| OVSS A-150(ViT-B/16) | mIoU | 29.0 | 36.3 | 37.6 |
| OVSS PC-59(ViT-B/16) | mIoU | 58.0 | 60.6 | 61.3 |
| OVSS A-150(ViT-L/14) | mIoU | 34.5 | 40.7 | 41.5 |
区域零样本分类(ViT-B/16,无 RPN)上 DenseRC 的 Boxes Top1 76.7、Thing Masks 78.1、Stuff Masks 55.8,全面超过 R-SC-CLIPSelf(76.0 / 76.2 / 53.5)与 CLIPSelf。跨数据集迁移(LVIS 训练→直接测 COCO/Objects365)上 DenseRC 也一致领先(COCO AP 43.4 vs DeCLIP 41.0)。
消融:\(v_p\) 基底 与 \(A_p\) 构建模块(mAP@OV-COCO / mIoU@分割)¶
| 变体 | A-847 | PC-459 | A-150 | OV-COCO |
|---|---|---|---|---|
| \(v_p\)=x+v(最后层空间特征,CLIPSelf 式) | 15.2 | 21.7 | 36.6 | 41.3 |
| \(v_p\)=v(最后层单一 value,DeCLIP 式) | 15.4 | 22.1 | 36.7 | 41.9 |
| \(v_p\)=multi-v(多层 value,本文) | 15.7 | 22.3 | 37.2 | 44.4 |
| \(A_p\)=no attention | 15.7 | 22.3 | 37.2 | 44.4 |
| \(A_p\)=self attention(Q-K,原 CLIP) | 14.7 | 21.3 | 36.0 | 39.1 |
| \(A_p\)=self-self attention(Q-Q,DeCLIP) | 15.4 | 21.9 | 36.7 | 42.3 |
| \(A_p\)=HSG(本文) | 15.9 | 22.7 | 37.6 | 45.6 |
关键发现¶
- 空间聚合确实有害:在 \(A_p\) 上加任何空间聚合(self-attention 41.3→39.1、self-self 42.3)都比 no-attention 基线(44.4)更差,实证了 \(\Delta L > 0\) 的理论;HSG(45.6)才是唯一带来正收益的设计。
- 多层 value 是涨点主力:从 x+v(41.3)到 multi-v(44.4)在 OV-COCO 上 +3.1,验证"抽什么"比"怎么聚合"更关键。
- 层数与权重选择:\(v_p\) 取倒数三层最优(更早的层信噪比低、引入梯度干扰);\(\lambda=0.025\) 在各分割基准最稳;HSG 学到的 head 权重跨 2000 张样本高度一致,说明它刻画的是 head 的固有功能角色而非图像特异模式。
亮点与洞察¶
- "先问 cls token 编码了什么、再决定抽什么"这套溯因思路很扎实:把 cls 更新沿层展开得到"多层 value 聚合"这一结论,给密集基底选择一个有原则的答案,而非拍脑袋调特征。
- 用理论而非纯实验说"空间聚合不该要":\(\Delta L = \sum_{j\in U_r} S_{rj}^2 \mathbb{E}\|Pv_j\|^2 > 0\) 这一项干净地指出空间聚合必然引入 off-target 干扰,结论可迁移到任何"区域级对齐"任务。
- HSG 几乎零成本:单层线性 + 跨层共享,却把"head 功能异质性"利用起来,是个很轻、易插拔的模块。
- 统一单流约束比 DeCLIP 的双流分立更优雅——同一条密集特征同时担起对齐和一致性,避免两路目标互相打架。
局限与展望¶
- 一致性来源依赖外部 DINOv2,等于引入第二个基础模型;DINOv2 本身的偏置/失败模式会怎样传导到密集特征,论文未深究。⚠️ 换用其他 VFM 的鲁棒性缺独立实验。
- 理论分析为简化只推了单层 value、并假设小残差 \(\varepsilon_r\),多层情形只说"直接推广、略去",严格性略弱。
- HSG 只在 head 维建模、彻底弃用空间信息,对那些确实需要局部空间聚合的极端密集任务是否仍最优,未充分边界测试。
- 全部蒸馏只在 COCO 上做,更大规模/更多域的预训练数据下增益是否保持未验证。
相关工作与启发¶
- vs CLIPSelf:CLIPSelf 直接用 CLIP 最后层空间输出当密集特征,残差连接注入噪声;DenseRC 改用多层 value embedding 作干净基底,并去掉空间聚合。
- vs DeCLIP:DeCLIP 用 self-self 注意力做空间聚合(混入无关 patch、造语义鸿沟),且把一致性损失与对齐损失分施在两条解耦流上;DenseRC 理论证明空间聚合有害、改用 HSG 头门控,并把两约束统一加在单一特征流上,OV-COCO +4.5、OV-LVIS +2.2。
- vs 区域监督重训(FineCLIP):后者造 40M 区域-caption 对重训 CLIP,成本高难扩展;DenseRC 走无额外标注的自蒸馏路线,更可扩展且效果更好。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 把 cls token 展开成多层 value、再理论证明空间聚合有害并提 HSG,"抽什么+怎么构建"两问都给出有原则的新答案
- 实验充分度: ⭐⭐⭐⭐⭐ 区域分类/检测/分割/跨数据集迁移全覆盖,\(v_p\)/\(A_p\)/层数/\(\lambda\) 消融完整
- 写作质量: ⭐⭐⭐⭐ 动机—分析—方法逻辑顺,理论与实证呼应;部分公式/图在 OCR 下有噪声、推导细节在附录
- 价值: ⭐⭐⭐⭐ 轻量即插即用、直接替换 CLIP 就涨点,对开放词汇检测/分割社区实用性强