跳转至

BLADE: Single-view Body Mesh Learning through Accurate Depth Estimation

会议: CVPR 2025
arXiv: 2412.08640
代码: 项目主页
领域: 3D视觉
关键词: 人体网格恢复, 透视投影参数估计, 深度估计, 近距离人体重建, SMPL-X

一句话总结

提出BLADE方法,通过准确估计人体骨盆Z方向深度\(T_z\)来解耦透视投影参数,再用\(T_z\)-aware的姿态估计器恢复人体网格,最后通过可微分光栅化求解焦距和XY平移,首次在不依赖正交相机启发式假设的情况下实现了从单张图像准确恢复透视投影参数和人体3D Mesh。

研究背景与动机

领域现状:单图人体网格恢复(HMR)是3D视觉的经典问题,涉及从2D图像同时估计人体形状、姿态和相机参数。现有方法(如HMR、CLIFF、AiOS、TokenHMR)通常假设近正交投影——即人离相机足够远,焦距可以启发式估计(如从图像分辨率推导或固定为常数5000)。

现有痛点:(1) 近正交假设在近距离图像上完全失效——当人靠近相机时,透视畸变显著,正交模型无法表达;(2) 现有方法无法同时实现准确的3D姿态和2D对齐——TokenHMR已指出改善2D对齐会恶化3D精度,反之亦然;(3) ZOLLY等声称支持透视投影的方法仍然依赖启发式公式将正交参数转换为透视参数,这些近似在近距离时严重不准确。

核心矛盾:从单张图像恢复所有参数(形状\(\beta\)、姿态\(\theta\)、焦距\(f\)、3D平移\(T_x, T_y, T_z\))是严重欠定的。现有方法通过正交假设减少未知数,但牺牲了近距离图像的精度。如何在不做正交假设的情况下分阶段解耦这些变量?

本文目标:建立一个完全基于透视投影的HMR pipeline,能处理从远距离到近距离的各种图像,同时实现准确的3D姿态、2D对齐和透视参数恢复。

切入角度:作者发现一个被长期误解的关键事实——透视畸变由\(T_z\)(人到相机的Z距离)决定,而非焦距\(f\)。焦距只影响缩放,\(T_z\)才非线性地影响投影畸变(尤其在\(T_z < 1.2\)m时变化剧烈)。因此,\(T_z\)可以从图像中的畸变程度可靠估计出来。

核心 idea:三阶段解耦——先从图像估计\(T_z\)(因为畸变可观测),再用\(T_z\)条件化姿态估计(因为畸变影响姿态表观),最后通过可微分光栅化求解\(f, T_x, T_y\)(因为它们在\(T_z\)已知时退化为对齐参数)。

方法详解

整体框架

BLADE是一个三阶段pipeline:(1) 骨盆深度估计器\(F_{T_z}\)从裁剪图像\(I_{crop}\)估计\(T_z\);(2) \(T_z\)-aware姿态估计器\(F_{pose}\)从完整图像\(I\)\(T_z\)估计SMPL-X参数\((\beta, \theta)\);(3) 相机求解器通过可微分光栅化优化\((f, T_x, T_y)\)使渲染mesh与人体分割mask对齐。输入是单张包含人体的图像,输出是SMPL-X Mesh参数和完整的透视投影参数。

关键设计

  1. 骨盆深度估计器 (\(F_{T_z}\)):

    • 功能:从人体裁剪图像直接估计骨盆到相机的Z距离
    • 核心思路:利用预训练的Depth Anything V2(DAv2)作为backbone提取图像外观特征,接一个可学习的ConvNet + Transformer Head来回归\(T_z\)值。关键训练策略是使用加权\(L_1\)损失\(L_{depth} = \frac{1}{T_z^{GT}} \cdot \|T_z - T_z^{GT}\|_1\)——近距离样本的误差权重更大,因为透视畸变在近距离非线性增强(\(1/T_z\)的导数在小\(T_z\)时很大)。为解决现有数据集缺乏近距离样本的问题,作者创建了合成数据集Bedlam-cc(200万张图像,80%样本\(T_z \in [0.3, 1.2]\)m)。消融实验显示DAv2是最佳backbone(\(E_{T_z}=15.4\)cm on SPEC-MTP),优于DINOv2(30cm)和Sapiens(21cm)。
    • 设计动机:透视畸变是\(T_z\)的可观测信号——近距离的人体会呈现明显的头大脚小效应。单目深度估计的最新进展(DAv2)为准确估计\(T_z\)提供了强大的先验。加权损失确保模型在最关键的近距离区间有最高精度。
  2. \(T_z\)-aware姿态估计器 (\(F_{pose}\)):

    • 功能:在已知\(T_z\)条件下估计更准确的SMPL-X形状和姿态参数
    • 核心思路:采用ControlNet式架构注入\(T_z\)信息到预训练的AiOS姿态估计器中。冻结原始AiOS backbone,创建其可训练副本,副本的输出通过零初始化MLP后与冻结backbone的输出相加。\(T_z\)通过两个MLP编码为深度特征,注入到可训练backbone的encoder特征中。训练损失包括形状损失\(L_{shape} = L_1(\beta, \beta^{GT})\)、姿态角度误差\(L_{pose} = E_{ang}(\theta, \theta^{GT})\)、关节位置损失\(L_{joint} = L_1(J, J^{GT})\)和顶点损失\(L_{vert} = L_1(V, V^{GT})\),权重分配为\(w_{shape}=1, w_{pose}=1, w_{joint}=5, w_{vert}=5\)
    • 设计动机:同一个人同一个姿态在不同\(T_z\)下的图像表观差异很大(因为透视畸变不同),如果不告诉姿态估计器"这个人离相机多远",它会把畸变误判为姿态变化。ControlNet架构的优势在于零初始化MLP保证训练初始阶段不破坏原始AiOS的性能,然后逐渐学习\(T_z\)信息的利用。消融显示:直接finetune AiOS反而导致性能退化(PVE从110.9升至120.6),而ControlNet式\(T_z\)条件化则显著提升(PVE降至99.6)。
  3. 可微分光栅化相机求解器:

    • 功能:从\(T_z\)和mesh参数恢复焦距\(f\)和XY平移\(T_x, T_y\)
    • 核心思路:一旦\(T_z\)已知且mesh的\((\beta, \theta)\)已估计,\((f, T_x, T_y)\)本质上是对齐参数——\(T_x, T_y\)控制mesh在图像平面上的位置,\(f\)控制投影缩放。初始化\(T=[0,0,T_z]\)\(f_{init}=h\)(图像高度),将SMPL-X mesh通过可微分光栅化渲染为二值mask,然后优化\((f, T_x, T_y)\)使渲染mask与off-the-shelf分割器提供的人体mask之间的IoU最大化。对两个mask都施加高斯平滑以确保全图范围的梯度流。优化过程还可以同时微调\(T_z\)和全局朝向以进一步提高质量。
    • 设计动机:这一步将相机参数估计转化为一个mask对齐优化问题——这比直接回归\((f, T_x, T_y)\)更稳健,因为它利用了明确的几何约束而非统计关联。可微分光栅化使得整个优化过程端到端可微,是联合优化的关键使能技术。

损失函数 / 训练策略

两阶段训练:Stage 1训练\(F_{T_z}\)(128 batch, 8×A100, 4 epochs),使用加权\(L_1\)深度损失;Stage 2冻结\(F_{T_z}\),训练\(F_{pose}\)(336 batch, 48×A100, 4 epochs),使用四项组合损失。相机求解不需要训练。训练数据包括H36M、PDHuman、HuMMan和自建Bedlam-cc数据集。

实验关键数据

主实验(多数据集SOTA对比)

方法 SPEC-MTP \(E_{T_z}\) SPEC-MTP PVE↓ SPEC-MTP mIoU↑ Bedlam-cc \(E_{T_z}\) Bedlam-cc mIoU↑
ZOLLY 0.899 126.7 62.3 0.539 51.8
AiOS* 1.035 110.9 48.7 2.340 54.6
TokenHMR* 0.909 124.3 49.7 2.378 54.2
SMPLer-X* 0.980 102.6 53.0 2.057 53.0
BLADE 0.129 111.9 68.7 0.326 74.6
BLADE (real-world) 0.127 99.6 69.5 0.325 75.0

消融实验

配置 SPEC-MTP PA-MPJPE↓ SPEC-MTP PVE↓ 说明
raw AiOS 62.8 110.9 原始AiOS预训练模型
ft. AiOS 64.9 120.6 直接finetune AiOS,性能反而下降
BLADE (\(T_z\) cond.) 56.7 99.6 ControlNet式\(T_z\)条件化
深度Backbone SPEC-MTP \(E_{T_z}\)(m)↓
DINOv2 0.300
Sapiens 0.210
DAv2 0.154
BLADE (DAv2+Bedlam-cc) 0.127

关键发现

  • \(T_z\)估计精度提升约7倍:在SPEC-MTP上,BLADE的\(E_{T_z}=0.127\)m,远优于ZOLLY的0.899m(提升85.9%),说明直接估计\(T_z\)比从正交参数启发式转换准确得多。
  • 2D对齐大幅领先:BLADE在SPEC-MTP上mIoU达69.5%,第二名ZOLLY仅62.3%——相对提升11.6%。在Bedlam-cc上差距更大(75.0% vs 54.6%),说明准确的透视参数对2D对齐至关重要。
  • \(T_z\)条件化是姿态估计的关键:直接finetune AiOS会过拟合到小型近距离数据集并丧失泛化性(PVE从110.9升到120.6),而ControlNet式\(T_z\)注入既保持了AiOS的泛化能力又学到了畸变信息(PVE降至99.6)。
  • Bedlam-cc数据集的价值:加入合成近距离数据后\(E_{T_z}\)从15.4cm降至12.7cm,证明了近距离训练数据的重要性。
  • 焦距不影响畸变的发现:这一几何事实虽然在数学上简单,但长期被HMR社区忽视。纠正这个误解使得参数解耦成为可能。

亮点与洞察

  • 纠正长期误解:清晰论证了焦距只是缩放因子,\(T_z\)才是畸变的唯一来源——这个看似简单的认知纠正直接启发了整个方法设计。在研究中挑战"被默认接受的假设"往往能带来突破性进展。
  • 三阶段解耦的优雅设计:将一个严重欠定的联合估计问题分解为三个各自良定义的子问题——先用可观测信号估计\(T_z\),再用\(T_z\)条件化姿态估计,最后将剩余参数转化为对齐优化。每一步都有明确的几何/物理依据。这种解耦思路可迁移到其他涉及多变量联合估计的ill-posed问题。
  • ControlNet式的知识保持策略:零初始化MLP保证不破坏预训练知识,同时允许注入新条件信息。这比直接finetune更优的实验结果(120.6 vs 99.6)是一个有力的工程实践证据。

局限与展望

  • 仅支持单人场景:当前方法一次只处理一个人,面对多人场景需要外部检测器分别处理。
  • 不考虑镜头畸变:假设标准针孔相机模型,不适用于鱼眼镜头等非标准相机。
  • 分割mask依赖:相机求解器的精度受限于off-the-shelf分割器的质量——mask严重不准确时优化会失败。
  • 计算资源需求大:训练阶段需要48×A100 GPU,对学术界不太友好。
  • 改进方向:扩展到视频序列以利用时序信息;学习可微分的相机求解器替代光栅化优化以提高鲁棒性;处理多人场景;考虑镜头畸变模型。

相关工作与启发

  • vs ZOLLY: ZOLLY也估计\(T_z\),但仍依赖启发式公式\(f = s \cdot h \cdot T_z / 2\)将正交参数转换为透视参数。BLADE完全抛弃启发式,通过可微分光栅化直接求解——在\(T_z\)精度上提升7倍,在mIoU上提升11+个百分点。
  • vs TokenHMR: TokenHMR发现2D对齐和3D精度的trade-off并提出TALS损失函数来平衡,但仍在正交框架内。BLADE通过准确的透视建模从根本上解决了这个trade-off——同时达到最好的2D和3D精度。
  • vs AiOS: BLADE以AiOS为姿态估计backbone,通过ControlNet式架构注入\(T_z\)信息,在不破坏AiOS强大泛化能力的同时大幅提升了近距离精度,是一个优秀的"在已有强模型上做增量改进"的范例。

评分

  • 新颖性: ⭐⭐⭐⭐ 核心insight(焦距不影响畸变、\(T_z\)解耦)虽然数学上简单但被长期忽视,三阶段设计优雅
  • 实验充分度: ⭐⭐⭐⭐⭐ 4个数据集、9+个指标、多个SOTA对比、完整消融、真实世界定性评估、自建数据集
  • 写作质量: ⭐⭐⭐⭐⭐ 逻辑链条清晰(发现→验证→设计→实验),图示精美,补充材料极为详尽
  • 价值: ⭐⭐⭐⭐⭐ 彻底解决了近距离HMR的long-standing问题,NVIDIA出品+代码开源,对视频会议、AR/VR等应用有直接价值

相关论文