
# 通过姿态与对应关系的联合连续优化实现高效且精确的交互式手部追踪

乔纳森·泰勒·卢卡斯·波尔多 $^{*}$ 托马斯·卡什曼 $^{*}$ 鲍勃·科里什 $^{*}$ 杰姆·凯斯金 $^{*}$ 托比·夏普 $^{*}$

爱德华多·索托 $^{*}$ 大卫·斯威尼 $^{*}$ 朱利安·瓦伦丁 $^{*}$ 本杰明·拉夫 $^{§}$ 阿兰·托帕利安 $^{§}$ 埃罗尔·伍德 $^{¶}$

Sameh Khamis Pushmeet Kohli Shahram Izadi Richard Banks Andrew Fitzgibbon Jamie Shotton

微软研究院 $^{®}$ 麦克马斯特大学 $^{†}$ 牛津大学 $^{‡}$ 阿伯泰大学 $^{§}$ 剑桥大学 $^{¶}$

![Image](images/a97581dc0b0aa0affde0ad59bb906d465daac98650ccd07c5bfc76c63f3ba661.jpg)

<div style="text-align: center;">Figure 1: Our hand tracker uses a smooth model of the hand, allowing a second-order optimizer to jointly search over the high-dimensional space that contains both the hand pose and the model positions that correspond to each depth image pixel. Despite a higher per-iteration cost, this optimization has a wide basin of convergence and yields a real-time system that is both more accurate and more efficient than alternatives, enabling new interactions in virtual reality.</div>

## 摘要

全关节手部追踪有望为虚拟和增强现实世界带来全新的交互方式，但当前系统有限的精度和效率阻碍了它的广泛应用。目前主流的方案是先利用机器学习完成初始化与恢复，再通过迭代的模型拟合优化来得到精细的姿态结果。我们遵循这一范式，但对模型拟合环节做了几处改进：(1)采用更具区分度的目标函数；(2)使用能提供非线性优化梯度的平滑表面模型；(3)对模型姿态以及观测数据点与模型表面之间的对应关系进行联合优化。虽然这些改动可能会提高单次拟合迭代的成本，但我们发现迭代次数随之减少，从而抵消了成本上升的影响。此外，由于收敛域较宽，只需较少的初始点就能成功完成模型拟合。我们的系统仅依靠CPU即可实时运行，这样就能将通常负担较重的GPU资源释放给体验设计师使用。该手部追踪器效率极高，甚至能在平板电脑等低功耗设备上运行。它能够在距离摄像头数米远的范围内进行追踪，即便使用当前一代深度相机产生的噪声数据，也能为交互提供较大的工作空间。在标准数据集上的定量评估表明，这种新方法在精度上超越了现有最优水平；定性结果则体现为一系列基于该方法实现的互动体验的实时录制视频。

关键词：关节追踪、虚拟现实、细分曲面

概念：☐以人为中心的计算 → 交互技术；虚拟现实；

## 1 引言

近年来，显示技术和头戴式追踪技术的快速发展终于将虚拟现实（VR）和增强现实（AR）推向消费级市场的主流。但与向用户展示虚拟物体同样重要的，是让用户能够尽可能自然地与这些虚拟物体及环境进行交互。在现实世界中，我们会伸手触摸物体，而物体也会根据物理规律对我们的交互做出响应。无传感器手部追踪能否实现以符合物理规律的方式与虚拟物体进行自然交互呢？虚拟现实领域还有一个关于“具身性”的问题：系统如何投影出准确（尽管可能并不真实）的身体和手部化身形象，以增强用户的“存在感”？

基于摄像头的用户追踪技术长期以来一直有望解决这些问题。随着Kinect系统[Shotton等，2011年]的问世，消费级深度摄像头应运而生，人们首次得以在实验室之外看到全身姿态追踪技术的雏形。Kinect的追踪技术在视频游戏等高动态场景中表现优异，但对于作为主要操作工具的手部，它只能提供极为有限且噪声较多的信息。近年来，学术界和商业界对全关节手部追踪任务产生了浓厚兴趣，这类系统旨在实时推断出能够精确描述用户手部细微动作的姿态向量（详见第2节）。

然而，全关节手部追踪尚未成为AR和VR领域的首选用户界面。我们认为这归因于几个因素：精度与鲁棒性。即便利用深度摄像头输入进行手部追踪，也是一项极其棘手的任务。遮挡现象十分普遍，系统必须严重依赖先验知识，而这些知识并非在所有场景下都适用。手部会围绕三个轴自由旋转，从而大幅改变其外观；手指在局部难以区分，因此必须借助运动学约束来共同推断其状态（例如使用手部模型）。正因如此，当前系统仍存在诸多误差和故障模式。将手部追踪器应用于构建终端用户体验时，鲁棒性是一个尤为棘手的障碍：试想一下，如果追踪器每隔几秒就出现故障，用户与虚拟物体交互时会有多么沮丧。设置灵活性方面，有些系统使用的传感器仅适用于近距离场景；如果摄像头安装在房间内，对于用户需要在较大交互区域内操控虚拟物体和环境的VR体验而言，这会成为限制因素。头戴式摄像头虽带来一些希望，但其视野范围有限。效率方面，许多最先进的系统[Sharp等，2015年；Tagliasacchi等，2015年]计算开销极大。在某些情况下，手部追踪算法甚至会占满整颗高端消费级GPU的资源。这使得在低功耗设备上运行手部追踪器，或提供本身就需要大量GPU带宽的优质用户体验变得困难。

---

![Image](images/04ef9ae57d31cfb46bc5c222088c59694b5b47babe74049e1298bd800bf3649c.jpg)

<div style="text-align: center;">Figure 2: Our hand tracking system is precise, flexible, and efficient enough to permit designers unskilled in hand tracking algorithms to build a variety of interactive scenarios. A variety of user experiences explore direct physical interaction, pointing, and analog control.</div>

手部可围绕三个轴自由旋转，旋转过程中其外观会发生显著变化。手指在局部难以区分，因此必须借助运动学约束来共同推断其状态（例如使用手部模型）。正因如此，当前系统仍存在诸多误差和故障模式。将手部追踪器应用于构建终端用户体验时，鲁棒性是一个尤为棘手的障碍：试想一下，如果追踪器每隔几秒就出现故障，用户与虚拟物体交互时会有多么沮丧。设置灵活性方面，有些系统使用的传感器仅适用于近距离场景；如果摄像头安装在房间内，对于用户需要在较大交互区域内操控虚拟物体和环境的VR体验而言，这会成为限制因素。头戴式摄像头虽带来一些希望，但其视野范围有限。效率方面，许多最先进的系统[Sharp等，2015年；Tagliasacchi等，2015年]计算开销极大。在某些情况下，手部追踪算法甚至会占满整颗高端消费级GPU的资源。这使得在低功耗设备上运行手部追踪器，或提供本身就需要大量GPU带宽的优质用户体验变得困难。

我们的主要贡献在于证明：在手部追踪中使用精细的光滑表面模型，能够让Levenberg方法等标准非线性优化器以远低于现有方法的计算量实现实时运算，同时达到相当甚至更高的精度。这一结果令人惊讶，因为从表面上看，评估这些模型的计算成本似乎比基于几何图元的简单模型更高。然而，迭代次数的减少、收敛域的扩大，再加上对Levenberg雅可比矩阵的高效处理，使得仅需少量迭代次数和初始点即可克服这一成本问题，即便面对远距离采集的噪声数据也能应对自如。我们的次要贡献包括一种全新的初始化策略，以及能量函数表述上的一些创新。

我们的实验评估旨在探究这些技术贡献对系统准确性和效率的影响。我们针对几种现有的前沿方法进行了定量比较，结果显示在大多数情况下系统的准确性均有显著提升。我们还开发了多个用户体验原型，相关演示可观看附带的视频。这些原型展现了关节化手部追踪技术在虚拟现实和增强现实应用中的巨大潜力，同时在我们开发追踪算法的过程中，它们也作为实际测试平台发挥了极为重要的作用。

不过目前仍存在诸多局限。本文并不声称已经“解决”了手部追踪问题。事实上，文中的局限性部分简直可以直接照搬自二十多年前的Rehg和Kanade的研究[^1994]：即“遮挡和复杂的背景”。如今我们会将其表述为“严重遮挡”，比如握拳状态或极端视角，当然我们也会将完全遮挡的情况排除在外（即传感器无法检测到手部）。至于“复杂的背景”，我们会将其涵盖为其他物体表面、其他手部，以及手部分割失败的场景。我们甚至并未宣称手部追踪技术已经达到了某一基准水平，但我们确信，使用这种追踪器所获得的体验，在质量上确实优于其他学术或商业追踪器。同时，在开发出这些体验后我们意识到，要提升系统的鲁棒性和延迟表现，我们还有更多工作要做。

## 2 相关工作

传统的手部追踪方法包括佩戴数据手套[Dipietro等人，2008]、标记物[Wang和Popović，2009；Zhao等人，2012]或可穿戴摄像头[Kim等人，2012]，但这类用户设备会成为无束缚自然交互的障碍。因此该领域逐渐转向无需直接用户设备的基于视觉的技术。

相关技术包括判别式方法[Keskin等人，2012；Xu和Cheng，2013；Sun等人，2015]，这类方法通过提取图像特征（例如利用分类和/或回归技术）来直接估算手部姿态。它们通常不依赖时序信息，旨在直接估算手部关节配置，因此可作为可靠的初始化器[Shotton等人，2011]。相反，生成式（或基于模型）方法则利用显式的手部模型，在一系列时序图像中恢复手部姿态[Oikonomidis等人，2011；Tagliasacchi等人，2015]。判别式方法通常鲁棒性较强，但缺乏模型拟合所具备的准确性。生成式方法则依赖于前一帧的初始化信息，因此更难从错误中恢复。混合方法通过结合判别式和生成式方法，在每帧初始化的情况下提升帧间模型拟合的鲁棒性[Ballan等人，2012；Sridhar等人，2013；Sridhar等人，2015；Qian等人，2014；Sharp等人，2015]。

基于单RGB相机的方法早期基于视觉的系统采用单目RGB相机，这使得相关问题极具挑战性（关于综述可参见Erol等人[^2007]的研究）。不难理解，大多数方法都是离线处理的。判别式方法使用的是包含有限手部姿态的小型数据库[Athitsos和Sclaroff，2003；Wu和Huang，2000]，因此精度有限。生成式方法则使用自由度受限的模型，基于2D、2.5D或逆向运动学（IK）来处理简化的手部表示。

---

（例如 [Stenger等人，2001年；Wu等人，2001年]），同样导致精度有限。Bray等人[^2004]采用了更精细的3D手部模型。de La Gorce等人[^2011]进一步实现了用户个性化设置，他们会在跟踪过程中自动对手部模型中的骨骼进行缩放处理。Heap和Hogg[^1996]提供了早期在线（10Hz）跟踪的实例，采用的是简化的可变形手部模型。与基于RGB的其他方法一样，这类方法在应对复杂姿态、背景变化以及遮挡情况时表现不佳，因此通用性受限。

在我们的研究中，使用的是普通的深度相机；虽然这类相机通常也能提供RGB数据，但我们仅专注于深度信号，不过整合其他传感器也是未来值得探索的方向。

多摄像头动作捕捉
或许最早实现无约束手部跟踪的是Rehg和Kanade[^1994]，他们利用两台摄像机，通过高斯-牛顿求解器和基于胶囊模型的局部边缘搜索算法来解析27个自由度。他们的系统运行频率为10Hz，但前提是手部几乎不能被遮挡。近期也有利用多摄像头装置进行高质量离线（非交互式）手部动作捕捉的研究。Ballan等人[^2012]取得了高质量成果，能将详细的扫描网格模型精准贴合到复杂的双手及手物交互场景中。Zhao等人[^2012]则结合深度相机、动作捕捉装置以及佩戴在用户手上的标记点来捕捉复杂的单手姿态，同样属于离线处理。Wang等人[^2013]和Tzionas等人[^2015]利用物理引擎模拟复杂的手物交互，但每帧处理需要数分钟时间。首个多摄像头实时系统由Sridhar等人[^2013]开发，该系统采用五台RGB摄像机和一台飞行时间（ToF）传感器，能够以$\sim$10Hz的频率跟踪用户的手部动作。

上述系统虽能产出极高精度的结果，但由于计算成本高且需要笨重的多摄像头装置，在交互式消费场景中并不实用。

单深度相机
Kinect等消费级深度相机的问世让计算机视觉研究变得更加可行，比如它们对光照变化的鲁棒性更强，对前景和背景特征的适应性也更好。不过，大多数高精度实时处理方法仍对计算资源要求极高（通常需要借助GPU），因此在移动设备上的应用仍受到限制。

生成式方法：Oikonomidis等人[^2011]提出了一种基于粒子群优化（PSO）的生成式方法，利用深度传感器实现全自由度手部跟踪（频率达15Hz）。该方法从已知的初始姿态开始跟踪手部，一旦丢失跟踪则无法恢复。研究人员也探索了其他用于实时手部模型拟合的随机优化方案，但这些方法仍不具备判别式方法的优势[Makris等人，2015年]。Melax等人[^2013]采用由物理求解器驱动的生成式方法来生成3D姿态估计结果。Fleishman等人[^2015]和Tagliasacchi等人[^2015]利用快速、可articulated的ICP变体，取得了令人惊叹的高速跟踪效果。不过这些系统在跟踪丢失后都无法恢复。Tagliasacchi等人[^2015]要求用户佩戴腕带以实现手部定位，但他们也在手部跟踪领域取得了业界领先的成果。

判别性方法：Keskin等人[^2012]提出了一种判别性方法，利用多层随机森林来预测手部各部分并据此拟合简单的骨骼模型。该系统在消费级CPU硬件上能以30Hz的频率运行，但在物体遮挡情况下可能会失效。多种系统在此基础上进行了扩展[Tang等人，2013年；Tejani等人，2014年；Tang等人，2015年；Sun等人，2015年]，采用新颖的分类或回归架构来呈现更复杂的姿态。其他判别性方法还包括那些利用不同的级联学习架构来单次直接估计手部姿态的系统[Xu和Cheng，2013年；Oberweger等人，2015年；Li等人，2015年；Neverova等人，2015年；Poier等人，2015年]。Wang等人[2009年；2011年]展示了一种判别性最近邻查找方案，该方案利用大型手部姿态数据库以及逆向运动学技术来优化姿态。最近邻方法高度依赖于姿态数据库，在泛化到未见过的姿态时可能会遇到困难。纯粹的判别性系统不包含显式的模型拟合步骤，因此其结果往往在运动学上并不合理（例如不切实际的活动关节或手指长度）。

混合方法：Qian等人[^2014]对Oikonomidis等人[^2011]的工作进行了扩展，增加了“引导式”粒子群优化步骤以及要求指尖清晰可见的重初始化机制。Sridhar等人[^2014]采用高斯函数之和的表示方式来实现高效的模型拟合与重初始化。迄今为止，所有这些系统都基于简单的手部模型；而我们的方法则利用了完整的3D手部表面模型，事实证明该模型能更好地适配观测数据。Tompson等人[^2014]利用深度神经网络预测特征点位置，再通过逆向运动学推断出网格骨骼，从而取得了令人印象深刻的手部追踪效果。尽管该方法能实现实时处理，但仅适用于近距离场景。Sharp等人[^2015]采用了精细的网格模型与粒子群优化算法，再结合稳健的蕨类分类器与森林重初始化机制，取得了出色的效果，包括远距离或摄像头移动场景，不过这对高端GPU的性能要求很高。

商业系统：除了上述研究之外，也有商业化的手部追踪系统。Wang等人[2009年；2011年]的研究成果促成了3Gear/NimbleVR系统[^2013]。英特尔感知计算SDK[^2016]搭配RealSense摄像头可提供近距离手部追踪功能，但其在灵活性与工作范围方面不如我们的方法。Leap Motion系统[^2013]的最初版本虽能实现高帧率的关节化手部追踪，但支持的姿态范围有限，且仅能在极有限的深度范围内工作。针对头戴式设备场景，该系统经过重新设计，由于假设手部处于有限的深度范围内，因此推出了名为Orion的新版本[^2015]。该系统能够稳健地追踪复杂的姿态，即便存在适度的双手交互情况也能应对，从而为虚拟现实带来了出色的用户体验。不过，图像与叠加的骨骼模型之间往往存在明显的不匹配现象，这可能表明该系统过度依赖强先验条件，或是使用了未经校准的手部模型。

## 3 方法

我们的问题描述如下：我们有一个传感器，它能提供深度图像流$I^t, t \in \{t_0, t_1, \ldots\}$，其中t代表捕获时间$^1$；我们假设存在手部分割与指尖检测算法($\S3.4$)，这些算法会将$I^t$预处理为：

- 一个包含N个3D点的子采样列表$\{x_n^t\}_{n=1}^N$，其中N是一个算法参数（我们在§4.3中证明，出人意料的是较小的数值就能取得良好效果）。

- 一组对应的3D法向量，由数据估算得出，记为 $\{n_n^t\}_{n=1}^N$。

- 一个分割掩码，我们据此计算距离变换 $D^t : \mathbb{R}^2 \mapsto \mathbb{R}$，其中 $D^t(\mathbf{x})$ 表示2D点 $\mathbf{x}$ 到手部轮廓的距离（轮廓内部值为零）。

- 一组检测到的指尖，记为 $F_t$，即 $\{f_f^t\}_{f=1}^{F_t} \subset \mathbb{R}^3$。

---

我们参照Khamis等人的方法 [^2015] 对手部姿态进行参数化，使用姿态向量 $\theta \in \mathbb{R}^{28}$，该向量包含全局平移和旋转信息、每个手指的一个外展变量和三个屈曲变量，以及手腕/前臂的一个外展和屈曲参数。我们还采用了Khamis等人提供的手部形状和姿态模型 [^2015]。该模型首先用一组混合形状来参数化中性手部形状，然后在给定的固定中性手部形状基础上，应用姿态 $\theta$ 来生成经过适当关节化的三角形控制网格 $P(\theta) \in \mathbb{R}^{3 \times M}$，该网格定义了姿态手部的平滑表面 $\mathcal{S}(\theta) \subseteq \mathbb{R}^3$（见图3）。为了找到固定的中性手部形状，我们直接采用Tan等人的技术 [^2016] 为每位受试者定制模型。姿态函数 $P(\theta)$ 是通过线性混合蒙皮技术 [Jacobson et al. 2014] 定义的，而平滑表面 $\mathcal{S}(\theta)$ 则是控制网格 $P(\theta)$ 所定义的Loop细分曲面 [Loop 1987] 的近似 [Taylor et al. 2014]。关键在于，Taylor等人 [^2014] 提供了一个从分段2D参数空间 $\mathcal{S}(u; \theta)$ 到 $\Omega$ 的平滑映射 $\mathbb{R}^3$，对应的表面法向量函数为 $S^\perp(u; \theta)$，其中 $\mathcal{S}(\theta) = \{S(u; \theta) | u \in \Omega\}$。尽管 $\Omega$ 中的点具有较为特殊的数据类型（TriangleID、Real、Real），但众所周知，只要仔细处理 [Taylor et al. 2014]，对 $\Omega$ 的优化就能像对 $\mathbb{R}^2$ 的优化一样轻松完成。

手部追踪的目标是找到姿态参数 $\theta^{t}$，使得3D表面 $\mathcal{S}(\theta^{t})$ 能够“很好地解释” $I^{t}$ 及之前帧中的图像数据。这引导我们将问题表述为：将“很好解释”这一概念封装在能量函数 $E^{t}(\theta)$ 中，其最小值即为所求。

 $$ \hat{\theta}^{t}=\underset{\theta}{\mathrm{a r g m i n}}E^{t}(\theta) $$

该系统在时间t的姿态估计结果就是该能量函数的最小值。能量函数对真实图像形成过程的拟合度与求解它的难易程度之间总是存在权衡，但显然任何有效的表述都会涉及具有多个局部最小值的能量函数，因此必须采用某种全局优化器。常见的策略是使用多个起始点，无论 $E^{t}$ 本身是否需要随机优化。在我们的系统中，这些起始点来自前一帧的前向预测，以及基于机器学习的独立于帧的重初始化器（见§3.3.2）。

### 3.1 整体架构

总体而言，我们的手部追踪算法在每个输入帧上包含以下步骤：

1. 预处理（$\S$3.4）

2. 从重初始化器和时序预测中生成起始点

3. 从每个起始点出发优化E

4. 输出使E取值最小的姿态

以下章节将介绍这些组件，首先从能量定义与最小化开始，因为这是核心贡献；随后会描述预处理和重新初始化过程。

### 3.2 能量函数

能量函数是现代手部追踪器的核心，而能量的复杂度是一项关键的工程决策。一种极端方案是采用完整的“渲染并对比”策略，有时也被称作“理想能量”[Sharp等人，2015]。不过在手部追踪领域，此类能量目前仅能通过随机搜索[Oikonomidis等人，2011；Sharp等人，2015]或有限差分梯度[Tan等人，2016]来优化，随之而来的便是高昂的计算成本。通过定义一个平滑且可微的渲染器[de La Gorce et al.

![Image](images/3a511d078be28973c99798a80985bb47f7fac8a8ea9e23f8c1d695ecbee66d8f.jpg)，就能提升效率。

<div style="text-align: center;">Figure 3: Our surface model creates a posed mesh using linear blend skinning, which defines a smooth surface (right) using a surface model based on approximate Loop subdivision.</div>

2011年；Loper等人，2015]，并利用基于梯度的优化方法，但迄今为止我们尚未发现足够高效的实现方案，无法确定这类方法能否达到实时处理的要求。即便有高效的实现方案，也尚不清楚能量曲面本身是否过于复杂，以至于需要大量的初始点才能求解。

我们的方法是定义一个平滑的能量函数，使其适用于高斯-牛顿优化，该函数是多个项的加权和，用于体现模型拟合的不同要求。这些项在下方进行了总结，并附上了采用类似术语的最新研究参考文献。

数据：每个数据点$x_{n}$都应靠近平滑曲面$S(\theta)$，且在最近点的法线方向也应相似。[Taylor等人，2014]

背景：模型点不应投影到背景之上。[Vicente和Agapito，2013]

姿态：姿态$\theta$应符合人类手部的合理姿态。[Tagliasacchi等人，2015；Tan等人，2016]

限制：姿态$\theta$需遵守关节角度的限制。[Khamis等人，2015]

时序：姿态的时间序列应合乎常理。

[Tagliasacchi等人，2015]

自交：手部模型不应出现自相交现象。

[Ballan等人，2012]

指尖：数据中检测到的每个指尖$f_{f}$附近都应有对应的模型指尖。

[Sridhar等人，2013；Tagliasacchi等人，2015]

设Terms = {bg, tips, pose, limit, int, temp}为非数据项标识符集合。那么整体能量即为加权求和：

 $$ E(\theta)=E_{data}(\theta)+\sum_{\tau\in Terms}\lambda_{\tau}E_{\tau}(\theta) $$

其中参数$\lambda_{\tau}$的设置如表格1所述。接下来将对各项进行详细定义。

#### 3.2.1 数据项

我们对每个数据点$\mathbf{x}_{n}$到模型的距离，以及其与对应数据法线$\mathbf{n}_{n}$的表面方向差异进行惩罚，计算公式如下：

 $$ E_{\mathrm{d a t a}}(\theta)=\frac{1}{N}\sum_{n=1}^{N}\min_{u\in\Omega}\frac{\|S(u;\theta)-\mathbf{x}_{n}\|^{2}}{\sigma_{x}^{2}}+\frac{\|S^{\perp}(u;\theta)-\mathbf{n}_{n}\|^{2}}{\sigma_{n}^{2}} $$

---

![Image](images/170cf20a7fd47f8bad8552a9b0298d3a21266cf1d74a4a51bfb0576d5b28e428.jpg)

<div style="text-align: center;">Figure 4: Illustration of the cross section of the surface (green) of two fingers close to some data (orange) from a single finger. Without the normal term (left) the discrete update causes a correspondence (blue) to select the wrong finger. With the normal term (center) this is not only prevented but forces (shown in red) drive the correspondence towards their correct location, increasing convergence. With a planar model (right) the normal term still allows the discrete update to place the correspondences on the correct finger but these forces are gone, as the surface normal is constant across a face.</div>

其中$\sigma_{x}^{2}$、$\sigma_{n}^{2}$是对点和法线上噪声方差的估计值。法线项使得能量函数能够利用表面方向来选择模型上更优的位置，即便这些位置距离数据较远（见图4）。

与ICP的关系：按照现有描述，$E_{data}$需要对每个数据点在整个表面域$\Omega$上进行搜索，这类似于传统迭代最近点（ICP）算法中的最近点计算[Tagliasacchi等人，2015]。通常，采用ICP方法时，模型会被限定为某类几何图元，如圆锥、球体或三角形，以便高效地进行最近点计算。如果算法仅用抽象表面函数S和$S^{\perp}$来表示，那么就需要针对每个点将其实现为关于两个变量（即$\Omega$中的向量）的非线性优化问题。实际上，由于最近点求解通常会应用于所有图元，且$\Omega$的优化可以从最近的顶点处初始化，因此两者的计算成本相当，尤其是当包含表面法向项时。

在我们的实现中，完全避开了这些内部迭代步骤，采用了Taylor等人[^2014]以及Khamis等人[^2015]提出的提升策略。定义如下：

 $$ \epsilon(u,\theta,\mathbf{x},\mathbf{n}):=\frac{\|S(u;\theta)-\mathbf{x}\|^{2}}{\sigma_{x}^{2}}+\frac{\|S^{\perp}(u;\theta)-\mathbf{n}\|^{2}}{\sigma_{n}^{2}} $$

我们有：

 $$ E_{\mathrm{d a t a}}(\theta)=\frac{1}{N}\sum_{n=1}^{N}\min_{u\in\Omega}\epsilon(u,\theta,\mathbf{x}_{n},\mathbf{n}_{n}) $$

 $$ =\frac{1}{N}\sum_{n=1}^{N}\min_{u_{n}\in\Omega}\epsilon(u_{n},\theta,\mathbf{x}_{n},\mathbf{n}_{n}) $$

 $$ =\min_{\mathcal{U}}E^{\prime}_{data}(\theta,\mathcal{U}) $$

其中式(3)只是对最小化变量的重命名，$\mathcal{U} = \{u_n\}_{n=1}^N$是一组现在被明确列出的对应关系，而

 $$ E_{\mathsf{d a t a}}^{\prime}(\theta,\mathcal{U})=\frac{1}{N}\sum_{n=1}^{N}\epsilon(u_{n},\theta,\mathbf{x}_{n},\mathbf{n}_{n}). $$

这使我们能够构造出“提升”后的能量函数：

 $$ E^{\prime}(\theta,\mathcal{U})=E^{\prime}_{data}(\theta,\mathcal{U})+\sum_{\tau\in Terms}\lambda_{\tau}E_{\tau}(\theta) $$

对于任意U而言：

 $$ E(\theta)\leq E^{\prime}(\theta,\mathcal{U}) $$

并且

 $$ \min_{\theta}E(\theta)=\min_{\theta,\mathcal{U}}E^{\prime}(\theta,\mathcal{U}). $$

这种提升后的能量函数$E'(\theta, \mathcal{U})$对所有参数而言都易于求导，从而可以实现基于梯度的最小化。

#### 3.2.2 bg：背景穿透惩罚项

尽管数据项会促使模型解释所有的前景数据，但它并未限制模型不能超出轮廓线并渗入背景。因此，我们会对模型上的一组$\mathcal{U}^{\mathrm{bg}} = \{u_h^{\mathrm{bg}}\}_{h=1}^H \subseteq \Omega$个H点进行检查，并对这些点投影到轮廓线之外的情况予以惩罚，所用项为：

 $$ E_{\mathrm{b g}}(\theta)=\frac{1}{H}\sum_{h=1}^{H}D(\Pi(S(u_{h}^{\mathrm{b g}};\theta)))^{2} $$

其中$\Pi : \mathbb{R}^3 \to \mathbb{R}^2$表示投影到图像平面上的结果，D则是图像空间的距离变换。关于$\mathcal{U}^{\mathrm{bg}}$的选择位置，详见补充材料。

#### 3.2.3 pose：姿态先验项

为了约束被遮挡关节采取合理的姿态，我们采用了Tan等人[^2016]提供的姿态先验。该先验由一个均值为$\mu$、协方差矩阵为$\Sigma$的多元高斯分布构成。我们对姿态$\theta$在该分布下的负对数似然值予以惩罚，具体形式为：

 $$ E_{\mathtt{p o s e}}(\theta)=\frac{1}{22}(\theta-\mu)^{\top}\Sigma^{-1}(\theta-\mu) $$

该形式也可以写成平方形式，正如Tagliasacchi等人[^2015]针对类似先验所描述的那样。用于参数化全局变换的$\theta$的六个分量不会受到该先验的惩罚。

#### 3.2.4 limit：关节限位约束项

为了防止模型出现解剖学上不合理的姿态（如手指向后弯曲），我们采用了Tan等人$\psi^{\min} \in \mathbb{R}^{22}$提供的关节角度最小值$\psi^{\max} \in \mathbb{R}^{22}$和最大值[^2016]。注意，我们并未使用硬约束，而是通过以下方式对这些可行区域外的关节角度设置进行软性惩罚：

 $$ E_{\mathrm{l i m i t}}(\theta)=\frac{1}{22}\sum_{i=1}^{22}\epsilon(\psi_{i}^{\mathrm{m i n}},\psi_{i}(\theta),\psi_{i}^{\mathrm{m a x}})^{2} $$

其中

 $$ \epsilon(a,x,b)=\max(0,a-x)+\max(x-b,0). $$

#### 3.2.5 temp：时间先验项

我们鼓励各帧之间姿态的时间一致性，以此平滑跟踪器输出，同时整合前一帧的观察结果。恒定位置模型假设当前姿态应接近前一帧的姿态，我们将其记为$\theta^{temp}$。我们将这一先验知识编码进能量项中。

 $$ E_{\mathrm{t e m p}}(\theta)=\frac{1}{28}\sum_{i=1}^{28}\rho(\theta_{i}-\theta_{i}^{\mathrm{t e m p}},\tau_{i}) $$

ACM Trans. Graph.，第35卷，第4期，文章编号143，出版日期：2016年7月

---

其中，鲁棒的Geman-McClure核$\rho(e,\tau)=\frac{(e/\tau)^2}{1+(e/\tau)^2}$用于建模前一帧姿态可能出错的情况[Geman和McClure，1987]，而$\tau_i\in\{\tau_{\text{trans}},\tau_{\text{rot}}\}$则分别选取$\tau_{\text{trans}}$作为$\tau_{\text{rot}}$的平移分量，选取$\theta$作为旋转分量。

#### 3.2.6 int：自相交惩罚项

为了抑制手指自相交现象，我们使用一组S个球体来近似可变形手部表面中手指所占的体积（详见补充材料）。具体而言，第s个球的半径为$r_s \in \mathbb{R}$，其位置$c_s(\theta) \in \mathbb{R}^3$由模型顶点的仿射组合指定。也就是说，我们定义向量$T = \{T^s\}_{s=1}^S \subset \mathbb{R}^{M \times 1}$，其中$\sum_{m=1}^M T_m^s = 1$对每一个s而言都成立。对于集合$\mathcal{P} \subseteq \{1, ..., S\}^2$，它包含所有不在同一手指的同一关节或相邻关节中的球对，我们对这类自相交现象施加惩罚：

 $$ E_{\mathrm{int}}(\theta)=\frac{1}{|\mathcal{P}|}\sum_{(s,t)\in\mathcal{P}}\max(0,h_{st}(\theta))^{2} $$

其中

 $$ h_{s t}(\theta)=(r_{s}+r_{t})^{2}-\|c_{s}(\theta)-c_{t}(\theta)\|^{2} $$

用于衡量球体s和t之间的穿透程度。

#### 3.2.7 tips：指尖项

检测到的指尖（§3.4）是一组3D点$\{\mathbf{f}_f\}_{f=1}^F \subset \mathbb{R}^3$。我们同样确定了五个模型位置$\{u_d^{\mathrm{tip}}\}_{d=1}^5 \subset \Omega$，它们对应模型中每个手指的指尖。随后，我们通过以下方式将指尖检测器纳入模型拟合的能量计算中：

 $$ E_{tips}=\frac{1}{F}\sum_{f=1}^{F}softmin(\mathbf{s}_{f};\nu_{tips})^{2} $$

其中$\mathbf{s}_f \in \mathbb{R}^5$是一个向量，其元素为$\|S(u_d^{\mathrm{tip}};\theta) - \mathbf{f}_f\|^2$，对应$d = 1 \ldots 5$；softmin是一种可微运算符。

 $$ softmin(\mathbf{s};\nu)=\frac{\sum_{s\in\mathbf{s}}e^{-s/\nu^{2}}s}{\sum_{s^{\prime}\in\mathbf{s}}e^{-s^{\prime}/\nu^{2}}} $$

该运算符促使每一次检测结果都能由模型中的指尖来解释。

### 3.3 能量最小化

在定义了以姿态$E'(\theta, \mathcal{U})$和数据与模型的对应关系$\theta$为参数的能量$\mathcal{U} \subset \Omega$之后，我们现在展示如何高效地最小化该函数。我们将这些参数合并为$\Theta = \left[\operatorname{vec}(\mathcal{U})^\top \quad \theta^\top\right]^\top \in \mathbb{R}^{2N+28}$，并添加重载函数：

 $$ E^{\prime}(\Theta)=E^{\prime}(\left[\begin{matrix}{\operatorname{v e c}(\mathcal{U})}\\ \end{matrix}\right]^{\top}\quad\theta^{\top}]^{\top}:=E^{\prime}(\theta,\mathcal{U}). $$

与Tagliasacchi等人[^2015]的做法类似，我们确保上述所有项都能表示为平方和的形式，因此能量符合高斯-牛顿/列文伯格-马夸特形式：

 $$ E^{\prime}(\Theta)=\sum_{k=1}^{K}r_{k}^{2}(\Theta)=\|r(\Theta)\|^{2} $$

其中$r(\Theta) \in \mathbb{R}^K$为残差向量。我们采用Zach [^2014]提出的“对核函数开平方”方法来处理能量中的鲁棒核。

![Image](images/743de04d711b8a83ff251207c5dac18b157cb66078b93a41b7d9aedc36b29d4f.jpg)

<div style="text-align: center;">Figure 5: Examples of our model fitting converging to an energy minimum. Often when initialized far from the true pose the model converges to (presumably) the global minimum (top row) demonstrating the large basin of convergence. In the bottom row the pose is outside that basin as the pinky is too far from its data. Often the first iteration (middle column) dictates the success or failure of the optimization.</div>

#### 3.3.1 列文伯格迭代

由于我们确保了所有计算都是可微的，因此可以计算出雅可比矩阵$J(\Theta) \in \mathbb{R}^{K \times (2N+28)}$，该矩阵是块稀疏的（见图7）。我们利用它来计算标准的列文伯格步长：

 $$ \left(J(\Theta)^{\top}J(\Theta)+\gamma I\right)\Delta\Theta=J(\Theta)^{\top}r(\Theta) $$

其中$\gamma$是一个阻尼参数。单次迭代会同时更新手部姿态和对应关系：

 $$ \Theta\gets\Theta\oplus\Delta\Theta $$

其中，对于$\oplus$的位姿分量而言，$\Theta$运算符被简单定义为加法；而对于对应分量，则采用Taylor等人提出的、能够正确处理[^2014]三角形面片之间过渡情况的、具备网格感知特性的更新方法 $\Omega$。

由于Hessian近似矩阵具有高度稀疏且规则的结构，我们可以利用在捆绑调整中常用的Schur补技术来高效求解式(19) [Triggs等人，2000]，该技术基于以下观察：在该块矩阵线性系统中

 $$ \begin{bmatrix}C&E\\ E^{\top}&B\end{bmatrix}\begin{bmatrix}\Delta\mathcal{U}\\ \Delta\theta\end{bmatrix}=\begin{bmatrix}c\\ b\end{bmatrix}, $$

我们首先可以求解关于$\Delta\theta$的对称正定系统。

 $$ (B-E^{\top}C^{-1}E)\Delta\theta=b-E^{\top}C^{-1}c. $$

需要注意的是，$C \in \mathbb{R}^{2N \times 2N}$由沿对角线排列的$2 \times 2$个块组成，因此只需独立求逆每个块即可轻松计算出$C^{-1}$。随后，$\Delta U$便可由$\Delta U = C^{-1}(c - E\Delta\theta)$廉价得出。同样，这些矩阵的结构也支持高效计算上述的矩阵乘法。式(22)仅需对一个固定大小的矩阵进行分解（如Cholesky分解），因此该算法的计算复杂度与N呈线性关系。

如今，每次迭代中对应关系的计算成本极低，这与ICP算法形成鲜明对比——在ICP算法中，每次迭代都需对每个数据点执行最近点查找操作。

---

![Image](images/2023551c178230454bcbd4cf7bb398aa89ff64dcc4d0ed7ff7e45ab2fd8903cb.jpg)

![Image](images/733494de692b320ad7290b34b81c75439918d36d6cce1123855560875a6e09aa.jpg)

<div style="text-align: center;">Iteration 2</div>

![Image](images/f9629fd9b6e04efb81d8ec6b9fbde8ef70fad1e4de7222004e18f0f659b3c43b.jpg)

![Image](images/ded924df518d2d39399a77bad6c24a335bf65fbd8406118604b2b3a0f3ce2728.jpg)

<div style="text-align: center;">Figure 6: A typical example of our model-fitting converging to the correct pose. Orange dots are data points  $\{\mathbf{x}_n\}_{n=1}^N$. Each correspondence  $u_n$ is represented by its blue surface point  $S(u_n; \theta)$. Initialization: The model begins in a pose extrapolated from previous frames or supplied by our discriminative predictor (§3.3.2). Iteration 1: In the first discrete update, each of the data points is assigned a correspondence from a finite set of model points (§3.3.3). Despite the coarseness of this set, the continuous update (§3.3.1) is able to make large corrections (blue trails from old to new) to these correspondences while simultaneously adjusting the hand pose. Iteration 2: Many of the grossly misassigned correspondences are corrected by the discrete update allowing the continuous update to make substantial progress towards the true pose. Iteration 3: The third iteration corrects the remaining correspondences and slides the model further towards the true pose.</div>

![Image](images/90bf7d0e0b00df7d99e598b2a2c96d4242cb8ef6a5695c15d5432f3a681ea4ea.jpg)

![Image](images/553fdf453245a3330f27aa3eaae469c08e261058eec4dd5118a0c14de96ece85.jpg)

<div style="text-align: center;">Figure 7: Left: The Jacobian J has a block sparse structure composed of N blocks of size  $6 \times 2$ with 28 mostly-dense columns on the right. Right: The Hessian approximation has a block sparse arrowhead structure composed of  $2 \times 2$ blocks and a mostly dense set of rows and columns forming the arrowhead.</div>

#### 3.3.2 位姿初始化

由于能量函数具有高度非凸性，我们希望从至少一个足够接近全局最小值的起始点出发，启动基于梯度的局部优化过程以找到该最小值。位姿参数的起始点有两个来源：第一种来源利用预测器

 $$ \theta^{\mathrm{t r a c k e d}}=\theta^{(1)}+\frac{t^{(1)}}{t^{(2)}-t^{(1)}}\left(\theta^{(1)}-\theta^{(2)}\right) $$

其中，$\theta^{(1)}$和$\theta^{(2)}$分别是比当前帧早$t^{(1)}$和$t^{(2)} > t^{(1)}$时间单位到达的那些帧所对应的跟踪位姿。$^{2}$若无法获得恒定速度预测结果，则改用恒定位置预测$\theta^{\mathrm{tracked}} = \theta^{(1)}$作为替代。

第二种来源是为每一帧快速估算出的一组重新初始化位姿。这属于“多输出学习”问题的一个实例 [Guzmán-Rivera等人，2014]，我们对其进行了改进。

![Image](images/cd900e1e6277d95072274e13725edc2607a851e46e689ea1831f482f656c398f.jpg)

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

![Image](images/7360b2f6e607f9f474b673560683aba1cb5d3bd6797307c3c6551e03fe81b442.jpg)

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

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

<div style="text-align: center;">overlap of (a) & (b)</div>

<div style="text-align: center;">Figure 8: Visual intuition for the two distances relevant to our reinitializer. Top: Flipping a hand generates an image similar in appearance space, but distant in pose space. The retrieval forest therefore returns a lot of seeds that are flipped versions of the ground truth. A graph building metric that only relies on pose cannot recover from such local minima. Bottom: Retrieval forests can often match hands to their slightly rotated versions. Here, the distance in pose space is small, but the distance in appearance space is large, because the fingers do not overlap.</div>

我们采用了一种近期提出的方法 [Valentin等人，2016] 的改进版本。该算法能根据预处理并裁剪后的手部图像生成多种手部位姿假设。它利用所谓的“检索森林”快速生成候选手部位姿，随后再通过“导航图”对这些候选位姿进行细化，最终得到少量位姿提议。尽管相似的外观并不总能对应相近的手部位姿，反之亦然（具体示例见图8），但我们仍成功适配了Valentin等人提出的算法 [^2016]。我们没有直接学习全局平移量，而是从预处理并裁剪后的手部图像中学习相对平移量，再将其映射为全局平移量。在最优算法参数设置下（c = 40，n = 10），整个搜索过程可在5毫秒内完成。

#### 3.3.3 U的离散更新

虽然$\theta$的初始估计值由时间外推和重新初始化器提供，但我们还需要初始化对应关系U。此处也可使用回归器 [Taylor等人，2012]，但在本研究中

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>$\sigma_x$</td><td style='text-align: center; word-wrap: break-word;'>$\sigma_n$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda_{bg}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda_{pose}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda_{limit}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3mm</td><td style='text-align: center; word-wrap: break-word;'>0.25</td><td style='text-align: center; word-wrap: break-word;'>0.1</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>$10^{2}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\lambda_{temp}$</td><td style='text-align: center; word-wrap: break-word;'>$\tau_{trans}$</td><td style='text-align: center; word-wrap: break-word;'>$\tau_{rot}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda_{int}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda_{tips}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>0.15</td><td style='text-align: center; word-wrap: break-word;'>2cm</td><td style='text-align: center; word-wrap: break-word;'>4°</td><td style='text-align: center; word-wrap: break-word;'>$10^{4}$</td><td style='text-align: center; word-wrap: break-word;'>40</td></tr></table>

<div style="text-align: center;">Table 1: Parameters used for all our experiments and experiences.</div>

我们执行的是一种简单的离散搜索。具体而言，针对每次迭代 i，都会预先离线定义一组 Q 个候选对应关系 $\mathcal{U}_i^{\text{prop}} = \{u_{iq}^{\text{prop}}\}_{q=1}^{Q} \subseteq \Omega$。在第 i 次 Levenberg 步骤之前，$u_n$ 中的每个条目 $\mathcal{U}$ 都会根据以下公式进行更新：

 $$ u_{n}\leftarrow\operatornamewithlimits{a r g m i n}_{u\in\mathcal{U}_{i}^{\operatorname{p r o p}}\cup\{u_{n}\}}\epsilon(u_{n},\theta,\mathbf{x}_{n},\mathbf{n}_{n}). $$

需要注意的是，这种更新会严格降低能量值（公式 6），因为每个对应关系 $u_n$ 都可以保留其原有数值。这不仅有助于提供良好的初始化条件，还能让对应关系在不同手指间跳转（见图 6）；这种更新方式比基于梯度的优化器所能提供的更新更为全局且粒度更粗。尽管我们使用随机抽样方法来预先定义每个 $U_i^{\text{prop}}$（详见补充材料），但如何找到更好的启发式策略——比如在手指上设置更多候选点，或利用当前姿态、对应关系集合以及图像的特征来生成该集合——仍将是未来的研究方向。

### 3.4 预处理

预处理阶段相对常规。手部位置是通过 Kinect 人体追踪器 [Shotton et al. 2011] 来检测的。随后将该位置作为种子，利用连通分量算法来分割手部区域，其中深度相近的相邻像素会被视为连通。由于以种子像素为中心、半径为 19 厘米的区域内像素都会被纳入考虑范围，因此用户的前臂像素也常常被包含进来；所以我们的模型也必须能够解释这些像素，即模型中需包含前臂部分。

接着，我们采用随机逼近的最远点采样方法对 N 个像素进行采样：该方法会从 5 个候选点中选出距离现有样本集最远的那个 [Mitchell 1991]。每个采样像素的深度信息被用于计算其三维坐标，从而得到数据点集合 $\{\mathbf{x}_n\}_{n=1}^N \subseteq \mathbb{R}^3$。对于每个像素 $\mathbf{x}_n$，我们还会进一步计算其法向量 $\mathbf{n}_n \in \mathbb{R}^3$：首先平滑深度图像，然后对该像素周围区域内一组归一化叉积的平均值进行归一化处理。

最后，我们采用了 Qian 等人提出的指尖检测算法的简化版本 [^2014]，来在图像中找出一组可能的指尖，并同样将它们反投影以获得一组 F 个位置 $\{\mathbf{f}_f\}_{f=1}^F \subset \mathbb{R}^3$。

## 4 实验

在本节中，我们评估了跟踪器的多个方面，包括与现有技术的比较、精度与效率之间的权衡、能量函数中各项参数的影响，以及视频中展示的用户体验。随附视频中的所有实验和演示均采用表 1 中所给出的权重设置。

### 4.1 评价指标

标记误差：我们量化预测得到的标记位置与手工标注的3D标记位置之间的误差，例如手指尖端或指关节的位置。针对这一指标，我们会统计平均标记位置误差或最大标记位置误差低于某一阈值的帧数（更多细节可参见Taylor等人[^2012]或Sharp等人[^2015]的研究）。需要注意的是，真实标记位置的标注本身存在较大误差，因此要实现绝对精确既不可能也不现实。由于我们的算法预测的是手部姿态而非直接预测标记位置，因此必须定义从姿态到对应标记的映射关系。与Tan等人[^2016]的做法类似，我们选取姿态网格中仅四个顶点进行仿射组合运算，从而最好地预测出各序列中按等间距抽取的5%帧内的标记位置。需要指出的是，这种映射方式的灵活性极为有限，这一过程只是将原本需要人工操作且易产生偏差的流程自动化而已。

分类误差：Sharp等人[^2015]借助FINGER-PAINT数据集引入了这一较为少用的指标，该指标基于将像素分类为手部不同部位（如食指、手掌等）的结果。该指标统计的是平均像素分类误差率或最大像素分类误差率低于某一阈值的帧数占比。与基于标记的指标不同，这一指标衡量的是系统完整且准确描述每个像素的能力。因此，该指标也可作为评估所用生成模型有效性的参考依据。

能量：我们还报告了一些关于能量值的结果。由于提升后的能量$E'(\theta, \mathcal{U})$主要受潜变量U当前取值的影响，因此我们采用未提升的能量$E(\theta) = \min_{U} E'(\theta, \mathcal{U})$。其计算方法为执行一次最近点更新：先进行一次离散更新，随后在保持$\theta$固定的前提下进行连续优化以使U最小化。

### 4.2 与现有先进方法的比较

Dexter数据集：在图9中，我们将所提跟踪器在DEXTER数据集上的精度与几种现有先进方法进行了对比[Sridhar等人，2013]。对于所有方法，我们均在Sridhar等人用于误差评估的3,155帧中选取2,931帧这一子集，计算其中标注的手指尖标记的逐帧误差，且结果经过归一化处理，使数据集中7个序列的权重相等。对于我们的跟踪器，我们使用了Tan等人[^2016]所描述的个性化形状模型，该模型适用于Dexter数据集中的单个受试者。

图9显示，在该数据集上，我们的跟踪器精度远高于Sridhar等人[^2015]和Tan等人[^2016]的方法。仅使用CPU的我们的跟踪器所取得的结果，几乎与Tagliasacchi等人[^2015]的结果一致，而后者需要使用高端GPU（他们称使用的是Nvidia GTX980）。从定性结果来看（见附带的视频），我们认为我们的结果以及Tagliasacchi等人[^2015]的结果基本达到了人类标注的精度水平。我们曾试图直接与他们的实现版本进行比较，以验证我们跟踪器在计算需求上的差异，但遗憾的是，很难获取到他们的跟踪器所需的已停产的Senz3D深度摄像头。

在图9中，我们还使用NYU数据集[Tompson等人，2014年]将我们的跟踪器与一系列近期关于手部姿态估计的论文进行了比较。我们仅报告前2,440帧测试序列的结果，以便与Tagliasacchi等人[^2015]进行比较，他们并未在整个测试集上评估其方法。Tompson等人[^2014]最初发布的结果包括

---

![Image](images/6e3b0bd9ad7af4c43f6b705d16a9719efd14ce79a5f8c2a211d0b9a2a5143ae9.jpg)

<div style="text-align: center;">Figure 9: Comparison to the state of the art on DEXTER (top) and NYU (bottom).</div>

![Image](images/ce068625bb75d4b6bd01266c258c31670d3e5df27c596be066dcf9fa6eca679b.jpg)

<div style="text-align: center;">Figure 10: Comparison to the state of the art on FINGERPAINT</div>

手掌上三个位置的定位对多种方法而言都颇具挑战性；为避免这些问题，我们采用十个关节位置（每个手指两个）的共同子集来计算每帧的误差。我们的跟踪器再次针对NYU数据集中出现的唯一受试者使用了个性化模型，具体采用了Tan等人[^2016]描述的方法。在该数据集上，我们的跟踪器显然比其他方法更精确。

在图10中，我们在FINGERPAINT数据集[Sharp等人，2015年]上进行了比较。Tan等人[^2016]通过使用为每位用户定制的精细网格，取得了较Sharp等人更显著的改进。然而，我们使用相同个性化模型得出的结果进一步提升了跟踪的鲁棒性，尽管为了获得可微性我们在生成模型中做出了一些妥协。

### 4.3 计算效率

本文的一项重要贡献在于证明：我们的光滑曲面模型和联合优化策略不仅带来了上述提及的顶尖精度，还能让我们在低计算场景下仍大致保持这一精度。决定模型拟合过程所需计算量的主要有三个变量：(i)数据项中数据点的数量；(ii)用于初始化Levenberg算法的起始点数量；(iii)每个起始点对应的Levenberg迭代次数。

我们发现，当有性能强劲的台式机可用时，我们可以针对192个数据像素运行10个起始点、各执行10次迭代，同时还能预留出整个GPU以及足够的CPU资源来支持视频中展示的高要求虚拟现实体验。这也是我们所有实验采用的默认设置。不过正如我们将看到的那样，通过调整这些参数，我们就能降低跟踪器的运行要求（例如使其在平板电脑上运行——详见视频），且不会大幅牺牲精度。

我们通过与算法的两种不同变体对比，展示了这种性能平缓下降的特性。

- ICP：算法的每次迭代被替换为最近点更新，随后在U固定的条件下对$\theta$进行连续优化。

- 平面模式：我们的光滑细分曲面模型被分段平面的三角曲面取代。也就是说，我们将$S(u;\theta) \in \mathbb{R}^3$设为u所在三个顶点的线性组合。

我们在图11a中使用DEXTER数据集上的最大误差指标，将我们的方法与ICP和平面模式变体进行了比较，展示了每帧结果和跟踪结果。每帧结果显示我们的方法相比其他方案有显著提升。这对于现实应用中普遍存在的快速运动过程中的姿态恢复至关重要，如§4.6中所介绍的场景。在跟踪结果中这种优势有所减弱，因为此时我们较大的收敛域重要性降低。

为了展示我们在牺牲少量精度的前提下降低计算量的能力，我们研究了各种影响计算成本的参数。图11b显示，我们的精度对所考虑的像素数量几乎不敏感。在图11c和11d中，我们展示了仅需远少于ICP和Planar算法的迭代次数与起始点，就能获得更高的精度。我们认为这得益于我们能量函数的平滑性，以及对手部姿态和对应点的联合优化——这种优化能够利用表面部分的旋转来配合对应点的滑动调整（见图6）。

### 4.4 能量项的评估

我们的能量函数包含多种项，因此有必要说明引入每一项的原因，以及我们是如何确定适用于所有数据集的权重集的。这些权重是通过初步的参数扫描，结合能改善实时手部追踪器“手感”的调整而确定的。出于对良好使用体验的追求，加之我们对所有数据集和摄像头采用同一套权重，我们认为所呈现的结果并非过拟合所致。

在图12中，我们利用DEXTER逐一关闭不同的能量项进行实验。为避免上一帧的初始状态掩盖细节，我们仅使用重新初始化机制（关于跟踪过程中$E_{temp}$的效果，见图11a）。除数据项中的位置分量$_{x}$外，对模型拟合精度影响最大的项是姿态先验项和法向量分量数据$_{n}$。其他项在此指标下产生的差异较小；不过我们发现这些项能提升追踪器的主观使用体验，而定量指标未必能准确反映这一点。

---

![Image](images/3688b9f07d983462d92cf25010b730efb562c113c9c445a552f9c148f1faa7e8.jpg)

<div style="text-align: center;">(a) Accuracy on per-frame fitting (left) and tracking (right).</div>

![Image](images/36c4c88e8e57c400ff9ec39d949e1cdad4e3834ae0331d5a828fb4a8bd5ca0f0.jpg)

<div style="text-align: center;">(b) Effect of the number of data points N on accuracy.</div>

![Image](images/24c80d05d78b4f57816c3a98763e608dcb23b6e89c2e1568928d63e3a43826f5.jpg)

<div style="text-align: center;">(c) Effect of the number of iterations on energy and accuracy.</div>

![Image](images/94cdae9ccb24058b8e178fe9b50e20e343440064d9ebaa0dc58269e29db3ca97.jpg)

<div style="text-align: center;">(d) Effect of the number of starting points on energy and accuracy.</div>

<div style="text-align: center;">Figure 11: Effect of alternative model fitting strategies and optimizer configurations when fitting to DEXTER. Apart from the right-hand plot in (a), every plot shows the results of fitting to each frame individually.</div>

![Image](images/c298f6292c3d107f44f608a319f4c9b1fdd79bf0b3edaae5c73e2a9f4bb742f8.jpg)

<div style="text-align: center;">Figure 12: The effect of setting the weight for each non-temporal term of our energy function E to zero when fitting to each frame of DEXTER without tracking, compared to the accuracy with all terms included. See Section 3.2 for a description of each term.</div>

![Image](images/59ff3437389d028d7c9e64dd575eefb56cf567df430da3574854ffb386e6d0a0.jpg)

<div style="text-align: center;">Figure 13: Our reinitializer is able to estimate reasonable hand poses for many configurations (top two rows). The bottom two rows show failure cases.</div>

![Image](images/e94074540b698c15f02a43706850bc70b2ae00f8f53a5f5aef486fddcaa86262.jpg)

<div style="text-align: center;">Figure 14: Comparison of reinitializer strategies on DEXTER.</div>

### 4.5 重新初始化机制

如图13所示，我们的重新初始化机制能够为多种多样的手部姿态估算出合理的初始值。最主要的误差来源是姿态被翻转的情况，例如将掌心朝前的情况误判为掌心朝后。

为了验证我们重新初始化机制的精确度，我们将其与Sharp等人提出的重新初始化机制[^2015]进行了对比。后者结合了判别式蕨类集合[Krupka et al. 2014]与决策丛林[Shotton et al. 2013]技术。无论初始值的数量多少，图14都显示出显著的改进效果。仅使用9个初始值（这是我们实验结果采用的实时设置）时，我们得到的最佳初始值到真实位置的平均距离，比Sharp等人[^2015]方法的最佳初始值近17毫米。我们的重新初始化机制运行速度也与Sharp等人[^2015]的方法相当。

### 4.6 应用体验

我们在附带的视频以及图1和图2中展示了多种多样化的用户体验原型。这些原型包括离散手势识别（如通过拇指点击来启用或禁用功能）、将手部动作映射到新的3D手部虚拟形象、绘画、指物、3D摇杆控制，以及令人兴奋的基于物理的交互前沿应用：钢琴演奏与原型打字、通过连接在手指上的虚拟弦线操控木偶、3D模型变形、唱片刮擦，以及通过纯物理交互方式操作3D图形用户界面。我们还展示了名为“Huge”的原型游戏体验演示，该游戏融合了多种……

---

将各种交互隐喻整合为连贯的体验。这些体验大多是在Unity中开发的，连接到Oculus DK2虚拟现实头盔，并使用Kinect V2摄像头作为输入设备。

有几个方面使得这些体验有别于现有成果。首先是其数量和多样性：由于我们的系统具有极高的精度和稳定性，因此组装每个体验都极为轻松。例如，对于没有手势追踪技术背景的设计师而言，创建打字体验仅需不到一小时。我们能够在距离摄像头数米远的地方可靠地追踪手部动作，从而实现了比通常情况更大的工作空间（比如与Leap Motion传感器相比），这意味着用户因手部移出视野而导致体验中断的风险更低。最后，“Huge”演示版首次展示了连贯的端到端用户体验，并证明了我们的系统能够在长达数分钟的游戏过程中可靠地区分多种交互方式。

关于虚拟物体操控的一个持续关注点是触觉反馈的重要性。我们认为有几种解决方法。首先，借助虚拟现实头盔提供的立体视差线索，可以轻松确定手相对于虚拟物体的位置，随后通过视觉和听觉提示来向用户传达交互事件。我们惊讶于这种方法的效果之好以及其自然程度。其次，可以设计体验流程，使可操作区域较薄，从而促使用户做出捏合动作。最后，空中触觉研究仍在持续推进 [Monnai et al. 2014; Ultrahaptics Ltd 2013]。

## 5 结论

我们提出了一种用于人体手部精细关节追踪的新系统。该方法将平滑、可微分的曲面模型与一种新的能量函数相结合，该函数能够同时对姿态和对应关系进行持续优化。这种优化具有较大的收敛域，因此只需探索较少的初始点。此外，尽管每次迭代的计算成本可能较高，但其收敛速度却远快于ICP等交替算法。这些技术突破带来了更高的定量精度，在多个数据集上的表现均优于多种竞争系统，同时计算成本更低。最终实现的系统能在轻量级设备上实时运行，无需依赖GPU计算。最后，我们展示了极具吸引力的用户体验原型，展现了关节手部追踪技术所能实现的广阔前景。我们认为，我们的方法在将可变形曲面模型拟合到观测数据这一问题上迈出了重要一步。

## 致谢

本文在技术和设计领域均取得了进展，这两者的共同演进对构建出色的系统至关重要。在工程方面，Taylor、Bordeaux、Cashman、Sharp、Wood、Khamis、Fitzgibbon和Shotton贡献了实现细分曲面追踪器的数学和技术成果；Keskin、Valentin、Kohli和Izadi则贡献了基于机器学习的前端技术，对其先前的工作 [Valentin et al. 2016] 进行了改进。在设计方面，Soto、Sweeney、Corish和Banks构思并构建了诸多核心交互方式，而Soto、Topalian和Luff则设计并开发了完整的可玩游戏概念“Huge”。我们还要感谢Federica Bogo、Alina Kuznetsova、Ian Ormesher、Abigail Sellen、Srinath Sridhar和Richard Stebbing，感谢他们的有益讨论、技术协助和工程支持。

## 参考文献

3GEAR SYSTEMS INC，2013年。手势识别器。<http://threegear.com>，1月。

ATHITSOS, V.与SCLAROFF, S.，2003年。从杂乱图像中估计三维手部姿态。载于CVPR会议论文集，第2卷，II–432页。

BALLAN, L.、TANEJA, A.、GALL, J.、GOOL, L. V.与POLLEFEYS, M.，2012年。利用判别性显著点捕捉手部动作的运动轨迹。载于ECCV会议论文集，第640–653页。

BRAY, M.、KOLLER-MEIER, E.与VAN GOOL, L.，2004年。用于三维手部追踪的智能粒子滤波技术。载于自动人脸与手势识别会议论文集，第675–680页。

DE LA GORCE, M.、FLEET, D. J.与PARAGIOS, N.，2011年。基于模型的单目视频三维手部姿态估计。IEEE PAMI期刊，第33卷第9期，第1793–1805页。

DIPIETRO, L.、SABATINI, A. M.与DARIO, P.，2008年。基于手套的系统及其应用综述。IEEE系统、人与控制论C部分：应用与评论期刊，第38卷第4期，第461–482页。

EROL, A.、BEBIS, G.、NICOLESCU, M.、BOYLE, R. D.与TWOMBLY, X.，2007年。基于视觉的手部姿态估计：综述。CVIU期刊，第108卷第1-2期，第52–73页。

FLEISHMAN, S.、KLIGER, M.、LERNER, A.与KUTLIROFF, G.，2015年。ICPIK：基于逆运动学的关节ICP算法。载于CVPR研讨会论文集，第28–35页。

GEMAN, S.与MCCLURE, D. E.，1987年。断层成像重建的统计方法。国际统计学会公报，第52卷第4期，第5–21页。

GUZMÁN-RIVERA, A.、KOHLI, P.、GLOCKER, B.、SHOTTON, J.、SHARP, T.、FITZGIBBON, A. W.与IZADI, S.，2014年。用于相机重定位的多输出学习技术。载于CVPR会议论文集，第1114–1121页。

HEAP, T.与HOGG, D.，1996年。基于可变形模型的三维手部追踪研究。载于自动人脸与手势识别会议论文集，第140–145页。

英特尔公司，2016年。RealSense SDK。<http://software.intel.com/realsense>，1月。

JACOBSON, A.、DENG, Z.、KAVAN, L.与LEWIS, J.，2014年。蒙皮技术：实时形状变形。载于ACM SIGGRAPH 2014课程，#24。

KESKIN, C.、KIRAC, F.、KARA, Y. E.与AKARUN, L.，2012年。利用多层随机决策森林进行手部姿态估计与形状分类。载于ECCV会议论文集，第852–863页。

KHAMIS, S.、TAYLOR, J.、SHOTTON, J.、KESKIN, C.、IZADI, S.与FITZGIBBON, A.，2015年。从深度图像中学习高效的手部形状变化模型。载于CVPR会议论文集，第2540–2548页。

KIM, D.、HILLIGES, O.、IZADI, S.、BUTLER, A. D.、CHEN, J.、OIKONOMIDIS, I.与OLIVIER, P.，2012年。Digits：利用腕戴式无手套传感器实现任意场景下的自由手绘3D交互。载于UIST会议论文集，第167–176页。

KRUPKA, E.、BAR HILLEL, A.、KLEIN, B.、VINNIKOV, A.、FREEDMAN, D.与STACHNIAK, S.，2014年。用于手部姿态识别的判别性蕨类集成算法。载于CVPR会议论文集，第3670–3677页。

Leap Motion Inc.，2013年。动作控制器。<http://leapmotion.com/product>，1月。

Leap Motion Inc.，2015年。Orion。<http://developer.leapmotion.com/orion>，2月。

LI, P.、LING, H.、LI, X.与LIAO, C.，2015年。利用带分割索引点的随机决策森林进行三维手部姿态估计。载于ICCV会议论文集，第819–827页。

---

LOOP, C. T.，1987年。基于三角形的平滑细分曲面。犹他大学硕士论文。

LOPER, M.、MAHMOOD, N.、ROMERO, J.、PONS-MOLL, G.与BLACK, M. J.，2015年。SMPL：一种蒙皮化多人线性模型。ACM图形学汇刊，第34卷第6期，#248。

马克里斯, A.、基里亚齐斯, N. 和阿尔吉罗斯, A. 2015年。用于3D手部追踪的分层粒子滤波技术。载于CVPR研讨会论文集，第8–17页。

梅拉克斯, S.、凯塞尔曼, L. 和奥尔斯坦, S. 2013年。基于动力学的3D骨骼手部追踪技术。载于2013年图形界面会议论文集，第63–70页。

米切尔, D. P. 1991年。分布式光线追踪中的光谱最优采样技术。载于SIGGRAPH会议论文集，第157–164页。

门内, Y.、长谷川, K.、藤原, M.、吉野, K.、井上, S. 和筱田, H. 2014年。HaptoMime：与悬浮虚拟屏幕的空中触觉交互技术。载于UIST会议论文集，第663–667页。

内韦罗娃, N.、沃尔夫, C.、内布特, F. 和泰勒, G. 2015年。通过弱监督学习丰富的中间表示来实现手部姿态估计。arXiv预印本1511.06728。

奥伯韦格, M.、沃尔哈特, P. 和勒佩蒂, V. 2015年。训练用于手部姿态估计的反馈循环。载于ICCV会议论文集，第3316–3324页。

奥伊科诺米迪斯, I.、基里亚齐斯, N. 和阿尔吉罗斯, A. 2011年。利用Kinect实现基于模型的高效3D手部关节追踪技术。载于BMVC会议论文集，第101.1–101.11页。

波耶尔, G.、罗迪塔基斯, K.、舒尔特, S.、米歇尔, D.、比绍夫, H. 和阿尔吉罗斯, A. A. 2015年。利用不确定性进行混合式一次性3D手部姿态估计。载于BMVC会议论文集，第182.1–182.14页。

钱晨、孙晓、魏勇、唐欣和孙杰 2014年。基于深度图像的实时且鲁棒的手部追踪技术。载于CVPR会议论文集，第1106–1113页。

雷格, J. M. 和金出, T. 1994年。高自由度关节结构的视觉追踪技术：以人手追踪为例。载于ECCV会议论文集，第35–46页。

夏普, T.、凯斯金, C.、罗伯逊, D.、泰勒, J.、肖顿, J.、金东、雷曼, C.、莱希特, I.、维尼科夫, A.、魏勇、弗里德曼, D.、科尔希, P.、克鲁普卡, E.、菲茨吉本, A. 和伊扎迪, S. 2015年。精准、鲁棒且灵活的实时手部追踪技术。载于CHI会议论文集，第3633–3642页。

肖顿, J.、菲茨吉本, A.、库克, M.、夏普, T.、菲诺乔, M.、摩尔, R.、基普曼, A. 和布莱克, A. 2011年。从单张深度图像中实时识别人体部位姿态。载于CVPR会议论文集，第1297–1304页。

肖顿, J.、夏普, T.、科尔希, P.、诺沃津, S.、温恩, J. 和克里米尼西, A. 2013年。决策丛林：紧凑且功能丰富的分类模型。载于NIPS会议论文集，第234–242页。

斯里达尔, S.、乌拉斯维塔, A. 和特奥博尔特, C. 2013年。利用RGB和深度数据实现交互式无标记关节手部运动追踪。载于ICCV会议论文集，第2456–2463页。

斯里达尔, S.、罗丁, H.、塞德尔, H.-P.、乌拉斯维塔, A. 和特奥博尔特, C. 2014年。利用各向异性高斯函数之和模型实现实时手部追踪。载于3DV会议论文集，第319–326页。

斯里达尔, S.、穆勒, F.、乌拉斯维塔, A. 和特奥博尔特, C. 2015年。利用检测引导的优化技术实现快速且鲁棒的手部追踪。载于CVPR会议论文集，第3213–3221页。

斯滕格, B.、门多萨, P. R. 和奇波拉, R. 2001年。基于模型的3D关节手部追踪技术。载于CVPR会议论文集，第2卷，II–310页。

孙晓、魏勇、梁森、唐欣和孙杰 2015年。级联式手部姿态回归技术。载于CVPR会议论文集，第824–832页。

《ACM图形学汇刊》第35卷第4期，文章编号143，出版日期：2016年7月

塔利亚萨基, A.、施罗德, M.、特卡赫, A.、鲍阿齐兹, S.、博奇, M. 和保利, M. 2015年。用于实时手部追踪的鲁棒关节ICP算法。《计算机图形学论坛》第34卷第5期，第101–114页。

谭D. J.、卡什曼T.、泰勒J.、菲茨吉本A.、塔洛D.、哈米斯S.、伊扎迪S.以及肖顿J.，2016年。贴合如手套：快速且可靠的手部形状个性化。载于CVPR会议论文集。

唐D.、余T.-H.以及金T.-K.，2013年。利用半监督的传导式回归森林实现实时关节手部姿态估计。载于ICCV会议论文集，第3224–3231页。

唐D.、泰勒J.、科尔希P.、凯斯金C.、金T.-K.以及肖顿J.，2015年。打开黑盒：用于估计人手姿态的分层采样优化方法。载于ICCV会议论文集，第3325–3333页。

泰勒J.、肖顿J.、夏普T.以及菲茨吉本A.，2012年。维特鲁威流形：基于单次拍摄的人体姿态估计中的密集对应关系推断。载于CVPR会议论文集，第103–110页。

泰勒J.、斯特宾R.、拉马克里希纳V.、凯斯金C.、肖顿J.、伊扎迪S.、赫兹曼A.以及菲茨吉本A.，2014年。基于单目深度序列的用户特定手部建模。载于CVPR会议论文集，第644–651页。

特贾尼A.、唐D.、库斯库里达斯R.以及金T.-K.，2014年。用于3D物体检测与姿态估计的隐类霍夫森林。载于ECCV会议论文集，第462–477页。

汤普森J.、斯坦M.、勒昆Y.以及佩尔林K.，2014年。利用卷积网络实现人手姿态的实时连续恢复。ACM图形学汇刊，第33卷第5期，#169。

特里格斯W.、麦克劳克兰P.、哈特利R.以及菲茨吉本A.，2000年。捆绑调整——现代综述。载于《视觉算法：理论与实践》，LNCS，第298–372页。

齐奥纳斯D.、巴兰L.、斯里坎塔A.、阿庞特P.、波勒费斯M.以及加尔J.，2015年。利用判别性显著点和物理模拟捕捉动作中的手部。arXiv预印本1506.02178。

Ultraleap有限公司，2013年。触觉系统。<http://ultrahaptics.com>，1月。

瓦伦丁J.、戴A.、尼斯纳M.、科尔希P.、托尔P.、伊扎迪S.以及凯斯金C.，2016年。学习在能量景观中导航。arXiv预印本1603.05772。

维森特S.以及阿加皮托L.，2013年。气球形状：从图像中重建并变形具有体积的物体。载于3DV会议论文集，第223–230页。

王R. Y.以及波波维奇J.，2009年。利用彩色手套实现实时手部追踪。ACM图形学汇刊，第28卷第3期，#63。

王R.、帕里斯S.以及波波维奇J.，2011年。6D手部模型。载于UIST会议论文集，第549–558页。

王Y.、闵J.、张J.、刘Y.、徐F.、戴Q.以及柴J.，2013年。通过复合运动控制实现基于视频的手部操作捕捉。ACM图形学汇刊，第32卷第4期（7月），43:1–43:14。

吴Y.以及黄T. S.，2000年。独立于视角的手部姿态识别。载于CVPR会议论文集，第2卷，第88–94页。

吴Y.、林J. Y.以及黄T. S.，2001年。捕捉自然的手部关节运动。载于ICCV会议论文集，第2卷，第426–432页。

徐C.以及程L.，2013年。从单张深度图像高效估计手部姿态。载于ICCV会议论文集，第3456–3462页。

扎克C.，2014年。重新审视鲁棒的捆绑调整。载于ECCV会议论文集，第772–787页。

赵W.、柴J.以及徐Y.-Q.，2012年。结合基于标记的动作捕捉技术与RGB-D相机以获取高保真手部运动数据。载于计算机动画研讨会论文集，第33–42页。
