一、引言
在本文中,我们将深入探讨 Meta AI 的一项新成果,该成果发表于一篇题为《Sapiens:人类视觉模型的基础》的研究论文中。这篇论文介绍了一系列模型,这些模型针对四项以人类为中心的基本任务,正如我们在上面的演示中看到的那样。
二、以人类为中心的基本任务
在论文的上图中,我们可以了解到Sapiens所针对的任务。
- 姿态估计:检测输入图像中人体关键点的位置。
- 身体部位分割:确定哪些像素构成不同的身体部位。
- 深度估计:确定像素的深度。如“深度”列中的示例所示,图像前面的部分更亮,图像后面的像素更暗。
- 表面法线估计:提供物体(在我们的案例中是人体)形状的方向信息。
令人印象深刻的是,与之前的最先进结果相比,Meta AI 在所有这些任务上都取得了显著改进。在本文的其余部分,我们将解释 Meta AI 的研究人员是如何创建这些模型的。
三、Humans-300M:整理人类图像数据集
我们首先要谈到的是整理一个大型人类图像数据集。Meta AI在此具有优势,它拥有一个包含10亿张人类图像的专有数据集。为了提高数据集的质量,他们过滤掉了带有水印、文字、艺术描绘或不自然元素的图像,这使得数据集的规模有所减小。然后,为了进一步提高数据集的质量,他们还使用了现成的人物边界框检测器,过滤掉人物在图像中可能不具有意义的图像。最终,我们得到了3亿张高质量的人类图像。
从论文的上图中,我们可以看到,数据集中的大多数图像实际上每张都包含不止一个人,其中超过一半的图像包含4个或更多人。
四、自监督学习预训练
作为对自监督学习的回顾,它基本上意味着我们的训练数据没有标签,模型仅从图像中学习。而我们刚刚提到的经过整理的人类图像数据集Humans-300M确实没有任何标签。自监督学习预训练方法是掩码自动编码器(masked-autoencoder),简称MAE。
4.1 掩码自动编码器预训练过程
我们要训练的模型是一个基于视觉Transformer(ViT)架构的编码器,我们称之为Sapiens ViT。由于它是一个ViT,其输入是被划分为图像块的图像,就像上图左侧的图像一样。这个示例中,一张图像被划分为9个图像块。我们随机掩码一些图像块,未被掩码的图像块被输入到编码器中,编码器为图像的可见部分生成嵌入向量。这些嵌入向量随后被输入到另一个模型——解码器中,解码器试图生成原始的完整图像。
4.2 Sapiens预训练质量
我们通过论文中的以下示例来观察预训练过程的质量。对于每组三张图像(最后一行除外),左边的图像是模型在训练中未见过的真实图像,中间的图像是在掩码了75%的图像块之后的图像,右边的图像是模型重建的图像。令人惊讶的是,我们几乎在重建图像中找不到瑕疵。在最后一行,我们可以看到当掩码率增加到75%以上时的重建图像。
4.3 Sapiens原生支持高分辨率图像
需要注意的是,用于预训练Sapiens模型的输入图像分辨率为1k!与顶级视觉模型(如DINOv2,其图像大小为224×224)相比,这是一个巨大的飞跃。我们在下面的表格中列出了Sapiens与顶级计算机视觉模型之间的更多比较。
五、构建Sapiens特定任务模型
现在我们有了一个预训练的Sapiens ViT编码器,对于每个任务,我们添加一个新的特定任务解码器模型,该模型将使用编码器创建的嵌入向量。
对于每个任务,我们也有一个小的带标签数据集,因为为这类任务构建大量带标签的示例很困难。然后,我们在带标签的数据集上训练解码器,以创建特定任务模型。我们还会更新预训练编码器的权重。最后,我们对四项任务中的每一项都重复这个过程。
六、参考文献和链接
- 论文页面
- 代码
- AI Papers Academy