Skip to content

视觉基座模型 (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。

\[ z_0 = [x_{\text{cls}}; x_p^1 E; x_p^2 E; \ldots; x_p^N E] + E_{\text{pos}} \]

其中 \(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 上)

重建损失:

\[ \mathcal{L}_{\text{MAE}} = \frac{1}{|\mathcal{M}|} \sum_{i \in \mathcal{M}} \| \hat{x}_i - x_i \|_2^2 \]

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)
\[ \mathcal{L}_{\text{DINO}} = -\sum_x \sum_{s \neq t} p_t(x) \log p_s(x) \]

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 对称):

\[ \mathcal{L}_{\text{CLIP}} = -\frac{1}{2N} \sum_{i=1}^{N} \left[ \log \frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ij}/\tau}} + \log \frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ji}/\tau}} \right] \]

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
  • 更适合大规模分布式训练
\[ \mathcal{L}_{\text{SigLIP}} = -\frac{1}{N} \sum_{i,j} \left[ y_{ij} \log \sigma(s_{ij}) + (1 - y_{ij}) \log (1 - \sigma(s_{ij})) \right] \]

其中 \(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 文本定位 多数据集混合

发展趋势

视觉基座模型的发展呈现以下趋势:

  1. 从判别到统一:同一模型同时支持分类、分割、检测、生成
  2. 从单模态到多模态:视觉 encoder 越来越多地与语言模型结合
  3. 从固定分辨率到动态分辨率:支持任意分辨率、任意长宽比的输入
  4. 从封闭类别到开放词汇:借助语言特征实现对任意概念的识别

视觉基座的未来方向是成为多模态大模型的 "眼睛",与 LLM 深度融合。


评论 #