1. 核心结论
ViT(Vision Transformer)是一种视觉骨干网络架构:它将图像切分为 Patch 序列,再通过 Transformer Encoder 建模局部区域与全局区域之间的关系。
MAE(Masked Autoencoder)是一种自监督预训练方法:它通常以 ViT 作为 Encoder,随机遮挡大量图像 Patch,仅通过剩余可见区域重建被遮挡内容,从而在无标签数据上提升视觉特征质量。
2. 图像特征提取的目标
图像特征提取是将原始图像转换为便于下游任务判断、匹配和推理的特征表示。
以商品识别为例,需要提取的特征不只包括"这是什么商品",还包括包装结构、局部标志、文字布局、遮挡状态和空间关系。
| 特征层级 | 需要表达的信息 | 对应任务 |
|---|---|---|
| 低层特征 | 边缘、颜色、纹理、印刷图案 | 包装纹理区分、质量判断 |
| 中层特征 | Logo、文字区域、瓶盖、盒体轮廓 | SKU 分类、新旧包装区分 |
| 高层特征 | 商品语义、类别、整体布局 | 商品识别、复核判断 |
| 空间特征 | 商品位置、遮挡关系、货架排列 | 检测、分割、计数 |
| 向量特征 | 图像之间的相似程度 | Embedding 检索、新包装注册 |
CNN 的卷积结构天然偏向局部模式;ViT 通过注意力机制显式聚合远距离 Patch 的关系;MAE 则让 ViT 在无标签数据上学习更稳健的整体结构与语义表示。
3. ViT:基于 Patch Token 的视觉特征提取架构
3.1 图像 Patch 化
给定输入图像尺寸:
text
H × W × C
其中:
H:图像高度;W:图像宽度;C:图像通道数,RGB 图像通常为 3。
ViT 将图像切分为大小为:
text
P × P
的非重叠 Patch,Patch 数量为:
text
N = (H × W) / P²
例如输入图像为 224 × 224 × 3,Patch 大小为 16 × 16:
text
N = (224 × 224) / (16 × 16) = 196
因此,一张图像会被转换为 196 个视觉 Token:
text
输入图像 224 × 224
↓
切分为 16 × 16 Patch
↓
形成 14 × 14 = 196 个 Patch
↓
线性投影为 Patch Token 序列
ViT 中的 ViT-B/16、ViT-L/16 表示采用 16 × 16 Patch。Patch 越小,局部细节保留越多,但 Token 数量增加,注意力计算成本也随之上升。
3.2 Patch Embedding 与位置编码
每个 Patch 被展平并映射至固定维度的特征向量:
text
16 × 16 × 3 Patch
↓ flatten
768 维向量
↓ Linear Projection
D 维 Patch Embedding
随后,ViT 在 Patch Token 序列前加入一个可学习的 [CLS] Token,并叠加位置编码:
text
[CLS] + Patch_1 + Patch_2 + ... + Patch_196
↓
添加 Position Embedding
↓
Transformer Encoder
| 表征组成 | 作用 |
|---|---|
| Patch Token | 表达图像局部区域的视觉内容 |
[CLS] Token |
聚合整张图像的全局特征,常用于分类或检索 |
| Position Embedding | 保留 Patch 在二维图像中的空间位置信息 |
3.3 Transformer Encoder 提取特征
Patch Token 输入多层 Transformer Encoder:
text
Patch Tokens
↓
Multi-Head Self-Attention
↓
MLP / Feed Forward Network
↓
Layer Normalization + Residual Connection
↓
多层堆叠
↓
全局 [CLS] 特征 + 局部 Patch 特征
自注意力允许一个 Patch 直接与图像中任意其他 Patch 交互。
例如在饮料包装图像中:
text
顶部瓶盖区域
↕
品牌 Logo 区域
↕
包装主色区域
↕
规格文字区域
↕
商品整体轮廓
该机制使模型可以将远距离区域组合起来形成整体特征,而不必完全依赖卷积网络逐层扩大感受野。
4. ViT 在图像特征提取方面的优势
4.1 全局关系建模能力强
卷积网络以局部窗口为基础,擅长纹理、边缘和局部结构提取;而 ViT 的自注意力机制可以直接计算任意 Patch 之间的相关性,因此更适合表达整体布局和跨区域关系。
4.2 同时提供全局特征与局部 Patch 特征
ViT Encoder 可同时输出整图级别和区域级别特征。
| 输出特征 | 表达能力 | 典型用途 |
|---|---|---|
[CLS] Token |
整张图像的全局表示 | 分类、Embedding 检索、相似度计算 |
| Patch Tokens | 各局部区域的空间特征 | 检测、分割、关键区域定位、跨模态对齐 |
4.3 大规模预训练后迁移能力强
ViT 的一个关键特点是:随着预训练数据量和模型规模扩大,其迁移能力显著增强。
原始 ViT 工作指出:
- 在中等规模数据集上从零训练时,ViT 由于缺少 CNN 内置的局部性和平移等变先验,可能不优于强 CNN;
- 在 ImageNet-21K、JFT-300M 等大规模数据上预训练后,ViT 能够达到或超过强 CNN 基线,并具备良好的下游迁移效果。
工程上可归纳为:
text
少量数据 + 从零训练
→ CNN / 混合网络通常更稳
大量数据或已有预训练权重
→ ViT 具备更高的迁移上限
4.4 特征接口统一,适合跨任务扩展
ViT 将图像统一转换为 Token 表达,使同一个 Backbone 更容易扩展到不同下游任务:
text
图像
↓
Patch Tokens
↓
ViT Backbone
├── Classification Head:SKU 分类
├── Detection Head:商品目标定位
├── Segmentation Head:柜体 / 层板 / 商品区域分割
├── Embedding Head:相似商品检索
└── VLM Projector:对接语言模型
这种统一表示方式尤其适用于视觉语言模型、跨模态检索和多任务视觉系统。
4.5 适合高分辨率微调
ViT 在预训练与微调阶段可以使用不同输入分辨率,通常通过对位置编码进行插值来适配更多 Patch。
例如:
text
预训练分辨率:224 × 224
微调分辨率:384 × 384 / 448 × 448
对于以下目标,高分辨率微调非常关键:
- 小 Logo;
- 包装细文字;
- 规格标识;
- 条码邻近结构;
- 小目标或局部遮挡商品。
5. ViT 的局限性与工程约束
| 局限性 | 原因 | 工程影响 | 建议 |
|---|---|---|---|
| 小数据从零训练不稳定 | 缺少 CNN 的局部先验 | 小数据业务中易过拟合 | 使用预训练、MAE 或蒸馏 |
| 高分辨率计算成本高 | 注意力复杂度随 Token 数快速上升 | 处理小文字与小目标成本上升 | 二阶段 Crop 或层级特征网络 |
| Patch 过大可能损失细节 | 小对象可能落入少量 Patch | 细粒度商品识别受影响 | 使用更小 Patch 或高分辨率 |
| 边缘部署成本较高 | 参数量、算力、显存需求偏高 | RK3588 等设备实时性受限 | Tiny/Small 模型、量化或蒸馏 |
因此,ViT 在实际业务系统中常作为:
- 二阶段细分类器;
- Embedding 特征模型;
- 训练阶段教师模型;
- VLM 视觉编码器;
- 离线复核或困难样本模型。
对于主链路实时检测,YOLO 等轻量检测网络通常仍更具工程优势。
6. MAE:面向 ViT 的遮挡自编码预训练方法
6.1 MAE 的核心思想
MAE 将遮挡建模思想应用到图像中:
text
原始图像
↓
随机遮挡大量 Patch,例如 75%
↓
Encoder 仅处理剩余的可见 Patch
↓
轻量 Decoder 接收可见特征与 Mask Token
↓
重建被遮挡的图像 Patch
↓
预训练完成后丢弃 Decoder,仅保留 Encoder
示意流程如下:
text
完整商品图像
┌────────────────────┐
│ Logo 包装文字 │
│ 主色块 商品轮廓 │
│ 规格区 标签区域 │
└────────────────────┘
↓ 随机遮挡约 75%
┌────────────────────┐
│ ████ 包装文字 │
│ ████ ████████ │
│ 规格区 ████████ │
└────────────────────┘
↓
Encoder 根据少量可见区域编码语义
↓
Decoder 重建缺失区域
MAE 使用非对称 Encoder-Decoder 结构:
| 组件 | 输入 | 作用 | 下游任务是否保留 |
|---|---|---|---|
| ViT Encoder | 仅可见 Patch | 提取视觉特征 | 保留 |
| 轻量 Decoder | 可见特征 + Mask Token | 重建被遮挡 Patch | 丢弃 |
6.2 为什么 MAE 通常遮挡约 75% Patch
图像相邻区域具有很强的空间冗余。如果只遮挡少量 Patch,模型可能依据周围纹理和颜色进行简单插值,而不需要学习物体语义。
例如:
text
蓝色包装背景中遮挡一个很小的蓝色区域
模型仅需补出邻近颜色即可获得较低损失。
较高遮挡比例会显著增加重建难度,迫使模型学习:
- 物体整体轮廓;
- 部件空间关系;
- 图像的长距离上下文;
- 类别相关区域布局;
- 可见局部与完整对象之间的语义映射。
对商品图像而言,模型可能需要利用仍然可见的瓶盖、色块或局部文字,推断缺失的 Logo、标签布局和瓶体结构。
7. MAE 在图像特征提取方面的优势
7.1 利用大量无标签图像降低标注压力
传统监督训练依赖明确标签:
text
图像 + 类别 / 检测框 / 分割 Mask / 关键点
但实际业务会积累大量无标签数据,例如:
- 不同柜体与货架结构;
- 不同拍摄距离和角度;
- 反光、模糊、偏色图像;
- 遮挡商品图像;
- 新旧包装混合图像;
- 理货前后库存变化图像。
MAE 可直接使用这类数据进行自监督训练:
text
大量无标签业务图像
↓
MAE 预训练 ViT Encoder
↓
少量标注数据微调
↓
分类 / 分割 / Embedding / 检测任务
其价值在于将业务日常采集数据转化为视觉 Backbone 的预训练资源。
7.2 更强调结构语义而非局部捷径
仅进行监督分类时,模型可能只关注最容易区分类别的局部特征,例如:
- 一个明显 Logo;
- 某种包装颜色;
- 固定角落的标志;
- 背景或货架偏差。
MAE 由于需要从极少量可见区域恢复大量缺失区域,更容易学习:
text
瓶盖位置
+ 商品外形
+ 标签排布
+ 主辅色关系
+ 品牌文字区域
+ 整体包装结构
因此,MAE 预训练得到的特征通常更适合作为多个任务共享的通用视觉表示。
需要注意:MAE 原论文直接验证了分类、目标检测、实例分割和语义分割任务上的迁移收益;对于某个特定业务的"抗遮挡性能提升",仍需要在业务遮挡测试集上单独测评。
7.3 预训练计算效率较高
对于 224 × 224 输入、16 × 16 Patch 的 ViT:
text
完整图像 Patch 数量:196
遮挡 75% 后可见 Patch 数量:约 49
MAE 的重型 Encoder 只处理可见的约 25% Patch:
text
普通 ViT 预训练:
Encoder 处理 196 个 Token
MAE 预训练:
Encoder 仅处理约 49 个可见 Token
轻量 Decoder 负责重建
根据 MAE 原始论文,其非对称设计使预训练速度提升约 3 倍或以上,并支持扩展到更大的 ViT 模型。
7.4 提升大型 ViT 的泛化能力
ViT 模型容量大,但从有限标注数据中学习时可能出现训练不足或过拟合。MAE 通过无标签预训练提供更强的初始化。
MAE 论文中,ViT-L 在 ImageNet-1K 上的对比结果如下:
| 训练方式 | ImageNet-1K Top-1 准确率 |
|---|---|
| 原始 ViT-L 从零训练结果 | 76.5% |
| 改进训练策略的 ViT-L 从零训练 | 82.5% |
| MAE 预训练后微调 ViT-L | 84.9% |
同时,MAE 预训练的 ViT-Huge 在仅使用 ImageNet-1K 进行自监督预训练、并微调至 448 分辨率时取得了 87.8% 的 ImageNet-1K Top-1 准确率。
由此可以归纳为:
text
ViT:提供高容量的全局特征建模架构
MAE:通过无标签预训练提升 ViT 的数据利用率与泛化能力
7.5 检测与分割任务迁移收益明显
图像特征的价值不仅体现在分类准确率,还体现在是否能迁移到空间感知任务。
COCO 目标检测与实例分割
| 预训练方式 | Backbone | Box AP | Mask AP |
|---|---|---|---|
| 监督预训练 | ViT-B | 47.9 | 42.9 |
| MAE 自监督预训练 | ViT-B | 50.3 | 44.9 |
| 监督预训练 | ViT-L | 49.3 | 43.9 |
| MAE 自监督预训练 | ViT-L | 53.3 | 47.2 |
ADE20K 语义分割
| 预训练方式 | ViT-B mIoU | ViT-L mIoU |
|---|---|---|
| 监督预训练 | 47.4 | 49.9 |
| MAE 自监督预训练 | 48.1 | 53.6 |
对于大规模 Backbone,MAE 的增益更加明显:
- COCO 检测中,MAE ViT-L 相比监督预训练提升 4.0 Box AP;
- ADE20K 语义分割中,MAE ViT-L 相比监督预训练提升 3.7 mIoU。
这说明 MAE 学到的特征不仅有助于整图分类,也能更好服务于目标边界、区域结构和空间布局判断。
8. ViT 与 MAE 特征提取侧重点对比
| 对比维度 | ViT | MAE |
|---|---|---|
| 本质 | 视觉 Backbone 架构 | 自监督预训练方法 |
| 核心输入处理 | 图像切为 Patch Token | 随机遮挡大量 Patch 后输入 Encoder |
| 核心能力 | 全局关系建模与统一 Token 表达 | 无标签预训练与特征泛化增强 |
| 是否必须使用标签 | 取决于训练方式;监督训练需要标签 | 预训练阶段不需要标签 |
| 输出特征 | [CLS] Token 与 Patch Tokens |
预训练后保留 Encoder,输出与 ViT 相同 |
| 分类价值 | 提供分类特征架构 | 提升 ViT 初始化与分类效果 |
| 检测/分割价值 | 可连接检测头、分割头 | 提升迁移性能 |
| Embedding 价值 | 适合输出全局向量 | 可通过业务无标签图像改善域内表示 |
| 工程定位 | 线上模型或教师模型 | 训练阶段预训练策略,线上通常只部署 Encoder |
9. 三种训练路线的差异
9.1 直接监督训练 ViT
text
商品图像 + SKU 标签
↓
ViT Backbone
↓
分类损失 / 检测损失 / Embedding 损失
| 优势 | 不足 |
|---|---|
| 训练流程直接 | 依赖较多人工标签 |
| 输出目标明确 | 容易学习局部捷径 |
| 有足量标签时效果可控 | 对新环境和包装变化适应成本较高 |
9.2 使用公共数据监督预训练的 ViT
text
ImageNet-21K / 公共数据预训练权重
↓
业务图像微调
| 优势 | 不足 |
|---|---|
| 开源模型和权重丰富 | 公共图像与货柜商品图像存在域差异 |
| 可快速建立业务基线 | 对反光、密集排列、特殊拍摄角度适应有限 |
| 少量业务标注即可微调 | 新旧包装与业务特有难例覆盖不足 |
9.3 使用业务无标签数据进行 MAE 预训练
text
真实货柜图像 / 商品 Crop / 遮挡与反光样本
↓
MAE 自监督预训练 ViT
↓
标注数据微调
↓
分类 / 检测 / 分割 / Embedding
| 优势 | 不足 |
|---|---|
| 利用真实业务分布 | 训练阶段需要额外 GPU 资源 |
| 降低标签依赖 | 仍需下游任务标注微调 |
| 可学习场景域特征 | 小文字和极细粒度 SKU 仍需高分辨率或 OCR 辅助 |
| 有利于新旧包装与困难样本适配 | 实际收益需通过业务数据集验证 |
11. 推荐工程方案
11.1 方案 A:实时优先,ViT 作为二阶段分类器
适用场景:
- 已有 YOLO 检测主链路;
- 需要提高细粒度 区分能力;
- 需要控制端侧推理开销。
11.2 方案 B:MAE 业务域预训练 + 多任务微调
适用场景:
- 已积累大量真实应用场景图像;
- 精确标注量有限;
- 需要同时提升分类、结构分割与检索效果。
11.3 方案 C:MAE-ViT 教师模型蒸馏到轻量端侧模型
适用场景:
- RK3588S、移动端等资源受限设备;
- 需要较高 FPS;
- 希望保留 MAE-ViT 的特征优势。
text
训练阶段:
MAE-Pretrained ViT-Base / ViT-Large
↓ Soft Label / Feature Embedding / Attention Map
TinyViT / MobileNet / EfficientNet / YOLO-CLS
↓ 蒸馏训练
部署阶段:
轻量学生模型运行于边缘设备
| 优势 | 说明 |
|---|---|
| 特征监督更强 | 教师模型提供软标签与向量监督 |
| 部署成本较低 | 线上仅运行学生模型 |
| 易于接入现有链路 | 可替换二阶段分类模型 |
| 符合端侧约束 | 适合低功耗和实时业务 |
12. 验证指标与实验建议
在业务中采用 ViT / MAE 前,应通过分阶段实验验证其实际收益。
12.1 分类与检索指标
| 验证目标 | 推荐指标 |
|---|---|
| 分类准确率 | Top-1 Accuracy、Top-5 Accuracy、Macro-F1 |
| 相似包装区分 | Confusion Matrix、Hard Case Accuracy |
| Embedding 检索 | Recall@1、Recall@5、mAP、EER |
| 新包装适配 | 注册样本数 vs. 识别准确率 |
| 拒识能力 | FAR、FRR、Unknown Detection AUROC |
12.2 鲁棒性测试集
建议单独构建困难样本子集:
| 子集 | 说明 |
|---|---|
| 遮挡样本集 | 商品被前排、货架边缘或其他商品遮挡 |
| 反光样本集 | 包装高光、玻璃柜反射或曝光异常 |
| 相似 SKU 集 | 同品牌不同口味、不同容量、包装近似商品 |
| 新旧包装集 | 视觉变化明显但属于同一商品的包装版本 |
| 小文字差异集 | 依赖规格、口味文字区分的样本 |
| 边缘畸变集 | 位于图像边缘、透视严重的商品 |
12.3 建议消融实验
| 实验编号 | Backbone / 训练方式 | 目的 |
|---|---|---|
| E1 | CNN 分类器监督训练 | 形成基础基线 |
| E2 | 公共预训练 ViT-Small 微调 | 评估 ViT 架构收益 |
| E3 | MAE 公共权重 ViT-Small 微调 | 评估 MAE 通用预训练收益 |
| E4 | 业务无标签 MAE 继续预训练 + 微调 | 评估域内自监督收益 |
| E5 | MAE-ViT + Embedding Head | 评估新包装和相似 SKU 检索能力 |
| E6 | MAE-ViT 教师蒸馏到轻量模型 | 评估端侧速度与精度折中 |
13. 部署与选型建议
| 部署场景 | 推荐模型形态 | 说明 |
|---|---|---|
| 服务器离线训练 | ViT-Base / ViT-Large + MAE | 用于业务域预训练和教师模型 |
| Jetson Orin NX | ViT-Tiny / ViT-Small 或蒸馏学生模型 | 可承担二阶段分类与 Embedding |
| RK3588S / 移动端 | TinyViT / MobileNet / YOLO-CLS 学生模型 | 以蒸馏和量化为主 |
| 数据持续增长平台 | MAE 周期性继续预训练 | 吸收新柜体与新包装数据 |
| 低置信度复核 | ViT / VLM 组合 | 只处理困难样本,降低总体开销 |
14. 总结
14.1 ViT 的核心优势
ViT 将图像建模为 Patch Token 序列,通过 Transformer 自注意力机制提取视觉特征,主要优势包括:
- 能够直接建模远距离图像区域关系;
- 同时输出全局
[CLS]特征与局部 Patch 特征; - 大规模预训练后迁移能力强;
- 适合分类、检测、分割、Embedding 和 VLM 视觉编码;
- 便于在更高输入分辨率下微调,以支持小目标和细粒度识别。
14.2 MAE 的核心优势
MAE 通过遮挡大量 Patch 并重建缺失区域,为 ViT 提供高效的自监督预训练方式,主要优势包括:
- 可以充分利用无标签业务图像;
- 强化物体结构和全局语义建模,而非只依赖局部纹理;
- Encoder 仅处理可见 Patch,预训练效率高;
- 能够显著改善大型 ViT 的下游迁移能力;
- 在目标检测、实例分割和语义分割任务中展现出明确增益。
ViT 解决的是全局视觉特征如何建模的问题,MAE 解决的是如何利用大量无标签业务数据将这种特征训练得更强的问题。
参考文献
-
Dosovitskiy, A., et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.
-
He, K., Chen, X., Xie, S., Li, Y., Dollár, P., & Girshick, R. Masked Autoencoders Are Scalable Vision Learners. CVPR 2022.