
# 从深度图像中学习高效的手部形状变化模型

Sameh Khamis $^{12}$ Jonathan Taylor $^{2}$ Jamie Shotton $^{2}$ Cem Keskin $^{2}$ Shahram Izadi $^{2}$ Andrew Fitzgibbon $^{2}$

 $^{1}$马里兰大学 $^{2}$微软研究院

## 摘要

我们介绍了如何学习一种紧凑且高效的人手表面形变模型。该模型是基于一组不同受试者以不同姿势摆动手部的含噪深度图像构建的。我们使用控制网格的Loop细分来表示观测到的表面，该控制网格由我们学习到的参数化形状和姿态模型驱动形变。该模型能够同时刻画特定于个体的形状差异以及所有个体共有的姿态差异。具体而言，手部形状被参数化为中性姿势下的平均网格与少量偏移向量的线性组合；随后通过标准的线性混合蒙皮技术对该网格进行关节驱动，从而生成细分曲面的控制网格。我们定义了一个能量项，用于促使每个深度像素都能被模型解释；利用平滑的细分曲面特性，我们可以从粗略的初始值出发，对所有参数进行联合优化。我们通过合成数据和真实数据验证了该方法的有效性，结果表明仅需少量基成分即可表征手部形状变化。我们将其与其他方法（包括PCA）进行了对比，结果显示我们的模型在保持线性形状基的高效性的同时，具有显著更强的表征能力。

### 1. 引言

人体可变形模型在计算机视觉和图形学领域取得了巨大成功。从Blanz和Vetter提出的面部模型[^7]，到全身的形状与姿态联合模型[^5] [^13] [^15] [^12]，这类模型如今已开始应用于商业场景，包括虚拟购物（如Metail）、动作捕捉（如faceshift）以及视频游戏（如Kinect Sports Rivals）等。

但据我们所知，目前尚未构建出人手的可变形模型。从某种意义上说，手部是此类建模的理想对象：它通常没有衣物遮挡，且在自然3D用户界面领域有着巨大的应用潜力。Ballan等人[^6]证明，基于用户专属的手部模型能够实现极其稳健的手部追踪，但获取该模型需要手动绑定骨骼，且需使用多摄像头采集系统。

![Image](images/9f3b3dc8da01e8baa0f6e951be98bb5fc46589316382ad08e1dd3b8ce613d48d.jpg)

<div style="text-align: center;">Figure 1. Our deformable surface model takes into account both pose (via an animation-ready kinematic model) and shape (in a shape space learned to best compose with the kinematic model). A set of shape parameters  $\beta \in \mathbb{R}^K$ in shape space (left) specifies (upper center) a neutral mesh  $V(\beta) \in \mathbb{R}^{3 \times M}$ and skeleton parameters  $L(\beta) \in \mathbb{R}^{3 \times B}$. A set of joint angles  $\theta$ deforms the mesh to obtain a specific posed mesh  $\mathcal{P}(\theta; V(\beta), L(\beta)) \in \mathbb{R}^{3 \times M}$ (bottom left) using the linear blend skinning function  $\mathcal{P}(\cdot)$. A subdivision surface function  $\mathcal{S}(\cdot)$ maps these meshes to smooth 3D surfaces (right column). Simultaneously optimizing the parameters on the full pipeline from joint angles to 3D shape gives the parameters that best relate the end-to-end model to sparse and noisy real data.</div>

Taylor等人[^28]展示了仅用单个深度摄像头即可获取用户专属模型的方法，但该方法需要较长的校准流程，且过程中必须活动手部的所有自由度。

我们的假设是，之所以尚未出现人手的可变形模型，是因为现有的模型构建技术依赖于大规模的高质量扫描数据集。尽管手部的自由度与人体相近，但手部更容易发生自遮挡现象，因此这类扫描数据中会存在更多空洞。此外，手部尺寸更小，导致手部图像中的前景像素更少，相机噪声的影响也更大。最后，尽管手部的关节数量与人体相近，但手部姿态的空间可能更大，因此需要更多的采集数据才能准确学习其姿态空间。

在本文中，我们克服了这些挑战，基于一组简短的“序列”构建了可变形手部模型。

---

（我们使用的是来自50名不同受试者的、由单个Kinect V2传感器采集的、包含15帧不同姿势的图像集。）我们方法的关键有两点。

首先，我们只学习那些标准骨骼模型无法解释的姿势和形状特征。这既降低了数据需求，还有一个好处是：我们系统的输出是由线性混合蒙皮技术驱动的标准细分曲面模型。这确保了我们的方法能够高效地进行评估。相比之下，像SCAPE [^5] 和TenBo [^10] 这类模型在测试时还需要额外的线性求解步骤；虽然这些步骤在GPU上很容易实现，但确实会带来显著的计算开销。

其次，我们将模型与所有局部扫描数据一起拟合，而不是试图为每位受试者单独构建完整的扫描数据后再进行主成分分析（PCA）。正如我们在合成数据和真实数据上的实验所显示的那样，即便对于无遮挡的合成数据，这种方法也能生成更好的模型；而对于包含缺失和噪声数据的真实扫描数据，效果更是显著更佳。

#### 1.1. 相关工作

因此，我们的主要贡献是一种从稀疏且含噪声的深度数据中学习高效的骨骼驱动可变形模型的新技术。所学习的模型包含一组参数化的基础网格，以及骨骼参数（如骨长和蒙皮权重）的参数化表示。虽然以往的研究已经学习了其中的部分参数，但本文是首个联合学习所有参数的研究，也是首个通过直接解释采集到的数据来学习参数的研究。

从深度扫描或其他3D数据的示例中学习低维形状参数化表示，已被证明在创建人体和面部的通用可变形模型方面十分有效 [^7] [^4] [^5] [^13] [^10] [^29] [^17] [^27] [^30] [^16] [^31] [^19]。一旦构建了此类可变形模型，就能实现令人惊叹的应用，例如将身体形状适配到单目深度序列中，或是实现更精确的身体或面部跟踪 [^7] [^11] [^14] [^21]。

然而，尽管面部和人体的相关研究已取得诸多成果，但我们并未发现任何现有的手部统计形状模型。这表明这是一个极具挑战性的问题，现有针对全身的技術 [^4] [^5] [^13] [^10] 无法直接迁移应用。

与我们的工作类似，Allen等人 [^3] 将模型表示为标准细分曲面模型与线性混合蒙皮技术的结合体。不过关键在于，他们的改进是在基础曲面之上的位移贴图。为避免自相交现象，位移幅度必须受到限制，而且其形状基必须与原扫描数据一致。此外，他们的优化步骤是顺序进行的（块坐标下降法），而非同时优化，这可能导致得到较差的局部最优解。Cashman和Fitzgibbon [^9] 证明，利用细分曲面构建的可变形模型可以从极其有限的数据（30张轮廓图像）中学习而来。不过他们的方法没有区分形状和姿势，也没有学习参数化的形状基。

针对手部而言，Rhee等人[^20]能够从单张在受控光照条件下拍摄的手部正面图像中提取可见的褶皱，定位关节位置，并拟合出具有用户特定蒙皮参数的3D模型。该模型仅基于单张图像拟合而成，因此得到的手部模型极为简单，自由度有限。Albrecht等人[^2]则走向了另一个极端，他们构建了细节丰富且物理特性逼真的手部模型。不过这一过程十分繁琐，需要对人类手部进行石膏建模、激光扫描，还要手动创建支持物理模拟的手部模型。

Taylor等人提出了一种更为自动化的技术[^28]：给定带有噪声的深度序列输入，在用户手部旋转$180^{\circ}$且手指活动的情况下，生成个性化的手部模型。通过连续优化，在尽可能保持刚性（ARAP）的规则下，求解平滑细分曲面上的对应关系和模型参数，最终得到高质量的用户专属骨骼绑定手部模型，不过并非基于形状基的模型。虽然这一过程是自动化的，但要求手部覆盖全部关节活动范围，且需要更长的序列数据，这就导致了更复杂的采集要求和更耗时的优化过程。

尽管本文并未明确探讨这一点，但我们推测手部形状将成为稳健的手部姿态估计的重要先验，就像它在全身追踪领域已被证实的那样[^14]。对成人手部解剖结构的研究表明其存在显著差异[^8]，这种差异在性别和年龄层面尤为明显。近期利用多摄像头设备进行的高质量离线手部动作捕捉研究，再次印证了我们关于用户特定手部形状对姿态估计重要性的直觉。Ballan等人[^6]利用多视角摄像头设备和泊松表面重建技术构建个性化手部网格，随后再进行手动蒙皮处理。他们在复杂的双手及手物交互场景中取得了高质量的结果，能将精细的网格模型与数据紧密贴合。不过，该系统侧重于姿态估计而非形状构建，而形状构建是以耗时的手动方式完成的。

### 2. 模型

我们现在介绍我们的可变形手部表面模型。我们将广泛采用三角网格作为基本单元。本文中讨论的所有网格均代表人类的右手（不过我们的模型并无特定的手部限制），它们将包含 exactly M 个顶点，并采用固定的三角剖分方式。因此，我们将此类网格表示为矩阵$V \in \mathbb{R}^{3 \times M}$，其中$m^{\text{th}}$列包含…

---

…第$m^{th}$个顶点的位置。

如下文更详细所述，我们还采用了由B根骨骼组成的手部骨骼结构，并用矩阵$L \in \mathbb{R}^{3 \times B}$来表示这些骨骼的位置。同样，$b^{\text{th}}$列代表第b根骨骼的位置。这些骨骼按照固定的层级排列，其中骨骼$b = 1$为根骨，$\pi_b$表示任意其他骨骼$b \in \{2, ..., B\}$的父骨骼索引。

如图1所示，我们的形状模型利用一组形状参数$V(\beta)$对处于中性姿势下的手部网格$L(\beta)$和骨骼$\beta \in \mathbb{R}^K$的形状进行线性参数化。我们的姿态模型通过将中性的手部网格和骨骼映射到特定姿态下的手部网格$\mathcal{P}(\theta; V(\beta), L(\beta)) \in \mathbb{R}^{3 \times M}$，从而描述从中性姿势出发的关节活动情况。最后，我们的表面模型采用循环细分技术，将这种特定姿态下的“控制网格”映射为平滑的表面$\mathcal{S}(\mathcal{P}(\theta; V(\beta), L(\beta)) \subset \mathbb{R}^3$。在本节的剩余部分，我们将详细介绍这些函数的具体形式。

#### 2.1. 形状模型

我们的形状模型基于这样的直觉：在单一姿势下，人手（及骨骼）的形状变化相对紧凑，可以用低维线性子空间来描述。因此，我们利用一组基础网格矩阵$\mathcal{V} = \{V_k\}_{k=1}^K \subset \mathbb{R}^{3 \times M}$和基础骨骼位置矩阵$\mathcal{L} = \{L_k\}_{k=1}^K \subset \mathbb{R}^{3 \times B}$来参数化这个空间。我们对两种基底使用相同的维度K并非巧合，因为我们要求骨骼与皮肤形状的变化是协同进行的。具体而言，给定一组形状参数$\beta \in \mathbb{R}^K$后，可得到中性网格

 $$ V(\beta;\mathcal{V})=\sum_{k=1}^{K}\beta_{k}V_{k} $$

 $$ L(\beta;\mathcal{L})=\sum_{k=1}^{K}\beta_{k}L_{k} $$

以及中性骨骼

此外，我们认为让第一个基分量$V_1$和$L_1$代表“平均”网格和骨骼，而其他基分量代表微小偏移量，这种设定是符合直觉的。理想情况下，$\beta_1$应（近似地）编码缩放信息，而$\beta$中的其他坐标则应编码偏移向量的使用程度。我们并未明确强制满足这些要求，而是采用正则化项（详见3.1.2节和3.1.3节）来引导模型趋向这种结果。

我们的线性模型与PCA具有相同的表达能力，但学习方式却存在显著差异（详见下文）。与[^5]等模型相比，我们的方法在内存占用和计算效率方面可能更具优势。

#### 2.2. 姿态模型

我们模型的一个关键特点是，无需让前述线性形状模型来解释非中性姿势导致的手部

![Image](images/07962243000b7a69250c2529f73e50dc9c36541fc3c77d969c4aadb009cb329e.jpg)

<div style="text-align: center;">Figure 2. Our template hand model contains a mesh and kinematic skeleton. This defines the mesh topology and skeletal structure of our learned model, and provides a weak regularization on the shape model during optimization. As such the template does not need to be anatomically accurate: the learned model will adjust both the vertices and the skeleton to ensure a precise reconstruction of the observed hand surface. On the right, we have labeled the number of degrees of freedom each joint has.</div>

表面形变。相反，我们直接用向量$\theta$来参数化姿态，该向量包含了各组关节角度（见图2）、全局朝向和平移信息。本节定义的姿态模型规定了$\theta$对处于中性姿势、对应骨骼为$V(\beta)$的网格$L(\beta)$所产生的关节形变。尽管有多种建模方式可选，但我们采用了线性混合蒙皮技术（LBS），因为它既常用又极其高效。

为清晰起见，我们暂时忽略对形状参数$\beta$的依赖，演示LBS是如何对固定的网格$V = [v_1 \ldots v_m]$和骨骼$L = [l_1 \ldots l_b]$进行形变的。该模型要求每根骨骼b都配有一个固定的旋转矩阵$Q_b$，用于指示该骨骼关节的旋转主轴。结合骨骼位置$l_b$，便定义了一个坐标系

 $$ H_{b}=\begin{bmatrix}Q_{b}&\mathbf{l}_{b}\\ 0&1\end{bmatrix}\in\mathbb{R}^{4\times4} $$

通过刚体变换将骨骼空间映射到世界空间。还需注意的是，集合$\mathcal{H} = \{H_b\}_{b=1}^B$隐含地定义了一组等效的变换$\{T_b\}_{b=1}^B$，其中$T_b$将骨骼b的坐标系映射到其父骨骼$\pi_b$的坐标系，而$H_b = T_1...T_{\pi_b}T_b$则负责后续变换。

给定一组姿态参数 $\theta$，线性混合蒙皮技术通过应用一个三维旋转 $\tilde{R}_b$（以齐次旋转矩阵的形式）来驱动关节的运动。

 $$ R_{b}(\theta)=\begin{bmatrix}\tilde{R}_{b}(\theta)&0\\ 0&1\end{bmatrix}\in\mathbb{R}^{4\times4}, $$

该旋转会被应用到每块骨骼 b 的局部坐标系中。此外，全局方向与位置则由一个施加于整个世界的全局刚体变换 $R(\theta) \in \mathbb{R}^{4 \times 4}$ 来体现。对于每块骨骼 b 而言，我们由此得到一个刚体变换。

---

$G_b(\theta)$ 描述了在姿态 $\theta$ 下，骨骼 b 的局部坐标系与世界坐标系之间的关系，其计算遵循如下递推关系：

 $$ G_{1}(\theta)=R(\theta)T_{1}R_{1}(\theta) $$

 $$ G_{b}(\theta)=G_{\pi_{b}}(\theta)T_{b}R_{b}(\theta)\;. $$

网格本身通过一组蒙皮权重 $\Gamma = \{\alpha_{bm} : b \in \{1, ..., B\}, m \in \{1, ..., M\}\}$ 与骨骼绑定，其中对所有 m 均有 $\sum_{b=1}^{B} \alpha_{bm} = 1$。直观来说，$\alpha_{bm}$ 反映了顶点 m 在骨骼 b 移动时与它的附着强度。更确切地说，在姿态 $\theta$ 下，V 中第 $m^{\text{th}}$ 个顶点的关节位置为

 $$ I_{3\times4}R(\theta)\sum_{b=1}^{B}\alpha_{b m}G_{b}(\theta)H_{b}^{-1}\hat{\mathbf{v}}_{m} $$

其中 $I_{3\times4}$ 负责将结果投影为欧几里得坐标，而 $\hat{\mathbf{v}}_m = [\mathbf{v}_m^\top, 1]^\top$。注意，$H_b^{-1}$ 首先会将处于中性姿态下的顶点 $\mathbf{v}_m$ 从世界坐标系映射到骨骼 b 的局部坐标系。随后，变换 $G_b(\theta)$ 再将顶点映射回姿态 $\theta$ 下的世界坐标系。

为便于记谱，我们现在构造到目前为止已引入的姿态不变形状参数的三元组 $\Upsilon = (\mathcal{V}, \mathcal{L}, \Gamma)$。$^1$ 重新引入形状参数 $\beta$ 后，LBS 模型所需的参数为 $\Phi(\beta; \Upsilon) = (V(\beta), L(\beta), \Gamma)$；因此我们记作 $\mathcal{P}(\theta; \Phi(\beta; \Upsilon)) \in \mathbb{R}^{3 \times M}$，表示通过将姿态 $\theta$ 应用于形状为 $\beta$ 的中性手部网格所得到的网格。

#### 2.3. 表面模型

依照 [^28] 的描述，我们使用控制网格 [^18] 的Loop细分算法来表示模型的实际表面。对于给定的网格 V，Loop细分过程会迭代地对每个三角形面（来自固定的三角剖分）进行细分，并利用相邻顶点来平滑顶点位置。若无限次执行此细分过程，便可得到所谓的“极限曲面” $\mathcal{S}(V) \subset \mathbb{R}^3$。

为避免这种复杂的构造过程，我们遵循 [^28] 的思路，转而采用参数化方式来描述表面。

 $$ \mathcal{S}(\mathbf{u};V):\Omega\times\mathbb{R}^{3\times M}\mapsto\mathbb{R}^{3}\;, $$

该函数将位于本质上属于二维空间的表面坐标 $\mathbf{u}$ 中的位置 $\Omega$，映射到三维细分曲面上的一个点。根据此定义，整个表面可表示为 $\mathcal{S}(V) = \{\mathcal{S}(\mathbf{u}; V) : \mathbf{u} \in \Omega\}$。由于篇幅有限，关于函数 [^28] 及 $\mathcal{S}(\cdot)$ 的参数化细节，请参阅 $\mathbf{u}$。不过对我们而言，只要能高效计算出 $\mathcal{S}(\cdot)$ 及其关于 $\mathbf{u}$ 和 V 的导数即可。我们将 $\mathcal{S}(\cdot)$ 与模型的其他部分结合，从而得出 $\mathcal{S}(\mathbf{u}; \mathcal{P}(\theta; \Phi(\beta; \Upsilon)))$——即在形状为 $\mathbf{u}$、姿态为 $\beta$ 的手部上，坐标 $\theta$ 所对应的三维位置。

#### 2.4. 完整模型

总而言之，当选定一组特定的形状参数$\beta$后，我们就能得到针对特定对象的LBS手部模型参数$\Phi(\beta; \Upsilon)$。随后，我们便能根据形状$\beta$和姿态$\theta$生成网格，即$\mathcal{P}(\theta; \Phi(\beta; \Upsilon))$。最后，我们能确定在姿态$u \in \Omega$且形状为$\theta$的情况下，细分曲面上坐标$\beta$的位置，也就是$\mathcal{S}(u; \mathcal{P}(\theta; \Phi(\beta; \Upsilon)))$。我们的目标就是找到一组$\Upsilon$参数，使得仅用$\beta$和$\theta$就能描述大多数可行的人手形状和姿态。

### 3. 模型拟合

本研究的一项重要贡献在于展示了如何从用户手部的一系列含噪深度图像中学习参数$\Upsilon$。为此，我们假设有S个不同的对象（即男性、女性和儿童，手部形状各异）。对于每个对象s，我们有$F_s$帧深度图像，记录了用户进行各种手部动作时的情形。在每一帧f中，会提取出一组包含$N_{sf}$个数据点的$\{\mathbf{x}_{sfn}\}_{n=1}^{N_{sf}} \subset \mathbb{R}^3$，以及对应的估计法向量$\{\mathbf{n}_{sfn}\}_{n=1}^{N_{sf}} \subset \mathbb{R}^3$。

#### 3.1. 能量函数

我们希望利用这些数据来学习$\Upsilon$，使模型既能解释数据，又能满足一些直观的先验条件。我们将此问题转化为最小化能量的过程。

 $$ E(\Upsilon)=\sum_{s=1}^{S}E^{s}(\Upsilon)+\lambda_{arap}E_{arap}(\Upsilon)+\lambda_{skin}E_{skin}(\Upsilon) $$

该能量函数定义在$\Upsilon$中的变量上。其中后两项加权先验项用于约束基表示和蒙皮权重，具体描述如下。每个特定对象的项

 $$ E^{s}(\Upsilon)=\min_{\beta}\sum_{f=1}^{F_{s}}E^{sf}(\beta;\Upsilon)+\lambda_{shape}E_{shape}(\beta) $$

会根据该对象的数据对$\Upsilon$施加约束。公式(10)中的第二项体现了形状先验惩罚，而每一项

 $$ E^{s f}(\beta;\Upsilon)=\min_{\theta}\sum_{n=1}^{N_{s f}}E_{\mathrm{d a t a}}^{s f n}(\theta,\beta;\Upsilon)+\lambda_{\mathrm{p o s e}}E_{\mathrm{p o s e}}(\theta), $$

用于衡量给定姿态下的曲面在解释第f帧数据方面的效果。

#### 3.1.1 数据项

我们采用的数据项为

 $$ \begin{aligned}&E_{\mathrm{data}}^{s f n}(\theta,\beta;\Upsilon)=_{\quad(11}\\\quad&\min_{\mathbf{u}\in\Omega}\rho(\|W Q_{s f n}(\mathbf{x}_{s f n}-\mathcal{S}(\mathbf{u};\mathcal{P}(\theta;\Phi(\beta,\Upsilon))))\|)\\&+\lambda_{\mathrm{n o r m a l}}\rho^{\perp}(\|1-(\mathbf{n}_{s f n})^{\top}\mathcal{S}^{\perp}(\mathbf{u};\mathcal{P}(\theta;\Phi(\beta,\Upsilon))))\|)\\ \end{aligned} $$

---

其中$\rho(e)$和$\rho^{\perp}(e)$分别对应应用于点位置误差和法向量平方误差的鲁棒核函数。我们设定缩放矩阵$W = \mathrm{diag}(1,1,\zeta)$，它与旋转矩阵$Q_{sfn}$共同作用：旋转三维残差，使指向$\mathbf{x}_{sfn}$的视线与z轴对齐，从而模拟深度传感器在观测方向上的较高不确定性。

#### 3.1.2 尽可能刚性正则化

项$E_{\text{arap}}(\Upsilon)$采用了“尽可能刚性”（ARAP）[^24]变形假设来对$\mathcal{V}$和$\mathcal{L}$进行正则化。我们利用ARAP定义正则化能量如下：

 $$ \begin{aligned}E_{\mathrm{arap}}(\Upsilon)&=D(V_{1},V_{\mathrm{template}})+D^{\dagger}(L_{1},V_{1},L_{\mathrm{template}},V_{\mathrm{template}})\\&+\sum_{k=2}^{K}\left(D(V_{k},\varnothing)+D^{\dagger}(L_{k},V_{k},\varnothing,\varnothing)\right)\end{aligned}\tag{12} $$

其中 $V_{\text{template}}$ 和 $L_{\text{template}}$ 是来自我们的粗模板手部模型（图 2）的网格和骨骼位置，$\varnothing$ 是适当大小且填充零的矩阵。(12) 中仅取两个参数的项是标准 ARAP 变形度量 $D(V, V')$，用于两个网格 V 与 $V'$（其顶点位置 $\{\mathbf{v}_m\}_{m=1}^M$ 与 $\{\mathbf{v}_m'\}_{m=1}^M$ 位于 $\mathbb{R}^{3 \times M}$ 中），定义为

 $$ \sum_{m=1}^{M}\min_{R\in\mathrm{SO}(3)}\sum_{n\in\mathcal{N}(m)}\|(\mathbf{v}_{n}-\mathbf{v}_{m})-R(\mathbf{v}_{n}^{\prime}-\mathbf{v}_{m}^{\prime})\|^{2}, $$

其中$\mathcal{N}(m)$是顶点m的相邻顶点集合。

在ARAP框架下，刚性变换不会受到惩罚，而较小的（局部）非刚性变换受到的惩罚也小于较大的非刚性变换。需要注意的是

 $$ D(V,\varnothing)=\sum_{m=1}^{M}\sum_{n\in\mathcal{N}(m)}\|(\mathbf{v}_{n}-\mathbf{v}_{m})\|^{2}, $$

这只会促使相邻顶点重合。在我们的模型中，对于$k \geq 2$而言，$V_k$用于表示相对于“平均”网格$V_1$的偏移量，因此这就体现为我们希望顶点偏移场能够平滑变化。

公式(12)中涉及四个参数的项采用了一种改进版的ARAP方法，该方法旨在确保核心网格中的骨骼位置相对于一组邻近顶点（通常是一个顶点环）保持一致。我们用$C_b \subset \{1, \ldots, M\}$来表示每根骨骼b对应的顶点索引集合。对于一对骨骼位置矩阵$L, L' \in \mathbb{R}^{3 \times B}$（其列为$\{I_b\}_{b=1}^B$、$\{I'_b\}_{b=1}^B$）以及网格顶点矩阵$V, V' \in \mathbb{R}^{3 \times M}$（其列为$\{\mathbf{v}_m\}_{m=1}^M$和$\{\mathbf{v}_m^{\prime}\}_{m=1}^M$），$D(L, V, L', V')$的定义如下：

 $$ \sum_{b=1}^{B}\min_{R\in\mathrm{SO}(3)}\sum_{m\in C_{\bullet}}\|(\mathbf{v}_{m}-\mathbf{l}_{b})-R(\mathbf{v}_{m}^{\prime}-\mathbf{l}_{b}^{\prime})\|^{2}. $$

同样，我们注意到

 $$ D^{\dagger}(L_{k},V_{k},\varnothing,\varnothing)=\sum_{b=1}^{B}\sum_{m\in C_{\bullet}}\|(\mathbf{v}_{m}-\mathbf{l}_{b})\|^{2}, $$

对于基函数分量$k \geq 2$而言，这相当于促使某根骨骼的偏移量与它所锚定的顶点的偏移量相似。

#### 3.1.3 形状先验

我们使用以下项对形状参数$\beta$进行正则化：

 $$ E_{\mathrm{s h a p e}}(\beta)=(1-\beta_{1})^{2}+\sum_{k=2}^{K}\beta_{k}^{2} $$

这一项促使用户特定的手部模型与模板模型保持相对一致，仅允许存在微小的顶点和骨骼位置偏移。

#### 3.1.4 姿态先验

我们通过给姿态$\theta$添加约束条件，对违背人体物理约束的姿态变形予以严厉惩罚，所用项为

 $$ E_{\mathrm{pose}}(\theta)=\sum_{i}\begin{cases}(\theta_{i}-\theta_{i}^{\min})^{4}&if\theta_{i}<\theta_{i}^{\min}\ $ \theta_{i}^{\max}-\theta_{i})^{4}&if\theta_{i}>\theta_{i}^{\max}\\0&otherwise\end{cases} $$

其中，$\theta^{\min}$和$\theta^{\max}$分别是手部关节最小和最大旋转角的近似值。

#### 3.1.5 蒙皮权重先验

为确保每个顶点m的蒙皮权重之和为1，我们发现只需添加另一个能量项$E_{\mathrm{skin}}(\Upsilon) = \sum_{m=1}^{M} \|\sum_{b=1}^{B} \alpha_{bm} - 1\|^{2}$来惩罚公式(9)中较大权重$\lambda_{\mathrm{skin}}$带来的偏差即可。为了保证蒙皮权重非负，我们只需将顶点m在骨骼b上的权重以对数形式表示为$\tilde{\alpha}_{bm} = \log(\alpha_{bm})$。

### 4. 优化

为了优化模型的能量函数，我们将其“提升”为一个更简单的能量形式，即通过引入一组潜变量来实现，这些潜变量可使用标准的非线性优化器进行优化。

#### 4.1. 提升后的能量

如上所定义，我们的能量$E(\Upsilon)$形式较为复杂，包含大量求和与最小化运算。根据[^28]所述，对于两个实值函数$f(x)$和$g(x)$，有如下关系：

 $$ \begin{aligned}&\min_{x}f(x)+\min_{x}g(x)=(\min_{x_{1}}f(x_{1})+\min_{x_{2}}g(x_{2}))\\=&\min_{x_{1},x_{2}}(f(x_{1})+f(x_{2}))\leq f(x_{1})+f(x_{2})\tag{1}\end{aligned} $$

---

对于任意的$x_1$和$x_2$均成立。也就是说，求和中被最小化的变量可以被标记并穿过求和运算。通过引入一组形状参数$\mathcal{B} = \{\beta^s\}_{s=1}^S$、姿态$\Theta = \{\theta_{sf} : s \in \{1, ..., S\}, f \in \{1, ..., F_s\}\}$、对应关系$\mathcal{U} = \{\mathbf{u}_{sfn} : s \in \{1, ..., s\}, f \in \{1, ..., F_s\}, n \in \{1, ..., N_{sf} \}\}$以及ARAP旋转$^2 \mathcal{R} = \{R_m\}_{m=1}^M \cup \{R_b^\dagger\}_{b=1}^B$，我们的能量也可以以这种方式被“提升”。这会引入一个新的能量$E'(\Upsilon, \mathcal{B}, \Theta, \mathcal{U}, \mathcal{R})$，满足以下条件：

 $$ E(\Upsilon)=\operatorname*{m i n}_{\mathcal{B},\Theta,\mathcal{U},\mathcal{R}}E^{\prime}(\Upsilon,\mathcal{B},\Theta,\mathcal{U},\mathcal{R})\leq E^{\prime}(\Upsilon,\mathcal{B},\Theta,\mathcal{U},\mathcal{R}) $$

对于任意设定的$\mathcal{B},\Theta,\mathcal{U},\mathcal{R}$均成立。我们在补充材料中给出了这个提升后能量的完整形式，但为简单起见，此处假设$\lambda_{\mathrm{arap}}=\lambda_{\mathrm{skin}}=\lambda_{\mathrm{shape}}=\lambda_{\mathrm{pose}}=0$成立，且我们的数据项仅为

 $$ E_{\mathrm{d a t a}}^{s f n}(\theta,\beta,\Upsilon)=\min_{\mathbf{u}\in\Omega}\|\mathbf{x}_{s f n}-\mathcal{S}(\mathbf{u};\mathcal{P}(\theta;\Phi(\beta,\Upsilon)))\|^{2} $$

那么提升后的能量将为

 $$ E^{\prime}(\Upsilon,\mathcal{B},\Theta,\mathcal{U},\mathcal{R})=\sum_{s=1}^{S}\sum_{f=1}^{F_{s}}\sum_{n=1}^{N_{sf}}E_{\mathrm{data}}^{\prime s f n}(\mathbf{u}_{s f n},\theta_{s f},\boldsymbol{\beta}_{s};\Upsilon) $$

对应的提升后数据项为

 $$ E_{\mathrm{d a t a}}^{\prime s f{n}}(\mathbf{u},\theta,\beta,\Upsilon)=\|\mathbf{x}_{s f{n}}-\mathcal{S}(\mathbf{u};\mathcal{P}(\theta;\Phi(\beta,\Upsilon)))\|^{2}. $$

这个提升后的数据项消除了对$\mathbf{u} \in \Omega$的“内部最小化”运算。

#### 4.2. 非线性优化

我们采用Levenberg-Marquardt算法来优化该能量函数，并利用Ceres求解器 [^1] 自动处理问题中存在的较大但动态的稀疏性。我们的优化流程（见下文）会调用名为NONLINEAR(N, $\mathcal{F}$)的子程序，该程序会尝试执行N次Levenberg-Marquardt迭代，以优化除 $\mathcal{F} \subset \{\Upsilon, \mathcal{B}, \Theta, \mathcal{U}, \mathcal{R}\}$ 中的参数外的所有参数，这一操作由Ceres提供支持。

#### 4.3. 离散更新

为了帮助模型跳出局部极小值，我们还使用了DISCRETEUPDATE()子程序，该程序通过在离散候选集中搜索来改进对应关系 $\mathcal{U}$。具体来说，我们考虑一组提议的样本集 $\mathcal{U}_{\text{prop}} = \mathcal{U} \cup \mathcal{U}_{\text{samp}} \subseteq \Omega$，其中 $\mathcal{U}_{\text{samp}}$ 是在域 $\Omega$ 上大致均匀采样的固定表面坐标集。随后我们对主体s、帧f和数据点n进行循环遍历，以寻找新的表面坐标。

 $$ \mathbf{u}_{s f n}^{\prime}=\mathop{\operatorname{a r g}\operatorname*{m i n}}_{\mathbf{u}\in\mathcal{U}_{\mathrm{p r o p}}}E_{\mathrm{d a t a}}^{\prime s f n}(\mathbf{u},\theta_{s f},\beta^{s},\Upsilon)\;. $$

最终得到的集合 $\mathcal{U}' = \{\mathbf{u}_{sfn}'\}$ 必然不会使能量函数 $(i.e. E'(\Upsilon, \mathcal{B}, \Theta, \mathcal{U}', \mathcal{R}) \leq E'(\Upsilon, \mathcal{B}, \Theta, \mathcal{U}, \mathcal{R}))$ 的值增大。

#### 4.4. 初始化

我们手动初始化位姿 $\Theta$，以使模板与点云大致对齐。虽然可以考虑自动化方法，但该任务并不复杂，且只需执行一次即可。类似地，每个 $\beta^s \in \mathcal{B}$ 的初始化方式使得 $\beta_1^s$ 对应主体s的大致尺度，而 $\beta_k^s = 0$ 则适用于所有 $k \geq 2$。我们使用粗略的手部模板来初始化 $V_1$ 和 $L_1$（详见第5节），其他基分量则用零均值噪声初始化。$\mathcal{R}$ 中的所有ARAP旋转均初始化为单位矩阵，U则通过调用DISCRETEUPDATE()来初始化。

#### 4.5. 优化流程

初始化完成后，我们便按照预定流程进行优化（见算法1）：将离散更新与连续优化交替进行，同时逐步解锁参数。我们发现，以这种方式安排各个“阶段”能使算法在寻找优质极小值方面表现出色，因此各阶段切换的具体时机影响不大。

```pseudo
// Algorithm 1: Optimization Schedule
```

SUBOPTIMIZE(4, $\mathcal{B} \cup \Gamma$)
SWITCHTOGM() $\triangleright$ 切换到Geman McClure准则
SUBOPTIMIZE(4, $\mathcal{B} \cup \Gamma$)
SUBOPTIMIZE(4, $\Gamma$)
SUBOPTIMIZE(4, $\emptyset$)
function SUBOPTIMIZE(N, $\mathcal{F}$)
for i=1:N do
    NonLinear(25, $\mathcal{F}$)
    DiscreteUpdate()

### 5. 评估

我们现在将介绍实验环境以及为评估我们的方法所开展的各项实验。

手部模板。我们使用3D建模软件Blender手动搭建模板手部模型。该模板网格包含452个顶点，骨骼部分有21根骨头。详见图2。

参数设置。数据项 $\rho(e)$ 和 $\rho^{\perp}(e)$ 所用的鲁棒核函数最初被设置为Cauchy核 $\rho(e;\sigma) = \sigma^2 \log(1 + e^2/\sigma^2)$，它对离群值具有中等程度的鲁棒性。当参数接近优质解时，我们会切换到鲁棒性极强的German-McClure核 $\rho(e,\sigma) = e^2/(e^2 + \sigma^2)$，以避免模型拟合数据中的大多数离群值。详见算法1。

#### 5.1. 数据集

为了评估和比较我们的方法，我们使用了三个数据集：(i) SYNTHETIC3D，一个包含覆盖手部表面的3D点云数据的合成数据集；(ii) SYNTHETIC2.5D，一个深度图像的合成数据集；以及(iii)

---

![Image](images/e3e03587b6f4a763cd9320ff05e0fcfd753c4345a0ec20ae0b864e7be7d93ae6.jpg)

![Image](images/306080b6215abb02640f0c28f7996d5ef60e271f2825b2ea3f886a457ceeb7cc.jpg)

![Image](images/c61102268b36c41622620d6da2ea4be64cb673a5c0fc4c539c96c2638a675153.jpg)

![Image](images/f8c99cc21a1c957a8405b580fd0451a8101a1b65d0c22e917d08a280b17055b7.jpg)

![Image](images/a1d8f2ebea4c50c27ca608b523dc8df2869e70ff119908885609157dee9ff529.jpg)

![Image](images/b89c6289cf075bd75a2a598e93567920a53e9397fd93de47899d46b45556f4c0.jpg)

<div style="text-align: center;">Figure 3. RMSE (left) and MAE (right) for the baseline (blue) and our model (red) with K basis components.</div>

REAL，一个从Kinect V2传感器中提取的深度图像的真实数据集。

SYNTHETIC3D是使用流行的建模工具Poser [^23]生成的。Poser中的绑定手部模型支持超过100种混合形状，可用于生成多种多样且逼真的手部模型。因此，我们随机为50种不同形状的手部选取权重，每种形状对应15种不同的姿态。在该数据集中，所有3D顶点均被使用，即便其中一些顶点在真实的深度相机中会被遮挡。另一方面，SYNTHETIC2.5D是通过将SYNTHETIC3D的3D数据在固定位置通过虚拟深度相机投影生成的，那些无法直接被相机看到的点会被剔除。SYNTHETIC3D和SYNTHETIC2.5D均为无噪声数据，这使我们能够在不必过于担心陷入局部最小值的情况下测试模型的表达能力。我们还研究了添加人工噪声对其拟合过程的影响。

REAL数据集是通过Kinect V2飞行时间传感器获取的。我们记录了50名不同受试者的数据：17名女性、31名男性和2名儿童，要求每位受试者均在深度相机前做出各种手部动作。平均而言，每位受试者被选为15种不同的手部姿态。与合成数据集不同，由于深度不连续性（“飞点”）和多路径干扰（见图5），REAL中包含大量噪声和异常像素。

#### 5.2. 基线方法

我们将其与基于[^28]中详述的“个性化”流程的基线方法进行比较。通过对S个受试者分别进行个性化处理，可获得一组个性化网格$\{V^s\}_{s=1}^S$、骨骼$\{L^s\}_{s=1}^S$和缩放参数$\{\beta_0^s\}_{s=1}^S$。对于受试者s，我们可以将这些矩阵拼接并展平，同时移除缩放参数$p^s = \frac{1}{\beta_0^s} \left( \vec{V}^s \cdot \vec{L}^s \cdot \vec{L}^s \right)^\top$。通过对向量$\{p^s\}_{s=1}^S$应用PCA，可得到均值向量$\bar{p}$和一组主方向$\{p_k\}$。具体而言，每个输入网格p都有对应的向量$\alpha^s$，满足

 $$ p^{s}=\bar{p}+\sum_{k}\alpha_{k}^{s}p_{k}\;. $$

请注意，如果我们仅保留K个PCA方向，就能最小化该值。

 $$ \min_{\left\{p^{s}\right\}_{s=1}^{S}}\|\min_{\alpha}\left(\bar{p}+\sum_{k=1}\alpha_{k}p_{k}-p^{s}\right)\|^{2}. $$

相比之下，我们的模型通过细分曲面、蒙皮技术和线性形状基函数，来最小化观测点与模型表面之间的3D误差。

#### 5.3. 结果

在所有数据集中，我们使用30名受试者进行训练（同时学习形状基参数$\Upsilon$、每个受试者的形状系数$\beta^{s}$以及每帧姿态$\theta_{sf}$），用20名受试者进行测试（在保持$\beta^{s}$固定的前提下优化$\theta_{sf}$和$\Upsilon$参数）。所有报告的定量和定性结果（包括图表）均来自这一预留的测试集。

在定量方面，我们计算测试集中每个数据点与表面之间的3D残差，并通过均方根误差（RMSE）和平均绝对误差（MAE）来总结这些值。由于SYNTHETIC3D和SYNTHETIC2.5D均无噪声，RMSE是一个合理的指标。然而，对于REAL数据集而言，MAE对数据中的异常值更具鲁棒性。误差值以毫米为单位报告。

在图3中，我们展示了三个数据集上的RMS和MAE误差，以说明基向量数量的影响。对于PCA基线模型，我们固定K值，使其至少能解释训练网格中90%的方差。最终，REAL和SYNTHETIC2.5D数据集对应的K值为4，SYNTHETIC3D数据集对应的K值为5（包含均值向量）。即便K=1时，我们的模型也明显优于基线模型。增加基向量数量可以降低误差率，但当K超过3后，精度的提升便趋于饱和。

在图4中，我们展示了收敛时误差平方值低于给定阈值的点的百分比。同样，即便K=1，我们的模型也优于基线模型，而基线模型使用了4或5个基向量。随着基向量数量的增加，我们的模型精度会有所提升，但当K超过2左右时，精度提升也会趋于饱和。

我们在图5中展示了在REAL数据集上的一些定性拟合结果。这同时也体现了我们的模型能够处理的手部形状和姿态的多样性，以及它对一些异常值的鲁棒性。图6展示了REAL数据集中所有受试者的形状系数在其前两个主成分上的投影。$^{3}$ 图7展示了……

---

![Image](images/fa1fa3390478d391d473cb83f9b1a57f14addf61fbebeb8079d69e700c492cdc.jpg)

![Image](images/eeb68ef6246935951eb65e5dfd1c6a6a0bcf773857df8e361cee516e6792d9fd.jpg)

![Image](images/d36c8ef4af373994379e15eed711c75f441fa494068873d112386a7a9ae08b01.jpg)

<div style="text-align: center;">Figure 4. Left three panels: the percentage of data points whose error lies under a threshold for the baseline and our model with K basis components. Right: controlled noise experiments on the synthetic datasets.</div>

![Image](images/b28b08be0cefcdb59a58164e3746c9ef8ef63ac3749d43f72f33cf601fadce32.jpg)

<div style="text-align: center;">Figure 5. Our surface (re) to data from several frames. Each data point  $S(\mathbf{u}_{sfn})$ indicated surface point t. t is the first fitting in the model.</div>

![Image](images/234b877a8775858a125e31505406d375873cc73978e5b7acf4fc7811d37787a4.jpg)

<div style="text-align: center;">Figure 6. The set of shape coefficients  $\{\beta_s\}_{s=1}^S$, learned when our model is fit to the entire REAL dataset, projected onto the first two principal directions. The size of each point encodes the scale coefficient (i.e.  $\beta_1$). One can see that children (orange) have smaller hands while male subjects (blue) typically have larger hands.</div>

通过顶点偏移量的大小，可以体现前两个偏移基向量的作用$(k = 2, 3)$。左侧的基向量对食指和手腕的影响更大，而右侧的基向量则会影响离拇指最远的手指，进而使整个手部变宽。

![Image](images/ba8ff935a899fcae84c52bfbcf69d8792f92399fc3356053498b71ab856ae859.jpg)

<div style="text-align: center;">Basis Component k = 2</div>

<div style="text-align: center;">Figure 7. For the first two offset basis components learned on the REAL dataset, we color the surface by vertex offset magnitude. Green and red indicates small large offsets respectively.</div>

离拇指最远的手指，进而使整个手部变宽。

最后，我们开展了受控噪声实验（见图4），使用的是SYNTHETIC3D和SYNTHETIC2.5D合成数据集。我们固定了基向量的数量$K = 4$，但改变了所添加的3D高斯噪声的标准差。本实验中仅向“训练”数据中添加噪声，旨在验证我们的优化方案的鲁棒性。

### 6. 讨论

我们已经证明，可以从稀疏且含噪的数据中学习出骨架驱动的可变形模型，且该模型的性能显著优于基线方法。我们的模型在测试时效率极高，其计算复杂度与基向量数量呈线性关系，仅需少量基向量就能精准描述各种各样的人手形态。一旦为特定用户推断出形状参数$\beta$，就可以将形状模型“固化”，并对控制网格进行有限次数的细分，从而生成标准的LBS网格模型。该模型随后可应用于实时手部追踪系统，该系统利用精细的LBS模型[^22]；如今，使用个性化的形状模型进行手部追踪已愈发普遍[^25] [^26]。

作为未来的研究方向，自然可以设想在手部追踪过程中实时交互式地“个性化”手部模型，即同步拟合形状参数$\beta$。此外，我们还想探索高效的方法，用以显式编码形状对姿态的依赖关系。目前的模型分辨率还较为粗糙，但我们很期待看到这类方法能否生成超分辨率模型。最后，我们希望能将我们的技术应用到人体、动物等其他类别上。

---

## 参考文献

[^1]: S. Agarwal, K. Mierle, and Others. Ceres solver. <https://code.google.com/p/ceres-solver/>. 6

[^2]: I. Albrecht, J. Haber, and H.-P. Seidel. Construction and animation of anatomically based human hand models. In Proc. Eurographics, 2003. 2

[^3]: B. Allen, B. Curless, and Z. Popović. Articulated body deformation from range scan data. In ACM Transactions on Graphics (TOG). ACM, 2002. 2

[^4]: B. Allen, B. Curless, and Z. Popović. The space of human body shapes: reconstruction and parameterization from range scans. ACM Trans. Graphics, 22(3), 2003. 2

[^5]: D. Anguelov, P. Srinivasan, D. Koller, S. Thrun, J. Rodgers, and J. Davis. SCAPE: Shape completion and animation of people. ACM Trans. Graphics, 24(3), 2005. 1, 2, 3

[^6]: L. Ballan, A. Taneja, J. Gall, L. V. Gool, and M. Pollefeys. Motion capture of hands in action using discriminative salient points. In Proc. ECCV, 2012. 1,2

[^7]: V. Blanz and T. Vetter. A morphable model for the synthesis of 3D faces. In Proc. SIGGRAPH, 1999. 1, 2

[^8]: A. Buryanov and V. Kotiuk. Proportions of hand segments. International Journal of Morphology, 28(3):755–758, 2010. 2

[^9]: T. Cashman and A. Fitzgibbon. What shape are dolphins? building 3D morphable models from 2D images. IEEE Trans. PAMI, 2013. 2

[^10]: Y. Chen, Z. Liu, and Z. Zhang. Tensor-based human body modeling. In Proc. CVPR, June 2013. 2

[^11]: M. de La Gorce, N. Paragios, and D. J. Fleet. Model-based hand tracking with texture, shading and self-occlusions. In Proc. CVPR, 2008. 2

[^12]: O. Freifeld and M. J. Black. Lie bodies: A manifold representation of 3D human shape. In Proc. ECCV, 2012. 1

[^13]: N. Hasler, C. Stoll, M. Sunkel, B. Rosenhahn, and H.-P. Seidel. A statistical model of human pose and body shape. Computer Graphics Forum, 2009. 1, 2

[^14]: T. Helten, A. Baak, G. Bharaj, M. Müller, H.-P. Seidel, and C. Theobalt. Personalization and evaluation of a real-time depth-based full body tracker. In 3DV, 2013. 2

[^15]: D. A. Hirshberg, M. Loper, E. Rachlin, and M. J. Black. Coregistration: Simultaneous alignment and modeling of articulated 3D shape. In Proc. ECCV, 2012. 1

[^16]: H. Li, R. W. Sumner, and M. Pauly. Global correspondence optimization for non-rigid registration of depth scans. Proc. SGP, 2008. 2

[^17]: M. Liao, Q. Zhang, H. Wang, R. Yang, and M. Gong. Modeling deformable objects from a single depth camera. In Proc. ICCV, 2009. 2

[^18]: C. Loop. Smooth Subdivision Surfaces Based on Triangles. Master's thesis, The University of Utah, Aug. 1987. 4

[^19]: T. Neumann, K. Varanasi, N. Hasler, M. Wacker, M. Magnor, and C. Theobalt. Capture and statistical modeling of arm-muscle deformations. In Proc. Eurographics, 2013. 2

[^20]: T. Rhee, U. Neumann, and J. P. Lewis. Human hand modeling from surface anatomy. In Proceedings of the 2006 symposium on Interactive 3D graphics and games, pages 27–34. ACM, 2006. 2

[^21]: N. Robertini, T. Neumann, K. Varanasi, and C. Theobalt. Capture of arm-muscle deformations using a depth camera. In Proceedings of the 10th European Conference on Visual Media Production, 2013. 2

[^22]: T. Sharp, C. Keskin, D. Robertson, J. Taylor, J. Shotton, D. Kim, C. Rhemann, I. Leichter, A. Vinnikov, Y. Wei, D. Freedman, P. Kohli, E. Krupka, A. Fitzgibbon, and S. Izadi. Accurate, robust, and flexible realtime hand tracking. In Proc. CHI, 2015. 8

[^23]: S. M. Software. Poser. <http://my.smithmicro.com/poser-3d-animation-software.html.7>

[^24]: O. Sorkine and M. Alexa. As-rigid-as-possible surface modeling. In Proc. SGP, 2007. 5

[^25]: S. Sridhar, A. Oulasvirta, and C. Theobalt. Interactive markerless articulated hand motion tracking using RGB and depth data. In 2013 IEEE International Conference on Computer Vision (ICCV), Dec. 2013. 8

[^26]: S. Sridhar, H. Rhodin, H.-P. Seidel, A. Oulasvirta, and C. Theobalt. Real-time hand tracking using a sum of anisotropic gaussians model. In Proceedings of the International Conference on 3D Vision (3DV), 2014. 8

[^27]: C. Stoll, Z. Karni, C. Rössl, H. Yamauchi, and H.-P. Seidel. Template deformation for point cloud fitting. In Proc. Eurographics, 2006. 2

[^28]: J. Taylor, R. Stebbing, V. Ramakrishna, C. Keskin, J. Shotton, S. Izadi, A. Hertzmann, and A. Fitzgibbon. User-specific hand modeling from monocular depth sequences. In Proc. CVPR, 2014. 1, 2, 4, 5, 7

[^29]: A. Tsoli, N. Mahmood, and M. J. Black. Breathing life into shape: capturing, modeling and animating 3D human breathing. ACM Trans. Graphics, 33(4), 2014. 2

[^30]: M. Wand, B. Adams, M. Ovsjanikov, A. Berner, M. Bokeloh, P. Jenke, L. Guibas, H.-P. Seidel, and A. Schilling. Efficient reconstruction of nonrigid shape and motion from real-time 3d scanner data. ACM Trans. Graphics, 2009. 2

[^31]: A. Weiss, D. Hirshberg, and M. J. Black. Home 3D body scans from noisy image and range data. In Proc. ICCV, 2011. 2
