视觉基座模型 (Vision Foundation Models)
概述
视觉基座模型的发展路径与 NLP 类似:从 task-specific 的 CNN 模型,到通用预训练的视觉 Transformer,再到跨模态对齐的视觉-语言模型。
核心转变:从 "一个 backbone 一个任务" 到 "一个 foundation 多个任务"。
视觉基座模型谱系:
监督预训练 (ImageNet) → ResNet, ViT
自监督预训练 (对比学习) → SimCLR, MoCo, DINO
自监督预训练 (掩码建模) → MAE, BEiT
跨模态预训练 (图文对齐) → CLIP, SigLIP
任务级基座 (分割) → SAM
任务级基座 (检测) → Grounding DINO
ViT 回顾
Vision Transformer (ViT) 是视觉基座模型的骨干架构。详细内容请参考 ViT 笔记。
核心思想:将图像分割为固定大小的 patch,每个 patch 作为一个 token 输入 Transformer。
其中 \(E \in \mathbb{R}^{(P^2 \cdot C) \times D}\) 是 patch embedding 矩阵,\(P\) 是 patch 大小。
ViT 的成功证明了:Transformer 在视觉领域同样有效,且在大规模数据上表现优于 CNN。
自监督视觉预训练
MAE (Masked Autoencoder)
He et al. (2022) 提出的 MAE 是视觉领域掩码建模的代表作。
核心思想:随机遮蔽大比例(75%)的图像 patch,用 encoder-decoder 结构重建被遮蔽的 patch。
MAE 架构:
原始图像 → 分 patch → 随机遮蔽 75%
↓
可见 patch → ViT Encoder (只处理可见 patch,节省算力)
↓
编码 + mask tokens → 轻量 Decoder → 重建像素
↓
计算 MSE Loss (只在被遮蔽 patch 上)
重建损失:
MAE 的关键设计:
- 高遮蔽率 (75%):迫使模型学习全局语义而非局部纹理插值
- 非对称架构:重型 encoder + 轻量 decoder,encoder 只处理可见 patch
- 像素重建:直接预测像素值,不需要 tokenizer
DINO / DINOv2
DINO (Caron et al., 2021):Self-Distillation with No Labels
核心思想:Student-Teacher 自蒸馏框架,无需负样本也无需标签。
DINO 框架:
Image → Global Crop → Teacher Network → p_t
Image → Local Crops → Student Network → p_s
Loss: Cross-entropy(p_t, p_s)
Teacher: EMA 更新 (θ_t ← m·θ_t + (1-m)·θ_s)
DINO 学到的特征有一个显著特点:attention map 自动对应物体的语义部位,具有很强的可解释性。
DINOv2 (Oquab et al., 2023):
- 大幅扩大训练数据规模(142M 图像,自动筛选)
- 结合了 DINO 的自蒸馏和 iBOT 的掩码建模
- 产出的特征在分类、分割、深度估计等任务上接近甚至超越监督预训练
- 被认为是目前最强的通用视觉特征提取器之一
对比式视觉-语言模型
CLIP (Contrastive Language-Image Pretraining)
Radford et al. (2021) 提出的 CLIP 是跨模态基座模型的里程碑。
核心思想:在 4 亿图文对上训练对比学习,对齐图像和文本的表示空间。
CLIP 架构:
Image → Image Encoder (ViT/ResNet) → Image Embedding → L2 Norm → I
Text → Text Encoder (Transformer) → Text Embedding → L2 Norm → T
对比学习:
T_1 T_2 T_3 ... T_N
I_1 [ cos cos cos ... cos ]
I_2 [ cos cos cos ... cos ]
...
I_N [ cos cos cos ... cos ]
目标:对角线元素最大化,非对角线元素最小化
损失函数(image-to-text 和 text-to-image 对称):
CLIP 的应用:
- Zero-shot 分类:将类别名构造为 "a photo of a {class}" 文本,与图像计算相似度
- 图文检索:直接用 embedding 空间做最近邻检索
- 多模态基座:为 LLaVA、Stable Diffusion 等提供视觉编码器
SigLIP (Sigmoid Loss for Language-Image Pretraining)
Zhai et al. (2023) 对 CLIP 的改进:
- 用 Sigmoid 替代 Softmax,将对比学习变为独立的二分类问题
- 不再需要全局 batch 内的 softmax normalization
- 更适合大规模分布式训练
其中 \(y_{ij} = 1\) 当 \(i = j\)(匹配对),否则 \(y_{ij} = 0\)。
OpenCLIP
CLIP 的开源复现项目,支持更多的模型规模和训练数据集(如 LAION-5B)。
分割基座:SAM (Segment Anything Model)
Kirillov et al. (2023) 提出的 SAM 是第一个通用的图像分割基座模型。
核心思想
构建一个 "promptable" 的分割模型:给定任意提示(点、框、文本),输出对应的分割掩码。
SAM 架构:
Image → ViT Encoder (MAE 预训练) → Image Embedding
↓
Prompt (点/框/文本) → Prompt Encoder → Prompt Embedding
↓
Lightweight Mask Decoder
↓
Segmentation Masks
关键设计
- Image Encoder:使用 MAE 预训练的 ViT-H,只需对每张图编码一次
- Prompt Encoder:支持点、框、粗糙掩码、文本等多种提示形式
- Mask Decoder:轻量级 Transformer decoder,输出多个候选掩码及置信度
- 训练数据:SA-1B 数据集,包含 11M 图像和 1.1B 掩码
SAM 2 (2024)
将 SAM 扩展到视频领域,支持视频中的物体分割和跟踪。引入 Memory Bank 机制实现跨帧一致性。
检测基座
Grounding DINO
Liu et al. (2023) 提出的开放词汇检测模型,将 DINO 检测器与语言特征融合。
核心能力:给定任意文本描述,在图像中定位对应物体。
Grounding DINO:
Image → Image Backbone → Image Features ─┐
├→ Cross-modal Fusion → Detection Head → Boxes
Text → Text Encoder → Text Features ─┘
开放词汇检测 (Open-Vocabulary Detection)
传统目标检测只能检测预定义的类别。开放词汇检测通过引入语言特征,可以检测任意类别的物体。
关键方法:
- OWL-ViT (Google):用 CLIP 的 image-text 对齐做 zero-shot 检测
- YOLO-World (2024):将 open-vocabulary 能力引入实时检测框架
视觉基座模型对比
| 模型 | 类型 | 预训练方式 | 参数量 | 核心能力 | 训练数据 |
|---|---|---|---|---|---|
| ViT-L | Backbone | 监督 (ImageNet-21K) | 307M | 图像分类 | 14M 图像 |
| MAE ViT-H | Backbone | 掩码重建 | 632M | 通用特征 | ImageNet |
| DINOv2 ViT-g | Backbone | 自蒸馏 + 掩码 | 1.1B | 通用特征 | 142M 图像 |
| CLIP ViT-L/14 | 双编码器 | 图文对比 | 428M | Zero-shot 分类 | 400M 图文对 |
| SigLIP | 双编码器 | 改进对比 | 多种规模 | Zero-shot 分类 | WebLI |
| SAM ViT-H | 分割基座 | 交互式分割 | 641M | 通用分割 | SA-1B (1.1B masks) |
| Grounding DINO | 检测基座 | 开放词汇检测 | 172M | 文本定位 | 多数据集混合 |
发展趋势
视觉基座模型的发展呈现以下趋势:
- 从判别到统一:同一模型同时支持分类、分割、检测、生成
- 从单模态到多模态:视觉 encoder 越来越多地与语言模型结合
- 从固定分辨率到动态分辨率:支持任意分辨率、任意长宽比的输入
- 从封闭类别到开放词汇:借助语言特征实现对任意概念的识别
视觉基座的未来方向是成为多模态大模型的 "眼睛",与 LLM 深度融合。