Expressive Body Capture: 3D Hands, Face, and Body from a Single Image

AI Generated

开场 & 问题定义

  • 单张 RGB 图 → 3D 人体、手、脸:为什么重要?
  • 现有方法只能做“身体”或“手/脸独立”,缺少全身统一方案。

研究目标

  • 提出 SMPL-X:一个 119 维参数即可驱动的全身+手+脸模型
  • 提出 SMPLify-X:仅用 1 张 RGB + 2D 关键点 → 10 k 顶点网格

背景 & 相关工作

  • 分部位模型:SMPL(身体)、MANO(手)、FLAME(脸)
  • 早期拼接模型 Frank/SMPL+H 的缺陷
  • 单图 3D 人体估计:SMPLify、HMR、NBF 等——只到身体层级

技术路线总览

单图 → OpenPose 2D keypoints → SMPLify-X 优化 → SMPL-X 网格


SMPL-X 统一模型

组成

  • 10475 顶点、54 关节、119 参数
  • β(10)\beta(10) : 体型 | θbody(75)\theta_{body}(75) : 身体姿态 | θ_hand(24) : 手指 | ψ(10)\psi(10) : 表情

数学公式

线性蒙皮

M(β,θ,ψ)=W(Tp,J(β),θ,W)M(\beta,\theta,\psi)=W(T_p,J(\beta),\theta,W)

偏移

Tp=Tˉ+BS(β)+BE(ψ)+BP(θ)T_p = \bar T + B_S(β)+B_E(ψ)+B_P(θ)

  • S: shape
  • E: expression
  • P: pose blend shapes

训练数据

CAESAR、MANO、FLAME 扫描 → 统一对齐 → 性别三模板

SMPLify-X 优化框架

目标函数

E=EJ+λθbEθb+λθfEθf+λCECE=E_J+\lambda_{\theta_b}E_{\theta_b}+\lambda_{\theta_f}E_{\theta_f}+\lambda_CE_C

四大技术插件

  • 3.3 VPoser:32 维 VAE 姿态先验
  • 3.4 Collision:GPU-BVH 三角形级穿模惩罚
  • 3.5 Gender:ResNet18 自动性别分类
  • 3.6 优化:PyTorch + L-BFGS 三段退火

实验结果

  • 新数据集 EHF:100 张图 + 伪真值
  • 顶点误差:
    SMPL 57.6 → SMPL+H 54.2 → SMPL-X 52.9 mm
  • 消融:VPoser –3.5 mm、Collision –0.6 mm、性别 –5.1 mm
  • 与 Frank(500 相机)对比:单图即可达到相似或更自然效果
  • in-the-wild 结果:LSP、MPII、COCO 示例

结论 & 展望

  • 第一次把身体、手、脸统一在单张图下重建
  • 代码 / 模型 / 数据开源:https://smpl-x.is.tue.mpg.de
  • 下一步:大规模 in-the-wild 伪真值 + 直接回归网络

局限与未来工作

  • 只依赖 2D 关键点 → 深度歧义仍存在,严重遮挡时估计会漂。
  • 头发、衣服、软组织不在模型内,重建的是“裸模”。
  • 下一步:
    • 用大规模 in-the-wild 伪标签训练直接回归网络(类似 HMR)。
    • 引入语义分割、深度、时序信息,解决遮挡和深度歧义。
    • 把头发、衣物作为附加层。


电波交流