
# 基于光学标记点的在线手部追踪技术：深度标签法

韩尚辰，Facebook Reality Labs

刘贝贝，Facebook Reality Labs

罗伯特·王，Facebook Reality Labs

叶雨婷，Facebook Reality Labs

克里斯托弗·D·特威格，Facebook Reality Labs

肯里克·金，Facebook Reality Labs

![Image](images/2b4629d55f5ba8e257d35b024b6d94613af432d59fe32f60bf94cffe1a79793f.jpg)

<div style="text-align: center;">Fig. 1. Snapshots of our online marker-based hand tracking system on sequences with two-handed and hand-object interactions. We demonstrate a novel marker-labeling and tracking system that enables fully-automatic, real-time estimation of hand poses in challenging interaction scenarios with frequent occlusions. Markers labeled as left hand and right hand are rendered as orange and blue spheres respectively, while markers associated with predefined rigid bodies are rendered as green spheres.</div>

基于光学标记点的动作捕捉技术是获取用于特效、电影和视频游戏的高保真人体动画的主流方式。但由于难以自动识别（或标注）外观相似的手指上的相同标记点，动作捕捉技术在人手领域的应用十分有限。我们提出了一种将标注问题转化为关键点回归问题的技术方案，该方案适合用卷积神经网络来求解。实验证明，我们的标注方案能够有效应对遮挡、伪标记点、手部形状变化，甚至是双手运动或手持物体等复杂情况。该技术既适用于稀疏标记点集，也适用于密集标记点集，且能实时运行，从而支持在虚拟现实环境中进行高保真手部追踪及手部交互原型设计。

CCS概念：• 计算方法 → 建模与仿真；机器学习：

其他关键词：动作捕捉、手部追踪、标记点标注

## ACM参考格式

韩尚辰、刘贝贝、罗伯特·王、叶雨婷、克里斯托弗·D·特威格、肯里克·金。2018年。基于光学标记点的在线手部追踪技术：深度标签法。《ACM图形学汇刊》第37卷第4期，文章编号1（2018年8月），共10页。<https://doi.org/10.1145/3197517.3201399>

## 1 引言

光学动作捕捉技术是获取高精度、高帧率运动数据的主流方法。得益于商业系统提供的亚毫米级精准追踪能力，且帧率最高可达2000Hz，视觉特效、游戏、VR/AR、可用性研究以及生物力学等领域得以发展相关应用。值得注意的是，实时全身动作捕捉技术已经为游戏和电影领域的虚拟制作提供了支持[Antoniades 2016]。然而，针对精细且灵活的指部运动，即便是在复杂的捕捉环境中，目前也没有任何商业或学术软件能够产出可与之媲美的实时追踪结果。

实时捕捉面临的挑战在于识别或标注外观相同的被动标记点。虽然使用主动标记点可以解决标注问题，但这类标记点配备的有线电子元件或体积庞大的传感器使其并不受欢迎，而且主动标记系统能同时追踪的标记点数量也有限。在全身追踪中，常见的标记点标注解决方案是先从预定义的T型姿势或A型姿势开始，再依靠高帧率追踪来逐步传递标签信息。但当出现标记点被遮挡、因杂光反射产生的伪标记点，或是需要捕捉细微关节运动而使用的密集标记点集时，这种方案就会失效。对于身体运动而言，通过精心布置摄像头和标记点布局，可以将追踪失败的情况降至最低。遗憾的是，由于手指运动具有关节复杂度高、外观相似度高且尺寸小的特点，因此会带来额外的挑战。

---

尤其是，即使在握拳等常见姿势下，频繁出现的遮挡现象也是不可避免的。

近期的研究致力于降低手部标记的密度并优化标记布局，以消除标签歧义并尽量减少对姿态重建的影响[Alexanderson等人，2017年；Schröder等人，2015年；Wheatland等人，2013年]。然而，使用稀疏标记集的方法依赖先验知识来推测手指运动的缺失信息。这类方法尤其容易受到遮挡标记或伪标记的干扰。尽管先验知识可以规范结果，但可能导致动画响应迟缓，或者其精度不足以满足实时操作任务的需求。

我们提出了一种技术，在稀疏标记集以及能够捕捉手部全部26个自由度的密集标记集方面，均推动了标注与跟踪技术的先进水平。我们利用卷积神经网络（CNN）根据动作捕捉系统检测到的3D标记位置来预测标签。值得注意的是，我们将该问题转化为2D图像上的关键点估计问题，而CNN在该领域已被证明特别有效。为满足高质量真实数据的需求，我们在训练阶段采用了精心设计的合成数据增强流程（第3节）。运行时，每当需要重新初始化标记跟踪时，CNN的输出便用于初始化标签（第4.2节）。这些在线标签使我们能够实时重建手部姿态（第4.3节）。尽管我们使用合成数据训练网络，但结果表明它能很好地泛化到真实数据，包括训练集中未出现的各种新型手部比例和活动。此外，我们证明该网络对物体和环境交互过程中产生的遮挡及伪标记具有鲁棒性（见图1）。合成数据的灵活性还使我们能够测试不同的标记布局。结果显示，CNN标注技术在类似Alexanderson及其同事所使用的稀疏标记集上同样表现优异[^2017]。虽然我们的标记标注步骤并不针对特定用户，但我们可在运行时交互式地校准用户的标记配置，以实现最高质量的跟踪效果（第4.5节）。我们通过捕捉诸如物体操作、手与手的交互、舞蹈和演奏乐器等精彩动作，证明了实时标注与跟踪系统的鲁棒性。尽管该系统并非面向消费者，但它可作为“时光机”，用于研究未来产品中AR/VR交互原型的可用性，并提供即时反馈。此外，我们的自然手-手及手-物交互数据可渲染为深度图或RGB图像，用于训练解决无标记手部跟踪问题的深度学习模型。我们公布了训练数据集及训练好的卷积神经网络，以支持后续研究。$^{1}$

## 2 相关工作

为动作捕捉标注相同的标记仍是计算机视觉、计算机图形学和机器人学领域的热门课题。Ringer和Lasenby [2002b]通过聚类帧间标记对之间的距离来生成标记标签假设，并在贝叶斯多假设跟踪框架中传播这些假设。Meyer等人[^2014]要求用户先摆出T字姿势，以便从检测到的主轴中提取手臂和腿部的标记标签。Schubert及其同事[^2015]放宽了对T字姿势的要求，转而匹配一个包含先前观测到的姿势的大型数据库。Schubert等人[^2016]进一步拓展了这项工作，以支持对受试者骨骼的自动校准。

为了捕捉手部的完整动作，每个手指上需要设置多个标记点，手部背面至少需要三个标记点 [Kitagawa和Windsor 2008]。然而，如此密集的标记点集很难进行区分，尤其是在较大空间内或与全身追踪技术结合使用时更是如此 [Wheatland等人 2015]。因此，近期的研究开始探索使用稀疏标记点集 [Alexanderson等人 2016；Schröder等人 2015；Wheatland等人 2013]，这类方法试图仅用三个标记点就捕捉到五根手指多达20个自由度的运动信息。其中，Alexanderson等人 [^2016] 特别将Ringer及其同事[2002a]提出的多假设追踪方法拓展应用于稀疏标记点集。[Maycock等人 2015]和[Aristidou与Lasenby 2010]则分别利用逆向运动学技术实现实时追踪以及填补数据空缺。Maycock等人 [^2015] 在每一帧中都会运用匈牙利算法进行标记，但这会导致因前一帧错误标记或遮挡现象引发的恢复延迟。其后续研究 [Schröder等人 2017] 则利用3D扫描仪获取密集的点云数据来进行手部模型拟合和标记校准。

我们的方法不仅推动了稀疏标记点集标注技术的最新进展，还直接解决了密集标记点集带来的歧义性问题。虽然稀疏标记点集可用于生成逼真的手部交叠动画 [Kang 2012]，但密集标记点集能够捕捉到手指姿态和运动中的更多细微变化，这些变化可用于驱动物理物体的实时灵巧操控以及交互原型设计任务。

关于无标记的手部运动追踪，已有大量研究成果，这些研究要么基于深度相机 [Oikonomidis等人 2012；Taylor等人 2016；Tkach等人 2016；Tompson等人 2014]，要么基于RGB相机 [Simon等人 2017]。尽管高端3D扫描仪或深度相机能够以高帧率生成高保真度的几何数据（如[Taylor等人 2017]所述），但与基于标记的系统相比，它们成本更高且更难安装和使用。此外，这类无标记系统目前还无法达到亚毫米级的精度，也无法像光学动作捕捉系统那样追踪复杂的手部运动，而这些正是我们实现复杂任务及细微动作的实时灵巧手部交互所必需的。

卷积神经网络在图像分类 [Krizhevsky等人 2012]、物体检测 [Ren等人 2015] 以及语义分割 [He等人 2017] 领域均取得了世界领先的成果。我们将标记点标注问题转化为关键点估计问题，从而借助该领域的最新进展来解决问题。

## 3 深度标注

在我们提出的系统中，每只手套上固定了19个标记点（见图2）。这些标记点的几何结构通过手部的运动学结构隐式地编码了其对应的标签。Alexanderson等人 [^2016] 利用从手部局部坐标系下标记点空间分布中拟合出的高斯混合模型来解码这些信息。我们提出将3D标记点标注（分类）问题转化为图像关键点回归问题。

---

![Image](images/70550e4f44b576bf0b5964571dbcd629626ad487046fa3d8bb1f980864888ffc.jpg)

<div style="text-align: center;">Fig. 2. Dense marker set layouts. We attach 19 adhesive reflective markers on each off-the-shelf golf golve. Three markers are placed at the back of the glove, and a marker is attached to the center of each finger bone segment. We build five pairs of gloves of different sizes to capture the full range of adult hand sizes. These gloves are easy to put on and remove, which streamlines capture preparation.</div>

### 3.1 利用卷积神经网络标注标记点

深度神经网络已被广泛应用于从图像识别[Krizhevsky等人，2012]到自动翻译[Wu等人，2016]等各类问题。然而，将传统架构应用于标记点标注问题并非易事。直接从三维标记点位置的向量回归到标签时，会对向量中标记点的排序十分敏感。尽管近期有关于稀疏体素表示的研究，但体积方法和三维卷积在实时评估中仍面临计算成本高、内存利用率低的问题[Riegler等人，2017]。一个关键的发现是：我们可以通过二维图像投影来捕捉标记点之间的空间关系，而这类关系恰好能被深度卷积结构有效处理。

这类问题能够借助卷积神经网络高效解决。随后，通过简单的二分匹配方法，将估计出的关键点与实际的三维标记点对应起来。

因此，为解决标注问题，我们首先通过正交相机将输入的三维点云渲染成稀疏的$52 \times 52$深度图像（见图3），该相机的主轴穿过点云中心。我们对相机进行各向同性缩放，使投影后的点能落在图像的10%边距范围内。“深度”（“z”）值会在[0.1, 1.0]区间内归一化，随后被渲染为像素强度。关键在于，我们通过将标记点的相对深度进行铺展，保留了关于标记点的三维信息，从而有效生成标记点的“稀疏”深度图像。接着，我们将这张图像输入常规的VGG风格神经网络[Simonyan和Zisserman，2015]，该网络包含多层$3 \times 3$卷积层，之后是全连接层，最终按顺序输出手部上的19个三维标记点位置（见表1）。训练期间，正交相机的主轴会被随机选取；在运行时标注阶段，我们会生成10个随机主轴，并选择空间分布最广的那个（即能使二维图像位置的协方差矩阵特征值最大化的主轴）。

为了将这些结果映射回原始标记点，我们需解决二分匹配问题。给定神经网络的输出$y_{1...19}$，我们将其与原始标记点位置$x_{i...n}$进行匹配。

 $$ \min_{\mathcal{M}}\sum_{j}\|y_{j}-x_{\mathcal{M}(j)}\|_{2} $$

![Image](images/1da6d128a583188bc2749498e807d1950b5e9686c84f493f7b160127f03ee48f.jpg)

<div style="text-align: center;">Fig. 3. CNN deep labeling. A list of 3D marker locations are fed into the labeling system (a). They are mean centered and rendered as a depth image (b). The CNN takes the depth image as input and outputs (in order) the 193D marker locations on the hand. Each marker is color coded by its entry in the marker set in (c). Bipartite matching is used to associate the input markers to their corresponding marker labels.</div>

这个问题可转化为最小费用流问题，其中边的权重代表距离，可通过标准的线性规划算法求解[Cormen等人，2009]。

### 3.2 训练数据

使用深度网络进行监督学习时，最大的瓶颈在于获取准确、多样且充足的训练数据。为避免对密集标记集进行繁琐且易出错的手动标注，我们采用了合成数据。得益于Tompson及其同事[^2014]在基于深度输入实现实时手部姿态恢复方面的研究成果，我们能够生成包含各种合法手部姿态的大型数据集。参照预定义手部模型上的标记点位置（见图2），便可生成具有多样手部姿态的合成标注数据集。在我们的框架中，我们使用Kinect相机采集五名受试者做出的各种手部动作，涵盖单手的所有自由度，比如手语中的手势。共有170330帧手部姿态数据被用于训练。

<div style="text-align: center;">Table 1. Structure of our neural network. Conv is short for spatial convolution, BN is the batch normalization layer, ReLU is the activation function  $f(x) = \max(0, x)$ and FC is a fully connected layer. The input of our network is a  $52 \times 52$ depth image, and the output is a  $19 \times 3$ matrix which contains the predictions of the 19 3D marker locations on the hand model.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Layer id</td><td style='text-align: center; word-wrap: break-word;'>Type</td><td style='text-align: center; word-wrap: break-word;'>Filter shape</td><td style='text-align: center; word-wrap: break-word;'>Input size</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>Conv + BN + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>$1 \times 52 \times 52$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Conv + BN + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 50 \times 50$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Maxpool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 48 \times 48$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Conv + BN + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>$64 \times 24 \times 24$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>Conv + BN + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 22 \times 22$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Conv + BN + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 3 \times 3$</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 20 \times 20$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Maxpool</td><td style='text-align: center; word-wrap: break-word;'>$2 \times 2$</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 18 \times 18$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Reshape</td><td style='text-align: center; word-wrap: break-word;'>N/A</td><td style='text-align: center; word-wrap: break-word;'>$128 \times 9 \times 9$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>FC + ReLU</td><td style='text-align: center; word-wrap: break-word;'>$2048 \times 10368$</td><td style='text-align: center; word-wrap: break-word;'>10368</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>FC</td><td style='text-align: center; word-wrap: break-word;'>$2048 \times 57$</td><td style='text-align: center; word-wrap: break-word;'>2048</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>Reshape</td><td style='text-align: center; word-wrap: break-word;'>N/A</td><td style='text-align: center; word-wrap: break-word;'>57</td></tr></table>

### 3.3 鲁棒性

在实际应用中，我们需要具备应对真实世界动作捕捉中出现的伪影的能力。首先，捕捉空间中常见的杂散反射现象便是其中之一。

---

这可能会导致系统识别出额外的虚假“幽灵”标记。其次，手套上的标记在所有摄像头视角中可能会被遮挡，从而无法重建其位置。此外，人类手部形状和大小存在显著差异，这会影响最终的标记布局。

为了确保对这些因素具有鲁棒性，我们通过多种随机源来增强合成训练数据。首先，为确保对手部形状变化的鲁棒性，我们在训练期间为每个标记位置添加随机的3D抖动。此外，在每一步训练中，我们会从每个训练样本中随机删除0到5个标记。最后，我们还会添加0到2个随机的幽灵标记。标记的省略或添加是随机进行的，分别用于模拟遮挡现象和幽灵标记。这种数据增强对网络鲁棒性的影响可在表2中看到。

## 4 实时手部追踪

### 4.1 概述

我们采用了现成的16摄像头Optitrack动作捕捉系统[Opt 2018]来进行标记追踪（见图5）。该系统被配置为以120Hz的频率提供标记位置流$P^t \in R^{3 \times n}$、$t \in \{t_0, t_1 \}$，其中n表示当前帧中观测到的标记数量。只要标记能被持续追踪，就会被赋予唯一的ID；如果标记短暂消失，重新出现时会获得新ID。

我们采用基于模型的追踪方法，根据标记标签来重建手部姿态。我们的模型由运动学手部骨架H、网格模型S以及静止姿态下的标记位置$m_{i}$组成，用于$i = 1 \ldots n$。我们的手部模型H有26个自由度（DOF），其中前6个DOF代表全局变换$\{R, t\}$，每个手指有4个旋转自由度。我们采用标准的线性混合蒙皮/包裹方法。给定手部姿态$\theta$、静止姿态位置$v_{k}$以及一组骨骼权重$\omega_{ik}$，我们就可以利用以下公式将静止网格上的顶点转换到世界空间：

 $$ L B S(\theta,m_{k})=\sum_{i}\omega_{i k}*T_{i}(\theta)*\left(T_{i}^{\mathrm{r e s t}}\right)^{-1}*v_{k} $$

这里，$T_i^{\text{rest}}$是静止空间中的骨骼变换，而$T_i$可以根据手部姿态$\theta$计算得出。我们以相同的方式对标记进行参数化$m = \{\omega, v\}$，以便将标记转换到全局空间。

### 4.2 在线标记标注

算法的第一阶段是将标记分组为簇，每个簇可能代表一只手。我们采用简单的凝聚式聚类方法，迭代地合并簇，前提是：(a) 簇中心之间的距离不超过200毫米；(b) 合并后的簇包含的标记数不超过22个。包含14到21个标记的簇被视为可能的手部，我们会随机为簇分配左手/右手属性。随后，得到的左右手簇会被送入深度标注流程（第3节），再进入逆运动学求解器。接着，我们会对重建结果进行某些质量指标评估（第4.4节）；如果结果被认为合格，就可以直接使用动作捕捉系统提供的标记ID进行追踪，无需再进行聚类和深度标注步骤。

需要注意的是，如果在聚类阶段左右手属性被错误分配，那么重建质量测试就会失败（第4.4节），算法会在下一帧重新尝试；由于系统运行频率达到120fps，因追踪初始阶段手部属性错误而导致的少数几帧缺失，用户几乎察觉不到。

在跟踪过程中，有些标记点难免会被遮挡，之后会以不同的ID重新出现在场景中。当新标记点出现时，我们会同时运行两个重新标注流程。第一个流程中，我们仅根据上一帧的手部姿态来推测每个缺失标记点的预期位置，并将距离其预期位置小于15毫米的标记点予以分配。第二个流程中，我们重新运行深度学习标注流程，并使用匹配步骤得到的标签。我们会利用这两种标注结果分别运行逆向运动学计算，然后选择在我们设定的重建指标下误差最小的那一个。

### 4.3 逆向运动学

给定已标注的标记点后，我们通过优化下述最小二乘能量函数，利用逆向运动学（IK）求出手部姿态$\theta$。

 $$ E_{\mathrm{I K}}=\sum_{i}||L B S(\theta,m_{i})-p_{i}||_{2}^{2} $$

其中$p_i$是标记点$m_i$对应的已标注标记点。由于动作捕捉系统采集的数据本身就已经非常平滑且精确，我们发现无需额外添加确保运动平滑性的正则化项。此处采用Levenberg-Marquardt求解器，若有上一帧的有效手部姿态则以此作为初始值，否则则使用规范的放松手部姿态作为初始值。通常这种迭代求解器在五步之内就能收敛。目前我们在逆向运动学步骤中暂未考虑缺失的标记点，而利用CNN的预测结果来填补这些标记点，将是未来一个有前景的研究方向。

### 4.4 验证

在在线跟踪的某个步骤中，我们可能会得到多种候选标注结果：(a) 上一帧的跟踪标签（如果有的话）；(b) 此前跟踪的标签加上基于邻近性判定的额外标签（见4.2节）；以及(c) 深度学习标注步骤生成的标签（见第3章）。对于每一种候选的标记点标注结果，我们都会运行逆向运动学步骤来拟合标记点。由此产生的RMS误差可以反映手部模型与数据的契合程度。若某姿态产生的RMS误差超过8毫米，则该姿态会被舍弃。如果有多个候选方案通过了RMS测试，我们就选择使用了最多标注标记点的那个姿态。

### 4.5 用户标记点校准

在每次跟踪会话中，我们会从五种预先制作好的手套（从小到大排列）中选出与用户手型最匹配的一款。每款手套都对应着一个由美术人员手工制作的手部模型H。然而，由于人类手部形状的多样性，以及我们预定义的标记点与手套上的标记点之间存在差异，我们通常无法生成最精确的手部姿态。我们观察到最明显的问题在于：即使现实中拇指和食指确实相互接触，跟踪到的手部模型中两者却并不接触。我们可以通过快速的校准流程来修正这一问题。在校准过程中

---

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

<div style="text-align: center;">Fig. 4. System overview. The input to our system is a list of unlabeled 3D marker locations from the motion capture system. The tracker is initialized by clustering markers into groups and randomly assigning the left/right hands to clusters. The left/right hand markers are passed into the online marker labeling pipeline to obtain the label of each marker. Inverse kinematics is applied to reconstruct the hand poses from the labeled markers. The tracked labels and hand poses are fed into the next frame for online tracking if it passes our reconstruction metric.</div>

![Image](images/1b04df269e8264deee6b19bb7d83b7bcc3ec17bb7f24ad25223f71be4f0a77b1.jpg)

<div style="text-align: center;">Fig. 5. Camera setup. We use 16 Optitrack cameras affixed to a rectangular grid to capture all of our sequences.</div>

我们会采集多种姿态，包括让用户用拇指触碰其他各个指尖的动作（见图6左侧；可观看视频了解示例会话过程）。随后我们求解一个优化问题，通过调整标记点的位置来降低跟踪误差，同时确保跟踪到的手部的手指能如预期般相互接触（见图6右侧）。

我们将标记点校准表述为一个优化问题。在采集前会从五种预定义的手部模型中选择一种作为手部模型，且在优化过程中该模型保持不变。我们针对一组预设的姿态，同时求解手部姿态$(\theta)$、标记点集$(M)$以及接触点$(C)$。

 $$ E(\theta,M,C)=E_{data}(\theta,M)+\lambda_{1}E_{prior}(M)+\lambda_{2}E_{contact}(\theta,C) $$

数据项。数据项用于衡量蒙皮后的标记点与跟踪到的标记点位置的契合程度。

 $$ E_{data}=\sum_{i,j}\|LBS(\theta_{i},m_{j})-p_{ij}\|_{2}^{2} $$

其中，j 是手边标记物的索引（即 $j \in [0, 18]$），i 是校准过程中执行的姿势索引。

标记物先前位置。我们对标记物相对于手部的预期位置的偏差进行惩罚，这有助于规整问题。我们将该项拆分为两部分：一部分用于衡量沿表面的移动，另一部分用于衡量垂直于表面的移动。由于已知标记物半径为固定值（3.2毫米），因此垂直于表面的移动会受到更严厉的惩罚。

 $$ E_{\mathrm{p r i o r}}=\sum_{i}(m_{i}-m_{i}^{\prime})^{T}\left(\alpha_{1}\mathbf{n}\mathbf{n}^{T}+\alpha_{2}(\mathbf{I}-\mathbf{n}\mathbf{n}^{T})\right)(m_{i}-m_{i}^{\prime}) $$

在我们的设定中，此处对应 $\alpha_{1}=2.0$ 和 $\alpha_{2}=1.0$。

接触点误差。我们发现，当用户的物理手指相触时，能看到虚拟手指也相触这一点非常重要。为了在校准阶段实现这一点，我们要求用户用拇指触碰每个指尖，然后在优化过程中通过最小二乘约束来强制实现这种接触。

 $$ E_{contact}=\sum_{i}\|LBS(\theta_{i},c_{i})-LBS(\theta_{i},d_{i})\|_{2}^{2} $$

此处，$c_{i}$ 代表拇指上的接触点，$d_{i}$ 代表另一根手指上的接触点。需要注意的是，我们事先并不确切知道接触发生在每根手指的哪个位置，因此该位置也会被纳入优化范围。为确保每个接触点位于表面之上，我们使用手部网格上的重心坐标对其进行参数化，并允许其在优化过程中从一个三角形滑移到相邻的三角形上。

---

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

<div style="text-align: center;">Fig. 6. Marker calibration progress. Three example poses are shown here: thumb touching index finger (top row), thumb touching middle finger (middle row), and spread pose (bottom row). During calibration, we jointly optimize all the hand poses, the marker locations on the rest hand model (red spheres), and the between-finger contact points (purple spheres). In the first 10 iterations, the optimizer adjusts the locations of the markers on the hand to match the corresponding observed markers (orange spheres). Starting from iteration 11, the contact constraints are activated and the optimizer starts refining the contact points and their distance. The rightmost column shows the hand poses, marker positions, and contact points after the optimizer converges.</div>

实现方式。我们在优化前对原始手部网格进行一次细分，以便接触点能够更平滑地沿表面滑动。所有误差项均采用平方和形式，优化过程采用列文伯格-马夸特法。每次迭代后，我们通过查找网格模型相邻三角形上的最近点来更新标记物 M 和接触点 C。校准进度可参见图 6。

## 5 评估

我们的CNN使用两块NVIDIA Tesla M40 GPU进行训练。我们采用随机梯度下降作为优化器，网络训练共进行75个周期。每次训练迭代耗时约0.4秒，批量大小为256。初始学习率为0.6，在第50个周期和第70个周期时学习率会缩小为原来的十分之一。我们的运行时系统在配备NVIDIA GTX 1080 Ti GPU、运行Windows 10系统的Intel Core i7 3.5GHz CPU上进行了测试。CNN的前向传播耗时1毫秒，逆运动学步骤耗时2毫秒。我们仅在至少有一个标记物跟踪失败时才会调用CNN，整个实时跟踪系统平均能稳定运行在120Hz。

数据增强的鲁棒性。我们在保留的数据集上评估网络性能，并比较不同的数据增强方案。基础网络使用恰好19个标记物进行训练。遮挡增强网络（Base+O）通过随机从输入中省略最多5个标记物来进行训练。幻影增强网络（Base+G）则通过随机引入最多2个额外标记物来进行训练。最后，组合网络（Base+O+G）同时使用遮挡标记物和幻影标记物进行训练。随后，我们对基础测试数据集应用相同的数据扰动，生成Base+O、Base+G和Base+O+G测试数据集。不出所料，数据增强造就了鲁棒性强的网络，它们能在不牺牲基础性能的前提下很好地适应复杂场景。表2显示，虽然所有网络在基础测试中的表现相近，但Base+O+G网络在所有其他更复杂的任务中表现最佳。我们在本文后续部分采用了这一性能最优的网络。

<div style="text-align: center;">Table 2. Data augmentation schemes evaluated on synthetic test datasets. We augment the Base network of 19 input markers with up to five occluded markers (Base+O) or up to two additional ghost markers (Base+G), or with both occluded and ghost markers (Base+O+G). Values reported here are labeling accuracy as the percentage of correctly predicted labels. While all networks are comparable on the Base test, the Base+O+G network outperforms the rest in the more challenging tests.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Train Test</td><td style='text-align: center; word-wrap: break-word;'>Base</td><td style='text-align: center; word-wrap: break-word;'>Base+O</td><td style='text-align: center; word-wrap: break-word;'>Base+G</td><td style='text-align: center; word-wrap: break-word;'>Base+O+G</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Base</td><td style='text-align: center; word-wrap: break-word;'>97.76%</td><td style='text-align: center; word-wrap: break-word;'>97.56%</td><td style='text-align: center; word-wrap: break-word;'>97.80%</td><td style='text-align: center; word-wrap: break-word;'>97.76%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Base+O</td><td style='text-align: center; word-wrap: break-word;'>83.35%</td><td style='text-align: center; word-wrap: break-word;'>92.87%</td><td style='text-align: center; word-wrap: break-word;'>84.26%</td><td style='text-align: center; word-wrap: break-word;'>93.51%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Base+G</td><td style='text-align: center; word-wrap: break-word;'>92.31%</td><td style='text-align: center; word-wrap: break-word;'>91.26%</td><td style='text-align: center; word-wrap: break-word;'>94.87%</td><td style='text-align: center; word-wrap: break-word;'>95.30%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Base+O+G</td><td style='text-align: center; word-wrap: break-word;'>74.01%</td><td style='text-align: center; word-wrap: break-word;'>81.88%</td><td style='text-align: center; word-wrap: break-word;'>76.85%</td><td style='text-align: center; word-wrap: break-word;'>85.81%</td></tr></table>

在真实测试数据上的评估。更贴近实际的测试方式是将我们的标注网络应用于不同人员执行各类任务时的动作捕捉场景。为了评估效果，我们从一名未参与训练的数据参与者身上采集了以下动作的原始标记序列：无交互的单手悬空动作；双手相互接触的动作；用手摆弄记号笔的动作；以及用手操作Oculus Touch控制器的动作。每个序列中都包含数量不等的被遮挡标记以及来自OptiTrack系统的伪标记。我们首先运用我们的方法生成初始标签，随后请人工标注员手动修正其中的错误，从而生成基准真值标签。表3显示，当手部与更复杂的物体互动时，会出现大量被遮挡的标记。

我们针对这些测试序列，将网络的性能表现与基准真值进行对比评估。为便于比较，表4中同时展示了合成测试数据集Base+O+G的对应统计数据。对于像单手动作这类遮挡和伪标记较少的简单序列，我们的网络几乎能对任何姿态做出准确预测。但在手部相互接触以及手部操控控制器的复杂序列中，网络性能会有所下降，不过仍与增强后的合成测试数据表现相当。其中，手部摆弄笔的序列尤为棘手，因为受试者需要用笔尖指向手套上的标记，这会导致笔尖标记与手部标记产生混淆，进而影响遮挡召回率。该网络

---

<div style="text-align: center;">Table 3. Test datasets. #Frame is the total number of frames in a sequence. #Gap is the total number of gaps in the sequence, where each gap is a subsequence of one or more frames where at least one marker is missing. #AGL is the average number of (sequential) frames per gap. And #AMF is the average number of missing labels per frame, excluding frames with all markers present (i.e., #missing labels over #frames with missing labels).</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Test set</td><td style='text-align: center; word-wrap: break-word;'>#Frame</td><td style='text-align: center; word-wrap: break-word;'>#Gap</td><td style='text-align: center; word-wrap: break-word;'>#AGL</td><td style='text-align: center; word-wrap: break-word;'>#AMF</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single hand</td><td style='text-align: center; word-wrap: break-word;'>4785</td><td style='text-align: center; word-wrap: break-word;'>44</td><td style='text-align: center; word-wrap: break-word;'>2.11</td><td style='text-align: center; word-wrap: break-word;'>1.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-hand</td><td style='text-align: center; word-wrap: break-word;'>3312</td><td style='text-align: center; word-wrap: break-word;'>331</td><td style='text-align: center; word-wrap: break-word;'>4.01</td><td style='text-align: center; word-wrap: break-word;'>3.30</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-pen</td><td style='text-align: center; word-wrap: break-word;'>4511</td><td style='text-align: center; word-wrap: break-word;'>481</td><td style='text-align: center; word-wrap: break-word;'>3.39</td><td style='text-align: center; word-wrap: break-word;'>2.31</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-controller</td><td style='text-align: center; word-wrap: break-word;'>2645</td><td style='text-align: center; word-wrap: break-word;'>382</td><td style='text-align: center; word-wrap: break-word;'>2.65</td><td style='text-align: center; word-wrap: break-word;'>1.62</td></tr></table>

![Image](images/58a7cb61ceb21c54322eead26740155c9fcd8e7b8608515701039c720463542e.jpg)

<div style="text-align: center;">Fig. 7. Ambiguity from missing markers. On the right is a ground truth pose with the fingertip markers missing from the middle finger, the ring finger, and the pinky (marked in purple). On the left is the pose where the fingertip marker from the index finger has been incorrectly assigned to the middle finger. Although this pose has a higher RMS error, it has sufficiently low error that our system would consider it valid.</div>

对干扰物的鲁棒性极强，在伪标记数量甚至超过训练集的现实场景中，仍能保持较高的精确率和召回率。不过，在中等程度的遮挡情况下，其表现并不理想，尤其是O召回率偏低。我们推测这部分原因在于训练时选取的被遮挡标记是随机的（而非通过可见性测试筛选），这限制了其处理现实世界中遮挡情况的能力。

网络易受遮挡影响的另一个原因可能是手指间的运动范围存在重叠。当标记缺失时，根据我们的RMS误差检验，几种合理的姿态都能解释相同的观测结果。例如，图7中中指的指尖标记缺失，这一情况既可能是中指指尖的标记缺失所致，也可能是食指的标记缺失（且食指的标记被错赋给中指）造成的。引入追踪历史信息有助于减少此类歧义。我们也可以训练神经网络输出其对预测的置信度，甚至输出可能的标注结果的概率分布[Bulat和Tzimiroopoulos 2016; Shih等人 2015]。

追踪结果的对比。实际操作中，我们并非对每一帧都进行网络评估，仅针对追踪失败的帧进行评估。成功重新初始化标签后，便能恢复后续帧的追踪功能。因此，在实时追踪应用中，我们的系统能在所有测试序列中超过90%的帧上准确标注所有标记（见表5），这使得该系统能应用于现实场景，而无需投入大量人力进行后期清理工作。

我们将实时跟踪结果与Alexanderson等人[^2017]在四个采集的测试序列上与真实值进行的对比结果列于表5中。由于Alexanderson等人[^2017]的方法针对的是稀疏标记集，需要手背已有三个预先标记好的标记点，因此当面对标记密集且存在大量伪标记点，或者三个手背标记点中任意一个被遮挡的情况时，其表现并不理想。我们也尝试与商用系统Vicon[^2018]进行比较。然而，即便有专家指导，Vicon校准后的骨骼模型也无法为测试数据集中所有难度较高的帧打上标签。不过显而易见的是，我们的系统在真实手部运动场景下优于现有的实时跟踪方法。

稀疏标记集。使用合成数据的一个优势在于我们可以尝试不同的标记布局。为了证明我们的标注流程同样适用于稀疏标记集，我们采用Alexanderson等人[^2016]提出的稀疏标记布局来生成训练数据集，并按照我们的数据增强流程训练网络，以对手部上的13个标记点进行标注（见右侧插图）。在合成数据集及相同的测试序列上进行测试时，我们发现性能略有下降（见表6），但整体准确率仍相当令人满意。这项测试证明了我们的网络能够同时处理密集和稀疏标记集。

用户标记校准。我们强大的实时跟踪系统允许用户对手部的标记布局进行交互式微调。尽管标注系统并不需要这类信息，但精确的标记位置能带来更精准的手部姿态，从而实现手指接触。表7展示了有无用户标记校准时的性能对比。当并非所有手部标记点都被标注时，我们会利用手部模型预测的标记位置来为附近的标记点分配标签。如果没有针对用户的标记校准，这一过程很容易将伪标记点误标为手部标记点，这会导致在笔尖标记点靠近手部标记点时，手-笔序列中的标记标注性能大幅下降。

![Image](images/073c8d86dfdea2efb3271f583eeb3f0bfe864c6181466544f2e8101e076ba3ad.jpg)

减少摄像机数量。为了实现在严重遮挡和噪声环境下的高质量运动捕捉，我们采用了由16台摄像机组成的捕捉装置来进行实时跟踪。不过，大幅简化的设备配置已经足以捕捉有趣的手部运动。在追踪单手悬空动作序列时，我们选择性地关闭了超过一半的摄像机。即便遮挡情况增多，系统仍能成功跟踪几乎所有的姿态。在采集的2875帧图像中，有95.55%的帧达到了我们预设的IK误差阈值，其中92.32%的帧标注结果正确。

## 6 应用场景

我们在多种活动中展示了实时手部跟踪系统的鲁棒性和灵活性，这些活动包括精细操作与物体交互、手语、舞蹈、音乐表演，以及将手部作为VR应用的输入设备（见图8）。我们的系统易于任何用户安装和使用，用户佩戴手套的时间不到两分钟。

---

<div style="text-align: center;">Table 4. Network performance on test datasets. We compare network inference results on a synthetic dataset and four captured sequences, from a participant not in the training set. We report Accuracy as the percentage of correctly predicted labels. Occlusion ratio and Ghost marker ratio are respective fractions of the total expected number of labels. They provide some indication of the difficulty of a dataset. Our network is quite accurate when there are few occlusions or ghost markers. Because we perform data augmentation aggressively in training, the network performs comparably in real sequences to a synthetic one with similar numbers of occluded/ghost markers. Though our network is robust to a large number of ghost markers, it is more vulnerable to occlusions.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Test set</td><td style='text-align: center; word-wrap: break-word;'>Synthetic</td><td style='text-align: center; word-wrap: break-word;'>Single hand</td><td style='text-align: center; word-wrap: break-word;'>Hand-hand</td><td style='text-align: center; word-wrap: break-word;'>Hand-pen</td><td style='text-align: center; word-wrap: break-word;'>Hand-controller</td></tr><tr><td style='text-align: center; word-wrap: break-word;'># Labels</td><td style='text-align: center; word-wrap: break-word;'>957201</td><td style='text-align: center; word-wrap: break-word;'>181720</td><td style='text-align: center; word-wrap: break-word;'>129002</td><td style='text-align: center; word-wrap: break-word;'>179752</td><td style='text-align: center; word-wrap: break-word;'>103323</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>85.81%</td><td style='text-align: center; word-wrap: break-word;'>97.64%</td><td style='text-align: center; word-wrap: break-word;'>84.08%</td><td style='text-align: center; word-wrap: break-word;'>77.81%</td><td style='text-align: center; word-wrap: break-word;'>85.32%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O ratio</td><td style='text-align: center; word-wrap: break-word;'>12.24%</td><td style='text-align: center; word-wrap: break-word;'>0.07%</td><td style='text-align: center; word-wrap: break-word;'>2.73%</td><td style='text-align: center; word-wrap: break-word;'>2.03%</td><td style='text-align: center; word-wrap: break-word;'>1.78%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O precision</td><td style='text-align: center; word-wrap: break-word;'>73.95%</td><td style='text-align: center; word-wrap: break-word;'>38.91%</td><td style='text-align: center; word-wrap: break-word;'>59.73%</td><td style='text-align: center; word-wrap: break-word;'>52.65%</td><td style='text-align: center; word-wrap: break-word;'>63.17%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O recall</td><td style='text-align: center; word-wrap: break-word;'>64.64%</td><td style='text-align: center; word-wrap: break-word;'>37.89%</td><td style='text-align: center; word-wrap: break-word;'>25.57%</td><td style='text-align: center; word-wrap: break-word;'>17.85%</td><td style='text-align: center; word-wrap: break-word;'>28.44%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G ratio</td><td style='text-align: center; word-wrap: break-word;'>5.27%</td><td style='text-align: center; word-wrap: break-word;'>0.01%</td><td style='text-align: center; word-wrap: break-word;'>10.63%</td><td style='text-align: center; word-wrap: break-word;'>7.55%</td><td style='text-align: center; word-wrap: break-word;'>4.50%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G precision</td><td style='text-align: center; word-wrap: break-word;'>56.21%</td><td style='text-align: center; word-wrap: break-word;'>87.50%</td><td style='text-align: center; word-wrap: break-word;'>79.46%</td><td style='text-align: center; word-wrap: break-word;'>79.09%</td><td style='text-align: center; word-wrap: break-word;'>70.89%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G recall</td><td style='text-align: center; word-wrap: break-word;'>39.77%</td><td style='text-align: center; word-wrap: break-word;'>87.50%</td><td style='text-align: center; word-wrap: break-word;'>61.55%</td><td style='text-align: center; word-wrap: break-word;'>63.65%</td><td style='text-align: center; word-wrap: break-word;'>52.78%</td></tr></table>

<div style="text-align: center;">Table 5. Comparison of real-time tracking performance. This table shows the number and ratio of correctly labeled frames.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>[Alexanderson et al. 2017]</td><td style='text-align: center; word-wrap: break-word;'>Ours</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single hand</td><td style='text-align: center; word-wrap: break-word;'>4330 (90.49%)</td><td style='text-align: center; word-wrap: break-word;'>4785 (100.00%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-hand</td><td style='text-align: center; word-wrap: break-word;'>981 (29.62%)</td><td style='text-align: center; word-wrap: break-word;'>4477 (99.24%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-pen</td><td style='text-align: center; word-wrap: break-word;'>402 (8.91%)</td><td style='text-align: center; word-wrap: break-word;'>3101 (93.73%)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-controller</td><td style='text-align: center; word-wrap: break-word;'>1381 (52.21%)</td><td style='text-align: center; word-wrap: break-word;'>2599 (98.26%)</td></tr></table>

随后按照标记校准姿势进行操作（详见视频）。之后，他们便可以在捕捉区域内舒适自由地移动双手，同时其动作能被实时可靠地跟踪。

灵巧操作。手部与环境的自然运动或对日常物品的操作，为生物力学、可用性和动画研究提供了宝贵的见解。我们的手部追踪系统能够捕捉在杂乱环境中操作物体的手部动作，比如视频中展示的在严重遮挡情况下折叠纸张的过程。手部之间或手部与其他身体部位之间的复杂互动，如手指拼写和手语，都能被我们的系统完美处理。

动作捕捉。动作捕捉对于娱乐和教育领域数字人的创建至关重要。然而，在复杂场景中，其应用往往受到捕捉技术的限制。例如，舞蹈动作可能存在频繁的遮挡和互动；演奏乐器则需要手指紧密配合、快速而细微的动作，还要与乐器本身产生交互。利用我们的手部追踪系统，我们能够成功捕捉包括顶指舞、打击乐、弦乐和木管乐器演奏在内的各种表演。这些表演可在无需对表演者做特殊指导的情况下，通过同一套设备实时捕捉（图8；左上）。尽管乐器上的反光表面会在手部附近产生大量噪点（鼓乐片段中每帧最多可出现20个伪标记，详见视频），我们的系统仍能输出精准的手部动作。

![Image](images/cb69b0da8b1a9005b06785836b31a29502af0c5a5dba1e54e90ca3b21bd4238c.jpg)

<div style="text-align: center;">Fig. 8. Our system enables a wide range of applications Top Left: A view of a guitar chord from the player's perspective (ghost markers are rendered as purple spheres.) Top Right: Manipulation of virtual objects in VR. Bottom Left: Typing with a virtual keyboard. Bottom Right: 2D/3D drawing with a virtual stylus.</div>

虚拟现实输入。在VR中，手部是一种极具吸引力的输入方式，因为我们习惯在三维环境中用手交互，且手部随时可用。借助高精度的手部追踪技术，我们可以开始探索在虚拟环境中使用手部输入的可能性，比如虚拟物体操作（图8；右上）、与虚拟按钮和屏幕的交互、在虚拟键盘上打字，以及二维/三维绘图（图8；下方）。手部输入成功的关键在于手部动作的准确性和鲁棒性。只有依靠可靠的手部追踪系统，我们才能不必担忧手部动作的质量问题，进而专注于开发交互模型本身。

---

<div style="text-align: center;">Table 6. Test with a sparse marker set. Similar to Table 4, we compare network inference results on four sequences, but here we use a network trained for a sparse marker set. Comparing to Table 4, we see a slight drop in performance, but overall similar characteristics.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Test set</td><td style='text-align: center; word-wrap: break-word;'>Synthetic</td><td style='text-align: center; word-wrap: break-word;'>Single hand</td><td style='text-align: center; word-wrap: break-word;'>Hand-hand</td><td style='text-align: center; word-wrap: break-word;'>Hand-pen</td><td style='text-align: center; word-wrap: break-word;'>Hand-controller</td></tr><tr><td style='text-align: center; word-wrap: break-word;'># Labels</td><td style='text-align: center; word-wrap: break-word;'>680680</td><td style='text-align: center; word-wrap: break-word;'>124313</td><td style='text-align: center; word-wrap: break-word;'>87292</td><td style='text-align: center; word-wrap: break-word;'>126693</td><td style='text-align: center; word-wrap: break-word;'>71778</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>84.89%</td><td style='text-align: center; word-wrap: break-word;'>96.90%</td><td style='text-align: center; word-wrap: break-word;'>82.14%</td><td style='text-align: center; word-wrap: break-word;'>72.45%</td><td style='text-align: center; word-wrap: break-word;'>86.59%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O ratio</td><td style='text-align: center; word-wrap: break-word;'>10.96%</td><td style='text-align: center; word-wrap: break-word;'>0.09%</td><td style='text-align: center; word-wrap: break-word;'>1.67%</td><td style='text-align: center; word-wrap: break-word;'>2.28%</td><td style='text-align: center; word-wrap: break-word;'>1.83%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O precision</td><td style='text-align: center; word-wrap: break-word;'>60.75%</td><td style='text-align: center; word-wrap: break-word;'>59.29%</td><td style='text-align: center; word-wrap: break-word;'>76.06%</td><td style='text-align: center; word-wrap: break-word;'>41.93%</td><td style='text-align: center; word-wrap: break-word;'>89.05%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>O recall</td><td style='text-align: center; word-wrap: break-word;'>66.85%</td><td style='text-align: center; word-wrap: break-word;'>59.29%</td><td style='text-align: center; word-wrap: break-word;'>17.45%</td><td style='text-align: center; word-wrap: break-word;'>10.82%</td><td style='text-align: center; word-wrap: break-word;'>29.68%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G ratio</td><td style='text-align: center; word-wrap: break-word;'>7.64%</td><td style='text-align: center; word-wrap: break-word;'>0.01%</td><td style='text-align: center; word-wrap: break-word;'>10.74%</td><td style='text-align: center; word-wrap: break-word;'>10.84%</td><td style='text-align: center; word-wrap: break-word;'>6.09%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G precision</td><td style='text-align: center; word-wrap: break-word;'>47.29%</td><td style='text-align: center; word-wrap: break-word;'>81.25%</td><td style='text-align: center; word-wrap: break-word;'>66.52%</td><td style='text-align: center; word-wrap: break-word;'>65.47%</td><td style='text-align: center; word-wrap: break-word;'>68.60%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>G recall</td><td style='text-align: center; word-wrap: break-word;'>54.10%</td><td style='text-align: center; word-wrap: break-word;'>81.25%</td><td style='text-align: center; word-wrap: break-word;'>57.64%</td><td style='text-align: center; word-wrap: break-word;'>53.93%</td><td style='text-align: center; word-wrap: break-word;'>54.84%</td></tr></table>

<div style="text-align: center;">Table 7. Performance comparison with/without user marker calibration. First number is the percentage of frames which pass our preset IK threshold (8 mm RMS) (i.e., number of valid tracking frames / number of overall frames) while the second number is the fraction of correctly labeled frames as valid tracking frames (i.e., number of correctly labeled frames / number of valid tracking frames)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Test set</td><td style='text-align: center; word-wrap: break-word;'>With calibration</td><td style='text-align: center; word-wrap: break-word;'>Without</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single hand</td><td style='text-align: center; word-wrap: break-word;'>100.00% / 100.00%</td><td style='text-align: center; word-wrap: break-word;'>98.27% / 95.62%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-hand</td><td style='text-align: center; word-wrap: break-word;'>99.18% / 94.40%</td><td style='text-align: center; word-wrap: break-word;'>95.56% / 85.18%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-pen</td><td style='text-align: center; word-wrap: break-word;'>99.38% / 98.95%</td><td style='text-align: center; word-wrap: break-word;'>99.29% / 77.12%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand-controller</td><td style='text-align: center; word-wrap: break-word;'>99.17% / 99.09%</td><td style='text-align: center; word-wrap: break-word;'>97.58% / 89.54%</td></tr></table>

## 7 结论

我们提出了一种利用光学动作捕捉系统追踪手部的快速且鲁棒的解决方案。该方案的核心是一个新颖的标记步骤：通过神经网络将标记识别问题转化为二维图像上的关键点估计问题来解决。我们证明，只需生成具有适当变化的合成数据集，就能使我们的深度标记技术在手部尺寸、手部比例及不同类型动作方面具备鲁棒性。此外，添加遮挡标记和伪标记等人为干扰的数据增强方法，能有效提升系统在真实数据和合成数据上对这类干扰的鲁棒性。该技术同样适用于稀疏和密集的标记集。

借助现代GPU硬件对神经网络的高效运算能力，我们的系统轻松达到120Hz的运行频率，从而能够支持手部动作捕捉的新应用，如可用性研究和虚拟现实中的实时交互原型设计。该技术还提供了一种实用的方法，用于收集大量自然且精准的手部动作数据，可作为诸多研究问题的基准真值数据。本文发表时，我们会同步公开所有的合成训练数据和训练好的卷积模型。

## 8 讨论与未来工作

我们当前采用的常规VGG风格标注网络易于训练、评估速度快且能生成准确的预测结果。当然，还有其他适用的网络架构可能会比我们的基础CNN结构表现更佳。例如，我们的方法仅利用单帧信息来确定每个标记点的标注结果。实际上，我们在标注步骤中做出了无法在跟踪或逆向运动学中更改的硬性决策。计算机视觉领域的最新研究已经探索了预测多种假设或将结果回归为概率分布的方法。能够考虑前几帧时间信息的多假设跟踪或递归神经网络，将会带来更精确的结果。同时，跟踪初始化阶段需要进行聚类处理。尽管由于随机的手部分配问题，该方法在50%的帧上会失效，但在120Hz的频率下，跟踪开始时少量帧的丢失对用户来说几乎察觉不到。未来的工作可以探索在聚类失败时对两只手进行联合标注。

我们已经解决了标记集校准的问题，但尚未提出一种用于校准用户骨骼结构的通用方法。（在我们的实验中，用户手部的大致尺寸是预先设定的。）未来的研究应能够利用关于手部形状的先验知识，从运动序列中同时校准手部形状和标记点位置。

我们仅展示了几个用于解决标记点被遮挡等问题的合成数据增强示例，但这种方法可以扩展到更稳健的手部间交互、手身交互甚至多人交互的标注。最后，这项技术并不局限于特定的标记布局或人类手部。我们希望借此推动新一代动作捕捉算法的发展，利用深度标注技术来跟踪人体甚至动物身上的密集标记点。

## 致谢

我们要感谢Simon Alexanderson提供了表5中所展示的标注结果，感谢Matt Longest为虚拟现实交互功能进行的原型开发。我们还要感谢Albert Hwang、Cristine Cooper、Aaron Echeverria和Mark Terrano在视频录制方面给予的慷慨帮助。

## 参考文献

2018. OptiTrack动作捕捉系统。(2018). <https://www.optitrack.com>

Simon Alexanderson、Carol O'Sullivan和Jonas Beskow。2016年。手指标记点的鲁棒在线动作捕捉标注。载于第9届游戏内动作国际会议（MIG）论文集。

Simon Alexanderson、Carol O'Sullivan和Jonas Beskow。2017年。非刚性动作捕捉标记集的实时标注。《计算机与图形学》（2017年）。

Tameem Antoniades。2016年。创建实时表演捕捉的数字人。载于ACM SIGGRAPH 2016实时直播环节（SIGGRAPH '16）。

---

A. Aristidou和J. Lasenby。2010年。用于实时手部跟踪的带约束逆向运动学的动作捕捉。载于2010年第4届通信、控制与信号处理国际研讨会（ISCCSP）论文集。

Adrian Bulat和Georgios Tzimiropoulos。2016年。基于卷积部件热图回归的人体姿态估计。载于Bastian Leibe、Jiri Matas、Nicu Sebe和Max Welling主编的《计算机视觉——ECCV 2016》一书。施普林格国际出版公司，Cham，第717–732页。

Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest和Clifford Stein。2009年。《算法导论》第三版（第3版）。麻省理工学院出版社。

何凯明、Georgia Gkioxari、Piotr Dollar和Ross Girshick。2017年。Mask R-CNN。载于IEEE国际计算机视觉会议（ICCV）。

Wheatland N.、Neff M.、Zordan V.、Kang C.。2012年。基于低分辨率输入的自由手势动作的自动交接动画生成。载于游戏中的运动研讨会（MIG）论文集。

Kitagawa M.和Windsor B.。2008年。《艺术家的动作捕捉：动作捕捉的工作流程与技术》。Focal Press出版社。

Alex Krizhevsky、Ilya Sutskever和Geoffrey E Hinton。2012年。基于深度卷积神经网络的图像分类。载于神经信息处理系统进展（NIPS）论文集。

Jonathan Maycock、Tobias Rohlig、Matthias Schröder、Mario Botsch和Helge J. Ritter。2015年。采用逆向运动学方法的全自动光学动作追踪技术。载于第15届IEEE-RAS国际仿人机器人会议论文集，第461–466页。

Meyer J.、Kuderer M.、Müller J.和Burgard W.。2014年。用于光学动作捕捉中全自动骨骼追踪的在线标记标注技术。载于2014年IEEE国际机器人与自动化会议（ICRA）论文集。

Iason Oikonomidis、Nikolaos Kyriazis和Antonis A. Argyros。2012年。两只强相互作用手部的关节运动追踪。载于IEEE计算机视觉与模式识别会议（CVPR）论文集。

Ren Shaoqing、何凯明、Ross Girshick和孙健。2015年。Faster R-CNN：基于区域提议网络的实时物体检测技术。载于神经信息处理系统进展（NIPS）论文集。

Gernot Riegler、Osman Ulusoy和Andreas Geiger。2017年。OctNet：高分辨率下的深度3D表征学习。载于IEEE计算机视觉与模式识别会议（CVPR）论文集。

Maurice Ringer和Joan Lasenby。2002a。用于全自动光学动作捕捉的多假设追踪技术。载于第7届欧洲计算机视觉会议（ECCV）论文集。

Maurice Ringer和Joan Lasenby。2002b。光学动作捕捉中模型参数的自动估算方法。载于英国机器视觉会议论文集，第747–756页。

Matthias Schröder、Jonathan Maycock和Mario Botsch。2015年。用于手部光学动作捕捉的简化标记布局。载于第8届ACM SIGGRAPH游戏中的运动研讨会（MIG）论文集。

Matthias Schröder、Thomas Waltemate、Jonathan Maycock、Tobias Röhlig、Helge Ritter和Mario Botsch。2017年。手部动作捕捉用简化标记布局的设计与评估。《计算机动画与虚拟世界》（2017年），e1751。<https://doi.org/10.1002/cav.1751>

Schubert T.、Eggensperger K.、Gkogkidis A.、Hutter F.、Ball T.和Burgard W.。2016年。光学动作捕捉中骨骼追踪用的骨骼参数自动估算技术。载于2016年IEEE国际机器人与自动化会议（ICRA）论文集。

Schubert T.、Gkogkidis A.、Ball T.和Burgard W.。2015年。光学动作捕捉中骨骼追踪用的自动初始化技术。载于2015年IEEE国际机器人与自动化会议（ICRA）论文集。

Kevin J. Shih、Arun Mallya、Saurabh Singh和Derek Hoiem。2015年。基于多提议共识的细粒度分类部件定位技术。载于2015年英国机器视觉会议（BMVC 2015）论文集，英国斯旺西，2015年9月7–10日，第128.1–128.12页。<https://doi.org/10.5244/C.29.128>

Tomas Simon、Hanbyul Joo、Iain Matthews和Yaser Sheikh。2017年。利用多视角自举法在单张图像中检测手部关键点。载于IEEE计算机视觉与模式识别会议（CVPR）。

K. Simonyan和A. Zisserman。2015年。用于大规模图像识别的极深卷积神经网络。载于国际学习表征会议（ICLR）论文集。

Jonathan Taylor、Lucas Bordeaux、Thomas Cashman、Bob Corish、Cem Keskin、Toby Sharp、Eduardo Soto、David Sweeney、Julien Valentin、Benjamin Luff、Arran Topalian、Erroll Wood、Sameh Khamis、Pushmeet Kohli、Shahram Izadi、Richard Banks、Andrew Fitzgibbon和Jamie Shotton。2016年。通过姿态与对应点的联合连续优化实现高效且精准的交互式手部追踪。《ACM图形学汇刊》第35卷第4期（2016年7月），143:1–143:12。

Jonathan Taylor、Vladimir Tankovich、Danhang Tang、Cem Keskin、David Kim、Philip Davidson、Adarsh Kowdle和Shahram Izadi。2017年。用于超快速手部交互追踪的关节距离场。《ACM图形学汇刊》第36卷第6期（2017年11月），244:1–244:12。

Anastasia Tkach、Mark Pauly和Andrea Tagliasacchi。2016年。用于实时手部建模与追踪的球面网格。《ACM图形学汇刊》第35卷第6期（2016年11月），222:1–222:11。

Jonathan Tompson、Murphy Stein、Yann Lecun和Ken Perlin。2014年。利用卷积网络实现人体手部的实时连续姿态恢复。《ACM图形学汇刊》第33卷第5期（2014年8月），169:1–169:10。

Nkenge Wheatland、Sophie Jörg和Victor Zordan。2013年。基于主成分分析的自动交接动画生成。载于游戏中的运动研讨会（MIG）论文集。

Nkenge Wheatland、Yingying Wang、Huaguang Song、Michael Neff、Victor Zordan和Sophie Jürg。2015年。手部与手指建模及动画领域的最新进展。《计算机图形学论坛》（2015年）。

Yonghui Wu、Mike Schuster、Zhifeng Chen、Quoc V. Le、Mohammad Norouzi、Wolfgang Macherey、Maxim Krikun、Yuan Cao、Qin Gao、Klaus Macherey、Jeff Klingner、Apurva Shah、Melvin Johnson、Xiaobing Liu、Lukasz Kaiser、Stephan Gouws、Yoshikiyo Kato、Taku Kudo、Hideto Kazawa、Keith Stevens、George Kurian、Nishant Patil、Wei Wang、Cliff Young、Jason Smith、Jason Riesa、Alex Rudnick、Oriol Vinyals、Gregory S. Corrado、Macduff Hughes和Jeffrey Dean。2016年。谷歌神经机器翻译系统：弥合人类翻译与机器翻译之间的差距。CoRR abs/1609.08144（2016年）。
