
# 利用判别性显著点和物理模拟捕捉手部动作

迪米特里奥斯·齐奥纳斯 $^{1,2}$ · 卢卡·巴兰 $^{3}$ · 阿比拉什·斯里坎塔 $^{1,2}$ · 巴勃罗·阿庞特 $^{1}$ · 马克·波勒费斯 $^{3}$ · 尤尔根·加尔 $^{1}$

收稿日期：2014年10月17日 / 录用日期：2016年2月16日 / 在线发布日期：2016年3月18日

© 施普林格科学+商业媒体纽约公司 2016年

## 摘要

手部动作捕捉是一个热门的研究领域，近年来由于RGB-D传感器的普及而受到更多关注。然而，即便是最新的一些方法也仅针对单个孤立手的情况。在本研究中，我们聚焦于与其他手或物体交互的手部，提出了一种能够在此类交互场景中成功捕捉动作的框架，该框架既适用于刚性物体也适用于关节物体。我们的框架结合了生成模型与经过判别性训练的显著点，以实现较低的追踪误差；同时利用碰撞检测与物理模拟，即便在存在遮挡和视觉数据缺失的情况下也能得到符合物理规律的估计结果。由于所有组件都统一在一个几乎处处可微的目标函数中，因此可以使用标准优化技术对其进行优化。我们的方法既适用于单目RGB-D序列，也适用于多台同步RGB相机组成的系统。为了进行定性和定量评估，我们采集了29组包含多种交互场景、自由度高达150的序列。

关键词：手部动作捕捉 · 手-物体交互 · 指尖检测 · 物理模拟

## 1 引言

几十年来，捕捉人类手部的3D动作一直是计算机视觉领域的重要研究课题（Heap和Hogg，1996；Erol等人，2007），因为它对计算机图形学、动画、人机交互、康复以及机器人等众多应用具有重要意义。随着消费级RGB-D传感器技术的近期发展，过去几年中对该领域的研究兴趣日益浓厚（Ye等人，2013；Tompson等人，2014）。尽管手部动作捕捉是全人体追踪的一个特例，但无法通过将已知的人体姿态估计技术（如Shotton等人，2011）直接应用于人手来解决这一问题。虽然手部与全身一样面临骨骼维度高这类挑战，但也存在额外的难点：手部各部位在形状和外观上极为相似，手掌和前臂难以建模，严重的自遮挡现象也十分常见。

由于这些难点，从该领域的早期研究（Heap和Hogg，1996）到最新方法（Tompson等人，2014），研究重点主要放在单个孤立手上。虽然孤立手在手势控制等少数应用中很有用，但人类使用手主要是为了与环境交互并进行操作。

由于这些困难，从该领域最初的研究（Heap和Hogg，1996年）直到最近的方法（Tompson等人，2014年），主要都聚焦于单只孤立的手。虽然孤立的手在手势控制等少数应用中很有用，但人类使用手主要是为了与环境互动以及进行物体操控。

---

物体。因此，在本研究中我们重点关注处于活动状态的手，即与其他手或物体发生交互的手。迄今为止，仅有少数研究涉及这一问题（Hamer等人，2009年、2010年；Oikonomidis等人，2011b年、2012年、2014年；Kyriazis和Argyros，2013年、2014年）。Hamer等人（2009年）仅将物体视为遮挡物，而Hamer等人（2010年）则从被操纵的物体中推导出姿态先验以辅助手部追踪。不过，这种方法假设有可用的训练数据来学习该先验。另一种建模物体与手之间交互的方法基于碰撞或物理模型。在粒子群优化（PSO）框架内，Oikonomidis等人（2011b年、2012年）用球体来近似手部，以检测并避免碰撞。在同一框架下，Kyriazis和Argyros（2013年、2014年）通过使用物理模拟来推测一个或多个刚体物体的状态，从而丰富了粒子集。

与采用基于采样的优化方法（如PSO）不同，本研究提出了一种单一的目标函数，该函数将数据项（用于使模型与观测数据对齐）与碰撞及物理模型结合起来。我们的目标函数的优势在于它可以通过标准优化技术进行优化。在实验中，我们采用局部优化方法，并通过判别性学习的显著点来丰富目标函数，以避免因局部最小值导致的姿态估计误差。像指尖这样的显著点，在Rehg和Kanade（1994年）的早期研究中已被使用。然而，与他们的研究场景不同的是，由于大量的遮挡以及这些特征外观的相似性，这些显著点无法被连续追踪。因此，我们无法依赖显著点与相应手指之间的固定关联。为解决这一问题，我们提出了一种新颖的方法，将显著点关联问题与手部姿态估计问题一并求解。

本文的初步版本发表于（Ballan等人，2012年；Tzionas等人，2014年）。本研究整合了多台同步RGB相机的姿态估计方法（Ballan等人，2012年）以及单目RGB-D相机的姿态估计方法（Tzionas等人，2014年）。此外，目标函数还加入了物理模型，从而提升了手部姿态的真实感与物理合理性。在实验中，我们针对29个序列从定性和定量两方面评估了我们的方法，并首次展示了两只手与非刚性物体强烈交互时的成功追踪结果。

## 2 相关工作

手部运动追踪研究始于20世纪90年代（Rehg和Kanade，1994年、1995年）。尽管通过数据手套（Ekvall和Kragic，2005年）、彩色手套（Wang和Popović，2009年）、标记点（Vaezi和Nekouie，2011年）或可穿戴传感器（Kim等人，2012年）可以简化这一问题，但人们追求的理想解决方案仍是无干扰、无标记的手部运动捕捉。

为了实现这一目标，最早的手部追踪方法之一（Rehg和Kanade于1994年提出）引入了在该领域应用局部优化的思路。此后出现了多种滤波方法（MacCormick和Isard于2000年；Stenger等人于2001年；Wu等人于2001年；Bray等人于2007年），而信念传播也被证明适用于关节物体（Hamer等人于2010年、2009年；Sudderth等人于2004年）。Oikonomidis等人（2011a）采用粒子群优化算法作为随机搜索手段，后来他们又提出了一种利用准随机采样的新型进化算法（Oikonomidis等人于2014年）。Kim等人（2012年）以及Wang和Popović（2009年）使用了逆运动学方法，而Heap和Hogg（1996年）以及Wu等人（2001年）则通过线性子空间来缩小搜索范围。Athitsos和Sclaroff（2003年）采用了概率线匹配技术，Thayananthan等人（2003年）则将贝叶斯滤波与Chamfer匹配相结合。最近，Schmidt等人（2014年）将常用的有符号距离函数表示法扩展到了关节物体上，Qian等人（2014年）则将基于梯度的ICP方法与粒子群优化算法结合，证明了这两种方法的互补性。Sridhar等人（2013年）探索了在RGB图像上使用高斯求和模型进行手部追踪的方法，后来该模型被各向异性高斯求和模型取代（Sridhar等人于2014年）。

所有这些方法的共同点是它们都属于生成式模型。它们利用显式模型来生成姿态假设，再将这些假设与观测数据进行比较评估。评估过程基于一个目标函数，该函数通过计算姿态估计值（假设）与观测数据之间的误差来衡量相似度。为了使问题易于求解，每次迭代都以上一步的姿态估计值为初始值，因此这类方法严重依赖时间连续性，也容易出现累积误差。目标函数是在高维连续参数空间中进行评估的。近期的一些方法放宽了对固定预定义形状模型的假设，允许在线进行非刚性形状变形（Taylor等人于2014年），从而能够更好地拟合数据并实现针对用户的个性化适配。

判别式方法则是学习从观测到的图像特征到离散（Athitsos和Sclaroff于2003年；Romero等人于2009年、2010年）或连续（de Campos和Murray于2006年；Rosales等人于2001年）目标参数空间的直接映射关系。有些方法会先对身体部位进行分割，再在第二步中估计姿态（Tompson等人于2014年；Keskin等人于2012年）。大多数方法仅基于单帧图像工作，因此不会因误差累积而产生姿态漂移现象。要实现对光照、关节运动和视角变化情况的泛化能力，必须有具有代表性的训练数据支撑。然而，获取并标注真实的训练数据是一项繁琐且成本高昂的过程。

---

![Image](images/79764df209f9dcc837b361d030fb546ea9db5553f02128728140db1d2e5efb96.jpg)

<div style="text-align: center;">Fig. 1 Qualitative results of our approach for the case of hand-hand interaction. Each pair shows the aligned RGB and depth input images after depth thresholding along with the pose estimate</div>

正因如此，大多数方法依赖于带有真实标注的合成渲染数据（Keskin等人于2012年；Romero等人于2010年）。使用这类数据时需格外注意避免过拟合训练集，而真实数据与合成数据之间的差异也是一个重要的限制因素。近期的研究（Tang等人于2013年）试图通过传导回归森林来解决这一问题，从而将完全标注的合成数据中的知识迁移到部分标注的真实数据中。最后，判别式方法的精度在很大程度上取决于所使用特征的不变性、可重复性和区分能力，其精度相比生成式方法更低（见图1）。

判别性方法能够有效地补充生成性方法，无论是在初始化还是恢复方面，都能推动优化框架远离搜索空间中的局部最小值，从而帮助其收敛到全局最小值。Sridhar等人（2013年）在实时系统中将高斯求和（SoG）生成模型与基于线性SVM分类器的深度图像指尖检测器相结合，该检测器是通过判别训练得到的。此外，该模型也可以与基于随机森林的部件分类器结合使用（Sridhar等人，2015年）。最近，Sharp等人（2015年）将PSO优化器与一种鲁棒的两阶段回归重新初始化器相结合，该初始化器能够根据单个RGB-D帧预测手部姿态的分布。

生成性和判别性方法在手部跟踪中使用了多种低级图像线索，这些线索通常会被组合使用，包括轮廓、边缘、阴影、颜色、光流（Lu等人，2003年；Gorce等人，2011年）；而随着RGB-D传感器的普及，深度信息也日益受到重视（Delamarre和Faugeras，2001年；Bray等人，2007年；Hamer等人，2009年；Oikonomidis等人，2011a、2012年；Sridhar等人，2013年；Tompson等人，2014年；Schmidt等人，2014年；Qian等人，2014年）。在本研究中，我们在一个统一框架内将生成模型与由霍夫森林检测到的判别性显著点相结合（Gall等人，2011年），即分别利用彩色图像检测指甲，利用深度图像检测指尖。作为低级线索，我们对RGB序列使用边缘和光流，对RGB-D序列则使用深度信息。

## 3 姿态估计

我们用于捕捉手部及被操纵物体运动的方法可应用于RGB-D序列和多视角RGB序列。在这两种情况下，手部和物体的建模方式均与第3.1节所述一致。RGB-D序列与RGB序列之间的主要区别在于所使用的数据项不同，前者依赖于深度信息，后者则依赖于边缘和光流。因此，我们首先在第3.2节介绍单目RGB-D序列的目标函数，并在第3.3节说明RGB序列的相关差异。

### 3.1 手部与物体模型

我们采用了常用的线性混合蒙皮（LBS）模型（Lewis等人，2000年），该模型由一个带有底层运动学骨架的三角网格以及一组蒙皮权重构成，如图2a–c所示。在我们的实验中，一对手的三角网格是通过3D扫描技术获得的，而几个物体（球、立方体、管道、绳索）的网格则是用3D图形软件手动创建的。部分物体如图3所示。我们手动定义了描述运动链的结构并将其拟合到网格中。蒙皮权重$\kappa_{v,j}$用于定义骨骼j对3D顶点v的影响，其中$\sum_{j} \kappa_{v,j} = 1$。图4展示了以每个顶点的最大蒙皮权重作为骨骼关联的网格情况。每个网格的变形由其底层骨架驱动，骨架的姿态参数向量为$\theta$，通过蒙皮权重体现，这一过程由LBS算子表示：

![Image](images/826901d1ff7a5636902f1fdea58a26a2fa8e1c0b585e3ed3cc48441fca41e879.jpg)

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

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

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

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

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

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

<div style="text-align: center;">Fig. 2 Hand model used for tracking. a Mesh, b Kinematic Skeleton, c degrees of freedom (DoF), d-f mesh fingertips (green) used for the salient point detector. The vertices of the fingertips are found based on the manually annotated red vertices. The centroid of the fingertips, as defined in Sect. 3.2.5, is depicted with yellow color (Color figure online).</div>

---

![Image](images/421af891180fc18035b3a999a706f759482d2afc70c6d0c7104ee54687d1d739.jpg)

<div style="text-align: center;">Fig. 3 Object models used for tracking and their DoF: (top-left) a rigid ball with 6 DoF; (top-right) a rigid cube with 6 DoF; (middle) a pipe with 1 revolute joint, i.e. 7 DoF; (bottom) a rope with 70 revolute joints, i.e. 76 DoF</div>

![Image](images/804881075c806a2d465d9b91785bec3449b5c45bffd5a94f0a0b41a669a5c0b1.jpg)

<div style="text-align: center;">Fig. 4 Segmentation of the meshes based on the skinning weights. The ball and the cube are rigid objects while the pipe and rope are modeled as articulated objects. Each hand has 20 skinning bones, the pipe has 2, while the rope has 36</div>

 $$ \mathbf{v}(\theta)=\sum_{j}\kappa_{\mathbf{v},j}T_{j}(\theta)T_{j}(0)^{-1}\mathbf{v}(0) $$

其中$T_j(0)$和$\mathbf{v}(0)$分别表示已知绑定姿态下的骨骼变换和顶点位置。蒙皮权重的计算采用Baran和Popović（2007年）的方法。

全局刚体运动由6个自由度的扭转$\vartheta\xi = \vartheta(u_1, u_2, u_3, \omega_1, \omega_2, \omega_3)$表示，其中$\|\omega\| = 1$（Bregler等人，2004年；Murray等人，1994年；Pons-Moll和Rosenhahn，2011年）。扭转作用$\vartheta\hat{\xi} \in se(3)$的形式为$4 \times 4$矩阵：

 $$ \vartheta\hat{\xi}=\vartheta\begin{pmatrix}\hat{\omega}&u\\ 0_{1\times3}&0\end{pmatrix}=\vartheta\begin{pmatrix}0&-\omega_{3}&\omega_{2}&u_{1}\\ \omega_{3}&0&-\omega_{1}&u_{2}\\ -\omega_{2}&\omega_{1}&0&u_{3}\\ 0&0&0&0\end{pmatrix} $$

指数映射算子$\exp(\vartheta\hat{\xi})$定义了群作用：

 $$ T(\vartheta\hat{\xi})=\left(\begin{matrix}{R_{3\times3}t_{3\times1}}\\ {0_{1\times3}\quad1}\\ \end{matrix}\right)=\operatorname{e x p}(\vartheta\hat{\xi})\in{S E}(3). $$

对于刚性物体而言，其运动由$\theta = \vartheta \xi$描述，而铰接物体则具有额外的参数。我们通过旋转关节来对关节进行建模。具有一个自由度的关节由单个旋转关节来建模，即相应骨骼j的变换由$\exp(\vartheta_{p(j)} \xi_{p(j)}) \exp(\vartheta_{j} \xi_{j})$给出，其中$p(j)$表示父骨骼。如果某块骨骼没有父骨骼，它即为全局刚性变换。因此，具有一个旋转关节的物体，其变换可由$\theta = (\vartheta \xi, \vartheta_1)$来描述。具有两个或三个自由度的关节则由多个$K_j$旋转关节组合而成，即$\prod_{k=1}^{K_j} \exp(\vartheta_{j,k} \xi_{j,k})$。为简便起见，我们用$\hat{T}_j(\theta) = \prod_{k=1}^{K_j} \exp(\vartheta_{j,k} \xi_{j,k})$来表示骨骼j的相对变换。骨骼j的全局变换则可递归地定义为：

 $$ T_{j}(\theta)=T_{p(j)}(\theta)\hat{T}_{j}(\theta). $$

在我们的实验中，一只手包含31个旋转关节，即37个自由度，如图2c所示。刚性物体有6个自由度。图3中所示的非刚性形状的形变是通过骨架来近似表示的。管道有1个旋转关节，即7个自由度；而绳索则有70个旋转关节，即76个自由度。因此，对于两只手相互作用的序列，我们需要估计全部74个自由度，再加上绳索的150个自由度。

### 3.2 目标函数

我们的姿态估计目标函数由七项组成：

 $$ \begin{aligned}E(\theta,D)&=E_{model\rightarrow data}(\theta,D)+E_{data\rightarrow model}(\theta,D)\\&+\gamma_{c}E_{collision}(\theta)+E_{salient}(\theta,D)\\&+\gamma_{ph}E_{physics}(\theta)+\gamma_{a}E_{anatomy}(\theta)\\&+\gamma_{r}E_{regularization}(\theta)\\ \end{aligned} $$

其中$\theta$是模板网格的姿态参数，D为当前预处理后的深度图像。预处理过程将在3.2.1节中说明。前两项用于最小化变换后网格与深度数据之间的对齐误差。对齐误差通过$E_{model \to data}$来衡量，该指标反映模型对观测到的深度数据的拟合程度；$E_{data \to model}$则衡量深度数据被模型解释的程度。$E_{salient}$用于衡量生成模型与图像中检测到的显著点之间的一致性。该项在我们框架中的主要作用是纠正生成模型的跟踪误差。$E_{collision}$会对手指相交的情况进行惩罚，$E_{physics}$也是如此。

---

这两项能够提升与物体交互时抓取姿态的真实感。$E_{collision}$和$E_{physics}$两项都能确保姿态符合物理规律且互为补充。$E_{anatomy}$这一项用于强制满足解剖学上的关节限制，最后一项则是简单的正则化项，当观测数据不足以确定姿态时，它会倾向于采用前一帧的解。

接下来，我们将详细介绍目标函数$(5)$的各项内容及其优化方法。

#### 3.2.1 预处理

在进行姿态估计时，我们首先通过设定深度值阈值来去除RGB-D图像中的无关部分，从而避免对距离较远的点进行不必要的处理（如法线计算）。由于无需将手从手臂中分离出来，因此我们并未执行分割操作。随后，我们对RGB图像应用肤色分割算法（Jones和Rehg，2002）。最终得到的是经过掩码处理的RGB-D图像，在公式(5)中记为D。肤色分割能够将手与非肤色物体区分开，从而为手和物体的跟踪提供便利。

#### 3.2.2 将模型拟合到数据上——LO $_{m2d}$

公式(5)中的第一项旨在将由姿态参数$\theta$参数化的网格拟合到预处理后的数据D上。为此，需根据传感器的校准数据将深度值转换为三维点云。随后利用双边滤波器（Paris和Durand，2009）对点云进行平滑处理，并计算法线（Holzer等人，2012）。对于模型$\mathbf{v}_i(\theta)$中的每个可见顶点，以其法线$\mathbf{n}_i(\theta)$为基准，我们在点云中寻找最近的点$X_i$。这样便为每个顶点建立了三维-三维对应关系。若顶点与最近点的法线夹角大于$45^\circ$，或者两点间的距离超过10毫米，则舍弃该对应关系。于是我们可以将项$E_{\text{model} \to \text{data}}$表示为点对点距离的最小平方误差：

 $$ E_{m o d e l\rightarrow d a t a}(\theta,D)=\sum_{i}\|\mathbf{v}_{i}(\theta)-X_{i}\|^{2} $$

点对点距离的替代方案是点对面距离，这种度量方式常用于三维重建（Chen和Medioni，1991；Rusinkiewicz和Levoy，2001；Rusinkiewicz等人，2002）。在这种情况下：

 $$ E_{{m o d e l\to d a t a}}(\theta,D)=\sum_{i}\|\mathbf{n}_{i}(\theta)^{T}(\mathbf{v}_{i}(\theta)-X_{i})\|^{2}\;. $$

这两种距离度量方法将在4.1.1节中进行评估。

#### 3.2.3 将数据拟合到模型——LO $_{d2m}$

正如我们的实验所示，仅将模型拟合到数据上并不足够。尤其是存在自遮挡情况的姿态，其误差可能极低，因为该度量仅评估模型可见部分与点云的拟合程度。第二项$E_{data \to model}(\theta, D)$负责将数据与模型匹配，以确保解不会退化，并能尽可能好地解释数据。不过，将数据与模型匹配的计算成本更高，因为每次迭代后姿态都会发生变化，这就需要在每次迭代后更新用于匹配的数据结构，例如距离场或kd树。因此，我们将匹配范围限定在深度不连续处（Gall等人，2011a）。为此，我们利用边缘检测器（Canny，1986）从深度图以及模型的投影深度轮廓中提取深度不连续处。同样通过寻找最近点来建立对应关系，只不过这次是在深度图像中利用二维距离变换来实现（Felzenszwalb和Huttenlocher，2004）。与$E_{model \to data}(\theta, D)$类似，我们也会舍弃距离过大的对应关系。不过，数据D中深度不连续处的深度值可靠性较低，这不仅源于前景与背景之间的深度歧义，还由于消费级传感器的噪声影响。因此，D中该点的深度是通过局部$3 \times 3$个像素邻域内的平均值来计算的，且异常值距离阈值被提高到了30毫米。这种近似足以用于剔除异常值，但不足以用于最小化计算。对于D中每个匹配的点，我们都会计算出其投影射线，该射线可用Plücker线唯一表示（Pons-Moll和Rosenhahn，2011；Rosenhahn等人，2007；Stolfi，1991），其方向为$\mathbf{d}_i$，矩为$\mathbf{m}_i$；随后针对每对对应关系，最小化投影射线与顶点$\mathbf{v}_i(\theta)$之间的最小平方误差：

 $$ E_{data\rightarrow m o d e l}(\theta,D)=\sum_{i}\|\mathbf{v}_{i}(\theta)\times\mathbf{d}_{i}-\mathbf{m}_{i}\|^{2} $$

我们将基于深度不连续处的匹配方式与利用kd树将点云直接匹配到模型的方式进行了比较。直接匹配方式会使运行时间增加40%甚至更多，却并未降低误差。

#### 3.2.4 碰撞检测——C

碰撞检测基于“两个物体不能占据同一空间”这一观察结果，在出现自我穿透、手指间穿透或如图5所示的一般性密集交互情况时，碰撞检测具有重要意义。

网格之间的碰撞是通过利用包围盒层次结构（BVH）高效找出发生碰撞的三角形集合C来检测的（Teschner等人，2004年）。为了

---

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

<div style="text-align: center;">Fig. 5 “Walking” sequence. Without the collision term unrealistic mesh intersections are observed during interactions</div>

为了惩罚碰撞和穿透现象，我们并未对整个网格使用有符号三维距离场，因为其计算复杂度极高，且每次优化框架迭代时都需重新计算。取而代之的是，我们采用了更高效的方法：利用由发生碰撞的三角形集合C定义的局部三维距离场，如图6所示，这些距离场呈锥形。若存在多次碰撞，则如图中所示，所定义的锥形距离场会相互叠加。一旦找到两个三角形$f_t$与$f_s$之间的碰撞，就可通过锥形距离场内的位置来计算穿透量。距离场的值代表了所需的排斥力大小，用以惩罚这种侵入行为。

我们假设$f_t$的顶点为侵入物，而三角形$f_s$为承受穿透的一方；相反的情况也类似。用于计算三维距离场$\Psi_{f_s} : \mathbb{R}^3 \to \mathbb{R}_+$的圆锥体是由三角形$f_s$的外心定义的。设$\mathbf{n}_{f_s} \in \mathbb{R}^3$为三角形的法线，$\mathbf{o}_{f_s} \in \mathbb{R}^3$为外心，$r_{f_s} \in \mathbb{R}_{>0}$为外接圆的半径，则有

 $$ \Psi_{f_{s}}(\mathbf{v}_{t})=\left\{\begin{array}{l l}{|(1-\varPhi(\mathbf{v}_{t}))\varUpsilon(\mathbf{n}_{f_{s}}\cdot(\mathbf{v}_{t}-\mathbf{o}_{f_{s}}))|^{2}}&{\varPhi(\mathbf{v}_{t})<1}\\ {0}&{\varPhi(\mathbf{v}_{t})\geq1}\\ \end{array}\right. $$

 $$ \Phi(\mathbf{v}_{t})=\frac{\|(\mathbf{v}_{t}-\mathbf{0}_{f_{s}})-(\mathbf{n}_{f_{s}}\cdot(\mathbf{v}_{t}-\mathbf{0}_{f_{s}}))\mathbf{n}_{f_{s}}\|}{-\frac{r_{f_{s}}}{\sigma}(\mathbf{n}_{f_{s}}\cdot(\mathbf{v}_{t}-\mathbf{0}_{f_{s}}))+r_{f_{s}}} $$

 $$ \begin{aligned}\gamma(x)=\begin{cases}-x+1-\sigma&x\leq-\sigma\\-\frac{1-2\sigma}{4\sigma^{2}}x^{2}-\frac{1}{2\sigma}x+\frac{1}{4}(3-2\sigma)&x\in(-\sigma,+\sigma)\\0&x\geq+\sigma.\end{cases}\end{aligned} $$

项$\varPhi$会将顶点$\mathbf{v}$投影到由三角形法线$\mathbf{n}$定义、且经过外心$\mathbf{o}$的直圆锥轴上，并测量其到该轴的距离，如图6所示。该距离会按该处圆锥的半径进行缩放。若$\varPhi(\mathbf{v}) < 1$，则顶点位于圆锥内部；若$\varPhi(\mathbf{v}) = 0$，则顶点位于轴上。项$\varUpsilon$用于衡量投影点与外心的距离，从而确定排斥力的强度。若$\varUpsilon < 0$，则投影点位于三角形后方。在范围$(-\sigma, +\sigma)$内，惩罚项为二次函数，取值介于0到1之间；若穿透量大于$|\sigma|$，惩罚项则变为线性函数。参数$\sigma$还定义了圆锥的视野范围，其值固定为0.5。

对于每个穿透三角形的顶点，都会计算出一个以三维-三维对应关系形式存在的排斥项，用以将顶点推回原位。排斥的方向由顶点的反向法线决定，其强度则由$\Psi$确定。利用点对点距离，可为发生碰撞的三角形集合C计算出相应的排斥对应关系：

 $$ \begin{aligned}E_{collision}(\theta)=&\sum_{(\boldsymbol{f}_{s}(\theta),\boldsymbol{f}_{t}(\theta))\in\mathcal{C}}\Biggl\{\sum_{\mathbf{v}_{s}\in\boldsymbol{f}_{s}}\|-\boldsymbol{\varPsi}_{f_{t}}(\mathbf{v}_{s})\mathbf{n}_{s}\|^{2}\\&+\sum_{\mathbf{v}_{t}\in\boldsymbol{f}_{t}}\|-\boldsymbol{\varPsi}_{f_{s}}(\mathbf{v}_{t})\mathbf{n}_{t}\|^{2}\Biggr\}\end{aligned} $$

尽管未明确说明，但$f_s$和$f_t$依赖于$\theta$，因此也依赖于$\Psi$、$\mathbf{v}$和$\mathbf{n}$。对于点到平面的距离而言，由于$\mathbf{n}^T\mathbf{n} = 1$的存在，方程得以简化：

 $$ \begin{aligned}E_{collision}(\theta)=&\sum_{(\boldsymbol{f}_{s}(\theta),\boldsymbol{f}_{t}(\theta))\in\mathcal{C}}\Biggl\{\sum_{\mathbf{v}_{s}\in\boldsymbol{f}_{s}}\|-\boldsymbol{\Psi}_{\boldsymbol{f}_{t}}(\mathbf{v}_{s})\|^{2}\\&+\sum_{\mathbf{v}_{t}\in\boldsymbol{f}_{t}}\|-\boldsymbol{\Psi}_{\boldsymbol{f}_{s}}(\mathbf{v}_{t})\|^{2}\Biggr\}\end{aligned} $$

![Image](images/245fedbc11cf4c63c5379c2d5a22c78c77d63cc31c7b4e411e3d28e8ba7eef06.jpg)

![Image](images/4c77d7c4299f768193cae8a30775b6fd0d0ed8cb0f38cc97fd8f5ecac968fd7f.jpg)

![Image](images/fed80f1c758ff1645ad4c3b51425f143c60be161cb8745ea0cbe7d93474ffd77.jpg)

<div style="text-align: center;">Fig. 6 (Left) Domain of the distance field  $\Psi_{f_s}$ generated by the face  $f_s$. (Middle) Longitudinal section of the distance field  $\Psi_{f_s}$: darker areas correspond to higher penalties. (Right) Distance fields add up in case of multiple collisions</div>

---

该项会参与到由权重$\gamma_{c}$调节的目标函数（5）中。不同$\gamma_{c}$值的评估结果将在4.1.3节中介绍。

#### 3.2.5 显著点检测—S

目前我们的方法基于生成式模型，该模型原则上能提供精确的解，但面对歧义情况和跟踪误差时恢复速度较慢。不过，通过将判别性训练的显著点检测器整合到生成式模型中，便可弥补这一不足。

为此，我们在原始深度数据上训练一个指尖检测器。我们手动标注 $^{1}$ 56 个序列（共约 2000 帧）的指尖，其中 32 个序列构成训练集，24 个构成测试集。我们使用 Hough forest（Gall et al. 2011），包含 10 棵树，每棵树用 100000 个正样本块和 100000 个负样本块训练。负样本块从背景中均匀采样。树的最大深度为 25，最小叶节点大小为 20 个样本。每个块的大小为 $16 \times 16$，由 11 个特征通道组成：2 个通道由 $5 \times 5$ 最小和最大滤波后的深度通道获得，9 个梯度特征通过使用 $5 \times 5$ 单元和软分箱的 9 个 HOG 方向 bin 获得。至于测试节点处的分裂函数池，我们随机生成一组 20000 个二值测试。测试在多个尺度上进行，并使用非极大值抑制来保留重叠不超过 50% 的最有把握的检测结果。

由于我们仅利用显著点来增强鲁棒性，因此通常只需稀疏的指尖检测结果即可。因此，我们选取置信度较高的检测结果，实验中设定的阈值为$c_{thr} = 3.0$。图2d–f中所展示的模型生成的T个指尖$\phi_t$与S个检测结果$\delta_s$之间的对应关系，是通过整数规划方法确定的（Belongie等人，2002年）：

 $$ \begin{aligned}&\underset{e_{st},\alpha_{s},\beta_{t}}{arg\min}\quad\sum_{s,t}e_{st}w_{st}+\lambda\sum_{s}\alpha_{s}w_{s}+\lambda\sum_{t}\beta_{t}\\&subject to\quad\sum_{s}e_{st}+\beta_{t}=1\quad\forall t\in\{1,...,T\}\\&\quad\sum_{t}e_{st}+\alpha_{s}=1\quad\forall s\in\{1,...,S\}\\&\quad e_{st},\alpha_{s},\beta_{t}\in\{0,1\}\end{aligned} $$

如表1所示，$e_{st} = 1$定义了检测结果$\delta_{s}$与指尖$\phi_{t}$之间的对应关系。匹配成本由$w_{st}$确定。如果$\alpha_{s} = 1$，则该检测结果$\delta_{s}$会被判定为误检。

<div style="text-align: center;">Table 1 The graph contains T mesh fingertips $\phi_{t}$ and S fingertip detections $\delta_{s}$</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">(a)</td><td colspan="5">Fingertips $\phi_{{t}}$</td><td style='text-align: center; word-wrap: break-word;'>V</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha$</td></tr><tr><td rowspan="5">$\text{Detections} \delta_{{s}}$</td><td style='text-align: center; word-wrap: break-word;'>$\delta_{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{11}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{12}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$w_{{1T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda w_{{1}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{21}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{22}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$w_{{2T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda w_{{2}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{3}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{31}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{32}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$w_{{3T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda w_{{3}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\ddots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{S}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{S1}}$</td><td style='text-align: center; word-wrap: break-word;'>$w_{{S2}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$w_{{S T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda w_{{S}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V</td><td style='text-align: center; word-wrap: break-word;'>$\beta$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda$</td><td style='text-align: center; word-wrap: break-word;'>$\lambda$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$\lambda$</td><td style='text-align: center; word-wrap: break-word;'>$\infty$</td></tr><tr><td rowspan="2">(b)</td><td colspan="5">Fingertips $\phi_{{t}}$</td><td style='text-align: center; word-wrap: break-word;'>V</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$\phi_{{T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha$</td></tr><tr><td rowspan="5">$\text{Detections} \delta_{{s}}$</td><td style='text-align: center; word-wrap: break-word;'>$\delta_{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{11}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{12}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$e_{{1T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha_{{1}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{21}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{22}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$e_{{2T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha_{{2}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{3}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{31}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{32}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$e_{{3T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha_{{3}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\ddots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td><td style='text-align: center; word-wrap: break-word;'>$\vdots$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\delta_{{S}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{S1}}$</td><td style='text-align: center; word-wrap: break-word;'>$e_{{S2}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$e_{{S T}}$</td><td style='text-align: center; word-wrap: break-word;'>$\alpha_{{S}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>V</td><td style='text-align: center; word-wrap: break-word;'>$\beta$</td><td style='text-align: center; word-wrap: break-word;'>$\beta_{{1}}$</td><td style='text-align: center; word-wrap: break-word;'>$\beta_{{2}}$</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>$\beta_{{T}}$</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr></table>

将检测结果$\delta_{s}$分配给指尖$\phi_{t}$的成本由表(a)中的$w_{st}$给出。将某个检测结果判定为假阳性的成本为$\lambda w_{s}$，其中$w_{s}$表示检测结果的置信度。不将任何检测结果分配给指尖$\phi_{t}$的成本则由$\lambda$表示。表(b)中的二元解需满足每行和每列之和均为1的约束。

若匹配成本为$\lambda w_{s}$，则该检测结果被判定为误检；若$\beta_{t} = 1$，则指尖$\phi_{t}$不会被分配给任何检测结果，对应成本为$\lambda$。

权重$w_{st}$由检测结果$\delta_{s}$与模型中的手指$\phi_{t}$之间的三维距离决定。对于每根手指$\phi_{t}$，模型中会标记一组顶点。随后计算$\phi_{t}$可见顶点的三维质心（见图2d–f）与检测区域$\delta_{s}$的质心之间的距离，后者是根据检测结果边界框对应的三维点云$\delta_{s}^{\prime}$计算得出的。对于权重$w_{s}$，我们研究了两种方法：第一种方法采用$w_{s} = 1$；第二种方法则通过设置$c_{s}$来考虑检测结果的置信度$w_{s} = \frac{c_{s}}{c_{thr}}$。加权参数$\lambda$会在4.1.2节中进行评估。

如果某个检测结果$\delta_s$与指尖$\phi_t$相关联，我们就需要确定$\phi_t$的可见顶点集合与该检测点云$\delta'_s$之间的对应关系。如果指尖$\phi_t$已经非常接近$\delta'_s$，即满足$w_{st} < 10mm$的条件，我们就不会计算任何对应关系，因为该检测器的定位精度并不更高。在这种情况下，指尖$\phi_t$与数据的近距离接触就足以实现良好的对齐。否则，我们就会像图7a中展示的那样，计算顶点$v_i$与检测结果$X_i$中的点$\delta'_s$之间的最近点：

---

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

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

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

<div style="text-align: center;">Fig. 7 Correspondences between the fingertips  $\phi_t$ of the model and a the closest points of the associated detections  $\delta'_s$, b the centroids of the associated detections  $\delta'_s$</div>

 $$ E_{s a l i e n t}(\theta,D)=\sum_{s,t}e_{s t}\Bigg(\sum_{(X_{i},\mathbf{v}_{i})\in\delta_{s}^{\prime}\times\phi_{t}}\|\mathbf{v}_{i}(\theta)-X_{i}\|^{2}\Bigg) $$

如公式(7)所示，可以用点到平面的距离度量来替代点到点的度量。当$\phi_{t}$中少于50%的顶点投影在检测边界框内时，我们甚至无需执行计算顶点与检测点云之间对应关系的额外步骤。取而代之的是，我们会将所有顶点与检测点云的质心相关联，如图7b所示。

#### 3.2.6 物理模拟—P

在手与物体交互的场景中，由于遮挡或数据缺失而导致的物理上不现实的姿态是一种常见现象。图8展示了这样一个例子：一个立方体被两根手指抓住并移动。由于与立方体接触的一根手指被遮挡，因此估算出的姿态在物理上是不现实的。在重力的作用下，这个立方体会掉落下来。

为了在手与物体交互场景中弥补这一问题，我们采用物理模拟技术（Coumans 2013）来增加真实感和物理合理性。为此，我们会对静态场景进行建模；基于重力以及每个物体的摩擦、恢复力和质量参数，我们可以运行物理模拟。为了加快模拟速度，我们会将图4中由蒙皮权重定义的每个物体或物体部件表示为凸包，这一过程如图9所示。

根据手部及被操纵物体的当前姿态估计值，我们首先评估当前解是否在物理上合理。为此，我们以0.1秒的时间步长运行35次模拟。如果物体的质心移动距离小于3毫米，我们就认为该解是稳定的。否则，我们就必须寻找能使估计结果更稳定的手部姿态。由于评估所有可能的手部姿态是不可行的，因此我们仅搜索那些只需对手部姿态做微小调整的配置。

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

![Image](images/e1eaf6ab28469669c978ed8af3182522757a98652b04217d7f5d9a91cc4bd566.jpg)

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

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

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

<div style="text-align: center;">Fig. 8 Physical plausibility during hand–object interaction. a Input RGB-D image. b–c Obtained results without the physics component. d Obtained results with the physics component, ensuring a more realistic pose during interaction</div>

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

<div style="text-align: center;">Fig. 9 Low resolution representation of the hands and objects for the physics simulation. In order to predict the finger parts (green) that give the physically most stable results if they were in contact with the object (white), all combinations of finger parts close to the object are evaluated. The image shows how two finger parts are moved to the object for examining the contribution to the stability of the object. The stability is measured by a physics simulation where all green parts are static (Color figure online).</div>

![Image](images/051cd70019d49793b9fe8551b1a26e55279aef19f2873b9449e6a0ba6ba393eb.jpg)

<div style="text-align: center;">Fig. 10 Finger parts that form all possible supporting combinations in the physics simulation component. Parts with red color do not take part in this process (Color figure online)</div>

对于我们的跟踪场景而言，这是一个合理的假设。为此，我们首先计算手指各部分与物体之间的距离，如图10所示（Aggarwal等人，1987年；Gärtner和Schönherr，2000年）。每个手指部分…

---

距离小于10毫米的部分会被视为可能与物体接触的候选部分，同时我们会考虑至少两个、最多四个候选部分的组合。

通过将相应的手指部位刚性移动到物体最近的表面点，利用物理模拟来考察每种组合对物体稳定性的贡献。图9展示了由两个手指部位组成的组合情况。我们对所有组合重复进行模拟，并选出能使物体移动最小——即其质心从初始位置的位移最小——的组合。基于所选组合，我们定义了一个能量项，该能量项通过最小化部位i与物体之间的最近距离，迫使相应的手指部位与物体接触：

 $$ E_{p h y s i c s}(\theta)=\sum_{i}\|\mathbf{v}_{i}(\theta)-X_{i}\|^{2} $$

顶点$\mathbf{v}_i$和$X_i$分别对应手指部位和物体上的最近点。如同式(7)所示，点对面距离度量可以替代点对点度量。

#### 3.2.7 解剖学限制

受解剖学启发的关节角度限制（Albrecht等人，2003年）作为软约束通过该项来实施：

 $$ E_{anatomy}(\theta)=\sum_{k}\left(\exp\left(p(l_{k}-\theta_{k})\right)+\exp\left(p(\theta_{k}-u_{k})\right)\right) $$

其中$p = 10$。索引k遍历所有旋转关节，而$[u_k, l_k]$表示每个关节的允许范围。图11展示了单个旋转关节对应的该项示意。我们使用$\gamma_a = 0.0015$ $C_{all}$，其中$C_{all}$为对应点的总数。

![Image](images/6868b91d4e46fcb5834ca4c886cde3ace8d8cdbcbfc30910f1eb0cc6d0055b55.jpg)

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

![Image](images/02320c0fbe2866b08e3d0ba661f70de417336e533f7d8c2beee90f562de2bef2.jpg)

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

<div style="text-align: center;">Fig. 11 Angle limits are independently defined for each revolute joint. The plot visualizes the function (a), and its truncated derivative (b), that penalizes the deviation from an allowed range of  $\pm20.0$ degree</div>

```pseudo
// Algorithm 1: Pose estimation for RGB-D data with point-to-point distances

```

 $\tilde{\theta} = \text{pose estimate of the previous frame}$
 $i = 0, \theta_0 = \tilde{\theta}$

重复此过程直至收敛或达到最大$i_{thr}$次迭代

- 在姿态$\theta$下渲染网格

- 寻找对应的$LO_{m2d}$ 见3.2.2节-公式(6)

- 寻找对应的$LO_{d2m}$ 见3.2.3节-公式(8)

- 寻找对应的C 见3.2.4节-公式(12)

- 寻找对应的S 见3.2.5节-公式(15)

- 寻找对应的$\mathcal{P}$ 见3.2.6节-公式(16)

  $\theta_{i+1} = \arg \min_{\theta} E(\theta, D)$
  $i = i + 1$

#### 3.2.8 正则化

在存在遮挡或深度数据缺失的情况下，仅基于前述各项的目标函数(5)可能会不适定。因此，我们添加了一项来惩罚与先前估计的关节角度$\theta$的偏差：

 $$ E_{r e g u l a r i z a t i o n}(\theta)=\sum_{k}(\theta_{k}-\tilde{\theta}_{k})^{2}. $$

我们使用$\gamma_{r}=0.02 C_{all}$

#### 3.2.9 优化

对于姿态估计，我们根据当前的姿态估计，交替计算对应的$LO_{m2d}$（3.2.2节）、$LO_{d2m}$（3.2.3节）、C（3.2.4节）、S（3.2.5节）以及$\mathcal{P}$（3.2.6节），并基于它们优化目标函数(5)，具体过程如算法1所述。此过程会重复进行直至收敛或达到最大迭代次数$i_{thr}$。需要注意的是，目标函数$E(\theta, D)$仅在给定一组对应关系时才可微。我们采用Gauss-Newton方法来优化$E(\theta, D)$，这是一个非线性最小二乘问题，相关方法参见Brox等人2010年的研究。

### 3.3 多摄像头RGB数据

前述方法也可应用于多路同步RGB视频。为此，由于深度数据与RGB数据的差异，仅需对目标函数(5)稍作修改。对于RGB-D数据，误差是在三维空间中直接最小化的；而对于RGB图像，由于所有观测结果均为二维，因此我们在二维空间中最小化误差。因此，误差不再采用三维点对点（6）或点对面（7）度量，而是由以下公式给出：

 $$ \sum_{c}\sum_{i}\|\Pi_{c}(\mathbf{v}_{i}(\theta))-x_{i,c}\|^{2} $$

---

其中，$\Pi_c : \mathbb{R}^3 \longrightarrow \mathbb{R}^2$ 表示已知的投影函数，用于将三维点映射到每台静态相机c的成像平面上，而 $(\mathbf{v}_i, x_{i,c})$ 则表示三维顶点与二维点之间的对应关系。此外，第3.2.5节中介绍的显著点检测器并非应用于深度数据，而是应用于所有相机视图。由于多组高分辨率视图能够检测出更多独特的图像特征，因此在这种情况下我们检测的是手指甲而非指尖。

唯一需要做出的重大改动是针对公式(5)中的数据项 $E_{model \to data}(\theta, D)$ 和 $E_{data \to model}(\theta, D)$。其中，$E_{data \to model}(\theta, D)$ 被替换为一种边缘项，该边缘项会将所有相机视图中的边缘像素与当前姿态下投影模型的边缘进行匹配，即 $\theta$。与RGB-D情况类似，匹配时会考虑边缘的方向，通过阈值设定来剔除不匹配的项。不过，使用二维距离进行处理存在一个缺点：无法应用第3.2.3节中提到的直观的三维距离阈值。为了提供一种替代方案来剔除噪声对应的项，我们会针对每块骨骼计算其所有对应项所给出的二维误差的标准差。随后，那些误差超过该标准差两倍以上的对应项会被作为异常值剔除。另一个数据项 $E_{model \to data}(\theta, D)$ 则被替换为基于光流的项，这一做法源自Ballan和Cortelazzo在2008年的研究。该项引入了时间一致性，同时充分利用了RGB数据相较于RGB-D数据所具有的更高分辨率和帧率优势。

## 4 实验评估

尽管近期已有不少相关研究（Sridhar等人，2013年；Tzionas和Gall，2013年；Tzionas等人，2014年；Tang等人，2014年、2013年；Qian等人，2014年；Tompson等人，2014年），但三维手部跟踪领域的基准测试仍是一个未解决的问题（Erol等人，2007年）。其中绝大多数研究聚焦于单手跟踪问题，尤其是实时人机交互场景下的单手跟踪，却忽视了双手之间或手与物体之间交互时出现的挑战。出于这一原因，我们采集了29组涉及手-手以及手-物交互的序列。这些序列要么是用一台RGB-D相机拍摄的，要么是用8台同步工作的RGB相机拍摄的。其中20组序列已在前期研究（Ballan等人，2012年；Tzionas等人，2014年）中被使用，涉及与刚性物体的交互；新采集的9组序列则还包括与非刚性物体的交互。

我们首先在第4.1节中针对包含手-手交互的RGB-D序列评估我们的方法。第4.2节则利用包含手-物交互的序列进行评估，最终在第4.4节中，我们针对用多台RGB相机拍摄的序列评估该方法。

### 4.1 单目RGB-D——手-手交互

现有的相关RGB-D方法（Oikonomidis等人，2011a）通常仅在合成序列上报告定量结果，而这些合成序列本身便包含真实值；对于现实场景，它们则只能给出定性结果。

尽管定性结果具有参考价值，但基于真实数据的定量评估依然至关重要。因此，我们手动标注了14个序列，其中11个用于评估我们流程中的各个组件，另外3个则用于与现有最先进方法（Oikonomidis等人，2011a）进行比较。这些序列分别包含单手运动以及两只交互手的运动，其自由度分别为37和74。序列时长从100帧到270帧不等，涵盖了多种动作，如“行走”、“交叉”、“交叉并扭转”、“指尖触碰”、“跳舞”、“指尖融合”、“拥抱”、“抓取”、“飞行”，以及做出“摇滚”和“兔子”手势。为了衡量标注的准确性，我们统计了4名标注者的结果标准差，该数值为1.46像素。所有序列均使用Primesense Carmine 1.09摄像头以640×480分辨率、30帧/秒的速率采集。

我们实验采用的误差指标是3D关节投影点与对应2D标注点之间的2D距离（像素）。该指标所涉及的关节如图12所示。除非另有说明，我们报告的是所有相关序列中全部帧的平均值。

我们的系统基于一个由五项组成的目标函数，具体描述见第3.2节。其中两项通过让模型适配数据、数据适配模型的方式，来最小化姿态网格与深度数据之间的误差。显著点检测器利用深度图像中的指尖检测结果进一步约束姿态，而碰撞检测方法则有助于得到符合物理规律的逼真姿态估计结果。该函数还辅以物理模拟组件，以促进手部与物体之间更逼真的交互。不过，该组件仅对手部与物体的交互场景适用，因此我们将在第4.2节对其进行详细研究。接下来，我们将进行评估。

![Image](images/a165bb9bb57d697eb4f7f8cac72fe1bf6c7050cec2570cec69c1dcf30049a1de.jpg)

<div style="text-align: center;">Fig. 12 Hand joints used for quantitative evaluation. Only the green joints of our hand model are used for measuring the pose estimation error (Color figure online)</div>

---

<div style="text-align: center;">Table 2 Evaluation of point-to-point (p2p) and point-to-plane (p2plane) distance metrics, along with iterations number of the optimization framework, using a 2D distance error metric (px)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Iterations</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>15</td><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>30</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>p2p</td><td style='text-align: center; word-wrap: break-word;'>7.33</td><td style='text-align: center; word-wrap: break-word;'>5.25</td><td style='text-align: center; word-wrap: break-word;'>5.05</td><td style='text-align: center; word-wrap: break-word;'>4.98</td><td style='text-align: center; word-wrap: break-word;'>4.91</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>p2plane</td><td style='text-align: center; word-wrap: break-word;'>5.33</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.08</td><td style='text-align: center; word-wrap: break-word;'>5.07</td><td style='text-align: center; word-wrap: break-word;'>5.05</td></tr></table>

其他所有实验均采用加粗设置。

<div style="text-align: center;">Table 3 Evaluation of the weighting parameter  $\lambda$ in (14), using a 2D distance error metric (px)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>$\lambda$</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0.3</td><td style='text-align: center; word-wrap: break-word;'>0.6</td><td style='text-align: center; word-wrap: break-word;'>0.9</td><td style='text-align: center; word-wrap: break-word;'>1.2</td><td style='text-align: center; word-wrap: break-word;'>1.5</td><td style='text-align: center; word-wrap: break-word;'>1.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$w_{s}=1$</td><td style='text-align: center; word-wrap: break-word;'>5.17</td><td style='text-align: center; word-wrap: break-word;'>5.17</td><td style='text-align: center; word-wrap: break-word;'>5.15</td><td style='text-align: center; word-wrap: break-word;'>5.14</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.23</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$w_{s}=\frac{c_{s}}{c_{\text{thr}}}$</td><td style='text-align: center; word-wrap: break-word;'>5.17</td><td style='text-align: center; word-wrap: break-word;'>5.14</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.22</td><td style='text-align: center; word-wrap: break-word;'>5.61</td></tr></table>

权重$\lambda = 0$对应不含显著点的目标函数，在表6中记为“LO + C”。我们在第3.2.5节中描述的两种$w_s$版本均接受了评估。其他所有实验均采用加粗设置。

评估每个组件以及目标函数$(5)$的参数。

#### 4.1.1 距离指标

表2对第3.2.2节中介绍的两种距离指标——点对点（6）和点对平面（7）——以及最小化框架的迭代次数进行了评估。点对平面指标仅需10次迭代就能得到令人满意的姿态估计误差，相比点对点指标大幅提升了运算速度。如果迭代次数并非关键因素，那么点对点指标更为可取，因为它能得出更低的误差，且不会因法线估计错误而产生偏差。

对于第一帧，我们执行50次迭代，以确保对手动初始化的姿态进行精准优化。在选定的配置下，我们测量了包含单手的“兔子”序列以及包含双手的“交叉并扭转”序列的运行时间。对于第一个序列，每帧运行时间为2.82秒，其中0.12秒归因于显著点组件S，0.65秒归因于碰撞组件C。对于第二个序列，每帧运行时间为4.96秒，其中0.05秒归因于组件S，0.36秒归因于组件C。

#### 4.1.2 显著点检测——S

显著点检测组件依赖于参数$w_s$和$\lambda$，如第3.2.5节所述。表3总结了我们对参数$\lambda$的评估结果，该参数在$w_s = 1$和$w_s = \frac{c_s}{c_{thr}}$两种情况下均涵盖了多种可能取值。这两个版本的$w_s$之间的差异微乎其微。

![Image](images/6725f7d0f917072f45de5924f9a1faeee439d17f5c58b2070603c1e6adaa6d1d.jpg)

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

![Image](images/b8feae66ddae4e22bd98a4fd62b85e9a0bcc509bf4ec4ad05b7eccbbcd71257f.jpg)

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

<div style="text-align: center;">Fig. 13 Precision-recall plot for a our RGB-D dataset and b the Dexter dataset. We show the performance of a fingertip detector trained only on depth (blue) and only RGB (red) images. The area under the curve (AUC) for our dataset (a) is 0.19 and 0.55 respectively. The AUC for the Dexter dataset (b) is 0.95 (Color figure online)</div>

不过，对于这两个版本而言，$\lambda$的最优取值范围有所不同。这是意料之中的现象，因为$\frac{c_s}{c_{thr}} \geq 1$以及较小的$\lambda$值可以补偿式(14)中$w_s = 1$所对应的均值差异。如果$\lambda = 0$，则所有检测结果都会被归类为误报，且显著点也不会被用于目标函数(5)中。

为了评估该检测器的性能，我们遵循PASCAL-VOC协议（Everingham等人，2010年）。图13a展示了我们RGB-D数据集上的精确率-召回率曲线，该数据集包含了所有手与手、手与物体的交互序列。从图中可以看出，该检测器在这类数据集上的表现并不理想，原因在于原始深度数据存在噪声。这也解释了为何显著项对姿态估计的改善效果十分有限。因此，我们也在RGB数据上对该检测器进行了训练和评估。在这种情况下，检测准确率显著提高。我们还在Dexter数据集（Sridhar等人，2013年）上对该检测器进行了评估。在该数据集上，检测器的准确性非常高。我们在第4.1.6节对Dexter数据集以及第4.4节对多摄像头RGB数据集进行的实验表明：当检测器性能更好时，显著点能更有效地降低误差。

#### 4.1.3 碰撞检测——C

碰撞检测组件的影响通过权重$\gamma_{c}$在目标函数(5)中进行调节。在评估过程中，我们根据观察到的碰撞程度将序列分为三组：严重碰撞组、部分碰撞组和无明显碰撞组。严重碰撞组包括“行走”、“交叉”、“交叉并扭转”、“跳舞”、“拥抱”；部分碰撞出现在“指尖触碰”、“摇滚”、“兔子”序列中；而“抓取”、“指尖融合”、“飞行”序列中则无明显碰撞。表4总结了我们对$\gamma_{c}$取值的评估实验结果。结果显示，在所有序列中，碰撞项都能降低误差，且权重$\gamma_{c} \geq 3$能产生类似结果。当权重$0 < \gamma_{c} < 3$较小时，误差甚至会比$\gamma_{c} = 0$的情况略有增加。此时，碰撞项的影响太小，无法起到实质性作用。

---

<div style="text-align: center;">Table 4 Evaluation of collision weights  $\gamma_{c}$, using a 2D distance error metric (px)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>$\gamma_{c}$</td><td style='text-align: center; word-wrap: break-word;'>0</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;'>5</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>12.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>5.34</td><td style='text-align: center; word-wrap: break-word;'>5.44</td><td style='text-align: center; word-wrap: break-word;'>5.57</td><td style='text-align: center; word-wrap: break-word;'>5.16</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.12</td><td style='text-align: center; word-wrap: break-word;'>5.14</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Severe</td><td style='text-align: center; word-wrap: break-word;'>5.90</td><td style='text-align: center; word-wrap: break-word;'>6.07</td><td style='text-align: center; word-wrap: break-word;'>6.27</td><td style='text-align: center; word-wrap: break-word;'>5.62</td><td style='text-align: center; word-wrap: break-word;'>5.56</td><td style='text-align: center; word-wrap: break-word;'>5.57</td><td style='text-align: center; word-wrap: break-word;'>5.55</td><td style='text-align: center; word-wrap: break-word;'>5.61</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\ge$ Some</td><td style='text-align: center; word-wrap: break-word;'>5.44</td><td style='text-align: center; word-wrap: break-word;'>5.57</td><td style='text-align: center; word-wrap: break-word;'>5.72</td><td style='text-align: center; word-wrap: break-word;'>5.23</td><td style='text-align: center; word-wrap: break-word;'>5.18</td><td style='text-align: center; word-wrap: break-word;'>5.19</td><td style='text-align: center; word-wrap: break-word;'>5.18</td><td style='text-align: center; word-wrap: break-word;'>5.22</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Some</td><td style='text-align: center; word-wrap: break-word;'>3.99</td><td style='text-align: center; word-wrap: break-word;'>3.98</td><td style='text-align: center; word-wrap: break-word;'>3.98</td><td style='text-align: center; word-wrap: break-word;'>3.98</td><td style='text-align: center; word-wrap: break-word;'>3.98</td><td style='text-align: center; word-wrap: break-word;'>3.99</td><td style='text-align: center; word-wrap: break-word;'>3.99</td><td style='text-align: center; word-wrap: break-word;'>3.98</td></tr></table>

权重0对应不含碰撞项的目标函数，在表6中记为“LO + S”。序列被分为三类：“严重”代表碰撞剧烈，“部分”代表碰撞较轻，“无明显”代表几乎察觉不到碰撞。“≥部分”则是“严重”和“部分”两类的并集。加粗数值是我们用于其他所有实验的默认值。

<div style="text-align: center;">Table 5 Comparison of the proposed collision term based on 3D distance fields with correspondences between vertices of colliding triangles</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Corresponding vertices</td><td style='text-align: center; word-wrap: break-word;'>Distance fields</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>6.66</td><td style='text-align: center; word-wrap: break-word;'>5.12</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Severe</td><td style='text-align: center; word-wrap: break-word;'>7.96</td><td style='text-align: center; word-wrap: break-word;'>5.55</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$≥$ Some</td><td style='text-align: center; word-wrap: break-word;'>7.04</td><td style='text-align: center; word-wrap: break-word;'>5.18</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Some</td><td style='text-align: center; word-wrap: break-word;'>4.12</td><td style='text-align: center; word-wrap: break-word;'>3.99</td></tr></table>

为避免发生碰撞，该术语只会给姿态估计带来干扰。正如预期，碰撞项的影响仅在严重碰撞序列中才能被观察到。

所提出的碰撞项基于物体距离场的快速近似计算。它具有连续性，且相较于基于碰撞三角形顶点间3D-3D对应关系的排斥项，它对网格分辨率变化的敏感度更低。为验证这一点，我们用将碰撞三角形顶点移向对应点的对应关系来替换碰撞项。表5中的结果显示，这种简单的排斥项表现较差。

#### 4.1.4 组件评估

表6展示了各个组件及其组合的性能评估结果。简化版的流程——要么仅让模型适配数据（$LO_{m2d}$），要么仅让数据适配模型（$LO_{d2m}$）——都会因优化过程缺乏约束而导致姿态估计结果崩溃。我们的实验定量地证明了碰撞检测与显著点检测器所做出的突出贡献。当目标函数中的四个组件全部参与运算时（式5），系统整体性能达到最佳。第五项$E_{physics}$仅对手部与物体交互场景有意义，相关内容将在4.2节中详细评估。表7显示了各序列的误差情况。位于文章末尾的图14展示了11个序列中8个序列的定性结果；结果显示，即便在近距离交互或严重遮挡的情况下，手部运动也能被精准捕捉。相关数据与视频均已公开提供（$^{2}$）。

#### 4.1.5 与现有先进方法的对比

近期，Oikonomidis等人（2011a、2011b、2012）采用粒子群优化算法（PSO）来实现实时手部追踪。为进行对比，我们采用了用于单手追踪的官方软件（Oikonomidis等人，2011a），并沿用其他研究中使用的参数设置。为抵消手动初始化的影响以及PSO固有的随机性，每种设置均被评估三次。定性结果展示三次运行中的最佳表现，定量结果则报告平均误差。表8显示，在追踪精度方面我们的系统优于Oikonomidis等人（2011a）的方法。图15给出了可视化对比结果。不过需要注意的是，Oikonomidis等人（2011a）的GPU实现版本采用25代迭代、64个粒子即可实现实时运行，而我们采用的是单线程CPU实现方式。

#### 4.1.6 Dexter数据集

我们进一步在最新发布的Dexter数据集上评估所提出的方法（Sridhar等人，2013）。按照Sridhar等人（2013）的建议，我们选用序列的前半部分进行评估，后半部分用于训练。具体而言，评估集包含序列“adbadd”的第018至158帧、“fingercount”的第061至185帧、“fingerwave”的第020至173帧、“flexex1”的第025至224帧、“pinch”的第024至148帧、“random”的第024至123帧，以及“tigergrasp”的第016至166帧。我们仅使用该飞行时间相机的深度数据。

我们的追踪器性能总结在表9和表10中。由于该数据集未提供手部模型，我们仅在$(x, y, z)$方向上对自身的手部模型进行缩放，缩放比例为$(0.95, 0.95, 1)$。由于数据集中的标注并非解剖学意义上的关节点，而是接近指尖的位置，因此我们将这些标注与我们骨骼模型的端点进行比较。表9显示了追踪器在各序列上的误差情况，分别列出了所有测试帧上的误差均值、最大值及标准差。尽管我们的手部模型与数据存在差异，但大多数序列的平均误差仍仅为1厘米左右。我们的

---

<div style="text-align: center;">Table 6 Evaluation of the components of our pipeline</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Components</td><td style='text-align: center; word-wrap: break-word;'>$LO_{m2d}$</td><td style='text-align: center; word-wrap: break-word;'>$LO_{d2m}$</td><td style='text-align: center; word-wrap: break-word;'>LO</td><td style='text-align: center; word-wrap: break-word;'>LO + C</td><td style='text-align: center; word-wrap: break-word;'>LO + S</td><td style='text-align: center; word-wrap: break-word;'>LO + CS</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean error (px)</td><td style='text-align: center; word-wrap: break-word;'>27.17</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>5.53</td><td style='text-align: center; word-wrap: break-word;'>5.17</td><td style='text-align: center; word-wrap: break-word;'>5.34</td><td style='text-align: center; word-wrap: break-word;'>5.12</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Improvement (%)</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>6.46</td><td style='text-align: center; word-wrap: break-word;'>3.44</td><td style='text-align: center; word-wrap: break-word;'>7.44</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Failed sequences</td><td style='text-align: center; word-wrap: break-word;'>1/11</td><td style='text-align: center; word-wrap: break-word;'>11/11</td><td style='text-align: center; word-wrap: break-word;'>0/11</td><td style='text-align: center; word-wrap: break-word;'>0/11</td><td style='text-align: center; word-wrap: break-word;'>0/11</td><td style='text-align: center; word-wrap: break-word;'>0/11</td></tr></table>

“LO”代表局部优化，除非另有说明，它同时包含数据到模型（d2m）和模型到数据（m2d）的拟合过程。碰撞检测标记为“C”，显著点检测器标记为“S”。最后一行记录了优化框架崩溃的序列数量，其余序列则仅报告平均误差。

<div style="text-align: center;">Table 7 Pose estimation error for each sequence</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Walking</td><td style='text-align: center; word-wrap: break-word;'>Crossing</td><td style='text-align: center; word-wrap: break-word;'>Crossing twisting</td><td style='text-align: center; word-wrap: break-word;'>Tips touching</td><td style='text-align: center; word-wrap: break-word;'>Dancing</td><td style='text-align: center; word-wrap: break-word;'>Tips blending</td><td style='text-align: center; word-wrap: break-word;'>Hugging</td><td style='text-align: center; word-wrap: break-word;'>Grasping</td><td style='text-align: center; word-wrap: break-word;'>Flying</td><td style='text-align: center; word-wrap: break-word;'>Rock</td><td style='text-align: center; word-wrap: break-word;'>Bunny</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean error (px)</td><td style='text-align: center; word-wrap: break-word;'>5.99</td><td style='text-align: center; word-wrap: break-word;'>4.53</td><td style='text-align: center; word-wrap: break-word;'>4.76</td><td style='text-align: center; word-wrap: break-word;'>3.65</td><td style='text-align: center; word-wrap: break-word;'>6.49</td><td style='text-align: center; word-wrap: break-word;'>4.87</td><td style='text-align: center; word-wrap: break-word;'>5.22</td><td style='text-align: center; word-wrap: break-word;'>4.37</td><td style='text-align: center; word-wrap: break-word;'>5.11</td><td style='text-align: center; word-wrap: break-word;'>4.44</td><td style='text-align: center; word-wrap: break-word;'>4.50</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Standard deviation (px)</td><td style='text-align: center; word-wrap: break-word;'>3.65</td><td style='text-align: center; word-wrap: break-word;'>2.99</td><td style='text-align: center; word-wrap: break-word;'>3.51</td><td style='text-align: center; word-wrap: break-word;'>2.21</td><td style='text-align: center; word-wrap: break-word;'>3.70</td><td style='text-align: center; word-wrap: break-word;'>2.97</td><td style='text-align: center; word-wrap: break-word;'>3.42</td><td style='text-align: center; word-wrap: break-word;'>2.06</td><td style='text-align: center; word-wrap: break-word;'>2.77</td><td style='text-align: center; word-wrap: break-word;'>2.63</td><td style='text-align: center; word-wrap: break-word;'>2.61</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Max error (px)</td><td style='text-align: center; word-wrap: break-word;'>24.19</td><td style='text-align: center; word-wrap: break-word;'>18.03</td><td style='text-align: center; word-wrap: break-word;'>22.80</td><td style='text-align: center; word-wrap: break-word;'>13.60</td><td style='text-align: center; word-wrap: break-word;'>20.25</td><td style='text-align: center; word-wrap: break-word;'>18.36</td><td style='text-align: center; word-wrap: break-word;'>20.03</td><td style='text-align: center; word-wrap: break-word;'>11.05</td><td style='text-align: center; word-wrap: break-word;'>15.03</td><td style='text-align: center; word-wrap: break-word;'>14.76</td><td style='text-align: center; word-wrap: break-word;'>10.63</td></tr></table>

<div style="text-align: center;">Table 8 Comparison with (Oikonomidis et al. 2011a)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Mean (px)</td><td style='text-align: center; word-wrap: break-word;'>St.dev (px)</td><td style='text-align: center; word-wrap: break-word;'>Max (px)</td><td style='text-align: center; word-wrap: break-word;'>Generations</td><td style='text-align: center; word-wrap: break-word;'>Particles</td><td style='text-align: center; word-wrap: break-word;'>Reference</td></tr><tr><td colspan="7">FORTH</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Set 1</td><td style='text-align: center; word-wrap: break-word;'>8.58</td><td style='text-align: center; word-wrap: break-word;'>5.74</td><td style='text-align: center; word-wrap: break-word;'>61.81</td><td style='text-align: center; word-wrap: break-word;'>25</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>Oikonomidis et al. (2011a)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Set 2</td><td style='text-align: center; word-wrap: break-word;'>8.32</td><td style='text-align: center; word-wrap: break-word;'>5.42</td><td style='text-align: center; word-wrap: break-word;'>57.97</td><td style='text-align: center; word-wrap: break-word;'>40</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>Oikonomidis et al. (2011b)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Set 3</td><td style='text-align: center; word-wrap: break-word;'>8.09</td><td style='text-align: center; word-wrap: break-word;'>5.00</td><td style='text-align: center; word-wrap: break-word;'>38.90</td><td style='text-align: center; word-wrap: break-word;'>40</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Set 4</td><td style='text-align: center; word-wrap: break-word;'>8.16</td><td style='text-align: center; word-wrap: break-word;'>5.18</td><td style='text-align: center; word-wrap: break-word;'>39.85</td><td style='text-align: center; word-wrap: break-word;'>45</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>Oikonomidis et al. (2012)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Proposed</td><td style='text-align: center; word-wrap: break-word;'>3.76</td><td style='text-align: center; word-wrap: break-word;'>2.22</td><td style='text-align: center; word-wrap: break-word;'>19.92</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

我们使用4种参数设置对FORTH追踪器进行评估，其中3种参数设置与最后一列参考文献中使用的参数一致。

不过，由于该序列中的运动速度极快，这种方法在“random”序列上会失效。

表10展示了我们流程中各个组件以及它们组合后的评估结果。在该数据集上，碰撞项与显著点检测器都能降低误差。与表6相比，误差进一步减小。尤其是显著点检测器对误差的降低效果更明显，因为如图13b所示，该检测器在此数据集上表现优异。与“LO”方法相比，“LO+SC”方法的平均误差降低了超过3.5毫米。Sridhar等人（2013年）报告的Dexter数据集慢速部分的平均误差为13.1毫米。

### 4.2 单目RGBD——手与物体的交互

为了评估用于手-物体交互的完整能量函数（5），我们采集了7个新的序列$^{2}$，这些序列记录了手与多种物体的交互过程，物体既包括刚性的（球、立方体），也包括铰接式的（管道、绳索）。这些物体的自由度差异很大：刚性物体有6个自由度，管道有7个自由度，绳索则有76个自由度。每个序列包含180到400帧，涵盖了多种动作，例如：单手（43个自由度）或双手（80个自由度）“移动球体”、单手（43个自由度）“移动立方体”、双手（81个自由度）“弯曲管道”以及双手（150个自由度）“弯曲绳索”。此外，“移动球体”和“移动立方体”这两个序列各被采集了两次，一次是操作手指被遮挡的情况，另一次则没有遮挡。人工标注工作由一名受试者完成。

对于显著点$(S)$和碰撞检测组件$(C)$，我们采用第4.1节中介绍的参数设置。物理模拟组件$(P)$及其参数的影响将在下一节中评估。所使用的误差度量指标是二维距离（像素单位），

---

![Image](images/a7f797427a38549b317bc1846ab37a2788d30eb924cdc40e06aeb694b55494f8.jpg)

<div style="text-align: center;">Fig. 14 Some of the obtained results. (Left) Input RGB-D image. (Center-left) Obtained results overlayed on the input image. (Center-right) Obtained results fitted in the input point cloud. (Right) Obtained results from another viewpoint</div>

即3D关节的投影与第4.1节所述及图12中所展示的2D标注之间的二维距离。除非另有说明，我们报告的是七个序列所有帧的平均值。

#### 4.2.1 物理模拟——P

在物理模拟中，我们按照第3.2.6节的描述及图9所示，用低分辨率模型来表征整个场景，包括手部、被操纵物体以及静止物体。场景中的每个组件都有三个属性：摩擦力、恢复系数和质量。由于在每一步模拟中，除被操纵物体外的所有组件都被视为静止的，因此只有物体的质量才相关，我们将其设为1千克。静态场景和手部的恢复系数设为0，物体的恢复系数设为0.5。静态场景的摩擦力取值为3。手部和物体的摩擦力假定相等。由于物理模拟的主要目的是评估当前的姿态估计是否具备物理稳定性，因此摩擦力、恢复系数和质量的具体数值并不关键。为证明这一点，我们评估了手部和被操纵物体摩擦力取值的影响。

---

![Image](images/fd1933bba4fe7f870fa4b045f089b1e977882f1ec0a4da8d711b8cdfc1c58049.jpg)

<div style="text-align: center;">Fig. 15 Qualitative comparison with (Oikonomidis et al. 2011a). Each image pair corresponds to the pose estimate of the FORTH tracker (up) and our tracker (down)</div>

<div style="text-align: center;">Table 9 Pose estimation error of our tracker for each sequence of the Dexter dataset</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>LO + SC</td><td style='text-align: center; word-wrap: break-word;'>Mean error</td><td style='text-align: center; word-wrap: break-word;'>St. deviation</td><td style='text-align: center; word-wrap: break-word;'>Max error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Adbadd</td><td style='text-align: center; word-wrap: break-word;'>17.34 mm</td><td style='text-align: center; word-wrap: break-word;'>15.35 mm</td><td style='text-align: center; word-wrap: break-word;'>69.73 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fingercount</td><td style='text-align: center; word-wrap: break-word;'>11.94 mm</td><td style='text-align: center; word-wrap: break-word;'>7.18 mm</td><td style='text-align: center; word-wrap: break-word;'>47.77 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fingerwave</td><td style='text-align: center; word-wrap: break-word;'>10.88 mm</td><td style='text-align: center; word-wrap: break-word;'>5.47 mm</td><td style='text-align: center; word-wrap: break-word;'>49.62 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Flexex1</td><td style='text-align: center; word-wrap: break-word;'>11.87 mm</td><td style='text-align: center; word-wrap: break-word;'>12.86 mm</td><td style='text-align: center; word-wrap: break-word;'>91.70 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pinch</td><td style='text-align: center; word-wrap: break-word;'>24.19 mm</td><td style='text-align: center; word-wrap: break-word;'>28.34 mm</td><td style='text-align: center; word-wrap: break-word;'>131.97 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Random</td><td style='text-align: center; word-wrap: break-word;'>96.93 mm</td><td style='text-align: center; word-wrap: break-word;'>122.34 mm</td><td style='text-align: center; word-wrap: break-word;'>559.37 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tigergrasp</td><td style='text-align: center; word-wrap: break-word;'>11.77 mm</td><td style='text-align: center; word-wrap: break-word;'>5.36 mm</td><td style='text-align: center; word-wrap: break-word;'>30.18 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Adbadd</td><td style='text-align: center; word-wrap: break-word;'>7.79 px</td><td style='text-align: center; word-wrap: break-word;'>8.38 px</td><td style='text-align: center; word-wrap: break-word;'>42.54 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fingercount</td><td style='text-align: center; word-wrap: break-word;'>6.03 px</td><td style='text-align: center; word-wrap: break-word;'>5.39 px</td><td style='text-align: center; word-wrap: break-word;'>38.28 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Fingerwave</td><td style='text-align: center; word-wrap: break-word;'>4.45 px</td><td style='text-align: center; word-wrap: break-word;'>2.80 px</td><td style='text-align: center; word-wrap: break-word;'>15.26 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Flexex1</td><td style='text-align: center; word-wrap: break-word;'>5.24 px</td><td style='text-align: center; word-wrap: break-word;'>8.37 px</td><td style='text-align: center; word-wrap: break-word;'>61.40 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pinch</td><td style='text-align: center; word-wrap: break-word;'>12.56 px</td><td style='text-align: center; word-wrap: break-word;'>16.48 px</td><td style='text-align: center; word-wrap: break-word;'>73.16 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Random</td><td style='text-align: center; word-wrap: break-word;'>59.93 px</td><td style='text-align: center; word-wrap: break-word;'>77.77 px</td><td style='text-align: center; word-wrap: break-word;'>307.00 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tigergrasp</td><td style='text-align: center; word-wrap: break-word;'>6.84 px</td><td style='text-align: center; word-wrap: break-word;'>4.22 px</td><td style='text-align: center; word-wrap: break-word;'>21.21 px</td></tr></table>

这些TIC对象采用第3.2.6节所述的低分辨率表示形式，并在图9中进行了可视化展示。场景中的每个组件都由三个属性来表征：摩擦力、恢复力和质量。由于在每个模拟步骤中，除被操纵物体外的所有组件均被视为静止状态，因此只有该物体的质量才具有相关性，我们将其设定为1千克。静态场景和手的恢复力设为0，而物体的恢复力则设为0.5。对于静态场景，我们采用的摩擦力值为3。手和物体所受的摩擦力被假定为相等。由于物理模拟的主要目的是评估当前姿态估计是否具有物理稳定性，因此摩擦力、恢复力和质量的具体数值并不关键。为证明这一点，我们分析了手和被操纵物体的摩擦力值所产生的影响。

<div style="text-align: center;">Table 10 Evaluation of the components of the objective function (5) on the Dexter dataset</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Components</td><td style='text-align: center; word-wrap: break-word;'>Mean error</td><td style='text-align: center; word-wrap: break-word;'>St. dev.</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{SC}$</td><td style='text-align: center; word-wrap: break-word;'>14.26 mm</td><td style='text-align: center; word-wrap: break-word;'>14.91 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{S}$</td><td style='text-align: center; word-wrap: break-word;'>15.51 mm</td><td style='text-align: center; word-wrap: break-word;'>16.67 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{C}$</td><td style='text-align: center; word-wrap: break-word;'>16.97 mm</td><td style='text-align: center; word-wrap: break-word;'>16.60 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO</td><td style='text-align: center; word-wrap: break-word;'>17.86 mm</td><td style='text-align: center; word-wrap: break-word;'>18.80 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{SC}$</td><td style='text-align: center; word-wrap: break-word;'>6.90 px</td><td style='text-align: center; word-wrap: break-word;'>8.88 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{S}$</td><td style='text-align: center; word-wrap: break-word;'>7.64 px</td><td style='text-align: center; word-wrap: break-word;'>9.87 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{C}$</td><td style='text-align: center; word-wrap: break-word;'>8.98 px</td><td style='text-align: center; word-wrap: break-word;'>10.29 px</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO</td><td style='text-align: center; word-wrap: break-word;'>9.33 px</td><td style='text-align: center; word-wrap: break-word;'>10.73 px</td></tr></table>

“LO”代表局部优化，包含数据到模型和模型到数据的拟合过程。碰撞检测标记为“C”，显著点检测器标记为“S”。“random”序列未被纳入评估，因为由于运动速度过快，我们的方法在该序列上会失效。

<div style="text-align: center;">Table 11 Evaluation of the friction value of both the hands and the object</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Friction</td><td style='text-align: center; word-wrap: break-word;'>0.6 [px]</td><td style='text-align: center; word-wrap: break-word;'>0.9</td><td style='text-align: center; word-wrap: break-word;'>1.2</td><td style='text-align: center; word-wrap: break-word;'>1.5</td><td style='text-align: center; word-wrap: break-word;'>3.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>6.18</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>6.17</td><td style='text-align: center; word-wrap: break-word;'>6.17</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>St. dev.</td><td style='text-align: center; word-wrap: break-word;'>3.82</td><td style='text-align: center; word-wrap: break-word;'>3.81</td><td style='text-align: center; word-wrap: break-word;'>3.81</td><td style='text-align: center; word-wrap: break-word;'>3.81</td><td style='text-align: center; word-wrap: break-word;'>3.81</td></tr></table>

我们采用二维误差度量（像素）来报告七个包含手-物体交互的序列所有帧上的误差。数值3.0与静态场景的摩擦力取值相同。加粗的数值是我们用于所有其他实验的默认值。

<div style="text-align: center;">Table 12 Evaluation of collision weights  $\gamma_{ph}$ for “LO + SCP”, using a 2D distance error metric (px)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>$\gamma_{ph}$</td><td style='text-align: center; word-wrap: break-word;'>0</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;'>5</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>12.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>6.21</td><td style='text-align: center; word-wrap: break-word;'>6.20</td><td style='text-align: center; word-wrap: break-word;'>6.21</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>6.18</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>6.17</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Severe</td><td style='text-align: center; word-wrap: break-word;'>5.68</td><td style='text-align: center; word-wrap: break-word;'>5.66</td><td style='text-align: center; word-wrap: break-word;'>5.65</td><td style='text-align: center; word-wrap: break-word;'>5.63</td><td style='text-align: center; word-wrap: break-word;'>5.63</td><td style='text-align: center; word-wrap: break-word;'>5.63</td><td style='text-align: center; word-wrap: break-word;'>5.62</td><td style='text-align: center; word-wrap: break-word;'>5.61</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\geq$ Some</td><td style='text-align: center; word-wrap: break-word;'>6.02</td><td style='text-align: center; word-wrap: break-word;'>6.00</td><td style='text-align: center; word-wrap: break-word;'>6.00</td><td style='text-align: center; word-wrap: break-word;'>5.98</td><td style='text-align: center; word-wrap: break-word;'>5.98</td><td style='text-align: center; word-wrap: break-word;'>5.97</td><td style='text-align: center; word-wrap: break-word;'>5.96</td><td style='text-align: center; word-wrap: break-word;'>5.94</td></tr></table>

权重为0对应不包含物理项的目标函数，在表13中记为“LO + SC”。序列被分为三类：“严重”类指操纵手指的遮挡程度强烈，“轻微”类指遮挡程度较轻，“无明显遮挡”类指遮挡程度难以察觉。“≥轻微”则是“严重”类和“轻微”类的并集。加粗的数值是我们用于所有其他实验的默认值。

在本实验中，我们将权重$\gamma_{ph}$设为10.0，该数值与互补碰撞检测组件的权重$\gamma_{c}$相同。表11中的结果显示：只要摩擦力处于合理范围内，其对姿态估计误差并无显著影响。

目标函数(5)中物理模拟组件$E_{physics}$的影响由权重$\gamma_{ph}$来调节。该项用于惩罚不合理的操纵或抓取姿态。为了评估效果，我们根据操纵手指的遮挡程度将序列分为三组：

---

![Image](images/0c47a9247a1d831657411e8f8d1ae5282f099bb7a6b927f410ddd3645d9ad9e3.jpg)

<div style="text-align: center;">Fig. 16 The impact of the physics component. For each image couple, the left image corresponds to LO + SCx and the right one to LO + SCP. In the case of missing or ambiguous input visual data, as in</div>

(f) （左）第159帧“弯曲管道”；右图第159帧“弯曲绳索”

<div style="text-align: center;">sequences with occluded manipulating finger, the contribution of the physics component towards better physically plausible poses becomes more prominent</div>

操纵手指的遮挡程度分为三类：“严重”类指遮挡程度强烈（如单手操作立方体且存在遮挡的情况），“轻微”类指遮挡程度较轻（如单手操作球体且存在遮挡、单手操作立方体的情况），“无明显遮挡”类指遮挡程度难以察觉（如单手或双手操作球体、弯曲管道、弯曲绳索的情况）。表12总结了针对这三组样本，不同$\gamma_{ph}$取值下的姿态估计误差。尽管$E_{physics}$仅略微降低了姿态估计误差，但结果在物理上更具合理性。文章末尾的图16对此进行了定性对比，展示了“LO + SC”和“LO + SCP”两种设置的效果。图像清晰显示出组件P对生成更真实、更符合物理规律的姿态的重要贡献，尤其是在视觉数据缺失或模糊的情况下，比如相关序列中。

---

![Image](images/554e75bb8a79b53987c929db63bb1e0a33aeec12bf765b855dc25742d816c96d.jpg)

(g) 操纵手指被遮挡时的“移动立方体”场景（新序列）

<div style="text-align: center;">Fig. 17 Some of the obtained results. (Left) Input RGB-D image. (Center-left) Obtained results overlayed on the input image. (Center-right) Obtained results fitted in the input point cloud. (Right) Obtained results from another viewpoint</div>

操纵手指被遮挡的情况。为量化这一影响，我们在姿态估计后运行35次仿真，时间步长为0.1秒，并测量每一帧中物体质心的位移。对于“LO + SC”设置，平均位移为9.26毫米，而采用“LO + SCP”设置后位移降至9.05毫米。上述序列在“LO + SC”设置下的每帧跟踪运行时间为4到8秒。在“LO + SCP”设置中加入组件P后，大多数序列的运行时间会增加约1秒。不过，根据物体的复杂程度和交互紧密程度，运行时间的增加可能会超过1分钟，比如双手操作的“弯曲管道”场景（150个自由度），其主要瓶颈在于计算离操纵物体最近的手指顶点。图17展示了目标函数(5)的完整“LO + SCP”设置下全部七个序列的定性结果。结果表明，该设置能够成功跟踪与刚体和多关节物体的交互过程，这些多关节物体的自由度从1个到多达71个不等。

---

这些多关节物体的自由度从1个到多达71个不等。

#### 4.2.2 组件评估

表13展示了针对具有手-物体交互的七个序列中各个组件及其组合的评价结果。由于物理仿真$\mathcal{P}$假设不存在严重的交叉情况，因此它仅能作为碰撞组件$\mathcal{C}$的补充而具备意义。可以观察到，各组件之间的差异相对较小，因为手-物体序列中的手部姿态通常比第4.1节中所考虑的紧握手-手交互序列中的姿态更为简单。碰撞项$\mathcal{C}$会略微增加误差，但如果不包含该项，手部姿态往往不符合物理规律且与物体发生交叉。对比LO + SC和LO + SCP可以发现，物理仿真组件$\mathcal{P}$能使误差略有降低。采用LO + SCP时各序列的姿态估计误差汇总于表14中。

我们可以采用停止准则，而非为每帧设定固定的迭代次数。我们以每次迭代后关节位置的平均变化量作为判断依据。我们将阈值设为$0.2 \, mm$，且最大迭代次数限制为50次。表13显示，采用停止准则时各术语的影响更为显著，但同时也反映出所有方法的误差均略有升高。为了更深入地分析这一点，我们统计了达到停止准则所需的迭代次数分布。

<div style="text-align: center;">Table 13 Evaluation of the components of the objective function (5) using a 2D distance error metric (px)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Components</td><td colspan="2">Fixed 10 iterations</td><td colspan="2">Stopping threshold. 0.2 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean</td><td style='text-align: center; word-wrap: break-word;'>St. dev.</td><td style='text-align: center; word-wrap: break-word;'>Mean</td><td style='text-align: center; word-wrap: break-word;'>St. dev.</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $SC^{{P}}$</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>3.81</td><td style='text-align: center; word-wrap: break-word;'>6.25</td><td style='text-align: center; word-wrap: break-word;'>3.86</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $SC^{{P}}$</td><td style='text-align: center; word-wrap: break-word;'>6.21</td><td style='text-align: center; word-wrap: break-word;'>3.82</td><td style='text-align: center; word-wrap: break-word;'>6.31</td><td style='text-align: center; word-wrap: break-word;'>3.89</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + S</td><td style='text-align: center; word-wrap: break-word;'>6.05</td><td style='text-align: center; word-wrap: break-word;'>3.76</td><td style='text-align: center; word-wrap: break-word;'>6.09</td><td style='text-align: center; word-wrap: break-word;'>3.77</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $C^{{P}}$</td><td style='text-align: center; word-wrap: break-word;'>6.19</td><td style='text-align: center; word-wrap: break-word;'>3.83</td><td style='text-align: center; word-wrap: break-word;'>6.31</td><td style='text-align: center; word-wrap: break-word;'>3.90</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + C</td><td style='text-align: center; word-wrap: break-word;'>6.24</td><td style='text-align: center; word-wrap: break-word;'>3.84</td><td style='text-align: center; word-wrap: break-word;'>6.38</td><td style='text-align: center; word-wrap: break-word;'>3.94</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO</td><td style='text-align: center; word-wrap: break-word;'>6.07</td><td style='text-align: center; word-wrap: break-word;'>3.77</td><td style='text-align: center; word-wrap: break-word;'>6.15</td><td style='text-align: center; word-wrap: break-word;'>3.83</td></tr></table>

“LO”代表局部优化，包括数据到模型以及模型到数据的拟合过程。碰撞检测标记为“C”，显著点检测器标记为“S”，物理仿真则标记为“$\mathcal{P}$”。我们分别报告了固定迭代10次以及采用停止准则$\epsilon < 0.2mm$时的误差情况。

图18展示了达到停止准则时的迭代情况。尽管LO + SCP达到收敛所需的迭代次数略多于LO，但在92%的帧中其收敛时间不超过10次迭代，这一结果印证了我们先前的研究结论。不过，仅有极少数帧在50次迭代后仍未能收敛。在大多数此类情况下，能量的局部最优解与真实姿态相差甚远，且迭代次数越多误差越大。这些异常值也是表13中误差略有升高的原因。从LO到LO + SCP的所有组合均表现出这种特性，这表明能量函数仍有进一步优化的空间。

### 4.3 局限性

<div style="text-align: center;">Table 14 Pose estimation error for each sequence</div>

如第4.1节和第4.2节所示，我们的方法能够准确捕捉手部彼此紧密交互或与刚性/铰接物体交互时的运动情况。然而，对于Dexter数据集中“随机”序列这类运动速度极快的情况，该方法便无法适用。此外，我们假设手部模型是已知的，或者可以通过（Taylor等人，2014年）所述的方法获取。图19还展示了由于深度数据缺失导致的下部手部姿态不准确现象。

![Image](images/d9a37e4012a116871c6bb4e7560476b123116e0ef18f8a872b45ed3a9c4fbfce.jpg)

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

![Image](images/ab4458c563341722974c668226e95a8efa89bdb21081f931add181f8ead4b312.jpg)

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

![Image](images/d9a288abdd848b8d7849c8404773075c6b784fda9ed677c97f008bfe3d3fe6f2.jpg)

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

![Image](images/349d6f36ba3a88bbf876fee21d22c2e27a027d87f78b773b6f1ff296fa39db98.jpg)

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

<div style="text-align: center;">Fig. 18 Number of iterations that are required to converge for LO + SCP (top) and LO (bottom). a, c Distribution of frames where the pose estimation converged after a given number of iterations. b, d Cumulative distribution</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Moving ball 1 hand [px]</td><td style='text-align: center; word-wrap: break-word;'>Moving ball 2 hands</td><td style='text-align: center; word-wrap: break-word;'>Bending pipe</td><td style='text-align: center; word-wrap: break-word;'>Bending rope</td><td style='text-align: center; word-wrap: break-word;'>Moving ball 1 hand, occlusion</td><td style='text-align: center; word-wrap: break-word;'>Moving cube 1 hand</td><td style='text-align: center; word-wrap: break-word;'>Moving cube 1 hand, occlusion</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean error</td><td style='text-align: center; word-wrap: break-word;'>6.10</td><td style='text-align: center; word-wrap: break-word;'>7.15</td><td style='text-align: center; word-wrap: break-word;'>6.09</td><td style='text-align: center; word-wrap: break-word;'>5.65</td><td style='text-align: center; word-wrap: break-word;'>8.03</td><td style='text-align: center; word-wrap: break-word;'>4.68</td><td style='text-align: center; word-wrap: break-word;'>5.55</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Standard deviation</td><td style='text-align: center; word-wrap: break-word;'>3.90</td><td style='text-align: center; word-wrap: break-word;'>4.82</td><td style='text-align: center; word-wrap: break-word;'>3.07</td><td style='text-align: center; word-wrap: break-word;'>3.04</td><td style='text-align: center; word-wrap: break-word;'>5.47</td><td style='text-align: center; word-wrap: break-word;'>2.61</td><td style='text-align: center; word-wrap: break-word;'>3.28</td></tr></table>

---

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

<div style="text-align: center;">Fig. 19 Failure case due to missing data and detection errors. The images show RGB image (top-left), input depth image (top-right), fingertip detections (bottom-left), and estimated pose (bottom-right). The detector operates on the raw depth image, while the RGB image is used just for visualization.</div>

存在两次检测结果，它们并非位于指尖处，而是位于其他骨骼部位。

### 4.4 多摄像头RGB方案

我们最终对该方法在由8台同步摄像头组成的系统中采集的序列进行了评估，这些摄像头以50帧/秒的速率录制全高清视频。为此，我们记录了9个涵盖多种手-手及手-物体交互情况的序列，分别是：“祈祷”、“指尖相触”、“指尖交叉”、“手指交叉扭转”、“手指折叠”、“手指在手背上的移动”、“持球与传球”、“折纸”以及“折绳”。这些序列的长度在180帧到1500帧之间不等。

图20展示了来自不同摄像头的测试序列中的一帧图像，以及叠加在原始图像上的处理结果。通过肉眼观察可以发现，即使在手部相互遮挡且交互复杂的场景下，所提出的算法对多台RGB摄像头也能取得不错的效果。相关数据和视频均可获取。 $^{3}$

#### 4.4.1 组件评估

对于RGB-D序列，我们也对我们的方法中的各个组件进行了评估。为此，我们合成了两个序列：第一个是手指交叉和弯曲的场景，第二个是握球和传球的场景，这两个场景都与真实场景中捕捉到的类似。视频是使用商业渲染软件生成的。随后从关节位置的误差以及骨骼方向的误差两个方面来评估姿态估计的精度。

表15展示了针对所用视觉特征而言的算法性能的定量评估结果。可以看出，每种特征都对算法的精度有贡献，而显著点S明显提升了算法性能。由于多台高分辨率RGB摄像头对指尖的定位精度要高于分辨率较低的单目深度摄像头，因此显著点带来的优势在RGB-D序列中更为明显。图13a中的精确率-召回率曲线也反映了这一点。

我们还在合成数据上将其与(Oikonomidis等人，2011a)的方法进行了比较，由于我们自行实现了该方法，因为公开可用的源代码仅支持单个RGB-D序列。我们还加入了显著点项，并采用了两种设置，即40代内分别使用64个和128个粒子。表15中的结果显示，我们的方法估计出的姿态误差更小，这也印证了表8中所报告的RGB-D序列的相关结果。

为了使合成实验尽可能贴近实际情况，我们在所有视觉特征中都模拟了噪声。更具体地说，通过在图像中添加结构噪声来引入边缘检测误差，即在每张图像中随机位置添加和减去100个半径在10到30像素之间的圆形。与这些圆形对应的光流特征也不被纳入考虑。显著点检测器中的误差则是通过随机删除检测结果以及在实际特征周围200像素半径内随机添加异常值来模拟的。此外，还在最终得到的显著点的坐标上引入了5像素的高斯噪声。图21(a)展示了在含噪数据情况下显著点检测器对姿态估计精度的影响。该实验是在显著点假阳性率为10%且检测率不断变化的情况下进行的。可以看出，即便检测率仅为30%，误差也会迅速降至接近最小值。

图21(b)展示了不同迭代次数下的收敛速率。可以看出，仅需10–15次迭代，算法的精度就已达到相当可观的水平，这与RGB-D序列的情况一致。

我们还对其中一段采集到的序列进行了标注以供评估。由于在多台RGB摄像机中标注关节比在单台RGB-D摄像机中标注关节更耗时，因此我们仅手动标注了“持球与传球”序列中所有摄像机视角下手部的三个点。由于我们通过三角测量获得三维点，所以采用这些点与手部模型中对应顶点之间的三维距离作为误差度量指标。表16展示了该实验中的跟踪精度结果。总体而言，跟踪误差的中位数最大仅为1厘米。

---

<div style="text-align: center;">Fig. 20 Some of the obtained results. (Left) One of the input RGB images. (Center) Obtained results overlayed on the input image. (Right) Obtained results from another viewpoint</div>

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

## 5 结论

在本文中，我们提出了一种框架，能够从单目RGB-D视频以及多台同步拍摄的RGB视频中捕捉手部及被操纵物体的关节运动。与专注于手势和单只手的研究不同，我们聚焦于更为复杂的手部之间、手部与物体之间的交互场景。为解决相关难题，我们提出了一种方法，将生成模型、基于判别训练的显著点、碰撞检测以及物理模拟整合到同一个目标函数中。尽管碰撞与物理项对姿态估计精度的提升幅度有限，但它们确实增强了所捕捉运动的真实感，尤其是在存在遮挡或视觉数据缺失的情况下。我们使用多台RGB摄像机采集的8个序列以及单台RGB-D摄像机采集的21个序列进行了定性与定量评估。通过与基于粒子群优化的方法进行比较……

---

<div style="text-align: center;">Table 15 Quantitative evaluation of the algorithm performance with respect to the used visual features: edges  $\mathcal{E}$, collisions  $\mathcal{C}$, optical flow  $\mathcal{O}$, and salient points  $\mathcal{S}$</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Used features</td><td style='text-align: center; word-wrap: break-word;'>Mean</td><td style='text-align: center; word-wrap: break-word;'>St.dev.</td><td style='text-align: center; word-wrap: break-word;'>Max</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{E}$</td><td style='text-align: center; word-wrap: break-word;'>3.11 mm</td><td style='text-align: center; word-wrap: break-word;'>4.52 mm</td><td style='text-align: center; word-wrap: break-word;'>49.86 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{EC}$</td><td style='text-align: center; word-wrap: break-word;'>2.50 mm</td><td style='text-align: center; word-wrap: break-word;'>2.89 mm</td><td style='text-align: center; word-wrap: break-word;'>52.94 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{ECO}$</td><td style='text-align: center; word-wrap: break-word;'>2.38 mm</td><td style='text-align: center; word-wrap: break-word;'>2.25 mm</td><td style='text-align: center; word-wrap: break-word;'>16.84 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>1.49 mm</td><td style='text-align: center; word-wrap: break-word;'>1.44 mm</td><td style='text-align: center; word-wrap: break-word;'>13.27 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPE64 + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>4.86 mm</td><td style='text-align: center; word-wrap: break-word;'>3.69 mm</td><td style='text-align: center; word-wrap: break-word;'>31.05 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPE128 + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>4.67 mm</td><td style='text-align: center; word-wrap: break-word;'>3.28 mm</td><td style='text-align: center; word-wrap: break-word;'>41.11 mm</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{E}$</td><td style='text-align: center; word-wrap: break-word;'>2.36 deg</td><td style='text-align: center; word-wrap: break-word;'>6.84 deg</td><td style='text-align: center; word-wrap: break-word;'>94.58 deg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{EC}$</td><td style='text-align: center; word-wrap: break-word;'>1.98 deg</td><td style='text-align: center; word-wrap: break-word;'>4.57 deg</td><td style='text-align: center; word-wrap: break-word;'>91.89 deg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{ECO}$</td><td style='text-align: center; word-wrap: break-word;'>1.84 deg</td><td style='text-align: center; word-wrap: break-word;'>3.81 deg</td><td style='text-align: center; word-wrap: break-word;'>60.09 deg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>LO + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>1.88 deg</td><td style='text-align: center; word-wrap: break-word;'>3.90 deg</td><td style='text-align: center; word-wrap: break-word;'>44.51 deg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPE64 + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>4.35 deg</td><td style='text-align: center; word-wrap: break-word;'>7.11 deg</td><td style='text-align: center; word-wrap: break-word;'>58.61 deg</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HOPE128 + $\mathcal{ECOS}$</td><td style='text-align: center; word-wrap: break-word;'>4.73 deg</td><td style='text-align: center; word-wrap: break-word;'>7.46 deg</td><td style='text-align: center; word-wrap: break-word;'>78.65 deg</td></tr></table>

LO代表我们的局部优化方法，而HOPE64和HOPE128则分别代表我们采用（Oikonomidis等人，2011a）的方法实现的版本，分别使用64个和128个粒子，经过40代评估。

![Image](images/bc340715058045960d0f20d781ff761ab1bd1a207bc37543335150e109f6c584.jpg)

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

![Image](images/c21d15feaa5620c810baa59d028e7cd318faaedb632d63de0f3ae6b60c0930f5.jpg)

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

<div style="text-align: center;">Fig. 21 Quantitative evaluation of the algorithm performance on noisy data, with respect to the salient point detection rate (a), and the number of iterations (b). Black bars indicate the standard deviation of the obtained error.</div>

<div style="text-align: center;">Table 16 Results obtained on the manually marked data for the multi-camera RGB sequences</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Points</td><td style='text-align: center; word-wrap: break-word;'>median</td><td style='text-align: center; word-wrap: break-word;'>mean</td><td style='text-align: center; word-wrap: break-word;'>std</td><td style='text-align: center; word-wrap: break-word;'>max</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>point 1</td><td style='text-align: center; word-wrap: break-word;'>06.98</td><td style='text-align: center; word-wrap: break-word;'>07.98</td><td style='text-align: center; word-wrap: break-word;'>3.54</td><td style='text-align: center; word-wrap: break-word;'>20.53</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>point 2</td><td style='text-align: center; word-wrap: break-word;'>11.14</td><td style='text-align: center; word-wrap: break-word;'>12.28</td><td style='text-align: center; word-wrap: break-word;'>5.22</td><td style='text-align: center; word-wrap: break-word;'>23.48</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>point 3</td><td style='text-align: center; word-wrap: break-word;'>10.91</td><td style='text-align: center; word-wrap: break-word;'>10.72</td><td style='text-align: center; word-wrap: break-word;'>4.13</td><td style='text-align: center; word-wrap: break-word;'>24.68</td></tr></table>

![Image](images/f58abf189c70309e88e21f48e38f4be52960495d6e9b5e8ffc82d29b43f98f2c.jpg)

<div style="text-align: center;">The table reports the distance in mm between the manually tracked 3D points and the corresponding vertices on the hand model. The figure shows the positions of the tracked points on the hand model.</div>

针对两种摄像系统的优化实验（Oikonomidis等人，2011a）表明，我们的模型在手部姿态估计方面具有更高的精度。我们首次展示了手部与高度复杂物体交互时的成功跟踪结果。

致谢：本研究得到了德国科学基金会埃米·诺特计划的资助（项目编号GA 1927/1-1）。

## 参考文献

Aggarwal, A., Klawe, M. M., Moran, S., Shor, P., & Wilber, R. (1987). 矩阵搜索算法的几何应用。《算法》，2(1–4)，195–208。

Albrecht, I., Haber, J., & Seidel, H. P. (2003). 基于解剖结构的人手模型的构建与动画制作。载于SCA会议论文集，第98–109页。

Athitsos, V., & Sclaroff, S. (2003). 从杂乱图像中估计三维手部姿态。载于CVPR会议论文集，第432–439页。

Ballan, L., & Cortelazzo, G. M. (2008). 利用光流与轮廓在四摄像机系统中实现无标记的皮肤模型动作捕捉。载于3DPVT会议。

Ballan, L., Taneja, A., Gall, J., Van Gool, L., & Pollefeys, M. (2012) 利用判别性显著点捕捉手部活动时的动作。载于ECCV会议论文集，第640–653页。

Baran, I., & Popović, J. (2007). 三维角色的自动绑定与动画制作。《计算机图形学汇刊》，26(3)。

Belongie, S., Malik, J., & Puzicha, J. (2002). 基于形状上下文的形状匹配与物体识别。《IEEE模式分析与机器智能期刊》，24(4)，509–522。

Bray, M., Koller-Meier, E., & Van Gool, L. (2007). 用于高维跟踪的智能粒子滤波。《计算机视觉与图像理解》，106(1)，116–129。

Bregler, C., Malik, J., & Pullen, K. (2004). 基于扭转原理的动物与人类运动学采集与跟踪。《国际计算机视觉杂志》，56(3)，179–194。

Brox, T.、Rosenhahn, B.、Gall, J.和Cremers, D.（2010）。基于区域和运动信息的刚体和关节物体三维跟踪。PAMI，32(3)，402–415。

Canny, J.（1986）。边缘检测的计算方法。PAMI，8(6)，679–698。

Chen, Y.和Medioni, G.（1991）。通过多幅深度图像配准进行物体建模。载于ICRA。

Coumans, E.（2013）Bullet实时物理仿真。<http://bulletphysics.org>。

de Campos, T.和Murray, D.（2006）。基于回归的多摄像头手部姿态估计。载于CVPR。

de La Gorce, M.、Fleet, D. J.和Paragios, N.（2011）。基于模型的单目视频手部姿态估计。PAMI，33(9)，1793–1805。

Delamarre, Q.和Faugeras, O. D.（2001）。三维关节模型与带物理约束的多视图跟踪。CVIU，81(3)，328–357。

Ekvall, S.和Kragic, D.（2005）。用于示教编程的抓取识别。载于ICRA（第748–753页）。

Erol, A.、Bebis, G.、Nicolescu, M.、Boyle, R. D.和Twombly, X.（2007）。基于视觉的手部姿态估计：综述。CVIU，108(1–2)，52–73。

Everingham, M.、Van Gool, L.、Williams, C.、Winn, J.和Zisserman, A.（2010）。Pascal视觉物体分类（VOC）挑战赛。IJCV，88(2)，303–338。

Felzenszwalb, P. F.和Huttenlocher, D. P.（2004）。采样函数的距离变换。康奈尔大学计算与信息科学系：技术报告。

Gall, J.、Fossati, A.和Van Gool, L.（2011a）。利用实时无标记动作捕捉实现物体的功能分类。载于CVPR（第1969–1976页）。

Gall, J.、Yao, A.、Razavi, N.、Van Gool, L.和Lempitsky, V.（2011b）。用于物体检测、跟踪和动作识别的霍夫森林。PAMI，33(11)，2188–2202。

Gärtner, B.和Schönherr, S.（2000）。一种高效、精确且通用的几何优化二次规划求解器。载于SCG '00（第110–118页）。

---

Hamer, H.、Gall, J.、Weise, T.和Van Gool, L.（2010）。基于稀疏训练数据的物体相关手部姿态先验。载于CVPR（第671–678页）。

Hamer, H.、Schindler, K.、Koller-Meier, E.和Van Gool, L.（2009）。跟踪操作物体的手部运动。载于ICCV（第1475–1482页）。

Heap, T.和Hogg, D.（1996）。基于可变形模型的三维手部跟踪研究。载于FG（第140–145页）。

Holzer, S.、Rusu, R.、Dixon, M.、Gedikli, S.和Navab, N.（2012）。利用积分图像从有序点云数据中实时估计表面法向时的自适应邻域选择。载于IROS（第2684–2689页）。

Jones, M. J.和Rehg, J. M.（2002）。统计颜色模型及其在皮肤检测中的应用。IJCV，46(1)，81–96。

Keskin, C.、Kra, F.、Kara, Y.和Akarun, L.（2012）。利用多层随机决策森林进行手部姿态估计和手部形状分类。载于ECCV。

Kim, D.、Hilliges, O.、Izadi, S.、Butler, A.D.、Chen, J.、Oikonomidis, I.和Olivier, P.（2012）。Digits：使用腕戴式无手套传感器在任何地方实现自由手三维交互。载于UIST（第167–176页）。

Kyriazis, N.和Argyros, A.（2013）。物理上合理的三维场景跟踪：单一演员假设。载于CVPR（第9–16页）。

Kyriazis, N.和Argyros, A.（2014）可扩展的多交互物体三维跟踪。载于CVPR。

刘易斯, J. P.、科德纳, M. 和冯, N.（2000）。姿态空间变形：一种用于形状插值和骨骼驱动变形的统一方法。发表于SIGGRAPH会议。

卢, S.、梅塔克萨斯, D.、萨马拉斯, D. 和奥利恩西斯, J.（2003）。利用多种线索进行手部追踪与模型优化。发表于CVPR会议（第443–450页）。

麦克科米克, J. 和伊萨德, M.（2000）。分区采样、关节物体以及界面质量型手部追踪。发表于ECCV会议（第3–19页）。

默里, R. M.、萨斯特里, S. S. 和 李泽祥（1994）。机器人操控的数学导论。

奥伊科诺米迪斯, I.、基里亚齐斯, N. 和阿尔吉罗斯, A.（2011a）。利用Kinect实现基于模型的高效三维手部关节追踪。发表于BMVC会议（第101.1–101.11页）。

奥伊科诺米迪斯, I.、基里亚齐斯, N. 和阿尔吉罗斯, A.（2011b）。通过建模遮挡与物理约束，实现对与物体交互的手部的全自由度追踪。发表于ICCV会议。

奥伊科诺米迪斯, I.、基里亚齐斯, N. 和阿尔吉罗斯, A. A.（2012）。追踪两只相互强烈交互的手部的关节运动。发表于CVPR会议（第1862–1869页）。

奥伊科诺米迪斯, I.、卢拉基斯, M. I. 和阿尔吉罗斯, A. A.（2014）。用于手部关节追踪的进化式准随机搜索算法。发表于CVPR会议。

帕里斯, S. 和杜朗, F.（2009）。采用信号处理方法对双边滤波器进行快速近似。IJCV，第81卷第1期，第24–52页。

庞斯-莫尔, G. 和罗森哈恩, B.（2011）。基于模型的姿态估计（第139–170页）。

钱, C.、孙, X.、魏, Y.、唐, X. 和孙, J.（2014）。基于深度图像的实时且鲁棒的手部追踪。发表于CVPR会议。

雷格, J. M. 和金出, T.（1994）。高自由度关节结构的视觉追踪：以人手追踪为例。发表于ECCV会议（第35–46页）。

雷格, J. 和金出, T.（1995）。基于模型的自遮挡关节物体追踪。发表于ICCV会议（第612–617页）。

罗梅罗, J.、凯尔斯特伦, H. 和克拉吉奇, D.（2009）。单目实时三维关节手姿估计。发表于HUMANOIDS会议（第87–92页）。

罗梅罗, J.、凯尔斯特伦, H. 和克拉吉奇, D.（2010）。“手在行动”：实时重建与物体交互中的手部三维模型。发表于ICRA会议（第458–463页）。

罗萨莱斯, R.、阿蒂索斯, V.、西格尔, L. 和斯卡拉福, S.（2001）。利用专用映射进行三维手姿重建。发表于ICCV会议（第378–387页）。

罗森哈恩, B.、布罗克斯, T. 和韦克特, J.（2007）。用于图像分割与姿态追踪联合的三维形状知识。IJCV，第73卷第3期，第243–262页。

鲁辛基维奇, S. 和莱沃伊, M.（2001）。ICP算法的高效变体。发表于3DIM会议（第145–152页）。

鲁辛基维奇, S.、霍尔-霍尔特, O. 和莱沃伊, M.（2002）。实时三维模型采集。TOG，第21卷第3期，第438–446页。

施密特, T.、纽科姆, R. 和福克斯, D.（2014）。DART：密集关节结构的实时追踪。发表于在美国伯克利举行的机器人学：科学与系统会议论文集。

夏普, T.、凯斯金, C.、罗伯逊, D.、泰勒, J.、肖顿, J.、金, D.、雷曼, C.、莱希特, I.、维尼科夫, A.、魏, Y.、弗里德曼, D.、科利, P.、克鲁普卡, E.、菲茨吉本, A. 和伊扎迪, S.（2015）。精准、鲁棒且灵活的实时手部追踪技术。发表于CHI会议。

肖顿, J.、菲茨吉本, A.、库克, M.、夏普, T.、菲诺乔, M.、摩尔, R.、基普曼, A. 和布莱克, A.（2011）。基于单张深度图像实时识别人体局部姿态。发表于CVPR会议（第1297–1304页）。

Sridhar, S.、Mueller, F.、Oulasvirta, A.和Theobalt, C.（2015）。基于检测引导优化的快速且鲁棒的手部跟踪。载于CVPR。

Sridhar, S.、Oulasvirta, A.和Theobalt, C.（2013）。利用RGB和深度数据的交互式无标记关节手部运动跟踪。载于ICCV（第2456–2463页）。

Sridhar, S.、Rhodin, H.、Seidel, H.P.、Oulasvirta, A.和Theobalt, C.（2014）。基于各向异性高斯模型之和的实时手部跟踪。载于3DV。

Stenger, B.、Mendonca, P.和Cipolla, R.（2001）。基于模型的关节手部3D跟踪。载于CVPR。

Stolfi, J.（1991）。定向射影几何：几何计算框架。波士顿：Academic Press出版社。

Sudderth, E.、Mandel, M.、Freeman, W.和Willsky, A.（2004）利用非参数信念传播进行视觉手部跟踪。载于基于生成模型的视觉研讨会（第189–189页）。

Tang, D.、Chang, H. J.、Tejani, A.和Kim, T. K.（2014）。潜在回归森林：3D关节手部姿态的结构化估计。载于CVPR。

Tang, D.、Yu, T. H.和Kim, T. K.（2013）。利用半监督传导回归森林进行实时关节手部姿态估计。载于ICCV（第3224–3231页）。

Taylor, J.、Stebbing, R.、Ramakrishna, V.、Keskin, C.、Shotton, J.、Izadi, S.、Hertzmann, A.和Fitzgibbon, A.（2014）。基于单目深度序列的用户特定手部建模。载于CVPR。

Teschnern, M.、Kimmerle, S.、Heidelberger, B.、Zachmann, G.、Raghu-pathi, L.、Fuhrmann, A.、Cani, M. P.、Faure, F.、Magnetat-Thalmann, N.和Strasser, W.（2004）。可变形物体的碰撞检测。载于Eurographics。

Thayananthan, A.、Stenger, B.、Torr, P. H. S.和Cipolla, R.（2003）。杂乱场景中的形状上下文与倒角匹配。载于CVPR（第127–133页）。

Tompson, J.、Stein, M.、Lecun, Y.和Perlin, K.（2014）。利用卷积网络实现人类手部的实时连续姿态恢复。载于TOG 33。

Tzionas, D.和Gall, J.（2013）。手部姿态估计中方向距离的比较。载于GCPR。

Tzionas, D.、Srikantha, A.、Aponte, P.和Gall, J.（2014）。利用RGB-D传感器捕捉手部运动，融合生成模型与显著点。载于GCPR。

Vaezi, M.和Nekouie, M. A.（2011）。利用单张2D图像重建3D人体手部姿态。IJHCI，1(4)，第83–94页。

Wang, R. Y.和Popović, J.（2009）。利用彩色手套实现实时手部跟踪。TOG，28(3)，第63:1–63:8页。

Wu, Y.、Lin, J.和Huang, T.（2001）。捕捉自然手部关节运动。载于ICCV（第426–432页）。

Ye, M.、Zhang, Q.、Wang, L.、Zhu, J.、Yang, R.和Gall, J.（2013）。基于深度数据的人体运动分析综述。载于《飞行时间与深度成像：传感器、算法及应用》（第149–187页）。
