OmniFit: Multi-modal 3D Body Fitting via Scale-agnostic Dense Landmark Prediction¶
会议: ECCV2026
论文: ECCV 原文
领域: 人体理解
关键词: 三维人体拟合、SMPL-X、稠密标志点、多模态、尺度预测
一句话总结¶
OmniFit 先从穿衣人体点云直接预测固定语义的稠密身体标志点,再优化 SMPL-X,并用可选 RGB 适配器和尺度预测处理外观补充与尺度歧义,在 4D-DRESS 点云评测中将 V2V 从 ETCH 的 2.408 cm 降至 0.589 cm。
研究背景与动机¶
三维人体扫描记录的是衣服、头发与身体共同形成的外表面,而动画和动作迁移需要的是衣服下面可驱动的人体模型。 因此,把人体模板贴到最近的扫描点上并不等于找到了正确身体:宽松衣物可能让表面远离真实躯干,手指和面部又需要更细的几何约束。 传统多视图拟合通常先渲染扫描,再检测二维关键点、三角化三维关键点,最后优化参数化人体。 这个过程能利用纹理,但检测错误会向后传播;无纹理资产或只有单侧可见点的输入也不适合完整渲染流程。 学习式方法尝试从点云提供拟合依据,常用关节、对应关系或稀疏标记作为中间表示,以避开直接回归人体参数的困难。 ETCH 已把稠密对应关系聚合成紧凑标记,但聚合依赖实际观测到的表面点,缺失区域可能让相应标记也丢失。
OmniFit 关注的输入不再局限于标准扫描:真实 RGBD、合成穿衣人体和生成式三维资产都可能进入同一个拟合系统。 这些输入的问题并不相同:点云可能缺背面,RGB 可能有也可能没有,而生成资产甚至没有可信的公制尺度。 把所有资产归一化到同一包围盒只能统一数值范围,不能统一人体大小,因为坐姿和站姿占据的空间不同。 与此同时,图像中的面部和手部线索不应该成为处理无纹理点云的硬性前提。 论文要保留一个独立可用的三维主干,再让尺度与外观信息以明确的接口参与,而不是要求所有输入都满足相同采集条件。
本文把中间表示换成预先固定在 SMPL-X 模板上的稠密标志点,每个输出始终对应同一个身体位置。 输入点云负责提供证据,输出标志点的身份和数量则不由观测表面决定,因此缺失观测不会直接删除预测目标。 手和头可以分配更多目标位置,RGB 只在可用时补充条件,尺度恢复则在进入标志点主干之前完成。 核心 idea:用固定语义的稠密标志点把穿衣表面理解与参数化人体拟合连接起来,并将可选外观条件和尺度恢复从核心几何预测中分离。
方法详解¶
整体框架¶
输入以三维点云为核心,可以来自网格采样、3D Gaussian Splatting 的点位置或 RGBD 传感器;单张正面 RGB 图像是可选条件。 输出是 SMPL-X 人体,而不是输入衣服表面的重建网格,也不是仅有骨架的姿态估计。 SMPL-X 用形状、姿态、表情和全局平移描述身体,原文给出的网格规模是 10475 个顶点,运动学结构包含 55 个关节。 其中形状和表情各有 10 个系数,姿态覆盖身体、眼睛、下颌和手指,因此拟合约束必须兼顾粗大肢体与精细部位。 尺度未知时,先通过“尺度恢复”将归一化点云变换到规范人体尺寸,再进入“稠密标志点解码”。 “可选图像适配”作用在该解码器内部,最后由“标志点约束拟合”把预测坐标转成合法的 SMPL-X 参数。 下图中点云条件和图像条件在解码层内并行融合;训练监督不属于推理时输入。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
Input["人体点云"] -->|尺度未知时| Scale["尺度恢复"]
Input -->|已知规范尺度| Point["点云编码"]
Scale --> Point
subgraph Decoder["稠密标志点解码"]
direction TB
Query["600 个可学习查询"] --> Fusion["条件融合与自注意力"]
Adapter["可选图像适配"] -->|层内并行条件| Fusion
Fusion --> Landmarks["600 个三维标志点"]
end
Point --> Fusion
Image["可选正面 RGB"] --> Adapter
Landmarks --> Fit["标志点约束拟合"]
Fit --> Output["SMPL-X 人体"]
关键设计¶
1. 尺度恢复:先消除输入尺寸与人体先验之间的错位
生成模型常把人体资产压到单位包围盒,但相同包围盒中的蹲坐人体与站立人体并不对应相同的实际身高。 OmniFit 将归一化点云送入单独的尺度预测器,在点云 patch token 序列前加入一个可学习的 scale token。 经过 Transformer 后,只读取该 token 的输出并用 MLP 回归尺度因子,而不是把每个坐标独立修正。 原文第 3.4 节给出的应用关系为:
这里 \(\widetilde{X}\) 是归一化输入,\(S\) 是预测的统一尺度,\(X\) 才是送给标志点预测器的点云。 训练时通过把原始人体归一化到 \([-0.9,0.9]\) 构造监督,目标尺度对应恢复归一化前大小所需的因子。 该模块解决的是整体尺度歧义,并不是对局部拉伸、身体比例畸变或任意几何损坏的修复。 从可辨识性看,归一化几何本身不能唯一确定真实公制身高,因此这里应理解为利用训练分布学习合理人体尺度,而非恢复不可观测的物理真值。
2. 稠密标志点解码:输出位置固定,观测证据可变
模型固定预测 600 个 SMPL-X 模板顶点,分配为头部 120、身体 300、双手合计 180 个。 这些标志点不是扫描表面的采样点,也不是通过对当前输入点聚类才产生的中心,而是底层人体上的固定语义目标。 Point-BERT 主干先把输入点云转换为 patch 嵌入,再经 Transformer 提取局部点云特征。 Perceiver 风格解码器使用 600 个可学习嵌入作为查询,每层先通过交叉注意力读取点云证据,再通过自注意力交换标志点之间的信息。 交叉注意力回答“哪些观测点支持这个身体位置”,自注意力则让头、躯干和四肢的预测相互协调。 最终 MLP 为每个查询输出一个三维坐标,后续拟合因而拿到了一组身份一致、数量固定的目标。
这种设计的重要区别在于,缺少背部或某只手的观测时,对应查询仍然存在,模型可以根据其余几何和人体先验推断位置。 这不意味着被遮挡部位已被真实测量,只意味着输出接口不再因局部表面缺失而失效。 论文图 9 将注意力按头、身体、手分组,可视化显示查询倾向于关注相应输入区域,支持其隐式学习部位对应的解释。 不过,注意力图是定性证据,不能单独证明所有点都建立了精确的一一对应。 相较逐点查询隐式对应场,直接监督有限个固定目标也让训练对象更明确,并能主动调整精细部位的约束密度。
3. 可选图像适配:在几何解码层中补充外观证据
若资产有纹理,或 RGBD 采集同时提供彩色图像,模型可以额外使用一张正面 RGB 图像。 DINOv2 提取图像特征,轻量图像交叉注意力分支与原有点云交叉注意力并行放在每个解码层中。 标志点查询同时读取这两类条件,随后进入残差融合与自注意力,因此图像不是替代点云,而是补充表面几何难以区分的细节。 手指姿态和面部局部结构是论文强调的受益区域,服装纹理也能提供仅凭稀疏点位置难以获得的线索。 适配器关闭时仍使用原有点云模型,输入契约不要求每次都有 RGB,更不是纯单图人体恢复系统。
训练采用先主干、后适配器的顺序:先把点云编码器与标志点解码器联合训练好,再冻结已有预测器,仅更新新增适配器分支。 适配器继续使用同一套标志点坐标监督,不需要把目标换成图像生成或像素重建。 4D-DRESS 的训练条件来自纹理网格的正面正交投影渲染,因此实验验证的是这一明确图像配置。 本文尚未提供任意相机姿态、多视图集合或严重图像与点云失配下的完整适配结果,不能把“可插拔”解释成任意视觉输入都已受支持。
4. 标志点约束拟合:让预测坐标落回可驱动人体空间
标志点网络给出的是坐标,并不直接保证这些坐标能由同一个合法人体模型产生。 推理时优化 SMPL-X 的形状、姿态、表情与平移,使当前模型上的对应标志点靠近预测标志点。 原文第 3.5 节将目标表述为对应标志点之间的平方欧氏距离之和,因此该步骤利用固定顶点身份,无须再寻找最近邻匹配。 第 4.3 节给出三阶段优化:先只优化平移 20 步,学习率 \(5\times10^{-1}\);再联合优化前 2 个形状系数与姿态 30 步,学习率仍为 \(5\times10^{-1}\);最后优化全部参数 20 步,学习率 \(2\times10^{-1}\)。 先对齐整体位置,再调整主要体形和动作,最后开放全部自由度,可以避免一开始把位置偏差交给局部姿态去吸收;这是对该顺序的机制理解。 合计 70 步优化也说明“学习式拟合”并不等于一次前向传播直接得到最终人体,迭代成本仍然保留。
一个完整示例¶
考虑一个被归一化到 \([-0.9,0.9]\)、只有正面可见点的坐姿人体,并假设同时有对应正面 RGB;这是流程说明,不是新增实验。 尺度预测器先利用坐姿的整体几何输出 \(S\),把点云统一缩放到模型期望的人体尺寸,而不是按包围盒高度直接当成站姿身高。 点云编码器提供局部几何,600 个查询分别寻找各自身体位置的证据;背部不可见时,背部目标仍会被预测。 若启用图像适配器,RGB 特征在解码层内补充手部与面部信息,最终仍输出同一套 600 个坐标。 随后完成 20、30、20 步三阶段优化,得到可以用于后续动画的 SMPL-X,而不是把生成资产的衣服当成人体皮肤。 若没有图像,跳过图像分支即可;若输入本来具有规范尺度,则不需要先估计尺度。
损失函数 / 训练策略¶
标志点预测使用预测坐标与真实标志点坐标之间的均方误差;尺度预测器独立训练,使用预测尺度与真实尺度之间的均方误差。 缓存中的若干排版公式存在宏和运算符缺损,因此这里依据第 3.5 节文字解释目标,不把修补的表达式冒充作者原公式。 点云编码器、标志点解码器和尺度预测器分别采用 16、24、12 个 Transformer block。 优化器为 AdamW,学习率 \(5\times10^{-5}\),训练 100 个 epoch,硬件为 8 张 48GB NVIDIA GPU。 每 GPU 的 batch size 分别为标志点预测器 20、适配器 24、尺度预测器 64。 训练点数随机取自 \([5000,20000]\),并加入随机旋转;50% 的完整点云会替换为部分点云。 部分点云通过移除正面视角不可见的顶点与面,再在剩余表面采样获得,因此缺失模式具有明确的单视角来源。 标准比较遵循 ETCH 的 CAPE 与 4D-DRESS 划分;更强泛化模型另外加入两套合成人体数据。 其中增强后的 BEDLAM2 贡献 98,659 帧,将 Motion-X 动作重定向到 SynBody 模板得到 158,410 帧。 合成数据同时扩大姿态和几何覆盖,并提供准确的底层人体监督,这比只增加外观多样性更直接地服务于拟合任务。 泛化图像适配器还引入 2K2K 与 X-Humans 的点云和正面渲染图像,不能与仅在 4D-DRESS 上训练的适配器混为一谈。
实验关键数据¶
主实验¶
原文表 1,第 9 页;仅点云输入,统一使用 5,000 个点,基线由作者实现为 SMPL-X 版本并采用相同训练与测试设置。 V2V 是对应网格顶点的平均欧氏距离,MPJPE 是 SMPL-X 关节的平均位置误差;下表均为全身误差,单位 cm,越低越好。
| 方法 | CAPE V2V | CAPE MPJPE | 4D-DRESS V2V | 4D-DRESS MPJPE |
|---|---|---|---|---|
| IPNet | 5.529 | 5.611 | 7.495 | 7.380 |
| PTF | 2.341 | 2.641 | 3.297 | 3.567 |
| NICP | 1.736 | 2.074 | 4.085 | 4.862 |
| ArtEq | 2.202 | 2.405 | 3.072 | 3.378 |
| ETCH | 1.567 | 2.002 | 2.408 | 3.459 |
| OmniFit | 0.672 | 0.659 | 0.589 | 0.662 |
相对 ETCH,CAPE 的 V2V/MPJPE 降幅为 57.1%/67.1%,4D-DRESS 为 75.5%/80.9%,与表中全身数据一致。 0.589 cm 等于 5.89 mm;所谓“毫米级”指这些基准上的平均误差,不能外推为任何真实输入都达到相同精度。 表 2,第 11 页显示,4D-DRESS 上加入图像适配器后 V2V/MPJPE 从 0.589/0.662 降至 0.539/0.622 cm。 同表 EasyMocap 为 3.047/4.029、DiffProxy 为 2.093/2.630 cm,但它们使用多视图 RGB 与相机信息,OmniFit 使用几何点云并可附加正面图像。 作者明确指出该比较不是严格的同模态比较,能支持的是“已有三维资产时采用三维原生拟合有效”,而不是证明单张图像比多视图信息更多。
消融实验¶
原文表 4,第 12 页;使用在 4D-DRESS 上训练的标志点预测器,将输入归一化到 \([-0.9,0.9]\) 后考察尺度处理,单位 cm,越低越好。
| 尺度配置 | V2V | MPJPE | 解释 |
|---|---|---|---|
| 真实尺度 | 0.589 | 0.662 | 已知正确尺度的参考 |
| 无尺度预测 | 1.120 | 1.172 | 不通过预测器恢复尺度 |
| 有尺度预测 | 0.651 | 0.709 | 使用预测尺度再拟合 |
预测尺度将 V2V 从 1.120 降至 0.651 cm,原文报告降幅 41.9%;MPJPE 降幅为 39.5%。 它仍未达到真实尺度参考,说明尺度模块有效但并没有完全消除尺度估计误差。
原文表 5,第 12 页;总标志点固定为 600,比较 4D-DRESS 上不同部位分配,报告全身 V2V/MPJPE,单位 cm。
| 配置 | 双手标志点 | 头部标志点 | 身体标志点 | V2V | MPJPE |
|---|---|---|---|---|---|
| A | 300 | 120 | 180 | 0.655 | 0.701 |
| B | 240 | 120 | 240 | 0.621 | 0.690 |
| C,采用配置 | 180 | 120 | 300 | 0.589 | 0.662 |
| D | 120 | 120 | 360 | 0.637 | 0.724 |
分配更多手部目标并不必然得到最好的全身拟合;配置 C 在身体约束覆盖和手部细节之间取得了更好的实测结果。 原文表 1 的区域增益行并非每一列都以该列最佳基线为参照,例如 CAPE 手部 V2V 最低基线为 NICP 的 2.741,而该行 80.6% 对应 ETCH 的 3.449;本文不复述其“逐区域第二名”解释。
关键发现¶
- 输入密度有实质影响:表 7,第 13 页中,点数从 5,000 增至 15,000,V2V 从 0.589 降至 0.452 cm;不能把该更密输入结果与表 1 的统一 5,000 点基线混比。
- 固定查询并不免费:表 6,第 13 页中,100 到 600 个标志点使计算量从 23.82 升至 93.38 GFLOPs,训练吞吐量从 0.88 降至 0.46 次迭代/秒;该吞吐量不是推理帧率。
- 部分点云仍有信息代价:表 9,第 13 页中,CAPE V2V 从完整输入的 0.672 升至 0.887 cm,4D-DRESS 则从 0.589 升至 0.595 cm。
- 泛化适配器依赖训练覆盖:表 3,第 11 页中,THuman2.1 上 Adapter 与 Adapter* 的 V2V 分别为 1.767 和 0.835 cm,星号表示扩展训练数据。
亮点与洞察¶
- 固定语义查询把“观测点是否存在”与“需要预测哪个身体位置”分开。这对局部缺失输入尤其重要,但仍需把预测补全与真实测量区分开。
- 稠密标志点是可检查的中间表示。它既方便用坐标直接监督,也让优化器获得明确对应关系,比直接把整个问题塞进人体参数回归更容易定位误差。
- 可选 RGB 分支保留了纯几何模型的独立用途。使用模态特定适配器补充冻结主干,是值得迁移到其他几何拟合任务的设计思路。
局限与展望¶
- 作者在第 15 页明确承认迭代 SMPL-X 优化增加推理时间,当前方法不是无优化的实时参数回归方案。
- 作者另一个明确局限是适配器只支持一张正面图像,多视图扩展仍属于后续工作。
- 真实采集证据规模有限:表 10,第 14 页的 BEHAVE 测试仅含 20 次 Kinect 采集,泛化点云模型与适配器的 V2V 为 2.550 和 2.224 cm。
- 作为读者判断,尺度预测依赖人体尺寸先验、部分点云训练依赖单视角可见性模拟;异常体型、特殊遮挡和非均匀形变需要单独评估,不能由当前结果自动保证。
- 后续可研究带不确定性的标志点预测,用置信度影响拟合权重,降低不可见区域错误预测的影响;这是研究建议,不是本文已实现模块。
相关工作与启发¶
- ETCH,原文参考文献 [31],第 17 页:通过聚合对应关系获得标记;OmniFit 直接用固定查询预测标志点,区别在于目标身份不依赖当前观测点的聚合结果。
- Perceiver,原文参考文献 [26],第 17 页:提供以可学习查询读取输入特征的架构基础;本文将其落实为有 SMPL-X 顶点语义的坐标输出接口。
- SMPL-X,原文参考文献 [47],第 18 页:提供统一的身体、手和面部参数化空间;OmniFit 改进的是从穿衣观测到该空间的约束预测,而非人体模型本身。
- EasyMocap 与 DiffProxy,原文参考文献 [1]/[61],第 16/19 页:代表多视图拟合路线;本文的启发是在已有三维几何时直接利用几何,不必先把全部依据转换成二维观测。
评分¶
- 新颖性: 4/5。固定稠密标志点、可选图像适配和尺度恢复形成了清晰的任务方案,基础注意力组件沿用已有架构。
- 实验充分度: 4/5。含标准比较、尺度与配置消融、跨数据集和部分输入评测,但真实采集规模及模态公平性仍有限制。
- 写作质量: 4/5。方法主线明确,也主动说明比较边界;缓存公式损坏且区域增益说明需谨慎核对。
- 价值: 4/5。适用于把扫描或生成式三维人体转换成可驱动模型,部署价值仍需结合优化延迟与实际采集分布判断。