
# 用于超快速手部交互追踪的关节距离场

JONATHAN TAYLOR $^{*}$、VLADIMIR TANKOVICH $^{*}$、DANHANG TANG $^{*}$、CEM KESKIN $^{*}$、DAVID KIM、PHILIP DAVIDSON、ADARSH KOWDLE以及SHAHRAM IZADI，perceptivel0

![Image](images/c470e810cd86f20165f966be2b2f915ea5daa2d1c92d1359c9b39526829f840e.jpg)

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

<div style="text-align: center;">Fig. 1. Our high speed tracker accurately tracks one and two handed interactions from both head mounted (ego-centric) and front facing depth camera configurations.</div>

在关节手部追踪领域，最先进的技术得益于混合方法的发展：这类方法将生成式手部模型与深度数据相匹配，同时利用时序预测和判别性预测的初始姿态。在这种范式下，生成式模型用于定义能量函数，随后从这些初始姿态出发执行局部迭代优化，以寻找“良好的局部极小值”（即接近真实姿态的局部极小值）。快速完成这种优化，对于探索更多初始姿态、执行更多迭代过程，以及充分利用高帧率来确保时序预测的初始姿态处于良好局部极小值的收敛域内而言，至关重要。与此同时，精细且准确的生成式模型往往会使良好的局部极小值更深，其收敛域也更宽。然而，近期的研究大多不得不在这种精细的手部模型与便于快速优化的模型之间做出取舍。我们提出了一种新的手部几何隐式模型，基本避免了这种折衷，并利用它构建了一套超快速的混合手部追踪系统。具体而言，我们构造了一种关节有符号距离函数：对于任意姿态，该函数都能通过封闭形式的计算得出与精细表面几何的距离，以及执行基于梯度的优化所需的导数。无需引入或更新任何显式的“对应关系”，从而形成了一种易于在GPU等并行硬件上实现的简单算法。因此，我们的系统能够以极高的帧率运行（例如高达1000帧/秒）。此外，我们还展示了如何检测、分割并优化两只强交互的手部，从而在极高的帧率下还原复杂的交互过程。由于目前尚无帧率足够高的公开数据集，我们借助多视角采集系统，创建了一套全新的180帧/秒数据集，用于记录单手或双手与物体交互的场景。

CCS概念：• 计算方法 → 体素模型；

其他关键词：追踪、体素变形

## ACM参考格式

Jonathan Taylor、Vladimir Tankovich、Danhang Tang、Cem Keskin、David Kim、Philip Davidson、Adarsh Kowdle以及Shahram Izadi。2017年。用于超快速手部交互追踪的关节距离场。ACM Trans. Graph. 36卷第4期，文章编号244（2017年11月），共12页。<https://doi.org/10.1145/3130800.3130853>

## 1 引言

完全关节化的手部追踪有望成为一类重要的输入机制。不过，要实现这一愿景，就必须持续提升系统的鲁棒性和准确性，同时降低延迟。此外，当手部开始与其他手、物体、身体或场景发生交互时，追踪系统也不能失效。在本文中，我们通过创建一种可用于基于梯度的方法快速拟合数据的手部几何隐式精细模型，来拓展手部追踪领域的最先进技术，从而提升鲁棒性和准确性并降低延迟。此外，我们还针对两只强交互的手部进行联合优化，改进了现有的手部分割技术，使手部能够舒适地靠近身体。

我们试图解决的问题是根据深度图像I来估计手部的姿态$\theta$（即关节角度和全局朝向）。传统方法通常会构建生成模型，并利用上一帧输出的姿态作为初始值，通过局部优化来拟合该模型与图像，因此很容易陷入局部最优解。相比之下，判别模型通常通过学习从图像到姿态的直接映射来摆脱对上一帧的依赖，但难以泛化到训练数据中未出现过的图像。最近，研究人员阐明了将生成式与判别式方法结合成混合策略的优势：利用判别预测结果不断重新初始化生成式跟踪器，从而从跟踪失败中恢复过来。

---

在该框架中，通过定义合适的能量函数将生成模型拟合到图像数据上，该函数可经局部优化以寻找“良好的局部最优解”（即对应正确手部姿态的局部最优解）。隐式或显式表面模型的精度以及能量公式的细节，决定了此类良好局部最优解是否存在，以及其收敛域的大小。另一方面，这些因素也会影响遍历该收敛域所需的时间。最终，可探索的起点数量、可执行的迭代次数以及系统运行帧率，决定了系统能否落入良好局部最优解的收敛域内，还是会出现“跟踪丢失”的情况。因此，选择既精确又能快速优化的模型和能量公式至关重要：前者能确保存在能量低于其他劣质局部最优解的良好局部最优解，后者能保证能完全遍历其中一个良好局部最优解的收敛域。在本文中，我们提出了这样一种公式，它能在保持高精度的情况下实现千赫兹级别的手部跟踪，而无需牺牲通常使用细节较粗糙模型所带来的精度。

在此框架下，通过定义合适的能量函数将生成模型拟合到图像数据上，该函数可经局部优化以寻找“良好的局部最优解”（即对应正确手部姿态的局部最优解）。隐式或显式表面模型的精度以及能量公式的细节，决定了此类良好局部最优解是否存在，以及其收敛域的大小。另一方面，这些因素也会影响遍历该收敛域所需的时间。最终，可探索的起点数量、可执行的迭代次数以及系统运行帧率，决定了系统能否落入良好局部最优解的收敛域内，还是会出现“跟踪丢失”的情况。因此，选择既精确又能快速优化的模型和能量公式至关重要：前者能确保存在能量低于其他劣质局部最优解的良好局部最优解，后者能保证能完全遍历其中一个良好局部最优解的收敛域。在本文中，我们提出了这样一种公式，它能在保持高精度的情况下实现千赫兹级别的手部跟踪，而无需牺牲通常使用细节较粗糙模型所带来的精度。

为了说明并区分我们的方法，我们首先重新审视一个简化且略带抽象的场景：将由姿态参数向量$\mathcal{S}(\theta) \subseteq \mathbb{R}^3$参数化的表面$\theta \in \mathbb{R}^J$拟合到一组3D数据点$\{x_n\}_{n=1}^N \subseteq \mathbb{R}^3$上。目标是最小化每个数据点$D(x, \theta)$到表面的平方距离$x \in \mathbb{R}^3$，也就是最小化能量值。

 $$ E_{\mathrm{d a t a}}(\theta)=\sum_{n=1}^{N}D(x_{n},\theta)^{2}=\sum_{n=1}^{N}\min_{y\in\mathcal{S}(\theta)}\left\|x_{n}-y\right\|^{2}. $$

由于不对$S(\theta)$的形式做任何假设，因此很难有效地执行内部最小化过程，更不用说优化整个能量函数了。

大多数方法会像[Taylor等人，2014]中描述的那样，把求和中的最小值“提取出来”，即引入一组对应关系$U = \{u_n\}_{n=1}^N \subseteq \Omega$和映射到已设定姿态的表面上的映射$S: \Omega \times \mathbb{R}^J \to \mathbb{R}^3$，从而使得$^1$。

 $$ E_{data}(\theta)=\sum_{n=1}^{N}\min_{y\in S(\theta)}\|x_{n}-y\|^{2} $$

 $$ =\sum_{n=1}^{N}\min_{u\in\Omega}\|x_{n}-S(u,\theta)\|^{2} $$

 $$ =\min_{U}\sum_{n=1}^{N}\|x_{n}-S(u_{n},\theta)\|^{2}. $$

注意到“提升后”的能量$\hat{E}_{\text{data}}(\theta, U) = \sum_{n=1}^{N} \|x_n - S(u_n, \theta)\|^2$严格限定了原始能量的范围（即对任意U，均有$E_{\text{data}}(\theta) \leq \hat{E}_{\text{data}}(\theta, U)$），因此接下来可以专注于最小化这个提升后的能量。

对于某些模型而言，存在闭式解或快速求解方法来在固定姿态$\theta$的情况下求出对应关系U，这使得ICP这类交替策略颇具吸引力[Qian等人，2014；Tagliasacchi等人，2015；Tkach等人，2016]。不过，这类策略可能会导致收敛问题：因为要遍历一条较长的非轴向能量谷，需要走很多个小的轴向步长。

为避免这些问题，[Cashman和Fitzgibbon 2013；Khamis等人2015；Taylor等人2016, 2014]采用细致且平滑的细分曲面来对$S(u, \theta)$进行参数化，从而能够同时对$J + 2N$和U中的所有$\theta$参数执行Levenberg优化。尽管在Hessian矩阵的Gauss-Newton近似中存在的稀疏性使得人们无需承担求解参数更新时通常会出现的三次复杂度，但在高度可并行化的硬件上利用这种稀疏性似乎存在困难（例如，GPU上会有大量具有复杂依赖关系和数据重排的内核调用）。

如果能够“保留最小值运算”（1），并直接计算$D(x, \theta) = \min_{y \in S(\theta)} \|x - y\|$及其关于位姿$\theta$的导数，就可以对位姿执行小规模稠密非线性优化$^2$。通过这种方式，既能避免交替策略可能导致的收敛问题，又无需引入对位姿和参数化对应点进行大规模稀疏非线性联合优化的复杂性。对于刚体而言，[Fitzgibbon 2003]指出：对于任意旋转$R \in SO(3)$和平移$t \in \mathbb{R}^3$，都有$D(x, R, t) = D(R^{-1}(x - t); I, O)$，因此可以预先计算出物体处于基准位姿I、O时的单一稠密距离变换，并通过插值来便捷地获取所需的距离和导数。在[Schmidt等人2014]的研究中，他们进一步将关节物体分解为一组C个刚体部件，并设置$D(x, \{R_c, t_c\}_{c=1}^C) = \min_c D_c(x, R_c, t_c)$，但在这类距离函数相互作用的关节处会出现伪影和折痕。类似地，[Qian等人2014；Tagliasacchi等人2015；Tkach等人2016]将显式表面模型分解为一组C个诸如球体或圆柱体之类的基元，此时$D_c(x, \theta)$及其导数易于计算。不过在基元相交处仍会出现凸起现象（即法线不连续但表面几何形状连续），为了提升细节精度并减弱模型中的凸起强度，需要使用大量此类基元。

本文的主要技术贡献在于展示了如何创建一种细节丰富且大致平滑的关节表面隐式模型，从而能够“保留最小值运算”（1），以实现其快速优化和超高速表面配准。具体而言，我们展示了如何利用蒙皮四面体网格对单个稠密有符号距离场（SDF）进行体积变形（见图2）。该SDF

---

通过稠密网格的三次插值来平滑捕捉几何细节，而蒙皮四面体网格则能将这种细节转换为不同的位姿。尽管四面体网格变形可能会引入折痕（例如一阶导数不连续），但这些折痕仅出现在关节处，且可通过在这些区域加密网格来缓解凸起程度。与[Schmidt等人2014]采用的严格分段刚性假设不同（这对人手来说可能并不自然），我们能够应用任意网格蒙皮技术来变形单个SDF。事实上，我们认为变形函数（通过蒙皮四面体网格实现）与细节表示（通过SDF实现）的解耦是该表示方式的关键特性，这使得未来研究有望将手表或戒指等静态几何体“融合”到SDF中。

更重要的是，这种表示方法使我们能够使用精细的手部模型，同时还能采用高度可并行的算法，从而适配现代GPU的执行。借鉴近期关于高效高帧率主动立体深度估计的研究成果[Fanello et al. 2017a,b]，我们采用了能够以最高210fps的速率生成$1280 \times 1024$深度图的深度传感器。尽管我们所能用的深度相机最高仅能以210fps的速度运行，且真实数据序列的采集速率仅为180fps，但我们的跟踪器利用NVIDIA Titan X显卡，就能对预先采集的数据以1000fps的速率进行处理。即便在此类场景中上一帧的姿态数据很可能仍然有效，我们仍会借助粗略的重初始化机制，来应对偶尔出现的跟踪失败情况。

此外，我们还实现了双手交互功能：首先检测并分割左右手，再构建合适的能量函数，以修正轻微的左右手分割错误。如补充视频所示，我们展示了单手和双手跟踪效果，能够在高帧率、低延迟的条件下还原复杂的交互过程。最后，我们采集了一套新数据集，其帧率远高于现有公开数据集，且包含难度较高的双手交互以及手与物体的交互场景。$^{3}$

## 2 相关工作

### 2.1 手部检测

由于手部属于结构极为复杂的关节物体，因此手部检测通常依赖简单的基于颜色的启发式方法或现有的骨骼跟踪器。基于颜色的检测器通常会在场景中寻找肤色物体[de La Gorce et al. 2011; Oikonomidis et al. 2011; Sridhar et al. 2013]，或是腕带[Tagliasacchi et al. 2015; Tkach et al. 2016]；由于缺乏区分左右手的机制，这类方法通常假定场景中仅存在一只手。

基于深度的检测器[Sharp et al. 2015; Tang et al. 2015; Taylor et al. 2016]依赖Kinect的骨骼跟踪器来估算可能存在多只手的粗略位置。此类跟踪器本身往往依靠随机决策森林（RDF）来进行身体部位分类[Shotton et al. 2011]，该方法也被用于[Tompson et al. 2014]中，以实现像素级的手部与背景类别二分类。而对于我们这种涉及强交互手部的更为复杂的场景而言，

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

<div style="text-align: center;">Fig. 2. We use a skinned tetrahedral mesh (center) to warp a precomputed signed distance field (left) into a new pose (right) to create an articulated signed distance field. In the volumetric visualizations of the signed distance functions (left and right), voxels are shaded red or blue to indicate whether they contain negative (i.e. inside) or positive signed distances (i.e. outside).</div>

我们提出了一种基于卷积神经网络（CNN）的方法，并将该方法与采用新特征的RDF进行比较。由于这本质上是一项计算资源受限的复杂语义分割任务，我们采用了适合快速像素级分类的全卷积网络（FCN）[Long et al. 2014]。

### 2.2 基于学习的手部姿态估计

大多数方法会训练机器学习模型，比如随机决策森林[RDF][Keskin et al. 2012; Sun et al. 2015; Tang et al. 2016, 2015]、卷积神经网络（CNN）[Ge et al. 2016; Mueller et al. 2017; Oberweger et al. 2015a,b; Wan et al. 2017; Ye et al. 2016]，或是两者的结合[Tompson et al. 2014]，从而建立输入图像到手部姿态的映射关系。这些方法通常不依赖上一帧数据，运算速度快，且一般无需纳入手部运动学和/或表面几何的先验知识。在初始估计阶段之后，可以进行细化步骤[Oberweger et al. 2015a]或逆运动学处理[Tompson et al. 2014]，但无需纳入手部运动学和表面几何的先验知识。Sinha等人[^2016]近期的研究采用了联合矩阵分解与补全方法来确定手部姿态。

### 2.3 混合式手部姿态估计

尽管基于学习的手部姿态估计技术已取得显著进展，但那些采用显式的手部运动学和表面几何生成模型，并通过局部优化将这些模型拟合到深度数据上的系统，仍能产生最令人满意的结果。即便如此，这些方法通常也属于“混合式”方法：当系统丢失跟踪目标时，会利用判别性预测器来“重新初始化”系统。一般来说，做法是提出新的初始姿态——对上一帧的姿态进行微调——随后通过能量函数或评分函数对其进行优化以选出最终姿态[Melax等人，2013]。不过归根结底，随着更多关于手部运动学[Zhou等人，2016]和表面几何的先验知识被融入基于学习的方法中，生成式模型与判别式模型之间的界限也愈发模糊。

从概念上讲，最全面的生成式优化策略就是直接渲染生成模型并与图像观测结果进行比较[de La Gorce等人，2011；Oikonomidis等人，2011；Sharp等人，2015；Tan等人，2016]。但在实践中，这种方式产生的能量函数

---

难以优化，因此人们会采用更易优化的近似公式，比如“高斯求和”模型[Sridhar等人，2013]。

引言中探讨的点云配准能量公式（1）或许是最常用的此类近似公式。$^{4}$ 那些将公式（1）中的最小值提取出来、通过对对应关系和姿态交替优化，并利用低成本的最优对应关系计算方法的方法包括[Melax等人，2013；Tagliasacchi等人，2015；Tkach等人，2016]。另一些同样提取最小值，但同时对对应关系和姿态进行联合非线性优化的研究包括[Cashman和Fitzgibbon，2013；Khamis等人，2015；Taylor等人，2016, 2014]。保留公式中最小值的 연구则包括针对刚性模型的[Fitzgibbon，2003]以及针对关节结构的[Schmidt等人，2014]。虽然引言中提到了“提取/保留最小值”策略各自的优缺点，但由于手部跟踪系统中存在诸多干扰因素，很难得出明确结论。不过[Hong和Fitzgibbon，2015]的研究在矩阵分解背景下，对类似策略进行了可控的定量分析。

[de La Gorce等人，2011]针对单目手部跟踪，以及[Ballan等人，2012]针对多视角场景，都证明了详细且精确的生成模型的价值。事实上，近期的研究也证实了这种形状自适应的重要性[Khamis等人，2015；Remelli等人，2017；Tan等人，2016；Taylor等人，2014；Tkach等人，2017]。

利用符号距离场进行3D表面对齐的一个重要应用是基于单目深度的重建[Izadi等人，2011]。但当该技术被扩展到可变形场景时[Dou等人，2016, 2015；Innmann等人，2016；Newcombe等人，2015]，为了进行对齐，需先从符号距离场中提取表面网格，再切换表示形式。

与我们研究最相关的是[Schmidt等人，2014]的工作：他们通过取一组刚性运动且运动学一致的符号距离场的最小值，构建了关节型距离函数（详见第1节）。

虽然大多数这类方法都能轻松扩展用于单独跟踪两只手，但已发表的研究中仅有少数允许双手之间产生交互[Oikonomidis等人，2012；Tzionas等人，2016]。

## 3 方法

我们使用每只手指的标准四个关节活动方式对手的姿态$\theta \in \mathbb{R}^J$进行参数化，手腕处有两个自由度，而全局方向则有六个自由度。我们使用四元数对3个自由度的全局旋转进行超参数化，因此$\theta$的维度为$J = 29$。接下来，我们将展示如何将这一建模为关节SDF的模型拟合到深度数据中。

### 3.1 手部检测与分割

给定一张深度图像I，我们会利用CNN或RDF（见下文）来生成概率图$P^{\text{left}} \in [0,1]^W \times H$、$P^{\text{right}} \in [0,1]^W \times H$和$P^{\text{bg}} \in [0,1]^W \times H$，这些概率图分别编码了每个像素属于左手、右手以及背景的概率。为了检测右手，我们暂时

<div style="text-align: center;">Fig. 3. Some examples of left (blue), right (green) and background (red) segmentation using our CNN. Black pixels are not sufficiently confident in their decisions.</div>

![Image](images/e4bbbcfef7149fbd8d8b38336d6257c216ae607f05eeb42eda532c765d0f0793.jpg)

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

<div style="text-align: center;">Fig. 4. The FCN used to segment left and right hands from an input depth image.</div>

将概率图P_right中所有低于某个阈值$\eta^{high} \in [0,1]$的值设为零，接着用带宽较大的高斯滤波器对输出结果进行卷积处理，最后根据最大值的位置来确定手部位置。随后，我们对原始分割结果P_right中的异常值进行处理：凡是概率小于$\eta^{low} \in [0, \eta^{high}]$的像素，或者其3D位置不在以手部检测点为中心、半径为$r^{sphere} \in \mathbb{R}$的球体内的像素，其值都会被置零。后者确保了远离主要手部区域的像素（例如背景中其他人的手上的像素）不会干扰分割结果，而前者则使机器学习方法能够排除那些被识别为不属于手部的邻近像素（例如用户胸部的像素）。通过这项测试的像素会利用相机参数被反投影到3D空间中，从而形成点云$\{x_n\}_{n=1}^N \subseteq \mathbb{R}^3$，进而定义式(1)。

3.1.1 基于CNN的分割器。为了生成这些概率图，我们通常使用CNN，它会对分辨率较低的深度图像进行处理，并通过一系列变换来生成概率图。为确保平移等变性，我们避免使用会丢失局部信息的全连接层，仅依靠卷积操作，本质上形成了全卷积网络（FCN）[Long et al. 2014]。FCN通过一系列卷积、池化和反卷积操作，将粗糙的高层信息与精细的低层信息结合起来。我们还在每次卷积和反卷积操作后加入批量归一化层，以帮助网络自动预处理深度图像。我们在输入层采用dropout$(p = 0.1)$来减少过拟合现象。

用于推断类别标签的局部邻域大小由最后一层中神经元的感受野决定。遗憾的是，深度图像中孤立的手部周围的局部区域可能包含的信息不足，难以区分

---

左手像素和右手像素。因此，我们需要足够大的感受野，以便能够“看到”手臂和身体，从而区分这些像素。为满足这一需求，我们用越来越大的卷积核对池化后的特征图进行卷积处理。整个CNN结构如图4所示，图3展示了一些真实测试图像的示例。

3.1.2 基于RDF的分割器。作为基准，我们也训练了一个RDF分类器来生成分割概率图。RDF通常采用深度和平移不变特征，这些特征特别适合处理深度图像；这类方法会对中心像素周围经深度归一化后的偏移处的两个像素的深度差异进行阈值处理[Keskin等人，2012年；Sharp等人，2015年；Shotton等人，2011年；Tang等人，2015年；Tompson等人，2014年]。对于深度图像I中坐标为$(u, v)$的每个像素p，树中的分裂节点会评估以下函数：

 $$ \boldsymbol{I}\left(u+\frac{\Delta u_{1}}{\Gamma},v+\frac{\Delta v_{1}}{\Gamma}\right)-\boldsymbol{I}\left(u+\frac{\Delta u_{2}}{\Gamma},v+\frac{\Delta v_{2}}{\Gamma}\right)>\tau $$

其中$\Gamma$表示$I(u,v)$，$\Delta u_i$和$\Delta v_i$是两个偏移量，而$\tau$是该分裂节点的阈值。这种特征适用于大多数任务，但在处理分类任务对旋转不变的情况时效率较低，例如单个伸展的手部。为了扩充此类子任务的特征库，我们引入了一类新的旋转不变特征。为此，设$R(u,v,r,I)$为在深度缩放半径为r、以$(u,v)$为中心的图像圆面上所找到的K个深度像素之和。这些特征随后用于衡量

 $$ \frac{R(u,v,r_{1},I)}{K}-\frac{R(u,v,r_{2},I)}{K}>\tau $$

两个对应同心环的平均深度之差。由于$R(u, v, r, I)$随着环半径增大而计算成本更高，实践中我们会用固定数量的点k来近似该值，即

 $$ R(u,v,r,I)=\sum_{i=1}^{k}I\left(u+\frac{r\cos(i2\pi/k)}{\Gamma},v+\frac{r\sin(i2\pi/k)}{\Gamma}\right). $$

我们还将这种特征定义为一元版本：

 $$ \frac{R(u,v,r_{1},I)}{k}-\Gamma>\tau $$

该版本仅使用一个环。训练时，我们会按照通过网格搜索确定的固定比例，从二元和一元的旋转相关及旋转不变特征池中进行采样。对于每个待考虑的特征，我们会从固定范围内均匀采样多个$\tau$值，并选取能使信息增益最大化的那个值。

### 3.2 可变形有符号距离函数

在本节中，我们构建了一个函数：给定一个姿态 $\theta$，该函数能输出到由手部模型隐式定义的曲面上的有符号距离 $D(x, \theta)$。基本思路是利用线性混合蒙皮四面体网格，将预先计算好的有符号距离场变形为任意姿态（见图2）$^{5}$。为此，我们假设可以获取基准姿态 $\theta_0$ 下的密集有符号距离网格（见第5.3节），并通过三次样条插值[Lekien和Marsden 2005]来定义到该曲面的有符号距离 $D(x; \theta_0) = \tilde{D}(x) \in \mathbb{R}$。

基础姿态：$\theta_{0}$

![Image](images/1991bfc43a829f8872171ec2ebf880a8d53007870d3bf99c25260a9b20063595.jpg)

<div style="text-align: center;">Query Pose:  $\theta$</div>

![Image](images/239b9015c5ccb2227ab7297237863025e3b0e2bcceba955c0de77042ab69edea.jpg)

<div style="text-align: center;">Fig. 5. An illustration of how a tetrahedral mesh could deform a signed distance field  $\tilde{D}(x)$ implicitly encoding a finger. In this 2D example, the cross section of the end of a finger (black curve) in the base pose  $\theta_0$ (top) represents the zero crossings  $\{p : \tilde{D}(p) = 0\}$ of the signed distance field. The finger is contained inside a triangular mesh (the 2D equivalent of a tetrahedral mesh). When the mesh is deformed (bottom), each triangle defines an affine warp between the base pose and the query pose  $\theta$. Using the inverse warps we can implicitly define a signed distance field  $D(x, \theta)$ as follows. For a query point  x that falls inside the deformed mesh, the triangle  $\tau$’s affine inverse warp sends the query point to  $\tilde{B}^{\tau}(x, \theta)$ where the distance to the implicitly encoded surface can be queried as  $\tilde{D}(B^{\tau}(x, \theta))$. For a point  y that falls outside the deformed tetrahedral mesh (bottom), the closest point  $q^{\tau}(y, \theta)$ is used to warp back to the base pose to query its distance to the implicitly encoded surface. To this value, the distance from the query point  y to the closest point is added. These are the two cases defined in (3.2). Note that the zero crossings  $\{x : D(x, \theta) = 0\}$ implicitly defines a deformed finger surface (black curve in the bottom). Also note that the mesh is only used to deform joints, allowing an arbitrary amount of “static detail”, such as the finger nail, to be encoded in the original sdf.</div>

任意点$x \in \mathbb{R}^3$处表面的有符号距离。需要注意的是，三次样条插值还能让我们获得关于x的一阶和二阶平滑导数。

为了定义任意姿态$D(x, \theta)$下的有符号距离场$\theta$，我们采用了一种四面体体积网格，其顶点通过线性混合蒙皮进行变形（见第5.3节）。对于任意四面体$\tau$，设$V^\tau(\theta) \in \mathbb{R}^{3 \times 4}$为一个矩阵，该矩阵的列存储了姿态$\tau$下四面体$\theta$的四个顶点的位置。设$\hat{\beta}^\tau(x, \theta) \in \mathbb{R}^4$为姿态$\tau$下四面体$\theta$内最近点的重心坐标。也就是说

 $$ \hat{\beta}^{\tau}(x,\theta)=\underset{\beta\in\mathcal{B}}{\arg\min}\left\|x-V^{\tau}(\theta)\beta\right\| $$

---

其中$\mathcal{B} = \{\beta \in [0,1]^4 : \beta^\top \beta = 1\}$。随后可重构出最近点：

 $$ q^{\tau}(x,\theta)=V^{\tau}(\theta)\hat{\beta}^{\tau}(x,\theta)\;. $$

类似地，基础姿态下的对应点可重构为：

 $$ B^{\tau}(x,\theta)=V^{\tau}(\theta_{0})\hat{\beta}^{\tau}(x,\theta)\;. $$

我们可以利用基础姿态中的这一点，对预先计算好的有符号距离函数$\tilde{D}(\cdot)$进行查询。不过，四面体网格的变形可能会导致查询点x实际上落在多个重叠的四面体内部。

 $$ \mathcal{T}(x,\theta)=\{\tau:q^{\tau}(x,\theta)=x\} $$

我们将包含x的这些四面体组成的集合记为。随后我们可以选择一个单独的四面体。

 $$ \tau^{*}(x,\theta)=\left\{\begin{array}{l l}\arg\min_{\tau\in\mathcal{T}(x,\theta)}|\tilde{D}(B^{\tau}(x,\theta))|,&{\mathcal{T}}(x,\theta)\neq\varnothing\\ \arg\min_{\tau}\|x-q^{\tau}(x,\theta)\|,&{\mathcal{T}}(x,\theta)=\varnothing.\end{array}\right. $$

该四面体将用于把这个点变换回基础姿态。第一种情况会选择那个在变换回基础姿态后、通过预先计算的有符号距离函数评估时能得到到未变形表面最小绝对距离的四面体。第二种情况则用于处理查询点没有落在单个四面体内的情形，此时只需选择离该点最近的四面体即可。我们随后可以将到表面的距离定义为：

 $$ D(x,\theta)=\|x-q^{\tau^{*}(x,\theta)}(x,\theta)\|+\tilde{D}(B^{\tau^{*}(x,\theta)}(x,\theta)) $$

其中第一项衡量的是到所选四面体中最近点的距离，第二项则将该最近点变换回基础姿态，以评估其到表面的有符号距离（见图5）。

需要注意的是，计算式(3.2)未必是最高效的操作，因为最简单的算法需要针对每个数据点，逐一检测它是否包含在每一个四面体内。尽管如此，这种实现方式具有高度并行性，在GPU上执行速度非常快。

还需注意的是，由于$\tau^{*}(x,\theta)$会从一个四面体跳转到另一个四面体，因此这种定义会将空间划分为一组离散的单元格。当x至少落在一个四面体内时，由所选四面体定义的仿射变换会将当前姿态下的空间映射回基础姿态，以便进行SDF评估。若x落在四面体网格之外，则会选择最近的四面体，同样利用仿射变换通过该四面体边界上的最近点来进行SDF评估。不过在这种情况下，还需要加上x到该四面体边界上最近点的距离。虽然该函数在所有地方都是连续的，且在每个单元格内可微，但当$\tau^{*}(x,\theta)$变化时，函数会出现波动。不过这些波动的强度直接与相邻单元格间的变换差异程度相关，因此我们可以在关节附近增加更多四面体来减弱这种波动强度。但关键在于，在模型的刚性部件中，相邻单元格会应用相同的变换，因此在那里增加更多四面体并无益处（例如手背部位）。事实上，这种表述方式的一个关键优势在于，静态细节的表示是在参考体积中进行的，因此很大程度上独立于用于将这种细节变换为不同姿态所需的四面体数量。与三角网格类似，可以增加更多四面体来“平滑”关节处的波动，但与三角网格不同的是，无需为了给模型添加更多静态细节而增加更多四面体。

### 3.3 能量

在本节中，我们定义了一个用于评估特定姿态$\theta$优劣的能量函数，以便能够计算其导数。具体而言，我们希望最小化的能量为：

 $$ \begin{aligned}E(\theta)=&E_{data}(\theta)+\lambda_{normal}E_{normal}(\theta)\\&+\lambda_{prior}E_{prior}(\theta)+\lambda_{limit}E_{limit}(\theta)\end{aligned} $$

其中日期项是通过将式(13)代入式(1)得到的。需要注意的是，该能量函数不会惩罚自相交或背景相交现象，这使得手指在不受数据和先验约束的情况下可以发生自相交或渗入背景。我们希望未来的研究能通过制定能充分利用我们的关节型SDF表述方式的惩罚项来解决这些局限。

3.3.1 法向量项。法向量项$E_{\text{normal}}(\theta)$利用了这样一个事实：关节化有向距离函数相对于位置的梯度会指向背离表面的方向，因此我们将表面法向量估计为

 $$ \Upsilon(x,\theta)=\frac{\triangledown_{x}D(x,\theta)}{\|\triangledown_{x}D(x,\theta)\|}. $$

因此，我们通过定义如下公式，来促使表面法向量与数据点n处的估计法向量$x_{n}^{\perp}$保持一致。

 $$ E_{\mathrm{n o r m a l}}(\theta)=\sum_{n=1}^{N}\|\Upsilon(x,\theta)-x_{n}^{\perp}\|^{2}. $$

需要注意的是，尽管当前的公式在$E_{\text{normal}}(\theta)$随$\tau^*(x, \theta)$变化时会产生不连续性，但这种跳跃通常并不显著。不过，强制该项在单元格之间保持连续性仍属于未来的研究工作，可以通过插值生成虚拟法向量场，或在四面体变形中使用更高阶的插值方法（如二次或三次插值）来实现。

3.3.2 姿态先验项。与[Tan等人，2016年；Taylor等人，2016年]的研究类似，我们使用均值为$\mu \in \mathbb{R}^{22}$、协方差矩阵为$\Sigma \in \mathbb{R}^{22 \times 22}$的多元高斯分布，来为遮挡或约束不足的场景提供约束条件。这一约束被嵌入到姿态先验项中。

 $$ E_{\mathrm{p r i o r}}(\theta)=(\psi(\theta)-\mu)^{\top}\Sigma^{-1}(\psi(\theta)-\mu) $$

其中，$\psi(\theta) \in \mathbb{R}^{22}$用于提取姿态$\theta$中对应关节活动部分的22个参数（即不包括全局方向参数）。

3.3.3 关节限制项。与[Tan等人，2016年；Taylor等人，2016年]的研究类似，我们设定一组关节限制$\zeta^{\text{low}} \in \mathbb{R}^{22}$和$\zeta^{\text{high}} \in \mathbb{R}^{22}$，并通过以下方式对超出这些限制的情况进行惩罚。

 $$ \begin{aligned}E_{limit}(\theta)&=\sum_{i=1}^{22}\mathcal{I}(\psi_{i}(\theta)<\zeta_{i}^{low})(\psi_{i}(\theta)-\zeta_{i}^{low})^{2}\\&+\sum_{i=1}^{22}\mathcal{I}(\psi_{i}(\theta)>\zeta_{i}^{high})(\psi_{i}(\theta)-\zeta_{i}^{high})^{2}\end{aligned} $$

---

![Image](images/a62bbb56b0ed4316792c32c40344b2e7c6d99a885fc043f3380e67c0485261cc.jpg)

<div style="text-align: center;">Fig. 6. 6 DOF estimation of the hand pose by the reinitializer. The per-pixel votes for each joint are aggregated and a mode finding method is used to detect the joint locations, which are used to form the global translation and rotation for the reinitialization poses.</div>

其中，$I()$是指示函数。

### 3.4 能量优化

为了最小化式(14)，我们从一组初始姿态$K + 1$出发执行Levenberg优化，其中一个初始姿态来自上一帧，其余则来自重新初始化过程。最终我们输出能量最低所对应的姿态。

3.4.1 重新初始化。我们的手部分割器会为每只手输出一张分割后的深度图像$\mathcal{R}$，重新初始化模块利用该图像生成一组姿态估计值$\{\theta_k^R\}_{k=1}^K$，这些估计值被用作能量优化过程中的初始姿态。我们通过有向距离场（RDF）来估计6自由度手部姿态，具体采用基于像素的偏移回归方法[Girshick等人，2011年]。具体而言，我们利用RDF在世界空间中定位手掌上的三个关节（假设手掌是平面的）：腕关节$q_w$、食指掌指关节（MCP）的基部$q_i$以及小指MCP的基部$q_p$，从而估算出6自由度的姿态。我们将这三个锚点转换为重新初始化的姿态：全局平移参数设为$q_w$，全局方向则通过计算这三个锚点所定义的3D三角形的朝向来确定。随后，我们从姿态先验中随机采样一组手指姿态（参见3.3.2节），从而生成姿态估计值$\{\theta_k^R\}_{k=1}^K$。

为了定位这些锚点，RDF会对区域R中的每个像素p进行评估，为每个关节相对于p的3D偏移量产生一个投票结果。在此任务中，RDF依赖于式(5)中给出的特征族，因为与分类不同，偏移回归具有旋转依赖性。决策树通过回归目标函数进行训练，以最小化叶节点中的投票方差。测试时，每个像素会为所有关节投票，这些投票结果会被分别汇总形成每个关节的投票分布。这些分布的众数被选取为锚点的最终估计值，随后通过均值漂移算法[Comaniciu和Meer，2002年]确定锚点位置（见图6）。

3.4.2 Levenberg最小化。为了对式(14)进行局部优化，我们首先将其改写为适合Levenberg优化的平方和形式。

 $$ \boldsymbol{E}(\theta)=\boldsymbol{r}(\theta)^{\top}\boldsymbol{r}(\theta) $$

其中 $r(\theta) \in \mathbb{R}^D$ 是D个残差组成的向量。我们计算雅可比矩阵 $J(\theta) \in \mathbb{R}^{D \times 29}$，并执行Levenberg更新，如下所示：

 $$ \theta\gets\theta+\left(J(\theta)^{\top}J(\theta)+\gamma I_{29\times29}\right)^{-1}J(\theta)^{\top}r(\theta) $$

这里 $\gamma$ 是标准的Levenberg阻尼项，当迭代步骤失败或成功时，该参数会相应增大或减小以降低能量值。

## 4 双手扩展

为了追踪两只手，我们会对姿态 $\Theta = \{\theta^{\text{left}}, \theta^{\text{right}}\}$ 以及一组右手分配结果 $\Upsilon = \{\eta_n\}_{n=1}^N \subseteq \{0,1\}$ 进行联合优化，这些结果会隐式地确定一组左手分配结果 $\Gamma(\Upsilon) = \{1 - \eta_n\}_{n=1}^N$。为此，我们将公式(14)重新表述为：

 $$ \begin{aligned}E(\theta;\Upsilon)=&E_{data}(\theta;\Upsilon)+\lambda_{normal}E_{normal}(\theta;\Upsilon)\\&+\lambda_{prior}E_{prior}(\theta)+\lambda_{limit}E_{limit}(\theta)\end{aligned} $$

其中数据项被调整为：

 $$ E_{data}(\theta;\Upsilon)=\sum_{n=1}^{N}\eta_{n}D(x_{n};\theta) $$

法向项 $E_{\text{normal}}(\theta; \Upsilon)$ 也做类似处理。随后我们构建待优化的完整能量函数如下：

 $$ \begin{aligned}\tilde{E}(\Theta)=&E(\theta^{left};\Gamma(\Upsilon))+E(\theta^{right};\Upsilon)\\&+\lambda_{assign}\sum_{n=1}^{N}\left(\eta_{n}\gamma_{n}^{right}+(1-\eta_{n})\gamma_{n}^{left}\right)\end{aligned} $$

其中 $\gamma_{n}^{\mathrm{left}}$ 和 $\gamma_{n}^{\mathrm{right}}$ 是分割算法输出的惩罚项，分别用于将数据点n分配给右手姿态和左手姿态。为了优化该函数，我们在 $\Theta$ 和 $\Upsilon$ 之间交替迭代：前者通过Levenberg更新来优化，后者则通过判断将数据点分配给左手还是右手能降低能量值来进行更新。

## 5 实现细节

### 5.1 分割器训练

为了训练第3.1节中介绍的基于CNN和RDF的分割器，我们针对以自我为中心的视角和前置摄像头视角，从多名受试者处采集了包含10万个样本的大型数据集。受试者佩戴了有色手套，以便利用校准后的彩色相机自动标记深度像素。我们通过留一受试者外测评估的方式对参数进行网格搜索，以优化模型的泛化能力。对于类别不平衡问题，我们只需对每张图像中的背景像素进行欠采样处理即可。我们没有对深度图像进行预处理，且两种情况下我们都要求分割耗时低于0.5毫秒。

CNN的训练采用随机梯度下降算法，初始学习率为0.1，权重衰减系数为0.001，动量参数为0.9。训练过程中学习率和权重衰减系数会逐渐自适应地减小，整个训练过程共持续300个周期。由于使用完整数据集进行参数估计在Titan X显卡上需要超过5天时间，因此难以实现，所以我们每隔五张图片选取一张用于训练。我们还测试了池化操作次数、卷积核大小和滤波器数量，最终选定了图4所示的网络结构。最终网络的平衡准确率（即平均召回率）达到了85.5%。

我们为RDF实现了基于GPU的训练器，并利用装袋法来保证各决策树之间的差异性。测试表明，在计算资源允许的范围内，深度为19的四棵决策树能取得最佳效果。最优随机森林中旋转相关特征与旋转不变特征的比例为50%比50%，较高层次的节点通常选择旋转不变特征。数据增强是通过为每个样本赋予随机旋转、水平翻转和尺度变化来实现的。

---

![Image](images/cce65ba5096e3b815472abbf05dcb0b22f8bb7151a5aa0e249411411be320d50.jpg)

<div style="text-align: center;">Fig. 7. Balanced accuracy for leave-one-subject-out tests using i) Type 1 Raw: single tree, rotationally dependent features without data augmentation, ii) Type 1 Aug: same with augmentation, iii) Type 1-2 Aug: both types of features with augmentation, iv) 2 Trees: sames as iii), 2 trees, v) 3 Trees: sames as iii), 3 trees, vi) 4 Trees: sames as iii), 4 trees, and vii) FCN: our CNN based model, which outperforms RDFs.</div>

图7展示了针对留一受试者测试得到的平衡准确率，该指标随决策树深度、随机森林规模和所用特征类型的变化情况。显然，数据增强能够防止模型过早过拟合，并将最优深度从16提升至19。性能最佳的随机森林准确率达到了81.1%。

### 5.2 回归森林训练

为了训练偏移回归器，我们利用多视角采集系统（见图8和第6.1节）获取的数据来生成高质量的姿态估计结果以及逐像素的 Ground Truth 标签。通过采用留一受试者法进行的网格搜索，我们选出了最优参数。受GPU内存限制，我们训练了三棵深度为18的树模型，每棵树使用12K张图像进行训练；在留一受试者测试下，平均关节误差为3.8厘米。

### 5.3 关节有符号距离函数

我们在Blender中构建了手部模型[Blender Online Community 2016]，采用线性混合蒙皮技术将粗糙的三角网格绑定到骨骼上。为了在基础姿态下构建密集的有符号距离场，可先对网格进行加密处理；对于每个体素，通过对所有三角形、边和顶点计算距离，即可得到该点到网格的距离。随后我们将原始的粗糙网格进行膨胀处理，从而在SDF中编码为零交叉点的“隐式曲面”周围创建一个更大的“包围盒”。接着我们使用TetGen[Si 2015]将这些顶点“三角化”，形成四面体包围盒。

## 6 实验

在本节中，我们将介绍新数据集Cheetah。该数据集的创建源于我们希望获得符合系统要求的高帧率多手动作数据集。我们还在单手场景下，利用三个公开可用的数据集对我们的跟踪器进行了与现有先进方法的对比评估。此外，我们的演示视频也直观展示了该系统的鲁棒性、灵活性以及低延迟特性。

![Image](images/7278961401a4300cfc177a141ac3a5c61a41d51d22089035d89cf81a441f14b8.jpg)

<div style="text-align: center;">Fig. 8. Our three camera rig captures depth data from three views at 180 fps. We use calibrated RGB cameras to perform segmentation of the two hands, each contained in a different glove from both each other and other objects.</div>

### 6.1 Cheetah数据集

现有的3D手部姿态数据集[Sharp et al. 2015; Sridhar et al. 2013; Tang et al. 2016; Tompson et al. 2014; Yuan et al. 2017]在采集设备、数据量、模态或标注方面存在差异。为了便于在算法设计的适用场景（高帧率、快速运动、双手强烈交互）下评估我们的算法，我们收集了一个名为Cheetah的新数据集。该数据集包含来自六名受试者的24个序列，每个受试者分别完成一个单手动作、一个单手持物动作、一个双手交互动作以及一个双手持物交互动作序列。每个序列包含3000帧RGBD图像，采集自两个不同视角：正面视角和第一人称视角。为实现这一采集目标，我们搭建了一个双摄像头采集系统（见图8），可同时从正面和第一人称视角采集RGBD数据。受试者佩戴不同颜色的手套，以便提取两只手的Ground Truth分割掩码（即使存在物体干扰时也能准确提取）。受带宽和同步限制，我们最终只能达到180fps的采集速率——这一数值远低于我们跟踪器的处理速度。为了获得（准）Ground Truth，我们使用了六种经过手动定制的手部模型，通过离线方式用20次迭代和10个初始点将这些模型拟合到完整的3D数据上。对于拟合效果较好的帧，我们会提取每只手五个指尖和手腕的位置信息。我们认为，该数据集在帧率、动作复杂度、交互形式以及场景多样性（如双手、物体）方面的要求，远比现有数据集更为复杂且具有挑战性。事实上，从我们自身方法所得到的较大误差（见图11）便可见一斑，这也说明未来还有很大的改进空间。

### 6.2 自我分析

为了确定最佳的LM迭代次数，我们对Cheetah中的所有单手序列进行了实验。图9(a)显示，6次迭代的效果明显优于3次，而9次迭代能进一步提升在困难情况下的精度，不过到了12次迭代时便出现了饱和现象。能够以高帧率运行正是我们的SDF跟踪器的主要优势。为了证明跟踪效果确实受益于高帧率，我们将180fps的单手序列进行二次采样，模拟出60fps和30fps的场景。图9(b)表明，180fps下的精度确实最佳。由于采集设备的限制，我们无法测试更高的帧率。

我们还以Cheetah为基准开展了一系列实验，以便日后进行比较。不出所料，双手场景比单手场景更难处理，而且当手与物体相互作用时会导致灾难性失效（见图11）。此外，由于

---

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

![Image](images/b2c203d1f8ff06c4d090a1430356fa6905d482105c084c9078c0d5649459b746.jpg)

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

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

<div style="text-align: center;">Fig. 9. (a) Running the SDF tracker with different iterations on one-handed sequences. (b) Running the SDF tracker at different frame rates on one-handed sequences.</div>

![Image](images/b5a07a5b0b5e4200b5e06b601d6161a00ddc5dd7e6a209eb96da2a73087eeadc.jpg)

<div style="text-align: center;">Fig. 10. There are six subjects with personalized models in our Cheetah dataset. To prove the benefits of shape personalization, we fit one sequence of Subject 2 with all six different models. As expected, results show that fitting with Subject 2's model is significantly better.</div>

遮挡范围更大，因此以自我为中心的视角下的精度通常低于正面视角。为了消除对分割器的依赖，我们还利用从彩色手套获取的真实分割结果来运行SDF跟踪器。不出所料，在手与物体相互作用的情况下，真实分割结果确实有帮助。不过，真实分割结果对双手交互场景的改善并不显著。这是因为我们的分割器本身就会尝试区分左右手，且这些信息会被纳入待优化的能量函数中。定性结果如图14所示。

需要注意的是，我们的系统目前并未考虑形状变化，因此针对每位用户都使用了定制模型。为了了解使用错误形状对用户的影响，我们在一组Cheetah序列上尝试了全部六种模型。如图10所示，使用正确模型对精度的影响显而易见。尽管目前尚不清楚如何像其他方法那样为我们的系统构建参数化形状模型，但我们希望我们的SDF公式能够推动新方法的发展，从而以非参数化的方式将形状数据动态整合到SDF中。

### 6.3 在Dexter数据集上的比较

为了与现有技术水平进行比较，我们使用了[Sridhar等人，2013年]发布的Dexter数据集。需要强调的是，该数据集的采集帧率仅为25fps，而我们的跟踪器是为超过180fps的帧率设计的。实际上，在如此低的帧率下，帧与帧之间可能会出现大幅运动，因此精准的重初始化策略至关重要，而我们仅采用了粗略的重初始化器。尽管如此，我们实际上还是超越了

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Subject</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DART asym.</td><td style='text-align: center; word-wrap: break-word;'>32.0</td><td style='text-align: center; word-wrap: break-word;'>34.4</td><td style='text-align: center; word-wrap: break-word;'>47.4</td><td style='text-align: center; word-wrap: break-word;'>21.3</td><td style='text-align: center; word-wrap: break-word;'>19.1</td><td style='text-align: center; word-wrap: break-word;'>35.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>DART symm.</td><td style='text-align: center; word-wrap: break-word;'>14.1</td><td style='text-align: center; word-wrap: break-word;'>12.0</td><td style='text-align: center; word-wrap: break-word;'>24.7</td><td style='text-align: center; word-wrap: break-word;'>14.4</td><td style='text-align: center; word-wrap: break-word;'>12.6</td><td style='text-align: center; word-wrap: break-word;'>26.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SDF Tracker</td><td style='text-align: center; word-wrap: break-word;'>32.3</td><td style='text-align: center; word-wrap: break-word;'>12.2</td><td style='text-align: center; word-wrap: break-word;'>25.2</td><td style='text-align: center; word-wrap: break-word;'>18.1</td><td style='text-align: center; word-wrap: break-word;'>33.8</td><td style='text-align: center; word-wrap: break-word;'>16.5</td></tr></table>

<div style="text-align: center;">Table 1. A comparison of average error in mm between our SDF Tracker and [Schmidt et al. 2014] on the six subjects in the MSRA dataset.</div>

低误差范围内的现有技术水平（见图12曲线左侧），但在高误差范围内表现稍差也就不足为奇了，因为我们的跟踪器会丢失一些帧，这是由于粗略的重初始化器难以完成跟踪重置所致（见图12曲线右侧）。

### 6.4 在MSRA数据集上的比较

为了与[Schmidt等人，2014年]的研究进行比较，我们使用了[Qian等人，2014年]发布的MSRA数据集。不出所料，我们的算法整体性能优于[Schmidt等人，2014年]提出的与我们算法最相似的非对称版本，且与对称版本不相上下。这可能说明了我们的公式所能实现的更精准建模的优势——即采用连续的体积变形而非分解为刚性部件。这也暗示了构建合适的背景以发挥对称项所带来的优势的重要性。

### 6.5 在Handy数据集上的比较

最后，我们还将结果与Handy数据集上[Tkach等人，2016年]提出的Teaser序列的最先进方法进行了比较（见图15）。尽管我们在此处的表现相当不错（这很可能得益于较高的帧率），但我们的系统对所谓的“飞散像素”反应极差，这些像素会持续干扰逐帧跟踪过程。

#### 6.6 与[Tkach等人，2016年]方法的定性比较

在我们的补充视频中，我们对本追踪器与[Tkach等人，2016年]的追踪器进行了并排定性比较。首先需要注意的是，他们的追踪器需要使用腕带来进行手部定位与分割。即便这种方式并未给出关于3个自由度位置的显式先验信息，这种近乎完美的分割结果也会将相关信息隐含地传递给追踪器。相比之下，我们的追踪器需要应对手腕处质量较差的分割结果。其次需要注意的是，该追踪器似乎假定前臂朝向地面，因为手部模型会立刻沿手臂向上移动（见图13）。

### 6.7 虚拟现实中的用户交互

许多研究致力于将基于视觉的手部追踪技术引入虚拟现实领域，旨在实现更灵活的交互，从而带来更无缝、更具沉浸感的体验。诸如Leap Motion控制器之类的技术已经展现了令人瞩目的应用前景：用户可利用手势在模拟物理环境中与物体交互。然而，由于采集背景的非静态特性以及易产生自遮挡现象，以自我为中心的手部追踪颇具挑战性。此外，现有的交互技术通常也仅局限于对空中虚拟按钮或用户界面元素的交互。

---

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

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

![Image](images/166042e3fb351c566dda621ca077ba58dc8d8129bb0e71b15090bb696f0e643f.jpg)

![Image](images/b4a81925e925761f9482f974a43d2e75c0b2606d187f5a8f30b307e35af47335.jpg)

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

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

![Image](images/29f7334f5aa4624c44f1e67d053fd6d3f9c9b9a540db4b5ff992b2982570518b.jpg)

![Image](images/703e5b2a61437ad40a27c60de54236e2087c5237d16ed3b042958681f999a907.jpg)

<div style="text-align: center;">Fig. 11. Quantitative results on our Cheetah dataset. Row 1: tracked with front facing camera only. Row 2: tracked with ego-centric camera only. Column 1: single hand, single hand with an object, two interacting hands, two hands interacting with an object. Results of SDF tracker and SDF tracker conditioned on ground truth segmentation are presented.</div>

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

![Image](images/8975a8ee1b082b2658ab23c03b81d2860d3a6d52579c11fb79a89399ba6b5c53.jpg)

<div style="text-align: center;">Fig. 12. Comparison of SDF tracker, [Taylor et al. 2016], [Sridhar et al. 2015], [Joseph Tan et al. 2016] and [Tagliasacchi et al. 2015] on Dexter.</div>

![Image](images/436c21d5438ebe1d4f522e97c87fffc23890d80ddfb784fb24be6455b0932312.jpg)

<div style="text-align: center;">Fig. 13. Both our tracker and that of [Tkach et al. 2016] track basic poses well (left), but more complex poses, possibly due to frame rate differences between the cameras, seem to fail more often (right) and there seems to be a heavy assumption that the hand is pointed upwards as the model immediately jumps to the back of the forearm when the hand becomes 90 degrees (center). A qualitative side-by-side comparison demonstrating their reliance on a blue wristband and the considerable improvement in robustness and flexibility our tracker offers is demonstrated in the supplementary video.</div>

用户界面元素围绕用户的手部分布，包括动态和静态手势。

我们将手部追踪器集成到HTC Vive VR头戴设备中，探索了双手交互技术，这类技术涉及触摸按钮、一维滑块和二维触控板等用户界面元素，它们被映射到手部的特定区域。这些技术的优势在于：用户无需注视界面即可利用本体感觉进行交互，同时还能获得被动触觉反馈，而空中用户界面则不具备这一特性。

在一项初步的非正式研究中，我们确定了手上适合盲触输入的16个内部触点和7个外部触点，这些触点因触觉敏感度高且纹理清晰可辨而脱颖而出。这些触点包括各手指上的内侧关节褶皱（每根手指3个，拇指2个）、手掌上1个以及手腕上1个，还有各手指的指尖以及手掌外侧的褶皱。我们还确定了5个适合一维滑块输入的区域：其中4个沿每根手指的内侧全长分布，1个位于手掌的外缘。手掌可作为大型触控板，用于相对二维输入，比如平移或滚动操作（详见补充视频）。

## 7 结论

我们提出了一种能够稳健、精准地追踪两只手交互时关节运动的系统。该系统的核心是一种新的关节表面隐式表示方法，可实现极快的基于梯度的优化。确保该系统稳健性的关键在于一种有效的手部分割方法，该方法能为每个像素分配其属于左手、右手或背景的概率。我们在标准序列上验证了该方法与最先进方法相比具有竞争力的性能；由于该方法的设计运行帧率可达180fps及以上，因此我们推出了包含多只手及物体交互场景的新高帧率数据集Cheetah。

---

![Image](images/a2349188e16948460cdfbbe760380558e211e066e5289d3368cb3b9745473b97.jpg)

<div style="text-align: center;">Fig. 14. Qualitative results on the Cheetah dataset. Each row is the result from one frame in Cheetah. Blue points are from the front facing camera and green points from the ego-centric one. Colored gloves are for ground truth annotation and not used during testing. Due to larger occlusion, failures in ego-centric view happen more frequently than the front facing view, e.g., row 3 and row 7.</div>

![Image](images/fd5b33d4ae6ed6f0ebf48b406c839b7dd5e922e15970ac4dedbc020e90ad6572.jpg)

<div style="text-align: center;">Fig. 15. Comparison of SDF tracker, [Taylor et al. 2016], [Sharp et al. 2015], [Tkach et al. 2016] and [Tagliasacchi et al. 2015] on Handy.</div>

## 参考文献

Luca Ballan、Aparna Taneja、Jürgen Gall、Luc Van Gool和Marc Pollefeys。2012年。利用判别性显著点捕捉手部动作的运动轨迹。载于欧洲计算机视觉会议论文集。Springer出版社，第640–653页。

Blender在线社区。2016年。Blender——一款三维建模与渲染软件。Blender基金会，Blender研究所，阿姆斯特丹。<http://www.blender.org>

Thomas J Cashman和Andrew W Fitzgibbon。2013年。海豚的形状是怎样的？从二维图像构建三维可变形模型。《IEEE模式分析与机器智能汇刊》第35卷第1期（2013年），第232–244页。

Dorin Comaniciu和Peter Meer。2002年。均值漂移：一种稳健的特征空间分析方法。《IEEE模式分析与机器智能汇刊》第24卷第5期（2002年），第603–619页。

Martin de La Gorce、David J Fleet和Nikos Paragios。2011年。基于模型的单目视频三维手部姿态估计。《IEEE模式分析与机器智能汇刊》第33卷第9期（2011年），第1793–1805页。

Mingsong Dou、Sameh Khamis、Yury Degtyarev、Philip Davidson、Sean Ryan Fanello，

Adarsh Kowdle、Sergio Orts Escolano、Christoph Rhemann、David Kim、Jonathan

---

Taylor等人。2016年。Fusion4d：复杂场景的实时动作捕捉。《ACM图形学汇刊》（TOG）第35卷第4期（2016年），第114页。

Mingsong Dou、Jonathan Taylor、Henry Fuchs、Andrew Fitzgibbon和Shahram Izadi。2015年。利用单个RGBD传感器扫描可变形物体三维模型。载于IEEE计算机视觉与模式识别会议论文集。第493–501页。

Sean Ryan Fanello、Julien Valentin、Adarsh Kowdle、Christoph Rhemann、Vladimir Tankovich、Carlo Ciliberto、Philip Davidson和Shahram Izadi。2017a。利用HashMatch实现低计算量且完全并行的计算机视觉技术。载于ICCV会议论文集。

Sean Ryan Fanello、Julien Valentin、Christoph Rhemann、Adarsh Kowdle、Vladimir Tankovich、Philip Davidson和Shahram Izadi。2017b。UltraStereo：面向主动立体系统的高效基于学习的匹配算法。载于CVPR会议论文集。

Andrew W Fitzgibbon。2003年。二维与三维点集的稳健配准。《图像与视觉计算》第21卷第13期（2003年），第1145–1153页。

Liuhao Ge、Hui Liang、Junsong Yuan和Daniel Thalmann。2016年。单深度图像中的稳健三维手部姿态估计：从单视图CNN到多视图CNN。载于IEEE计算机视觉与模式识别会议（CVPR）论文集。

Ross Girshick、Jamie Shotton、Pushmeet Kohli、Antonio Criminisi和Andrew Fitzgibbon。2011年。从深度图像中高效回归通用活动人体姿态。载于2011年IEEE国际计算机视觉会议（ICCV）论文集。IEEE出版社，第415–422页。

Je Hyeong Hong和Andrew Fitzgibbon。2015年。矩阵分解的奥秘：近似方法、数值计算、流形优化与随机重启策略。载于IEEE国际计算机视觉会议论文集。第4130–4138页。

Matthias Innmann、Michael Zollhöfer、Matthias Nießner、Christian Theobalt和Marc Stamminger。2016年。Volume Deform：实时体积非刚性重建技术。载于欧洲计算机视觉会议（ECCV）论文集。

Shahram Izadi、David Kim、Otmar Hilliges、David Molyneaux、Richard Newcombe、Pushmeet Kohli、Jamie Shotton、Steve Hodges、Dustin Freeman、Andrew Davison等人。2011年。KinectFusion：利用移动深度相机实现实时3D重建与交互。载于第24届ACM用户界面软件与技术年会论文集。ACM出版社，第559–568页。

David Joseph Tan、Thomas Cashman、Jonathan Taylor、Andrew Fitzgibbon、Daniel Tarlow、Sameh Khamis、Shahram Izadi和Jamie Shotton。2016年。贴合如手套：快速且可靠的手部形状个性化适配。载于IEEE计算机视觉与模式识别会议论文集。第5610–5619页。

Cem Keskin、Furkan Kıraç、Yunus Emre Kara和Lale Akarun。2012年。基于多层随机决策森林的手部姿态估计与手部形状分类。载于IEEE国际计算机视觉会议论文集。第852–863页。

Sameh Khamis、Jonathan Taylor、Jamie Shotton、Cem Keskin、Shahram Izadi和Andrew Fitzgibbon。2015年。从深度图像中学习高效的手部形状变化模型。载于IEEE计算机视觉与模式识别会议论文集。第2540–2548页。

Francois Lekien和J Marsden。2005年。三维空间中的三立方插值。国际数值方法工程杂志，第63卷第3期（2005年），第455–471页。

Jonathan Long、Evan Shelhamer和Trevor Darrell。2014年。用于语义分割的全卷积网络。CoRR abs/1411.4038（2014年）。<http://arxiv.org/abs/1411.4038>

Stan Melax、Leonid Keselman和Sterling Orsten。2013年。基于动力学的3D手部骨骼跟踪。载于2013年图形界面会议论文集。加拿大信息处理协会，第63–70页。

Franziska Mueller、Dushyant Mehta、Oleksandr Sotnychenko、Srinath Sridhar、Dan Casas和Christian Theobalt。2017年。基于以自我为中心的RGB-D传感器的遮挡环境下实时手部跟踪。载于国际计算机视觉会议（ICCV）论文集。第10页。<http://handtracker.mpi-inf.mpg.de/projects/OccludedHands/>

Richard A Newcombe、Dieter Fox和Steven M Seitz。2015年。动态融合：实时重建与跟踪非刚性场景。载于IEEE计算机视觉与模式识别会议论文集。第343–352页。

Markus Oberweger、Paul Wohlhart和Vincent Lepetit。2015a。深度学习在手姿估计中的深入应用。CoRR abs/1502.06807（2015年）。<http://arxiv.org/abs/1502.06807>

Markus Oberweger、Paul Wohlhart和Vincent Lepetit。2015b。训练用于手姿估计的反馈循环。载于IEEE国际计算机视觉会议论文集。第3316–3324页。

Iason Oikonomidis、Nikolaos Kyriazis和Antonis A Argyros。2011年。利用Kinect高效实现基于模型的3D手部关节跟踪。载于BmVC论文集，第1卷。第3页。

Iasonas Oikonomidis、Nikolaos Kyriazis和Antonis A Argyros。2012年。跟踪两只相互强烈作用的手部的关节运动。载于2012年IEEE计算机视觉与模式识别会议（CVPR）论文集。IEEE出版社，第1862–1869页。

Chen Qian、Xiao Sun、Yichen Wei、Xiaoou Tang和Jian Sun。2014年。基于深度数据的实时且鲁棒的手部跟踪。载于IEEE计算机视觉与模式识别会议（CVPR）论文集。

Edoardo Remelli、Anastasia Tkach、Andrea Tagliasacchi和Mark Pauly。2017年。通过局部各向异性缩放进行低维度校准，以实现鲁棒的手部模型个性化适配。载于国际计算机视觉会议论文集。

Tanner Schmidt、Richard A Newcombe和Dieter Fox。2014年。DART：密集的关节实时跟踪。载于《机器人：科学与系统》会议论文集。

Toby Sharp、Cem Keskin、Duncan Robertson、Jonathan Taylor、Jamie Shotton、David Kim、Christoph Rhemann、Ido Leichter、Alon Vinnikov、Yichen Wei等。2015年。精确、稳健且灵活的实时手部跟踪。载于第33届ACM人机交互系统年会论文集。ACM出版社，第3633–3642页。

Jamie Shotton、Andrew Fitzgibbon、Andrew Blake、Alex Kipman、Mark Finocchio、Bob Moore和Toby Sharp。2011年。基于单张深度图像的实时人体部位姿态识别。<https://www.microsoft.com/en-us/research/publication/real-time-human-pose-recognition-in-parts-from-a-single-depth-image/>

Hang Si。2015年。TetGen：一种基于Delaunay剖分的高质量四面体网格生成器。《ACM数学软件交易》（TOMS）第41卷第2期，第11页。

Ayan Sinha、Chiho Choi和Karthik Ramani。2016年。Deephand：通过利用深度特征补全矩阵来实现稳健的手部姿态估计。载于IEEE计算机视觉与模式识别会议论文集。第4150–4158页。

Srinath Sridhar、Franziska Mueller、Antti Oulasvirta和Christian Theobalt。2015年。利用检测引导的优化方法实现快速且稳健的手部跟踪。载于IEEE计算机视觉与模式识别会议论文集。第3213–3221页。

Srinath Sridhar、Antti Oulasvirta和Christian Theobalt。2013年。利用RGB和深度数据实现交互式无标记关节手部运动跟踪。载于IEEE国际计算机视觉会议论文集。第2456–2463页。

Xiao Sun、Yichen Wei、Shuang Liang、Xiaou Tang和Jian Sun。2015年。级联式手部姿态回归。载于IEEE计算机视觉与模式识别会议论文集。第824–832页。

Andrea Tagliasacchi、Matthias Schröder、Anastasia Tkach、Sofien Bouaziz、Mario Botsch和Mark Pauly。2015年。用于实时手部跟踪的稳健关节ICP算法。载于《几何处理研讨会》（计算机图形学论坛）论文集（2015年）。

David Joseph Tan、Thomas Cashman、Jonathan Taylor、Andrew Fitzgibbon、Daniel Tarlow、Sameh Khamis、Shahram Izadi和Jamie Shotton。2016年。贴合如手套：快速可靠的手部形状个性化定制。载于IEEE计算机视觉与模式识别会议。

Danhang Tang、Hyung Jin Chang、Alykhan Tejani和Tae-Kyun Kim。2016年。潜在回归森林：结构化估计3D关节手部姿态。载于《模式分析与机器智能交易》。

Danhang Tang、Jonathan Taylor、Pushmeet Kohli、Cem Keskin、Tae-Kyun Kim和Jamie Shotton。2015年。揭开黑箱之谜：通过分层采样优化来估计人手姿态。载于IEEE国际计算机视觉会议论文集。第3325–3333页。

Jonathan Taylor、Lucas Bordeaux、Thomas Cashman、Bob Corish、Cem Keskin、Toby Sharp、Eduardo Soto、David Sweeney、Julien Valentin、Benjamin Luff等。2016年。通过姿态与对应点的联合连续优化实现高效精准的交互式手部跟踪。《ACM图形学交易》（TOG）第35卷第4期，第143页。

Jonathan Taylor、Richard Stebbing、Varun Ramakrishna、Cem Keskin、Jamie Shotton、Shahram Izadi、Aaron Hertzmann和Andrew Fitzgibbon。2014年。基于单目深度序列的用户专属手部建模。载于IEEE计算机视觉与模式识别会议论文集。第644–651页。

Anastasia Tkach、Mark Pauly和Andrea Tagliasacchi。2016年。用于实时手部建模与跟踪的球面网格。《ACM图形学交易》（SIGGRAPH Asia会议论文集）（2016年）。

Anastasia Tkach、Andrea Tagliasacchi、Edoardo Remelli、Mark Pauly和Andrew Fitzgibbon。2017年。用于手部跟踪的在线生成模型个性化。《ACM图形学交易》（SIGGRAPH Asia会议论文集，已获有条件录用）（2017年）。

Jonathan Tompson、Murphy Stein、Yann Lecun和Ken Perlin。2014年。利用卷积网络实现人手姿态的实时连续恢复。《ACM图形学交易》（ToG）第33卷第5期（2014年），第169页。

Dimitrios Tzionas、Luca Ballan、Abhilash Srikantha、Pablo Aponte、Marc Pollefeys和Juergen Gall。2016年。利用判别性显著点与物理仿真捕捉动作中的手部。《国际计算机视觉杂志》（IJCV）（2016年）。

Chengde Wan、Thomas Probst、Luc Van Gool和Angela Yao。2017年。Crossing Nets：用于手部姿态估计的共享隐空间双生成模型。arXiv预印本arXiv:1702.03431（2017年）。

Qi Ye、Shanxin Yuan和Tae-Kyun Kim。2016年。基于空间注意力机制的深度网络结合部分PSO算法，用于分层混合手部姿态估计。载于《欧洲计算机视觉会议》。Springer International Publishing，第346–361页。

Shanxin Yuan、Qi Ye、Bjorn Stenger、Siddhand Jain和Tae-Kyun Kim。2017年。BigHand2.2M基准测试：手部姿态数据集及最新技术分析。arXiv预印本arXiv:1704.02612（2017年）。

Xingyi Zhou、Qingfu Wan、Wei Zhang、Xiangyang Xue和Yichen Wei。2016年。基于模型的深度手部姿态估计。载于IJCAI会议。
