
# 利用判别性显著点进行手部动作的运动捕捉

Luca Ballan、Aparna Taneja、Jürgen Gall、Luc Van Gool 和 Marc Pollefeys

瑞士苏黎世联邦理工学院

摘要：由于手部具有大量的自由度、存在自遮挡现象且手指之间相似度较高，即便使用多台摄像机观测场景，捕捉两只手与物体交互的动作仍是一项极具挑战性的任务。在本文中，我们提出利用手指上的判别性学习得到的显著点，在估计手部姿态的同时同步确定手指与显著点的对应关系。我们引入了一种可微的目标函数，该函数还会将边缘、光流以及碰撞因素纳入考量。定性与定量评估结果表明，对于包含手部与物体交互动作的多个复杂序列，所提出的方法能够取得非常精确的结果。

## 1 引言

捕捉手部动作是计算机视觉领域极具挑战性的问题，它在计算机图形学、人机交互以及机器人等其他领域也具有重要应用价值。虽然数据手套或彩色手套等侵入式方法[^1]能为某些应用场景提供可行的解决方案，但无标记的手部追踪至今仍未得到解决。

尽管该问题自上世纪九十年代起就已被研究[^2]，但大多数方法都侧重于对孤立单只手的追踪[^3]。由于手部具有大量自由度，加之存在自遮挡现象且手指之间相似度较高，这一任务本身就极具挑战性。尽管存在这些难题，近期的研究[4–6]已着手解决手部与物体交互的问题。虽然物体可能会产生额外的遮挡，但这些遮挡可用于约束可能的姿态空间，正如[^6]和[^7]中所描述的那样。不过这两种方法都假设被操控的物体是刚性的且颜色非肤色，也就是说该物体相对容易追踪。

在本研究中，我们致力于解决更为棘手的问题：捕捉两只手相互交互以及与额外物体交互时的关节运动，如图1所示。与单手操控物体不同，两只交互的手无法仅凭颜色加以区分。最近，Oikonomidis等人[^8]提出了一种无需物体参与的两只交互手追踪方法。他们利用深度传感器来消除彩色图像带来的歧义，并采用碰撞约束（如[^6]中所述）来避免手部相互穿插。

---

![Image](images/f40a9197c1cd0f63654f12579c8845b43f048d445a175f807d442509d2aebadb.jpg)

<div style="text-align: center;">Fig. 1. (Left) Result obtained on a sequence where two hands were interacting with a ball. This sequence consists of a total of 73 degrees of freedom. (Right) Mesh model and underlying bone skeleton used to represent the hands in the scene. The numbers near each joint indicate the number of allowed degrees of freedom.</div>

在本研究中，我们提出了一种能在多摄像机场景下消除这些歧义的方法。为此，我们借鉴了[^2]中的早期工作，利用指尖等显著点。但与他们的研究场景不同的是，由于存在大量遮挡且这些特征的外观相似度极高，这些显著点无法被连续追踪。因此我们无法依赖显著点与对应手指之间的固定关联关系。

为应对这一问题，我们提出了一种新方法，将显著点关联问题与手部姿态估计问题一并求解。此外，我们为姿态估计设计了一种几乎处处可微的目标函数，该函数会综合考虑边缘、光流、显著点以及碰撞因素。通过这种方式，我们无需采用基于采样的优化方法（如[^8]中所用），就能运用简单的局部优化技术。

在我们的实验中，我们证明了该方法能够应对包含手部动作且有无物体参与的极具挑战性的序列，并且对显著点检测中的误差也具有鲁棒性。通过定量比较，我们发现这种迭代式局部优化方法在姿态估计误差方面明显低于[^8]中所采用的采样方法。

## 2 相关工作

在[^3]这篇综述中，针对人机交互场景下的各种手部姿态估计方法进行了梳理。按照其分类方式，手部姿态估计方法可分为两类：一类是判别式方法，直接对图像数据运用分类或回归技术；另一类是生成式方法，利用显式的手部模型来恢复手部姿态。

生成式方法之间的主要差异体现在从图像中提取的不同视觉线索，以及所采用的优化技术上。

---

这些方法用于解决姿态估计问题。最常用的视觉特征包括轮廓和边缘，不过过去也曾使用过阴影、颜色和光流[^9] [^10]。深度信息也已被应用于此领域[^11] [^12]，近年来在深度传感器背景下它又重新受到关注[^13]。

为了基于这些线索恢复手部姿态，人们提出了多种优化技术。在最早的三维手部姿态估计方法之一[^2]中，就采用了局部优化技术。由于效率高，局部优化至今仍是姿态估计的常用方法，但它需要精心设计的目标函数才能避免陷入局部最优[^10]。其他方法则依赖随机优化技术，如卡尔曼滤波[^14]和粒子滤波[^15]。虽然[^12]中将粒子滤波与局部优化相结合，以提升这些技术在高维手部姿态空间中的性能，但像[^16]和[^17]这类方法提出利用线性子空间来缩减姿态空间。不过缺点是，这些方法只能表示数量有限的手部姿态。此外，人们还探索了其他类型的优化技术，如信念传播[^4] [^18]和粒子群优化[^19]。

相比之下，判别式方法不需要显式的手部模型，而是从大量训练数据中学习图像特征到手部姿态的映射关系[^20] [^21] [^22] [^23]。这类方法大多独立处理各帧图像，不过也能轻松保证时间一致性[^5] [^24]。尽管判别式方法能够纠正误差，但其精度和可处理的姿态类型仍取决于训练数据。因此，对于需要精确估计未知动作下手部姿态的应用场景，判别式方法并不适用。在本研究中，我们提出了一种基于局部优化的生成式方法，该方法利用经判别式训练得到的显著点检测器，来解决目标函数中存在的姿态模糊问题。

正如引言中所指出的，关于交互场景下的手部动作捕捉研究尚不多见。[^4]研究了在物体操控场景下基于深度数据的手部追踪问题。为了辅助此类追踪，[^7]提出根据所操控物体的类型来学习相应的手部姿态先验，其依据是操控相似物体时会涉及类似的手部动作。在物体抓取领域，[^5]构建了一个包含1万种有/无抓取物体情况下的手部姿态数据库，以便通过最近邻搜索从图像中恢复手部姿态。近期，[^6]提出同时追踪被操控物体与手部，从而利用碰撞约束来缩小搜索范围。在他们的研究中，物体被假定为足够简单，可用圆柱体、椭球体或立方体等几何原型来建模。

虽然这些研究解决了单个手部与刚性、非肤色物体交互时的动作捕捉问题，但我们研究的则是两只手相互交互以及与额外物体交互时的动作捕捉问题。仅有两项较新的研究[^8]、[^25]探讨了类似的问题。在[^8]的研究中，研究人员应用粒子群优化算法（PSO）来基于深度数据追踪两只交互中的手。这是[^6]研究的延伸，展现了PSO的潜力。不过，该方法采用的采样技术

---

会导致姿态估计精度不高。我们的实验表明，采用局部优化的方法在精度上明显优于PSO。在[^25]的研究中，研究人员捕捉了两个交互角色的动作。但该方法依赖于一个前提：场景中两个角色在所有图像中都能根据其外观和形状被分割出来。而对于交互中的双手而言，由于颜色相近，这一前提并不成立。当两只手相互接触时，他们的追踪算法确实会失效，这也凸显了本研究所涉及问题的难度。

## 3 场景模型

场景中每个可追踪元素都被建模为线性混合蒙皮模型，由表面网格模型和底层的骨骼骨架组成，如图1所示。在该模型中，表面形变是通过线性混合蒙皮算子（LBS）[^26]来编码的，该算子将骨骼配置$\theta$映射到网格顶点位置$v_k(\theta)$。对于一个包含m根骨骼的骨架，设作用于第j根骨骼上的齐次变换为$T_j(\theta)$，则网格顶点k的位置定义为：

 $$ v_{k}\left(\theta\right)=\sum_{j=1}^{m}\alpha_{k,j}T_{j}\left(\theta\right)T_{j}\left(0\right)^{-1}v_{k}\left(0\right), $$

其中标量$\alpha_{k,j}$定义了第j根骨骼对顶点k位置的影响程度。$v_{k}(0)$和$T_{j}(0)$分别表示配置0下（也称为绑定配置）的顶点位置和骨骼变换。我们假设$\alpha_{k,j}$、$v_{k}(0)$和$T_{j}(0)$是预先已知的。

在我们的场景中，双手和物体被视作一个单一的、合并的线性混合蒙皮模型。每只手背后的骨骼由20块骨头组成，因此每只手共有35个自由度（DOF）。图1展示了这些自由度在所有关节上的分布情况。需要注意的是，手腕部分被建模为具有6个自由度以实现平移，而每个指节则被建模为具有3个自由度以反映手指的微小扭转。处于绑定姿势下的手部网格$v_k(0)$是通过对受试者手部图像进行多视角立体成像和泊松曲面重建得到的。随后手动拟合骨骼，并使用商业建模软件来定义混合权重$\alpha_{k,j}$。

全局姿态配置$\theta$采用指数坐标表示（即轴角表示法加上平移量），它通过SE(3)指数映射运算符与每块骨头的变换$T_{j}(\theta)$相关联，如[^27]中所述。通过强制要求$\theta$属于允许的配置空间$\Theta$（线性有界空间）来施加骨骼角度约束。在姿态估计过程中，还会考虑由碰撞和自相交引起的约束。

## 4 姿态估计

输入视频被假定为已同步且经过空间校准。录制用的摄像机在整个动作过程中被假定为静止不动，而且

---

```pseudo
// Algorithm 1: Pose Estimation

```

 $\theta_{0} = \text{pose estimated for the previous frame}$
 $i = 0, C = \emptyset$

重复直至收敛

- 渲染处于某姿态下的网格$\theta_{i}$

- 计算边缘对应关系$\mathcal{E}$

- 计算光流对应关系$\mathcal{O}$

- 计算显著点对应关系$\mathcal{S}$

- $\mathcal{C} = \mathcal{C} \cup \{\text{collisions detected for pose } \theta_{i}\}$
 $\theta_{i+1} = \arg \min_{\theta \in \Theta} \mathcal{F}^{\mathcal{E}, \mathcal{O}, \mathcal{S}} (\theta)$
 $i = i + 1$

投影函数$\varPi_c : \mathbb{R}^3 \longrightarrow \mathbb{R}^2$将三维点映射到每台摄像机c的成像平面上，这些函数被假定为已知。

首先对录制的视频进行预处理，以提取姿态估计所需的视觉特征。在本研究中，我们重点关注边缘、光流和显著点。随后将这些信息输入到我们的算法中，该算法旨在找到能够最好地解释所观测特征的模型配置$\theta$。这是通过迭代地构建并最小化一个涵盖所有获取信息的目标泛函来实现的。

```pseudo
// Algorithm 1: shows an overview of the proposed approach. The algorithm concept is similar to the one proposed in [^28] and [^29]. At each iteration i, the current pose estimate  $\theta_i$ is evaluated by generating and comparing compatible visual features with those extracted from the videos. This is performed by means of rendering first, and then, by generating a set of vertex-to-image point correspondences indicating how far each feature is from the corresponding feature on the actual images. Precisely, each correspondence is defined as a triplet  $(k, c, p)$, where  k is a vertex index,  c is a camera index, and  p is a 2D point on the image plane of camera  c. For a correct pose estimation, the vertex  k should project onto the image point  p in camera  c, i.e., the configuration  $\theta_i$ should be chosen in such a way that  $\Pi_c(v_k(\theta_i)) = p$.

```

给定一组边缘对应关系$\mathcal{E}$、光流对应关系$\mathcal{O}$以及显著点对应关系$\mathcal{S}$，我们通过最小化以下目标泛函来寻找最能满足所有这些观测结果的配置$\theta$。

 $$ \mathcal{F}^{\mathcal{E},\mathcal{O},\mathcal{S}}\left(\theta\right)=\sum_{\left(k,c,p\right)\in\mathcal{E}\cup\mathcal{O}\cup\mathcal{S}}\left\|\varPi_{c}\left(v_{k}\left(\theta\right)\right)-p\right\|^{2}+\varGamma\left(\theta\right) $$

其中$\varGamma(\theta)$是一种姿态先验，用于温和地惩罚碰撞和自相交现象。这一项在第4.2节中有详细描述。

为了生成有效的边缘对应关系 $\mathcal{E}$，通过对每个相机 c 渲染的深度图的梯度进行阈值处理，计算当前位姿估计 $\theta_i$ 下网格模型的边缘图。位于这些图边缘上的每个网格顶点 k，与相机 c 相应输入图像中距离最近的边缘像素 p 进行匹配，并优先匹配方向相似的边缘。

---

光流对应关系$\mathcal{O}$的计算方式如[^28]中所述，而显著点对应关系$\mathcal{S}$将在下一节中说明。

### 4.1 显著点

在手部之间的紧密交互情况下，边缘和光流等传统特征不足以完全消除姿态歧义。实际上，由于颜色相似，当双手接触时图像中的边缘会完全消失。为了解决这些歧义，需要借助更强的额外线索。

为此，我们针对性地学习手部某些特征性外观，并在每段录制的视频中检测它们。我们特别选择了指甲作为研究对象，因为其外观独特且变形特性稳定。我们基于400张从不同角度拍摄的手动标注的指甲/非指甲图像训练了一个霍夫森林分类器[^30]。随后将得到的分类器应用于各视频序列，以生成一组显著图像点。在网格模型方面，与每个指甲中心对应的顶点被标记为显著顶点。为了准确估计姿态，这些显著顶点应始终投影到视频中的显著图像点上。

遗憾的是，由于不同手指上的指甲外观极为相似，要训练出能区分不同手指指甲的分类器几乎是不可能的。虽然通过跟踪视频中的显著点来利用时间连续性有所帮助，但一般来说，当指甲相互靠近或完全被遮挡时，仍可能产生歧义解。因此我们只能接受这种信息缺失的情况，不依赖检测到的显著图像点与显著顶点之间的固定对应关系。这种对应关系需在姿态估计过程中一并确定，并作为问题的额外未知量纳入考量。

在算法的第i次迭代中，会针对每台相机c计算出网格上所有可见的显著顶点集合。设$\varXi = \{\xi_1, \ldots, \xi_r\}$表示相机c下这些顶点的索引，$\Delta = \{\delta_1, \ldots, \delta_d\}$表示同一相机c在当前帧中由分类器检测出的所有显著图像点集合。为了找到显著顶点$\varXi$与显著图像点$\Delta$之间的合理匹配，我们构建了二分图完美匹配问题。我们定义了一个$|\varXi| \times |\Delta|$矩阵，其元素$w_{st} = \|\varPi_c(v_{\xi_s}(\theta_i)) - \delta_t\|$用于编码显著顶点$\varXi$的投影与其对应显著图像点$\Delta$之间的距离。

由于可能存在遮挡以及当前姿态估计$\theta_{t}$的不准确性，实际可见的显著顶点数量可能与理论值存在差异。此外，分类器产生的误检和漏检也可能阻碍两组数据之间找到完美匹配。

为解决这一问题，我们首先通过在两个集合中添加虚拟元素并使对应权重为无穷大，来确保它们永远不会被选为候选匹配项，从而使矩阵$\{w_st\}_{st}$变为方阵。对于$\Xi$和$\Delta$中的异常值，我们通过添加两组额外的虚拟节点$\{\alpha_s\}_{s}$和$\{\beta_t\}_{t}$来处理，用以标识对应的元素$\xi_s$和$\delta_t$是否为异常值。

---

匹配问题随后被表述为如下整数规划问题：

 $$ \begin{array}{r l r l}{\arg\operatorname*{m i n}}&{\underset{s,t}{\sum}e_{s t}w_{s t}+\lambda\underset{s}{\sum}\alpha_{s}+\lambda\underset{t}{\sum}\beta_{t}}\\ {\mathrm{s u b j e c t~t o}}&{\underset{s}{\sum}e_{s t}+\beta_{t}=1}&&{\forall t}\\ &{\underset{t}{\sum}e_{s t}+\alpha_{s}=1}&&{\forall s}\\ &{e_{s t},\alpha_{s},\beta_{t}\in\{0,1\}}&&{\forall s,t}\end{array} $$

其中，二元变量$\{e_{st}\}_{st}$用于指示显著图像点$\delta_t$是否与显著顶点$\xi_s$相匹配（当值为$e_{st} = 1$时表示匹配），或者不匹配（当值为$e_{st} = 0$时表示不匹配）。参数$\lambda$表示将某个元素分配到虚拟节点$\alpha_s$或$\beta_t$时所付出的惩罚代价。在我们所有的实验中，该参数均被设定为60像素；这样一来，距离所有显著图像点超过60像素的显著顶点就更容易被判定为异常值，反之亦然。公式3中所描述的问题可以在多项式时间内求解，由此得到的$\{e_{st}\}_{st}$随后会被用来生成一组有效的显著点对应关系$\mathcal{S}$。

### 4.2 碰撞项

已有研究证明，将碰撞和自相交情况纳入考量能够显著改善姿态估计结果[^6]。因此，我们在所提出的方法中也考虑了这类信息。

与[^6]中依赖额外模型来显式处理碰撞的方式不同，我们选择了一种更具通用性的解决方案：在原始网格上采用面对面的碰撞检测方法。随后通过距离场[^31]来对碰撞进行惩罚。这类距离场在图形学中常用于计算不同场景元素之间的距离，但在出现自碰撞情况时，其计算成本会变得很高——因为需要为模型中的每个面分别计算独立的距离场。为解决这一问题，我们选择局部近似这些距离场，并且仅在需要时才生成它们，也就是仅在检测到碰撞时才生成。

在算法的每次迭代 i 中，使用当前位姿估计 $\mathcal{C}$ 对碰撞网格面列表 $\theta_i$ 进行增量更新。如 [^32] 所述，使用 Bounding Volume Hierarchies 可以快速完成此操作。对于每一对碰撞面 $f_s$ 和 $f_t$，分别为 $\Psi_{f_s \to f_t}$ 和 $\Psi_{f_t \to f_s}$ 定义两个局部距离场 $f_s$ 和 $f_t$。场 $\Psi_{f_s \to f_t}$ 应用于碰撞面 $f_t$ 的顶点，反之，场 $\Psi_{f_t \to f_s}$ 应用于面 $f_s$ 的顶点。然后，Equation 2 中的碰撞项 $\Gamma(\theta)$ 定义如下

 $$ \varGamma\left(\theta\right)=\sum_{\left(f_{t},f_{s}\right)\in\mathcal{C}}\left(\sum_{k\in f_{t}}\varPsi_{f_{s}\rightarrow f_{t}}\left(v_{k}\left(\theta\right)\right)+\sum_{k\in f_{s}}\varPsi_{f_{t}\rightarrow f_{s}}\left(v_{k}\left(\theta\right)\right)\right). $$

距离场$\Psi_{f_s \to f_t} : \mathbb{R}^3 \longrightarrow \mathbb{R}^+$的定义方式是：它会惩罚所有位于面$f_t$所围成的圆锥内部的面$f_s$的顶点。

---

![Image](images/33373157a9a3af302e9caf5bcd7cedd820b5b37347b2fd64656e5effa861b656.jpg)

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

关于其圆形区域，请参见图2（左）。顶点v在该锥体内的位置越深，受到的惩罚就越大，详见图2（中）。图2（右）展示了在多次碰撞情况下多个锥体$\varPsi_{f_s \to f_t}$是如何叠加的。关于$\varPsi_{f_s \to f_t}$的数学表述，请参阅补充材料。由于所得到的$\varGamma(\theta)$几乎在所有地方都是可微分的，因此对该泛函进行局部优化后，碰撞现象会在几次迭代中自行消除。

### 4.3 优化

由于目标泛函$\mathcal{F}$采用了非线性最小二乘公式，因此每次算法迭代i时都采用Levenberg-Marquard算法来对$\mathcal{F}$进行局部优化：以$\theta_i$作为初始猜测值，并将解限定在$\Theta$范围内。随后将得到的解$\theta_{i+1}$用于下一次迭代。这一过程会不断重复直至收敛。

通过将$\mathcal{F}$构建为最小二乘问题，我们本质上假定观测数据服从高斯分布。因此我们需要专门处理异常值。具体做法是针对每块骨骼，计算在所有对应点均被考虑时该骨骼所产生的运动的平均值和标准差。那些表明骨骼运动幅度超过估计运动标准差两倍以上的对应点，会被排除在当前优化过程之外。

为了避免因$\mathcal{F}$的非凸性而导致的局部最小值问题，我们确保$\mathcal{F}(\theta)$的最终值低于预设阈值；否则便通过采样（模拟退火）的方式重新初始化参数。在我们的所有实验中，仅需两次重新初始化操作。

## 5 实验评估

该算法在7个真实场景序列上进行了测试，这些序列的长度介于300到950帧之间，涵盖了手与手之间的交互以及手与物体之间的交互。视频是通过由八台同步摄像机组成的设备采集的。

---

这些摄像机以50帧/秒的速率录制FullHD画质的视频。所记录的动作类型多样，包括：祈祷、指尖触碰、手指交叉、手指交叉并扭转、手指弯曲、手指在手背上来回移动，以及持球和传球。所有序列中使用的自由度总数均为70；在球类动作序列中，这一数字增加到了73。

图5展示了每个测试序列中的一帧画面，以及从两个不同视角叠加在原始画面上的处理结果。肉眼观察即可发现，即使在手部紧密交互且存在多处遮挡的复杂场景中，所提出的算法也能取得不错的效果。更详细的结果可查看发布在<http://cvg.ethz.ch/research/ih-mocap/>上的补充视频。

### 5.1 定量评估及与以往工作的比较

为了对算法进行定量评估，我们开展了两项实验：一项是在带有人工标注基准真值的真实序列上进行，另一项则使用合成数据。

合成数据：我们模拟了两个序列：一是手指交叉和弯曲，二是持球和传球，这两种情况均与真实场景中捕捉到的动作类似。视频是利用商业渲染软件生成的。随后从关节位置误差和骨骼方向误差两个方面评估了姿态估计的准确性。

表1展示了针对所用视觉特征的算法性能定量评估结果。可以看出，每种特征几乎都对算法的准确性有线性贡献，而显著点$\mathcal{S}$明显提升了算法的性能。

我们使用迭代局部优化方法获得的结果，也与采用HOPE算法实现所得的结果进行了比较[^6]。为了公平比较，我们在HOPE误差泛函中加入了显著点项，并使用了与[^6]中完全相同的参数。具体而言，我们评估了40代中的64个粒子。考虑到自由度的数量翻倍，我们也测试了

<div style="text-align: center;">Table 1. 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}$. LO stands for our iterative local optimization approach, while HOPE64 and HOPE128 stand for our implementation of [^6] with 64 and 128 particles respectively, evaluated over 40 generations.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td colspan="4">Joints position error</td><td colspan="4">Bones orientation error</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Used features</td><td style='text-align: center; word-wrap: break-word;'>mean [mm]</td><td style='text-align: center; word-wrap: break-word;'>std [mm]</td><td style='text-align: center; word-wrap: break-word;'>max [mm]</td><td style='text-align: center; word-wrap: break-word;'>mean [deg]</td><td style='text-align: center; word-wrap: break-word;'>std [deg]</td><td style='text-align: center; word-wrap: break-word;'>max [deg]</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>4.52</td><td style='text-align: center; word-wrap: break-word;'>49.86</td><td style='text-align: center; word-wrap: break-word;'>2.36</td><td style='text-align: center; word-wrap: break-word;'>6.84</td><td style='text-align: center; word-wrap: break-word;'>94.58</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>2.89</td><td style='text-align: center; word-wrap: break-word;'>52.94</td><td style='text-align: center; word-wrap: break-word;'>1.98</td><td style='text-align: center; word-wrap: break-word;'>4.57</td><td style='text-align: center; word-wrap: break-word;'>91.89</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>2.25</td><td style='text-align: center; word-wrap: break-word;'>16.84</td><td style='text-align: center; word-wrap: break-word;'>1.84</td><td style='text-align: center; word-wrap: break-word;'>3.81</td><td style='text-align: center; word-wrap: break-word;'>60.09</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>1.44</td><td style='text-align: center; word-wrap: break-word;'>13.27</td><td style='text-align: center; word-wrap: break-word;'>1.88</td><td style='text-align: center; word-wrap: break-word;'>3.90</td><td style='text-align: center; word-wrap: break-word;'>44.51</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>3.69</td><td style='text-align: center; word-wrap: break-word;'>31.05</td><td style='text-align: center; word-wrap: break-word;'>4.35</td><td style='text-align: center; word-wrap: break-word;'>7.11</td><td style='text-align: center; word-wrap: break-word;'>58.61</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></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</td><td style='text-align: center; word-wrap: break-word;'>3.28</td><td style='text-align: center; word-wrap: break-word;'>41.11</td><td style='text-align: center; word-wrap: break-word;'>4.73</td><td style='text-align: center; word-wrap: break-word;'>7.46</td><td style='text-align: center; word-wrap: break-word;'>78.65</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

---

![Image](images/75e88b679406b810d8e2d4df2374b449de9a29c34f24a0d010e12cd30d79646b.jpg)

![Image](images/150673698acfc8560cd9c340c692ae4ae5a9c38eca6b2a6818492efad545e9ea.jpg)

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

<div style="text-align: center;">Table 2. Results obtained on the manually marked data. 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.</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 [mm]</td><td style='text-align: center; word-wrap: break-word;'>mean [mm]</td><td style='text-align: center; word-wrap: break-word;'>std [mm]</td><td style='text-align: center; word-wrap: break-word;'>max [mm]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>point 1</td><td style='text-align: center; word-wrap: break-word;'>6.98</td><td style='text-align: center; word-wrap: break-word;'>7.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/b64bba0758aa93a2a4f77287745d2fd0eb4648ee4825131e1e07b0ecf65489c4.jpg)

![Image](images/f5579957d3d81fb98d963ee84d64826bd421248a679a23de0d6bcd2a1accc737.jpg)

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

<div style="text-align: center;">Fig. 4. Examples of cases where the algorithm exhibits pose estimation errors due to severe occlusions</div>

包含128个粒子的HOPE算法。正如预期，HOPE在测试的序列中表现相当不错，但由于其采样特性，必然会产生较大的误差。而我们的方法（LO）则利用了$\mathcal{F}$的局部信息，即雅可比矩阵，从而将平均误差从4.67毫米大幅降至1.49毫米。

为了使这些实验尽可能贴近真实场景，我们在所有视觉特征中模拟了噪声。更确切地说，边缘检测

---

![Image](images/b3000b2eec3e1926a0d0d4fccc65d0fd842271a35e0ee3d477bac8ed0dd63df6.jpg)

<div style="text-align: center;">(g) Holding and passing a ball</div>

<div style="text-align: center;">Fig. 5. Some of the obtained results. (Left) Input images. (Center) Obtained results overlayed with the images in the left column. (Right) Obtained results from another viewpoint. (Images have been zoomed in for better visualization of the results.)</div>

---

是通过向图像中添加结构噪声来引入误差的，即在每张图像的随机位置添加和减去半径为10到30像素的100个圆形区域；与这些圆形区域对应的光流特征也未被纳入考虑范围。显著点检测器中的误差则是通过随机删除检测结果，以及在实际特征周围200像素半径内随机添加异常值来模拟的。最后，在生成的显著点的坐标上引入了5像素的高斯噪声。

图3（左）展示了在噪声数据情况下显著点检测器对姿态估计精度的影响。该实验是在显著点误检率为10%且检测率各不相同的情况下进行的。可以看出，即便检测率仅为30%，误差也会迅速趋近于最小值。

图3（右）展示了我们算法在不同迭代次数下的收敛速率。可以看出，仅经过15次迭代，算法的精度便已相当可观。在我们的实验中，所有真实场景序列平均都采用了15次迭代。

带有手动标记数据的真实序列：我们在一个真实数据集的所有视频中，手动标记了手部的一些可区分点。随后通过三角测量得到这些点的三维坐标，再计算这些点与手部模型中对应顶点之间的距离。这项测试是在我们最具挑战性的数据集上进行的，即两只手与球互动的场景。由于需要大量人工操作，我们在此序列中仅跟踪了3个特征。表2显示了该实验中所获得的跟踪精度。总体而言，跟踪误差的中位数最多为1厘米。读者需注意，这一误差也受到了手动标记过程中引入的不精确性影响。可以注意到，误差最小的点（点1）实际上在序列的大部分时间里都与球有最紧密的接触。在[^6]中也观察到了类似现象。

失效情况：尽管该算法在几乎所有处理的帧中表现良好，但在某些极具挑战性的情况下，由于严重的遮挡现象，仍可能出现姿态估计误差。图4展示了一些此类情况。若给我们的方法加入运动先验，或许有助于从这类情况中恢复过来。

## 6 结论

在本文中，我们提出了一种用于捕捉两只手相互之间以及与物体交互时的关节运动的方法。为了应对其中涉及的大量自由度、多重遮挡现象，以及手和手指之间的颜色/外观相似性等问题，我们选择利用边缘、光流、显著点和碰撞等多种视觉特征，在一个可微函数中估算关节姿态。

我们观察到，使用通过判别学习得到的显著点能够大幅提升姿态估计的精度，尤其是在存在严重遮挡的情况下。

---

以及手指间的紧密交互情况，也就是在边缘和光流等特征可能不可靠的场景中。为了解决将显著点对应到相应手指时的歧义问题，我们提出将这种关联问题的求解与手部姿态估计同步进行。为了处理场景中元素间的自相交和碰撞问题，我们提出采用距离场，且仅在需要时本地生成这些距离场。

实验结果表明，采用局部优化的所提方法，其误差明显低于基于进化算法的现有先进手部跟踪方法；不过将这两种优化方法结合或许值得进一步研究。真实场景中的实验证明，我们的方法能够应对包含手部活动且带有或不带物体的极具挑战性的序列，并且对显著点检测中的误差也具有鲁棒性。我们认为，将显著点关联求解与姿态估计同步进行的思路，对其他跟踪应用同样具有参考价值。

致谢。本研究得到了欧盟第七框架计划（FP7/2007-2013）下ERC资助项目#210806 4DVideo以及瑞士国家科学基金会的支持。

## 参考文献

[^1]: Wang, R.Y., Popović, J.: Real-time hand-tracking with a color glove. ACM Trans-action on Graphics 28 (2009)

[^2]: Rehg, J.M., Kanade, T.: Visual Tracking of High DOF Articulated Structures: An Application to Human Hand Tracking. In: Eklundh, J.-O. (ed.) ECCV 1994. LNCS, vol. 801, pp. 35–46. Springer, Heidelberg (1994)

[^3]: Erol, A., Bebis, G., Nicolescu, M., Boyle, R.D., Twombly, X.: Vision-based hand pose estimation: A review. CVIU 108, 52–73 (2007)

[^4]: Hamer, H., Schindler, K., Koller-Meier, E., Van Gool, L.: Tracking a hand manipulating an object. In: ICCV, pp. 1475–1482 (2009)

[^5]: Romero, J., Kjellström, H., Kragic, D.: Hands in action: real-time 3D reconstruction of hands in interaction with objects. In: ICRA, pp. 458–463 (2010)

[^6]: Oikonomidis, I., Kyriazis, N., Argyros, A.: Full DOF tracking of a hand interacting with an object by modeling occlusions and physical constraints. In: ICCV (2011)

[^7]: Hamer, H., Gall, J., Weise, T., Van Gool, L.: An object-dependent hand pose prior from sparse training data. In: CVPR, pp. 671–678 (2010)

[^8]: Oikonomidis, I., Kyriazis, N., Argyros, A.A.: Tracking the articulated motion of two strongly interacting hands. In: CVPR (2012)

[^9]: Lu, S., Metaxas, D., Samaras, D., Oliensis, J.: Using multiple cues for hand tracking and model refinement. In: CVPR (2003)

[^10]: de La Gorce, M., Fleet, D.J., Paragios, N.: Model-based 3D hand pose estimation from monocular video. PAMI 33, 1793–1805 (2011)

[^11]: Delamarre, Q., Faugeras, O.D.: 3D articulated models and multiview tracking with physical forces. CVIU 81, 328–357 (2001)

## [^12]: Bray, M., Koller-Meier, E., Van Gool, L.: Smart particle filtering for high-dimensional tracking. CVIU 106, 116–129 (2007)

---

[^13]: Oikonomidis, I., Kyriazis, N., Argyros, A.: Efficient model-based 3D tracking of hand articulations using kinect. In: BMVC (2011)

[^14]: Stenger, B., Mendonca, P., Cipolla, R.: Model-based 3D tracking of an articulated hand. In: CVPR, pp. 310–315 (2001)

[^15]: MacCormick, J., Isard, M.: Partitioned Sampling, Articulated Objects, and Interface-Quality Hand Tracking. In: Vernon, D. (ed.) ECCV 2000, Part II. LNCS, vol. 1843, pp. 3–19. Springer, Heidelberg (2000)

[^16]: Heap, T., Hogg, D.: Towards 3D hand tracking using a deformable model. In: International Conference on Automatic Face and Gesture Recognition (1996)

[^17]: Wu, Y., Lin, J., Huang, T.: Capturing natural hand articulation. In: ICCV, pp. 426–432 (2001)

[^18]: Sudderth, E., Mandel, M., Freeman, W., Willsky, A.: Visual Hand Tracking Using Nonparametric Belief Propagation. In: Workshop on Generative Model Based Vision, 189–189 (2004)

[^19]: Oikonomidis, I., Kyriazis, N., Argyros, A.A.: Markerless and Efficient 26-DOF Hand Pose Recovery. In: Kimmel, R., Klette, R., Sugimoto, A. (eds.) ACCV 2010, Part III. LNCS, vol. 6494, pp. 744–757. Springer, Heidelberg (2011)

[^20]: Rosales, R., Athitsos, V., Sigal, L., Sclaroff, S.: 3D hand pose reconstruction using specialized mappings. In: ICCV, pp. 378–387 (2001)

[^21]: Athitsos, V., Sclaroff, S.: Estimating 3D hand pose from a cluttered image. In: CVPR, pp. 432–439 (2003)

[^22]: de Campos, T., Murray, D.: Regression-based hand pose estimation from multiple cameras. In: CVPR, pp. 782–789 (2006)

[^23]: Salzmann, M., Urtasun, R.: Combining discriminative and generative methods for 3D deformable surface and articulated pose reconstruction. In: CVPR (2010)

[^24]: Stenger, B., Thayananthan, A., Torr, P.: Model-based hand tracking using a hierarchical bayesian filter. PAMI 28, 1372–1384 (2006)

[^25]: Liu, Y., Stoll, C., Gall, J., Seidel, H.P., Theobalt, C.: Markerless motion capture of interacting characters using multi-view image segmentation. In: CVPR, pp. 1249–1256 (2011)

[^26]: Lewis, J.P., Cordner, M., Fong, N.: Pose space deformation: A unified approach to shape interpolation and skeleton-driven deformation. In: SIGGRAPH, pp. 165–172 (2000)

[^27]: Bregler, C., Malik, J., Pullen, K.: Twist based acquisition and tracking of animal and human kinematics. IJCV 56, 179–194 (2004)

[^28]: Ballan, L., Cortelazzo, G.M.: Marker-less motion capture of skinned models in a four camera set-up using optical flow and silhouettes. In: 3DPVT (2008)

[^29]: Brox, T., Rosenhahn, B., Gall, J., Cremers, D.: Combined region- and motion-based 3D tracking of rigid and articulated objects. PAMI 32, 402–415 (2010)

[^30]: Gall, J., Yao, A., Razavi, N., Van Gool, L., Lempitsky, V.: Hough forests for object detection, tracking, and action recognition. PAMI 33, 2188–2202 (2011)

[^31]: Jones, M.W., Baerentzen, J.A., Sramek, M.: 3D distance fields: A survey of techniques and applications. IEEE Transactions on Visualization and Computer Graphics 12, 581–599 (2006)

[^32]: Teschner, M., Kimmerle, S., Heidelberger, B., Zachmann, G., Raghupathi, L., Fuhrmann, A., Cani, M.P., Faure, F., Magnetat-Thalmann, N., Strasser, W.: Col-lision detection for deformable objects. In: Eurographics, pp. 119–139 (2004)
