Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Masked Autoencoders (MAE)

掩码自编码器会遮盖大部分图像块,并训练网络重建缺失像素,从而无需标签即可学习特征。包含掩码代码。

掩码自编码器(MAE)是一种用于图像的自监督学习方法:模型会随机隐藏图像中很大一部分图像块(通常为 75%),并学习根据其余可见部分重建缺失像素。Meta AI 的 Kaiming He 及其同事在 2021 年的论文 Masked Autoencoders Are Scalable Vision Learners 中提出了这种方法,将 BERT 的掩码词预测改用于视觉 Transformer。由于编码器只处理可见图像块,MAE 预训练的速度至少比处理所有图像块快 3 倍;通过这种方式预训练的 ViT-Huge 模型在 ImageNet 上达到 87.8% 的准确率,在当时仅使用 ImageNet-1K 数据的方法中表现最佳。预训练后的编码器随后可作为分类、检测和分割任务的主干网络。

掩码自编码器的工作方式#

MAE 会将图像划分为互不重叠的图像块网格;对于 224x224 的输入,网格包含 196 个 16x16 像素的图像块,然后随机隐藏其中大部分。它的编码器和解码器经过有意设计,规模并不对等。作为标准 ViT 的编码器只处理可见图像块,因此计算量和内存占用降至约四分之一。默认情况下,轻量级解码器包含 8 个 Transformer 块,每个 token 的计算量不到编码器的 10%;它接收编码后的可见图像块,以及用于每个隐藏位置的共享可学习掩码 token,并预测每个隐藏图像块的像素值。损失函数只计算隐藏图像块上的均方误差;将按图像块归一化的像素用作目标,还能进一步提升学到的特征。预训练结束后,解码器会被丢弃:

高掩码率正是这项任务发挥作用的关键。相邻图像块之间存在大量冗余,因此只隐藏少数图像块时,模型可以通过邻近区域插值来填补每个空缺。隐藏 75% 的图像块后,模型必须根据碎片推断完整的物体和场景,这会促使模型学习形状、部件和上下文。相比之下,BERT 只会屏蔽 15% 的词,因为每个词本身已经承载丰富的含义。

MAE 的核心是其掩码步骤,下面用一个包含四张图像的批次通过 PyTorch 展示:

import torch

torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)  # a batch of 4 RGB images

# Patchify: each 224x224 image becomes 196 patches of 16x16 pixels, flattened to 768 values
patches = images.unfold(2, 16, 16).unfold(3, 16, 16).permute(0, 2, 3, 1, 4, 5).reshape(4, 196, 768)

# Random masking as in the MAE reference code: rank patches by random noise and keep the first 25%
keep = int(196 * (1 - 0.75))
ids_keep = torch.argsort(torch.rand(4, 196), dim=1)[:, :keep]
visible = torch.gather(patches, 1, ids_keep.unsqueeze(-1).expand(-1, -1, 768))

# Mask of hidden patches (1 = hidden): the decoder predicts these, and the loss is averaged over them only
mask = torch.ones(4, 196).scatter(1, ids_keep, 0)
print(f"Encoder input: {visible.shape[1]} of {patches.shape[1]} patches per image")
print(f"Reconstruction targets: {int(mask[0].sum())} hidden patches per image")

它会输出 Encoder input: 49 of 196 patches per image 和 Reconstruction targets: 147 hidden patches per image。因此,编码器的 Transformer 层处理的序列长度只有整张图像的四分之一;由于注意力会比较每个 token 与其他所有 token,单个注意力分数矩阵的大小只有处理全部 196 个图像块时的十六分之一。

结果与变体#

MAE 特征在微调后表现最出色。采用线性探测时,使用 MAE 预训练的 ViT-L 编码器在 ImageNet 上达到 73.5% 的准确率,低于对比学习方法;但经过微调并迁移到 COCO 上进行目标检测和分割时,MAE 预训练的表现优于监督式预训练。这套方法已成功扩展到静态图像之外:VideoMAE 会遮蔽视频片段中 90% 或更多的时空图像块,SatMAE 在卫星影像上进行预训练,而 ConvNeXt V2 则通过稀疏卷积将掩码自编码引入卷积网络。

掩码预训练也是广泛应用的基础模型的底层技术之一。Meta 的 Segment Anything Model(SAM)在 Ultralytics 软件包中运行,其图像编码器基于 MAE 预训练的 ViT 构建;其 ViT-B 版本 sam_b.pt 是 Ultralytics auto_annotate 中默认的掩码模型,可将 YOLO26 检测器的边界框转换为分割标签。

  • 自编码器:将整个输入压缩成一个小型编码,再将其重建。MAE 接收不完整的输入,必须预测从未看到的部分;其编码器输出会为每个可见图像块保留一个向量。
  • 掩码图像建模:MAE 所属的更广泛方法类别。BEiT 会为被掩码的图像块预测离散视觉 token,SimMIM 会将掩码 token 输入编码器,而 MAE 预测像素,并且不会将掩码 token 输入编码器。
  • 对比学习:通过匹配同一图像的不同增强视图进行学习,无需解码器,生成的特征在冻结状态下效果更好;而 MAE 特征经过微调后提升更明显。
  • 联合嵌入预测架构(JEPA):同样会隐藏图像区域,但预测的是这些区域的嵌入,而非像素,因此模型不会将容量浪费在纹理细节上。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来