
# 基于生物力学约束的弱监督3D手部姿态估计

Adrian Spurr $^{1,2,*}$、Umar Iqbal $^{2}$、Pavlo Molchanov $^{2}$、Otmar Hilliges $^{1}$ 以及 Jan Kautz $^{2}$

$^{1}$ 苏黎世联邦理工学院先进交互技术研究所，瑞士

$^{2}$ 英伟达公司，美国圣克拉拉

{adrian.spurr, otmar.hilliges}@inf.ethz.ch

{uiqbal, pmolchanov, jkautz}@nvidia.com

摘要：从2D图像中估计3D手部姿态是一个困难的逆问题，主要源于其固有的尺度与深度歧义。当前最先进的方法采用带有3D真实标签数据的全监督深度神经网络进行训练。然而，获取3D标注数据成本较高，通常需要校准后的多视角设备，或是耗费大量人力进行手动标注。虽然2D关键点标注更容易获得，但如何有效利用这类弱监督数据来提升3D手部姿态预测性能仍是一个重要的开放性难题。其核心难点在于：直接引入额外的2D监督信号大多只能优化2D代理目标，却难以缓解深度与尺度歧义问题。针对这一挑战，我们提出了一组新颖的损失函数，用于约束神经网络的预测结果落在生物力学上可行的3D手部构型范围内。大量实验表明，我们所提出的约束能显著减少深度歧义，帮助网络更有效地利用额外的2D标注图像。例如，在极具挑战性的freiHAND数据集上，若仅使用额外的2D标注而不采用所提出的生物力学约束，深度误差仅能降低15%；而引入该生物力学约束后，深度误差可降低50%。

关键词：3D手部姿态；弱监督；生物力学约束

## 1 引言

基于视觉的人手3D姿态重建是一项难度较高的任务，在诸多领域均有应用价值。鉴于RGB传感器已广泛应用，近期的研究重点是如何仅利用2D图像来估计人手的完整3D姿态[^6] [^19] [^26] [^36] [^46]以及密集表面信息[^5] [^14] [^16]。由于人类手部灵活性极高、存在自遮挡现象，加之光照条件多变且涉及与物体的交互，这项任务极具挑战性。此外，图像平面上的任意2D点都可能对应世界空间中的多个3D点，而这些3D点都会投影到同一个2D点上。这使得基于单目图像的3D手部姿态估计成为一个不适定的逆问题，其中深度问题以及由此产生的尺度歧义更是构成了重大障碍。

---

![Image](images/7a81c1aa5a6ab1d235118f516e44cc1174d3b5ae68ea0819ede37f3245a7fc20.jpg)

<div style="text-align: center;">(a)  $j^{2D}$</div>

<div style="text-align: center;">(b) w/o BMC (c) w. BMC</div>

<div style="text-align: center;">(d) G</div>

 $$ w/c $$

 $$ W。 $$

<div style="text-align: center;">(g) G</div>

<div style="text-align: center;">Fig. 1: Impact of the proposed biomechanical constraints (BMC). (b,e) Supplementing fully supervised data with 2D annotated data yields 3D poses with correct 2D projections, yet they are anatomically implausible. (c,f) Adding our biomechanical constraints significantly improves the pose prediction quantitatively and qualitatively. The resulting 3D poses are anatomically valid and display more accurate depth/scale even under severe self- and object occlusions, thus are closer to the ground-truth (d,g).</div>

光照条件以及与物体的相互作用。此外，图像平面上的任意二维点可能对应世界空间中的多个三维点，而这些三维点都会投影到同一个二维点上。这就使得基于单目图像的三维手部姿态估计成为一个不适定的逆问题，其中深度问题以及由此产生的尺度模糊性构成了重大难题。

近期的大多数方法都采用深度神经网络来进行手部姿态估计，并且依赖完全标注的真实数据与合成数据的组合（例如：[^4] [^6] [^16] [^16] [^19] [^26] [^36] [^48] [^50]）。然而，为真实图像获取完整的3D标注非常困难，因为这需要复杂的多视角设置以及对所有视角中2D关键点进行耗时且繁琐的手动标注[^15] [^47] [^51]。另一方面，由于领域差异的存在，合成数据在现实场景中的泛化能力较差。一些研究试图通过利用额外的2D标注图像来缓解这一问题[^5] [^19]。与完整的3D标注相比，这类弱监督数据更容易从真实图像中获取。这些方法直接利用这些标注，以重投影损失的形式[^5]，或仅作为2D分量的监督信号[^19]。不过我们发现，通过这种方式引入弱监督数据所带来的性能提升，主要源于生成的3D姿态与2D投影结果一致。然而，由深度歧义引发的不确定性仍未得到妥善解决，最终得到的3D姿态仍可能不符合实际。因此，这些方法仍然需要大量完全标注的训练数据来消除这些歧义。相比之下，我们的目标则是尽可能减少对3D标注数据的需求，同时最大化弱标注真实数据的利用率。

为此，我们提出了一组受生物力学启发的约束条件（BMC），这些约束可以集成到神经网络的训练过程中，从而即便在仅有2D监督数据的情况下也能生成符合解剖学原理的3D手部姿态。我们的核心见解是

---

人类手部受到其生物力学特性所施加的一系列限制。我们以可微的方式将这些限制建模为一组软约束。需要注意的是，这是一个极具挑战性的问题。虽然骨骼长度约束已成功得以应用[^39] [^49]，但捕捉其他生物力学特征则更为困难。我们并非将手部模型拟合到预测结果上，而是直接从预测结果中提取相关参数来施加约束。因此，提取方法必须经过精心设计，以便能在噪声较大且形态异常的3D关节预测结果下正常工作，同时还要确保在任何姿态下都具有完全可微性。我们建议将这些约束编码为一组完全可微、易于解释的损失函数，并将其整合到任何用于预测3D关节配置的深度学习架构的训练过程中。借助这种整合方式，我们在测试时无需再进行后续优化步骤。更具体地说，我们的软约束包含三个方程，分别定义了：i) 有效的骨骼长度范围，ii) 有效的手掌结构范围，以及iii) 拇指和手指的有效关节角度范围。这组约束的主要优势在于所有参数均具有可解释性，既可以手动设定以实现个性化调整，也可以根据少量带有3D标签的数据点来确定。作为骨干模型，我们采用了Iqbal等人提出的2.5D表示方法[^19]，因其性能更为优异。我们发现绝对深度计算中存在一个问题，并通过一种新颖的优化网络予以解决。总而言之，我们的贡献包括：

– 一组受人类手部生物力学结构启发、具有创新性的可微软约束。

定量与定性证据表明，我们提出的约束条件能够在弱监督设置下提升3D预测精度；相较于直接利用弱监督数据所能达到的32%精度提升，我们的方法可实现55%的精度提升。

– 一种在[^19]基础上加入细化步骤的神经网络架构。

— 仅使用合成数据与弱监督真实数据，便能在Dexter+Object任务上取得最先进的性能，这一结果体现了模型的数据泛化能力。

所提出的约束条件既不需要特殊数据，也不局限于特定的骨干网络架构。

## 2 相关工作

近年来，基于单目RGB图像的手部姿态估计因具备众多潜在应用场景而受到广泛关注。总体而言，目前存在两类研究思路。

基于模型的方法通过优化将手部模型拟合到观测结果上，从而确保姿态的合理性。由于这类方法并非基于学习，因此其对初始条件较为敏感，需要依赖时序信息[18,27-29]，或者在优化过程中未将图像纳入考量[^29]。其中一些方法会利用几何基元[^27] [^28] [^29]，另一些则直接对关节角度进行建模[^8] [^11] [^21] [^23] [^32] [^43]，或是学习关节的低维嵌入表示[^24]、姿态表示[^18]，甚至进一步对手部肌肉进行建模[^1]。与这些方法不同，我们提出将这些约束条件直接融入神经网络的训练过程中，且以完全可微分的方式实现。因此，我们无需将手部模型拟合到预测结果上，而是直接从预测结果中提取生物力学量并进行约束。最终得到的网络能够预测出符合生物力学规律的姿态，且不会存在上述方法的缺陷。

---

我们采用完全可微分的方式，将这些约束条件融入神经网络的训练流程中。如此一来，我们无需将手部模型拟合到预测结果上，而是直接从中提取并约束生物力学量。最终生成的网络能够预测出符合生物力学规律的姿态，且不存在上述方法的弊端。

基于学习的方法利用神经网络，要么直接回归手部关键点的3D位置 [^19] [^26] [^36] [^40] [^46] [^50]，要么预测可变形手部模型的参数 [^4] [^5] [^16] [^44] [^48]。Zimmermann等人 [^50] 率先采用深度神经网络，通过多阶段方法从RGB图像中估计与根部相关的3D手部姿态。Spurr等人 [^36] 学习一种统一的潜空间，将多种模态投影到同一空间中，从而获取手部的低层次嵌入表示。同样，Yang等人 [^46] 也学习了一种能够分离背景、相机和手部姿态的潜空间。不过，所有这些方法都需要大量完全标注的训练数据。Cai等人 [^6] 试图通过引入利用配对的RGB-D图像来约束深度预测的方法来缓解这一问题。Mueller等人 [^26] 尝试通过训练GAN模型来缩小真实图像与合成图像之间的差异，从而提高合成训练数据的质量。Iqbal等人 [^19] 将该任务分解为学习2D信息和与根部相关的深度分量。这种分解方式使得他们能够使用仅包含2D姿态注释的弱标注真实图像，而这类数据获取成本较低。虽然这些方法通过加入大量弱标注训练样本展现了更好的泛化能力，但这种方法的主要缺陷在于深度歧义问题仍未得到解决。因此，仅使用2D姿态注释进行训练并不会影响深度预测结果。这可能导致3D姿态的2D投影很准确，但由于深度歧义的存在，这些3D姿态仍可能不符合实际。相比之下，在本研究中，我们提出了一组生物力学约束条件，确保训练过程中预测的3D姿态始终在解剖学上合理（见图1）。我们将这些约束以完全可微的损失函数形式表述，可将其整合到任何用于预测3D关节配置的深度学习架构中。我们以Iqbal等人的方法 [^19] 的变体作为基线，证明在保持与全监督方法相当的性能的同时，对完全标注的真实图像的需求可大幅减少。

其他近期的方法则直接从RGB图像 [^33] [^5] [^16] [^30] [^44] 预测可变形手部模型的参数，例如MANO [^48]。所预测的参数包括相对于平均形状和姿态的形状及姿态形变，这些参数是利用大量手部3D扫描数据学习得到的。另外，[^14] [^22] 通过直接从RGB图像预测网格顶点，从而绕过了对参数化手部模型的需求。这些方法在训练时既需要形状标注也需要姿态标注，因此获取此类训练数据更为困难。所以，大多数方法依赖合成训练数据。有些方法 [^4] [^5] [^48] 通过引入重投影损失来缓解这一问题，该损失用于衡量带有标注的2D姿态 [^5] 或轮廓 [^4] [^48] 的3D网格投影之间的差异。尽管这些方法利用了以平均手部形状和低维PCA空间形式存在的强手部先验，但即便使用弱标注数据并结合重投影损失，也无法保证……

---

![Image](images/e03d733cc8e26d58d2d75b571a8acdd11fc351d760dafbe548076f43d715d160.jpg)

<div style="text-align: center;">Fig.2: Method overview. A model takes an RGB image and predicts the 3D joints on which we apply our proposed BMC. These guide the model to predict plausible poses.</div>

生成的3D姿态在解剖学上是合理的。因此，所有这些方法都依赖于大量完全标注的训练数据。在人体姿态估计中，这类方法通常会采用对抗性损失来确保姿态的合理性 [^20]。

文献中也曾利用生物力学约束来促使生成合理的3D姿态：通过对手部结构施加生物力学限制 [^9] [^10] [^12] [^25] [^34] [^38] [^41] [^42] [^45]，或者通过学习得到的细化模型来实现 [^7]。大多数方法 [^2] [^9] [^10] [^25] [^34] [^38] [^41] [^45] 都是在后处理步骤中通过逆运动学来施加这些限制的，因此它们能否用于神经网络训练仍有待解答。我们提出的软约束被完全集成到网络中，测试时无需额外的细化步骤。与我们的方法类似，[^12] [^42] 也会对无效的骨骼长度进行惩罚；不过我们还额外对关节限制和手掌结构进行了建模。

## 3 方法

我们的方法如图2所示。我们的核心贡献是一组全新的约束条件，它们构成了人手的生物力学模型，能够描述骨骼长度、关节角度以及手掌形状。需要强调的是，我们并非将运动学模型拟合到预测结果上，而是直接从预测结果中提取相关量来进行约束。因此，提取方法的设计充分考虑了其在噪声较大且形态异常的3D关节预测下的适用性，同时在任何配置下都具备完全可微的特性。这些生物力学约束为神经网络提供了归纳偏置：具体而言，网络会被引导针对弱监督数据（即仅包含2D信息的数据）预测出解剖学上合理的人手姿态，进而提升模型的泛化能力。该模型可以与任何能预测3D关键点的骨干网络结合使用。我们首先介绍本文中使用的符号，随后详细说明所提出的生物力学损失函数，最后探讨其与[^19]变体的集成方式。

符号说明。我们用粗体大写字母表示矩阵，粗体小写字母表示向量，罗马字体表示标量。我们假设研究对象为右手。关节 $[\mathbf{j}_1^{3D}, \ldots, \mathbf{j}_{21}^{3D}] = \mathbf{J}^3D \in \mathbb{R}^{21 \times 3}$ 构成了从根关节 $\mathbf{j}_1^{3D}$ 开始、到指尖结束的手部运动链。为简便起见，手部关节按手指分组，分别记为集合 $F_1, \ldots, F_5$，如图3a所示。除根关节（CMC）外，每个关节 $\mathbf{j}_i^{3D}$ 都有一个父关节，记为 $p(i)$。我们将骨骼 $\mathbf{b}_i = \mathbf{j}_{i+1}^{3D} - \mathbf{j}_{p(i+1)}^{3D}$ 定义为指向……

---

![Image](images/cba6331d3b00d40bf1bb6a110a75e9a20f60429b5a30ecab0aa86c00ac5b7c05.jpg)

<div style="text-align: center;">a) Joint skeleton structure</div>

<div style="text-align: center;">b) Root bone structure</div>

<div style="text-align: center;">c) Angles. Flexion: Left - Abduction: Right</div>

<div style="text-align: center;">Fig. 3: Illustration of our proposed biomechanical structure.</div>

从父关节到其子关节。因此，$[\mathbf{b}_1, \ldots, \mathbf{b}_{20}] = \mathbf{B} \in \mathbb{R}^{20 \times 3}$。骨骼根据子关节来命名。例如，连接MCP和PIP的骨骼被称为PIP骨。我们将五根根骨定义为MCP骨，其一端为根部$\mathbf{j}_1^{3D}$。直观地说，根骨就是位于手掌内并界定手掌范围的骨骼。我们定义骨骼$\mathbf{b}_i$与$i = 1, \ldots, 5$对应手指的根骨$F_1, \ldots, F_5$。我们用$\alpha(v_1, v_2) = \arccos\left(\frac{\mathbf{v}_1^T \mathbf{v}_2}{||\mathbf{v}_1||_2 ||\mathbf{v}_2||_2}\right)$表示向量$\mathbf{v}_1, \mathbf{v}_2$之间的夹角。区间损失定义为$\mathcal{I}(x; a, b) = \max(a - x, 0) + \max(x - b, 0)$。归一化向量定义为$\text{norm}(\mathbf{x}) = \frac{\mathbf{x}}{||\mathbf{x}||_2}$。最后，$\mathbf{P}_{\mathbf{xy}}(\mathbf{v})$是正交投影算子，它将$\mathbf{v}$正交投影到由$\mathbf{x}$和$\mathbf{y}$构成的平面上，其中$\mathbf{x}, \mathbf{y}$为向量。

### 3.1 生物力学约束

我们的目标是将生物力学软约束（BMC）整合到训练过程中，以促使网络预测出可行的手部姿态。我们力求避免采用逆向运动学这类迭代优化方法，以防显著延长训练时间。

所提出的模型包含三个功能部分，如图3所示。首先，我们考虑骨骼的长度，包括手掌的根骨。其次，我们对手掌区域的结构和形状进行建模，该区域由各个关节组成的刚性结构构成。为了适应不同个体在骨骼和手掌结构上的差异，我们不强制设定特定的平均形状，而是允许这些属性落在合理范围内。最后，模型描述了各个手指的活动情况。手指的运动通过模拟单个骨骼的屈曲和外展来表述。由于它们的限制相互关联，因此需要联合建模。据此，我们提出了一种考虑这种相互依赖性的新型约束。

每个约束的限值可以通过手动测量、文献资料（如[^9]、[^34]）获取，或者若有3D标注数据的话，也可通过数据驱动的方式获得。

骨骼长度。对于每根骨骼i，我们定义一个有效的骨骼长度区间$[b_i^{\min}, b_i^{\max}]$，若长度$\|\mathbf{b}_i\|_2$超出该区间，则予以惩罚：

 $$ \mathcal{L}_{\mathrm{B L}}(\mathbf{J}^{3D})=\frac{1}{20}\sum_{i=1}^{20}\mathcal{I}(||\mathbf{b}_{i}||_{2};b_{i}^{\min},b_{i}^{\max}) $$

---

这种损失函数会促使关键点预测结果能生成有效的骨骼长度。图3a中用蓝色表示骨骼的长度。

根骨。为了得到合理的手掌结构，我们首先将根骨视为构成一个网格，并按照[^31]的方法计算其曲率：

 $$ c_{i}=\frac{(\mathbf{e}_{i+1}-\mathbf{e}_{i})^{T}(\mathbf{b}_{i+1}-\mathbf{b}_{i})}{||\mathbf{b}_{i+1}-\mathbf{b}_{i}||^{2}},for i\in\{1,2,3,4\} $$

其中$e_{i}$是骨骼$b_{i}$处的边法线：

 $$ \begin{aligned}\mathbf{n}_{i}&=\operatorname{norm}(\mathbf{b}_{i+1}\times\mathbf{b}_{i}),\mathrm{for}i\in\{1,2,3,4\}\\\mathbf{e}_{i}&=\left\{\begin{aligned}&\mathbf{n}_{1},&&\mathrm{if}i=1\\&\operatorname{norm}(\mathbf{n}_{i}+\mathbf{n}_{i-1}),&&\mathrm{if}i\in\{2,3,4\}\\&\mathbf{n}_{4},&&\mathrm{if}i=5\end{aligned}\right.\end{aligned} $$

$c_{i}$的正值表示手部呈拱形，例如小指和拇指相触时。平坦的手部没有曲率。图3b中用黄色虚线表示网格，用紫色虚线表示计算曲率的三角形。

我们通过定义相邻$\mathbf{b}_i$和$\mathbf{b}_{i+1}$在其所构成的平面上的角度距离，来确保根骨落在正确的角度范围内：

 $$ \phi_{i}=\alpha(\mathbf{b}_{i},\mathbf{b}_{i+1}) $$

我们将曲率$c_i$和角度距离$\phi_i$都限制在有效范围$[c_i^{\min}, c_i^{\max}]$和$[\phi_i^{\min}, \phi_i^{\max}]$内：

 $$ \mathcal{L}_{\mathrm{R B}}(\mathbf{J}^{3D})=\frac{1}{4}\sum_{i=1}^{4}\left(\mathcal{I}(c_{i};c_{i}^{\mathrm{m i n}},c_{i}^{\mathrm{m a x}})+\mathcal{I}(\phi_{i};\phi_{i}^{\mathrm{m i n}},\phi_{i}^{\mathrm{m a x}})\right) $$

$\mathcal{L}_{\mathrm{RB}}$确保预测出的手掌关节能构成合理的结构，这一点至关重要，因为手指的运动链正是起源于这一区域。

关节角。为了计算关节角，我们首先需要为每个手指骨骼 $\mathbf{F}_i$ 定义一个一致的局部坐标系框架 $\mathbf{b}_i$。$\mathbf{F}_i$ 必须与手指的运动保持一致。换句话说，如果在给定姿态 $\mathbf{F}_i$ 的情况下构建 $\mathbf{J}_1^{3D}$，然后将手指及相应的 $\mathbf{F}_i$ 移动到姿态 $\mathbf{J}_2^{3D}$，则得到的 $\mathbf{F}_i$ 应与直接从 $\mathbf{J}_2^{3D}$ 构建的结果相同。

我们采用右手坐标系。为了构建$\mathbf{F}_i$，我们先基于手掌确定三个轴中的两个。我们从第一层指骨（PIP骨）开始：将其$\mathbf{F}_i$的z分量定义为对应父骨（此处为根骨）的归一化骨向量：$\mathbf{z}_i = \text{norm}(\mathbf{b}_{p(i)})$。接下来，我们根据两根相邻根骨所张成的平面法线来确定x轴：

 $$ \mathbf{x}_{i}=\left\{\begin{aligned}{}&{{}\mathbf{-n}_{p(i)},}&{}&{{}\mathrm{i f}p(i)\in\{1,2\}}\\ {}&{{}\mathrm{-n o r m}(\mathbf{n}_{p(i)}+\mathbf{n}_{p(i)-1}),}&{}&{{}\mathrm{i f}p(i)\in\{3,4\}}\\ {}&{{}\mathbf{-n}_{4},}&{}&{{}\mathrm{i f}p(i)=5}\\ \end{aligned}\right. $$

---

其中$\mathbf{n}_i$的定义如公式2所示。最后，我们计算最后一个轴$\mathbf{y}_i = \text{norm}(\mathbf{z}_i \times \mathbf{x}_i)$。确定了$\mathbf{F}_i$之后，我们就可以定义屈曲角和外展角。这两个角度都是相对于$\mathbf{F}_i$的局部z轴而言的。给定处于$\mathbf{b}_i$局部坐标系下的指骨$\mathbf{b}_i^{\mathbf{F}_i}$（即$\mathbf{F}_i$），屈曲角和外展角的定义如下：

 $$ \begin{aligned}\theta_{i}^{\mathrm{f}}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i}}),\mathbf{z}_{i})\\\theta_{i}^{\mathrm{a}}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i}}),\mathbf{b}_{i}^{\mathbf{F}_{i}})\end{aligned} $$

图3c展示了$\mathbf{F}_i$及由此得到的角度。需要注意的是，这种表述方式会导致歧义，即不同的骨骼方向可能映射到同一个$(\theta_i^f, \theta_i^a)$点。我们通过八分位查找法来解决这一问题，从而将角度分别限定在$\theta_i^f \in [-\pi, \pi]$和$\theta_i^a \in [-\pi/2, \pi/2]$区间内。更多细节见附录。

根据第一组指骨的角度，我们就可以构建其余两排指骨。设$\mathbf{R}^{\theta_i}$表示旋转矩阵，该矩阵绕$\theta_i^f$和$\theta_i^a$旋转后能得到$\mathbf{R}^{\theta_i}\mathbf{z}_i = \mathbf{b}_i^{\mathbf{F}_i}$；接着我们沿着手指的运动链迭代构建其余的参考框架：

 $$ \mathbf{F}_{i}=\mathbf{R}^{\theta_{i}}\mathbf{F}_{p(i)} $$

这种通过绕$\theta_{i}^{f}$和$\theta_{i}^{a}$旋转来构建参考框架的方法能确保不同姿态下的一致性。其余角度的计算方式如公式5所述。

最后，需要对这些角度加以约束。一种方法是单独考虑每个角度，若其超出特定区间则施加惩罚。这相当于在二维空间中将其约束在一个由极限值定义的矩形区域内。然而，手指角度之间存在相互依赖性，因此我们提出了另一种解决方案来处理这一问题。给定定义运动范围的点集$\theta_i = (\theta_i^f, \theta_i^a)$，我们用一组固定点$(\theta^f, \theta^a)$来近似描述其在$\mathcal{H}_i$平面上的凸包。通过最小化角度到该凸包的距离，即可将角度约束在该结构内部：

 $$ \mathcal{L}_{\mathrm{A}}(\mathbf{J}^{3D})=\frac{1}{15}\sum_{i=1}^{15}D_{H}(\theta_{i},\mathcal{H}_{i}) $$

其中$D_{H}$表示点$\theta_{i}$到凸包$\mathcal{H}_{i}$的距离。关于凸包近似及实现细节可参见附录。

### 3.2 Z轴$^{root}$优化

2.5D关节表示法使我们能够恢复绝对姿态的值$Z^{root}$，但会存在一个缩放因子。正如$\mathbf{J}^{2D}$中所提出的那样，这是通过求解一个依赖于2D投影$\mathbf{z}^r$和相对深度值[^19]的二次方程来实现的。实际上，$\mathbf{J}^{2D}$或$\mathbf{z}^r$中的微小误差就可能导致$Z^{root}$出现较大偏差。这会造成预测姿态在平移和缩放方面的剧烈波动，而这种结果是不希望看到的。为了缓解这些问题，我们采用多层感知机来优化并平滑计算得到的$\tilde{Z}^{root}$：

 $$ \begin{array}{r}{\hat{Z}_{\mathrm{r e f}}^{r o o t}=\hat{Z}^{r o o t}+M_{\mathrm{M L P}}(\mathbf{z}^{r},\mathbf{K}^{-1}\mathbf{J}^{2D},\hat{Z}^{r o o t};\omega)}\end{array} $$

---

其中$M_{\text{MLP}}$是一个具有参数$\omega$的多层感知机，它接收预测值和计算值$\mathbf{z}^r \in \mathbb{R}^{21}$、$\mathbf{K}^{-1} \mathbf{J}^{2D} \in \mathbb{R}^{21 \times 3}$、$Z^{root} \in \mathbb{R}$，并输出一个残差项。或者，也可以利用相同的输入，直接用多层感知机来预测$Z^{root}$。不过，由于预测变量与$Z^{root}$之间的精确关系已知，我们选择了这种优化方法，而非让模型去学习已经确定的关系。

### 3.3 最终损失函数

生物力学软约束的构建方式如下：

 $$ \mathcal{L}_{\mathrm{B M C}}=\lambda_{\mathrm{B L}}\mathcal{L}_{\mathrm{B L}}+\lambda_{\mathrm{R B}}\mathcal{L}_{\mathrm{R B}}+\lambda_{\mathrm{A}}\mathcal{L}_{\mathrm{A}} $$

我们的最终模型是基于以下损失函数进行训练的：

 $$ \mathcal{L}=\lambda_{\mathbf{J}^{2D}}\mathcal{L}_{\mathbf{J}^{2D}}+\lambda_{\mathbf{z}^{r}}\mathcal{L}_{\mathbf{z}^{r}}+\lambda_{\mathrm{Z}_{\mathrm{r e f}}^{\mathrm{r o o t}}}\mathcal{L}_{\mathrm{Z}^{\mathrm{r o o t}}}+\mathcal{L}_{\mathrm{B M C}} $$

其中$\mathcal{L}_{\mathbf{J}^{2D}}$、$\mathcal{L}_{\mathbf{z}^{r}}$和$\mathcal{L}_{\mathbf{Z}^{root}}$分别是针对可用的$\mathbf{J}^{2D}$、$\mathbf{z}^{r}$和$\mathbf{Z}^{root}$标签计算的L1损失。权重$\lambda_{i}$用于平衡各项损失。

## 4 实现细节

我们采用了ResNet-50作为骨干网络[^17]。模型的输入是一张$128 \times 128$格式的RGB图像，可直接从中回归出2.5D表示。该模型及其优化步骤是在全监督数据和弱监督数据上训练的。网络共训练70个周期，使用SGD优化器，初始学习率为$5e^{-3}$，每30个周期学习率会衰减为原来的0.1。我们将生物力学约束直接应用于预测出的3D关键点$\mathbf{J}^{3D}$。

## 5 评估

在此我们介绍了所使用的数据集，展示了所提出方法$\mathcal{L}_{\mathrm{BMC}}$的性能，并在多种场景下进行了对比。具体而言，我们研究了添加弱监督数据以补充全监督训练的效果。所有实验均假设我们能获取全监督数据集以及额外的弱监督真实数据集，因此我们能够得到2D真值标注和计算出的约束范围。我们研究了两种3D监督源的情况：

合成数据。我们选择了RHD数据集。与真实数据相比，获取完全标注的合成数据要容易得多。第5.3至5.5节探讨了这种场景。部分标注的真实数据。在第5.6节中，我们逐步增加真实3D标注样本的数量，以研究在不同全监督数据与弱监督数据比例下该方法的表现。

为了明确所使用的监督类型，如果使用来自数据集A的3D标注，我们将其记为$\mathbf{3D}_A$；如果使用数据集A中的2D标注，则记为$\mathbf{2D}_A$。第5.3节和5.4节的实验是在FH数据集上进行的。

---

### 5.1 数据集

每个提供3D标签的数据集都附带相机内参，因此可以从3D姿态轻松获取2D姿态。表1概述了所使用的数据集。HO-3D和FH的测试集仅能通过提交方式获取。

<div style="text-align: center;">Table 1: Overview of datasets used for evaluation.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Name</td><td style='text-align: center; word-wrap: break-word;'>Type</td><td style='text-align: center; word-wrap: break-word;'>joints #</td><td style='text-align: center; word-wrap: break-word;'>train/test #</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Rendered Hand Pose (RHD) [^50]</td><td style='text-align: center; word-wrap: break-word;'>Synth</td><td style='text-align: center; word-wrap: break-word;'>21</td><td style='text-align: center; word-wrap: break-word;'>42k / 2.7k</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND (FH) [^51]</td><td style='text-align: center; word-wrap: break-word;'>Real</td><td style='text-align: center; word-wrap: break-word;'>21</td><td style='text-align: center; word-wrap: break-word;'>33k / 4.0k</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dexter+Object (D+O) [^37]</td><td style='text-align: center; word-wrap: break-word;'>Real</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>- / 3.1k</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-Object 3D (HO-3D) [^15]</td><td style='text-align: center; word-wrap: break-word;'>Real</td><td style='text-align: center; word-wrap: break-word;'>21</td><td style='text-align: center; word-wrap: break-word;'>11k / 6.6k</td></tr></table>

由于提交数量有限，为了进行消融研究（第5.4节）以及分析弱监督的影响（第5.3节），我们将训练集划分为训练集和验证集。在这些章节中，我们选择使用FH数据集进行评估，因为该数据集包含大量样本，且手部姿态和形状的变化性较强。

### 5.2 评估指标

HO-3D：提交系统给出的误差为关节平均误差（单位：毫米）。INTERP是指在训练集中不存在、但从训练序列中采样的测试帧上的误差；EXTRAP是指在训练集中既无手部形状也无相关物体的测试样本上的误差。我们使用的是当时可用的数据集版本 [^3]。

FH：提交系统给出的误差为关节平均误差（单位：毫米）。此外，我们还会报告关键点正确率（PCK）曲线下的面积（AUC）。PCK值的范围为0毫米到50毫米，共设置100个等间距阈值。我们同时给出对齐后（采用Procrustes分析）和对齐前的得分，此处报告对齐后的得分；对齐前的得分可参见附录。

D+O：我们报告与以往研究可比的、阈值为20毫米到50毫米的PCK对应的AUC [^5] [^48] [^51]。对于 [^19] [^26] [^36] [^50]，我们采用 [^48] 中呈现的数值，因为这些数值以统一的PCK阈值整合了相关研究的全部AUC结果。对于 [^4]，我们根据作者提供的数据重新计算了同一区间内的AUC。

### 5.3 弱监督的影响

我们首先探究弱监督对模型性能的影响。通过针孔相机模型 $\mathbf{J}^{2D}$，我们将FH验证集上的3D预测误差分解为2D分量 $\mathbf{Z}$ 和深度分量 $\mathbf{Z}^{-1}\mathbf{K}\mathbf{J}^{3D} = \mathbf{J}^{2D}$，并分别评估二者的误差。

我们使用不同的数据源训练了四个模型：1）在合成的RHD数据集和真实的FH数据集上采用完整的3D监督（$3D_{RHD} + 3D_{FH}$），作为所有3D标签均可用的理想情况下的上限；2）仅在RHD数据集上采用完全监督，构成准确率的下限（$3D_{RHD}$）；3）在RHD数据集上采用完全监督，同时对FH数据应用简单的弱监督策略（$+2D_{FH}$）；4）与设置3）类似，但加入了我们提出的约束条件（$+\mathcal{L}_{BMC}$）。

---

<div style="text-align: center;">Table 2: The effect of weak-supervision on the validation split of FH. Training on synthetic data (RHD) leads to poor accuracy on real data (FH). Adding real 2D labeled data reduces 3D prediction error due to better alignment with the 2D projection. Adding our proposed  $\mathcal{L}_{BMC}$ significantly reduces the 3D error due to more accurate Z.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Effect of weak-supervision</td><td rowspan="2">Description</td><td rowspan="2">2D (px)</td><td colspan="2">Mean Error $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Z (mm)</td><td style='text-align: center; word-wrap: break-word;'>3D (mm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$ + $3D_{{FH}}$</td><td style='text-align: center; word-wrap: break-word;'>Fully supervised, synthetic+real</td><td style='text-align: center; word-wrap: break-word;'>3.72</td><td style='text-align: center; word-wrap: break-word;'>5.69</td><td style='text-align: center; word-wrap: break-word;'>8.78</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+ \mathcal{L}_{{BMC}}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>3.70</td><td style='text-align: center; word-wrap: break-word;'>5.44</td><td style='text-align: center; word-wrap: break-word;'>8.60</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$</td><td style='text-align: center; word-wrap: break-word;'>Fully supervised, synthetic only</td><td style='text-align: center; word-wrap: break-word;'>12.35</td><td style='text-align: center; word-wrap: break-word;'>20.02</td><td style='text-align: center; word-wrap: break-word;'>30.82</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $2D_{{FH}}$</td><td style='text-align: center; word-wrap: break-word;'>+ Weakly supervised, real</td><td style='text-align: center; word-wrap: break-word;'>3.80</td><td style='text-align: center; word-wrap: break-word;'>17.02</td><td style='text-align: center; word-wrap: break-word;'>20.92</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+ \mathcal{L}_{{BMC}}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>3.79</td><td style='text-align: center; word-wrap: break-word;'>9.97</td><td style='text-align: center; word-wrap: break-word;'>13.78</td></tr></table>

表2展示了相关结果。使用真实数据和合成数据进行的全3D监督训练的模型表现最佳。在训练过程中加入$\mathcal{L}_{\text{BMC}}$会使3D误差略微降低（从8.78毫米降至8.6毫米），这主要归因于正则化效应。当模型仅基于合成数据训练时（$3\mathbf{D}_{\text{RHD}}$），由于合成数据的泛化能力较差，3D误差会显著上升（从8.78毫米升至30.82毫米）。若利用真实数据提供弱监督信息（$+2\mathbf{D}_{\text{FH}}$），误差则会减小（从30.82毫米降至20.92毫米）。但仔细观察会发现，这种改善主要来自2D误差的降低（从12.35像素降至3.8像素），而深度维度的改善则较为有限（从20.02毫米降至17.02毫米）。通过定性观察这些样本（图1）可知，许多样本并不符合人手的生物力学限制。通过在我们提出的损失函数中引入$\mathcal{L}_{\text{BMC}}$来对这类违规情况进行惩罚，弱监督设定下的3D误差便显著改善（从20.92毫米降至13.78毫米），这得益于深度精度的提升（从20.02毫米降至9.97毫米）。进一步仔细观察（如图1所示）会发现，即便模型从未见过此类3D样本，它仍能在严重的自身遮挡或物体遮挡等复杂场景下预测出正确的3D姿态。由于$\mathcal{L}_{\text{BMC}}$描述的是一个有效范围而非特定姿态，因此出现与真实3D姿态的轻微偏差在所难免，这也解释了为何其与全监督模型之间仍存在微小的定量差距。

### 5.4 消融实验

我们在FH数据集的验证集上量化了各项提议的独立贡献，并在补充材料中复现了在HO-3D数据集上的结果。所有误差指标均针对根节点相关的3D姿态进行计算。

细化网络。表3展示了$Z^{root}$细化步骤的影响（见第3.2节）。我们训练了两个模型：一个包含细化步骤（含细化），另一个则省略该步骤（无细化），两者均在FH数据集上采用全监督方式训练（3D $_{FH}$）。采用细化步骤后，平均误差得以降低。

<div style="text-align: center;">Table 3: Effect of  $Z^{root}$ refinement</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Ablation Study</td><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>median $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o refinement</td><td style='text-align: center; word-wrap: break-word;'>11.20</td><td style='text-align: center; word-wrap: break-word;'>8.62</td><td style='text-align: center; word-wrap: break-word;'>0.95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w. refinement (ours)</td><td style='text-align: center; word-wrap: break-word;'>9.76</td><td style='text-align: center; word-wrap: break-word;'>8.14</td><td style='text-align: center; word-wrap: break-word;'>0.97</td></tr></table>

降低了1.44毫米，这表明细化操作能有效减少异常值。

---

![Image](images/8e39346b8d5e9a17a9f06a167de44c02df49a5e06bdb3e90809fa1e5dafa595c.jpg)

<div style="text-align: center;">(a) Input image</div>

![Image](images/f82012650563b211da080207a5068022b6f1ffa9a16f0f7bb39c70368009121c.jpg)

<div style="text-align: center;">(b) Ground-truth</div>

![Image](images/0412f951636d3b62e78ba27de3001aac5124c2197adb8e620bc9343ff2d1f750.jpg)

<div style="text-align: center;">(c)  $\mathcal{L}_{\mathrm{BL}}$</div>

![Image](images/d6d3f51f907a1c3c1e69d896751b91b5052182abf6cd20a5ef08e71b27791429.jpg)

![Image](images/e774ab0ac73a555cef3a9a228c1c87533b00b676beff2c82c5bf4d166fbd3cc0.jpg)

<div style="text-align: center;">(e)  $\mathcal{L}_{\mathrm{BL}} + \mathcal{L}_{\mathrm{RB}} +$</div>

<div style="text-align: center;">(d)  $\mathcal{L}_{\mathrm{BL}} + \mathcal{L}_{\mathrm{RB}}$  $\mathcal{L}_{\mathrm{A}}$</div>

<div style="text-align: center;">Fig. 4: Impact of our proposed losses. (a) All predicted 3D poses project to the same 2D pose. (b) Ground-truth pose. (c)  $\mathcal{L}_{\mathrm{BL}}$ results in poses that have correct bone lengths, but may have invalid angles and palm structure. (d) Including  $\mathcal{L}_{\mathrm{RB}}$ imposes a correct palm, but the fingers are still articulated wrong. (e) Adding  $\mathcal{L}_{\mathrm{A}}$ leads to the finger bones having correct angles. The resulting hand is plausible and close to the ground-truth.</div>

BMC的组成部分。表4中我们进行了一系列实验，逐步添加所提出的各项约束条件。在3D引导方面，我们使用合成RHD数据，仅采用FH数据集的2D标签。我们首先运行仅基于这些数据训练的基线模型（$3D_{RHD} + 2D_{FH}$）。接着，我们加入骨长损失$\mathcal{L}_{BL}$，随后……

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Ablation Study</td><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>median $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 2D_{FH}$</td><td style='text-align: center; word-wrap: break-word;'>20.92</td><td style='text-align: center; word-wrap: break-word;'>16.93</td><td style='text-align: center; word-wrap: break-word;'>0.81</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BL}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>17.58</td><td style='text-align: center; word-wrap: break-word;'>14.81</td><td style='text-align: center; word-wrap: break-word;'>0.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{RB}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>15.48</td><td style='text-align: center; word-wrap: break-word;'>13.49</td><td style='text-align: center; word-wrap: break-word;'>0.91</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$-\frac{+ \mathcal{L}_{A}}{}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>13.78</td><td style='text-align: center; word-wrap: break-word;'>11.61</td><td style='text-align: center; word-wrap: break-word;'>0.92</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 3D_{FH}$</td><td style='text-align: center; word-wrap: break-word;'>8.78</td><td style='text-align: center; word-wrap: break-word;'>7.25</td><td style='text-align: center; word-wrap: break-word;'>0.98</td></tr></table>

<div style="text-align: center;">Table 4: Effect of BMC components.</div>

约束极限。表6中我们研究了所用极限对最终性能的影响，因为实际中可能需要采用近似处理。为此，我们取用RHD中的手部参数，进行与之前相同的弱监督实验……

根骨损失$\mathcal{L}_{\mathrm{RB}}$和角度损失$\mathcal{L}_{\mathrm{A}}$。完全监督下在两个数据集上训练的模型则给出了性能上限（$3\mathbf{D}_{\mathrm{RHD}} + 3\mathbf{D}_{\mathrm{FH}}$）。每个组成部分都对最终性能有积极贡献，与弱监督基线相比，平均误差总共降低了6.24毫米，显著缩小了与全监督上限之间的差距。各损失的定性评估结果可见图4。

角度的相互依赖性。在表……

5中，我们展示了建模屈曲角与外展角极限之间的依赖关系（见第3节）的重要性，而非将它们独立对待。具有相互依赖性的角度极限可使平均误差降低1.40毫米。

<div style="text-align: center;">Table 5: Effect of angle constraints</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Ablation Study</td><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>median $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Independent</td><td style='text-align: center; word-wrap: break-word;'>15.57</td><td style='text-align: center; word-wrap: break-word;'>13.45</td><td style='text-align: center; word-wrap: break-word;'>0.91</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dependent</td><td style='text-align: center; word-wrap: break-word;'>13.78</td><td style='text-align: center; word-wrap: break-word;'>11.61</td><td style='text-align: center; word-wrap: break-word;'>0.92</td></tr></table>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Ablation Study</td><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>median $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Approximated</td><td style='text-align: center; word-wrap: break-word;'>16.14</td><td style='text-align: center; word-wrap: break-word;'>13.93</td><td style='text-align: center; word-wrap: break-word;'>0.90</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Computed</td><td style='text-align: center; word-wrap: break-word;'>13.78</td><td style='text-align: center; word-wrap: break-word;'>11.61</td><td style='text-align: center; word-wrap: break-word;'>0.92</td></tr></table>

<div style="text-align: center;">Table 6: Effect of limits</div>

对于 $(+\mathcal{L}_{\mathbf{BMC}})$ 而言，用另一数据集来近似其极限值虽然会略微增加误差，但性能仍明显优于二维基线模型。

---

<div style="text-align: center;">Table 7: Results on the respective test split, evaluated by the submission systems. Training on RHD leads to poor accuracy on both FH and HO-3D. Adding weakly-supervised data improves results, as expected. By including our proposed  $\mathcal{L}_{BMC}$, our model incurs a significant boost in accuracy, especially evident for the INTERP score.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Description</td><td colspan="2">R=FH</td><td colspan="2">R=HO-3D</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>EXTRAP $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>INTERP $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$ + $3D_{{R}}$</td><td style='text-align: center; word-wrap: break-word;'>0.90</td><td style='text-align: center; word-wrap: break-word;'>0.82</td><td style='text-align: center; word-wrap: break-word;'>18.22</td><td style='text-align: center; word-wrap: break-word;'>5.02</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$</td><td style='text-align: center; word-wrap: break-word;'>1.60</td><td style='text-align: center; word-wrap: break-word;'>0.69</td><td style='text-align: center; word-wrap: break-word;'>20.84</td><td style='text-align: center; word-wrap: break-word;'>33.57</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+2D_{{R}}$</td><td style='text-align: center; word-wrap: break-word;'>1.26</td><td style='text-align: center; word-wrap: break-word;'>0.75</td><td style='text-align: center; word-wrap: break-word;'>19.57</td><td style='text-align: center; word-wrap: break-word;'>25.16</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{{BMC}}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>1.13</td><td style='text-align: center; word-wrap: break-word;'>0.78</td><td style='text-align: center; word-wrap: break-word;'>18.42</td><td style='text-align: center; word-wrap: break-word;'>10.31</td></tr></table>

<div style="text-align: center;">Table 8: Datasets used by prior work for evaluation on D+O. With solely fully-supervised synthetic and weakly-supervised real data, we outperform recent works and perform on par with [^48]. All other works rely on full supervision from real and synthetic data. $^{*}$These works report unaligned results.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">D+O</td><td colspan="4">Annotations used</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Synth.</td><td style='text-align: center; word-wrap: break-word;'>Real</td><td style='text-align: center; word-wrap: break-word;'>Scans</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (weakly sup.)</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>2D only</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.82</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhang (2019) [^48]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>0.82</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Boukhayma (2019) [^5]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>0.76</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Iqbal (2018)* [^19]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.67</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Baek (2019)* [^4]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>0.61</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zimmermann (2018) [^50]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.57</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Spurr (2018) [^36]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.51</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mueller (2018)* [^26]</td><td style='text-align: center; word-wrap: break-word;'>3D</td><td style='text-align: center; word-wrap: break-word;'>Unlabeled</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.48</td></tr></table>

### 5.5 利用合成数据进行自举学习

我们在FH和HO-3D的\textit{测试集}上验证$\mathcal{L}_{\mathrm{BMC}}$的性能。我们采用与第5.3节相同的四种模型，使用全监督的RHD数据以及弱监督的真实数据$R \in [\mathrm{FH}, \mathrm{HO}-3\mathrm{D}]$进行训练。

对于所有结果，我们均在完整数据集上进行训练，并通过在线提交系统在官方测试集上评估性能。此外，我们还评估了模型在D+O数据集上的跨数据集表现，以展示我们所提出的约束条件对泛化能力的提升效果，并与以往的研究结果进行对比[^4] [^5] [^19] [^26] [^48]。

FH数据集：表7的第二列展示了R=FH时的数据集性能。仅基于RHD数据训练的模型（3D_{RHD}）表现最差。加入带有二维标签的真实数据（+2D_{FH}）后，误差有所降低，这是因为我们缩小了真实数据与合成数据之间的域差距。引入所提出的$\mathcal{L}_{\text{BMC}}$后，准确率进一步提升。

HO-3D数据集：表7的第三列显示了R=HO-3D时的类似趋势。最显著的是，我们的约束条件使INTERP误差降低了14.85毫米，这一降幅远大于仅使用二维数据带来的8.41毫米误差缩减量。对于EXTRAP任务，BMC方法可使误差减少1.15毫米，这一数值接近使用二维数据所能达到的1.27毫米误差缩减量。这表明$\mathcal{L}_{\text{BMC}}$在利用二维数据应对未见场景时能发挥更大作用。

D+O数据集：表8展示了R=FH时模型在D+O数据集上的跨数据集性能。近期的研究大多采用了MANO模型[^4] [^5] [^48]，该模型利用高度精细的手部扫描数据的低维嵌入，且需要定制化的处理方式……

---

……合成数据[^4] [^5]用于拟合手部形状。仅使用全监督的合成数据以及弱监督的真实数据，再结合$\mathcal{L}_{\mathrm{BMC}}$，我们便达到了最先进的性能水平。

### 5.6 利用真实数据进行自举学习

我们研究了在真实三维标注样本较少的场景下，生物力学约束对减少所需标注样本数量的影响。我们在一个特定设置下训练模型：部分数据包含完整的三维标签，其余数据仅提供二维监督信息。

在此实验中，我们选择$R = FH$，使用整个训练集并在测试集上进行评估。针对每一比例的完全标注数据，我们评估两种模型：第一种模型在完全标注和弱标注样本上训练；第二种模型则在训练时加入了我们所提出的约束条件。我们在图5中展示了结果：对于给定的AUC值，我们绘制出达到该值所需的标注样本数量。我们发现，在较低的标注比例下，使用$\mathcal{L}_{BMC}$时所需的标注数据量大约仅为原来的一半。

![Image](images/cd55ba100e4cdba6d5eafc61acb21770c0d23e0c0de22b4bc8cc4f391a0ac1b5.jpg)

<div style="text-align: center;">Fig. 5: Number of 3D samples required to reach a certain aligned AUC on FH.</div>

这体现了其在低标注量场景下的有效性，也证明了其对完全标注训练数据需求的降低效果。

## 6 结论

我们提出了一组完全可微的生物力学损失函数，以便更有效地利用弱监督数据。我们的方法包含一种新颖的流程，通过一组新型损失函数来促使骨干网络做出符合解剖学规律的预测；这些损失函数会对无效的骨骼长度、关节角度以及掌部结构进行惩罚。此外，实验表明我们的约束条件能够更有效地利用弱监督数据，从而在数据集内部及跨数据集性能上均取得提升。在利用3D合成数据和2D真实数据进行的对齐D+O任务中，我们的方法达到了最先进的性能；在FH数据集的低标注场景下，训练数据需求更是减少了一半。

致谢。我们感谢Christoph Gebhardt和Shoaib Ahmed Siddiqui在图表制作上的帮助，也感谢Abhishek Badki的有益讨论。

---

## 参考文献

[^1]: Albrecht, I., Haber, J., Seidel, H.P.: Construction and animation of anatomically based human hand models. In: SIGGRAPH (2003)

2. Aristidou, A.：基于生理约束的手部追踪。《视觉计算机》$\mathbf{34}(2)$，第213–228页（2018年）

[^3]: Armagan, A., Garcia-Hernando, G., Baek, S., Hampali, S., Rad, M., Zhang, Z., Xie, S., Chen, M., Zhang, B., Xiong, F., et al.: Measuring generalisation to unseen viewpoints, articulations, shapes and objects for 3d hand pose estimation under hand-object interaction. In: ECCV (2020)

[^4]: Baek, S., Kim, K.I., Kim, T.K.: Pushing the envelope for RGB-based dense 3d hand pose estimation via neural rendering. In: CVPR (2019)

[^5]: Boukhayma, A., Bem, R.d., Torr, P.H.: 3d hand shape and pose from images in the wild. In: CVPR (2019)

[^6]: Cai, Y., Ge, L., Cai, J., Yuan, J.: Weakly-supervised 3d hand pose estimation from monocular RGB images. In: ECCV (2018)

[^7]: Cai, Y., Ge, L., Liu, J., Cai, J., Cham, T.J., Yuan, J., Thalmann, N.M.: Exploiting spatial-temporal relationships for 3d pose estimation via graph convolutional networks. In: CVPR (2019)

[^8]: Cerveri, P., De Momi, E., Lopomo, N., Baud-Bovy, G., Barros, R., Ferrigno, G.: Finger kinematic modeling and real-time hand motion estimation. Annals of biomedical engineering 35(11), 1989–2002 (2007)

[^9]: Chen Chen, F., Appendino, S., Battezzato, A., Favetto, A., Mousavi, M., Pescarmona, F.: Constraint study for a hand exoskeleton: human hand kinematics and dynamics. Journal of Robotics (2013)

[^10]: Cobos, S., Ferre, M., Uran, M.S., Ortego, J., Pena, C.: Efficient human hand kinematics for manipulation tasks. In: IROS (2008)

[^11]: Cordella, F., Zollo, L., Guglielmelli, E., Siciliano, B.: A bio-inspired grasp optimization algorithm for an anthropomorphic robotic hand. International Journal on Interactive Design and Manufacturing 6(2), 113–122 (2012)

[^12]: Dibra, E., Wolf, T., Oztireli, C., Gross, M.: How to refine 3d hand pose estimation from unlabelled depth data? In: 3DV (2017)

[^13]: Drover, D., Chen, C.H., Agrawal, A., Tyagi, A., Phuoc Huynh, C.: Can 3d pose be learned from 2d projections alone? In: Proceedings of the European Conference on Computer Vision (ECCV). pp. 0–0 (2018)

[^14]: Ge, L., Ren, Z., Li, Y., Xue, Z., Wang, Y., Cai, J., Yuan, J.: 3d hand shape and pose estimation from a single RGB image. In: CVPR (2019)

[^15]: Hampali, S., Rad, M., Oberweger, M., Lepetit, V.: Honnotate: A method for 3d annotation of hand and object poses. In: CVPR (2020)

[^16]: Hasson, Y., Varol, G., Tzionas, D., Kalevatykh, I., Black, M.J., Laptev, I., Schmid, C.: Learning joint reconstruction of hands and manipulated objects. In: CVPR (2019)

[^17]: He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR (2016)

[^18]: Heap, T., Hogg, D.: Towards 3D hand tracking using a deformable model. In: FG (1996)

[^19]: Iqbal, U., Molchanov, P., Breuel, T., Gall, J., Kautz, J.: Hand pose estimation via latent 2.5d heatmap regression. In: ECCV (2018)

## [^20]: Kanazawa, A., Black, M.J., Jacobs, D.W., Malik, J.: End-to-end recovery of human shape and pose. In: CVPR (2018)

---

[^21]: Kuch, J.J., Huang, T.S.: Vision based hand modeling and tracking for virtual teleconferencing and telecollaboration. In: CVPR (1995)

[^22]: Kulon, D., Wang, H., Güler, R.A., Bronstein, M., Zafeiriou, S.: Single image 3d hand reconstruction with mesh convolutions. In: BMVC (2019)

[^23]: Lee, J., Kunii, T.L.: Model-based analysis of hand posture. IEEE Computer Graphics and applications 15(5), 77–86 (1995)

[^24]: Lin, J., Wu, Y., Huang, T.S.: Modeling the constraints of human hand motion. In: IEEE Workshop on Human Motion (2000)

[^25]: Melax, S., Keselman, L., Orsten, S.: Dynamics based 3d skeletal hand tracking. In: ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (2013)

[^26]: Mueller, F., Bernard, F., Sotnychenko, O., Mehta, D., Sridhar, S., Casas, D., Theobalt, C.: Generated hands for real-time 3d hand tracking from monocular RGB. In: CVPR (2018)

[^27]: Oikonomidis, I., Kyriazis, N., Argyros, A.A.: Full DOF tracking of a hand interacting with an object by modeling occlusions and physical constraints. In: ICCV (2011)

[^28]: Oikonomidis, I., Kyriazis, N., Argyros, A.A.: Efficient model-based 3d tracking of hand articulations using kinect. In: BMVC (2011)

[^29]: Panteleris, P., Oikonomidis, I., Argyros, A.: Using a single rgb frame for real time 3d hand pose estimation in the wild. In: WACV (2017)

[^30]: Pavlakos, G., Choutas, V., Ghorbani, N., Bolkart, T., Osman, A.A., Tzionas, D., Black, M.J.: Expressive body capture: 3d hands, face, and body from a single image. In: CVPR (2019)

31. Reed, N.：计算网格三角形的主曲率的最简单方法是什么？<https://computergraphics.stackexchange.com/questions/1718/what-isthe-simplest-way-to-compute-principal-curvature-for-a-mesh-triangle>（2019年）

[^32]: Rhee, T., Neumann, U., Lewis, J.P.: Human hand modeling from surface anatomy. In: ACM SIGGRAPH symposium on interactive 3D graphics and games (2006)

[^33]: Romero, J., Tzionas, D., Black, M.J.: Embodied hands: Modeling and capturing hands and bodies together. In: SIGGRAPH-Asia (2017)

[^34]: Ryf, C., Weymann, A.: The neutral zero methoda principle of measuring joint function. Injury \textbf{26}, 1–11 (1995)

[^35]: Simon, T., Joo, H., Matthews, I., Sheikh, Y.: Hand keypoint detection in single images using multiview bootstrapping. In: Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. pp. 1145–1153 (2017)

[^36]: Spurr, A., Song, J., Park, S., Hilliges, O.: Cross-modal deep variational hand pose estimation. In: CVPR (2018)

[^37]: Sridhar, S., Mueller, F., Zollhoefer, M., Casas, D., Oulasvirta, A., Theobalt, C.: Real-time joint tracking of a hand manipulating an object from RGB-D input. In: ECCV (2016)

[^38]: Sridhar, S., Oulasvirta, A., Theobalt, C.: Interactive markerless articulated hand motion tracking using RGB and depth data. In: ICCV (2013)

[^39]: Sun, X., Shang, J., Liang, S., Wei, Y.: Compositional human pose regression. In: ICCV (2017)

[^40]: Tekin, B., Bogo, F., Pollefeys, M.: H+o: Unified egocentric recognition of 3d hand-object poses and interactions. In: CVPR (2019)

[^41]: Tompson, J., Stein, M., Lecun, Y., Perlin, K.: Real-time continuous pose recovery of human hands using convolutional networks. ACM Transactions on Graphics (ToG) 33(5) (2014)

### [^42]: Wan, C., Probst, T., Gool, L.V., Yao, A.: Self-supervised 3d hand pose estimation through training by fitting. In: CVPR (2019)

---

[^43]: Wu, Y., Huang, T.S.: Capturing articulated human hand motion: A divide-and-conquer approach. In: ICCV (1999)

[^44]: Xiang, D., Joo, H., Sheikh, Y.: Monocular total capture: Posing face, body, and hands in the wild. In: CVPR (2019)

[^45]: Xu, C., Cheng, L.: Efficient hand pose estimation from a single depth image. In: ICCV (2013)

[^46]: Yang, L., Yao, A.: Disentangling latent hands for image synthesis and pose estimation. In: CVPR (2019)

[^47]: Zhang, J., Jiao, J., Chen, M., Qu, L., Xu, X., Yang, Q.: 3d hand pose tracking and estimation using stereo matching. arXiv:1610.07214 (2016)

[^48]: Zhang, X., Li, Q., Mo, H., Zhang, W., Zheng, W.: End-to-end hand mesh recovery from a monocular RGB image. In: ICCV (2019)

[^49]: Zhou, X., Huang, Q., Sun, X., Xue, X., Wei, Y.: Towards 3d human pose estimation in the wild: a weakly-supervised approach. In: ICCV (2017)

[^50]: Zimmermann, C., Brox, T.: Learning to estimate 3d hand pose from single RGB images. In: ICCV (2017)

### [^51]: Zimmermann, C., Ceylan, D., Yang, J., Russell, B., Argus, M., Brox, T.: FreiHAND: A dataset for markerless capture of hand pose and shape from single RGB images. In: ICCV (2019)

---

### 补充材料：基于生物力学约束的弱监督3D手部姿态估计

在此我们提供了额外的实现细节与更多实验对比结果。第1节介绍了角度损失的计算方式以及关节角度相互依赖关系的建模细节；第2节在额外数据集（HO-3D）上重复了消融研究，以凸显结果的普适性；第3节展示了弱监督在两种额外场景下的效果，一种是使用真实数据集作为全监督数据，另一种则是使用MPII野外数据作为弱监督数据；第4节将BMC与对抗性损失进行了比较；第5节和第6节分别给出了利用合成数据或真实数据通过弱监督进行自举学习的额外结果；第7节展示了使用BMC的进一步定性结果；第8节和第9节则分别提供了额外的实现细节以及HANDS2019挑战赛的相关结果。

### 1 关节角度损失

关节角度歧义问题。关节角度的计算会产生歧义：具体来说，单位球面上的两个不同向量可能会对应相同的关节角度。

例如，给定坐标框架$\mathbf{b}_i^{\mathbf{F}_{i,1}} = [1,0,1]$中的两根骨骼$\mathbf{b}_i^{\mathbf{F}_{i,2}} = [-1,0,1]$和$\mathbf{F}_i$，利用$\mathrm{P}_{xz}(\mathbf{b}_i^{\mathbf{F}_{i,1}}) = [1,0,1]$和$\mathrm{P}_{xz}(\mathbf{b}_i^{\mathbf{F}_{i,2}}) = [-1,0,1]$可得：

 $$ \begin{aligned}\theta_{i}^{\mathrm{f},1}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i},1}),\mathbf{z}_{i})=\alpha([1,0,1],\mathbf{z}_{i})\\&=\pi/4\\\theta_{i}^{\mathrm{a},1}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i},1}),\mathbf{b}_{i}^{\mathbf{F}_{i},1})\\&=\alpha([1,0,1],[1,0,1])=0\\\theta_{i}^{\mathrm{f},2}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i},2}),\mathbf{z}_{i})=\alpha([-1,0,1],\mathbf{z}_{i})\\&=\pi/4\\\theta_{i}^{\mathrm{a},2}&=\alpha(\mathrm{P}_{xz}(\mathbf{b}_{i}^{\mathbf{F}_{i},2}),\mathbf{b}_{i}^{\mathbf{F}_{i},2})\\&=\alpha([-1,0,1],[-1,0,1])=0\end{aligned} $$

因此，这两根骨骼会对应同一组角度$(\pi/4,0)$。为解决这一问题，我们采用了八分位查找法：给定骨骼i的屈曲角$\theta_i^f$和外展角$\theta_i^a$，若骨骼位于负x八分位或负y八分位内，我们就对相应的角度取负值：

---

x象限或负y象限：

 $$ \begin{aligned}\theta_{i}^{\mathrm{f}}&=\begin{cases}-\theta_{i}^{\mathrm{f}},&if b_{i,x}^{\mathbf{F}_{i}}<0\\\theta_{i}^{\mathrm{f}},&else\end{cases}\\\theta_{i}^{\mathrm{a}}&=\begin{cases}-\theta_{i}^{\mathrm{a}},&if b_{i,y}^{\mathbf{F}_{i}}<0\\\theta_{i}^{\mathrm{a}},&else\end{cases}\end{aligned} $$

其中$b_{i,x}^{\mathbf{F}_i}$、$b_{i,y}^{\mathbf{F}_i}$是骨骼向量在其局部坐标框架$x/y$下的$\mathbf{F}_i$分量。由此得到的角度范围分别为$\theta_i^f \in [-\pi, \pi]$和$\theta_i^a \in [-\pi/2, \pi/2]$。

凸包近似。图1展示了FH数据集中各手指MCP关节屈伸角的分布情况，以红点表示。红色矩形对应在独立考虑角度上下限时有效的角度范围。因此，其四个角按逆时针顺序分别对应$(\min_i^f, \min_i^a)$、$(\min_i^f, \max_i^a)$、$(\max_i^f, \max_i^f)$、$(\max_i^f, \min_i^a)$，其中$\min_i^k$和$\max_i^k$分别对应角度$\theta_i^k$的最小值和最大值，而$k \in \{a, f\}$则代表该角度的有效范围。

为了将角度限值的依赖性纳入考量，我们首先计算这些角度点的凸包。然而，根据点云形状的不同，位于凸包上的点数可能较多且数量不固定。为使所有关节角的凸包点数保持较少且一致，我们分两步来近似这个凸包：首先采用Ramer-Douglas-Peucker算法——一种多边形简化算法，它能显著减少凸包中的顶点数，但顶点数仍会有所变化；为确保一致性，我们再应用贪心算法迭代删除顶点，使凸包能包含尽可能多的点，直至达到预定的点数，最终得到我们的近似结果$\mathcal{H}_i$。在所有实验中，我们将点数设定为10。图1中的绿色多边形便显示了这一凸包近似结果。

距离计算。为了计算距离$\mathcal{H}_i$，我们需要算出两个值：第一个值用于判断角点$\boldsymbol{\theta}_i$是否位于凸包内；第二个值则代表该点到凸包的距离。下文我们将详细介绍这两个值的计算方法。为方便表述，我们假设$\mathcal{H}_i$中的点是按逆时针顺序排列的，起点为$\mathcal{H}_i$中的任意一点。设$\mathcal{H}_{i,k}$为$\mathcal{H}_i$中的第k个点，则凸包的一条边$\mathbf{v}_k$可表示为：

 $$ \begin{aligned}\mathbf{v}_{k}&=\mathcal{H}_{i,k+1}-\mathcal{H}_{i,k},for k\in[1,10]\\\mathbf{w}_{k}&=\boldsymbol{\theta}_{i}-\mathcal{H}_{i,k},for k\in[1,10]\end{aligned} $$

此处我们定义$\mathcal{H}_{i,11} = \mathcal{H}_{i,1}$以实现对凸包的循环遍历。

要判断一个点$\boldsymbol{\theta}_i$是否位于$\mathcal{H}_i$内，我们利用凸包的 convexity特性并结合叉积运算。具体来说，我们计算$\mathbf{v}_k$与$\mathbf{w}_k$之间的二维叉积。直观而言，若对于任意一条边k，叉积$\mathbf{w}_k \times \mathbf{v}_k$为正值，则该角度点位于凸包之外；若对所有边而言叉积均为负值，则该点包含在凸包内；若该点位于凸包上，我们同样认为它属于凸包内部。

---

![Image](images/c204b4304bc89a7cf58e8242f5c8aaf6fa68ce8647bf5126f8c404c393af1aab.jpg)

<div style="text-align: center;">Fig. 1:  $(\theta^{\mathrm{f}}, \theta^{\mathrm{a}})$-plane. Green:  $\mathcal{H}_{i}$. Red:  $\min / \max - \text{box}$</div>

更正式地说：

 $$ c=\prod_{k=1}^{10}\mathbb{1}_{(\mathbf{w}_{k}\times\mathbf{v}_{k})\leq0} $$

要计算点$\boldsymbol{\theta}_{i}$到凸包的距离，需先求出该点到每条边的距离，再取其中的最小值。对于边$\mathbf{v}_{k}$和点$\boldsymbol{\theta}_{i}$，其距离等于$\mathbf{v}_{k}$的任一端点与$\mathbf{w}_{k}$在$\mathbf{v}_{k}$上投影点之间的最小距离。正式表达如下：

 $$ \begin{aligned}&t=\max(0,\min(1,\mathbf{w}_{k}^{T}\mathbf{v}_{k}/||\mathbf{v}_{k}||_{2}^{2}))\\&\mathbf{p}_{k}=\mathcal{H}_{i,k}+t\mathbf{v}_{k}\\&D(\mathbf{v}_{k},\boldsymbol{\theta}_{i})=|\cos(\boldsymbol{\theta}_{i})-\cos(\mathbf{p}_{k})|+|\sin(\boldsymbol{\theta}_{i})-\sin(\mathbf{p}_{k})|\\ \end{aligned} $$

此处min/max运算确保了计算结果不会超出$\mathbf{v}_k$的端点范围。得出到某条边的距离后，便可计算该点到凸包$\mathcal{H}_i$的总距离：

 $$ D(\boldsymbol{\theta}_{i},\mathcal{H}_{i})=\min_{k}D(\mathbf{v}_{k},\boldsymbol{\theta}_{i}) $$

上述公式无论点是否在凸包内，都能计算出其到$\mathcal{H}_i$的距离。但我们不想惩罚那些位于凸包内的点，因为这部分正是有效角度的范围。因此，我们利用公式4中算出的量c，最终得到角度损失函数：

 $$ D_{A}(\boldsymbol{\theta}_{i},\mathcal{H}_{i})=(1-\mathbb{1}_{c})D(\boldsymbol{\theta}_{i},\mathcal{H}_{i}) $$

若角度点$\theta_i$位于凸包内，该函数返回0；否则返回其到凸包近似结果$\mathcal{H}_i$的距离。这就是针对骨骼i的角度损失值。

### 2 消融实验

我们在HO-3D数据集上重复进行消融实验。所有评估均在自定义划分的数据集上进行：我们手动提取两个序列作为测试集，其余部分则用作训练集。每个误差都是针对根节点相对情况计算的。

---

![Image](images/5e51df4d929de78e5abf2c2af82acdb63b21bc42802498517bfee1a963d475e0.jpg)

<div style="text-align: center;">Fig. 2:  $(\theta^{\mathrm{f}}, \theta^{\mathrm{a}})$-plane. Green:  $\mathcal{H}_{i}$. Red:  $\min / \max - \text{box}$</div>

训练集的剩余部分。每个误差都是针对根部相对情况计算的。

细化网络。我们使用HO-3D上的完整监督数据训练了两个模型（3D_{HO3D}）。第一个模型（无细化机制）未采用所提出的细化网络，而第二个模型则采用了该网络（带细化机制）。表1的第一行展示了两者的性能差异：使用细化网络后，平均误差降低了2.97毫米。

BMC消融实验。我们研究了BMC损失的单独贡献。我们利用合成数据生成的3D标注，仅使用HO-3D的2D标注来开展实验。第一个模型是我们的基线模型，仅基于这些数据训练（$3D_{RHD} + 2D_{HO3D}$）。我们逐步加入骨长损失$\mathcal{L}_{BL}$、根骨损失$\mathcal{L}_{RB}$，最后是角度损失$\mathcal{L}_{A}$。我们还训练了一个完全监督的模型（$3D_{RHD} + 3D_{HO3D}$），作为性能上限。相关内容见表1的第二部分：每种损失都能降低平均误差，最终相比仅使用2D标注的基线模型，总误差减少了5.21毫米。

角度间的相互依赖性。我们训练了两个模型：第一个模型独立建模角度限制，第二个模型则考虑了限制间的依赖关系。表1展示了两者的性能结果：我们发现性能有轻微下降。我们将此归因于HO-3D数据集中的角度范围极其有限。由于该数据集中的受试者会以抓握姿势手持各种物体并在摄像头前旋转，手指的实际角度并不会发生变化，因此整个数据集中的角度范围较小，导致角度限制设置过于严格。这种局限性无法很好地推广，进而影响了性能。图2展示了HO-3D数据集中小指MCP关节屈伸的角度平面图；与图1中同一手指在FH数据集上的平面图对比可知，HO-3D的角度范围受限程度要高得多。这也在意料之中，因为如前所述，HO-3D是一个约束性很强的数据集。

BMC限制。我们研究了使用不同数据集计算BMC限制时对其效果的影响。我们从RHD数据集中计算手部参数，并开展与之前相同的弱监督实验（3D_RHD + 2D_HO3D）。如表1的最后一行所示，我们发现误差略有增加，但其在平均误差方面仍明显优于2D基线模型（18.50毫米 vs 23.71毫米）。

---

<div style="text-align: center;">Table 1: Ablation studies on validation split of HO-3D. The models of the first section was trained on our train split of HO-3D.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="3">HO-3D</td><td colspan="3">3D Pose Estimation (root-relative)</td></tr><tr><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>median $\downarrow$</td></tr><tr><td colspan="4">Effect of $Z^{root}$ refinement</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w/o refinement</td><td style='text-align: center; word-wrap: break-word;'>25.34</td><td style='text-align: center; word-wrap: break-word;'>24.39</td><td style='text-align: center; word-wrap: break-word;'>0.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>w. refinement</td><td style='text-align: center; word-wrap: break-word;'>22.37</td><td style='text-align: center; word-wrap: break-word;'>23.01</td><td style='text-align: center; word-wrap: break-word;'>0.83</td></tr><tr><td colspan="4">Effect of BMC components</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 2D_{HO3D}$</td><td style='text-align: center; word-wrap: break-word;'>23.71</td><td style='text-align: center; word-wrap: break-word;'>22.07</td><td style='text-align: center; word-wrap: break-word;'>0.78</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+ L_{BL}$</td><td style='text-align: center; word-wrap: break-word;'>22.15</td><td style='text-align: center; word-wrap: break-word;'>20.27</td><td style='text-align: center; word-wrap: break-word;'>0.80</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+ L_{RB}$</td><td style='text-align: center; word-wrap: break-word;'>18.83</td><td style='text-align: center; word-wrap: break-word;'>17.79</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$+ L_{A}$</td><td style='text-align: center; word-wrap: break-word;'>18.50</td><td style='text-align: center; word-wrap: break-word;'>17.41</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 3D_{HO3D}$</td><td style='text-align: center; word-wrap: break-word;'>16.74</td><td style='text-align: center; word-wrap: break-word;'>16.94</td><td style='text-align: center; word-wrap: break-word;'>0.89</td></tr><tr><td colspan="4">Effect of angle co-dependency</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Independent</td><td style='text-align: center; word-wrap: break-word;'>18.30</td><td style='text-align: center; word-wrap: break-word;'>17.40</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Dependent</td><td style='text-align: center; word-wrap: break-word;'>18.50</td><td style='text-align: center; word-wrap: break-word;'>17.41</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr><tr><td colspan="4">Effect of BMC limits</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Approximated</td><td style='text-align: center; word-wrap: break-word;'>19.21</td><td style='text-align: center; word-wrap: break-word;'>17.88</td><td style='text-align: center; word-wrap: break-word;'>0.86</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Computed</td><td style='text-align: center; word-wrap: break-word;'>18.50</td><td style='text-align: center; word-wrap: break-word;'>17.41</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr></table>

### 3 弱监督的效果

我们使用不同数据集重复了主论文第5.3节的实验，结果表明无论使用完全标注的真实数据还是标注较弱的野外数据，弱监督的效果依然显著。

STB数据集。我们复现了主论文第5.3节的结果，但此次不用RHD数据集，而是选用STB [^47]作为完全监督数据集，弱监督数据集仍为FH。该实验旨在证明：即使使用真实数据集进行完全监督，弱监督的效果依然存在。表2（上方）展示了实验结果。

MPII——自然场景数据集。我们复现了主论文第5.3节中的结果，但采用MPII [^35]作为弱监督数据集。此举旨在展示源自自然场景采集的数据集所产生的弱监督效果，这类数据有望成为有用的监督来源。我们在FH数据集的验证集上进行了评估。表2（下方）展示了相关结果。需要注意的是，由于MPII数据集仅包含2D标签且未提供3D标注，因此无法计算全监督情况下的上限值，故表中未列出该数值。

### 4 与对抗损失的对比

人们很容易将BMC与对抗损失联系起来。BMC可以被理解为一种判别器，用于惩罚不符合有效手部姿态分布的姿态。不过，BMC更贴近当前任务需求，仅需设定边界条件即可；而判别器则需要访问完整的3D姿态数据集。为了了解判别器在……方面的表现

---

<div style="text-align: center;">Table 2: This table show-cases the same effect of weak-supervision as Table 2 in the main paper but evaluated in different settings. All models are evaluated on the validation split of FH. (top) We use STB as the fully labeled dataset and supplement is using weakly-labeled FH. (bottom) We use RHD as the fully labeled dataset and MPII as the weakly-supervised data. The same trend can be observed in both settings. Adding weakly-supervised data improves 3D prediction performance due to the predicted 3D poses with the correct 2D projection. By incorporating our proposed biomechanically constraints we significantly improve 3D pose accuracy due to more accurate Z. Note that as the MPII dataset only contains 2D labels and no 3D annotation is provided, the fully supervised upper bound cannot be performed and is therefore omitted from the table.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Effect of weak-supervision</td><td style='text-align: center; word-wrap: break-word;'>Description</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$ Z (pixel)</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$ Z (mm)</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$ Z (mm)</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$ Z (mm)</td></tr><tr><td colspan="6">3D labels: STB</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3D $_{STB}$ + 3D $_{FH}$</td><td style='text-align: center; word-wrap: break-word;'>Fully supervised, real</td><td style='text-align: center; word-wrap: break-word;'>3.85</td><td style='text-align: center; word-wrap: break-word;'>5.68</td><td style='text-align: center; word-wrap: break-word;'>9.05</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BMC}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>3.83</td><td style='text-align: center; word-wrap: break-word;'>5.50</td><td style='text-align: center; word-wrap: break-word;'>8.89</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3D $_{STB}$</td><td style='text-align: center; word-wrap: break-word;'>Fully sup. lower bound</td><td style='text-align: center; word-wrap: break-word;'>20.45</td><td style='text-align: center; word-wrap: break-word;'>36.80</td><td style='text-align: center; word-wrap: break-word;'>54.92</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ 2D $_{FH}$</td><td style='text-align: center; word-wrap: break-word;'>+ Weakly supervised, real</td><td style='text-align: center; word-wrap: break-word;'>3.86</td><td style='text-align: center; word-wrap: break-word;'>35.41</td><td style='text-align: center; word-wrap: break-word;'>42.02</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BMC}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>3.88</td><td style='text-align: center; word-wrap: break-word;'>11.17</td><td style='text-align: center; word-wrap: break-word;'>18.58</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td colspan="6">2D labels: MPII</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3D $_{RHD}$</td><td style='text-align: center; word-wrap: break-word;'>Fully supervised, synthetic only</td><td style='text-align: center; word-wrap: break-word;'>12.35</td><td style='text-align: center; word-wrap: break-word;'>20.02</td><td style='text-align: center; word-wrap: break-word;'>30.82</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ 2D $_{MPII}$</td><td style='text-align: center; word-wrap: break-word;'>+ Weakly supervised, real</td><td style='text-align: center; word-wrap: break-word;'>10.36</td><td style='text-align: center; word-wrap: break-word;'>19.77</td><td style='text-align: center; word-wrap: break-word;'>28.81</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BMC}$ (ours)</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>10.35</td><td style='text-align: center; word-wrap: break-word;'>17.72</td><td style='text-align: center; word-wrap: break-word;'>27.10</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

为比较BMC与对抗损失的效果，我们按照消融研究的设置开展了实验。我们在全监督的RHD数据集和弱监督的FH数据集上训练模型，并在FH数据集的验证集上进行评估。由于此前尚未有研究揭示对抗损失是否适用于3D手部姿态估计任务，因此我们采用了文献中应用于2D人体姿态估计的模型[^13]。为适应新场景，我们搜索了能提升判别器性能的最优超参数。表3展示了实验结果。可见，BMC的表现优于对抗损失。我们推测这是因为BMC更贴合当前任务需求。

### 5 基于合成数据的自举学习

我们在表4中展示了在FH和HO-3D数据集上的完整在线评估结果。

### 6 基于真实数据的自举学习

表5展示了使用真实数据进行的自举算法的完整结果，该结果由在线提交系统$^{1}$进行评估。请记住，我们假设其余数据为弱监督数据，即包含二维标注信息。我们列出了确切的数值。

---

<div style="text-align: center;">Table 3: We compare using BMC to an adversarial loss adapted from [^13]. BMC outperforms the adversarial loss. We hypothesise this is due to BMC modeling the task at hand more closely.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="3">Comparison to adversarial loss</td><td rowspan="3">Description</td><td colspan="3">3D Pose Estimation (root-relative)</td></tr><tr><td colspan="2">EPE (mm)</td><td rowspan="2">AUC $\uparrow$</td></tr><tr><td colspan="2">mean $\downarrow$ median $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 2D_{FH}$</td><td style='text-align: center; word-wrap: break-word;'>Baseline</td><td style='text-align: center; word-wrap: break-word;'>20.92</td><td style='text-align: center; word-wrap: break-word;'>16.93</td><td style='text-align: center; word-wrap: break-word;'>0.81</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 2D_{FH} + \mathcal{L}_{BMC}$</td><td style='text-align: center; word-wrap: break-word;'>BMC</td><td style='text-align: center; word-wrap: break-word;'>15.48</td><td style='text-align: center; word-wrap: break-word;'>13.49</td><td style='text-align: center; word-wrap: break-word;'>0.91</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{RHD} + 2D_{FH} + \mathcal{L}_{adv}$</td><td style='text-align: center; word-wrap: break-word;'>Adversarial</td><td style='text-align: center; word-wrap: break-word;'>17.60</td><td style='text-align: center; word-wrap: break-word;'>14.38</td><td style='text-align: center; word-wrap: break-word;'>0.87</td></tr></table>

<div style="text-align: center;">Table 4: Bootstrapping results on the respective test split, as evaluated by the online submission system. Results are given in mm.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">FH</td><td rowspan="2">Description</td><td colspan="2">aligned</td><td colspan="2">unaligned</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zimmermann et al. [^51]</td><td style='text-align: center; word-wrap: break-word;'>fully supervised FH</td><td style='text-align: center; word-wrap: break-word;'>1.10</td><td style='text-align: center; word-wrap: break-word;'>0.78</td><td style='text-align: center; word-wrap: break-word;'>7.13</td><td style='text-align: center; word-wrap: break-word;'>0.19</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$ + $3D_{{FH}}$</td><td style='text-align: center; word-wrap: break-word;'>fully supervised RHD/FH</td><td style='text-align: center; word-wrap: break-word;'>0.90</td><td style='text-align: center; word-wrap: break-word;'>0.82</td><td style='text-align: center; word-wrap: break-word;'>7.54</td><td style='text-align: center; word-wrap: break-word;'>0.20</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$</td><td style='text-align: center; word-wrap: break-word;'>fully supervised RHD</td><td style='text-align: center; word-wrap: break-word;'>1.60</td><td style='text-align: center; word-wrap: break-word;'>0.69</td><td style='text-align: center; word-wrap: break-word;'>15.15</td><td style='text-align: center; word-wrap: break-word;'>0.06</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $2D_{{FH}}$</td><td style='text-align: center; word-wrap: break-word;'>+ weakly-supervised FH</td><td style='text-align: center; word-wrap: break-word;'>1.26</td><td style='text-align: center; word-wrap: break-word;'>0.75</td><td style='text-align: center; word-wrap: break-word;'>13.02</td><td style='text-align: center; word-wrap: break-word;'>0.14</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BMC}$</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>1.13</td><td style='text-align: center; word-wrap: break-word;'>0.78</td><td style='text-align: center; word-wrap: break-word;'>10.39</td><td style='text-align: center; word-wrap: break-word;'>0.15</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HO3D</td><td style='text-align: center; word-wrap: break-word;'>Description</td><td colspan="4">EXTRAP $\downarrow$ INTERP $\downarrow$ OBJECT $\downarrow$ SHAPE $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$ + $3D_{{HO3D}}$</td><td style='text-align: center; word-wrap: break-word;'>fully supervised HO3D</td><td style='text-align: center; word-wrap: break-word;'>18.22</td><td style='text-align: center; word-wrap: break-word;'>5.02</td><td style='text-align: center; word-wrap: break-word;'>16.56</td><td style='text-align: center; word-wrap: break-word;'>10.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$3D_{{RHD}}$</td><td style='text-align: center; word-wrap: break-word;'>fully supervised RHD</td><td style='text-align: center; word-wrap: break-word;'>20.84</td><td style='text-align: center; word-wrap: break-word;'>33.57</td><td style='text-align: center; word-wrap: break-word;'>35.08</td><td style='text-align: center; word-wrap: break-word;'>23.94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $2D_{{HO3D}}$</td><td style='text-align: center; word-wrap: break-word;'>+ weakly supervised HO3D</td><td style='text-align: center; word-wrap: break-word;'>19.57</td><td style='text-align: center; word-wrap: break-word;'>25.16</td><td style='text-align: center; word-wrap: break-word;'>25.79</td><td style='text-align: center; word-wrap: break-word;'>21.05</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ $\mathcal{L}_{BMC}$</td><td style='text-align: center; word-wrap: break-word;'>+ BMC</td><td style='text-align: center; word-wrap: break-word;'>18.42</td><td style='text-align: center; word-wrap: break-word;'>10.31</td><td style='text-align: center; word-wrap: break-word;'>19.91</td><td style='text-align: center; word-wrap: break-word;'>12.51</td></tr></table>

我们还列出了所使用的3D标注样本的确切数量，以及其占整个数据集的百分比。需注意，为提高可读性，百分比数值已四舍五入，但样本数量准确无误。我们根据三类类别对表格进行了划分：a) 对齐/未对齐——计算得分前会先进行Procrustes分析以实现对齐；b) 均值/AUC——PCK值在0毫米到50毫米区间内、设有100个等间距阈值时的AUC值；c) 使用/不使用BMC——即是否采用我们提出的生物力学约束。我们首先关注对齐后的结果。使用BMC时，达到指定AUC所需的3D标注数据量大约减少了一半。这一趋势在标注百分比高达$\sim$13%时依然成立。例如，若要达到用3810个3D标注样本训练的、未使用BMC的模型同等性能，使用BMC仅需1993个3D标注样本，约为前者的一半。

在未对齐得分方面也能观察到类似趋势。当标注百分比高达6.8%（即1993个样本）时，达到同等性能所需的数据量大约减少了一半（997个样本）。

### 7 定性结果

我们在图 3 中展示了使用合成数据进行自举（Bootstrapping with Synthetic Data）实验的定性结果。我们展示了 $\mathbf{J}^{3D}$（无 BMC）和两者预测的 $\mathbf{3D}_{\text{RHD}} + \mathbf{2D}_{\text{FH}}$

---

<div style="text-align: center;">Table 5: Scores as evaluated on the online submission system. The first column denotes the percentage (in brackets) of 3D annotated samples used during training, where the remainder is annotated only with 2D labels. Note that the percentages are rounded, but the number of samples are exact. + indicates the model trained with BMC, – indicates the model trained without it.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>FH</td><td style='text-align: center; word-wrap: break-word;'>+: with BMC (ours)</td><td colspan="3">Aligned</td><td colspan="3">Unaligned</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>-: without BMC</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>mean $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>AUC $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3D samples: Number</td><td style='text-align: center; word-wrap: break-word;'>3D samples: Perc.</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;'>-</td><td style='text-align: center; word-wrap: break-word;'>+</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>(3.4e-3%)</td><td style='text-align: center; word-wrap: break-word;'>1.96</td><td style='text-align: center; word-wrap: break-word;'>1.64</td><td style='text-align: center; word-wrap: break-word;'>0.62</td><td style='text-align: center; word-wrap: break-word;'>0.68</td><td style='text-align: center; word-wrap: break-word;'>34.86</td><td style='text-align: center; word-wrap: break-word;'>18.40</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>(0.017%)</td><td style='text-align: center; word-wrap: break-word;'>1.85</td><td style='text-align: center; word-wrap: break-word;'>1.41</td><td style='text-align: center; word-wrap: break-word;'>0.64</td><td style='text-align: center; word-wrap: break-word;'>0.72</td><td style='text-align: center; word-wrap: break-word;'>26.40</td><td style='text-align: center; word-wrap: break-word;'>15.26</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>(0.045%)</td><td style='text-align: center; word-wrap: break-word;'>1.78</td><td style='text-align: center; word-wrap: break-word;'>1.39</td><td style='text-align: center; word-wrap: break-word;'>0.65</td><td style='text-align: center; word-wrap: break-word;'>0.73</td><td style='text-align: center; word-wrap: break-word;'>25.24</td><td style='text-align: center; word-wrap: break-word;'>12.98</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>27</td><td style='text-align: center; word-wrap: break-word;'>(0.094%)</td><td style='text-align: center; word-wrap: break-word;'>1.75</td><td style='text-align: center; word-wrap: break-word;'>1.34</td><td style='text-align: center; word-wrap: break-word;'>0.66</td><td style='text-align: center; word-wrap: break-word;'>0.73</td><td style='text-align: center; word-wrap: break-word;'>23.90</td><td style='text-align: center; word-wrap: break-word;'>11.93</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>127</td><td style='text-align: center; word-wrap: break-word;'>(0.43%)</td><td style='text-align: center; word-wrap: break-word;'>1.54</td><td style='text-align: center; word-wrap: break-word;'>1.24</td><td style='text-align: center; word-wrap: break-word;'>0.70</td><td style='text-align: center; word-wrap: break-word;'>0.76</td><td style='text-align: center; word-wrap: break-word;'>21.83</td><td style='text-align: center; word-wrap: break-word;'>12.08</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>499</td><td style='text-align: center; word-wrap: break-word;'>(1.7%)</td><td style='text-align: center; word-wrap: break-word;'>1.23</td><td style='text-align: center; word-wrap: break-word;'>1.18</td><td style='text-align: center; word-wrap: break-word;'>0.76</td><td style='text-align: center; word-wrap: break-word;'>0.77</td><td style='text-align: center; word-wrap: break-word;'>11.68</td><td style='text-align: center; word-wrap: break-word;'>10.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>997</td><td style='text-align: center; word-wrap: break-word;'>(3.4%)</td><td style='text-align: center; word-wrap: break-word;'>1.14</td><td style='text-align: center; word-wrap: break-word;'>1.12</td><td style='text-align: center; word-wrap: break-word;'>0.77</td><td style='text-align: center; word-wrap: break-word;'>0.78</td><td style='text-align: center; word-wrap: break-word;'>9.85</td><td style='text-align: center; word-wrap: break-word;'>9.42</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1993</td><td style='text-align: center; word-wrap: break-word;'>(6.8%)</td><td style='text-align: center; word-wrap: break-word;'>1.10</td><td style='text-align: center; word-wrap: break-word;'>1.07</td><td style='text-align: center; word-wrap: break-word;'>0.78</td><td style='text-align: center; word-wrap: break-word;'>0.79</td><td style='text-align: center; word-wrap: break-word;'>8.83</td><td style='text-align: center; word-wrap: break-word;'>8.75</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3810</td><td style='text-align: center; word-wrap: break-word;'>(13%)</td><td style='text-align: center; word-wrap: break-word;'>1.06</td><td style='text-align: center; word-wrap: break-word;'>1.04</td><td style='text-align: center; word-wrap: break-word;'>0.79</td><td style='text-align: center; word-wrap: break-word;'>0.79</td><td style='text-align: center; word-wrap: break-word;'>8.01</td><td style='text-align: center; word-wrap: break-word;'>7.90</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7327</td><td style='text-align: center; word-wrap: break-word;'>(25%)</td><td style='text-align: center; word-wrap: break-word;'>1.02</td><td style='text-align: center; word-wrap: break-word;'>1.01</td><td style='text-align: center; word-wrap: break-word;'>0.80</td><td style='text-align: center; word-wrap: break-word;'>0.80</td><td style='text-align: center; word-wrap: break-word;'>7.91</td><td style='text-align: center; word-wrap: break-word;'>7.84</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>14653</td><td style='text-align: center; word-wrap: break-word;'>(50%)</td><td style='text-align: center; word-wrap: break-word;'>0.99</td><td style='text-align: center; word-wrap: break-word;'>1.00</td><td style='text-align: center; word-wrap: break-word;'>0.80</td><td style='text-align: center; word-wrap: break-word;'>0.80</td><td style='text-align: center; word-wrap: break-word;'>7.46</td><td style='text-align: center; word-wrap: break-word;'>7.56</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>29305</td><td style='text-align: center; word-wrap: break-word;'>(100%)</td><td style='text-align: center; word-wrap: break-word;'>0.98</td><td style='text-align: center; word-wrap: break-word;'>0.98</td><td style='text-align: center; word-wrap: break-word;'>0.81</td><td style='text-align: center; word-wrap: break-word;'>0.81</td><td style='text-align: center; word-wrap: break-word;'>7.18</td><td style='text-align: center; word-wrap: break-word;'>7.18</td></tr></table>

$3D_{RHD} + 2D_{FH} + \mathcal{L}_{BMC}$（含BMC）。这里展示了两种视图：第一种是从正面或相机视角观察的结果（沿z轴方向查看），第二种是从世界空间顶部向下看的视图（沿x轴相反方向查看）。此外，我们还绘制了两种模型的二维预测结果，其中绿色代表未使用BMC的情况，红色则表示使用了BMC的模型。

我们发现，尽管两种模型都能准确预测二维姿态，但它们预测的三维姿态却存在差异。不使用BMC时，模型会预测出不符合生物物理规律的姿态。这是由于存在未见过的三维姿态、视角以及遮挡情况。另外，该模型的三维部分仅基于合成数据进行训练。例如，RHD数据集并不包含物体遮挡或以自我为中心的视角。而使用BMC后，模型在训练过程中能更好地调整其深度组件以适应这些未见过的三维姿态，从而得出更精确的预测结果。

### 8 架构与训练

我们采用标准的ResNet-50网络作为骨干网络。我们将最后的线性层替换为输出一个$21 \times 3$维向量的结构。前两个维度对应二维关键点，而最后一层则对应以根节点为参考的深度值$Z^{r}$。

我们的$Z^{root}$优化器由一个三层MLP构成，采用Leaky ReLU非线性激活函数。除最后一层外，各层之间均使用了BatchNorm。

---

正面

视图

![Image](images/992d4b50a90f842baeab3609a253b91b5dcb6684cd2be6bf701bb5cc012baa5d.jpg)

![Image](images/40935a27f98078064734acad7a6c0ee0cd12da097f5e92259f167840f6d43985.jpg)

<div style="text-align: center;">Top view</div>

<div style="text-align: center;">(a)  $j^{2D}$</div>

<div style="text-align: center;">(b) w/o BMC (c) w. BMC</div>

<div style="text-align: center;">(d) G</div>

![Image](images/890e1941cc9297442904aff1fa34e073deb6dd8de029d2479503fe99e7c67088.jpg)

<div style="text-align: center;">(e) w/o BMC (f) w. BMC</div>

<div style="text-align: center;">(g) G</div>

<div style="text-align: center;">Fig. 3: Qualitative results of the Boostrapping with Synthetic Data experiment. Testing performed on custom split of FH. Fig. 3a: We see that the model trained without BMC (green), as well as the model trained with BMC (red), perform equally well on the 2D prediction task. Fig. 3d, Fig. 3g show the ground-truth joint skeleton from the camera view, as well as the "top" view looking down, respectively. Fig. 3b and Fig. 3e show the 3D predictions of the model trained fully supervised on RHD and weakly-supervised on FH. Despite the accurate 2D predictions, the 3D pose is incorrect, displaying implausible bio-physical poses. Fig. 3c and Fig. 3f show the result of incorporating BMC into the model. The predictions are kinematically and structurally sound, and as a result closer to the ground-truth predictions.</div>

---

表6：优化网络的架构。它接收预测值和计算值$\mathbf{z}^r \in \mathbb{R}^{21}$、$\mathbf{K}^{-1} \mathbf{J}^{2D} \in \mathbb{R}^{21 \times 3}$、$Z^{root} \in \mathbb{R}$，并输出残差项r，使得$\hat{Z}_{ref}^{root} = \hat{Z}^{root} + r$。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Refinement Network</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Linear(85, 128)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LeakyReLU(0.01)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>BatchNorm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Linear(128, 128)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LeakyReLU(0.01)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>BatchNorm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Linear(128, 1)</td></tr></table>

<div style="text-align: center;">Table 7: HANDS2019 challenge results on the test split of HO-3D, as evaluated by the online submission system. All methods were trained only on HO-3D. We show the top four submission. The winner was selected based on the extrapolation score. Results are given in mm.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>HO-3D</td><td style='text-align: center; word-wrap: break-word;'>EXTRAP $\downarrow$ INTERP</td><td style='text-align: center; word-wrap: break-word;'>$\downarrow$ OBJECT</td><td style='text-align: center; word-wrap: break-word;'>$\downarrow$ SHAPE</td><td style='text-align: center; word-wrap: break-word;'>$\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>24.74</td><td style='text-align: center; word-wrap: break-word;'>6.70</td><td style='text-align: center; word-wrap: break-word;'>27.36</td><td style='text-align: center; word-wrap: break-word;'>13.21</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Nplwe</td><td style='text-align: center; word-wrap: break-word;'>29.19</td><td style='text-align: center; word-wrap: break-word;'>4.06</td><td style='text-align: center; word-wrap: break-word;'>18.39</td><td style='text-align: center; word-wrap: break-word;'>15.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>lin84</td><td style='text-align: center; word-wrap: break-word;'>31.51</td><td style='text-align: center; word-wrap: break-word;'>19.15</td><td style='text-align: center; word-wrap: break-word;'>30.59</td><td style='text-align: center; word-wrap: break-word;'>23.47</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hasson et al. [^16]</td><td style='text-align: center; word-wrap: break-word;'>38.42</td><td style='text-align: center; word-wrap: break-word;'>7.38</td><td style='text-align: center; word-wrap: break-word;'>31.82</td><td style='text-align: center; word-wrap: break-word;'>15.61</td></tr></table>

在跨数据集评估中，我们通过实验发现不使用BatchNorm能获得更高的准确率。采用BatchNorm的具体架构详见表6。

该网络共训练70个周期，优化器采用SGD，学习率为$5e^{-3}$，每30个周期学习率会按0.1的比例衰减。

我们设定的权重值如下：$\lambda_{2D}=1$、$\lambda_{Z^{r}}=5$、$\lambda_{Z^{\mathrm{root}}}=1$。对于所有使用BMC的实验，损失函数的各项权重设定为：$\lambda_{\mathrm{BL}}=0.1$、$\lambda_{\mathrm{RB}}=0.1$、$\lambda_{\mathrm{A}}=0.01$。

### 9 HANDS2019挑战赛

HANDS2019挑战赛$^{2}$旨在评估三维手部姿态估计领域的尖端方法。挑战赛任务#3的规则要求我们仅使用HO-3D数据集进行训练。我们并未加入辅助损失项来训练所提出的模型。优化步骤对取得比赛第一名至关重要，这也体现了底层骨干模型的优异性能。
