
# FrankMocap：通过回归与整合实现快速的单目3D手部与身体运动捕捉

余荣 $^{1,3}$ 白鸟贵明 $^{2}$ 朱汉彪 $^{3}$

 $^{1}$香港中文大学 $^{2}$Facebook Reality Labs $^{3}$Facebook AI Research

![Image](images/3d8608a1cc869e5fe88f52651aa6671c5af5e71541a6a699b7daf26fbb22da80.jpg)

![Image](images/d8f9f1858f10ebcd7cc85f5fbb79f8c8091eed72fb34fd4412608757b5d2f11d.jpg)

![Image](images/aa5ccf64206deebb55993ff6f228380b2b1ff2d63eccc81b2bbcac334db23d9d.jpg)

图1：我们提出了一种完整的3D人体运动捕捉系统，名为FrankMocap，能够从普通单目视频中同时估计3D人体和手部运动。我们的系统允许使用单个RGB摄像头进行实时全身运动捕捉演示，如左图所示。右图展示了在真实场景视频中的几个示例结果，分别显示了输入图像（左）、3D手部运动捕捉输出（中）以及全身运动捕捉输出（右）。

## 摘要

尽管人类运动的核心特征往往体现为身体动作与手势的结合，但现有的单目运动捕捉方法大多要么仅关注身体运动而忽略手部部分，要么仅捕捉手部运动而不考虑身体运动。在本文中，我们提出了FrankMocap $^{1}$——一种能够从真实场景的单目输入中同时估计3D手部与身体运动的捕捉系统，其速度（9.5 fps）更快，精度也优于以往的研究。为构建FrankMocap，我们以全身参数化模型（SMPL-X）的手部部分为基础，开发了最先进的单目3D“手部”运动捕捉方法。我们的3D手部运动捕捉输出能够高效地与单目身体运动捕捉输出相整合，最终在统一的参数化模型结构中生成全身运动结果。我们在公开基准测试中验证了该手部运动捕捉系统的顶尖性能，并在包括实时演示场景在内的各种具有挑战性的真实场景中展示了其高质量的全身运动捕捉效果。 $^{2}$

### 1. 引言

每天有数十亿的人类活动被录制为视频并上传至公共网站，这些视频记录了各种真实场景下极其多样的人类行为。能够从这些视频中数字化提取人类运动的技术，在人机交互、社交人工智能及机器人等领域具有巨大的应用潜力。借助普通摄像头且计算量较小的运动捕捉系统，人们就能充分利用这类应用。

虽然手和身体对于实现这些应用中的人体运动理解同样重要，但手部属于体积较小的身体部位，即便使用专业动作捕捉系统，也难以同时捕捉手和身体的运动。最近关于从单张RGB图像估计3D人体姿态（即躯干和四肢）的研究也面临同样的问题 [^5] [^20] [^55] [^25] [^26]。尽管人体姿态估计的精度有了显著提升，但细微的手指动作仍被忽略，导致人体运动的原有细腻度丧失。类似地，基于深度输入 [^34] [^48] [^45] [^47] [^53] [^58] 或单张RGB图像 [^62] [^9] [^15] [^8] [^11] [^61] 的3D手部姿态估计也取得了显著成果。然而，这类方法通常是在特定于手部的摄像头视角下验证的，而非更具挑战性的真实场景——即摄像头需要同时捕捉人的全身及手部动作。

---

这类图像往往分辨率较低且常伴有运动模糊现象。近期有一些研究试图利用能够同时描述手和身体的3D参数化模型来捕捉全身（即身体和手部）的3D运动 [^19] [^55] [^37]。不过，这些方法依赖优化技术来让参数化模型适配图像测量结果，其处理速度相对较慢，无法满足实时应用的需求。

在本文中，我们提出了一种快速且精准的动作捕捉方法，能够从单目RGB图像或视频中估计3D人体和手部姿态，如图1所示。我们的方法包含两个回归模块：它们分别从输入的单张RGB图像中预测人体和手部的3D姿态，随后通过一个整合模块，利用人体模块和手部模块的输出生成全身姿态 $^{3}$。该方法的核心思路是尽可能让人体模块和手部模块的输出具备兼容性，从而能够高效地将两者整合以实现全身动作捕捉。为使这一整合过程易于实现，我们采用了SMPLX模型 [^37]，该模型为人体和手部提供了统一的骨骼与网格表示。基于此，人体模块和手部模块会为同一输出结构贡献不同的部分。受近期3D人体运动估计研究成果的启发 [^20] [^25]，手部模块和人体模块均采用深度神经网络技术，可直接从输入的单张RGB图像中回归出3D姿态。一旦从两个模块得到3D人体和手部姿态估计结果，只需将预测出的人体和手部姿态直接复制到SMPL-X模型中即可完成整合，从而实现接近实时的全身3D动作捕捉性能（$\sim$9.5帧/秒）。通过我们提出的优化框架，还能进一步提升全身姿态估计的精度。秉承Joo等人 [^19] 的研究思路，我们将该方法命名为FrankMocap，以体现这种回归与整合方式的特点。

我们展示了FrankMocap在各种真实世界的单目视频中快速且精准的性能，其中包括实时演示。值得注意的是，我们的3D手部姿态估计在公开基准测试中优于以往的方法。我们还进行了详尽的消融实验，以证明该方法的优势，并将该方法与以往的手部动作捕捉方法以及全身动作捕捉方法进行比较。

### 2. 相关工作

3D参数化人体模型。3D参数化人体模型在无标记动作捕捉中被广泛应用，它们通过低维参数而非原始顶点来建模3D人体（包括身体、面部和手部）的形变[^3] [^40] [^37] [^42] [^19]。SCAPE是一项开创性成果，它考虑了形状变化和姿态形变[^3]。此后，Loper等人提出了SMPL模型[^28]，该模型在线性混合蒙皮的基础上学习局部姿态相关的混合形状，从而实现整体的网格形变以及形状变化。后来，Romero等人[^42]将SMPL扩展到手部，提出了名为MANO的手部形变模型。他们还开发了一个名为SMPL+H的统一身体和手部模型。Joo等人构建了一个包含身体、手部和面部的统一模型，称为Adam，并利用它从多视角设置中实现面部、身体和手部的全身动作捕捉[^19]。Pavlakos等人[^37]也类似地开发了一个名为SMPL-X的身体、手部和面部统一模型，该模型中所有模板身体部位均由艺术家设计，以确保各身体部位的质量一致性，同时还学习了形变统计数据。

单图像3D身体姿态估计。许多单目3D身体姿态估计方法旨在从单张图像中预测3D身体关键点位置[^41] [^50] [^52] [^29] [^38]。其主要局限在于，这些方法的输出无法直接用于图形应用程序，因为缺少3D关节角度且肢体长度无法被保留。更近期的单目3D身体姿态估计方法采用SMPL[^28]或Adam模型[^19] [^55]等参数化3D人体模型来表示3D身体。利用3D参数化模型，它们可以通过将3D身体模型拟合到2D观测数据（如2D关键点）上来重建3D身体姿态，这一过程通过优化框架实现[^5]。近期的一些研究[^20] [^25] [^52] [^43] [^26] [^56]利用深度学习框架直接回归身体模型的参数。

还有一些方法采用混合框架，利用深度学习框架生成二维和深度热图等中间表示，再基于这些输出拟合骨骼模型以重建关节角度 [^31] [^55] [^30]。这类深度网络方法考虑了多种类型的输入，包括单张RGB图像 [^20]、二维关键点热图 [^39]、身体部位分割图 [^35] 或 DensePose 图 [^44] [^56]。由于缺乏带有三维标注的训练数据，这些模型采用混合数据集进行训练，其中包括Human3.6M等室内数据集 [^14]，以及COCO [^27] 或 3DPW [^54] 等自然场景数据集。该领域的大多数论文，如HMR [^20] 和SPIN [^25]，均以单张图像作为输入。也有一些研究以序列为输入，其中具有代表性的有Zhang等人 [^60] 和VIBE [^24]。在本文中，我们主要专注于处理单张图像，并应用简单的时间平滑技术来处理序列输入。

单图像三维手部姿态估计。以往关于三维手部关节估计的研究通常以深度图像为输入……

---

![Image](images/4cb756bd796587402564bc4f1bc1f81787224166e66c605f016be015a28c619b.jpg)

<div style="text-align: center;">Figure 2: Overview of our pipeline for whole body motion capture. Given a single RGB image input, we apply our hand module and body module to estimate 3D hands and 3D body. Our integration module combines these outputs into a unified whole body output.</div>

将 [^33] [^34] [^48] [^45] [^47] [^49] [^53] [^51] [^58]。尽管取得了良好的性能，但这些方法无法轻易应用于真实场景下的 RGB 图像和视频。近期工作开始使用单张 RGB 图像作为输入 [^62] [^32] [^9] [^57]。这些方法更关注 3D 手部关节位置估计，而非关节角度。受 3D 人体运动捕捉近期成功的启发 [^20] [^25]，已有若干针对单图像 3D 手部姿态估计的方法。Boukhayma 等人 [^8] 使用图像和由 OpenPose [^10] 预测的 2D 姿态作为输入，并回归 MANO [^42] 模型的参数。Zhang 等人 [^61] 采用了与 Boukhayma 类似的框架。关键区别在于，他们的模型包含一个 2D 热图预测模块，而不是使用 OpenPose 的预测结果。Baek 等人的方法 [^4] 也具有类似的架构。不同之处在于，他们还采用 2D 掩码作为中间表示。与这些方法不同，Ge 等人的工作 [^11] 使用自行构建的 3D 手部模型，而非 MANO。所提出的框架以单张图像作为输入，并预测 2D 热图作为中间表示。随后，使用图卷积网络 [^23] 来回归手部模型的顶点。

人体与手部联合三维姿态估计。目前已有一些方法[^55] [^37]致力于同时估计人体和手部的三维姿态。由于缺乏全身捕捉的标注数据，以往的所有研究都采用优化方法来求解。SMPLify-X[^37]利用SMPL-X模型[^37]来表示全身姿态；该模型的参数通过拟合二维关键点来优化，同时加入身体姿态先验和碰撞惩罚项等约束条件。单目全身捕捉（MTC）[^55]基于Adam模型[^19]，它先利用深度神经网络得到2.5D预测结果，再通过优化获得Adam模型的参数。这两种方法都依赖优化过程，计算时间相对较长（从10秒到几分钟不等）；此外，一旦二维热图检测失败，它们的精度便会显著下降。

### 3. 方法

我们的方法旨在从单目输入（单目图像或视频）中估计三维人体（躯干和四肢部分）以及三维手部（左手和右手）。该方法输出的结果是SMPL-X模型[^37]的参数，用以统一表示三维人体和手部姿态。我们方法的一个重要特点是：针对人体和手部姿态估计分别采用专门的专家模块，且这两个模块输出的结果均符合SMPL-X模型的要求。该框架的概览如图2所示。

值得注意的是，我们的手部姿态估计器利用了SMPL-X模型中的手部部分，将其视为独立的参数化手部模型。该模块在保持最先进的单目手部姿态估计性能的同时，其输出可直接与人体估计结果[^25]合并，从而构建出完整的SMPL-X人体模型。我们还提出了一种优化框架，通过添加额外约束来提升手部和人体姿态估计结果的精度。本节剩余部分我们假设模型的输入为单张图像；关于序列输入的处理细节详见4.1节。

#### 3.1. SMPL-X模型概述

给定以单人为主体裁剪的单张图像输入，我们的方法会输出全身动作捕捉结果，即SMPL-X模型的形状和姿态参数。作为SMPL模型$^{[28]}$的扩展，SMPL-X模型能够通过低维形状和姿态参数的组合来表示人体的形状变化及姿态相关的形变。与仅关注身体部位的SMPL模型不同，SMPL-X还能通过额外的参数集来表达手指运动和面部表情。

我们将SMPL-X模型记为W，其表达式如下：

---

 $$ \boldsymbol{V}_{w}=W(\boldsymbol{\phi}_{w},\boldsymbol{\theta}_{w},\boldsymbol{\beta}_{w}), $$

其中，W由整个身体的全局朝向$\phi_w \in \mathbb{R}^3$、用于描述姿态相关形变的全身姿态参数$\boldsymbol{\theta}_w \in \mathbb{R}^{(21+15+15)\times3}$，以及用于描述身体和手部跨身份形状差异的形状参数$\boldsymbol{\beta} \in \mathbb{R}^{10}$共同决定。我们将$\boldsymbol{\theta}_w$拆分为身体和手部两部分：即身体姿态参数$\boldsymbol{\theta}_w^b \in \mathbb{R}^{21\times3}$、左手姿态参数$\boldsymbol{\theta}_w^{lh} \in \mathbb{R}^{15\times3}$（也就是每个手指3个关节），右手姿态参数$\boldsymbol{\theta}_w^rh \in \mathbb{R}^{15\times3}$，最终得到$\boldsymbol{\theta}_w = \{\boldsymbol{\theta}_w^b, \boldsymbol{\theta}_w^lh, \boldsymbol{\theta}_w^rh\}$。所有姿态参数均采用轴角表示法，该方法会存储相对于运动学映射中定义的父关节的旋转量。作为输出，SMPL-X模型会生成包含10,745个顶点的网格结构$V_w \in \mathbb{R}^{10475\times3}$。通过应用从已设定姿态的顶点到关节的回归函数R，即可获取全身的3D关节位置：

 $$ \boldsymbol{J}_{w}^{3D}=R_{w}(\boldsymbol{V}_{w}), $$

其中$J_w^{3D} \in \mathbb{R}^{(22+15+15)\times3}$。

我们的手部模型是通过提取SMPL-X中的手部部件来定义的：

 $$ \boldsymbol{V}_{h}=H(\boldsymbol{\phi}_{h},\boldsymbol{\theta}_{h},\boldsymbol{\beta}_{h}), $$

其中$\boldsymbol{\theta}_h \in \mathbb{R}^{3 \times 15}$为手部姿态参数，$\boldsymbol{\beta}_h$为手部模型的形状参数。由于我们的手部模型源自SMPL-X，因此$\boldsymbol{\beta}_h$与$\boldsymbol{\beta}_w$采用相同的参数化空间。对于手部模型H，我们仅关注其对手部区域的影响。为简洁起见，我们使用$\boldsymbol{\theta}_h$来表示手部姿态参数，而非使用$\boldsymbol{\theta}_{rh}$或$\boldsymbol{\theta}_{lh}$来描述我们的手部姿态估计方法。$\phi_h \in \mathbb{R}^{3}$代表手部网格的全局朝向，这是将手部模型作为独立模型使用时所必需的，该模型不依赖于原始SMPL-X模型W中的祖先关节。我们的手部模型H会生成包含778个顶点的手部网格结构$\boldsymbol{V}_h \in \mathbb{R}^{778 \times 3}$。在此，我们通过裁剪全身网格$\boldsymbol{V}_w$中手腕区域周围的顶点来定义手部网格顶点，具体选取的是所有距离手腕关节和手指关节最近的顶点。由于手部网格$\boldsymbol{V}_h$是全身网格$\boldsymbol{V}_w$的子集，因此顶点之间的对应关系是一一对应的。我们同样考虑了用于手部的3D关节回归函数$\boldsymbol{J}_h^{3D}$：

 $$ \boldsymbol{J}_{h}^{3D}=R_{h}(\boldsymbol{V}_{h}), $$

其中$J_h^{3D} \in \mathbb{R}^{21 \times 3}$包含1个手腕关节、15个手指关节（每个手指3个关节）以及5个指尖。为了定义$R_h$的关节回归矩阵，我们从全身关节回归矩阵$R_w$中提取手腕和手指关节部分，并为那5个未包含在其中的指尖添加额外的行。

![Image](images/f7350e986d5b205d2aa6fa82bc03e55f3d6be634012497a5e4a3c372ecb520bc.jpg)

<div style="text-align: center;">Figure 3: Overall framework of our hand module. Our hand module takes a cropped hand image  $\mathbf{I}_H$ as input, and produces the parameters of hand model,  $[\phi_h, \theta_h, \beta_h, c_h]$. Our hand module is built by a deep encoder-decoder network. The predicted hand parameter is used to produce the mesh shape and pose of the hand part of SMPL-X.</div>

其定义见 $J_{w}^{3D}$。图4展示了H及骨骼层次结构的可视化效果。

我们这种表示方式的主要优势在于，3D手部模型的各个组成部分——包括姿态参数、顶点和3D关节——都能与全身参数化体系直接兼容。这使我们能够高效整合身体模块和手部模块的输出。

#### 3.2. 3D手部估计模块

我们提出了一种单目3D手部姿态估计模块，记为$M_{H}$，用于估计手部模型H的参数。具体而言，我们的手部模块受到了近期提出的单目人体姿态估计方法[^20] [^21] [^25]的启发，因此采用了类似的模型架构、参数化和训练流程。借鉴人体姿态估计领域的研究成果，我们发现我们的手部姿态估计方法能够稳健地适用于各种真实场景，在公开的手部姿态估计基准测试中展现出最先进的性能。

手部模块架构。我们的手部模块$M_{H}$基于端到端的深度神经网络架构，用于回归公式(3)中定义的手部姿态参数。我们的手部模块$M_{H}$的定义如下：

 $$ [\phi_{h},\pmb{\theta}_{h},\pmb{\beta}_{h},\pmb{c}_{h}]=M_{H}(\mathbf{I}_{H}), $$

其中$\mathbf{I}_H$是裁剪出手部区域后的输入RGB图像。$c_h = (t_h, s_h)$是弱透视相机参数，用于将已建模的3D手部模型投影到输入图像上。这里，$t_h \in \mathbb{R}^2$用于图像平面上的2D平移，而$s_h \in \mathbb{R}$是一个缩放因子。因此，第i个3D手部关节$\mathbf{J}_{h,i}^{3D}$可以被投影为：

 $$ \begin{array}{r}{\boldsymbol{J}_{h,i}^{2D}=\boldsymbol{s}_{h}\boldsymbol{\Pi}(\boldsymbol{J}_{h,i}^{3D})+\boldsymbol{t}_{h},}\end{array} $$

其中$\Pi$是正射投影。

借鉴人体姿态估计方法[^20] [^25]，我们的手部模块$M_{H}$由以下部分构成：

---

![Image](images/63a7bf90295148318288b6b0036e244722f275337fbac33950721edcb9410fcb.jpg)

<div style="text-align: center;">(a) SMPL-X's Hand</div>

![Image](images/10ff4b48d93bef02bd0c0cb24e6159c12d2f4267ba2090c0792bb64fbbc8718f.jpg)

<div style="text-align: center;">(b) Hand Skeleton Hirerarchy</div>

<div style="text-align: center;">Figure 4: Our hand model taken from SMPL-X. We take the hand part of SMPL-X as a stand-alone hand model for hand pose estimation. The example mesh is shown in (a) and the skeleton hierarchy is shown in (b).</div>

编码器和解码器结构，其中编码器从输入图像中提取编码特征，解码器则根据这些特征回归手部姿态参数。图3展示了我们手部模块的概览。我们采用ResNet-50[^13]作为编码器网络。解码器网络由一组全连接层组成。我们的手部模块使用右手数据进行训练。左手的图像和标注在垂直翻转后使用。测试时，左手图像会被翻转并当作右手处理，其输出结果再被翻转回原始的左手空间。

需要注意的是，形状参数$\beta_{h}$最初是为全身模型$\beta_{w}$定义的，但我们仅考虑公式中定义的手部顶点的形变，而忽略身体其他部分。我们将在集成模块中说明如何处理这一问题。

## 训练方法

我们考虑三种不同类型的标注：(1) 3D姿态标注（采用轴角表示法），(2) 3D关键点（关节）标注，以及(3) 2D关键点标注。针对每种标注的损失函数，即$L_{\theta}$、$L_{3D}$和$L_{2D}$，定义如下：

 $$ \begin{aligned}&L_{\theta}=\|\boldsymbol{\theta}_{h}-\hat{\boldsymbol{\theta}_{h}}\|_{2}^{2},\\&L_{3D}=\|\boldsymbol{J}_{h}^{3D}-\hat{\boldsymbol{J}}_{h}^{3D}\|_{2}^{2},\\&L_{2D}=\|\boldsymbol{J}_{h}^{2D}-\hat{\boldsymbol{J}}_{h}^{2D})\|,\\ \end{aligned} $$

其中$\hat{\theta}_h$、$\hat{J}_h^{3D}$和$\hat{J}_h^{2D}$分别是轴角姿态参数、3D关键点和2D关键点的真实标注。特别地，2D关键点损失$L_{2D}$对于估算相机投影参数是必不可少的。我们并未使用FreiHAND[^63]等3D手部数据集提供的形状参数，因为这些参数是为MANO模型[^42]定义的，与我们的SMPL-X手部模型不兼容。取而代之的是，我们引入了额外的形状

![Image](images/a625e372905578a9d74911ac6582e821af47af8b1e74d774e007a5f6e063a1c6.jpg)

<div style="text-align: center;">Figure 5: Motion Blur Augmentation. We show example images of motion blur augmentation. From left to right: original images, augmented images after applying different motion blur kernels.</div>

参数正则化损失$L_{reg}$：

 $$ \begin{array}{r}{L_{r e g}=\|\beta_{h}\|_{2}^{2}.}\end{array} $$

用于训练我们手部模块的总损失L定义如下：

 $$ {\cal L}=\lambda_{1}{\cal L}_{\bf\theta}+\lambda_{2}{\cal L}_{3D}+\lambda_{3}{\cal L}_{2D}+\lambda_{4}{\cal L}_{r e g}. $$

实验中，各损失的平衡权重被设置为$\lambda_{1}=10$、$\lambda_{2}=100$、$\lambda_{3}=10$和$\lambda_{4}=0.1$。

数据集预处理。3D手部姿态数据集通常是在受控环境下通过多视角设置来构建，以获取真实标注。用这些数据集训练的模型往往容易过拟合，在应用于户外自然场景数据时表现有限。值得注意的是，近期3D人体姿态估计方法表明，利用多样化的数据集能显著提升模型的泛化能力 [^20] [^21] [^44] [^25]。基于此，我们尽可能多地纳入公开可用的数据集，用于自然场景下的3D手部姿态估计。关于这些数据集的更多细节将在4.2节中讨论。使用多样化数据集的主要挑战在于其标注类型各异。例如，FreiHand [^63] 和 HO-3D [^12] 数据集中包含真实的关节角度参数，而其他数据集则没有。此外，不同数据集在手部标注的细节上，包括骨骼层级和尺度，也存在差异。为解决这一问题，我们执行了若干预处理步骤，以使它们

---

保持一致并适配我们的手部模型，具体包括：1. 以中指指节长度 $^{5}$ 为参照，对所有3D关键点标注进行缩放，使其与我们的手部模型兼容。2. 重新排序3D关键点关节，使其与我们手部模型的骨骼层级一致，如图4所示。

训练数据增强。在训练期间进行数据增强是提升模型泛化能力的常用手段。借鉴以往的方法 [^61]，我们采用了常见的数据增强策略，包括随机缩放、随机平移、颜色抖动以及随机旋转。

重要的是，我们意识到自然场景视频往往伴有严重的运动模糊现象。为使模型具备对运动模糊的鲁棒性，我们额外对图像施加运动模糊增强处理。我们首先采用以往论文中的方法 [^6] [^7] 生成模糊核，然后通过2D滤波为图像添加模糊效果。实验表明，这种运动模糊增强有助于提升手部模块在自然场景中的泛化能力。运动模糊增强的示例见图5。

### 3.3. 3D人体估计模块

我们借鉴了最先进的单目3D姿态估计方法 [^20] [^25]，并对其做了少量修改，用于构建我们的人体估计模块。近期出现的单目人体姿态估计方法 [^20] [^25] 均基于SMPL [^28] 模型来捕捉躯干和四肢的运动。尽管我们的人体模块能产生类似的输出，但这些先前的方法无法直接应用于我们的目标，因为SMPL模型的形状参数与SMPL-X不兼容。因此，我们对公开可用的最先进姿态估计器 [^25] 进行微调，在训练流程中用SMPL-X替换SMPL。训练时，我们使用了公开可用的室内3D姿态数据集，如human3.6M [^14]。我们还纳入了 [^17] 中提出的伪真实标注，这类标注将SMPL拟合结果与自然场景下的2D关键点数据集（如COCO [^27] 和 MPII [^2]）配对。由于所有这些标注均采用SMPL格式，我们忽略了真实SMPL标注中的形状参数，仅使用与SMPL-X模型兼容的姿态参数和2D关键点标注。我们沿用了 [^26] 论文中的相同神经网络架构及类似的训练步骤，但不采用SMPLify部分。

我们的身体模块 $M_{B}$ 能够根据单张图像生成方程1中所定义的躯干和四肢参数：

 $$ [\phi_{b},\pmb{\theta}_{b},\beta_{b},\pmb{c}_{b}]=M_{B}(\pmb{I}_{b}), $$

其中 $I_b$ 是指围绕单个目标人物的整个身体裁剪得到的输入图像。与方程1类似，$\phi_b \in \mathbb{R}^3$ 表示全局身体朝向，$\boldsymbol{\theta}_b \in \mathbb{R}^{21 \times 3}$ 是身体姿态参数（不含手部关节），而 $\boldsymbol{\beta}_b \in \mathbb{R}^{10}$ 则是形状参数。同样，$\boldsymbol{\beta}_b$ 与方程1中定义的 $\boldsymbol{\beta}_w$ 共享相同的参数化空间。类似于方程5，我们采用了弱透视相机参数 $c_b = (\boldsymbol{t}_b, \boldsymbol{s}_b)$。

需要注意的是，现有的身体姿态估计器——包括我们微调后的版本——都无法准确估算手腕和手臂的朝向，这是因为相关标注不准确或不完整（例如，手腕仅标注了一个关键点），如图6所示。我们的整合模块解决了这一问题。

#### 3.4. 全身整合模块

我们的整合模块将3D身体模块和手部模块的输出合并为统一的表示形式，即SMPL-X模型。针对整合过程，我们提出了两种策略：（1）通过简单的复制粘贴方式实现的快速方法；（2）引入额外2D关键点线索以提升输出精度的优化框架。

通过复制粘贴实现快速的身体与手部组合。由于我们手部模块和身体模块的输出与SMPL-X模型兼容，因此能够轻松合并为单一形式。一种简单的方法就是直接转移各模块输出中的对应关节角度参数。不过，手腕部分需要额外处理，因为我们从身体模块和手部模块得到了两种不同的输出（由全局手部朝向 $\phi_h$ 表示）。我们将手腕关节的姿态参数记为 $\boldsymbol{\theta}^{\mathrm{wrist}}$，以及 $\boldsymbol{\theta}_b = \boldsymbol{\theta}_b \cup \{\boldsymbol{\theta}_b^{\mathrm{wrist}}, \boldsymbol{\theta}_b^{\mathrm{lwrist}}\}$，其中 $\tilde{\boldsymbol{\theta}}_b$ 包含了除手腕外的所有身体姿态参数。对于全身姿态参数，我们使用类似的记号：$\boldsymbol{\theta}_{w}^{\mathrm{rwrist}}, \boldsymbol{\theta}_{w}^{\mathrm{lwrist}}$ 和 $\tilde{\boldsymbol{\theta}}_{w}^b$。如此一来，通过复制粘贴即可完成全身整合：

 $$ \begin{aligned}\phi_{w}&=\phi_{b},\\\beta_{w}&=\beta_{b},\\\boldsymbol{c}_{w}&=\boldsymbol{c}_{b},\end{aligned} $$

 $$ \begin{aligned}&\left(\tilde{\boldsymbol{\theta}}_{w}^{b},\boldsymbol{\theta}_{w}^{lh},\boldsymbol{\theta}_{w}^{rh}\right)=\left(\tilde{\boldsymbol{\theta}}_{b},\boldsymbol{\theta}_{lh},\boldsymbol{\theta}_{rh}\right),\\&\left(\boldsymbol{\theta}_{w}^{\mathrm{lwrist}},\boldsymbol{\theta}_{w}^{\mathrm{rwrist}}\right)=\left(\boldsymbol{\Gamma}_{l}\left(\boldsymbol{\theta}_{b},\boldsymbol{\phi}_{lh}\right),\boldsymbol{\Gamma}_{r}\left(\boldsymbol{\theta}_{b},\boldsymbol{\phi}_{rh}\right)\right),\\ \end{aligned} $$

其中 $\Gamma_{l}$ 和 $\Gamma_{r}$ 是将手部模块得到的全局手腕朝向 $\phi_{h}$ 转换为相对于SMPL-X骨骼层次结构中父关节的局部手腕姿态参数的函数。这一转换可通过比较 $\phi_{h}$ 与 $\theta_{b}$ 中当前手腕姿态的全局朝向来实现，而后者可通过身体骨骼层次结构的正向运动学计算得出。这种策略几乎不需要额外的计算量，从而能够

---

让我们的各个独立模块同时贡献于一个统一的全身模型。我们发现这种简单的整合方式能产生令人满意的结果，尤其是在存在计算瓶颈的场景下，比如我们的实时演示中。

通过优化实现手部与身体的组合。作为另一种整合方法，我们构建了一个优化框架，用于根据身体模块和手部模块的输出拟合全身模型参数。该策略尤其有助于减少复制粘贴方式在手腕部位产生的瑕疵，同时还能利用2D关键点估计输出 [^10] 来提升2D定位精度。具体而言，我们的优化框架会寻找能使下述目标代价函数最小化的全身模型参数：

 $$ \mathcal{F}([\phi_{w},\theta_{w},\beta_{w},\boldsymbol{c}_{w}])=\mathcal{F}^{{2d}}+\mathcal{F}^{{p r i}}, $$

其中，$\mathcal{F}^{2d}$ 表示二维关键点估计结果 [^10] 与三维关节（身体及双手）投影之间的二维重投影代价项；而先验项 $\mathcal{F}^{pri}$ 则用于确保三维姿态和形状参数处于合理范围内，这一做法与 SMPLify 方法中的处理方式一致[^5]。我们首先采用复制粘贴策略来初始化所有参数，不过我们并未应用 $\Gamma$ 来将全局手部朝向信息传递到全身模型中。取而代之的是，通过最小化公式 (13) 来求解手部的腕部朝向，同时兼顾其他参数的约束。虽然像 SMPLify 方法[^1] 中那样，通常会使用从运动捕捉数据集中学得的高斯混合模型来作为身体姿态的先验项[^5]，但我们为了实现类似目标，采用了 [^17] 中提出的示例微调方法：针对每一帧独立地对 $M_B$ 进行神经网络微调，这种方式无需额外的正则化项，却仍能保证三维姿态处于合理范围。需要注意的是，我们的优化框架仅需少量迭代次数（所有实验中均为 20 次），因为身体和手部模块的输出已经接近目标状态。优化过程的示例如图 6 所示。

### 4. 实验

在本节中，我们首先介绍实现细节，随后总结用于手部模块训练的数据集。之后，我们会从定量和定性两个维度将我们的方法与最先进的方法进行对比，同时还会开展消融研究以验证我们方法中的关键设计。

#### 4.1. 实现细节

边界框。对于在线版本，我们使用 OpenPose [^10] 来获取身体边界框；处理完身体部分后，再将估计出的三维身体的手部区域投影到图像空间，从而得到手部边界框。对于互联网视频的离线处理，我们同样利用 OpenPose 的检测结果来定位身体和手部。

![Image](images/ec423011177db062aeb5820208a9589c9a471b4f0d60a9e7dc7fef4cf6cc2fa8.jpg)

<div style="text-align: center;">Figure 6: Optimizing the whole body model (SMPL-X) with 3D hand prediction and 2D keypoint estimation. (a) An input image and the estimated 2D keypoints by OpenPose [^10]; (b) 3D body pose estimation from our body module; (c) The output of 3D hand module aligned to the wrist joints of SMPL-X; (d) Integration output by copy-and-paste strategy; (e) Integration output by our optimization framework.</div>

<div style="text-align: center;">Table 1: Processing time of various methods.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method $\rightarrow$ Time (fps) $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>SMPLify-X</td><td style='text-align: center; word-wrap: break-word;'>MTC</td><td style='text-align: center; word-wrap: break-word;'>Online (CP)</td><td style='text-align: center; word-wrap: break-word;'>Offline (CP)</td><td style='text-align: center; word-wrap: break-word;'>Offline (OP)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Preprocess (fps)</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>35</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>7.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Model (fps)</td><td style='text-align: center; word-wrap: break-word;'>0.01</td><td style='text-align: center; word-wrap: break-word;'>0.1</td><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>1.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Overall (fps)</td><td style='text-align: center; word-wrap: break-word;'>0.01</td><td style='text-align: center; word-wrap: break-word;'>0.1</td><td style='text-align: center; word-wrap: break-word;'>9.5</td><td style='text-align: center; word-wrap: break-word;'>4.7</td><td style='text-align: center; word-wrap: break-word;'>0.95</td></tr></table>

视频处理。对于复制粘贴策略（用于在线演示和离线互联网视频），视频会逐帧处理，无需任何后处理。而对于基于优化的策略，在得到每帧的输出结果后，我们会针对参数（形状、姿态和相机参数）的各个维度应用简单的时间平滑处理。我们采用大小为 5 帧的平滑核，其权重分别为 [0.1, 0.2, 0.5, 0.2, 0.1]。值得注意的是，即便没有平滑处理，我们的复制粘贴方法也能生成时间上稳定的结果。我们认为这是由于近期流行的 CNN 姿态回归器本身就能产生此类输出，正如近期论文（如 SPIN [^26]）中所展示的那样，这得益于训练过程中采用的多种增强技巧。而基于优化的方法（SMPLify-X 和 MTC）由于优化流程复杂且分为多个阶段（比如先处理躯干，再处理其他部位），再加上数据项和先验项之间的平衡问题较为复杂，因此会出现时间上的不稳定性。表 1 对比了每种方法的处理时间：我们的复制粘贴方法的处理速度约为 9.5 帧/秒，该代码用 Python 编写，运行在单块 GeForce RTX 2080 GPU 上。在我们的补充视频中，我们还展示了使用单个网络摄像头进行的实时演示，这是其他方法无法实现的。

手部模块。手部模块的输入图像是对手部周围区域进行中心裁剪后的结果，裁剪所用的边界框由二维手部关键点确定。Ground-

---

训练时使用真实的2D关键点，测试时则使用OpenPose预测的关键点[^10]。裁剪后的图像会进一步填充并调整大小为$224 \times 224$。训练期间，我们对每张训练图像应用数据增强技术，包括随机缩放、平移、旋转、颜色抖动以及合成运动模糊处理。手部模块架构基于ResNet-50[^13]，并增加了两个全连接层，以便将ResNet的输出特征映射为61维向量，该向量由相机参数C（3维）、手部全局旋转$\phi_h$（3维）、手部姿态参数$\theta_h$（45维）以及形状参数$\beta_h$（10维）组成。手部模块是用PyTorch实现的[^36]。训练模型时采用Adam优化器[^22]，学习率为$1e-4$。手部模块的训练会持续到收敛，大约需要100个epoch。

身体模块。我们遵循与最先进方法[^25]类似的训练步骤，使用Human3.6M[^14]和COCO数据集[^27]，并结合伪SMPL标注[^17]。训练从SPIN的预训练模型[^25]开始，并将SMPL参数替换为SMPL-X参数。随后使用Adam优化器[^22]对学习率$5e^{-5}$进行微调，训练约20个epoch。此外，手部和身体模块均使用中性的SMPL-X模型。

#### 4.2. 数据集

FreiHAND。FreiHAND[^63]是一个包含真实人手图像的3D手部关节和MANO参数的数据集。3D标注是通过多摄像头系统和半自动化方法获得的。获取的数据还会进一步添加合成背景。在实验中，我们从原始训练集中随机选取80%的样本作为训练数据，剩余20%的样本用于验证。

HO-3D。HO-3D数据集[^12]旨在研究手与物体之间的交互。该数据集包含手部的3D关节和MANO姿态参数，以及手部所接触物体的3D边界框。本文中我们仅使用手部的3D标注。训练集由不同的序列组成，每个序列记录一种手-物交互类型。按照处理FreiHAND时的类似做法，我们从原始训练集中随机选取80%的序列作为训练数据，剩余20%的序列用于验证。

MTC。单目全身捕捉数据集Monocular Total Capture[^55]是在Panoptic Studio[^16] [^18]中通过多视角设置采集的，共使用30台高清摄像头。该数据集包含身体和手部的3D手部关节标注。这些序列主要是多个受试者的运动范围数据。为了优化数据集，我们过滤掉了手部不可见或尺寸过小的错误样本。

<div style="text-align: center;">Table 2: Comparison of our hand module with the state-of-the-art hand methods on three public benchmarks, namely STB, RHD and MPII+NZSL. For STB and RHD, we use 3D AUC as the evaluation metric. The threshold ranges from 20mm to 50mm. For MPII+NZSL, we use 2D AUC as the evaluation metric. The threshold ranges from 0px to 30px.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Dataset $\rightarrow$ Method $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>STB</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>MPII+NZSL</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^62]</td><td style='text-align: center; word-wrap: break-word;'>0.948</td><td style='text-align: center; word-wrap: break-word;'>0.675</td><td style='text-align: center; word-wrap: break-word;'>0.171</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^8]</td><td style='text-align: center; word-wrap: break-word;'>0.994</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.501</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^4]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.926</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^11]</td><td style='text-align: center; word-wrap: break-word;'>0.995</td><td style='text-align: center; word-wrap: break-word;'>0.92</td><td style='text-align: center; word-wrap: break-word;'>0.15</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^55]</td><td style='text-align: center; word-wrap: break-word;'>0.994</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.340</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^61]</td><td style='text-align: center; word-wrap: break-word;'>0.995</td><td style='text-align: center; word-wrap: break-word;'>0.901</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours-less-datasets</td><td style='text-align: center; word-wrap: break-word;'>0.992</td><td style='text-align: center; word-wrap: break-word;'>0.918</td><td style='text-align: center; word-wrap: break-word;'>0.556</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours-no-data-augment</td><td style='text-align: center; word-wrap: break-word;'>0.991</td><td style='text-align: center; word-wrap: break-word;'>0.893</td><td style='text-align: center; word-wrap: break-word;'>0.608</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours-no-shape-params</td><td style='text-align: center; word-wrap: break-word;'>0.987</td><td style='text-align: center; word-wrap: break-word;'>0.910</td><td style='text-align: center; word-wrap: break-word;'>0.647</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>0.992</td><td style='text-align: center; word-wrap: break-word;'>0.934</td><td style='text-align: center; word-wrap: break-word;'>0.655</td></tr></table>

<div style="text-align: center;">Table 3: Ablation study on dataset. We show the results of our hand module trained with different datasets. These models are evaluated on MPII+NZSL [^46] using 2D AUC as metric. For data augmentation, we use all the available datasets.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND</td><td style='text-align: center; word-wrap: break-word;'>HO-3D</td><td style='text-align: center; word-wrap: break-word;'>MTC</td><td style='text-align: center; word-wrap: break-word;'>STB</td><td style='text-align: center; word-wrap: break-word;'>RHD</td><td style='text-align: center; word-wrap: break-word;'>MPII+NZSL</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.482</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.367</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.526</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.556</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.595</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.598</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.645</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.655</td></tr></table>

STB。立体手部姿态跟踪基准测试集Stereo Hand Pose Tracking Benchmark[^59]包含15,000个训练样本和3,000个测试样本。提供的标注包括3D关节和深度图像。在实验中我们仅使用3D关节数据。我们用STB的训练集来训练模型，并在验证集上与其他最先进的方法进行比较。为了统一关节定义，按照[^9] [^11]的做法，我们将根关节从手掌中心移至手腕处。

RHD. Rendered Hand Dataset [^62] 是一个合成数据集，包含二维和三维手部关节标注。该数据集由41,258个训练样本和2,728个测试样本组成。我们在训练集上训练模型，并在测试集上与其他最先进的方法进行比较。

MPII+NZSL. MPII+NZSL数据集 [^46] 由带有手动标注的二维手部关节的自然场景图像组成。其中包含存在遮挡、模糊和低分辨率等挑战性的图像。为了展示我们模型的泛化能力，我们的模型并未在MPII+NZSL上训练，仅将其用于验证。

---

![Image](images/d4cbd7469d44af87fcad72e11ef043066175050839b643d38d9cc1bb4e19be8a.jpg)

<div style="text-align: center;">Figure 7: Qualitative comparison with State-of-the-are methods. The images are selected from COCO dataset [^27]. We qualitatively compare our models performance with Boukhayma et al. [^8].</div>

![Image](images/ee4ca072b524da7ba0c3f142182ca6887ac406bc3344d364f194bf96d4274f56.jpg)

<div style="text-align: center;">Figure 8: Ablation study on training dataset. We show qualitative ablation study on using different datasets in training our hand model. “Subset-01” means using the combination of datasets FreiHADN [^63] and HO-3D [^12]. “Subset-02” means using the combination of datasets: STB [^59], RHD [^62] and MTC [^55]. “Full set” means using all the above datasets. The images are selected from COCO dataset [^27].</div>

<div style="text-align: center;">Table 4: Ablation study on data augmentation. We show the results of our hand module trained with different data augmentation strategies. These models are evaluated on MPII+NZSL [^46] using 2D AUC as metric.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Position</td><td style='text-align: center; word-wrap: break-word;'>Rescale</td><td style='text-align: center; word-wrap: break-word;'>Color Jittering</td><td style='text-align: center; word-wrap: break-word;'>Rotation</td><td style='text-align: center; word-wrap: break-word;'>Motion Blur</td><td style='text-align: center; word-wrap: break-word;'>MPII + NZSL</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td><td style='text-align: center; word-wrap: break-word;'>0.608</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.610</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.618</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.622</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.655</td></tr></table>

#### 4.3. 手部模块评估

与最先进方法的比较。我们在三个公开的手部基准数据集STB [^59]、RHD [^62] 和MPII+NZSL [^46] 上，将我们的手部模块与以往最先进的手部方法进行比较。对于每个验证数据集，我们计算不同阈值下的关键点正确百分比（PCK），并据此计算对应的PCK曲线下面积（AUC）。对于STB [^59] 和RHD [^62]，我们使用三维AUC，阈值范围从20毫米到50毫米；对于MPII+NZSL [^46]，我们使用二维AUC，阈值范围从0像素到30像素。

结果列于表2中。为了公平比较，所有方法均以单张RGB图像作为输入。“Ours”指的是使用全部数据集和所有数据增强策略训练出的最佳模型。它在RHD和MPII+NZSL上的表现优于以往的方法，在STB上的性能也相当。值得注意的是，我们的方法在具有挑战性的自然场景数据集MPII+NZSL上展现出显著更好的二维定位精度，证明了其对自然场景的泛化能力。

我们还将自己的最佳模型与该方法的不同变体进行比较。“Ours-no-shape-params”与“Ours”的区别在于未使用形状参数 $\beta$，而是将其固定为零。“Ours-no-data-augment”指未使用任何数据增强训练的模型。“Ours-less-datasets”指未使用最新数据集训练的模型，即

---

![Image](images/53111b9435b3c58a8b2c55da8ded176ae8b759d8fb3fc35af06ce7f345ddc162.jpg)

<div style="text-align: center;">Figure 9: Ablation study on data augmentation. We show qualitative ablation study on training our hand model using different data augmentation. “No Blur” refers to model trained with all data augmentation strategies except motion blur augmentation. “Full Augment” refers to model trained with all data augmentation strategies. The images are selected from COCO dataset [^27].</div>

FreiHAND和HO-3D。该模型使用MTC、STB和RHD进行训练。以往的方法也使用了这些数据集。

对我们模型不同变体之间的比较表明，纳入多种数据集和应用数据增强对于取得更好结果至关重要。通过估计形状参数来推断形状变化也有助于提高精度。需要注意的是，“Ours-less-datasets”的结果显示，仅使用有限的数据集，我们的模型在STB和RHD上的表现仍与以往方法相当，且在自然场景数据集MPII+NZSL上展现出更好的二维定位精度。这些结果表明，我们的方法既得益于网络设计（包括训练策略），也得益于更大的训练数据集。

我们还定性地将我们的方法与以往的工作进行了比较，如图7和补充视频所示。结果表明，在存在遮挡、模糊和低分辨率等挑战的自然场景中，我们的手部模型能够生成更精确的三维手部姿态。

消融实验。我们进一步研究了训练手部模块时使用的两种关键设计：不同数据集的混合以及数据增强。关于数据集的消融实验结果列于表3和图8中。正如预期，表3的结果表明使用更多数据集会带来更好的性能。我们还在图8中展示了定性比较示例。与定量研究得出的结论类似，定性结果显示引入更多数据集能够提升模型的泛化能力，从而为自然场景图像生成更精确的结果。图中，“Subset-01”表示使用FreiHADN [^63]和HO-3D [^12]数据集的组合；“Subset-02”表示使用STB [^59]、RHD [^62]和MTC [^55]数据集的组合；“Full set”则表示使用所有数据集。

关于数据增强的消融实验结果列于表4和图9中。表4的结果表明应用数据增强能带来更好的效果。我们也在图9中展示了定性结果，采用数据增强后，模型在模糊、复杂姿态和遮挡等具有挑战性的场景中能表现出更好的泛化能力。在图9中，“No Augment”指未使用任何数据增强训练的模型；“No Blur”指采用了除运动模糊增强外的所有数据增强策略训练的模型；“Full Augment”则指采用了全部数据增强策略训练的模型。

#### 4.4. 集成模块评估

我们将所提方法与以往的全身体动捕捉方法MTC [^55]和SMPLif-X [^37]进行定性比较，同时也对比了模型的两个版本。我们将复制粘贴式集成和优化式集成分别称为“Ours-CP”和“Ours-OP”。结果如图10及补充视频所示，表明我们的方法在速度和精度方面均优于以往的方法。值得注意的是，如表1所示，我们的复制粘贴方法运行速度比其他方法快两个数量级，同时还能获得更好的3D姿态估计质量。

### 5. 讨论

我们提出了FrankMacop，这是一种快速动捕系统，能够从自然场景中的单目输入同时估计3D手部运动和3D身体运动。我们设计了身体和手部专家模块，以输出适用于全身体动捕捉的兼容结果。我们提出了两种集成策略：追求更快速度的复制粘贴方式，以及追求更高质量的优化框架。我们的方法在自然场景单目视频中的性能已得到验证。尤其值得一提的是，我们在实时演示中以接近实时的速度（9.5帧/秒）展示了全身体动捕捉系统，这一速度比其他方法快几个数量级。我们的3D手部姿态估计模块在性能上优于以往仅针对手部的先进方法。

---

![Image](images/f6a8d87650dd25653fd22cd608d4db059943df1504fba7b3db68ac512dd59a02.jpg)

<div style="text-align: center;">Figure 10: Qualitative comparison over the previous whole body pose estimation methods. We compare our method with MTC [^55] and SMPLify-X [^37]. Our method from two different strategies, by the copy-and-paste method (Ours-CP) and by an optimization framework (Ours-OP), is not only faster, but also produces more convincing whole body motion capture outputs.</div>

在公开基准测试中，我们的模块表现优于以往仅针对手部的先进方法，且该模块也可作为独立的单目3D手部姿态估计器使用。

我们的方法仍存在一些局限性：1. 若两只手距离过近，手部姿态估计会出现误差；2. 需要借助边界框来推断3D身体和手部信息。未来解决这些问题、将该方法拓展到多人交互场景（如两人握手）将是一个有趣的研究方向。致谢。我们感谢Yuting Ye的有益讨论与反馈，也感谢Xintao Wang在实现运动模糊增强方面的帮助。

## 参考文献

[^1]: Cmu motion capture database. <http://mocap.cs.cmu.edu/resources.php.7>

## [^2]: Mykhaylo Andriluka, Leonid Pishchulin, Peter Gehler, and Bernt Schiele. 2d human pose estimation: New benchmark

---

以及最先进的分析方法。发表于CVPR，2014年。6

[^3]: Dragomir Anguelov, Praveen Srinivasan, Daphne Koller, Sebastian Thrun, Jim Rodgers, and James Davis. Scape: shape completion and animation of people. TOG, 2005. 2

[^4]: Seungryul Baek, Kwang In Kim, and Tae-Kyun Kim. Pushing the envelope for rgb-based dense 3d hand pose estimation via neural rendering. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1067–1076, 2019. 3, 8

[^5]: Federica Bogo, Angjoo Kanazawa, Christoph Lassner, Peter Gehler, Javier Romero, and Michael J. Black. Keep it smpl: Automatic estimation of 3d human pose and shape from a single image. In ECCV, 2016. 1, 2, 7

[^6]: Giacomo Boracchi and Alessandro Foi. Uniform motion blur in poissonian noise: Blur/noise tradeoff. IEEE Transactions on Image Processing, 20(2):592–598, 2010. 6

[^7]: Giacomo Boracchi and Alessandro Foi. Modeling the performance of image restoration from motion blur. IEEE Transactions on Image Processing, 21(8):3502–3517, 2012. 6

[^8]: Adnane Boukhayma, Rodrigo de Bem, and Philip HS Torr. 3d hand shape and pose from images in the wild. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 10843–10852, 2019. 1, 3, 8, 9

[^9]: Yujun Cai, Liuhao Ge, Jianfei Cai, and Junsong Yuan. Weakly-supervised 3d hand pose estimation from monocular rgb images. In ECCV, 2018. 1, 3, 8

[^10]: Z. Cao, G. Hidalgo Martinez, T. Simon, S. Wei, and Y. A. Sheikh. Openpose: Realtime multi-person 2d pose estimation using part affinity fields. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019. 3, 7, 8

[^11]: Liuhao Ge, Zhou Ren, Yuncheng Li, Zehao Xue, Yingying Wang, Jianfei Cai, and Junsong Yuan. 3d hand shape and pose estimation from a single rgb image. In Proc CVPR, pages 10833–10842, 2019. 1, 3, 8

[^12]: Shreyas Hampali, Mahdi Rad, Markus Oberweger, and Vincent Lepetit. Honnotate: A method for 3d annotation of hand and objects poses. arXiv preprint arXiv:1907.01481, 2019. 5, 8, 9, 10

[^13]: Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016. 5, 8

[^14]: Catalin Ionescu, Dragos Papava, Vlad Olaru, and Cristian Sminchisescu. Human3.6m: Large scale datasets and predictive methods for 3d human sensing in natural environments. TPAMI, 2014. 2, 6, 8

[^15]: Umar Iqbal, Pavlo Molchanov, Thomas Breuel Juergen Gall, and Jan Kautz. Hand pose estimation via latent 2.5d heatmap regression. In ECCV, 2018. 1

[^16]: Hanbyul Joo, Hao Liu, Lei Tan, Lin Gui, Bart Nabbe, Iain Matthews, Takeo Kanade, Shohei Nobuhara, and Yaser Sheikh. Panoptic studio: A massively multiview system for social motion capture. In CVPR, 2015. 8

[^17]: Hanbyul Joo, Natalia Neverova, and Andrea Vedaldi. Exemplar fine-tuning for 3d human pose fitting towards

自然场景下的3D人体姿态估计。arXiv预印本arXiv:2004.03686，2020年。6，7，8

[^18]: Hanbyul Joo, Tomas Simon, Xulong Li, Hao Liu, Lei Tan, Lin Gui, Sean Banerjee, Timothy Godisart, Bart Nabbe, Iain Matthews, et al. Panoptic studio: A massively multiview system for social interaction capture. TPAMI, 2017. 8

[^19]: Hanbyul Joo, Tomas Simon, and Yaser Sheikh. Total capture: A 3d deformation model for tracking faces, hands, and bodies. In CVPR, 2018. 2, 3

[^20]: Angjoo Kanazawa, Michael J Black, David W Jacobs, and Jitendra Malik. End-to-end recovery of human shape and pose. In CVPR, 2018. 1, 2, 3, 4, 5, 6

[^21]: Angjoo Kanazawa, Jason Y. Zhang, Panna Felsen, and Jitendra Malik. Learning 3d human dynamics from video. In CVPR, 2019. 4, 5

[^22]: Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. Proc. ICLR, 2016. 8

[^23]: Thomas N Kipf and Max Welling. Semi-supervised classification with graph convolutional networks. In Proc ICLR, 2017. 3

[^24]: Muhammed Kocabas, Nikos Athanasiou, and Michael J Black. Vibe: Video inference for human body pose and shape estimation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 5253–5263, 2020. 2

[^25]: Nikos Kolotouros, Georgios Pavlakos, Michael J Black, and Kostas Daniilidis. Learning to reconstruct 3d human pose and shape via model-fitting in the loop. In ICCV, 2019. 1, 2, 3, 4, 5, 6, 8

[^26]: Nikos Kolotouros, Georgios Pavlakos, and Kostas Danilidis. Convolutional mesh regression for single-image human shape reconstruction. In Proc. CVPR, 2019. 1, 2, 6, 7

[^27]: Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C Lawrence Zitnick. Microsoft coco: Common objects in context. In ECCV, 2014. 2, 6, 8, 9, 10

[^28]: Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J Black. Smpl: A skinned multi-person linear model. TOG, 2015. 2, 3, 6

[^29]: Julieta Martinez, Rayat Hossain, Javier Romero, and James J Little. A simple yet effective baseline for 3d human pose estimation. In ICCV, 2017. 2

[^30]: Dushyant Mehta, Oleksandr Sotnychenko, Franziska Mueller, Weipeng Xu, Mohamed Elgharib, Pascal Fua, Hans-Peter Seidel, Helge Rhodin, Gerard Pons-Moll, and Christian Theobalt. Xnect: Real-time multi-person 3d human pose estimation with a single rgb camera. arXiv preprint arXiv:1907.00837, 2019. 2

[^31]: Dushyant Mehta, Srinath Sridhar, Oleksandr Sotnychenko, Helge Rhodin, Mohammad Shafiei, Hans-Peter Seidel, Weipeng Xu, Dan Casas, and Christian Theobalt. Vnect: Real-time 3d human pose estimation with a single rgb camera. TOG, 2017. 2

## [^32]: Franziska Mueller, Florian Bernard, Oleksandr Sotnychenko, Dushyant Mehta, Srinath Sridhar, Dan Casas, and Christian Theobalt. Generated hands for real-time 3d hand tracking from monocular rgb. In CVPR, 2018. 3

---

[^33]: Iason Oikonomidis, Nikolaos Kyriazis, and Antonis A Argyros. Efficient model-based 3d tracking of hand articulations using kinect. In BmVC, volume 1, page 3, 2011. 3

[^34]: Iasonas Oikonomidis, Nikolaos Kyriazis, and Antonis A Argyros. Tracking the articulated motion of two strongly interacting hands. In CVPR, 2012. 1, 3

[^35]: Mohamed Omran, Christoph Lassner, Gerard Pons-Moll, Peter V. Gehle, and Bernt Schiele. Neural body fitting: Unifying deep learning and model based human pose and shape estimation. In 3DV, 2018. 2

[^36]: Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, et al. PyTorch: An imperative style, high-performance deep learning library. In Advances in Neural Information Processing Systems, pages 8024–8035, 2019. 8

[^37]: Georgios Pavlakos, Vasileios Choutas, Nima Ghorbani, Timo Bolkart, Ahmed AA Osman, Dimitrios Tzionas, and Michael J Black. Expressive body capture: 3d hands, face, and body from a single image. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 10975–10985, 2019. 2, 3, 10, 11

[^38]: Georgios Pavlakos, Xiaowei Zhou, Konstantinos G Derpanis, and Kostas Daniilidis. Coarse-to-fine volumetric prediction for single-image 3d human pose. In CVPR, 2017.

[^39]: Georgios Pavlakos, Luyang Zhu, Xiaowei Zhou, and Kostas Daniilidis. Learning to estimate 3D human pose and shape from a single color image. In Proc. CVPR, 2018. 2

[^40]: Gerard Pons-Moll, Javier Romero, Naureen Mahmood, and Michael J Black. Dyna: A model of dynamic human shape in motion. TOG, 2015. 2

[^41]: Varun Ramakrishna, Takeo Kanade, and Yaser Sheikh. Reconstructing 3d human pose from 2d image landmarks. In CVPR, 2012. 2

[^42]: Javier Romero, Dimitrios Tzionas, and Michael J Black. Embodied hands: Modeling and capturing hands and bodies together. TOG, 2017. 2, 3, 5

[^43]: Yu Rong, Ziwei Liu, Cheng Li, Kaidi Cao, and Chen Change Loy. Delving deep into hybrid annotations for 3d human recovery in the wild. In Proceedings of the IEEE International Conference on Computer Vision, pages 5340–5348, 2019. 2

[^44]: Yu Rong, Ziwei Liu, Cheng Li, Kaidi Cao, and Chen Change Loy. Delving deep into hybrid annotations for 3d human recovery in the wild. In Proceedings of the IEEE International Conference on Computer Vision, pages 5340–5348, 2019. 2, 5

[^45]: Toby Sharp, Cem Keskin, Duncan Robertson, Jonathan Taylor, Jamie Shotton, David Kim, Christoph Rhemann, Ido Leichter, Alon Vinnikov, Yichen Wei, et al. Accurate, robust, and flexible real-time hand tracking. In CHI, 2015. 1, 3

[^46]: Tomas Simon, Hanbyul Joo, Iain Matthews, and Yaser Sheikh. Hand keypoint detection in single images using multiview bootstrapping. In CVPR, 2017. 8, 9

[^47]: Srinath Sridhar, Franziska Mueller, Antti Oulasvirta, and Christian Theobalt. Fast and robust hand tracking using detection-guided optimization. In CVPR, 2015. 1, 3

[^48]: Srinath Sridhar, Antti Oulasvirta, and Christian Theobalt. Interactive markerless articulated hand motion tracking using RGB and depth data. In ICCV, 2013. 1,3

[^49]: Andrea Tagliasacchi, Matthias Schröder, Anastasia Tkach, Sofien Bouaziz, Mario Botsch, and Mark Pauly. Robust articulated-icp for real-time hand tracking. In Computer Graphics Forum, 2015. 3

[^50]: V. Tan, I. Budvytis, and R. Cipolla. Indirect deep structured learning for 3D human body shape and pose prediction. In Proc. BMVC, 2017. 2

[^51]: Anastasia Tkach, Mark Pauly, and Andrea Tagliasacchi. Sphere-meshes for real-time hand modeling and tracking. ACM Transactions on Graphics (ToG), 35(6):1–11, 2016. 3

[^52]: Hsiao-Yu Fish Tung, Hsiao-Wei Tung, Ersin Yumer, and Katerina Fragkiadaki. Self-supervised learning of motion capture. In NIPS, 2017. 2

[^53]: Dimitrios Tzionas, Luca Ballan, Abhilash Srikantha, Pablo Aponte, Marc Pollefeys, and Juergen Gall. Capturing hands in action using discriminative salient points and physics simulation. IJCV, 2016. 1, 3

[^54]: Timo von Marcard, Roberto Henschel, Michael Black, Bodo Rosenhahn, and Gerard Pons-Moll. Recovering accurate 3d human pose in the wild using imus and a moving camera. In ECCV, 2018. 2

[^55]: Donglai Xiang, Hanbyul Joo, and Yaser Sheikh. Monocular total capture: Posing face, body, and hands in the wild. In Proc. CVPR, pages 10965–10974, 2019. 1, 2, 3, 8, 9, 10, 11

[^56]: Yuanlu Xu, Song-Chun Zhu, and Tony Tung. Denserac: Joint 3d pose and shape estimation by dense render-and-compare. In ICCV, 2019. 2

[^57]: Linlin Yang and Angela Yao. Disentangling latent hands for image synthesis and pose estimation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 9877–9886, 2019. 3

[^58]: Qi Ye, Shanxin Yuan, and Tae-Kyun Kim. Spatial attention deep net with partial pso for hierarchical hybrid hand pose estimation. In ECCV, 2016. 1, 3

[^59]: Jiawei Zhang, Jianbo Jiao, Mingliang Chen, Liangqiong Qu, Xiaobin Xu, and Qingxiong Yang. 3d hand pose tracking and estimation using stereo matching. Proc ICIP, 2017. 8, 9, 10

[^60]: Jason Y Zhang, Panna Felsen, Angjoo Kanazawa, and Jitendra Malik. Predicting 3d human dynamics from video. In Proceedings of the IEEE International Conference on Computer Vision, pages 7114–7123, 2019. 2

[^61]: Xiong Zhang, Qiang Li, Hong Mo, Wenbo Zhang, and Wen Zheng. End-to-end hand mesh recovery from a monocular rgb image. In Proceedings of the IEEE International Conference on Computer Vision, pages 2354–2364, 2019. 1, 3, 6, 8

[^62]: Christian Zimmermann and Thomas Brox. Learning to estimate 3d hand pose from single rgb images. In Proc ICCV, pages 4903–4911, 2017. 1, 3, 8, 9, 10

[^63]: Christian Zimmermann, Duygu Ceylan, Jimei Yang, Bryan Russell, Max Argus, and Thomas Brox. Freihand: A dataset for markerless capture of hand pose and shape from single rgb images. In Proc. ICCV, pages 813–822, 2019. 5, 8, 9, 10
