SAM 3D Body:鲁棒的全身人体网格恢复 SAM 3D Body: Robust Full-Body Human Mesh Recovery
提出可提示的全身人体网格恢复模型,支持关键点/遮罩引导
前置知识
Human Mesh Recovery (HMR)
人体网格恢复是指从单张或多张图像中估计人体的3D网格模型。传统方法使用SMPL(Skinned Multi-Person Linear Model)参数化人体,将人体表示为姿态参数和形状参数的组合。SMPL模型通过线性混合蒙皮将人体骨架绑定到表面网格上,可以生成任意姿态和形状的3D人体。这个任务的核心挑战是从2D图像中恢复丢失的深度信息,同时处理遮挡、自遮挡和复杂姿态。
理解HMR任务的基本概念和传统方法(如SMPL)是理解本文创新点的基础,特别是理解为什么本文要提出新的参数化模型MHR来替代SMPL。
Momentum Human Rig (MHR)
MHR是本文采用的新的人体参数化网格表示,它与SMPL最大的区别在于显式地将骨骼结构(skeletal structure)和表面形状(surface shape)解耦。在SMPL中,姿态和形状参数是交织在一起的,形状空间同时包含了骨骼结构和软组织质量,这限制了可解释性和可控性。MHR则提供了更丰富的控制和更好的可解释性,使得骨骼长度等参数可以直接映射。
MHR是本文模型的核心输出表示,理解其与SMPL的区别有助于理解模型设计的动机和优势。
Promptable Inference
可提示推理是一种允许用户提供额外输入(如2D关键点、分割遮罩)来引导模型预测的推理模式。这一概念由SAM(Segment Anything Model)系列模型推广,在推理时用户可以通过点击、框选或提供遮罩来指导模型的输出。在HMR场景中,这意味着用户可以在推理时提供人体关键点位置或分割遮罩来纠正或引导模型的姿态估计。
本文的核心创新之一就是将可提示推理引入全身人体网格恢复,理解这一概念对于理解模型架构设计至关重要。
Vision Transformer (ViT)
视觉Transformer是一种将Transformer架构应用于图像处理的模型。它将图像分割成固定大小的patch,将每个patch线性嵌入为token,然后通过自注意力机制进行特征提取。ViT已被证明在各种视觉任务上具有强大的表示能力,本文使用的ViT-H(632M参数)和DINOv3(840M参数)编码器都是基于这一架构。
本文的图像编码器基于ViT架构,理解其工作原理有助于理解模型的特征提取过程。
Encoder-Decoder Architecture
编码器-解码器架构是一种常见的神经网络设计模式。编码器将输入(如图像)映射到高维特征空间,解码器则将这些特征转换为所需的输出(如3D姿态参数)。在Transformer中,解码器通常使用交叉注意力机制来融合编码器的特征和查询token。本文采用了共享编码器加双解码器的设计。
本文的架构设计(共享编码器+身体/手部双解码器)是核心技术创新之一,理解这种架构有助于理解模型如何同时处理身体和手部姿态估计。
Data Engine
数据引擎是一种自动化数据收集和标注的系统。本文的数据引擎使用视觉语言模型(VLM)来自动挖掘具有挑战性的图像样本,然后通过多阶段标注管线生成高质量的3D网格标注。这种迭代式的挖掘策略允许引擎自适应地聚焦于最具信息量的样本,从而高效地从数千万图像中筛选出最有价值的数据。
数据引擎是本文取得成功的关键因素之一,解决了高质量3D标注数据稀缺的问题,理解其工作原理有助于理解本文的数据策略。
Dense Keypoint Detection
密集关键点检测是指检测人体表面上的大量关键点(本文使用595个关键点),而非仅检测稀疏的骨架关键点(如17个COCO关键点)。这些密集关键点覆盖了人体网格的最小流形,能够捕获多样的身体形状和手部姿态。本文训练了一个基于Transformer的密集关键点检测器,结合稀疏关键点引导来预测准确的2D密集关键点。
密集关键点检测是本文标注管线的重要组成部分,提供了比稀疏关键点更丰富的几何约束,用于高质量的网格拟合。
研究动机
现有的人体网格恢复(HMR)方法在处理真实世界图像时表现出不够鲁棒的问题。具体来说,当前模型在处理具有挑战性姿态、严重遮挡或不常见视角的个体时经常失败。例如,在SA1B-Hard数据集上,CameraHMR和PromptHMR等方法在倒置身体姿态(Inverted body)类别上的PCK仅为46.12和39.83,在腿部或手臂劈叉(Leg or arm splits)类别上仅为57.51和54.76。这些方法还难以在一个统一的全身框架中同时可靠地估计整体身体姿态和手部/足部的精细细节。此外,现有方法在域外数据上的泛化能力不足,在新数据集上的性能下降显著。以NLF方法为例,虽然它在多个数据集上训练(使用48个数据集),但在五个新评估数据集上的平均PCK仅为66.5,远低于其在标准基准上的表现。
本文的目标是本文的目标是开发一个鲁棒的全身人体网格恢复模型,能够在单张图像上准确估计身体、足部和手部的3D姿态。具体目标包括:(1)在标准基准上达到最先进性能,在3DPW数据集上PA-MPJPE低于34,在EMDB上MPJPE低于63;(2)在域外数据上展现强泛化能力,在五个新评估数据集上平均PCK超过73;(3)支持可提示推理,允许用户通过2D关键点或遮罩引导模型输出;(4)手部姿态估计达到与专用手部估计方法可比的性能,在FreiHand数据集上PA-MPJPE达到5.5。
与已有工作不同的是,本文的独特切入角度在于同时从数据和模型两个方面解决HMR的挑战。在数据方面,现有数据集要么因实验室采集设置而多样性不足(如Human3.6M等动作捕捉数据集),要么因伪标注而质量不高(如使用单目拟合获取的3DPW标注)。本文设计了一个基于VLM的数据引擎来主动挖掘具有挑战性的图像,并通过多阶段标注管线结合手动标注、可微优化、多视角几何和密集关键点检测来生成高质量标注。在模型方面,现有架构没有充分解决身体和手部姿态估计所需的不同优化机制,本文提出了双解码器设计和新的MHR参数化表示来解决这一问题。此外,本文是首个将可提示推理范式应用于全身人体网格恢复的工作,这使得模型能够在推理时接受用户引导来处理歧义场景。
核心方法
SAM 3D Body(3DB)的整体思路可以概括为:首先通过数据引擎收集大规模多样化的高质量训练数据,然后训练一个可提示的编码器-解码器模型来进行全身人体网格恢复。直觉上,要从单张图像恢复准确的3D人体网格,需要解决两个核心问题:(1)获取足够的高质量训练数据来覆盖各种真实世界场景;(2)设计一个能够有效利用这些数据的模型架构。本文的技术路线是:使用VLM驱动的数据引擎从数千万图像中挖掘有价值的样本,通过多阶段标注管线生成700万张高质量标注图像,然后设计一个共享图像编码器加双解码器(身体和手部)的架构,支持2D关键点和遮罩作为可选提示输入,输出基于MHR表示的3D人体网格参数。
本文的核心创新点与已有方法的本质区别体现在三个方面。首先,在模型架构上,3DB采用可提示的编码器-解码器设计,支持用户通过2D关键点或分割遮罩引导推理,这是SAM系列模型思想在HMR领域的首次应用。与CameraHMR等仅预测身体姿态的方法不同,3DB使用共享图像编码器和两个独立解码器(身体解码器和手部解码器),这种双解码器设计有效缓解了身体和手部姿态估计之间因输入分辨率、相机估计和监督目标差异而产生的优化冲突。其次,在参数化表示上,3DB使用MHR替代传统的SMPL模型,MHR显式解耦骨骼结构和表面形状,提供更丰富的控制和更好的可解释性。第三,在数据策略上,本文设计了一个VLM驱动的数据引擎,能够自动挖掘具有挑战性的图像并迭代更新挖掘规则,结合多阶段标注管线生成高质量的3D网格标注,这解决了高质量3D监督数据稀缺的瓶颈。
方法步骤详情
3DB的方法步骤可以分为模型推理和数据标注两个主要流程。在模型推理阶段:(1)输入的人体裁剪图像 I 经过视觉骨干网络(ViT-H或DINOv3)提取密集特征图 F = ImgEncoder(I),可选的手部裁剪图像 I_hand 也通过同一编码器得到手部特征 F_hand;(2)如果有2D关键点提示 K,通过位置编码和学习嵌入将其编码为提示token T_prompt,维度为 N x D;如果有分割遮罩提示,通过卷积嵌入后与图像特征逐元素相加;(3)身体解码器接收所有查询token的拼接 T = [T_pose, T_prompt, T_keypoint2D, T_keypoint3D, T_hand],通过交叉注意力融合提示信息和视觉上下文,输出 O = Decoder(T, F);(4)第一个输出token通过MLP回归最终的MHR参数 theta = {P, S, C, Sk},包括姿态、形状、相机和骨架;(5)推理时可选择性地融合手部解码器的输出来增强手部姿态估计。在数据标注阶段:(1)数据引擎使用VLM挖掘具有挑战性的图像;(2)人工标注者审阅并修正2D关键点位置;(3)使用595个密集关键点检测器预测密集2D关键点;(4)通过梯度优化拟合MHR网格参数,最小化包括2D关键点损失、初始化锚定正则化和先验在内的复合损失 L_fit = sum(lambda_j * L_j);(5)对于多视角数据集,进一步使用多视角几何约束进行联合拟合。
技术新颖性
3DB的技术新颖性体现在多个层面。首先,将可提示推理引入全身HMR是一个全新的范式,不同于传统HMR方法只在推理时输出固定的估计结果,3DB允许用户通过提供2D关键点或遮罩来交互式地引导模型输出,这在处理歧义或挑战性场景时特别有价值。实验表明,仅提供1个关键点提示就能将COCO上的PCK从86.7提升到90.2。其次,双解码器设计解决了全身HMR中的一个根本问题:身体和手部姿态估计的优化目标差异。手部估计需要更高分辨率的输入和不同的相机参数,而身体估计则更关注整体姿态。通过使用独立的解码器分别处理这两个任务,3DB避免了传统单解码器方法中的优化冲突。第三,MHR参数化表示相比SMPL提供了更清晰的骨骼-形状解耦,这不仅提高了可解释性,还为模型提供了更丰富的控制能力。第四,VLM驱动的数据引擎代表了数据收集方法的范式转变,从被动地使用现有数据集转向主动地挖掘和标注最有价值的样本,这种迭代式挖掘策略能够自适应地聚焦于当前模型的弱点。
实验结果
本文的实验结果全面验证了3DB在多个维度的优越性。在标准基准测试上,3DB在五个常用数据集上均优于所有单图像方法。在3DPW数据集上,3DB-H达到PA-MPJPE 33.2,3DB-DINOv3达到33.8,均优于NLF(33.6)和CameraHMR(35.1)。在EMDB和RICH这两个域外数据集上,3DB的优势更加明显:3DB-H在EMDB上MPJPE为62.9(NLF为68.4),在RICH上MPJPE为55.0(NLF为51.0,但NLF在训练中使用了RICH数据)。在五个新评估数据集上,3DB的泛化能力显著优于基线方法:使用留一法训练的3DB-H平均PCK为73.1,而NLF仅为66.5,CameraHMR为63.0,PromptHMR为59.0。使用完整数据集训练的3DB-H进一步提升至76.6。手部姿态估计方面,3DB在FreiHand数据集上达到PA-MPJPE 5.5,与专用手部方法(如WiLoR的5.5)持平,尽管3DB并未在FreiHand上训练。在SA1B-Hard数据集的24个类别分析中,3DB在所有类别上均优于基线,特别是在截断(Truncation)类别上优势显著,表明模型学习到了更强的姿态先验。大规模人类偏好研究(7800名参与者)显示,3DB在视觉质量上以83.8%的胜率击败NLF,整体达到5:1的胜率。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 全身人体网格恢复 | PA-MPJPE ↓ (3DPW) | 33.2 (3DB-H), 33.8 (3DB-DINOv3) | NLF: 33.6, CameraHMR: 35.1, PromptHMR: 36.1 | 相对NLF降低1.2%,相对CameraHMR降低5.4% |
| 全身人体网格恢复 | MPJPE ↓ (EMDB) | 62.9 (3DB-H), 61.7 (3DB-DINOv3) | NLF: 68.4, CameraHMR: 70.3, PromptHMR: 71.7 | 相对NLF降低8.0%,相对CameraHMR降低10.5% |
| 域外泛化 | Avg-PCK ↑ (五个新数据集留一法) | 73.1 (3DB-H) | NLF: 66.5, CameraHMR: 63.0, PromptHMR: 59.0 | 相对NLF提升9.9%,相对CameraHMR提升16.0% |
| 手部姿态估计 | PA-MPJPE ↓ (FreiHand) | 5.5 (3DB-H), 5.5 (3DB-DINOv3) | WiLoR: 5.1, HaMeR: 6.0, LookMa: 8.6 | 与专用手部方法WiLoR持平,优于HaMeR 8.3% |
| 人类偏好 | Win Rate ↑ vs NLF | 83.8% | NLF | 7800名参与者,每对比较1300名参与者 |
局限与改进
作者在论文中坦诚地讨论了3DB的三个主要局限性。首先,3DB单独处理每个人体,没有考虑多人或人-物交互,这限制了其准确解释相对位置和物理交互的能力。在多人场景中,模型需要依赖分割遮罩提示来区分不同个体。其次,虽然3DB在手部姿态估计方面取得了显著改进,但其准确性仍未超越专用手部估计方法。在FreiHand数据集上,3DB的PA-MPJPE为5.5,而WiLoR达到5.1。此外,由于训练时高质量全身数据的有限性,仅使用身体解码器的手部估计性能也不够理想。第三,3DB和底层网格模型MHR在建模所有年龄组的人体形状方面存在不足,可能对儿童产生次优的姿态估计和形状建模。从个人观察来看,本文的评估主要集中在单人场景,对于复杂多人交互场景的评估相对有限。此外,模型的推理速度和计算成本也是实际部署中需要考虑的因素,但论文中未详细讨论这些方面。
独立分析的弱点
尽管3DB取得了显著的性能提升,但仍存在几个可以改进的弱点。首先,在多人交互场景中,模型依赖于外部提供的分割遮罩来区分个体,这在遮罩质量不佳或人群密集的场景中可能失效。改进方向可以是将多人交互建模直接集成到模型架构中,例如通过联合预测多人的姿态和相对位置。其次,手部估计仍然不及专用方法,主要原因是全身数据中手部标注的稀缺性。可以通过收集更多高质量的全身手部数据、使用手部特定的数据增强策略、或设计更有效的手部-身体联合训练策略来改进。第三,模型对儿童等特殊人群的建模能力不足,这可能是因为训练数据中这些群体的代表性不足。改进方向包括专门收集这些群体的数据,或设计能够更好泛化到不同体型的模型架构。第四,论文未详细讨论模型的推理效率,在实际应用中,632M-840M参数的模型可能面临延迟和计算成本挑战,可以通过模型压缩、知识蒸馏或更高效的架构设计来优化。
未来方向
作者和本文可以延伸的未来研究方向包括:(1)将人-物交互和多人交互集成到模型中,这是作者明确提出的下一步方向,可以通过在训练过程中引入人类、物体和环境之间的交互来实现;(2)探索更高效的可提示推理机制,例如允许用户通过自然语言描述来引导姿态估计,而不仅仅是2D关键点或遮罩;(3)将3DB扩展到视频序列,利用时间信息进一步提高姿态估计的准确性和时间一致性,虽然论文中提到3DB已经与视频方法竞争,但专门的时间建模仍有提升空间;(4)改进MHR参数化表示,使其能够更好地处理不同年龄组和体型,特别是儿童和老年人;(5)探索3DB在下游任务中的应用,如机器人操作、人机交互、运动分析和虚拟现实等,论文中提到了这些应用场景但未深入探索;(6)设计更智能的数据引擎,使其能够自动发现和标注更多样化的挑战性场景。
复现评估
本文在复现性方面提供了良好的支持。代码已在GitHub开源(https://github.com/facebookresearch/sam-3d-body),模型权重也可公开获取。论文详细描述了模型架构(包括编码器、解码器和各种token的设计)、训练损失函数(2D/3D关键点损失、参数损失、手部检测损失等)、数据标注管线(手动标注、单视角网格拟合、多视角网格拟合)和数据引擎的工作流程。训练数据的来源也详细列出在Table 1中,包括13个数据集共计约700万张图像。然而,完整的训练数据由于版权问题可能无法完全公开,特别是来自商业图库的数据。算力方面,训练如此大规模的模型(632M-840M参数)和处理700万张图像需要相当大的计算资源,论文中未明确说明具体训练时间和硬件需求。此外,数据标注管线涉及多个复杂步骤(VLM挖掘、人工标注、密集关键点检测、网格拟合),完整复现整个管线可能需要相当的工程努力。总体而言,模型架构和推理代码的复现相对容易,但完整复现包括数据引擎在内的整个系统具有一定挑战性。
论文图表