meta提出了 Sapiens,人类基础视觉模型。这是一个以人为中心的视觉任务的模型。包括: 2D 姿势估计、人体部位分割、深度估计和表面法线预测。

此模型本身支持 1K 高分辨率推理,Sapiens在超过 3 亿张人类图像上预训练的模型进行微调,就可以非常轻松地适应各个任务。在相同的计算预算下,对精选的人类图像数据集进行自我监督预训练可以显著提高各种以人类为中心的视觉任务的性能。

即使标记数据稀缺或完全合成,经过Sapiens模型的微调模型,也对数据表现出显著的泛化能力。Sapiens简单的模型设计还带来了可扩展性——随着将Sapiens模型参数数量从 0.3 亿扩展到 20 亿,跨任务的模型性能得到提高。 Sapiens 在各种以人类为中心的基准测试中超越现有基准。在 Humans-5K(姿势估计)上实现了 7.6 mAP、Humans-2K(seg人体分割)17.1 mIoU、Hi4D(深度估计)相对 RMSE 22.4% 和 THuman2(表面法线预测)上现有技术显著改进53.5% 相对角度误差。

Sapiens 原生支持1024×1024高分辨率图像,而之前的 SOTA 模型(如 Dino v2)则使用 224×224。Sapiens 系列模型是从头开始构建的视觉转换器。Sapiens首先使用Masked AutoEncoder (MAE)方法进行预训练,然后针对特定任务进行微调。预训练是使用自监督训练在未标记的 Human-300M 数据集上进行的,数据集包含 1.2 万亿个标记。与 ViT 模型类似,图像被划分为不重叠的固定大小的块。

每个图像标记(块大小 = 16 x 16)占整个图像(1024×1024)的 0.02%,与标准 ViT 不同,单个块占 0.4%。
人体姿态估计
人体姿态估计是很多计算机视觉模型的关键任务,包括我们前期介绍过的 OpenCV,mediapipe,等,都涉及到人体姿态检测。但是Sapiens 姿势估计模型使用每个关键点的热图来确定姿势,从而为 K 个关键点生成 K 个热图。

训练数据集包含 308 个全身关键点,其中 243 个为面部关键点,40 个为手部关键点,而其他姿势估计数据集通常有 68 个面部关键点。这些多余的关键点有助于Sapiens模型改善眼睛、嘴唇、鼻子和耳朵周围的姿态表现。

Sapiens 2B 是 SOTA人体姿势估计模型,在 Humans-5K 测试数据集上取得了最高 AP。它比 DWPose-L 高出 +7.1 AP。
人体分割
对象分割,对计算机视觉技术提出了更加严苛的边界需求,而 ,其分割效果很好,而针对人体分割,yolo系列模型也可以进行人体的分割,mediapipe模型也可以进行人体分割,但是Sapiens是针对人体视觉任务的微调模型。此任务的目标是将输入图像中的每个像素分为 C 类,例如手臂、腿、躯干等。对于每个像素,模型都会预测一个概率图,表明该像素在所有身体部位中属于某个特定类别。

使用的数据集包含 0.1 M 条以 4k 分辨率手动创建的标注图形。该模型可以预测 28 个不同的身体部位,并勾勒出四肢、腿部、嘴唇等的更精细细节。为了评估身体部位分割任务的性能,对 FCN、SegFormer、Mask2Former 和 DeepLabV3+ 等模型进行了微调,并在用于训练 Sapiens 的同一数据集上进行了测试。其最小的 Sapiens 0.3B 模型的表现优于之前的 SOTA 模型,如 Mask2Former 和 DeepLabV3+。最大的模型 Sapiens-2B 在 Humans-2K 测试集上以 81.2 mIOU 和 89.4 mAcc 取得了出色的表现。

深度估计
我们前期介绍过,“Depth Anything V2”模型是原始Depth Anything模型的改进版,专注于提升单目深度估计能力。单目深度估计是指使用单张图像来预测场景深度的过程,这对于计算机视觉、机器人技术和增强现实应用至关重要。

而人体深度估计模型架构与分割类似,但解码器的输出通道被修改为 1。因为深度估计是一个回归任务,其中输出是每个像素的单个深度值,而不是多类概率图。为了计算相对深度,使用最大和最小像素值将深度值归一化在 0 和 1 之间。在大多数情况下,Sapiens 的所有变体都明显比其同类表现更好。

表面法线估计
人体表面法线是人体某一点与表面垂直的向量,指三维空间中表面的方位。表面法线对于确定光线如何与身体表面相互作用以产生逼真的反射特别有用。在 Sapiens 模型中,表面法线估计器为人体图像的每个像素生成 3 个输出通道,分别对应于法线的 x、y、z 坐标。它指的是 3D 空间中表面的方向。

使用相同的深度估计数据集来评估Sapiens模型在类似表面法线估计任务上的性能。在这里可以看到 Sapiens-2B 始终保持非常低的平均角度误差。

而Sapiens模型是 meta 开源的模型,其代码与预训练模型都可以在 GitHub 上面找到,当然,也可以直接在 hugging face 上面在线体验。

直接点击需要的任务,进入任务界面,上传自己的图片即可,当然也支持视频。

可以直接在 hugging face 上面在线执行人体姿态检测,人体分割,深度预测与人体表面法线预测等任务。关于代码方面的实现,我们后期进行分享。
