
# 基于彩色手套的实时手部追踪技术

Robert Y. Wang $^{1}$

$^{1}$计算机科学与人工智能实验室

麻省理工学院

Jovan Popović $^{1,2,3}$

$^{2}$Adobe Systems Incorporated高级技术实验室

$^{3}$华盛顿大学

![Image](images/a8d91de37805246c24bbb19eee8ef89935e1bf087e2617a42803cb56c5086772.jpg)

<div style="text-align: center;">Figure 1: We describe a system that can reconstruct the pose of the hand from a single image of the hand wearing a multi-colored glove. We demonstrate our system as a user-input device for desktop virtual reality applications.</div>

## 摘要

关节式手部追踪系统已在虚拟现实领域得到广泛应用，但由于成本高昂且操作复杂，很少被应用于消费级产品。在本文中，我们提出了一种易于使用且成本低廉的系统，可利用手部实现三维关节式用户输入。我们的方法采用单个摄像头来追踪佩戴普通布质手套的手部，该手套上印有定制图案。这种图案旨在简化姿态估计问题，从而让我们能够采用最近邻算法以交互速率追踪手部动作。我们描述了基于该系统开发的几款概念验证应用，希望能为建模、动画控制和增强现实领域的新交互方式奠定基础。

CR分类：I.3.7 [计算机图形学]：三维图形与真实感—动画；H.5.2 [信息界面与展示]：用户界面—输入设备与策略

关键词：增强现实、手部追踪、动作捕捉、用户界面

## 1 引言

近期用户界面领域的发展趋势催生了一批能够捕捉手部动作的新型消费级设备。其中包括iPhone和微软Surface等多点触控界面，以及索尼EyeToy和Wii遥控器等基于摄像头的系统。这些设备在购物、游戏和动画控制等多样化应用中实现了全新的交互方式[Shiratori和Hodgins 2008]。在本文中，我们介绍了一种新型用户输入设备，能够为桌面虚拟现实应用捕捉手部自由、无限制的动作。我们的动作捕捉系统既能追踪手指的各个关节运动，也能捕捉手部的三维全局运动。交互式三维手部追踪已在虚拟现实应用中得到有效运用，包括协作虚拟工作空间、三维建模和物体选择等领域[Agrawala等人1997；Grossman等人2004；Wesche和Seidel 2001；Sheng等人2006；Olwal等人2003]。我们会用手来绘画[Keefe等人2005]。我们早已习惯了基于物理的手部交互[Kry等人2008；Wilson等人2008]。手部追踪甚至可以与多点触控技术结合，提供二维和三维输入的组合[Benko等人2005]。

尽管大量研究都将手部追踪系统应用于用户输入领域，但由于这类系统的成本和设置费用高昂，其实际应用仍受到限制。我们提出了一种仅需低成本通用组件即可实现的消费级手部追踪技术。我们的原型系统能够以交互速率为应用程序提供有用的手部姿态数据。

我们通过提出一种新颖的手部追踪问题变体来取得这些成果：我们要求用户佩戴带有彩色图案的手套。我们提出了一种数据驱动的技术，能够仅凭单个摄像头就可靠地确定佩戴此类手套的手部姿态。此外，我们采用基于汉明距离的加速数据结构来实现交互式速度，并利用逆向运动学来提高精度。尽管我们的单目设置存在固有的深度模糊问题，但我们仍在动画、虚拟装配和手势识别等任务中验证了该技术的有效性。

## 2 相关工作

有几种光学动作捕捉系统能够追踪手部的三维位置和姿态。我们的方法与其他光学方法之间的技术差异在于如何将手部各部分与图像对应起来。传统的基于标记的系统会识别附着在手部上的反光标记。

---

这些标记是通过一组重叠的摄像头来识别的。裸手追踪技术采用多假设推理来克服缺乏强对应关系的问题。我们的方法利用手套上的彩色图案来推断手部的大致姿态，进而确定其各部分的对应关系。

基于标记的动作捕捉。基于标记的动作捕捉已在多个交互系统和原型中得到应用。然而，这些系统需要显眼的反光标记或LED [Park和Yoon 2006]，以及昂贵的多摄像头设置。它们追求高精度，却牺牲了部署和配置的便捷性。虽然我们的系统无法达到高端光学动作捕捉系统的精度，但我们的解决方案更简单、成本更低，且仅需一个摄像头。

裸手追踪。裸手追踪仍是一个活跃的研究领域。边缘检测和轮廓是最常用的用于识别手部姿态的特征。虽然这些特征具有通用性且能适应不同的光照条件，但基于它们进行推理需要计算成本高昂的推理算法，这些算法要在手部的高维姿态空间中搜索 [Sudderth等人 2004；Stenger等人 2006；Dewaele等人 2006]。这类算法距离实时处理仍有较大差距，因此无法应用于控制场景。

一些裸手追踪系统虽然能以牺牲分辨率和范围为代价实现交互式速度，但它们只能追踪手部的大致位置和方向，以及两到三个额外的姿态自由度。已有在这些系统上实现的成功手势识别应用 [Schlattman和Klein 2007；Dhawale等人 2006；Lee等人 1998]。我们提出的系统能够捕捉更多的自由度，从而实现直接操作任务并识别更丰富的手势集。

数据驱动的姿态估计。我们的工作建立在数据驱动的姿态估计技术之上。Shakhnarovich及其同事 [^2003] 提出了一种上半身姿态估计系统，该系统会在合成的计算机生成姿态数据库中搜索匹配结果。Athitsos及其同事 [2003；2004] 在手部姿态估计领域开发了快速的近似最近邻技术。Ren及其同事 [^2005] 构建了用于控制摇摆舞的轮廓特征数据库。我们的系统在手套上设计了特定图案，以简化数据库查找过程。这种独特的图案能明确给出手部姿态，从而提高检索的精度和速度。

基于传感器手套的手部追踪技术。诸如P5 Data Glove和Immersion Cyberglove之类的传感器手套系统，已能够精准捕捉三维输入数据以实现实时控制。不过，这些系统价格昂贵且使用不便。它们依赖外骨骼结构，或在手套中嵌入十多个传感器，这会限制手部的活动。

彩色标记法。以往基于颜色的手部追踪研究多局限于特定领域或短时序动作场景。Theobalt及其团队利用四个摄像头和频闪灯，在手套背面粘贴彩色标记来追踪棒球投手的手部动作[^2004]。Dorner则采用带有彩色环状标记的手套来识别手语字母表中的序列（6到10帧）[^1994]；这些环状标记对应各手指的关节位置。确定关节位置后，即可通过逆向运动学算法得出手部姿态。我们采用数据驱动的方法，直接寻找与图像匹配度最高的手部姿态。

我们的设计方案在可穿戴动作捕捉系统与裸手追踪方案之间取得了平衡。我们只需使用廉价的布质手套，无需在手套内外嵌入任何传感器来限制手部活动。手套上的定制图案能实现更快、更稳健的姿态估计。虽然该方案的精度不及传统光学动作捕捉系统，但仅需一个摄像头即可运行。最终得到的这款手部追踪设备既无束缚又成本低廉，非常适合桌面虚拟现实应用。

## 3 概述

我们的研究基于这样一个理念：具有独特图案的手套能大幅简化姿态推断过程，以至于我们仅通过单帧图像就能基本确定手部姿态。此外，我们的姿态估计算法本质上是在手部姿态数据库中查找最近邻样本。第4节我们将详细介绍该数据库的构建方式及稳健的索引方法。

为了将姿态估计算法转化为实时系统，我们进行了多项改进：通过近似最近邻查找来加速数据库查询；利用逆向运动学算法，根据最近邻姿态与查询图像间的投影约束来提升精度；还在逆向运动学优化中加入了时间平滑项，以减少单摄像头场景下沿光轴的抖动——这一轴正是单摄像头系统的模糊区域。第5节将详细介绍这些在速度、精度和精确度方面的改进。

我们通过多组测试序列评估所开发的系统，这些序列涵盖了不同类型的手部运动，同时还测试了三种将手部追踪作为输入设备的交互应用（第6节）。我们演示了将一组物理模拟的刚体堆叠成金字塔的过程；将两根手指直接映射为动画角色的脚部以使其行走；以及利用三维手部姿态识别技术进行美国手语拼写转录。这些应用验证了系统的实用性，我们希望能为建模、动画控制和增强现实领域的新交互方式奠定基础。

## 4 基于彩色手套的姿态估计

我们方法的核心是从佩戴彩色手套的手部图像中推断姿态。我们对手套进行了特殊设计，使得这一推断任务转化为在数据库中查找对应的图像。我们通过采集自然手部姿态的录像来生成该数据库，并根据这些姿态下手套的图像进行索引。摄像头获取的（含噪声的）输入图像会先被转换为标准化的查询图像，随后依据稳健的距离度量标准与数据库中的每条记录进行比较。最后，我们对这种数据驱动的姿态估计算法进行了评估，结果显示随着数据库规模的扩大，检索准确率也稳步提升。

### 4.1 手套设计

我们选用彩色手套的做法借鉴了布料动作捕捉领域的研究成果——密集的彩色标记图案能够实现精确的形变捕捉[White et al. 2007; Scholz et al. 2005; Guskov et al. 2003]。多种彩色图案都适用于姿态追踪场景。我们之所以采用这种设计，是出于消费级摄像头的局限性、自然手部运动中的大量自遮挡现象，以及推断算法对速度的要求等方面的考虑。

我们设计的手套上有二十个随机采用十种不同颜色着色的色块（见图2）。我们的颜色选择受到计算机视觉系统的限制：该系统需要依靠饱和度极高的颜色来区分手部与背景。由于阴影和明暗变化的影响，摄像头只能可靠地区分其中的十种颜色。我们选择使用几个较大的色块而非众多小色块，是因为较小的特征对遮挡的耐受性更差，且需要更复杂的色块识别算法来进行姿态推断[White et al. 2007; Scholz et al. 2005; Guskov et al. 2003]。

---

![Image](images/f92b316df04199125bbcc9d2a0585b389aab6ae6c3093d1f037559a0b4e6585b.jpg)

<div style="text-align: center;">Figure 2: Our glove design consisting of large color patches accounts for camera limitations, self-occlusion, and algorithm performance. The length of our glove is 24 cm.</div>

姿态推断[White et al. 2007; Scholz et al. 2005; Guskov et al. 2003]。

我们的手套具体设计如下：首先在三维手部模型上选取二十个彼此距离最远的初始三角形，随后根据其余三角形与这些初始三角形的距离将其划分为不同的色块，每个色块随机分配十种颜色中的一种。色块间的锯齿状边界是由于手部模型的三角形数量较少造成的。

我们的手套设计具有足够的独特性，因此仅通过单帧图像就能可靠地推断手部姿态。相比之下，依赖前一帧精确姿态来限定当前姿态搜索范围的手部追踪方法存在明显局限：一旦这些方法丢失手部踪迹，便无法恢复追踪[de La Gorce et al. 2008]。而我们的姿态估计（而非追踪）方法能在每一帧中有效“恢复”姿态。传统追踪技术仍可用于提升我们结果的时序平滑度。

在裸手姿态估计中，两种差异极大的姿态可能对应非常相似的图像，这是一项极具挑战性的难题，需要更慢速、更复杂的推断算法来解决。而佩戴手套后，差异极大的姿态总会对应截然不同的图像（见图3），这使我们能够采用简单的图像查找方法来完成姿态推断。

![Image](images/7290fc53af9e01040dcaaa04ab38c067abd38b5a849895b32f74e29db7fe2a64.jpg)

<div style="text-align: center;">Figure 3: The palm down and palm up poses map to similar images for a bare hand. These same poses map to very different images for a gloved hand.</div>

我们构建了一个手部姿势数据库$\Lambda$，其中包含大量手部姿态配置$\{q^i\}$；每个条目都通过该姿势的微小$(40 \times 40)$栅格化图像来索引$\mathbf{r}^i$（见图4）。给定来自摄像头的归一化查询图像后，姿势估计就相当于在微型图像数据库中搜索[Torralba等人，2007]。与查询图像最接近的邻居所对应的姿势，很可能接近手部的实际姿势（见图5）。为完成这一过程，我们描述了构建数据库的方法、将摄像头图像归一化以查询数据库的方式，以及判断两幅微型图像之间距离的方法。

### 4.2 数据库采样

理想情况下，我们希望得到一个能均匀采样所有自然手部姿态的小型数据库。如果数据库过于庞大且包含大量冗余样本，效率就会很低。反之，若数据库无法覆盖所有自然手部姿态，则会导致检索准确率低下。

![Image](images/91990b53b11ac14d2da01989ef9aef371ffcd3bf92f02feb4923151fe38d5365.jpg)

<div style="text-align: center;">Figure 4: Pose database. We sample a large set of hand poses which are indexed by their rasterized tiny images.</div>

我们的方法采用低离散度采样技术，从密集的自然手部姿态集合中选出稀疏的样本数据库。

我们使用Cyberglove II动作捕捉系统采集了18,000种手指姿态配置。这些配置涵盖了手语字母、常见手势以及手指的随机摆动情况。我们通过对应蒙皮手部模型的顶点位置之间的均方根（RMS）误差来定义两种配置之间的距离度量标准。

给定一种距离度量标准$d(\mathbf{q}^i, \mathbf{q}^j)$后，我们就可以利用低离散度采样技术，从过于庞大的手指姿态集合中抽取一组均匀的样本$\Lambda$ $\Omega$。一组样本的离散度定义为：选定样本后，能在（自然手部姿态的）值域空间中容纳的最大空心球体的大小。我们采用迭代式的贪婪采样算法，在每次迭代中高效降低离散度。也就是说，给定第$\Lambda_\ell$次迭代中的样本$\ell$后，下一个样本$i_{\ell+1}$会被选为与之前所有样本距离最远的那个。

 $$ i_{\ell+1}=\underset{i\in\Omega}{\operatorname{a r g m a x}}\min_{j\in\Lambda_{\ell}}d(\mathbf{q}^{i},\mathbf{q}^{j}) $$

所选的配置会借助固定位置的（虚拟）摄像头，使用（合成的）手部模型以多种三维方向进行渲染。渲染后的图像经过裁剪和缩放，便形成了我们的微型图像数据库。最终得到的数据库能够高效覆盖自然手部姿态的空间。

### 4.3 图像归一化

![Image](images/a3d89e1afcfda52a1686266a26fe1a92904140c257e136f71e663bbf3c385aca.jpg)

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

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

<div style="text-align: center;">Figure 6: We denoise the input image before using a mixture-of-Gaussians color classifier to segment the hand. Our normalization step consists of cropping and rescaling the hand region into a  $40 \times 40$ tiny image.</div>

为了查询数据库，我们需要将摄像头输入图像转换为微型图像（见图6）。首先，我们使用双边滤波器平滑图像中的传感器噪声和纹理。接着，利用从标注好的图像集中训练得到的高斯混合模型，将每个像素分类为背景或十种手套颜色之一。针对每种手套颜色，我们会在Chong色彩空间[Chong等人，2008]中训练一个三组分量的高斯混合模型。

完成颜色分类后，我们会得到一幅包含手套像素和非手套像素的图像。实际操作中，我们采用均值漂移算法配合

---

![Image](images/27633314796c62befd343d236d9093abf684d1bfd7f2ada7bf058c56a12631bb.jpg)

<div style="text-align: center;">Figure 5: Our pose estimation process. The camera input image is transformed into a normalized tiny image. We use the tiny image as the query for a nearest neighbor search of our pose database. The pose corresponding to the nearest database match is retrieved.</div>

带宽可变的均匀核来裁剪手套区域。我们从图像中心开始，初始带宽覆盖整个图像。每次均值漂移迭代后，我们会根据当前带宽内手套像素的标准差的倍数来设定下一次迭代的带宽。我们持续迭代直至收敛，最后利用最终的均值和带宽来裁剪手套区域。

### 4.4 微型图像距离

为了查找最近邻，我们定义了两个微小图像之间的距离度量。我们选择了一种类豪斯多夫距离。对于其中一个图像中的每个非背景像素，我们计算其到另一个图像中同色最近像素的距离惩罚值（见图7）：

 $$ \tilde{d}(\mathbf{r}^{i},\mathbf{r}^{j})=\sqrt{\frac{1}{|\mathcal{C}_{i}|}\sum_{(x,y)\in\mathcal{C}_{i}}\min_{(u,v)\in\mathcal{S}_{xy}}(u-x)^{2}+(v-y)^{2}} $$

 $$  where\mathcal{S}_{xy}=\left\{(u,v)|\mathbf{r}_{x,y}^{i}=\mathbf{r}_{u,v}^{j}\right\} $$

 $$ \mathcal{C}_{i}=\left\{(x,y)|\mathbf{r}_{x,y}^{i}\neq\mathrm{b a c k g r o u n d}\right\} $$

 $$ d(\mathbf{r}^{i},\mathbf{r}^{j})=\tilde{d}(\mathbf{r}^{i},\mathbf{r}^{j})+\tilde{d}(\mathbf{r}^{j},\mathbf{r}^{i}) $$

![Image](images/919f57c59758e855a760fbd86c4a7fa24ea607dbd9901e28a6d36627324a5130.jpg)

<div style="text-align: center;">Figure 7: Hausdorff-like image distance. A database image and a query image are compared by computing the divergence from the database to the query and from the query to the database. We then take the average of the two divergences to generate a symmetric distance.</div>

我们发现，与$L_{2}$距离相比，我们提出的这种类豪斯多夫图像距离度量对图像对齐问题或轻微畸变更具鲁棒性。我们的距离度量对颜色分类错误的鲁棒性也优于那种取所有像素最大误差而非平均值的豪斯多夫距离。

最近邻微小图像可以提供手部的大致姿态，但无法反映全局位置（例如距摄像头的距离），因为每个查询图像都会被缩放为微小图像。为解决这一问题，我们将每个微小图像与每个颜色块的质心的二维投影约束相关联。这样，通过将这些投影约束转换到原始查询图像的坐标空间并利用逆运动学，就能得到手部的全局位置。

基于上述数据库构建和查找算法，我们可以定量评估数据库大小对检索准确性的影响。针对每种数据库大小，我们测量从记录的自然手姿集合中随机选取的五百个测试姿态的平均性能。我们根据姿态距离度量和图像距离度量，统计这些测试姿态在数据库中到最近邻的距离（见图8）。

<div style="text-align: center;">Distance to nearest neighbor (NN) versus database size</div>

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

<div style="text-align: center;">Figure 8: Database coverage evaluation (log scale). As the database size increases, pose estimation becomes more accurate.</div>

姿态最近邻距离随数据库大小的增加而持续减小，这验证了我们的数据库采样方法的效率和覆盖范围。图像最近邻距离的持续减小则验证了我们的微小图像距离度量，同时也表明随着数据库大小的增加，检索准确性会更高。

### 4.5 最近邻融合

除了选择数据库中的最近邻外，我们还可以使用k个最近邻的融合结果。这样能得到更平滑且更准确的结果。我们使用高斯径向基核对十个最近邻微小图像组成的邻域$\mathcal{N}$进行融合。

 $$ \mathbf{q}_{\mathrm{p}}(\mathbf{r})=\frac{\sum_{i\in\mathcal{N}}\mathbf{q}^{i}\exp\left(-d(\mathbf{r}^{i},\mathbf{r})^{2}/\sigma^{2}\right)}{\sum_{i\in\mathcal{N}}\exp\left(-d(\mathbf{r}^{i},\mathbf{r})^{2}/\sigma^{2}\right)} $$

其中，$\sigma$被设定为到各邻居的平均距离。

## 5 实时手势追踪系统

在本节中，我们将介绍实验设置，并提出针对实时系统对基础姿态估计算法的几项改进。在计算摄影和计算机视觉领域，图像数据库查询已是成熟的研究方向，我们采用了一种加速数据结构来加快数据库搜索速度，以应用于姿态估计任务。借助数据库提供的近似姿态，我们利用梯度下降法（通过逆运动学）来逐步收敛到更精确的姿态。最后，我们为手部运动添加了平滑先验以减少抖动。这些组件共同提升了该系统在用户界面应用中的速度、准确性和精确度。

---

最后，我们为手部运动添加了平滑先验以减少抖动。这些组件共同提升了该系统在用户界面应用中的速度、准确性和精确度。

### 5.1 实验设置

我们使用的是一台配备4毫米镜头的Point Grey Research Dragonfly相机，它能以30 Hz的频率捕获$640 \times 480$视频。该相机固定在桌面上的一台小型三脚架上，有效拍摄范围约为$60 \times 50 \times 30$厘米（见图1）。

我们使用Matlab的相机校准工具箱$^{1}$来对相机相对于桌面的位置进行几何校准，从而为我们的应用建立地面平面。色彩校准是通过拍摄一组八张图像并手动标注手套上的每个颜色区域来完成的。虽然我们当前的原型机需要人工进行相机校准，但我们打算在未来提供即时且自动化的校准工具[White和Forsyth 2005]。

我们使用一个具有26个自由度（DOF）的3D手部模型：其中6个自由度用于全局变换，每个手指有4个自由度。我们对手部模型的全局比例进行校准，以匹配用户手部的长度。尽管这种方法在已使用我们系统的五名受试者身上效果良好，但对手部精确形状和尺寸的校准将能提高我们结果的准确性。

### 5.2 更快的最近邻搜索

为了达到令人满意的精度，我们使用了包含100,000条记录的数据库。然而，查询如此规模的数据库在计算上代价高昂。虽然我们采用的简单豪斯多夫式图像距离度量方法很稳健，但其速度不足以支持每秒数百万次的评估。因此，我们借鉴Torralba及其同事的方法，将每条数据库记录压缩成较短的（例如192位）二进制码，以实现更快的检索[Torralba等，2008；Athitsos等，2004]。这些编码的设计使得相近姿态对应的比特串之间的汉明距离较小。由于这些编码较短且汉明距离计算速度快，我们借此方法能显著加快数据库搜索速度。

对于我们的图像数据库$\{ \mathbf{r}^i \}$和距离度量$d(\mathbf{r}^i, \mathbf{r}^j)$，我们希望为每张图像找到对应的位向量表示$\mathbf{b}^i = [h_1(\mathbf{r}^i) h_2(\mathbf{r}^i) \ldots h_B(\mathbf{r}^i)]$，使得汉明距离$d_H(\mathbf{r}^i, \mathbf{r}^j) = \sum_{n=1}^B |h_n(\mathbf{r}^i) - h_n(\mathbf{r}^j)|$能够保留原始距离度量所定义的邻域关系。我们的任务是学习函数$h_n$。一旦选定了函数$h_n, n = 1 \ldots B$，我们就可以将任何查询编码为位向量$\mathbf{b}$，并利用更快的汉明距离来确定其在数据库中的最近邻。

在学习阶段，我们构建了一个由样本对($\mathbf{r}^i, \mathbf{r}^j$)组成的训练集。正样本对是指互为最近邻的对，负样本对则不是。我们遵循Torralba及其同事提出的相似性敏感编码[Shakhnarovich等，2003]思路[^2008]，将$h_n$定义为$h_n(\mathbf{r}^i) = e_n^i \mathbf{vec}(D(\mathbf{r}^i)) > T_n$的形式，其中$e_n$和$T_n$是待学习的参数，$D(\mathbf{r}^i)$是代表微小图像$i^i$的特征矩阵。我们使用GentleBoost算法来选择$h_n^i$的参数。$e_k$是一个单位向量，因此$e_k^T x$会选取特征向量x的第k个分量；而$T_n$是一个标量阈值。我们所选择的特征与我们试图逼近的豪斯多夫式图像距离度量类似。特征矩阵$D(\mathbf{r}) \in \mathbb{R}^{40 \times 40 \times 10}$、$D_{xyz}(\mathbf{r})$的每个分量表示从位置$(x, y)$到颜色为z的像素的最短距离：

 $$ \begin{aligned}&D_{xyz}(\mathbf{r})=\min_{(u,v)\in\mathcal{S}_{z}}(u-x)^{2}+(v-y)^{2}\\&where\mathcal{S}_{z}=\{(u,v)|\mathbf{r}_{x,y}=z\}\\ \end{aligned} $$

我们从数据库中抽取了10,000对训练样本，并测试了不同长度的位向量。我们通过计算根据学到的汉明距离近似度所确定的真正最近邻的排名，来衡量这些编码的检索准确率。我们发现，随着编码长度的增加，排名会迅速下降（见图9）。

<div style="text-align: center;">Rank of true nearest neighbor versus binary code length</div>

![Image](images/d8de415a434eabeecc4d10b64fce97a746cc9dec6918edc6a4df7f525dd0ed5d.jpg)

<div style="text-align: center;">Figure 9: The rank of the true nearest neighbor (log scale) according to the Hamming distance approximation decreases quickly with longer (more descriptive) codes.</div>

在我们的实时系统中，使用了192位编码，使得真实最近邻的平均排名为16，标准差为78。为了可靠地获取真实最近邻，我们利用原始图像距离对前300个近似最近邻重新排序。总体而言，我们的结果比上一节所述的暴力最近邻搜索快约50倍。

### 5.3 用于提升精度的逆运动学

我们通过逆运动学来改进最近邻姿态估计，具体做法是惩罚姿态估计的栅格化结果与原始图像之间的差异。然而，栅格化过程过于缓慢，无法在每次逆运动学迭代时都执行，而且图像雅可比矩阵也难以计算[de La Gorce等，2008]。因此，我们建立了栅格化姿态上的点与原始图像之间的对应关系：先计算栅格化姿态中每个可见彩色斑块的质心，再找出距离各质心最近的顶点。随后，我们约束这些顶点使其投影到原始图像中对应斑块的质心上（见图10）。需要注意的是，即使存在自遮挡情况，我们的对应关系仍然有效，因为最近邻结果通常与图像查询一样存在自遮挡现象。

我们利用逆运动学来最小化手部模型中每个投影顶点与原始图像中对应质心点之间的差异。我们通过将混合最近邻$q_{p}$（见公式1）作为先验来进行正则化：

 $$ \mathbf{q}^{*}=\underset{\mathbf{q}}{\mathrm{a r g m i n}}\left\|f(\mathbf{q})-\mathbf{c}\right\|_{R}^{2}+\left\|\mathbf{q}-\mathbf{q}_{\mathrm{p}}\right\|_{Q}^{2} $$

其中f是一个非线性函数，用于将手部模型中的对应点投影到图像空间；R和Q分别是约束c以及混合最近邻$q_{p}$的协方差。

---

![Image](images/026de1e5a94c6c47134ddb31397e16a21106874d6f7cbd80c1494d7baa080719.jpg)

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

查询质心

最近邻质心

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

约束条件

![Image](images/d7104ee0bb6e313aa105b1a10d11c410e4df45257bbdc048abe02ac36c24a4de.jpg)

<div style="text-align: center;">Figure 10: Correspondences for inverse kinematics. We compute centroids of each patch in the query image and the nearest neighbor pose. We establish correspondences between the two sets of points and use IK to penalize differences between the two.</div>

以此类推；$\|\cdot\|_{X}$是相对于协方差X的马氏距离。

我们按照如下方式在训练序列上学习协方差参数R和Q：定义连续五个帧窗口$\tilde{\mathbf{q}}_p^i = \frac{1}{|\mathcal{S}|} \sum_{j \in \mathcal{S}} \mathbf{q}_p^{i+j}$内估计姿态$\mathcal{S} = \{-2, \ldots, 2\}$的局部平均值，再计算$\mathbf{c}$和$\mathbf{q}_p$关于这些局部平均值的协方差。

 $$ R=\frac{1}{N}\sum_{i=1}^{N}\left(\mathbf{c}^{i}-f(\bar{\mathbf{q}}_{\mathrm{p}}^{i})\right)\left(\mathbf{c}^{i}-f(\bar{\mathbf{q}}_{\mathrm{p}}^{i})\right)^{T} $$

 $$ Q=\frac{1}{N}\sum_{i=1}^{N}\left(\mathbf{q}_{\mathrm{p}}^{i}-\bar{\mathbf{q}}_{\mathrm{p}}^{i}\right)\left(\mathbf{q}_{\mathrm{p}}^{i}-\bar{\mathbf{q}}_{\mathrm{p}}^{i}\right)^{T} $$

我们使用高斯-牛顿迭代法求解公式2，更新式为：

 $$ \begin{array}{r l}{\Delta\mathbf{q}}&{=\left(J^{T}R^{-1}J+Q^{-1}\right)^{-1}\left(J^{T}R^{-1}\Delta\mathbf{c}+Q^{-1}\Delta\mathbf{q}_{\mathrm{p}}\right)}\end{array} $$

其中$\Delta\mathbf{q}_p = \mathbf{q}_p - \mathbf{q}$、$\Delta\mathbf{c} = \mathbf{c} - f(\mathbf{q})$，J为雅可比矩阵$Df(\mathbf{q})$。

### 5.4 时间平滑性

我们可以在逆运动学优化中添加额外项，以实现结果的时间平滑：

 $$ \mathbf{q}^{*}=\underset{\mathbf{q}}{\mathrm{a r g m i n}}\left\|f(\mathbf{q})-\mathbf{c}\right\|_{R}^{2}+\left\|\mathbf{q}-\mathbf{q}_{\mathrm{p}}\right\|_{Q}^{2}+\left\|\mathbf{q}-\mathbf{q}_{\mathrm{h}}\right\|_{P}^{2} $$

其中P是上一帧姿态的协方差$\mathbf{q}_{h}$，其学习方式与Q和R类似，也是在训练序列上完成的。由此得到的高斯-牛顿更新式为：

 $$ \begin{aligned}\Delta\mathbf{q}=&\Big(J^{T}R^{-1}J+Q^{-1}+P^{-1}\Big)^{-1}\\&\Big(J^{T}R^{-1}\Delta\mathbf{c}+Q^{-1}\Delta\mathbf{q}_{\mathrm{p}}+P^{-1}\Delta\mathbf{q}_{\mathrm{h}}\Big)\end{aligned} $$

其中$\Delta\mathbf{q}_{\mathrm{h}} = \mathbf{q}_{\mathrm{h}} - \mathbf{q}$。

我们在由不同类型手部动作组成的几个十秒测试序列上评估了系统的跟踪效果。结果表明，我们的算法能够可靠地识别具有快速运动和显著自遮挡特征的复杂手部姿态。由于缺少真实数据，我们通过测量重投影误差来评估精度，通过计算与五个帧窗口$d(\mathbf{q}^i, \frac{1}{|\mathcal{S}|} \sum_{j \in \mathcal{S}} \mathbf{q}^{i+j})$的局部平均值$\mathcal{S} = \{-2, \ldots, 2\}$的偏差来衡量抖动情况（见图11）。

## 6 实验结果

正如预期，逆运动学通过施加一组对应的投影约束来降低重投影误差。不过，沿光轴方向仍存在明显的抖动现象。通过引入时间平滑项，

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

<div style="text-align: center;">Figure 11: Reprojection error and jitter on several tracking sequences (lower is better). Inverse kinematics reduces the reprojection error of the scene while temporal filtering reduces the jitter without sacrificing accuracy.</div>

这种抖动会被大幅抑制，从而使追踪到的运动更加平滑。

虽然时间平滑能够减少抖动，但无法消除沿光轴的系统性误差。为了直观展示这些误差，我们放置了第二台相机，其光轴与第一台相机垂直。我们同时用两台相机录制序列，其中第一台相机用于姿态估计，第二台相机用于验证。在验证视频序列中，我们经常观察到5到10厘米范围内的全局平移误差（见图12）。当手离相机较远时，误差甚至可高达15厘米。我们在应用中通过向用户呈现虚拟手的图像反馈来补偿这种系统性误差。尽管我们的系统旨在低成本设计，但增加第二台相机能显著减少深度模糊问题，对于对精度要求较高的应用而言，这或许是个不错的折衷方案。

![Image](images/35b6929afa3917068123cf8d78b0246e86c3f42f781d592b93b6d619d0542fec.jpg)

<div style="text-align: center;">Figure 12: Even when our estimate closely matches the input frame (left), monocular depth ambiguities remain a problem, as shown from a different camera perspective (right).</div>

我们系统的单线程性能约为每帧150毫秒，具体分配如下：图像处理50毫秒，最近邻查找20毫秒，逆运动学计算30毫秒。我们利用多核处理器上的流水线技术来提高处理吞吐量。所有交互演示在2.4 GHz英特尔酷睿2四核CPU上运行时，帧率可达10 Hz，延迟为160毫秒。

### 6.1 应用场景

我们通过三个应用展示了该系统作为手部追踪用户界面的功能。首先，我们展示了一个基于逆运动学的简单角色动画系统。

---

接下来，我们在基于物理的模拟中使用手部来操控和组装一组刚体。最后，我们展示了手势识别性能，具体体现在手语字母转录任务中。

驱动动画角色：我们的系统能够实现角色行走动作的实时控制。我们将食指和中指的指尖与角色的双脚通过运动学约束关联起来（见图13）[Sturman和Zeltzer 1993]。当手指移动时，角色的双腿便由逆运动学驱动。一种更复杂的方法是借助训练数据来学习手部到角色的映射关系[Dontcheva等人 2003；Lam等人 2004]。另外，Barnes及其同事[^2008]展示了利用剪纸玩偶来驱动动画角色并促进故事讲述的方法。随着我们减少抖动并提高技术的精确度，我们希望能实现更直观、更精准的角色动画效果。

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

![Image](images/488fa48988c18a8b8100ffa089cf728e15bb15bdb838086a630d3cdc6d158215.jpg)

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

![Image](images/cf7972afdc782b4f3a90bc2fc75989202781b8390336b773af5d22bc4d335824.jpg)

利用物理机制操控刚体：我们展示了一个应用实例，用户可拾取并释放积木来虚拟组装3D结构（见图1）。当我们检测到某块积木处于手的抓取范围内时，它会通过弱且临界阻尼的弹簧与手相连。尽管这种交互模型并不符合现实，但它并不影响拾取、重新定位、堆叠及释放积木等基本操作。我们预计，基于数据驱动[Li等人 2007]或基于物理的机制[Pollard和Zordan 2005；Kry和Pai 2006]的交互模型将带来更丰富的体验。

<div style="text-align: center;">Figure 13: We demonstrate animation control (a) and a sign language finger spelling application with our hand-tracking interface.</div>

我们在刚体操作任务中遇到了若干用户界面方面的挑战。由于采用单目摄像头设置，产生的深度歧义（见图12）会导致手部整体平移出现显著扭曲。用户必须调整手部动作以补偿这些扭曲，这破坏了真实手与虚拟手动作之间的一一对应关系。此外，用户很难在二维显示屏上判断虚拟场景中的相对三维位置。这些因素使得抓取和堆叠盒子的任务颇具挑战性。我们发现，渲染虚拟手来为用户提供反馈是必不可少的。缩短这一反馈周期、降低延迟对于提升系统的可用性至关重要。我们还尝试了多种正交视图，但发现这会复杂化界面。最终，我们决定利用投影阴影来提供深度提示 [Kersten et al. 1997]。

手语字母拼写 为了展示我们系统的姿态识别能力，我们还开发了美国手语字母拼写应用 [Starner et al. 1998]。我们对标注好的手部姿态库（每个字母对应一种姿态）执行对齐和最近邻匹配操作，从而逐个字母地转录手语信息。当某个字母对应的姿态在连续十帧中被识别到时，该字母即被记录。这种最近邻方法能有效区分字母表中的各个字母，但需要手部运动才能构成的字母（J、Z）以及需要精准估算拇指位置的字母（E、M、N、S、T）除外。若采用上下文相关的姿态识别机制与纠错功能，我们的成果还能进一步提升。

## 7 结论

我们推出了一种由单个摄像头和布质手套构成的手部追踪用户输入设备。我们针对几种典型的三维操作和姿态识别任务对该设备进行了演示。具体而言，我们证明了该技术能为多种交互类应用提供实用的输入方式。

我们的系统有诸多可扩展方向。只要双手不会相互遮挡或交叠，我们就可以增加摄像头数量以提升精度，或支持双手输入。我们的系统可与多点触控输入设备结合，以实现精准的二维触控输入。我们可以设计点击器或触发器之类的辅助工具来简化选择操作。我们还能优化摄像头校准流程，以便能在更广泛的环境中即时部署。

我们设想该设备能应用于计算机动画与三维建模、新型桌面用户界面以及更直观的电脑游戏领域。我们可以利用现有的手部交互设计方法 [Sturman and Zeltzer 1993]，将手部追踪技术应用到虚拟手术、虚拟装配等场景中。本文的主要目标是推出一款稳健且低成本的用户输入设备：我们打算提供软件开发工具包和价格低廉的手套，以便其他研究人员能开发出富有创意的应用。

致谢 我们感谢Sylvain Paris、Frédo Durand和Randall Davis提供的定期反馈；感谢Anthony Liu在实时实现方面的帮助。本研究得到了富士康科技集团的资助，以及Autodesk和Adobe Systems的软件捐赠支持。

## 参考文献

AGRAWALA, M., BEERS, A. C., FRÖHLICH, B., HANRAHAN, P. M., MCDOWALL, I., 以及 BOLAS, M. 1997. 双用户响应式工作台：通过共享空间的独立视图支持协作。收录于SIGGRAPH 97会议录，第327–332页。

阿提索斯，V.和斯克拉罗夫，S. 2003年。从杂乱图像中估计三维手部姿态。载于计算机视觉与模式识别会议（CVPR），第2卷，第432–439页。

阿提索斯，V.、阿隆，J.、斯克拉罗夫，S.和科利奥斯，G. 2004年。BoostMap：一种高效的近似相似性排序方法。载于计算机视觉与模式识别会议（CVPR），第2卷，第268–275页。

巴恩斯，C.、雅各布斯，D. E.、桑德斯，J.、戈德曼，D. B.、鲁西基维奇，S.、芬克尔斯坦，A.和阿格拉瓦拉，M. 2008年。视频木偶戏：一种用于剪影动画的表演型界面。《ACM图形学汇刊》第27卷第5期，第1–9页。

本科，H.、伊沙克，E.和费纳，S. 2005年。混合沉浸式环境中的跨维度手势交互技术。载于IEEE虚拟现实会议，第209–216页。

钟宏宇、戈特勒，S. J.和齐克勒，T. 2008年。一种基于感知的、不受光照影响的图像处理色彩空间。《ACM图形学汇刊》第27卷第3期，第1–7页。

德拉戈尔塞，M.、帕拉吉奥斯，N.和弗利特，D. 2008年。基于模型的手部跟踪技术，结合纹理、阴影及遮挡处理。

《ACM图形学汇刊》第28卷第3期，文章编号63，出版日期：2009年8月。

---

遮挡问题。载于计算机视觉与模式识别会议（CVPR），第1–8页。

德韦勒，G.、德弗尔奈，F.、奥罗德，R. P.和福布斯，F. 2006年。具有弯曲表面的三维数据与关节形状之间的对齐问题。载于欧洲计算机视觉会议（ECCV），第578–591页。

达瓦莱，P.、马苏迪安，M.和罗杰斯，B. 2006年。面向交互系统的裸手三维手势输入。载于新西兰分会国际人机交互会议：以设计为中心的HCI（CHINZ），第25–32页。

唐切娃，M.、英格维，G.和波波维奇，Z. 2003年。角色动画中的分层表演。《ACM图形学汇刊》第22卷第3期，第409–416页。

多尔纳，B. 1994年。追踪彩色手套：视觉手部跟踪技术。西蒙弗雷泽大学硕士论文。

格罗斯曼，T.、威格多，D.和巴拉克里希南，R. 2004年。基于多指手势的交互技术，应用于三维立体显示器。载于用户界面软件与技术会议（UIST），第61–70页。

古斯科夫，I.、克利巴诺夫，S.和布莱恩特，B. 2003年。可追踪表面。载于计算机动画研讨会（SCA），第251–257页。

基菲，D. F.、卡雷利茨，D. B.、沃特，E. L.和莱德劳，D. H. 2005年。在虚拟现实可视化设计中的艺术协作。《IEEE计算机图形学与应用》第25卷第2期，第18–23页。

凯尔斯坦，D.、马马西安，P.和尼尔，D. 1997年。移动的投影阴影会引发深度上的视动现象。《知觉》杂志第26卷第2期，第171–192页。

克里，P.和派，D. 2006年。交互动作的捕捉与合成。《ACM图形学汇刊》第25卷第3期，第872–880页。

克里，P.、皮胡伊特，A.、伯恩哈特，A.和卡尼，M. 2008年。HandNavigator：桌面虚拟现实中的手部交互工具。载于虚拟现实软件与技术会议（VRST），第53–60页。

林伟、邹峰和小村拓也 2004年。利用数据手套进行动作编辑。载于国际计算机娱乐技术进展会议，第337–342页。

李昌硕、金世元、朴昌俊和翁凯 1998年。利用手势控制虚拟角色的动作。载于虚拟现实软件与技术会议（VRST），第59–65页。

李阳、傅建龙和波拉德，N. S. 2007年。基于数据驱动的抓取合成技术，利用形状匹配与任务导向的剪枝算法。《IEEE可视化与计算机图形学汇刊》第13卷第4期，第732–747页。

奥尔瓦尔, A.、本科, H. 和费纳, S. 2003年。Senseshapes：在多模态增强现实系统中利用统计几何进行物体选择。载于国际混合与增强现实研讨会（ISMAR），第300页。

朴, J. 和尹, Y. 2006年。基于LED手套的多模态显示交互在远程会议中的应用。载于国际人工现实与虚拟存在会议——研讨会（ICAT），第395–399页。

波拉德, N. 和佐尔丹, V. 2005年。基于物理的抓取控制示例。载于计算机动画研讨会（SCA），第311–318页。

任, L.、沙克纳罗维奇, G.、霍金斯, J.、普菲斯特, H. 和维奥拉, P. 2005年。学习用于人体运动控制的轮廓特征。

人体运动控制。《ACM图形学汇刊》第24卷第4期，第1303–1331页。

施拉特曼, M. 和克莱因, R. 2007年。无需标记物即可实时双手追踪四种手势及六个自由度。载于虚拟现实软件与技术会议（VRST），第39–42页。

舒尔茨, V.、斯蒂希, T.、凯凯isen, M.、瓦克, M. 和马格诺尔, M. A. 2005年。利用彩色编码图案进行服装动作捕捉。《计算机图形学论坛》第24卷第3期，第439–447页。

沙克纳罗维奇, G.、维奥拉, P. 和达雷尔, T. 2003年。利用参数敏感哈希技术实现快速姿态估计。载于国际计算机视觉会议（ICCV），第750–757页。

盛, J.、巴拉克里希南, R. 和辛格, K. 2006年。通过物理代理实现虚拟3D雕刻的交互界面。载于澳大利亚及东南亚计算机图形学与交互技术会议（GRAPHITE），第213–220页。

白鸟, T. 和霍金斯, J. K. 2008年。基于加速度计的用户界面用于控制物理模拟角色。《ACM图形学汇刊》第27卷第5期，第1–9页。

斯塔纳, T.、韦弗, J. 和彭兰德, A. 1998年。利用台式及可穿戴计算机视频实现实时美国手语识别。《IEEE模式分析与机器智能汇刊》，第1371–1375页。

斯滕格, B.、塔亚纳坦, A.、托尔, P. 和奇波拉, R. 2006年。利用分层贝叶斯滤波器进行基于模型的手部追踪。《IEEE模式分析与机器智能汇刊》第28卷第9期，第1372–1384页。

斯图尔曼, D. J. 和泽尔策尔, D. 1993年。“全手”人机交互的设计方法。《ACM信息系统汇刊》第11卷第3期，第219–238页。

萨德思, E. B.、曼德尔, M. I.、弗里曼, T. 和威尔斯基, S. 2004年。利用非参数信念传播进行分布式遮挡推理以实现追踪。载于神经信息处理系统会议（NIPS），第1369–1376页。

特奥巴尔特, C.、阿尔布雷希特, I.、哈伯, J.、马格诺尔, M. 和塞德尔, H.-P. 2004年。投掷棒球——利用多曝光图像追踪高速运动。《ACM图形学汇刊》第23卷第3期，第540–547页。

托拉尔巴, A.、弗格斯, R. 和弗里曼, W. T. 2007年。微型图像。技术报告MIT-CSAIL-TR-2007-024，麻省理工学院计算机科学与人工智能实验室。

托拉尔巴, A.、弗格斯, R. 和韦斯, Y. 2008年。用于识别的小型编码与大型数据库。载于计算机视觉与模式识别会议（CVPR），第2卷，第1–8页。

《ACM图形学汇刊》第28卷第3期，文章编号63，出版日期：2009年8月。

韦舍, G. 和塞德尔, H.-P. 2001年。Freedrawer：响应式工作台上的自由形式绘图系统。载于虚拟现实软件与技术会议（VRST），第167–174页。

怀特（R.）和福赛斯（D.），2005年。通过变形物体实现更精确的相机校准。技术报告UCB/EECS-2005-3，加州大学伯克利分校电子工程与计算机科学系。

怀特（R.）、克雷恩（K.）和福赛斯（D. A.），2007年。捕捉并动画化被遮挡的布料。载于《ACM图形学交易》第26卷第3期，34:1–34:8页。

威尔逊（A.）、伊扎迪（S.）、希利格斯（O.）、加西亚-门多萨（A.）和柯克（D.），2008年。将物理特性引入表面交互。收录于用户界面软件与技术会议（UIST），第67–76页。
