
# Phong曲面：基于提升优化的高效3D模型拟合

Jingjing Shen $^{\boxed{}}$、Thomas J. Cashman、Qi Ye、Tim Hutton、Toby Sharp、Federica Bogo、Andrew Fitzgibbon和Jamie Shotton

微软混合现实与人工智能实验室，英国剑桥

{jinshen,tcashman,yeqi,tihutt,tsharp,febogo,awf,jamiesho}@microsoft.com

摘要：混合现实中的实时感知与交互能力要求各类3D跟踪问题能够在头戴式设备等资源受限的硬件上以低延迟方式解决。实际上，对于HoloLens 2这类可将CPU和GPU留给应用程序使用的设备而言，多个跟踪子系统需要持续实时运行，且共享同一个数字信号处理器。为了解决HoloLens 2手部跟踪的模型拟合问题——其计算预算仅为iPhone 7的约百分之一——我们提出了一种新的曲面模型：“Phong曲面”。借鉴计算机图形学的思路，Phong曲面所描述的3D形状与三角网格模型一致，但具有连续的曲面法线，因此能够采用基于提升的优化方法，相比基于ICP的方法可显著提升效率。我们的研究表明，Phong曲面保留了更平滑曲面模型的收敛优势，而三角网格则不具备这一特性。

关键词：模型拟合 · 优化 · 手部跟踪 · 姿态估计

## 1 引言

随着计算机视觉系统越来越多地被部署在可穿戴或移动计算平台上，它们需要在低功耗和有限的计算资源条件下运行。在此背景下，姿态估计问题（例如应用于手部跟踪[^15] [^28]、人体跟踪[^2] [^17] [^31]或面部跟踪[^10]）通常采用混合架构来解决，该架构结合了判别性机器学习模型与生成式模型拟合，以解释观测到的数据[12,15,27–29]。在本文中，我们将“模型拟合”定义为将3D曲面模型与点集观测结果进行配准。模型拟合器能够利用从数据中学习到的强大先验知识，近期的研究甚至证明了将模型拟合纳入训练流程所带来的益处[^9] [^30]。对于计算能力有限却要构建实时系统的场景而言，收敛速度快的优化器至关重要。然而，观测数据与模型之间的对应关系往往未知，需要在优化过程中加以确定。

---

![Image](images/fb1853ffcf3f4e27f3fa4114c44510252c2d573cbf6bbfd43ff59d8de5832b0a.jpg)

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Surface type</td><td style='text-align: center; word-wrap: break-word;'>eval.</td><td style='text-align: center; word-wrap: break-word;'>with $\partial/\partial u$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subdiv. surface</td><td style='text-align: center; word-wrap: break-word;'>0.329s</td><td style='text-align: center; word-wrap: break-word;'>1.241s</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Phong surface</td><td style='text-align: center; word-wrap: break-word;'>0.049s</td><td style='text-align: center; word-wrap: break-word;'>0.279s</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Triangular mesh</td><td style='text-align: center; word-wrap: break-word;'>0.047s</td><td style='text-align: center; word-wrap: break-word;'>0.196s</td></tr></table>

<div style="text-align: center;">(a) Subdiv. surface (b) Phong surface (c) Triangular mesh</div>

<div style="text-align: center;">(d) Timings on  $10^{6}$ evaluations</div>

<div style="text-align: center;">Fig. 1. A hand model represented by a Loop subdivision surface [^11] (a), a Phong surface (b) and a triangle mesh (c), with surface normals visualized by mapping x, y, z coordinates to red, green and blue components respectively. (d) shows timings in seconds on PC: eval. refers to evaluation of  $10^6$ surface point positions and normals, and with  $\partial/\partial u$ includes the cost of derivative calculations w.r.t. surface coordinate as well. (Color figure online)</div>

具备快速收敛性对于构建低计算开销的实时系统至关重要。然而，观测数据与模型之间的对应关系往往未知，需要在优化过程中加以发现。

针对这一问题，目前已提出两种主要的优化方案。迭代最近点（ICP）算法 [^1] [^7] [^20] [^25] 通过“块坐标下降法”来求解模型姿态：首先找出模型表面上的最近点，接着固定这些对应关系，仅求解模型姿态。

另一种方法是“提升式”优化：同时求解对应关系并建模姿态，利用一种显式参数化未知对应关系的提升型目标函数。Taylor等人[^26] [^27]展示了采用这种方法的手部跟踪系统，他们指出模型表面的平滑性是形成平滑能量景观的重要前提，而这种平滑能量景观能让提升式优化高效收敛。不过，他们提出的复杂表面表示需要付出相应代价，会导致每次迭代的模型拟合时间增加多达58% [27，补充材料]。

在本文中，我们证明了更简单的表面表示就足够了，这样视觉系统就能以更低成本获得提升式优化的收敛优势。具体而言，由于将表面方向属性纳入目标函数往往能带来好处，人们可能会认为具有连续一阶导数的法线场（二阶表面平滑性）是基于梯度的优化器所需的最低要求。这意味着简单的三角网格并不够用，而我们的研究也证实了这一点：简单的三角网格确实不足，但将三角网格与在每个三角形上线性插值的法线场结合使用就足够了。我们将这种得到的表示称为“Phong表面”，这一命名源自计算机图形学中的Phong着色[^19]技术——该技术利用类似的插值法线来计算光照方程。图1展示了优化器内针对不同表面表示的法线场计算结果，可以看出Phong表面（b）产生的表面计算结果与平滑子曲面（a）上的计算结果十分接近。

---

通俗来讲，我们在3D模型拟合领域的贡献是一种设计理念为“尽可能简单，但又不失其用”的表面表示方式。

我们将Phong表面与其他两种模型表示进行了对比：一种是前人研究中使用平滑细分曲面[^4] [^26] [^27]，另一种是带有分段常数法线场的简单三角网格。我们在刚性姿态对齐以及手部跟踪示例应用中，针对不同的优化器对这些替代模型进行了实验，结果验证了先前的研究结论：提升式优化的收敛速度更快，且收敛域更广，优于ICP算法[^27]。

我们成功将基于Phong表面的提升式优化应用于HoloLens 2[^14]上——这是一款独立的头戴式全息计算机——以实现全关节手部跟踪器。该跟踪器需要在嵌入式数字信号处理器（DSP）上运行，其计算预算仅为4 GFLOPS，这一数值比iPhone 7小100倍，比高端笔记本电脑小1000倍。该应用需要在严格的热管理和功耗限制下实现实时连续跟踪，这促使我们找到能让优化器收敛到精确手部姿态估计的最简单计算方法。Phong表面表示正是让这款手部跟踪器能在HoloLens 2上实时运行的关键创新之一。

总而言之，我们的贡献在于：

- 通过将计算机图形学中的Phong着色概念引入计算机视觉领域的模型拟合，提出了Phong表面；

– 证明了Phong表面结合了提升式方法的收敛优势与平面网格模型的计算成本低的优点。

– 事实证明，采用Phong曲面模型能够让我们在4 GFLOPS的计算预算下实现实时手部追踪。

### 1.1 相关工作

ICP在曲面重建和点集配准领域有着悠久的历史，最早由Besl和McKay [^1] 以及Chen和Medioni [^5] 提出。由于ICP算法简单易实现，因此被广泛采用，进而衍生出大量基于“寻找最近点”和“误差最小化”这两个基本步骤的变体，正如Rusinkiewicz和Levoy [^22] 所描述的那样。Neugebauer [^16] 与Fitzgibbon [^6] 将ICP表述为非线性最小二乘问题的一个实例，可通过Levenberg-Marquardt算法 [^13] 等通用优化器来求解。这为目标函数带来了新的可能性，比如可以直接将鲁棒核纳入目标函数中，从而平滑地处理异常值 [^6]。

与此同时，Pellegrini等人 [^18] 将ICP推广到了关节模型，并验证了其在人体模型 [^3] [^32] 和手部模型 [^25] 拟合中的应用效果。ICP的另一个关键优势在于它能适配广泛的几何表示形式：任何支持指定“最近点”查询的点集或曲面都能被直接纳入拟合范围。不过，

---

交替坐标下降法的缺点是ICP算法收敛速度较慢，随着优化过程的推进，目标函数值仅呈线性下降 [^28]。当模型需要相对于数据集滑动时，这种局限性尤为明显，因为此时模型的姿态必须根据数据对应关系同步更新。点面ICP [^5] 试图针对常见情况解决这一问题，但这样一来就限制了可最小化的目标函数种类，从而丧失了Neugebauer和Fitzgibbon所引入的自由度。近期，Rusinkiewicz [^21] 提出了一种适用于ICP的对称目标函数，该函数特别适合点集到点集对齐这一原始任务，却不适用于本文所关注的“点集到参数化曲面对齐”场景。需要注意的是，我们所处的正是非对称场景。虽然可以通过对模型进行采样来扩展 [^21] 的方法，但这样会丧失模型本身提供的结构信息，而这种信息在许多实际场景中都是存在的。

一些研究者试图通过同时估计未知对应关系和模型参数来解决ICP的缺陷。Sullivan和Ponce [^24] 提出了首批用于模型拟合场景的此类系统，Cashman和Fitzgibbon [^4] 则在此基础上进一步拓展，将光滑曲面模型拟合到轮廓约束中。随后，Taylor等人 [^26] [^27] 以及Khamis等人 [^8] 证明了提升优化在关节手部追踪领域的优势。然而，所有这些方法都需要构建复杂的光滑曲面，这与使用ICP时所拥有的自由度形成鲜明对比。本文解决了这一缺陷，证明了提升优化同样适用于几何结构极其简单的模型。

另一项研究工作在不估计任何数据对应关系的情况下进行模型拟合。Taylor等人[^28]采用了与Fitzgibbon最初提出的方法[^6]相同的思路，即利用关节距离场来寻找对应关系；这一概念上类似于ICP最近点搜索，但利用图形硬件就能实现极高的效率。Mueller等人[^15]则使用判别网络来执行密集对应回归，从而允许在假设对应关系已固定的前提下开展模型拟合阶段。不过这两种方法目前都不适合在低功耗设备上部署。

## 2 方法

我们用以下符号在一个通用框架中描述模型拟合问题：

– 一个由向量$S(\theta) \subset \mathbb{R}^3$参数化的3D表面模型$\theta$，该向量可能用于指定刚性姿态、形状变化或关节角度等；

– 一组采样数据点$\{\mathbf{x}_i\}_{i=1}^D$及其估计的数据法线$\{\mathbf{x}_i^\perp\}_{i=1}^D$；

– 一个目标函数$E(\theta)$，用于惩罚参数化模型与观测数据之间的差异。

– 一个优化器，它会迭代更新$\theta$的当前假设值，以局部最小化目标函数。

---

![Image](images/803962018b3d6fd4cbba7ea1df84c5a50bcf87ac8da341eb9850ce97b5202d4d.jpg)

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

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

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

<div style="text-align: center;">Fig. 2. Illustration of the cross section of a surface model (black) with normals (dashed black) close to some target data (green). With a continuous normal field, either from a smooth model (a) or from a Phong surface (b), the normal term forces shown in blue drive the red correspondences towards their correct location, improving convergence. These forces do not exist for a triangular mesh (c) where the normals are constant on the facet and so the derivatives are all zero. (Color figure online)</div>

我们沿用了Taylor等人[^27]的模型拟合方法，该方法采用Levenberg优化器来优化可微的提升目标函数。[^27]中所使用的细分曲面模型具有良好的收敛特性，但代价是需要对曲面位置、法线及其导数进行昂贵的函数求值。我们重点关注效率问题，并研究了提升优化器中曲面与法线平滑度方面的要求。

### 2.1 Phong曲面模型

其核心思想是通过对每个平面三角形上的顶点法线进行线性插值来生成曲面法线向量。这与计算机图形渲染中Phong着色方法对光滑曲面的近似方式相同[^19]，因此我们将这种模型称为“Phong曲面”。

该曲面模型由一个三角形控制网格定义，其中包含N个控制顶点，每个顶点都有位置和法线向量$V(\theta) \in \mathbb{R}^{6 \times N}$。模型还对顶点有固定的三角剖分方式，网格中的每个三角形对应曲面上一个参数化的三角面片。

如图3a所示，设$u = \{p, v, w\}$为一个曲面坐标，其中$p \in \mathbb{N}$是三角面片的索引，$v \in [0,1], w \in [0,1-v]$用于对单位三角形进行参数化。$S(u, \theta) \in \mathbb{R}^3$表示曲面位置，$S^\perp(u, \theta) \in \mathbb{R}^3$表示曲面的单位长度法线，二者均在给定坐标u处求值。设$\mathbf{v}_1(\theta), \mathbf{v}_2(\theta), \mathbf{v}_3(\theta)$为控制顶点位置，$\mathbf{v}_1^\perp(\theta), \mathbf{v}_2^\perp(\theta), \mathbf{v}_3^\perp(\theta)$为第p个三角面片的控制顶点法线（由u指定），其中$\mathbf{v}_i(\theta)$和$\mathbf{v}_i^\perp(\theta)$由姿态和/或形状参数向量$\theta$确定。那么Phong曲面的求值过程可简单定义为对控制顶点的线性插值：

---

 $$ S(u,\theta)=(1-v-w)\mathbf{v}_{1}(\theta)+v\mathbf{v}_{2}(\theta)+w\mathbf{v}_{3}(\theta), $$

 $$ \boldsymbol{c}(u,\theta)=(1-v-w)\boldsymbol{v}_{1}^{\perp}(\theta)+v\boldsymbol{v}_{2}^{\perp}(\theta)+w\boldsymbol{v}_{3}^{\perp}(\theta), $$

 $$ S^{\perp}(u,\theta)=\frac{\mathbf{c}(u,\theta)}{\|\mathbf{c}(u,\theta)\|}, $$

其中$\boldsymbol{c}(u,\theta)$为插值后的法线方向向量。

我们按全微分的形式简洁地给出了关于v、w和$\theta$的偏导数：

 $$ \mathrm{d}S(u,\theta)=\mathrm{d}v(\boldsymbol{v}_{2}-\boldsymbol{v}_{1})+\mathrm{d}w(\boldsymbol{v}_{3}-\boldsymbol{v}_{1})+(1-v-w)\mathrm{d}\boldsymbol{v}_{1}+v\mathrm{d}\boldsymbol{v}_{2}+w\mathrm{d}\boldsymbol{v}_{3}, $$

 $$ \mathrm{d}\boldsymbol{\mathbf{c}}(u,\theta)=\mathrm{d}v(\boldsymbol{\mathbf{v}}_{2}^{\perp}-\boldsymbol{\mathbf{v}}_{1}^{\perp})+\mathrm{d}w(\boldsymbol{\mathbf{v}}_{3}^{\perp}-\boldsymbol{\mathbf{v}}_{1}^{\perp})+(1-v-w)\mathrm{d}\boldsymbol{\mathbf{v}}_{1}^{\perp}+v\mathrm{d}\boldsymbol{\mathbf{v}}_{2}^{\perp}+w\mathrm{d}\boldsymbol{\mathbf{v}}_{3}^{\perp}, $$

 $$ \mathrm{d}S^{\perp}(u,\theta)=\frac{1}{\|\boldsymbol{c}\|}\left(I_{3}-\frac{\boldsymbol{c}\boldsymbol{c}^{T}}{\|\boldsymbol{c}\|^{2}}\right)\mathrm{d}\boldsymbol{c}. $$

从这种表示法中可以读出偏导数，即相关微分的系数；例如，在 $\frac{\partial S}{\partial v} = \boldsymbol{v}_2 - \boldsymbol{v}_1$ 中令 $\mathrm{d}v = 1$、$\mathrm{d}w = 0$、$\mathrm{d}\boldsymbol{v}_i = \boldsymbol{0}$、$\mathrm{d}\boldsymbol{v}_i^\perp = \boldsymbol{0}$，即可得到 $\mathrm{d}S$。

### 2.2 基于Phong曲面的提升优化

模型拟合中优化的目标函数通常包含数据项和与问题相关的先验项或正则化项。此处我们简要介绍数据项。

我们对每个数据点$\mathbf{x}_i$到由曲面坐标$u_i$定义的对应曲面点的距离，以及曲面方向与相关数据法线$\mathbf{x}_i^\perp$之间的差异进行惩罚，具体公式如下：

 $$ E(\theta,U)=\frac{1}{D}\sum_{i=1}^{D}\Big(\|S(u_{i},\theta)-\mathbf{x}_{i}\|^{2}+\lambda_{n}\|S^{\perp}(u_{i},\theta)-\mathbf{x}_{i}^{\perp}\|^{2}\Big) $$

其中D表示数据点的数量，$\lambda_n$是法线的贡献权重，而$U = \{u_i\}_{i=1}^D$则是与每个数据点对应的曲面坐标。

需要注意的是，曲面坐标U与$\theta$是由提升优化器共同优化的，而ICP优化器则是在更新$\theta$和U之间交替进行。这意味着提升优化器可以选择让这些坐标在曲面上滑动，以更好地匹配数据点和数据法线，同时更新形状或姿态假设。相比之下，ICP优化器每次迭代仅处理一组变量，无法获取其他变量的梯度信息。U可以被视为潜变量，因为我们最终只会保留最终的$\theta$估计值。如[^27]所述，提升优化器采用带阻尼的Levenberg步长。

图2展示了细分曲面和Phong曲面的连续曲面法线如何促使数据法线项将坐标“拉向”特定方向。

---

即沿着蓝色箭头所指的方向，从而实现比三角网格更快的收敛速度。

需要注意的是，提升优化与点对平面ICP密切相关，但其在数学上更为丰富且效率更高。两种优化器都允许模型在每次迭代中沿数据滑动，从而改善收敛性。不过，点对平面ICP仅适用于一种能量形式（点到模型的距离），而提升优化可推广到任意可微的目标函数。例如，我们的能量函数中包含法线差异项（公式4），正如图7和表1所示，这对加快收敛至关重要；点对平面ICP无法最小化这一目标。更多示意图请参阅补充材料。

### 2.3 三角形上的对应关系更新

Subdiv.、Phong和Tri. mesh这三种曲面类型均由三角控制网格定义。如2.1节所述，我们将对应关系表示为曲面坐标$u=\{p,v,w\}$。整个曲面可视为由p索引的三角面片集合，每个面片由单位三角形参数化。

在提升优化中的Levenberg步长之后，我们会应用更新$u := u + \delta u$，该更新可能涉及跨越相邻三角形的操作。我们遵循[^4]和[^26]中所述的相同三角形遍历方案，如图3b所示。

图3b（右侧）展示了从一个三角形到其相邻三角形的单次对应关系转换；u和$\delta u$分别被表示为当前补丁p（浅蓝色）域空间中的二维点和二维向量。当$u+\delta u$离开三角形p的域时，我们计算部分更新量，使得$u+r\delta u$位于该三角形的边界上，然后将剩余的更新量$(1-r)\delta u$映射到相邻的补丁q（浅绿色）上。对于细分曲面而言，这会在表面上形成一条切线连续的路径，因为该曲面在补丁之间具有$C^1$连续性。需要注意的是，这种$C^1$假设并不适用于Phong曲面和三角网格；不过我们对所有曲面类型都采用完全相同的方式实现路径追踪，发现其在实践中效果良好。

![Image](images/8555c27c7eec639ecb50200fa612b43623ec1b1589b43815adc41a0ccedb2ad0.jpg)

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

![Image](images/e7b85770c2dcf84141b1833b6249d5158905b0a9df974225fb1bcee069e1fcac.jpg)

<div style="text-align: center;">(b) Correspondence update across triangles.</div>

<div style="text-align: center;">Fig. 3. (a) A surface correspondence u that lies on the p-th triangle patch, and its coordinate  $(v, w)$ in the unit-triangle domain  $\Omega$ of this patch. (b) Walking on a triangle mesh to apply an update  $\delta u$ and walking in the domain space (figure from [^26]). (Color figure online)</div>

---

## 3 实验

我们对比了上述三种曲面类型：Loop细分曲面（Subdiv）、Phong曲面（Phong）以及三角网格曲面（Tri. mesh），分别在Lifted和ICP优化框架下进行测试。首先，我们分析它们在椭球体刚性姿态估计上的效率和收敛特性。随后，我们将这些方法拓展到一个更具挑战性的场景：全关节手部跟踪。具体而言，我们在Taylor等人提出的手部跟踪器[^27]以及HoloLens 2上的手部跟踪器中实现并评估这些方法[^14]。

在每项实验中，我们对每种曲面的控制参数定义如下：对于Subdiv的每个控制顶点，我们计算其在极限Loop细分曲面上的位置和法向；我们将这些极限位置用作Tri. mesh的顶点，同时利用极限位置和法向来定义Phong的控制顶点和法向。需要注意的是，这样的定义仅仅是为了让Phong、Subdiv和Tri. mesh的曲面模型具备可比性，我们完全可以按照最能反映目标几何形状的方式来定义Phong曲面模型（即控制顶点的位置和法向）。

除图12b是在Microsoft HoloLens 2上运行外，大多数实验都是在配备Intel $^{\circledR}$ Xeon $^{\circledR}$ W-2155 CPU和32GB内存的台式机上进行的。

### 3.1 椭球体的刚性姿态对齐

问题描述：我们将椭球体的姿态参数化为一个6维向量$\theta$，用于存储平移和（轴角）旋转信息$[t_x, t_y, t_z, r_x, r_y, r_z]$。它定义了一个平移向量$\mathbf{t}(\theta) \in \mathbb{R}^3$和一个旋转矩阵$R(\theta) \in \mathbb{R}^{3 \times 3}$。给定一个模板网格，每个控制顶点的位置$v_i$会根据$\theta$进行变换：

 $$ \boldsymbol{v}_{i}(\theta)=R(\theta)\boldsymbol{v}_{i}+\boldsymbol{t}(\theta). $$

对于Phong曲面，我们也将控制顶点的法向表示为$\theta$的函数（这种方式比从变换后的顶点重新计算法向更高效）：

 $$ \boldsymbol{v}_{i}^{\perp}(\theta)=R(\theta)\boldsymbol{v}_{i}^{\perp}. $$

这就定义了第2.1节中介绍的$\boldsymbol{v}_i(\theta)$和$\boldsymbol{v}_i^\perp(\theta)$。导数$\frac{\partial \boldsymbol{v}_i(\theta)}{\partial \theta}$和$\frac{\partial \boldsymbol{v}_i^\perp(\theta)}{\partial \theta}$可以轻松计算得出。

目标函数仅包含公式4中所述的数据项。曲面求值方式如第2.1节所述。在我们的实验中，设定$D = 200$。为了公平比较不同曲面，尤其是Tri. mesh，我们对$\lambda_n$进行了参数扫描，范围设为[0.0,1.0]，用于拟合400个随机旋转。根据平均拟合误差，我们确定了Subdiv和Phong的最优$\lambda_n = 1.0$值，以及Tri. mesh的最优$\lambda_n = 0.05$值。在后续实验中，针对每种曲面类型，我们都使用其最优的$\lambda_n$值。需要注意的是，我们的$\lambda_n$扫描范围包含了0.0。

图4展示了一个拟合结果的示例。更多定性比较内容请参阅补充材料。

---

![Image](images/d9bd0747195217ba2cacba383441a67c008b2bdbfc6d65ea75d4873dd56c66fb.jpg)

<div style="text-align: center;">Fig. 4. Lifted optimization using a Phong surface ellipsoid model. Green points are the target data, with black lines joining them to their corresponding surface points in red. (Color figure online)</div>

输入数据。我们以原点为中心、半径为1、2、3的轴对齐椭球体（称为“中性姿态”）为起点，施加目标刚体变换以获得真实（目标）姿态。随后，我们在该网格定义的细分表面上随机采样200个数据点及其法线。为了进行定量收敛性分析，我们仅从朝向正z轴的三角形面片上采样：这便得到了一组不完整的数据点。我们通过在每个维度上从[0.0, 0.1]范围内均匀随机采样，给这些数据点和法线添加随机噪声。模型拟合的初始起始姿态始终是中性姿态。

评估指标。在定量分析方面，我们重点关注旋转情况。我们通过将拟合得到的刚体变换和真实刚体变换分别作用于一个固定向量（例如$[1,0,0]$），并测量两个变换后向量之间的夹角（单位为度）来计算姿态估计误差。考虑到椭球体的$180^{\circ}$对称性，我们将拟合误差定义为两个夹角中的最小值：其中一个夹角以$[1,0,0]$为固定向量计算，另一个夹角以$[-1,0,0]$为固定向量计算。

定量分析。我们进行了400次试验，目标真实姿态为$[0,0,0,y,y,y]$，其中y从$(-\pi,\pi)$中均匀采样。图5和图6展示了具有320个面的椭球模型在刚体对齐方面的性能表现。图5显示，Phong模型在精度上与Subdiv模型相当，且远优于Tri网格模型，无论采用ICP算法还是提升优化算法均是如此。在图6（左）中可以看到，无论是Phong模型还是Subdiv模型，提升优化算法的收敛速度都比ICP算法快得多。

图6（右）进一步绘制了精度（x轴）与速度（y轴，以毫秒为单位）的关系图。结果显示，Phong模型能达到与Subdiv模型相同的精度水平，且无论是采用提升优化算法（实线）还是ICP算法（虚线），其运行速度都与Tri网格模型相当。该图还表明，提升优化算法的收敛速度远快于ICP算法；例如，Lifted Phong算法能在8次迭代内将平均旋转误差控制在$10^{\circ}$以内，而ICP Phong算法则需要30次迭代。

需要注意的是，此处ICP算法的运行时间略长于提升优化算法。虽然通过进一步的代码优化或许能实现更快的ICP算法，但我们强调：若按理论上的浮点运算次数计算，提升优化算法每迭代一次的成本实际上与ICP算法相当。详情请参阅我们的补充材料（第3部分）。

---

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

<div style="text-align: center;">Fig. 5. Accuracy results for the rigid pose alignment of an ellipsoid with 320 facets. Optimizer ran for max. 50 iterations.</div>

<div style="text-align: center;">Table 1. Average rotation error after 10 and 50 lifted optimization iterations, with and without data normal term.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Surface type</td><td style='text-align: center; word-wrap: break-word;'>Avg. rot. err. at 10 iters</td><td style='text-align: center; word-wrap: break-word;'>Avg. rot. err. at 50 iters</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subdiv.</td><td style='text-align: center; word-wrap: break-word;'>$9.89^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$1.21^{\circ}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Subdiv. w/o normal</td><td style='text-align: center; word-wrap: break-word;'>$14.81^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$2.57^{\circ}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Phong</td><td style='text-align: center; word-wrap: break-word;'>$8.13^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$0.99^{\circ}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Phong w/o normal</td><td style='text-align: center; word-wrap: break-word;'>$23.24^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$3.54^{\circ}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tri. mesh</td><td style='text-align: center; word-wrap: break-word;'>$17.47^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$11.07^{\circ}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tri. mesh w/o normal</td><td style='text-align: center; word-wrap: break-word;'>$23.24^{\circ}$</td><td style='text-align: center; word-wrap: break-word;'>$3.54^{\circ}$</td></tr></table>

数据法线项。在此我们评估公式4中数据法线项的重要性。具体而言，我们证明该项对于提升优化算法和ICP算法的高速收敛至关重要，且连续的法线场能够改善收敛域并提升姿态估计的精度。

如图7所示，具备连续法线场的Phong模型和Subdiv模型在包含法线项时收敛速度更快，收敛后的精度也更高（也可参见表1）。需要注意的是，不含法线的Phong模型（实线亮红色）与不含法线的Tri网格模型（虚线黑色）在采用提升优化算法和ICP算法时的表现一致。

对于三角网格（图7左侧的虚线所示），我们发现引入数据法向项后，在10次迭代内就能实现更快的收敛，但收敛后的精度却较差。我们认为这是因为分段常数形式的表面法向会为对应关系引入局部极小值：当重新分配到不同三角形时，能量会出现离散跳变，而由于偏导数$\frac{\partial S^{\perp}}{\partial u}$为零，优化器很难为这些对应关系找到全局最小值。需要注意的是，即便加入了法向项，三角网格模型的精度仍比Phong模型和Subdiv模型差3倍（详见表1第三列）。

---

![Image](images/e27acf4e81d7a533dbe3a763235f38f23582f0130d96d0c6da6cc4970519b5c4.jpg)

<div style="text-align: center;">Fig. 6. Left: Convergence results for the rigid pose alignment of an ellipsoid with 320 facets. Right: Speed (model-fitting time in milliseconds) vs. accuracy (avg. error) comparisons on lifted and ICP optimizations, for max. 10, 20, and 30 iters. Closer to the origin is better.</div>

### 3.2 手部跟踪性能表现

Taylor等人开发的手部跟踪器中采用的提升型优化器[^27]使用的是Loop细分曲面。在本实验中，我们仅将其细分曲面替换为我们的Phong曲面，其余设置均保持不变。图8展示了利用提升型优化算法拟合Phong曲面的示例结果。图9定性比较了以相同初始点出发、使用不同类型曲面时，提升型优化在第2次和第4次迭代时的手部模型拟合结果。

问题背景：我们需优化一组手部姿态参数$\theta \in \mathbb{R}^{28}$；其中$\theta$存储了手部的朝向与平移信息，以及手部骨骼的22个关节角度。根据$\theta$中的数据，通过线性混合蒙皮技术[^8]即可计算出手部表面的顶点坐标。

对于Phong曲面而言，3D网格的顶点法向会与其位置一样，按照对应的LBS权重进行变形。这种控制法向的计算方法能近似还原出从局部顶点的姿态位置重新计算得出的法向，且效率要高得多。

关于目标函数、数据与实验设置及评估指标的详细信息，请参阅[^27]中的相关内容。

Dexter数据集上的性能表现：在图10、图11和图12a中，我们比较了在Dexter数据集[^23]上采用不同曲面类型的跟踪器的精度与计算效率。我们采用了与[^27]中相同的实验设置。

图10对应的跟踪设置为：192个数据点、10个初始点，共迭代10次。图10a展示了每帧拟合的最大误差与平均误差，即独立对每一帧进行拟合，每次使用10个新的初始点。图10b展示了跟踪过程的最大误差与平均误差，即将上一帧的跟踪姿态（如果有的话）作为当前帧的10个初始点之一。

---

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

![Image](images/fd7d45c8164e055dead30bb69417eefcf75ee55b487d8f58af95c79523a73ae9.jpg)

<div style="text-align: center;">Fig. 7. Impact of the data normal term on optimization convergence, for the rigid pose alignment of an ellipsoid (320 facets). Left: Lifted optimization. Right: ICP optimization.</div>

![Image](images/a4bafcc33d7bd8369b23977706c4550e1221fc2b8773f4bc94cd1ba189332e9e.jpg)

<div style="text-align: center;">Fig. 8. A starting point and 4 iterations of lifted optimization using a Phong surface hand model. Green points are the target data, with black lines joining them to their corresponding surface points in red. (Color figure online)</div>

两者均表明，在该数据集上，Phong模型的性能与Subdiv模型相当，且精度高于三角网格模型。提升型优化算法的表现略优于ICP算法。

初始化鲁棒性：由于目标函数是非凸的，模型拟合方法往往对初始化十分敏感。这正是为什么跟踪精度（图10b）优于每帧独立拟合的精度（图10a）——后者每次优化都从头开始。在每帧独立拟合场景下（图10a），Phong模型与三角网格模型之间的差距更大，这说明当初始点较差时，平滑的法向场是实现快速收敛的关键。我们强调快速收敛在实时体验中的重要性：因为当手部超出视野范围，或存在自身遮挡与物体遮挡时，常常会发生跟踪失败的情况。

模型拟合的计算成本主要由三个变量决定：(i) 数据项中的数据点数量；(ii) 用于初始化优化器的起始点数量；以及 (iii) 每个起始点的迭代次数。图11展示了这些变量对精度和收敛性的影响。同样，Phong模型的表现与Subdiv模型类似，且远优于Tri网格。图11b显示Lifted模型的收敛性优于ICP，这一结果印证了[^27]中的结论。

---

![Image](images/a13c57fa08fd096f1ea3a9907edea20caa107fe0177f8be790ba61abf63126fc.jpg)

<div style="text-align: center;">Fig. 9. Fitted hand model result at the 2nd and 4th iterations of lifted optimization using various surface types.</div>

![Image](images/a00bb9ad708254833a6920d8482b18eca2b65413ada7a0edc05ae4f130602102.jpg)

<div style="text-align: center;">(a) Max (left) and Avg. (right) joint error on per-(b) Max (left) and Avg. (right) joint error on frame fitting. tracking.</div>

<div style="text-align: center;">Fig. 10. Accuracy comparison of surface types with lifted optimizer and ICP on Dexter.</div>

这些测试表明，模型的平滑法线场对于提升Lifted优化的收敛速度至关重要；而网格几何形状是否平滑实际上并不重要。

图12a展示了逐帧拟合情况下的速度与精度关系图（192个数据点，10个起始点）。对于每种表面类型，迭代次数在2到10次之间变化。x轴表示精度，以数据集帧中平均关节误差小于20毫米的帧数百分比来衡量；y轴则表示模型拟合阶段的每秒帧数（FPS，针对每个起始点），该数值不包括预处理时间。例如，在Lifted情况下（实线），若要求拟合速度达到50帧/秒，Phong和Tri网格可执行6次迭代，而Subdiv仅能执行4次迭代；且在此速度下Phong能提供最高的精度。另外，若要求拟合精度接近80%，Phong和Subdiv均可执行4次迭代，但Phong的速度要快20%。因此，Phong在精度上几乎可与Subdiv持平，而在效率方面却与Tri网格相当。

对于ICP优化而言也能得出类似结论（见图12a中的虚线）。正如3.1节末尾所提到的，我们的ICP运行时间略长于Lifted方法，但我们在补充材料的第3部分中证明了Lifted的每次迭代成本实际上与ICP相当。

---

![Image](images/2502338ef6366108e6433dd937cc353705b2a790a0519f0cec987d3864e2c4f3.jpg)

<div style="text-align: center;">(a) Effect of the number of data points N on accuracy.</div>

<div style="text-align: center;">(b) Effect of the number of iterations on energy and accuracy.</div>

<div style="text-align: center;">(c) Effect of the number of starting points on energy and accuracy.</div>

<div style="text-align: center;">Fig. 11. Effect of alternative optimization configurations when fitting to Dexter. The results shown are for per-frame model fitting.</div>

需要注意的是，Lifted Subdiv经过8次迭代后所达到的精度，与Lifted Phong经过10次迭代后的精度相当。这是因为Lifted Phong在8次迭代后就已经收敛，后续迭代并不会进一步提升精度（参见图11b）。

在HoloLens 2上的性能表现。基于[^27]中的工作成果，我们进行了多项改进，从而能够在计算能力和能耗均受限的移动设备HoloLens 2上实时运行手部追踪器[^14]。此处介绍的Phong表面模型正是关键的效率提升手段之一。图12b展示了在HoloLens 2上使用该手部追踪器时，采用Lifted优化的不同表面类型的速度与精度对比，测试数据来自采集的深度数据集。Phong表面（红点）的处理速度比细分表面（绿点）快一倍，且精度水平相同。

---

![Image](images/9819c81a2257a3494ea7f4a3d9f7e877c32cb4d8d0adfb08cef20acc39d942e6.jpg)

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

<div style="text-align: center;">(a) Application on the hand tracker by Taylor et al. [^27]. (b) Our hand tracker on HoloLens 2.</div>

<div style="text-align: center;">Fig. 12. (a) The speed (model-fitting speed in fps for one starting point) vs. accuracy (percentage of frames with avg. joint error less than 20 mm) for per-frame fitting using the hand tracker by Taylor et al. [^27] on Dexter. Upwards and to the right is better. The dots from top to bottom on each line denote the number of iterations being 2, 4, 6, 8, 10. (b) The speed vs. accuracy for our hand tracker on HoloLens 2. (Color figure online)</div>

## 4 结论

本文证明了Lifted优化的收敛优势适用于比以往认为更广泛的一类表面模型。我们引入了Phong表面，并证明它们能够提供足够的局部模型几何信息，使模型拟合优化器快速收敛，同时所需的计算量仅为昂贵的平滑表面模型的一小部分。除了刚性姿态对齐和手部追踪外，该方法还可应用于各类3D表面模型拟合场景，例如SMPL人体[^2]、面部[^10]及动物[^33] [^34]的3D姿态与形状估计；在计算资源有限的情况下，该方法尤为实用。

根据本文中展示的概括性结论，一个自然的问题是：“要使提升优化有效运作，需要满足哪些条件？”我们推测，唯一的条件就是模型能够为能量切空间提供足够的近似表示$\partial E/\partial\theta$，从而让基于梯度的优化器在每次迭代中都能高效前进；至于全局拓扑结构、连通性以及这些近似形式本身，则没有严格限制。我们打算在未来的研究中更深入地探讨这一假设。

## 参考文献

## [^1]: Besl, P.J., McKay, N.D.: A method for registration of 3-D shapes. IEEE Trans. Pattern Anal. Mach. Intell. 14(2), 239–256 (1992)

---

2. Bogo, F., Kanazawa, A., Lassner, C., Gehler, P., Romero, J., Black, M.J.：Keep it SMPL：从单张图像自动估计三维人体姿态与形状。收录于：Leibe, B., Matas, J., Sebe, N., Welling, M.（编）《ECCV 2016》。LNCS第9909卷，第561–578页。Springer, Cham（2016年）。<https://doi.org/10.1007/978-3-319-46454-1_34>

[^3]: Bogo, F., Romero, J., Loper, M., Black, M.J.: FAUST: dataset and evaluation for 3D mesh registration. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 3794–3801 (2014)

[^4]: Cashman, T.J., Fitzgibbon, A.W.: What shape are dolphins? Building 3D morphable models from 2D images. IEEE Trans. Pattern Anal. Mach. Intell. 35(1), 232–244 (2013)

[^5]: Chen, Y., Medioni, G.: Object modeling by registration of multiple range images. In: IEEE International Conference on Robotics and Automation, pp. 2724–2729 (1991)

[^6]: Fitzgibbon, A.: Robust registration of 2D and 3D point sets. In: Proceedings of the British Machine Vision Conference, pp. 411–420 (2001)

7. Hirshberg, D.A., Loper, M., Rachlin, E., Black, M.J.：Coregistration：关节三维形状的同步对齐与建模。收录于：Fitzgibbon, A., Lazebnik, S., Perona, P., Sato, Y., Schmid, C.（编）《ECCV 2012》。LNCS第7577卷，第242–255页。Springer, Heidelberg（2012年）。<https://doi.org/10.1007/978-3-642-33783-3_18>

[^8]: Khamis, S., Taylor, J., Shotton, J., Keskin, C., Izadi, S., Fitzgibbon, A.: Learning an efficient model of hand shape variation from depth images. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 2540–2548 (2015)

[^9]: Kolotouros, N., Pavlakos, G., Black, M., Daniilidis, K.: Learning to reconstruct 3D human pose and shape via model-fitting in the loop. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 2252–2261 (2019)

[^10]: Li, T., Bolkart, T., Black, M.J., Li, H., Romero, J.: Learning a model of facial shape and expression from 4D scans. ACM Trans. Graph. 36(6), 194:1–194:17 (2017)

[^11]: Loop, C.T.: Smooth subdivision surfaces based on triangles. Master's thesis, University of Utah (1987)

12. Magic Leap Inc.：Magic Leap的感知技术（2019年）。<https://sites.google.com/view/perceptionatmagicleap/>

[^13]: Marquardt, D.W.: An algorithm for least-squares estimation of nonlinear parameters. J. Soc. Ind. Appl. Math. 11(2), 431–441 (1963)

14. Microsoft：HoloLens 2（2019年）。<https://blogs.microsoft.com/blog/2019/02/24/microsoft-at-mwc-barcelona-introducing-microsoft-hololens-2>

[^15]: Mueller, F., et al.: Real-time pose and shape reconstruction of two interacting hands with a single depth camera. ACM Trans. Graph. 38(4), 49:1–49:13 (2019)

[^16]: Neugebauer, P.J.: Geometrical cloning of 3D objects via simultaneous registration of multiple range images. In: International Conference on Shape Modeling and Applications, pp. 130–139 (1997)

[^17]: Pavlakos, G., et al.: Expressive body capture: 3D hands, face, and body from a single image. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 10975–10985 (2019)

[^18]: Pellegrini, S., Schindler, K., Nardi, D.: A generalisation of the ICP algorithm for articulated bodies. In: Proceedings of the British Machine Vision Conference, pp. 87.1–87.10 (2008)

[^19]: Phong, B.T.: Illumination for computer generated pictures. Commun. ACM 18(6), 311–317 (1975)

## [^20]: Qian, C., Sun, X., Wei, Y., Tang, X., Sun, J.: Realtime and robust hand tracking from depth. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 1106–1113 (2014)

---

[^21]: Rusinkiewicz, S.: A symmetric objective function for ICP. ACM Trans. Graph. **38**(4), 85:1–85:7 (2019)

[^22]: Rusinkiewicz, S., Levoy, M.: Efficient variants of the ICP algorithm. In: International Conference on 3D Digital Imaging and Modeling, pp. 145–152 (2001)

[^23]: Sridhar, S., Oulasvirta, A., Theobalt, C.: Interactive markerless articulated hand motion tracking using RGB and depth data. In: International Conference on Computer Vision, pp. 2456–2463 (2013)

[^24]: Sullivan, S., Ponce, J.: Automatic model construction and pose estimation from photographs using triangular splines. IEEE Trans. Pattern Anal. Mach. Intell. 20(10), 1091–1097 (1998)

[^25]: Tagliasacchi, A., Schröder, M., Tkach, A., Bouaziz, S., Botsch, M., Pauly, M.: Robust articulated-ICP for real-time hand tracking. Comput. Graph. Forum 34(5), 101–114 (2015)

[^26]: Taylor, J., et al.: User-specific hand modeling from monocular depth sequences. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 644–651 (2014)

[^27]: Taylor, J., et al.: Efficient and precise interactive hand tracking through joint, continuous optimization of pose and correspondences. ACM Trans. Graph. 35(4), 143:1–143:12 (2016)

[^28]: Taylor, J., et al.: Articulated distance fields for ultra-fast tracking of hands interacting. ACM Trans. Graph. 36(6), 244:1–244:12 (2017)

[^29]: Tkach, A., Pauly, M., Tagliasacchi, A.: Sphere-meshes for real-time hand modeling and tracking. ACM Trans. Graph. 35(6), 222:1–222:11 (2016)

[^30]: Wan, C., Probst, T., Gool, L.V., Yao, A.: Self-supervised 3D hand pose estimation through training by fitting. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 10845–10854 (2019)

[^31]: Xiang, D., Joo, H., Sheikh, Y.: Monocular total capture: posing face, body, and hands in the wild. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 10957–10966 (2018)

[^32]: Zheng, J., Zeng, M., Cheng, X., Liu, X.: SCAPE-based human performance reconstruction. Comput. Graph. 38, 191–198 (2014)

[^33]: Zuffi, S., Kanazawa, A., Black, M.J.: Lions and tigers and bears: capturing non-rigid, 3D, articulated shape from images. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 3955–3963 (2018)

[^34]: Zuffi, S., Kanazawa, A., Jacobs, D.W., Black, M.J.: 3D menagerie: modeling the 3D shape and pose of animals. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 5524–5532 (2017)
