
# Spectral Graphormer：基于光谱图的Transformer，用于利用多视角彩色图像进行以自我为中心的双手重建

Tze Ho Elden Tse $^{1,2*}$ Franziska Mueller $^{1}$ Zhengyang Shen $^{1}$ Danhang Tang $^{1}$ Thabo Beeler $^{1}$ Mingsong Dou $^{1}$ Yinda Zhang $^{1}$ Sasa Petrovic $^{1}$ Hyung Jin Chang $^{2}$ Jonathan Taylor $^{1}$ Bardia Doosti $^{1}$

$^{1}$谷歌 $^{2}$伯明翰大学

## 摘要

我们提出了一种新型的基于Transformer的框架，能够从多视角RGB图像中重建两只高保真度手部。与现有的手部姿态估计方法不同——这类方法通常训练深度网络从单张RGB图像中回归手部模型参数——我们考虑了一种更具挑战性的问题场景：从以自我为中心的视角下，直接以高分辨率回归两只手及其前臂的绝对根部位姿。由于现有数据集要么无法适用于以自我为中心的视角，要么缺乏背景变化，因此我们创建了一个包含多种场景的大规模合成数据集，并收集了来自多校准相机设置的真实数据集，用以验证我们所提出的多视角图像特征融合策略。为了使重建结果在物理上更合理，我们提出了两种策略：(i) 采用由粗到精的光谱图卷积解码器，在上采样过程中平滑网格；(ii) 在推理阶段引入基于优化的细化步骤，防止手部相互穿透。通过大量的定量和定性评估，我们证明该框架能够生成逼真的双手重建结果，同时验证了基于合成数据训练的模型对真实数据的泛化能力，以及其在实时AR/VR应用中的可行性。

### 1. 引言

3D手部姿态估计是包括增强现实和虚拟现实（AR/VR）在内的各类下游应用中的基础问题[^19] [^20] [^25] [^26] [^48] [^59] [^64]。在3D手部或手-物体重建网络的设计方面，相关研究已显示出在单手姿态估计中的显著效果[^15] [^22] [^27] [^60] [^61] [^67]。然而，双手姿态估计却受到的关注相对较少。如Fig. 1所示，本文聚焦于从多视角RGB图像中进行高保真度双手重建。

随着 InterHand2.6M 数据集 [^47] 的发布，近来已提出多种方法。更近期的

![Image](images/d29db2ecdca573612cac5ee7cdae943dbc302882af59ac3a0aa5ab087c0fbb88.jpg)

<div style="text-align: center;">Figure 1: Our method jointly reconstructs high fidelity two-hand meshes from multi-view RGB image. The input images shown here are from our synthetic dataset, which contains challenging video sequences of two hands rendered into egocentric views.</div>

方法侧重于通过利用手部部件分割概率 [^18]、关节可见性 [^33]、级联细化模块 [^66] 或采用 Transformer 的关键点 [^24] 来缓解交互双手之间的自相似性问题。尽管它们在复杂构型上表现良好，但其对根关节对齐的依赖使其应用于多视图场景时无法恢复绝对的根姿态，而这对 VR 中的交互尤为关键。

### 此外，许多沉浸式AR/VR应用需要精确估计包含前臂在内的双手姿态，因为这能够实现更逼真、更准确的手部动作与手势表现。纳入前臂后，手相对于手臂的方向和运动情况就能为用户在虚拟环境中的行为提供重要的上下文信息。另外，这还能减少误差并提升跟踪系统的稳定性，这对于维持沉浸感以及避免AR/VR应用中的迷失方向现象至关重要。不过，和计算机视觉的许多其他领域一样，目前尚不存在适合典型监督式深度学习设置的数据集。

---

目前没有适合典型监督式深度学习设置的数据集。具体而言，现有数据集要么无法用于第一人称视角场景[^21]，要么缺乏背景和光照条件的变化[^47]。

在本文中，我们提出了一种基于谱图变换器的架构，能够从多视角RGB图像中重建包含前臂的高分辨率双手网格模型。然而，将现有最先进方法[^40] [^41]从单视角直接扩展到多视角场景并非易事，因为这些方法会消耗大量参数且计算成本极高。正如Cho等人所指出的[^8]：当前基于编码器的变换器[^40] [^41]忽视了高效标记设计的重要性。为了保留图像特征中的空间信息，同时避免将冗余的全局图像特征传入变换器编码器，我们提出了一种基于软注意力的多视角图像特征融合策略，以获取特定区域的特征。此外，由于手部网格本质上属于图结构数据，我们将谱图理论中的图拉普拉斯算子特性[^10]融入所设计的基于变换器的网络架构中。为了获得逼真的手部重建结果，我们采用了分层图解码器，并在推理阶段引入了基于优化的细化步骤以防止自相交现象。消融实验表明，上述每个技术组件都发挥了重要作用。

除了高昂的计算成本外，另一个挑战在于缺乏用于训练此类模型的高保真3D网格真值数据。由于手动为真实数据标注3D手部网格既费时又昂贵，我们创建了一个大规模合成多视角数据集，其中包含来自第一人称摄像头视角的逼真手部动作，且背景和光照条件变化丰富。为了推广该方法并评估其在真实数据上的表现，我们进一步从一个经过精密校准的多视角摄影棚中采集了数据，该摄影棚配备了18台高分辨率摄像头。我们采用自动化方法对网格进行配准，从而获得手部姿态的真值数据。我们在两个数据集上训练的所提方法在具有挑战性的场景中均表现出稳健的性能，能够作为强有力的基准模型。

我们的贡献如下：

1. 我们提出了一种新颖的端到端可训练谱图变换器，能够从多视角RGB图像中实现高保真双手重建。

2. 我们设计了高效的基于软注意力的多视角图像特征融合机制，由此得到的图像特征是针对分割后的手部网格的特定区域特征。我们还通过实验证明，采用该方法可使模型尺寸缩小35%。

3. 我们提出了一种基于优化的方法，用于在推理阶段对物理上不合理的网格模型进行细化处理。

4. 我们构建了一个大规模的合成多视角数据集，其中包含高分辨率的3D手部网格，并收集真实数据集来验证我们所提出的方法。

### 2. 相关工作

我们的工作致力于解决从多视角图像中重建双手的问题。我们首先回顾了基于RGB图像的手部重建相关文献，接着重点介绍了利用Transformer进行人体/手部重建的研究进展，最后简要梳理了现有的手部数据集。

单手重建。针对从RGB图像或深度图中进行手部姿态估计，已有诸多研究方法被提出。此处我们主要关注能够重建完整手部网格的工作。由于早期大多数方法无法获取包含密集3D真值的合适数据集，参数化手部模型MANO [^53]便成为一种替代方案——其输入参数可直接被回归得出，且模型本身包含了关于手部几何的先验3D信息。因此，直接从单张图像预测手部姿态和形状参数的判别式方法 [^2] [^5] [^27] 受到了广泛关注。[^46]通过学习姿态和形状的校正参数，利用多视角深度图像重建出高保真的手部网格。与此同时，非参数化方法 [^22] [^36] 借助图卷积技术，展现了直接回归3D手部网格的能力。近年来，通过学习隐式函数来表示物体形状的研究日益受到重视 [^1] [^7] [^43]。在NASA [^13]的基础上扩展而来的 [^31] 是一种基于关键点的隐式手部表示方法，而 [^11] 则实现了形状、颜色和姿态表示的分离。

与上述方法不同，我们在本工作中提出了一种可扩展至多视角场景的非参数化方法，能够重建包含前臂在内的高保真手部网格。此外，我们的方法不受单一受试者的限制，而这正是 [^46] 的主要局限。近期关于多视角融合的研究利用极线几何 [^29] [^51] 来聚合不同视角下估计出的2D热图，或者采用特征变换层（FTL） [^26] [^52] 来学习与相机几何相关的潜在特征。不过，这些方法需要已知的相机参数，且基于特征相似度的特征匹配过程对遮挡情况较为敏感。我们的工作引入了软注意力机制与Transformer令牌化技术相结合的方法，该方法对遮挡具有鲁棒性，且能高效聚合多视角图像特征。

双手姿态估计。交互式双手的姿态估计大致可分为判别式和生成式（或混合式）方法。早期方法通常采用混合式思路：先利用判别式方法检测到的视觉线索，再进行模型拟合。[^3] [^62] 在检测到的指尖位置基础上应用碰撞优化项和物理建模；[^25] [^26] [^48] [^64] ex

---

![Image](images/cc89deee28c001d2514e9e3ec945821bb0cb166b6d2a365a6b88bb48919045b6.jpg)

<div style="text-align: center;">Figure 2: A schematic illustration of our framework. Given multi-view RGB images, we extract volumetric features f with a shared CNN backbone. The soft-attention fusion block generates the attention mask  $\mathcal{M}$ and finer image features  $f'$ through multiple upsampling and convolution blocks. Region-specific features  $f_r$ are computed by first aggregating  $f'$ along the feature channel dimension via the attention mask  $\mathcal{M}$, followed by a max-pooling operation across multi-view images to focus on useful features. Then, we apply mesh segmentation via spectral clustering on template hand meshes and uniformly subsample them to obtain coarse meshes. We perform position encoding by concatenating coarse template meshes to the corresponding region-specific features  $f_r$, i.e. matching colored features to mesh segments. Finally, our multi-layer transformer encoder takes the resulting features as input and outputs a coarse mesh representation  $f_c$ which is then decoded by a spectral graph decoder to produce the final two-hand meshes at target resolution. Here, each hand contains 4023 vertices.</div>

从RGB图像或深度图像中提取图像特征或关键点，并拟合具有物理约束的手部模型。近期出现的大规模手部交互数据集[^47]促成了完全判别性方法的兴起[^24] [^33] [^38] [^54] [^66]，这些方法能够从单张RGB图像中同时估计3D关节位置或手部模型参数。在本研究中，我们的目标是在保持模型复杂度较低的同时，以高分辨率重建两只手。

3D视觉中的Transformer。基于Transformer的架构在视觉领域正日益受到青睐。此处我们重点关注那些从RGB图像中重建人体或手部的方法，详细综述可参考[^32]。在一项密切相关的工作中，[^40]采用级联Transformer编码器从单张RGB图像中重建人体和手部，取得了最先进的性能。[^41]在[^40]的基础上引入了沿Transformer编码器的图卷积操作。[^8]通过编码器-解码器架构将图像编码与网格估计解耦，从而提升了[^40]的效率。[^24]对“Detection Transformer”[^6]进行了扩展，加入了手-物体姿态估计功能。虽然这些研究针对的是单张图像，且由于可学习参数数量庞大，将其扩展到多视图场景并非易事，但我们的架构旨在高效实现高分辨率下的双手重建。

手部姿态数据集。判别性方法的成功依赖于手部交互数据集的丰富程度与多样性。[^47]提出了大规模数据集InterHand2.6M，该数据集利用多台高分辨率RGB相机，通过半自动标注流程采集了紧密交互的手部动作数据。不过，该数据集的背景和光照变化较为有限。FreiHAND[^68]虽然包含更丰富的背景变化，但仅局限于单手及第三人称视角。因此，上述数据集并不适用于以眼为中心的双手重建任务。现有的以眼为中心的数据集要么受限于可见标记[^21]，要么局限于受限的实验室环境[^37]。这促使我们创建出一个具有更佳环境与光照变化的大规模以眼为中心的合成数据集。为了验证所提出的多视图融合策略，我们进一步收集了具有更具挑战性的拍摄角度的真实数据集。总体而言，合成数据集与真实数据集均包含了多样化的以眼为中心的多视图及多帧数据点，且涵盖多名受试者。我们的架构在这两类数据集上均展现出良好的性能，构成了强有力的基准。

#### 3. 方法

如图2所示，我们的架构首先将N张多视图RGB输入图像$\mathbf{x} \in \mathbb{R}^{N \times 224 \times 224 \times 3}$送入共享的CNN主干网络，以提取体素特征$\mathbf{f} \in \mathbb{R}^{N \times 7 \times 7 \times 2048}$，即ResNet中全局平均池化层之前的特征[^28]。随后，这些体素特征被送入基于软注意力的多视图特征编码器，输出K个区域特定的特征$\mathbf{f}_r \in \mathbb{R}^{K \times C}$，其中C表示特征通道大小。Transformer编码器将$\mathbf{f}_r$与模板手部网格$\mathbf{m}' \in \mathbb{R}^{V' \times 3}$结合，输出粗略的网格表示$\mathbf{f}_c \in \mathbb{R}^{V' \times F}$。最后，谱图解码器通过在$\mathbf{m} \in \mathbb{R}^{V \times 3}$上进行上采样来生成手部网格$\mathbf{f}_c$，其中$V \gg V'$。稍作约定，$\mathbf{m}$可根据应用场景的不同，表示双手或单手。

---

在下文中，我们将详细介绍第3.2节中的多视角图像特征编码器、第3.3节中的谱图卷积解码器以及第3.4节中用于训练的损失函数。我们还在第3.5节中介绍了推理时的基于优化的细化流程。

#### 3.1. 符号说明

三维网格可以表示为无向图 $\mathcal{G} = (\mathcal{V}, \mathcal{E}, \mathbf{A})$，其中 $\mathcal{V}$ 是节点集，$\mathcal{E}$ 是边集。邻接矩阵 $\mathbf{A} \in \mathbb{R}^{|\mathcal{V}| \times |\mathcal{V}|}$ 编码了节点间的成对关系信息。度矩阵 $\mathbf{D} \in \mathbb{R}^{|\mathcal{V}| \times |\mathcal{V}|}$ 是一个对角矩阵，其对角线元素 $\mathbf{D}_{ii} = \sum_j \mathbf{A}_{ij}$ 表示每个节点的度值。谱图理论中一个重要的算子 [^10] 是图拉普拉斯算子 $\mathbf{L}$，其定义为 $\mathbf{L} = \mathbf{D} - \mathbf{A}$，且 $\mathbf{L} = \mathbf{U}\mathbf{A}\mathbf{U}^T$，其中图拉普拉斯算子可通过傅里叶基 $\mathbf{U} = [\mathbf{u}_1, \ldots, \mathbf{u}_{|\mathcal{V}|}]$、$\in \mathbb{R}^{|\mathcal{V}| \times |\mathcal{V}|}$ 和 $\mathbf{\Lambda} = \text{diag}([\lambda_1, \ldots, \lambda_{|\mathcal{V}|}]) \in \mathbb{R}^{|\mathcal{V}| \times |\mathcal{V}|}$ 进行对角化，这里 $\{\mathbf{u}_i\}_{i=1}^{|\mathcal{V}|}$ 是特征向量，$\{\lambda_i\}_{i=1}^{|\mathcal{V}|}$ 是图拉普拉斯算子的非负特征值 $(0 = \lambda_1 \leq \ldots \leq \lambda_{|\mathcal{V}|})$。

#### 3.2. 多视角图像特征编码器

为了将基于Transformer的架构扩展到多视角场景，并避免像 [^40] 中那样以过度重复的方式拼接全局图像特征，我们提出了一种简单的软注意力融合策略，以便更好地聚合多个视角的特征，并通过网格分割来关注不同的手部部位。由谱聚类定义的K个区域特定特征 $\mathbf{f}_r$ 会被输入到我们的Transformer编码器中，从而得到粗略的网格表示 $\mathbf{f}_c$。

软注意力融合。给定体素特征f，我们不进行任何池化操作，以避免丢失空间信息，实验结果也证实了这一点（见表3）。相反，我们提出用软注意力掩码来聚合多视角特征。我们首先通过两个模块对f进行处理，得到更精细的表示 $\mathbf{f}' \in \mathbb{R}^{N \times (H \times W) \times C}$，每个模块包含基于双线性插值的二维上采样、$3 \times 3$ 卷积层、批量归一化 [^30] 以及ReLU激活函数。软注意力掩码 $\mathcal{M} \in \mathbb{R}^{N \times (H \times W) \times K}$ 是通过以下步骤得到的：1）使用K个 $1 \times 1$ 卷积滤波器将 $\mathbf{f}'$ 的特征通道数缩减为K；2）应用空间软arg-max操作，确定每个C中激活度最大的图像空间点。在此阶段，我们可以通过 $\mathbf{f}'' \in \mathbb{R}^{N \times K \times C}$ 计算出每帧特征 $\mathbf{f}'' = \mathcal{M}^\text{T} \mathbf{f}'$。最终，通过对 $\mathbf{f}_r \in \mathbb{R}^{K \times C}$ 的第二维进行最大池化，得到区域特定特征 $\mathbf{f}''$。这种设计有两个直观原因：1）注意力权重较高的对应特征对最终特征表示的空间贡献更大；2）最大池化能够高效地在多个视角间选择特征，且由于CNN滤波器在所有视角间共享，因此不会过度拟合于某种多摄像头配置。

基于谱聚类的网格分割。受 [^42] 的启发，我们采用谱聚类来实现三维网格分割。与 [^42] 的方法不同，我们并非使用亲和矩阵（该矩阵通过指数核编码点对之间的亲和力），而是对图拉普拉斯矩阵 L 进行特征分解，随后利用 k-means 算法将网格划分为 K 个簇。借助这种方法，无需人工干预即可高效地对任意模板模型网格进行分割。此外，如图 3 所示，分割后的网格并未呈现清晰的边界，某些簇还分散在整个表面。这一特点与 [^40] 中用于建模遮挡区域的掩码顶点思路类似，旨在促使 Transformer 考虑其他相关的顶点查询。

Transformer 编码器。接下来，我们将 C 维的区域特定图像特征与分割后的模板手部网格所对应的 K 个簇进行拼接。得到的特征 $\mathbf{f}_t \in \mathbb{R}^{V' \times (C+3)}$ 被送入多层 Transformer 编码器，如 [^40] 所述，该编码器会逐步降低特征的维度。最终输出的是粗网格表示 $\mathbf{f}_c \in \mathbb{R}^{V' \times F}$，其中涉及 n 层 Transformer 编码器，对应特征 $F = (C + 3)/2^n$。

理论依据。由于自然界中的不规则图不存在像网格图那样的显式坐标系，因此对齐这类图的节点并非易事。近期的研究 [^16] [^17] [^35] 尝试利用频谱域来编码位置信息，使得相邻节点具有相似的值，而距离较远的节点则具有不同的值。之所以能实现这一点，是因为图拉普拉斯矩阵的特征向量可被视为 Transformer 中位置编码的正弦函数的广义形式 [^63]。例如，对于任意给定的图，彼此靠近的节点可被赋予相似的位置特征；图拉普拉斯矩阵的特征值 $\lambda_{i}$ 越小（越接近 0），对应特征向量的坐标就越平滑 $\mathbf{u}_{i}$。

#### 3.3. 谱图解码器

我们发现，仅依靠全连接层将网格上采样至目标分辨率是不够的，因为这一过程会导致网格出现不稳定和失真现象，即便加入了网格正则化损失项 [^27] 也是如此（见图 4）。因此，我们提出将用于上采样的全连接层与谱滤波相结合，因为网格可被视作图信号 $\mathbf{f}_c = (f_1, \cdots, f_{V'} \in \mathbb{R}^{V' \times F}$，即对于批量大小为 1 的情况，有 $V'$ 个顶点，每个顶点带有 F 维特征。

谱滤波。由于谱图卷积可通过变换后的傅里叶空间中的逐点乘积来定义，因此经 $f_c$ 滤波后的图信号 $g_\theta$ 可表示为 $\mathbf{U}g_\theta(\boldsymbol{\Lambda})\mathbf{U}^T f_c$，其中 $g_\theta(\boldsymbol{\Lambda})$ 是包含傅里叶系数的对角矩阵。为确保谱滤波器能对应图上有意义的卷积操作，

---

![Image](images/932254147f380baa5edc6c66dedc43bde09fb223a15cb9d71c9e3cc933b09995.jpg)

<div style="text-align: center;">Figure 3: Illustration of mesh segmentation via spectral clustering. Here, we have chosen K = 7 clusters and each has its own color for a single right-handed template mesh. As shown, there are no rigid boundaries across the mesh. To prepare inputs  $\mathbf{f}_t$ to transformer, we decrease the size of this mesh (similarly for left hand) uniformly by a factor of 10 through subsampling, i.e.  $V' = V/10$ and concatenate with the corresponding region-specific features  $\mathbf{f}_r$.</div>

自然的解决方案是基于拉普拉斯矩阵的特征值来参数化滤波器。此处我们采用了 $g_{\theta}(\mathbf{L})$ 的切比雪夫多项式参数化方法以实现快速计算，更多细节请参阅 [^12]。

架构。与[^9] [^22]类似，我们的解码器基于分层架构，通过全连接层和图卷积层进行上采样来恢复网格。我们遵循[^12] [^22]的方法，使用[^14]预先计算粗网格，并采用拉普拉斯算子中的三阶多项式。给定粗网格表示$\mathbf{f}_c \in \mathbb{R}^{V' \times F}$，其核心思想是在$V'$上进行上采样后平滑处理F维数值。需要注意的是，这种方法与[^9] [^22]中的方法存在根本差异：后者在$V'$和F维度上均采用分层架构，而我们仅应用谱滤波并保持$F = 3$不变，这样在保持性能的同时大幅减少了模型规模（见表1）。

讨论。回想一下第3.2节中，我们利用拉普拉斯特征向量的特性来进行谱聚类。从信号处理的角度来看，拉普拉斯特征向量定义了在图上平滑变化的信号，其中最平滑的信号反映了网格的粗略社群结构。

#### 3.4. 训练

遵循[^40] [^41]的方法，我们的模型可以通过端到端训练，利用3D网格顶点上的L1损失以及基于预测相机参数的2D投影来优化图像与网格的对齐效果。此外，我们还应用边缘长度正则化$\mathcal{L}_{edge}$ [^27]，以确保网格的平滑性：

 $$ \mathcal{L}_{e d g e}(\mathbf{m})=\frac{1}{|\mathcal{E}_{L}|}\sum_{l\in\mathcal{E}_{L}}|l^{2}-\mu(\mathcal{E}_{L}^{2})|, $$

其中$\mathcal{E}_L$表示边缘长度的集合，定义为所有边的L2范数，而$\mu(\mathcal{E}_L^2)$则是边缘长度平方的平均值。

### 3.5. 推理时的网格细化

在文献中，生成逼真网格重建主要有两种方法：基于学习的方法和基于优化的方法。基于学习的方法[^27] [^46]通过引入各种排斥损失来惩罚训练过程中的穿透现象。但由于需要进行特定于网格的预处理，它们对其他网格的泛化能力有限。特别是，它们需要手动选择感兴趣的区域（如指尖和手掌），但这无法防止其他形式的自穿透，比如手指之间的穿透。更重要的是，测试时出现的相互穿透现象表明该模型无法隐式地学习物理规则[^27] [^60]。另一方面，最近的基于优化的方法[^23] [^61]利用接触图在推理阶段细化网格。不过，它们严重依赖准确的接触图估计，且由于接触优化是局部性的，因此对初始化的敏感性较高。

所提出的方法。为避免穿透现象，我们将排斥损失从[^27]扩展为一种基于优化的策略，该策略无需任何形式的预计算，且能更普遍地应用于其他网格。为了识别导致碰撞的手部顶点，我们遵循[^27]和[^44]的方法，从每个顶点发射射线并统计与表面的交点数量。若数量为奇数，则表明存在穿透现象。在获得碰撞掩码$\mathcal{M}_C$后，我们计算源网格m中距离碰撞点集最近的点。若该点及其最近对应点的法线不同，我们就将其距离作为损失值。我们通过尽可能保持刚性的（ARAP）$\mathcal{L}_{collision}$正则化来最小化这一碰撞损失[^57]，以优化网格形状：

 $$ \mathcal{L}_{c o l l i s i o n}(\mathbf{m},\mathcal{M}_{C})=\sum_{v\in\mathcal{V}}\mathcal{M}_{C}\cdot d(v,\mathcal{V}), $$

其中$\mathcal{M}_C = \mathbb{1}_{v \in \text{Int}(\mathcal{V})}$表示哪些顶点属于网格内部，而$d(v, \mathcal{V}) = \min_{v' \in \mathcal{V}} \|v - v'\|_2$则表示点$v'$到集合$\mathcal{V}$的距离。我们在图5和图9中展示了该方法能够消除自穿透现象。

### 4. 实验

实现细节。我们在TensorFlow中实现了该方法。训练时，我们使用Adam优化器[^34]同时训练网络的所有部分；在合成数据集上训练时的学习率为$10^{-4}$，在真实数据集上微调时的学习率为$10^{-5}$。我们的CNN骨干网络采用了在ImageNet[^28]上预训练的ResNet[^55]。为了计算区域特定特征$f_r$，我们设定K=7且C=256。

---

![Image](images/a25df2e76c670901dcc60791ef8dd8d31a944d4a05abca3a90abc18bd45345b4.jpg)

<div style="text-align: center;">Figure 4: Qualitative comparison with METRO [^40]. We show that relying on fully-connected layers to upsample meshes is inadequate for high-resolution mesh reconstruction. In contrast, our spectral graph decoder can accurately capture intricate surface features like nails.</div>

![Image](images/1320f341a207f2c184e0f32f2bb20338238e215fa4b374b05c00b1f98e5f53ad.jpg)

<div style="text-align: center;">Figure 5: Qualitative example of mesh refinement at inference. More examples are available in Fig. 9.</div>

合成数据集的创建。为了训练我们的算法流程，需要一个包含具有挑战性的手部交互运动的大规模多视角第一人称视角数据集。然而，现有数据集要么无法适用于第一人称视角，要么在背景和光照条件方面缺乏多样性，而这些对于AR/VR应用而言至关重要。此外，[^47]中的真实网格存在5毫米的拟合误差，这种误差足以导致手部追踪不准确，或在与虚拟物体交互时出现错位现象。因此，它不适合用来验证我们的方法。为此，我们创建了一个全新的大规模合成第一人称视角数据集，其中包含两个高精度的3D手部模型。具体来说，我们购买了左右手的商用3D手部模型，每个模型分别包含4023个顶点和4008个四边形面。将每个四边形拆分为两个三角形后，便可得到8016个三角面。手部的尺寸和纹理可以灵活调整，还能根据3D关节位置进行绑定。

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

<div style="text-align: center;">Figure 6: Qualitative examples of our synthetic dataset. The scenes are rendered with large variations in lighting, texture and background.</div>

这些模型的大小和纹理可以灵活调整，还能根据3D关节位置进行绑定。我们采用了逼真的纹理以及利用高动态范围（HDR）图像模拟的自然光照效果。为了生成逼真的手部运动，我们先生成100种姿势，然后在1000帧序列中随机对这些姿势对进行插值处理，即每10帧切换一次姿势对。接着，我们使用Cycles渲染器将手部图像渲染到480张4K分辨率的背景图上[^50]。我们的合成数据集包含100万个数据点，每个数据点都包含两只手的三维标注信息，并且是从两个第一人称视角渲染而成，用以模拟定制的头戴式摄像头场景。我们将整个数据集分为4组，随机选取25%的数据用于测试，并在图6中提供了额外的图像示例。

真实数据集采集。我们的手部真实数据来自配备18个同步Z-Cam的多视角立体成像系统。我们构建了一个基于NeRF的[^4] [^49]重建流程，该流程能够同时重建并分离前景与背景；随后，网格化模块会从中提取手部网格作为真实基准网格。接着，我们采用一种网格与四面体配准方法[^56]，将模板手部模型[^65]进行配准，从而为每次重建得到配准良好的网格。

基线。我们与最先进的基于 transformer 的架构 METRO [^40] 进行比较，该架构是专门为人体网格重建而设计的。我们遵循其官方实现，并使用 3 个 transformer 编码器层。我们尝试纳入其他强基线进行比较。然而，鉴于我们在重建高分辨率双手网格方面具有挑战性的多视图设置，现有方法受到限制，要么 1) 依赖中间 3D 姿态监督 [^9] [^45]，要么 2) 直接回归低分辨率参数化手部模型 [^2] [^5] [^27] [^60] [^68]。此外，METRO [^40] 的直接扩展 Mesh Graphormer [^41] 无法扩展到多视图设置，因为他们对体积特征进行了标记化，这使每个 transformer 层的计算复杂度呈二次方增长 [^8]。因此，考虑到性能提升较小，我们选择 METRO [^40] 作为强基线并进行深入研究。我们在补充材料中提供有关基线的更多细节。

---

<div style="text-align: center;">Table 1: Error rates on our synthetic dataset. Parametric baseline is trained and tested on right hand only. Our proposed method achieves strong performance with less than half the METRO model size.</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;'>Hand error</td><td style='text-align: center; word-wrap: break-word;'># Params</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Parametric baseline</td><td style='text-align: center; word-wrap: break-word;'>24.5</td><td style='text-align: center; word-wrap: break-word;'>40.9M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40]</td><td style='text-align: center; word-wrap: break-word;'>7.09</td><td style='text-align: center; word-wrap: break-word;'>116.1M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (w/o graph decoder)</td><td style='text-align: center; word-wrap: break-word;'>3.72</td><td style='text-align: center; word-wrap: break-word;'>75.2M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>1.38</td><td style='text-align: center; word-wrap: break-word;'>58.3M</td></tr></table>

<div style="text-align: center;">Table 2: Error rates (in mm) on FreiHAND.</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;'>METRO [^40]</td><td style='text-align: center; word-wrap: break-word;'>Graphormer [^41]</td><td style='text-align: center; word-wrap: break-word;'>Ours</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PA-MPVPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>6.7</td><td style='text-align: center; word-wrap: break-word;'>5.9</td><td style='text-align: center; word-wrap: break-word;'>5.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>6.8</td><td style='text-align: center; word-wrap: break-word;'>6.0</td><td style='text-align: center; word-wrap: break-word;'>5.6</td></tr></table>

评估指标。我们采用平均顶点误差（MPVE，单位：毫米）来评估手部重建误差。MPVE衡量的是真实顶点与预测顶点之间的平均欧几里得距离。

定量对比。我们在合成数据集上对双手重建任务进行了定量对比。如前所述，由于大多数现有方法都专注于单视角场景，因此与其他方法进行比较并不容易。我们将METRO [^40]扩展到多视角场景，具体做法是对图像特征进行最大池化处理，再将其与顶点查询结果拼接起来。为了公平比较，我们对多层Transformer编码器采用了相同的超参数设置，相关结果见表1。在本实验中，我们将模板手部网格的采样率降低了10倍。为了进一步说明我们合成数据集的难度，我们还针对参数化基线模型进行了实验。我们构建的参数化手部模型使用了来自25%训练数据的200维PCA（主成分分析）子空间。表1中所有模型均以ResNet-50作为骨干网络，参数化基线模型则配备了一个MLP头，用于预测恢复手部网格所需的输入参数。我们的方法在模型尺寸不到METRO一半的情况下，性能却显著优于这两种基线模型。结果表明，我们的软注意力特征融合策略结合基于谱聚类的网格分割技术，能够有效将特征通道数从2048缩减至256，且不会造成性能下降。此外，参数化基线模型的性能与现有的单手基准测试结果一致。最后，我们在表2中报告了在单视角基准数据集FreiHAND [^68]上的测试结果。

消融研究。为了阐明我们的设计选择依据，我们针对禁用不同组件的情况对本方法进行了定量评估。结果证实，我们所提出的各项技术组件均发挥了重要作用。

<div style="text-align: center;">Table 3: Performance of different multi-view fusion strategies. We report hand error for both settings. K refers to the number of clusters for template hand mesh. Note that we do not include spectral filtering in the graph decoder here.</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;'>Single-view</td><td style='text-align: center; word-wrap: break-word;'>Multi-view</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40]</td><td style='text-align: center; word-wrap: break-word;'>10.87</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40] + avg. pool</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>8.71</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40] + max pool</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>7.09</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours $K = 1$</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>6.59</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours $K = 4$</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>4.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours $K = 7$</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>3.72</td></tr></table>

<div style="text-align: center;">Table 4: Ablations on multi-view feature fusion. We report hand error on 3 experimental settings ((a)-(c)) with different feature fusion strategies. We keep the same transformer and spectral graph decoder for all fusion strategies.</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;'>(a)</td><td style='text-align: center; word-wrap: break-word;'>(b)</td><td style='text-align: center; word-wrap: break-word;'>(c)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Direct concatenation</td><td style='text-align: center; word-wrap: break-word;'>11.3</td><td style='text-align: center; word-wrap: break-word;'>13.9</td><td style='text-align: center; word-wrap: break-word;'>14.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Max pool</td><td style='text-align: center; word-wrap: break-word;'>9.3</td><td style='text-align: center; word-wrap: break-word;'>11.2</td><td style='text-align: center; word-wrap: break-word;'>12.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Soft-attention + max pool</td><td style='text-align: center; word-wrap: break-word;'>6.7</td><td style='text-align: center; word-wrap: break-word;'>7.2</td><td style='text-align: center; word-wrap: break-word;'>7.4</td></tr></table>

<div style="text-align: center;">Table 5: Ablations of different spectral filters.</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;'>$g_{gau}$</td><td style='text-align: center; word-wrap: break-word;'>$g_{lap}$</td><td style='text-align: center; word-wrap: break-word;'>$g_{cheb_{3}}$</td><td style='text-align: center; word-wrap: break-word;'>$g_{cheb_{4}}$</td><td style='text-align: center; word-wrap: break-word;'>$g_{cheb_{5}}$</td><td style='text-align: center; word-wrap: break-word;'>$g_{cheb_{6}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hand error</td><td style='text-align: center; word-wrap: break-word;'>1.56</td><td style='text-align: center; word-wrap: break-word;'>1.45</td><td style='text-align: center; word-wrap: break-word;'>1.38</td><td style='text-align: center; word-wrap: break-word;'>1.47</td><td style='text-align: center; word-wrap: break-word;'>1.38</td><td style='text-align: center; word-wrap: break-word;'>1.39</td></tr></table>

多视角特征融合的效果。表3展示了不同光谱聚类数K下的实验结果（完整结果见补充材料）。软注意力融合与网格分割的结合能够稳定提升性能。由于我们的合成数据集仅包含两个视角，我们进一步在真实数据集所采集的更具挑战性的视角上验证了多视角融合策略。表4的结果还表明，当在未见过的相机视角上测试时，我们的方法并不会对相机设置产生过拟合现象。在这些实验中，我们将18个相机视角分为两组：第一组包含前15个相机视角，第二组包含最后3个用于评估的未见相机视角。需注意，评估组中包含了唯一的以自我为中心的视角。我们在表4中考察了三种不同的实验设置，即训练数据中包含的相机视角数量分别为：(a) 15个视角、(b) 6个视角以及(c) 3个视角。

光谱滤波器的效果。我们在表5中测试了三种常用的光谱滤波器：高斯滤波器$g_{gau}$、拉普拉斯滤波器$g_{lap}$以及切比雪夫滤波器$g_{cheb}$，并分别调整多项式的阶数。实现细节与额外的定性示例可在补充材料中查看。出于效率考虑，我们选择了$g_{cheb}$，且并未发现提高多项式阶数能进一步改善性能。

---

![Image](images/ea86dba931ce20ab113cea6e687748d1de5d5d0b951c898906f33266a3ef2173.jpg)

<div style="text-align: center;">Figure 7: Qualitative examples on our synthetic dataset. Our model shows robustness to various extreme self-occlusions (left), lighting conditions (middle) and scenes (right). Fine mesh reconstruction details are well-preserved in all scenarios.</div>

<div style="text-align: center;">Table 6: Ablations of different backbones and hyperparameters. We denote  $P_{cnn}$ and  $P_{total}$ to be the number of parameters for CNN backbone and total model, respectively.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Backbone</td><td style='text-align: center; word-wrap: break-word;'>$P_{cnn}$</td><td style='text-align: center; word-wrap: break-word;'>$V&#x27;$</td><td style='text-align: center; word-wrap: break-word;'>C</td><td style='text-align: center; word-wrap: break-word;'>Error</td><td style='text-align: center; word-wrap: break-word;'>$P_{total}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ResNet-50</td><td style='text-align: center; word-wrap: break-word;'>23.5M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>1.38</td><td style='text-align: center; word-wrap: break-word;'>58.3M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>160</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>4.12</td><td style='text-align: center; word-wrap: break-word;'>42.8M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>160</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>4.96</td><td style='text-align: center; word-wrap: break-word;'>37.8M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>80</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>6.89</td><td style='text-align: center; word-wrap: break-word;'>34.2M</td></tr></table>

![Image](images/77c8d5d5adaab19a242554fb3acd7c585c162d0e65f21cfaf25460e52e705f9e.jpg)

<div style="text-align: center;">Figure 8: Training examples of our real dataset (top) and 3D hand mesh estimation results on in-the-wild image (bottom). The resulting mesh contains 3745 vertices.</div>

从合成数据到真实数据的迁移。在缺乏合适的真实数据集时，大规模合成数据集可用于模型预训练。接下来，我们将展示将基于合成数据训练的预训练模型应用于通用真实图像的使用案例。首先，我们在真实数据集的一个子集上训练，并冻结预训练模型中除CNN骨干网络外的所有部分。由于真实数据集对应的注册网格具有不同的网格拓扑结构，我们在训练前会移除原始模板网格中的粉色聚类区域（如图3所示）。这种方法与基于MANO的3D手部网格估计方法类似[^2] [^5]，且已在[^46]中得到验证。图8显示我们的模型能够很好地泛化到自然场景图像中。

模型压缩。我们旨在找到在保持表1中METRO基线性能的前提下，模型可被压缩的最小尺寸。首先，我们对Transformer编码器中的自注意力层进行了计算复杂度分析。计算自注意力有两个关键步骤：1）从$V'$个顶点查询出发，线性投影到C维的查询、键和值矩阵需要消耗$O(V'C^2)$的计算量；而用于生成层输出的softmax操作则需要额外的$O(V''C)$计算量。因此，无论$V'$还是C哪个占主导地位，每个Transformer层的总计算复杂度均为二次方级别。需注意的是，由于我们将模板手部网格均匀下采样10倍以获得$V' = 804$，且此前章节中C被经验性地设定为256，因此$V'$对整体复杂度的贡献更大。在后续实验中，我们在使用EfficientNet变体$V'$的同时，逐步减小[^58]的值直至其小于C。主要结果展示在表6中，完整结果则见于补充材料。

## 5. 结论

在本文中，我们提出了一种新颖的基于谱图的Transformer框架，该框架能够从以自我为中心的视角重建高保真度的双手网格模型。本研究的核心思想是证明谱图理论中图拉普拉斯算子的基本特性可以应用于Transformer。我们发现，当多视图特征融合策略与基于谱聚类的网格分割相结合时效果最佳。我们还提出了谱滤波和基于优化的细化方法，以重建更符合物理规律的网格模型。我们的框架具有通用性，可扩展至其他多视图重建任务。

## 致谢

本研究得到了韩国科学和信息通信技术部（MSIT）在ITRC（信息技术研究中心）支持计划（IITP-2023-2020-0-01789）下的资助，该项目由信息通信技术规划评估院（IITP）监督。

---

输入缩放视图

输出缩放视图

![Image](images/c55fab0a0df8280a14370dcce3a75f8a4a3d7a235a5f3b7f8a8d8d31741b56c6.jpg)

<div style="text-align: center;">Figure 9: Additional qualitative examples of mesh refinement at inference. Our optimisation-based strategy shows robustness to various hand poses. We present failure cases when self-penetration is highly complex in the supplementary materials.</div>

---

## 参考文献

[^1]: Matan Atzmon and Yaron Lipman. SAL: Sign agnostic learning of shapes from raw data. In CVPR, 2020. 2

[^2]: Seungryul Baek, Kwang In Kim, and Tae-Kyun Kim. Pushing the envelope for RGB-based dense 3D hand pose estimation via neural rendering. In CVPR, 2019. 2, 6, 8

[^3]: Luca Ballan, Aparna Taneja, Jürgen Gall, Luc Van Gool, and Marc Pollefeys. Motion capture of hands in action using discriminative salient points. In ECCV, 2012. 2

[^4]: Jonathan T Barron, Ben Mildenhall, Dor Verbin, Pratul P Srinivasan, and Peter Hedman. Mip-NeRF 360: Unbounded anti-aliased neural radiance fields. In CVPR, 2022. 6

[^5]: Adnane Boukhayma, Rodrigo de Bem, and Philip HS Torr. 3D hand shape and pose from images in the wild. In CVPR, 2019. 2, 6, 8

[^6]: Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to-end object detection with transformers. In ECCV, 2020. 3

[^7]: Zhiqin Chen and Hao Zhang. Learning implicit fields for generative shape modeling. In CVPR, 2019. 2

[^8]: Junhyeong Cho, Kim Youwang, and Tae-Hyun Oh. Cross-attention of disentangled modalities for 3D human mesh recovery with transformers. In ECCV, 2022. 2, 3, 6

[^9]: Hongsuk Choi, Gyeongsik Moon, and Kyoung Mu Lee. Pose2Mesh: Graph convolutional network for 3D human pose and mesh recovery from a 2D human pose. In ECCV, 2020. 5,6

[^10]: Fan RK Chung. Spectral graph theory. American Mathematical Soc., 1997. 2, 4

[^11]: Enric Corona, Tomas Hodan, Minh Vo, Francesc Moreno-Noguer, Chris Sweeney, Richard Newcombe, and Lingni Ma. LISA: Learning implicit shape and appearance of hands. In CVPR, 2022. 2

[^12]: Michaël Defferrard, Xavier Bresson, and Pierre Vandergheynst. Convolutional neural networks on graphs with fast localized spectral filtering. In NeurIPS, 2016. 5

[^13]: Boyang Deng, John P Lewis, Timothy Jeruzalski, Gerard Pons-Moll, Geoffrey Hinton, Mohammad Norouzi, and Andrea Tagliasacchi. NASA neural articulated shape approximation. In ECCV, 2020. 2

[^14]: Inderjit S Dhillon, Yuqiang Guan, and Brian Kulis. Weighted graph cuts without eigenvectors a multilevel approach. TPAMI, 2007. 5

[^15]: Bardia Doosti, Shujon Naha, Majid Mirbagheri, and David J Crandall. HOPE-Net: A graph-based model for hand-object pose estimation. In CVPR, 2020. 1

[^16]: Vijay Prakash Dwivedi and Xavier Bresson. A generalization of transformer networks to graphs. AAAI Workshop on Deep Learning on Graphs: Methods and Applications, 2021. 4

[^17]: Vijay Prakash Dwivedi, Chaitanya K Joshi, Thomas Laurent, Yoshua Bengio, and Xavier Bresson. Benchmarking graph neural networks. JMLR, 2022. 4

[^18]: Zicong Fan, Adrian Spurr, Muhammed Kocabas, Siyu Tang, Michael J Black, and Otmar Hilliges. Learning to disambiguate strongly interacting hands via probabilistic per-pixel part segmentation. In 3DV, 2021. 1

[^19]: Runyang Feng, Yixing Gao, Xueqing Ma, Tze Ho Elden Tse, and Hyung Jin Chang. Mutual information-based temporal difference learning for human pose estimation in video. In CVPR, 2023. 1

[^20]: Runyang Feng, Yixing Gao, Tze Ho Elden Tse, Xueqing Ma, and Hyung Jin Chang. DiffPose: SpatioTemporal diffusion model for video-based human pose estimation. arXiv preprint arXiv:2307.16687, 2023. 1

[^21]: Guillermo Garcia-Hernando, Shanxin Yuan, Seungryul Baek, and Tae-Kyun Kim. First-person hand action benchmark with RGB-D videos and 3D hand pose annotations. In CVPR, 2018. 2, 3, 13, 14

[^22]: Liuhao Ge, Zhou Ren, Yuncheng Li, Zehao Xue, Yingying Wang, Jianfei Cai, and Junsong Yuan. 3D hand shape and pose estimation from a single RGB image. In CVPR, 2019. 1, 2, 5

[^23]: Patrick Grady, Chengcheng Tang, Christopher D Twigg, Minh Vo, Samarth Brahmbhatt, and Charles C Kemp. ContactOpt: Optimizing contact to improve grasps. In CVPR, 2021. 5

[^24]: Shreyas Hampali, Sayan Deb Sarkar, Mahdi Rad, and Vincent Lepetit. Keypoint Transformer: Solving joint identification in challenging hands and object interactions for accurate 3d pose estimation. In CVPR, 2022. 1, 3, 14

[^25]: Shangchen Han, Beibei Liu, Randi Cabezas, Christopher D Twigg, Peizhao Zhang, Jeff Petkau, Tsz-Ho Yu, Chun-Jung Tai, Muzaffer Akbay, Zheng Wang, et al. MEgATrack: Monochrome egocentric articulated hand-tracking for virtual reality. ACM Transactions on Graphics (ToG), 2020. 1, 2

[^26]: Shangchen Han, Po-chen Wu, Yubo Zhang, Beibei Liu, Linguang Zhang, Zheng Wang, Weiguang Si, Peizhao Zhang, Yujun Cai, Tomas Hodan, et al. UmeTrack: Unified multiview end-to-end hand tracking for vr. In SIGGRAPH, 2022. 1,2

[^27]: Yana Hasson, Gul Varol, Dimitrios Tzionas, Igor Kalevatykh, Michael J Black, Ivan Laptev, and Cordelia Schmid. Learning joint reconstruction of hands and manipulated objects. In CVPR, 2019. 1, 2, 4, 5, 6, 13

[^28]: Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In CVPR, 2016. 3, 5, 13

[^29]: Yihui He, Rui Yan, Katerina Fragkiadaki, and Shoou-I Yu. Epipolar transformers. In CVPR, 2020. 2

[^30]: Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015. 4

[^31]: Korrawe Karunratanakul, Adrian Spurr, Zicong Fan, Otmar Hilliges, and Siyu Tang. A skeleton-driven neural occupancy representation for articulated hands. In 3DV, 2021. 2

[^32]: Salman Khan, Muzammal Naseer, Munawar Hayat, Syed Waqas Zamir, Fahad Shahbaz Khan, and Mubarak Shah. Transformers in vision: A survey. ACM computing surveys (CSUR), 2022. 3

[^33]: Dong Uk Kim, Kwang In Kim, and Seungryul Baek. End-to-end detection and pose estimation of two interacting hands. In ICCV, 2021. 1, 3

### [^34]: Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015. 5

---

[^35]: Devin Kreuzer, Dominique Beaini, Will Hamilton, Vincent Létourneau, and Prudencio Tossou. Rethinking graph transformers with spectral attention. NeurIPS, 2021. 4

[^36]: Dominik Kulon, Riza Alp Guler, Iasonas Kokkinos, Michael M Bronstein, and Stefanos Zafeiriou. Weakly-supervised mesh-convolutional hand reconstruction in the wild. In CVPR, 2020. 2

[^37]: Taein Kwon, Bugra Tekin, Jan Stühmer, Federica Bogo, and Marc Pollefeys. H2O: Two hands manipulating objects for first person interaction recognition. In ICCV, 2021. 3, 13, 14

[^38]: Mengcheng Li, Liang An, Hongwen Zhang, Lianpeng Wu, Feng Chen, Tao Yu, and Yebin Liu. Interacting attention graph for single image two-hand reconstruction. In CVPR, 2022. 3

[^39]: Fanqing Lin, Connor Wilhelm, and Tony Martinez. Two-hand global 3D pose estimation using monocular RGB. In WACV, 2021. 14

[^40]: Kevin Lin, Lijuan Wang, and Zicheng Liu. End-to-end human pose and mesh reconstruction with transformers. In CVPR, 2021. 2, 3, 4, 5, 6, 7, 13, 14, 16

[^41]: Kevin Lin, Lijuan Wang, and Zicheng Liu. Mesh graphormer. In ICCV, 2021. 2, 3, 5, 6, 7

[^42]: Rong Liu and Hao Zhang. Segmentation of 3D meshes through spectral clustering. In Pacific Graphics, 2004. 4

[^43]: Lars Mescheder, Michael Oechsle, Michael Niemeyer, Sebastian Nowozin, and Andreas Geiger. Occupancy networks: Learning 3D reconstruction in function space. In CVPR, 2019. 2

[^44]: Tomas Möller and Ben Trumbore. Fast, minimum storage ray-triangle intersection. Journal of graphics tools, 1997. 5

[^45]: Gyeongsik Moon and Kyoung Mu Lee. I2L-MeshNet: Image-to-pixel prediction network for accurate 3D human pose and mesh estimation from a single RGB image. In ECCV, 2020. 6

[^46]: Gyeongsik Moon, Takaaki Shiratori, and Kyoung Mu Lee. DeepHandMesh: A weakly-supervised deep encoder-decoder framework for high-fidelity hand mesh modeling. In ECCV, 2020. 2, 5, 8

[^47]: Gyeongsik Moon, Shoou-I Yu, He Wen, Takaaki Shiratori, and Kyoung Mu Lee. InterHand2.6M: A dataset and baseline for 3D interacting hand pose estimation from a single RGB image. In ECCV, 2020. 1, 2, 3, 6, 14

[^48]: Franziska Mueller, Micah Davis, Florian Bernard, Oleksandr Sotnychenko, Mickelai Verschoor, Miguel A Otaduy, Dan Casas, and Christian Theobalt. Real-time pose and shape reconstruction of two interacting hands with a single depth camera. In SIGGRAPH, 2019. 1, 2

[^49]: Thomas Müller, Alex Evans, Christoph Schied, and Alexander Keller. Instant neural graphics primitives with a multiresolution hash encoding. ACM Transactions on Graphics (ToG), 2022. 6

[^50]: Blender project. Cycles. <https://www.cycles-renderer.org/>. 6

[^51]: Haibo Qiu, Chunyu Wang, Jingdong Wang, Naiyan Wang, and Wenjun Zeng. Cross view fusion for 3D human pose estimation. In ICCV, 2019. 2

[^52]: Edoardo Remelli, Shangchen Han, Sina Honari, Pascal Fua, and Robert Wang. Lightweight multi-view 3D pose estimation through camera-disentangled representation. In CVPR, 2020. 2

[^53]: Javier Romero, Dimitrios Tzionas, and Michael J Black. Embodied hands: Modeling and capturing hands and bodies together. ACM Transactions on Graphics (ToG), 36(6):245, 2017. 2

[^54]: Yu Rong, Jingbo Wang, Ziwei Liu, and Chen Change Loy. Monocular 3D reconstruction of interacting hands via collision-aware factorized refinements. In 3DV, 2021. 3

[^55]: Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, et al. ImageNet large scale visual recognition challenge. IJCV, 2015. 5

[^57]: Olga Sorkine and Marc Alexa. As-rigid-as-possible surface modeling. In Symposium on Geometry processing, 2007. 5

[^56]: Breannan Smith, Chenglei Wu, He Wen, Patrick Peluse, Yaser Sheikh, Jessica K Hodgins, and Takaaki Shiratori. Constraining dense hand surface tracking with elasticity. ACM Transactions on Graphics (ToG), 2020. 6

[^58]: Mingxing Tan and Quoc Le. EfficientNet: Rethinking model scaling for convolutional neural networks. In ICML, 2019. 8

[^59]: Tze Ho Elden Tse, Daniele De Martini, and Letizia Marchegiani. No need to scream: Robust sound-based speaker localisation in challenging scenarios. In ICSR 2019, 2019. 1

[^60]: Tze Ho Elden Tse, Kwang In Kim, Aleš Leonardis, and Hyung Jin Chang. Collaborative learning for hand and object reconstruction with attention-guided graph convolution. In CVPR, 2022. 1, 5, 6, 13

[^61]: Tze Ho Elden Tse, Zhongqun Zhang, Kwang In Kim, Aleš Leonardis, Feng Zheng, and Hyung Jin Chang. S $^{2}$Contact: Graph-based network for 3D hand-object contact estimation with semi-supervised learning. In ECCV, 2022. 1, 5, 13

[^62]: Dimitrios Tzionas, Luca Ballan, Abhilash Srikantha, Pablo Aponte, Marc Pollefeys, and Juergen Gall. Capturing hands in action using discriminative salient points and physics simulation. IJCV, 2016. 2

[^63]: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NeurIPS, 2017. 4

[^64]: Jiayi Wang, Franziska Mueller, Florian Bernard, Suzanne Sorli, Oleksandr Sotnychenko, Neng Qian, Miguel A Otaduy, Dan Casas, and Christian Theobalt. RGB2Hands: real-time tracking of 3D hand interactions from monocular гб video. In SIGGRAPH, 2020. 1, 2

[^65]: Hongyi Xu, Eduard Gabriel Bazavan, Andrei Zanfir, William T Freeman, Rahul Sukthankar, and Cristian Sminchisescu. Ghum & ghuml: Generative 3D human shape and articulated pose models. In CVPR, 2020. 6

[^66]: Baowen Zhang, V. Xiaoming Deng, Yinda Zhang, Pin-ran Wang. Interacting from single

#### [^67]: Linfang Zheng, Aleš Leonardis, Tze Ho Elden Tse, Nora Horanyi, Hua Chen, Wei Zhang, and Hyung Jin Chang. TP

---

AE：基于自编码器的时序引导6D物体姿态跟踪。发表于2022年ICRA会议。1

##### [^68]: Christian Zimmermann, Duygu Ceylan, Jimei Yang, Bryan Russell, Max Argus, and Thomas Brox. FreiHAND: A dataset for markerless capture of hand pose and shape from single RGB images. In ICCV, 2019. 3, 6, 7, 14

---

##### Spectral Graphormer：基于谱图的Transformer，用于利用多视图彩色图像进行以自我为中心的双手重建

补充材料

在本补充文档中，我们提供了以下内容：

- 现有RGB手部姿态估计基准测试的总结（章节A）；

- 网络和谱滤波器的实现细节（章节B）：

• 额外的结果与分析（章节C）；

• 我们方法的局限性（章节D）；

• 额外的定性示例（章节E）。

#### A. 现有数据集概述

表7总结了现有的手部姿态估计数据集。由于现有的以自我为中心的数据集要么配备了可见标记[^21]，要么背景变化有限[^37]，因此我们的合成数据集和真实数据集均包含标注密集的带前臂双手模型。

##### B. 实现细节

在本节中，我们将详细介绍B.1节中的网络架构，并在B.2节中说明谱滤波器的实现细节。

##### B.1. 网络架构

我们提出的方法。表8中给出了我们网络架构的完整细节。我们以ResNet-50[^28]作为网络的骨干。网络模型的输入为N张多视图$224 \times 224 \times 3$ RGB图像，输出为每只手包含4023个顶点的双手网格模型。

METRO基线。我们将单视图设置下的METRO[^40]扩展到多视图场景，表9中详细说明了其网络架构。每个Transformer编码器块包含4层，有3个注意力头。除了特征维度的大小外，我们提出的方法和该基线中Transformer编码器的超参数保持一致。

参数化基线。表10中详细说明了我们参数化基线的网络架构。网络的输出会被传入预先计算好的参数化手部模型，从而生成包含4023个顶点的手部网格。

##### B.2. 谱滤波器的实现细节

我们通过将定制滤波器应用于图信号的光谱表示来进行光谱滤波。光谱表示依赖于邻接矩阵和图的特征向量。通过对光谱系数应用滤波函数来实现光谱滤波。下文我们将详细介绍高斯滤波器和拉普拉斯滤波器。

给定特征值$\lambda$，高斯滤波函数$f_{gau}$可描述为：

 $$ \begin{array}{r}{f_{g a u}(\lambda)=e^{\frac{-\lambda^{2}}{2\sigma^{2}}},}\end{array} $$

其中$\sigma$是高斯分布的标准差。我们在实验中设定$\sigma = 0.5$。类似地，拉普拉斯滤波函数$f_{lap}$可描述为：

 $$ f_{l a p}(\lambda)=\lambda^{-\frac{1}{2}}. $$

由于特征值可能为零或负值，计算平方根的倒数可能会产生$\mathrm{NaN}$（非数值）结果。因此，我们设置一个趋近于零的容差值来避免这种情况。

##### C. 补充分析

##### C.1. 不同损失项的影响

在表11中，我们分析了不同损失项的影响。在这些实验中，我们考虑了针对3D网格顶点的L1损失以及2D重投影损失，即分别为$\mathcal{L}_{mesh}$和$\mathcal{L}_{2D}$。此外，我们还对手部网格尝试了均方欧几里得距离损失$\mathcal{L}_{MSE}$。对于网格正则化，我们采用边长正则化$\mathcal{L}_{edge}$并最小化倒角距离$\mathcal{L}_{cham}$。我们发现，$\mathcal{L}_{mesh}$、$\mathcal{L}_{2D}$和$\mathcal{L}_{edge}$的组合能取得最优结果。

##### C.2. 推理阶段网格细化的分析

为了进行定量评估，我们遵循[^27]、[^60]、[^61]的方法，纳入了穿透深度（毫米）和相交体积（$cm^{3}$）这两个指标。穿透深度指的是手部网格顶点与另一只手/自身手部表面发生碰撞时的最大距离。相交体积是通过将网格体素化得到的，体素大小为0.5厘米。我们在表12中报告了相关结果。这些结果证明了我们基于优化的网格细化策略的鲁棒性。

---

<div style="text-align: center;">Table 7: A comparison of existing RGB hand pose estimation benchmarks.</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;'># Frames</td><td style='text-align: center; word-wrap: break-word;'>Two-hand</td><td style='text-align: center; word-wrap: break-word;'>Egocentric</td><td style='text-align: center; word-wrap: break-word;'>Markerless</td><td style='text-align: center; word-wrap: break-word;'>Background variation</td><td style='text-align: center; word-wrap: break-word;'>Dense annotation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FPHA [^21]</td><td style='text-align: center; word-wrap: break-word;'>105k</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND [^68]</td><td style='text-align: center; word-wrap: break-word;'>37k</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>InterHand2.6M [^47]</td><td style='text-align: center; word-wrap: break-word;'>2.6M</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>H2O [^37]</td><td style='text-align: center; word-wrap: break-word;'>571k</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$H_{{2}}O$-3D [^24]</td><td style='text-align: center; word-wrap: break-word;'>76k</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ego3DHands [^39]</td><td style='text-align: center; word-wrap: break-word;'>55k</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;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✗</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (synthetic)</td><td style='text-align: center; word-wrap: break-word;'>1M</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;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (real)</td><td style='text-align: center; word-wrap: break-word;'>61k</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;'>✗</td><td style='text-align: center; word-wrap: break-word;'>✓</td></tr></table>

#### C.3. 模型压缩的完整结果

我们在表13中提供了模型压缩的完整实验结果。我们发现特征通道数C不能低于64，否则性能会大幅下降。因此，我们固定$C = 64$，同时减少模板手部网格的顶点数量$V^{\prime}$。

#### C.4. 多视图融合的完整结果

我们在表14中提供了不同多视图融合策略的完整实验结果。我们发现，软注意力融合与网格分割的组合能够稳定提升性能。

## C.5. 不同融合策略的示意图

我们在图11中展示了两种用于正文表3的融合策略。在图11a)中，由于对每个输入图像分别应用最大池化操作，最终生成的特征尺寸为$[N \times 2048]$。另一方面，在图11b)中，通过对多视图输入图像应用最大池化操作，为每个数据样本计算出一个全局特征向量。

##### C.6. 真实数据集上的额外定量比较

我们在表15中利用真实数据集，提供了与METRO [^40]的进一步定量比较。在这些实验中，我们改变了用于训练的输入摄像头视图数量，并保留了3个未见过的摄像头视图用于评估。无论输入视图数量如何，我们的方法始终优于METRO基线模型。这体现了我们所提出方法的泛化能力。

#### D. 方法局限性

尽管我们的方法能够生成精确且符合物理规律的高保真双手重建结果，但在自穿透情况较为复杂时，生成的结果有时并不合理（见图10）。我们认为未来通过引入时间信息以及更先进的物理建模，可以解决这一问题。

![Image](images/595e1671e8613b153d3e06c1c91fd9857c0263afbad6765721891668d5aa4831.jpg)

<div style="text-align: center;">Figure 10: Failure examples for mesh refinement.</div>

我们将这些先进物理建模融入所提出的框架中。具体而言，当前基于优化的网格细化机制仅能处理自穿透问题。解决手部交互过程中的相互穿透问题正是我们未来的研究目标。

#### E. 更多示例

我们在图12和图13中分别展示了在合成数据集和真实数据集上的更多定性示例。

---

<div style="text-align: center;">Table 8: Architecture of our network. B refers to batch size and N refers to the number of multi-view RGB input images. Note that the duplicated layer numbers are performed in parallel and the output of layer 13 is concatenated with template hand mesh  $804 \times 3$ before feeding to transformer encoder in layer 14.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Layer</td><td style='text-align: center; word-wrap: break-word;'>Operation</td><td style='text-align: center; word-wrap: break-word;'>Dimensionality</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Input</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 224 \times 224 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>ResNet-50</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 7 \times 7 \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Upsampling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 14 \times 14 \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Convolution 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Batch normalisation</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>ReLU</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Upsampling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 24 \times 24 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Convolution 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Batch normalisation</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>ReLU</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Upsampling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 14 \times 14 \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Convolution 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Batch normalisation</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>ReLU</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 12 \times 12 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Upsampling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 24 \times 24 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Convolution 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Batch normalisation</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>ReLU</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>Convolution 1D</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 7$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>Spatial softmax</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 22 \times 22 \times 7$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>Matrix multiplication</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 7 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>Max pooling</td><td style='text-align: center; word-wrap: break-word;'>$B \times 7 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 259$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>15</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 130$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>16</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 130$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>17</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 65$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>18</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 65$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>19</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 617 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>21</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 617 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>22</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1234 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>23</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1234 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>24</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2468 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>25</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2468 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>26</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 4023 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 617 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>21</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 617 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>22</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1234 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>23</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1234 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>24</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2468 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>25</td><td style='text-align: center; word-wrap: break-word;'>Spectral filtering</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2468 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>26</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 4023 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Output</td><td style='text-align: center; word-wrap: break-word;'>$B \times 8046 \times 3$</td></tr></table>

<div style="text-align: center;">Table 9: Architecture of METRO baseline.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Layer</td><td style='text-align: center; word-wrap: break-word;'>Operation</td><td style='text-align: center; word-wrap: break-word;'>Dimensionality</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Input</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 224 \times 224 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>ResNet-50</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 7 \times 7 \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Max pooling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 2051$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 1026$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 1026$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 513$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>Transformer encoder</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 513$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 256$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>9</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 804 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1624 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 4023 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 8046 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Output</td><td style='text-align: center; word-wrap: break-word;'>$B \times 8046 \times 3$</td></tr></table>

<div style="text-align: center;">Table 10: Architecture of parametric baseline.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Layer</td><td style='text-align: center; word-wrap: break-word;'>Operation</td><td style='text-align: center; word-wrap: break-word;'>Dimensionality</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Input</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 224 \times 224 \times 3$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>ResNet-50</td><td style='text-align: center; word-wrap: break-word;'>$B \times N \times 7 \times 7 \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>Max pooling 2D</td><td style='text-align: center; word-wrap: break-word;'>$B \times 2048$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 1024$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 512$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>Fully-connected layer</td><td style='text-align: center; word-wrap: break-word;'>$B \times 200$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Output</td><td style='text-align: center; word-wrap: break-word;'>$B \times 200$</td></tr></table>

<div style="text-align: center;">Table 11: Impact of different loss terms on our synthetic dataset. Hand errors are given in millimeters (mm).</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L}_{mesh}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L}_{2D}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L}_{MSE}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L}_{edge}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathcal{L}_{cham}$</td><td style='text-align: center; word-wrap: break-word;'>Error</td></tr><tr><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;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>1.55</td></tr><tr><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;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>1.48</td></tr><tr><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;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>1.38</td></tr><tr><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;'>✓</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>1.38</td></tr><tr><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;'>✓</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>1.49</td></tr></table>

<div style="text-align: center;">Table 12: Quantitative evaluation on the impact of mesh refinement at inference.</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;'>Before refinement</td><td style='text-align: center; word-wrap: break-word;'>After refinement</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Max. penetration (mm)</td><td style='text-align: center; word-wrap: break-word;'>5.3</td><td style='text-align: center; word-wrap: break-word;'>0.16</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Intersection vol. ( $cm^{3}$)</td><td style='text-align: center; word-wrap: break-word;'>2.0</td><td style='text-align: center; word-wrap: break-word;'>0.09</td></tr></table>

---

<div style="text-align: center;">Table 13: Ablations of different backbones and hyperparameters. We denote  $P_{cnn}$ and  $P_{total}$ to be the number of parameters for CNN backbone and total model, respectively.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Backbone</td><td style='text-align: center; word-wrap: break-word;'>$P_{cnn}$</td><td style='text-align: center; word-wrap: break-word;'>$V&#x27;$</td><td style='text-align: center; word-wrap: break-word;'>C</td><td style='text-align: center; word-wrap: break-word;'>Error</td><td style='text-align: center; word-wrap: break-word;'>$P_{total}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ResNet-50</td><td style='text-align: center; word-wrap: break-word;'>23.5M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>1.38</td><td style='text-align: center; word-wrap: break-word;'>58.3M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B3</td><td style='text-align: center; word-wrap: break-word;'>12.9M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>2.53</td><td style='text-align: center; word-wrap: break-word;'>47.7M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B2</td><td style='text-align: center; word-wrap: break-word;'>9.2M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>2.55</td><td style='text-align: center; word-wrap: break-word;'>44M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B1</td><td style='text-align: center; word-wrap: break-word;'>7.8M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>2.74</td><td style='text-align: center; word-wrap: break-word;'>42.6M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>2.85</td><td style='text-align: center; word-wrap: break-word;'>40.1M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B3</td><td style='text-align: center; word-wrap: break-word;'>12.9M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>3.00</td><td style='text-align: center; word-wrap: break-word;'>40.6M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B2</td><td style='text-align: center; word-wrap: break-word;'>9.2M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>3.20</td><td style='text-align: center; word-wrap: break-word;'>36.9M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B1</td><td style='text-align: center; word-wrap: break-word;'>7.8M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>3.20</td><td style='text-align: center; word-wrap: break-word;'>35.5M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>2.91</td><td style='text-align: center; word-wrap: break-word;'>33M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B3</td><td style='text-align: center; word-wrap: break-word;'>12.9M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>4.00</td><td style='text-align: center; word-wrap: break-word;'>38.4M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B2</td><td style='text-align: center; word-wrap: break-word;'>9.2M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>3.87</td><td style='text-align: center; word-wrap: break-word;'>34.7M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B1</td><td style='text-align: center; word-wrap: break-word;'>7.8M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>4.04</td><td style='text-align: center; word-wrap: break-word;'>33.3M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>4.31</td><td style='text-align: center; word-wrap: break-word;'>30.8M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B3</td><td style='text-align: center; word-wrap: break-word;'>12.9M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>32</td><td style='text-align: center; word-wrap: break-word;'>89.7</td><td style='text-align: center; word-wrap: break-word;'>37.3M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>9.2M</td><td style='text-align: center; word-wrap: break-word;'>804</td><td style='text-align: center; word-wrap: break-word;'>32</td><td style='text-align: center; word-wrap: break-word;'>90</td><td style='text-align: center; word-wrap: break-word;'>29.7M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>160</td><td style='text-align: center; word-wrap: break-word;'>256</td><td style='text-align: center; word-wrap: break-word;'>4.12</td><td style='text-align: center; word-wrap: break-word;'>42.8M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>160</td><td style='text-align: center; word-wrap: break-word;'>128</td><td style='text-align: center; word-wrap: break-word;'>4.96</td><td style='text-align: center; word-wrap: break-word;'>37.8M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EfficientNet-B0</td><td style='text-align: center; word-wrap: break-word;'>5.3M</td><td style='text-align: center; word-wrap: break-word;'>80</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>6.89</td><td style='text-align: center; word-wrap: break-word;'>34.2M</td></tr></table>

<div style="text-align: center;">Table 14: Performance of different multi-view fusion strategies. We report hand error for both settings. K refers to the number of clusters for template hand mesh. Note that we do not include spectral filtering in the graph decoder here.</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;'>Single-view</td><td style='text-align: center; word-wrap: break-word;'>Multi-view</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40]</td><td style='text-align: center; word-wrap: break-word;'>10.87</td><td style='text-align: center; word-wrap: break-word;'>-</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40] + avg. pool</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>8.71</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40] + max pool</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>7.09</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 1)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>6.59</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 2)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>5.71</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 3)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>5.19</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 4)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>4.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 5)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>4.59</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 6)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>5.28</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 7)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>3.72</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (K = 8)</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>3.79</td></tr></table>

<div style="text-align: center;">Table 15: Error rates on our real dataset. Our method consistently outperforms METRO on different number of input views.</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;'>5-views</td><td style='text-align: center; word-wrap: break-word;'>3-views</td><td style='text-align: center; word-wrap: break-word;'>2-views</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^40]</td><td style='text-align: center; word-wrap: break-word;'>9.67</td><td style='text-align: center; word-wrap: break-word;'>12.0</td><td style='text-align: center; word-wrap: break-word;'>16.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>4.34</td><td style='text-align: center; word-wrap: break-word;'>6.94</td><td style='text-align: center; word-wrap: break-word;'>7.73</td></tr></table>

![Image](images/73f64cc7e4b7623e1bca23d2462df2d167c1fad4ce751aeebc23b56b297a0351.jpg)

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

![Image](images/dc78ffc97ec61f3f0afe09b9f9b6c8ce3d6cc4c6179e020b41dbf910f4b8b214.jpg)

<div style="text-align: center;">b) Max pool across multi-views</div>

<div style="text-align: center;">Figure 11: Illustration of different feature fusion strategies.</div>

---

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

<div style="text-align: center;">Figure 12: Additional qualitative examples on our synthetic dataset.</div>

---

## 走 走 走 走 走

<div style="text-align: center;">Figure 13: Additional qualitative examples on our real dataset.</div>
