
# 用于三维交互手部网格恢复的提取与适配网络

朴俊奎 $^{1*}$ 丹尼尔·孙戈·郑 $^{2,3*}$ 文京植 $^{4*}$ 李炅模 $^{1,2,3}$

 $^{1}$首尔大学电子计算机工程系及ASRI实验室，$^{2}$IPAI，韩国

 $^{3}$首尔大学-LG人工智能研究中心，$^{4}$Meta Reality Labs研究院

{jkpark0825, dqj5182}@snu.ac.kr, <mailto:mks0601@meta.com>, <mailto:kyoungmu@snu.ac.kr>

## 摘要

理解两只手之间的交互方式是实现精准的三维交互手部网格恢复的关键。然而，近期基于Transformer的方法难以学习两只手之间的交互关系，因为它们直接将两只手的特征作为输入标记，从而导致了“远距离标记问题”。所谓远距离标记问题，指的是输入标记处于异构空间中，导致Transformer无法捕捉输入标记之间的相关性。当两只手的姿态差异较大时，以往的基于Transformer的方法会尤其受此问题困扰，因为这些方法会将骨干网络提取的特征拆分为左右手专属特征。我们提出了EANet——提取与适配网络，其核心组件为EABlock。我们的EABlock并非直接将两只手的特征作为输入标记，而是采用两种互补的新型标记：SimToken和JoinToken作为输入标记。这两种新型标记由拆分后的两只手特征组合而成，因此对远距离标记问题的鲁棒性更强。借助这两种标记，我们的EABlock能够有效提取交互特征并将其适配到每只手上。所提出的EANet在三维交互手部基准测试中取得了最先进的性能。相关代码可在<https://github.com/jkpark0825/EANet>获取。

### 1. 引言

从两只交互的手部恢复三维网格[^27] [^39] [^18] [^10] [^12] [^20]对于AR/VR中的沉浸式体验以及人机交互而言至关重要。尽管现实世界中两只手的交互现象十分普遍，但构建针对两只交互手部的高效三维网格恢复框架仍是一项未解决的挑战。

恢复交互手部的网格的主要挑战在于捕捉其交互上下文，这与单只手部的网格有所不同。近期的研究[^12] [^20] [^8]受到注意力机制成功的启发[^35] [^9]，采用Transformer[^35]来捕捉两只手之间的相-

![Image](images/e422fd4140115a5f508d8af7b21be17e4edf4072c4c59cca6f4d0cea85d2e227.jpg)

<div style="text-align: center;">Figure 1: Comparison between previous Transformer blocks and our EABlock. Instead of directly using feature from backbone or left and right hand features as input tokens, our FuseFormer in EABlock uses SimToken and JoinToken as input tokens.</div>

关性。目前主要有两种方法。图1a展示了第一种方法[^12]：它不会将骨干网络[^14]提取的特征拆分为每只手的特征，而是直接将骨干网络的特征作为Transformer的输入标记。图1b展示了第二种方法[^20] [^8]：它将骨干网络的特征拆分为左右手专属特征，随后将拆分后的特征作为Transformer的输入标记。

将特征从主干网络分离出来，可以增强网络对两只手之间相似性的鲁棒性。此外，专门处理左手和右手的分支可以只专注于一种类型的手，从而减轻模块的负担[^27] [^20]。不过，这样做可能会引发远距离标记问题。图1a中的Keypoint Transformer[^12]并未分离特征，因此它不会受到远距离标记问题的影响；但它也无法享受到特征分离带来的好处。相比之下，图1b中的IntagHand[^20]虽然享受了特征分离的好处，却受到了远距离标记问题的困扰。

---

![Image](images/56d57e0c5bf88ce32a4a5376e161db22664bf376242a18b5a3511b5713138462.jpg)

<div style="text-align: center;">Figure 2: Comparison of token distribution with t-SNE [^34]. t-SNEs are drawn with input tokens, when given a single image of (a). (b) Previous methods [^20] use left and right hand features as input tokens, which suffer from the distant token problem when poses of two hands are different. (c) We use SimToken and JoinToken as input tokens, suffering much less from the problem.</div>

远距离标记问题的产生是由于输入标记被投影到两个不同的空间中，导致Transformer难以捕捉两只手之间的相关性。图2b展示了两只手特征之间存在的远距离标记问题。有趣的是，我们发现当两只手的姿态差异较大时，两种手特征之间的异质性会更加明显。即便双手姿态差异很大，它们之间的交互仍然可能很重要；但由于两种手特征的异质性，以往的研究无法有效捕捉这种交互，从而导致性能不佳。这种远距离标记问题在最近的多模态学习领域也已被提及[^28] [^17] [^21] [^16]。尽管两只手之间的远距离标记问题可能不如多模态场景那么严重，但它仍是一个需要解决的挑战。

为解决远距离标记问题，我们引入了两个位于同质空间中的新标记：SimToken和JoinToken，如图2c所示，它们包含了两只手的信息。与以往研究直接将分离后的左手和右手特征传入Transformer不同[^20] [^8]，我们将左手和右手特征转换为新标记后再传入Transformer。SimToken是通过基于相似度的操作，利用自注意力（SA）Transformer得到的[^35]。JoinToken则是通过将两个输入特征的拼接结果送入全连接层而获得的；因此，JoinToken无需依赖基于相似度的操作就能建模两个输入特征的联合分布。由于新标记源自左右手特征，它们位于同质空间中。我们设计的新标记具有互补性：例如，当两只手姿态差异很大时，远距离标记问题（图2c底部行的左右手特征）会限制SA Transformer[^35]捕捉它们之间交互的能力，进而导致SimToken的效果变差。另一方面，在这种情况下JoinToken仍能捕捉到有用的交互信息，因为它不依赖基于相似度的操作（如Transformer中的点积运算）。反之，当两只手姿态相似时，SimToken的SA机制能够捕捉到极具价值的交互信息，从而补充JoinToken的不足。通过这种方式，这两个新标记使我们的系统能够：1）通过分离左右手特征来增强对两只手之间相似性的鲁棒性；2）避免远距离标记问题，并正确计算输入标记之间的相关性。

我们在EANet中使用了新引入的两种标记——提取与适配网络中的标记，其中EABlock构成了该网络的主要组件。图1c简要展示了EABlock，它由我们基于Transformer的模块FuseFormer驱动。FuseFormer通过生成两种新引入的标记——SimToken和JoinToken，并利用交叉注意力（CA）Transformer对它们进行处理，从而融合两种输入特征。

在FuseFormer的驱动下，EABlock包含提取阶段和适配阶段。在提取阶段，我们的EABlock首先利用FuseFormer从两只手的特征中提取交互特征。在适配阶段，我们使用针对每只手的另外两个FuseFormer，将提取出的交互特征适配到对应的手上。以左手适配为例，我们将提取出的交互特征和左手特征送入FuseFormer进行融合。由于交互特征主要包含关于双手的信息，因此可能并不适合单独用于恢复每只手的3D手网格。因此，我们融合交互特征和左手特征以实现两个目标：1）保留两只手之间的交互信息；2）获取更多与左手相关的特定信息。右手适配过程类似，我们将提取出的交互特征和右手特征通过另一个FuseFormer进行处理。

通过大量实验和定性分析，我们证明了所提框架的有效性。在极具挑战性的InterHand2.6M [^27]和HIC [^33]数据集上，我们发现EANet的性能显著优于以往的最先进方法。我们的贡献总结如下：

- 我们提出了用于3D交互手网格恢复的EANet提取与适配网络。借助主要模块EABlock，我们的系统即便在两只手的姿态差异很大的情况下，也能有效捕捉它们之间的交互关系。

---

- 我们设计了FuseFormer，它是EABlock的核心组件。FuseFormer通过生成两种互补类型的标记——SimToken和JoinToken来融合输入特征。

• 大量实验和定性分析表明，所提出的EANet在3D手网格基准测试上的性能优于以往的最先进方法。

### 2. 相关工作

三维交互手部网格恢复。已有多项研究[^41] [^40] [^2] [^27] [^39] [^12] [^20]致力于解决从单目RGB图像中恢复三维手部网格的问题。InterHand2.6M数据集[^27] [^26]是首个展示交互手部三维网格恢复潜力的数据集，它提出了首个基于真实RGB图像的大规模高分辨率三维手部姿态数据集。该数据集发布后[^27]，Zhang等人[^39]提出了一种方法，该方法基于最初估计的两手关节交互的2.5D热图来估算三维手部网格。随后，最初估计的三维手部网格会以级联方式被共同优化，以便充分利用从预训练的ResNet-50[^14]骨干网络中提取的多尺度特征。由于基于Transformer[^35]的机制在计算机视觉[^9] [^13]的各类任务中逐渐兴起，已有多种方法[^20] [^12]被提出，以有效利用Transformer[^35]进行三维交互手部网格恢复。Keypoint Transformer[^12]引入了一种基于SA Transformer[^35]的模块，该模块能为关键点特征执行全局上下文感知的特征编码。进一步而言，IntagHand[^20]提出了一种基于CA Transformer[^35]的模块，用于内在地建模两只交互手部之间的关联。

尽管取得了令人瞩目的成果，但以往的基于Transformer的方法[^20] [^8]仍存在远距离标记问题，因为当两只手的姿态不同时，它们会直接将两只手的特征用作输入标记。相比之下，我们设计的EANet旨在通过使用两种新型标记作为输入标记来解决此类远距离标记问题：SimToken和JoinToken。这两种标记在我们的FuseFormer中被制备并处理。通过在主模块EABlock中采用多个FuseFormer，所提出的EANet能够有效提取交互特征并将其适配到每只手上。

Transformer中的标记化。基于Transformer[^35]的方法已成为自然语言处理[^7] [^3]和计算机视觉[^9] [^4] [^13]等多类任务的事实标准。Transformer[^35]的崛起很大程度上归功于其通用的归纳偏置，这种偏置赋予了模型灵活性[^17] [^1] [^24]，使其能够在处理输入数据时做出极少的假设[^17]。然而，为了弥补这种灵活性带来的不足，许多研究都展示了针对特定任务的附加组件，比如位置嵌入[^31] [^16] [^22]或标记化[^9] [^11] [^1] [^37] [^24]。尤其是标记化[^9] [^1] [^37] [^24]在计算机视觉领域得到了广泛发展，因为Transformer中的标记并不直接对应图像中的任何单一结构。正如计算机视觉领域的研究所证明的那样，恰当的标记化对于Transformer在相应任务中发挥全部潜力至关重要[^38] [^36]。在我们的研究中，我们引入了两种新型标记：SimToken和JoinToken。这两种新型标记能够让Transformer通过有效融合输入特征，克服两个输入特征的远距离标记问题。

### 3. 提取与适配网络（EANet）

图3展示了我们EANet的整体架构。所提出的EANet由主干网络、EABlock、联合特征提取器、自联合Transformer以及回归器组成。

#### 3.1. 主干网络

给定输入手部图像$\mathbf{I} \in \mathbb{R}^{H \times W \times 3}$，骨干网络会提取左手$\mathbf{F}_L$和右手$\mathbf{F}_R$的手部特征。$H = 256$和$W = 256$分别表示输入图像的高度和宽度。我们首先将手部图像$\mathbf{I}$输入到在ImageNet上预训练的ResNet-50模型[^14]中[^6]，以提取图像特征$\mathbf{F} \in \mathbb{R}^{h \times w \times C}$；其中$h = H/32$和$w = W/32$分别对应$\mathbf{F}$的高度和宽度，而$C = 2048$表示$\mathbf{F}$的通道维度。随后，该图像特征$\mathbf{F}$会被送入两个独立的$1 \times 1$卷积层，从而得到左手特征$\mathbf{F}_L$和右手特征$\mathbf{F}_R$。这两个特征的维度均为$\mathbb{R}^{h \times w \times c}$，其中$c = C/4$。

#### 3.2. 提取与适配模块（EABlock）

图4展示了我们EABlock的详细流程。EABlock包含两个阶段（即提取阶段和适配阶段），每个阶段都采用了FuseFormer结构。FuseFormer是我们的基础模块，它利用SimToken和JoinToken来融合两类输入特征。FuseFormer由一个SA Transformer、一个全连接层以及一个CA Transformer构成。

提取阶段：交互特征提取。图5展示了提取阶段中FuseFormer的整体流程。提取阶段的FuseFormer通过融合两只手的特征$\mathbf{F}_{\text{inter}}$来提取交互特征$(\mathbf{F}_{\text{L}} \text{ and } \mathbf{F}_{\text{R}})$。与以往使用[^12]和[^20]作为输入标记的基于Transformer的方法$\mathbf{F}_{\text{L}}$ $\mathbf{F}_{\text{R}}$不同，我们采用SimToken $\mathbf{t}_{\text{S}}$和JoinToken $\mathbf{t}_{\text{J}}$作为输入标记，以解决远距离标记问题。

SimToken $t_S$是通过将两只手的特征（$F_L$和$F_R$）输入到SA Transformer [^35]中得到的。为此，我们首先将$F_L$和$F_R$的形状从$\mathbb{R}^{h\times w\times c}$调整为$\mathbb{R}^{hw\times c}$。接着，我们将调整后的$F_L$和$F_R$与一个类别标记$t_{\mathrm{cls}} \in \mathbb{R}^{1\times c}$ [^9]拼接起来。该类别标记被实现为一个可学习的一维嵌入向量，用于学习通用的双手信息[^9]。我们将拼接后的标记记为$\mathbf{t} \in \mathbb{R}^{l\times c}$，其中$l = hw + hw + 1$。随后，我们从拼接后的标记中提取查询向量$\mathbf{q}_{\mathrm{SA}}$、键向量$\mathbf{k}_{\mathrm{SA}}$和值向量$\mathbf{v}_{\mathrm{SA}}$。

---

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

<div style="text-align: center;">Figure 3: The overall architecture of extract-and-adaptation network (EANet). Our EANet extracts an interaction feature and adapts it to each hand. Then, from the adapted features ( $F_L^*$ or  $F_R^*$), joint feature extractors extract joint features of each hand ( $F_{IL}$ or  $F_{IR}$), guided by corresponding predicted 2.5D joint coordinates ( $J_L$ or  $J_R$). Finally, regressor produces MANO parameters, which are forwarded to MANO layers for reconstructing 3D hand meshes ( $V_L$ or  $V_R$). © denotes concatenation.</div>

![Image](images/1280835a8a206a1f2d2042976ecfafa48cbc8471bd9406c6e1237f9b833f3a36.jpg)

<div style="text-align: center;">Figure 4: The overall pipeline of EABlock. A FuseFormer in the extract stage of EABlock first extracts an interaction feature  $\mathbf{F}_{\text{inter}}$ by using both hand features  $\mathbf{F}_{\text{L}}$ and  $\mathbf{F}_{\text{R}}$. Then, with an interaction feature  $\mathbf{F}_{\text{inter}}$ and one hand feature ( $\mathbf{F}_{\text{L}}$ or  $\mathbf{F}_{\text{R}}$), each FuseFormer in the adaptation stage of EABlock produces adapted interaction feature ( $\mathbf{F}_{\text{interL}}$ or  $\mathbf{F}_{\text{interR}}$). Afterwards, adapted interaction features are concatenated with corresponding hand features to produce adapted hand feature ( $\mathbf{F}_{\text{L}}^{*} \text{ or } \mathbf{F}_{\text{R}}^{*}$). © denotes concatenation.</div>

用单独的线性层对标记token t进行处理。$\mathbf{q}_{\mathrm{SA}}$、$\mathbf{k}_{\mathrm{SA}}$和$\mathbf{v}_{\mathrm{SA}}$的维度均与t的维度相同。与之前的Transformer模型类似[^35] [^9]，SimToken $\mathbf{t}_{\mathrm{S}} \in \mathbb{R}^{l \times c}$的生成方式如下：

 $$ Attn(\mathbf{q}_{\mathrm{SA}},\mathbf{k}_{\mathrm{SA}},\mathbf{v}_{\mathrm{SA}})=\mathrm{softmax}(\frac{\mathbf{q}_{\mathrm{SA}}\mathbf{k}_{\mathrm{SA}}^{T}}{\sqrt{d_{\mathbf{k}_{\mathrm{SA}}}}})\mathbf{v}_{\mathrm{SA}}, $$

 $$ \mathbf{r}=\mathbf{t}+\mathrm{A t t n}(\mathbf{q}_{\mathrm{S A}},\mathbf{k}_{\mathrm{S A}},\mathbf{v}_{\mathrm{S A}}), $$

 $$ \mathbf{t}_{\mathrm{S}}=\mathbf{r}+\mathrm{M L P}(\mathbf{r}), $$

其中$d_{k_{SA}}$表示$k_{SA}$的通道维度。因此，$t_{S}$是基于两只手的特征构建的标准SA Transformer。

JoinToken $\mathbf{t}_J \in \mathbb{R}^{hw \times c}$是通过将两只手的特征$(\mathbf{F}_L$和$\mathbf{F}_R)$输入到全连接层中得到的。在输入全连接层之前，我们会先将两只手的特征$(\mathbf{F}_L$和$\mathbf{F}_R)$从$\mathbb{R}^{h \times w \times 2c}$调整为$\mathbb{R}^{hw \times 2c}$形状并拼接起来。具体来说：

 $$ \mathbf{t}_{\mathrm{J}}=\mathrm{F C}(\boldsymbol{\psi}(\mathbf{F}_{\mathrm{L}},\mathbf{F}_{\mathrm{R}})), $$

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

<div style="text-align: center;">Figure 5: The overall pipeline of FuseFormer in extract stage. FuseFormer first prepares SimToken  $t_S$ and JoinToken  $t_J$ with SA Transformer and a fully connected layer, respectively. Then, a CA Transformer processes the two tokens. © denotes concatenation.</div>

其中，$\psi$ 表示拼接与重塑函数的组合。FC代表全连接层。

在准备好两个词元（$t_S$ 和 $t_J$）之后，CA [^5] Transformer会从这两个词元中提取交互特征 $\mathbf{F}_{\text{inter}} \in \mathbb{R}^{hw \times c}$。对于CA而言，我们通过独立的线性层从JoinToken $t_J$ 中提取查询向量，从SimToken $t_S$ 中提取键-值对。我们将CA Transformer的查询向量、键和值分别记为 $\mathbf{q}_{\text{CA}} \in \mathbb{R}^{hw \times c}$、$\mathbf{k}_{\text{CA}} \in \mathbb{R}^{l \times c}$ 和 $\mathbf{v}_{\text{CA}} \in \mathbb{R}^{l \times c}$。

选择将JoinToken用作查询向量的原因是为了解决查询-键相关性与值之间的不匹配问题。举个例子，假设CA Transformer的输入方式相反：查询向量来自SimToken，而键-值对来自JoinToken。当两只手的姿态差异很大时，SimToken无法捕捉到两只手之间的有效交互信息；因此，SimToken的前半部分主要包含左手信息，后半部分主要包含右手信息，而非同时包含两只手的信息。另一方面，JoinToken则包含了两只手的信息。以查询向量中的某个主要包含左手信息的元素为例，从该元素的角度来看，查询-键相关性始终由JoinToken中所有元素与左手信息的相似程度决定。然而，由于值来源于JoinToken，

---

基于左手驱动的相似性就能检索出另一只手的信息，而这并非我们所期望的。最终，使用SimToken作为查询向量会导致查询-键相关性（由左手驱动）与值（右手信息）之间的不匹配。相比之下，我们的方法是从JoinToken中提取查询向量，从SimToken中提取键-值对。由于查询向量中的元素包含两只手的信息，因此查询-键相关性不会局限于某一种类型的手（如左手）；所以我们的方法不会出现这种不匹配问题。

最终，CA Transformer会根据公式1、2、3输出交互特征 $\mathbf{F}_{\text{inter}}$，其中涉及 $\mathbf{q}_{\text{CA}}$、$\mathbf{k}_{\text{CA}}$ 和 $\mathbf{v}_{\text{CA}}$。相应地，提取阶段的FuseFormer通过融合两只手的特征 $\mathbf{F}_{\text{inter}}$ 来提取交互特征 $(\mathbf{F}_{\text{L}} \text{ and } \mathbf{F}_{\text{R}})$。正式表达如下：

 $$ \mathbf{F}_{\mathrm{i n t e r}}=\mathrm{F u s e F o r m e r}(\mathbf{F}_{\mathrm{L}},\mathbf{F}_{\mathrm{R}};\mathbf{W}_{\mathrm{e x t r a c t}}), $$

其中，$W_{extract}$ 表示提取阶段FuseFormer的可学习权重。

适配：交互特征的适配。在适配阶段，EABlock通过两个额外的FuseFormer将提取出的交互特征 $\mathbf{F}_{\text{inter}}$ 适配为针对每只手的特征。虽然提取阶段得到的交互特征有助于理解两只手之间的交互方式，但直接将其用于恢复每只手的3D手网格可能并非最佳选择。因此，我们融合交互特征与每只手的特征以实现两个目标：1）保留两只手之间的交互信息；2）获取针对左手和右手的特定信息。以左手适配为例，我们将左手特征 $\mathbf{F}_{\text{L}}$ 与交互特征 $\mathbf{F}_{\text{inter}}$ 输入到一个FuseFormer中，该模块会融合它们并输出适配于左手的交互特征 $\mathbf{F}_{\text{interL}} \in \mathbb{R}^{hw \times c}$。右手的适配过程类似，只需将右手特征 $\mathbf{F}_{\text{R}}$ 与交互特征 $\mathbf{F}_{\text{inter}}$ 输入另一个FuseFormer，该模块会融合它们并输出适配于右手的交互特征 $\mathbf{F}_{\text{interR}} \in \mathbb{R}^{hw \times c}$。正式表达如下：

 $$ \mathbf{F}_{\mathrm{i n t e r L}}=\mathrm{F u s e F o r m e r}(\mathbf{F}_{\mathrm{L}},\mathbf{F}_{\mathrm{i n t e r}};\mathbf{W}_{\mathrm{a d a p t L}}), $$

 $$ \mathbf{F}_{\mathrm{i n t e r R}}=\mathrm{F u s e F o r m e r}(\mathbf{F}_{\mathrm{R}},\mathbf{F}_{\mathrm{i n t e r}};\mathbf{W}_{\mathrm{a d a p t R}}), $$

其中，$W_{adaptL}$ 和 $W_{adaptR}$ 分别表示用于左手和右手适配的FuseFormer中的可学习权重。

为了降低计算成本，对于每只手，我们应用一个全连接层，将通道维度从c缩减为$c/4$，该层作用于经过适配的交互特征（$F_{\text{interL}}$或$F_{\text{interR}}$）。接着，我们将全连接层的输出重塑为$\mathbb{R}^{h \times w \times c/4}$。最后，对于每只手，我们将适配后的交互特征（$F_{\text{interL}}$或$F_{\text{interR}}$）与其对应的手部特征（$F_L$或$F_R$）沿通道维度拼接起来，由此得到每只手的最终适配特征，分别记为$F_L^*$和$F_R^*$。

#### 3.3. 关节特征提取器

对于每只手，关节特征提取器会从适配后的手部特征$(\mathbf{J}_L \text{ or } \mathbf{J}_R)$中提取2.5D关节坐标$(\mathbf{F}_{JL} \text{ or } \mathbf{F}_{JR})$以及关节特征$(\mathbf{F}_L^* \text{ or } \mathbf{F}_R^*)$。受Moon等人的研究启发[[^25]]，我们的关节特征提取器能够在估计出的2.5D关节坐标的引导下有效提取关节特征。

2.5D关节坐标估计。2.5D关节坐标的x轴和y轴位于2D像素空间，而z轴则处于以根关节（即手腕）为参照的深度空间中。为了估计每只手的2.5D关节坐标，我们对适配后的手部特征（$1 \times 1$或$F_L^*$）应用一个$F_R^*$卷积层，将其通道维度调整为dJ。随后，我们将输出重塑为一个维度为$\mathbb{R}^{h \times w \times d \times J}$的2.5D热图。$d = 8$表示2.5D热图的离散深度大小，J代表关节数量。之后，通过对相应的2.5D热图执行soft-argmax操作[$J_L$]，即可获得左手或右手的2.5D关节坐标（$J_R$或[^32]）。

关节特征提取。通过基于估计出的2.5D关节坐标$\mathbf{F}_{\mathrm{JL}}$在特征图[^15]上进行的网格采样[$\mathbf{F}_{\mathrm{L}}^{*}$]，可得到左手关节特征$(x,y)$，采样位置由$\mathbf{J}_{\mathrm{L}}$确定。同理，右手关节特征$\mathbf{F}_{\mathrm{JR}}^{*}$可通过右手特征$\mathbf{F}_{\mathrm{R}}^{*}$及对应的2.5D关节坐标$\mathbf{J}_{\mathrm{R}}$以相同方式获得。这些关节特征包含了每只手关节的全局上下文信息，对于3D手部网格恢复至关重要。

#### 3.4. 自关节Transformer（SJT）

自关节Transformer（SJT）是一种标准的SA Transformer。对于每只手，它通过SA机制[$F_{IL}$]对关节特征（$F_{JR}$或[^35]）进行增强，最终输出（$F_{IL}^{*}$或$F_{JR}^{*}$）。尽管结构简单，我们发现SJT对增强关节特征非常有效，因为它能通过SA隐式地考虑手部关节的运动学结构。需要注意的是，SJT的目标与FuseFormer明显不同：FuseFormer旨在融合两类输入特征，而SJT旨在增强单一类型的输入特征。

#### 3.5. 最终输出

对于每只手，回归器会从增强后的手部关节特征（$\theta_L$ 或 $\theta_R$）中生成48维的姿态参数（$\beta_L$ 或 $\beta_R$）以及10维的形状参数（[^30] 或 $F_{IL}^*$），这些参数属于MANO模型，详见脚注$F_{JR}^*$。获取姿态参数的方法是：首先将增强后的关节特征（$F_{IL}^*$ 或 $F_{JR}^*$）与2.5D关节坐标（$J_L$ 或 $J_R$）拼接起来，再将拼接后的特征展平为一维向量；最终将这两个向量送入两个全连接层以预测MANO姿态参数。至于形状参数，我们先将处理后的手部特征（$F_L^*$ 或 $F_R^*$）经过全局平均池化操作后，再送入全连接层，详见脚注[^23]。最后得到最终的3D结果。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Separate L/R feature</td><td rowspan="2">EABlock</td><td colspan="3">MPJPE</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</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;'>14.90</td><td style='text-align: center; word-wrap: break-word;'>15.73</td><td style='text-align: center; word-wrap: break-word;'>15.32</td><td style='text-align: center; word-wrap: break-word;'>11.84</td><td style='text-align: center; word-wrap: break-word;'>14.05</td><td style='text-align: center; word-wrap: break-word;'>12.80</td><td style='text-align: center; word-wrap: break-word;'>22.76</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;'>12.74</td><td style='text-align: center; word-wrap: break-word;'>14.33</td><td style='text-align: center; word-wrap: break-word;'>13.53</td><td style='text-align: center; word-wrap: break-word;'>12.53</td><td style='text-align: center; word-wrap: break-word;'>11.95</td><td style='text-align: center; word-wrap: break-word;'>12.28</td><td style='text-align: center; word-wrap: break-word;'>23.79</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;'>9.62</td><td style='text-align: center; word-wrap: break-word;'>11.54</td><td style='text-align: center; word-wrap: break-word;'>10.58</td><td style='text-align: center; word-wrap: break-word;'>7.86</td><td style='text-align: center; word-wrap: break-word;'>10.78</td><td style='text-align: center; word-wrap: break-word;'>9.13</td><td style='text-align: center; word-wrap: break-word;'>18.82</td></tr></table>

<div style="text-align: center;">Table 1: Comparison of models with various architectures in Figure 1.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Block</td><td colspan="3">MPJPE</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>CA Transformer</td><td style='text-align: center; word-wrap: break-word;'>12.74</td><td style='text-align: center; word-wrap: break-word;'>14.33</td><td style='text-align: center; word-wrap: break-word;'>13.53</td><td style='text-align: center; word-wrap: break-word;'>12.53</td><td style='text-align: center; word-wrap: break-word;'>11.95</td><td style='text-align: center; word-wrap: break-word;'>12.28</td><td style='text-align: center; word-wrap: break-word;'>23.79</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SA Transformer</td><td style='text-align: center; word-wrap: break-word;'>11.44</td><td style='text-align: center; word-wrap: break-word;'>13.49</td><td style='text-align: center; word-wrap: break-word;'>12.47</td><td style='text-align: center; word-wrap: break-word;'>9.51</td><td style='text-align: center; word-wrap: break-word;'>12.37</td><td style='text-align: center; word-wrap: break-word;'>10.75</td><td style='text-align: center; word-wrap: break-word;'>25.35</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (w/o adaptation)</td><td style='text-align: center; word-wrap: break-word;'>10.66</td><td style='text-align: center; word-wrap: break-word;'>11.81</td><td style='text-align: center; word-wrap: break-word;'>11.25</td><td style='text-align: center; word-wrap: break-word;'>8.37</td><td style='text-align: center; word-wrap: break-word;'>11.24</td><td style='text-align: center; word-wrap: break-word;'>9.61</td><td style='text-align: center; word-wrap: break-word;'>21.00</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours (full)</td><td style='text-align: center; word-wrap: break-word;'>9.62</td><td style='text-align: center; word-wrap: break-word;'>11.54</td><td style='text-align: center; word-wrap: break-word;'>10.58</td><td style='text-align: center; word-wrap: break-word;'>7.86</td><td style='text-align: center; word-wrap: break-word;'>10.78</td><td style='text-align: center; word-wrap: break-word;'>9.13</td><td style='text-align: center; word-wrap: break-word;'>18.82</td></tr></table>

<div style="text-align: center;">Table 2: Comparison of models with various Transformer blocks for EABlock.</div>

将MANO参数输入MANO层后，即可得到手部网格，分别用$V_L$和$V_R$表示。此外，两只手之间的3D相对位移也是从处理后的手部特征（$F_L^*$和$F_R^*$）中得到的。具体做法是先将它们拼接起来并进行全局平均池化操作，最后通过全连接层输出两只手之间的3D相对位移。在训练模型时，我们最小化损失函数，该函数是估计值与真实值之间L1距离的加权和，涉及$\theta$、$\beta$、J、V以及3D相对位移。

### 4. 实验

#### 4.1. 实现细节

所有实现均基于PyTorch框架完成[^29]，采用Adam优化器进行训练[^19]，每张GPU的批量大小为32（使用四张RTX 2080 Ti GPU进行训练）。为了在InterHand2.6M数据集[^27]上训练我们的模型，我们共训练了30个epoch，并在第10个和第15个epoch时对初始学习率$1 \times 10^{-4}$进行退火处理。

#### 4.2. 数据集与评估指标

InterHand2.6M数据集。我们在InterHand2.6M数据集上训练和评估EANet模型。为了与以往的方法进行对比，我们使用了H+M划分下的单手及交互手图像。在消融研究中，我们采用了H划分下的单手及交互手图像。

HIC数据集。为了验证我们提出的EANet模型的泛化能力，我们在HIC [^33] 数据集上进一步展示了相关结果。与背景和光源较为均一的InterHand2.6M [^27] 数据集不同，HIC数据集包含自然光照条件以及更多样化的背景。需要注意的是，HIC数据集仅用于评估。

评估指标。遵循以往的研究方法，详见脚注[^27]和[^12]，我们报告了平均关节位置误差（MPJPE）、平均顶点位置误差（MPVPE）以及平均根节点位置误差（MRRPE）。所有指标的单位均为毫米。

![Image](images/85559233a19b70e977773a81e53f8716d25fcf50001789d3ca58f23233b50233.jpg)

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

![Image](images/a07bef164c5cdd6c2fbd2c57f1343ed753f0ad147e52fff91daa8277f69697d6.jpg)

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

![Image](images/609bd174a31853471e42462b5779f6cb114c7e39d760647e79db74646544db18.jpg)

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

<div style="text-align: center;">Figure 6: Visual comparison of models with various Transformer blocks for EABlock.</div>

#### 4.3. 消融研究

EANet的整体设计。表1证明了我们方法的合理性：1）将左右手特征分离；2）采用EABlock来解决远距离标记问题，如图1c所示。在第一行中，我们并未将特征从主干网络分离为左右手特征，而是直接将主干网络的特征传递给SA Transformer，该过程遵循Keypoint Transformer的设计[^12]。随后使用单个关节特征提取器和自关节Transformer。针对每只手的两个回归器会输出最终的3D手部网格。在第二行中，我们保留了特征分离的设置，但用IntagHand中的CA Transformer替换了EABlock[^20]。如果不进行特征分离（见图1a及表的第一行），模型性能会显著下降，因为这种分离有助于提升网络对左右手相似性的鲁棒性。此外，专用于左手和右手的分支可以仅专注于一种类型的手而非两种手，从而减轻模块的负担[^27] [^20]。与表中的第二行（图1b）相比，我们的方法通过引入EABlock解决了远距离标记问题，进而实现了性能提升。

EABlock与以往的Transformer模块对比。表2和图6体现了EABlock相较于以往Transformer模块的优越性。在表2的第一行和第二行中，我们用参数数量与EABlock相近的标准Transformer替换了EABlock，且每种Transformer都包含对应的SA和CA模块。遵循以往基于Transformer的方法[^20] [^12]，我们将两只手的特征用作输入标记。SA Transformer（第二行）会从两只手中提取查询向量、键向量和值向量，而CA Transformer（第一行）则从一只手中提取查询向量，从另一只手中提取键-值对。结果显示，SA Transformer的性能优于CA Transformer，尤其是在单手情况下。这是因为CA机制会强行注入来自不存在的对应手的不相关信息。

同时，第三行数据表明：即便仅采用EABlock的提取阶段（即不包含适配阶段），我们的EABlock性能也优于这两种Transformer基线模型。尤其是就MPJPE指标而言，双手情况下的性能提升幅度（+1.68）要大于单手情况（+0.78）。这证明了我们提出的两种新标记在解决远距离标记问题上的优势。加入适配阶段后，我们的EABlock在各项指标上的性能进一步提升。

---

![Image](images/d6928cd2416112628461889acc739546544784cf5256818d0438baa8e5d2571f.jpg)

<div style="text-align: center;">Figure 7: Visual comparison with state-of-the-art methods on InterHand2.6M [^27] (top) and in-the-wild (bottom). The red circles highlight regions where our EANet is correct, while others are wrong. We crawl in-the-wild images from web.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">$q_{CA}$</td><td rowspan="2">$k_{CA}, v_{CA}$</td><td colspan="3">MPJPE</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</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;'>13.19</td><td style='text-align: center; word-wrap: break-word;'>14.17</td><td style='text-align: center; word-wrap: break-word;'>13.88</td><td style='text-align: center; word-wrap: break-word;'>9.68</td><td style='text-align: center; word-wrap: break-word;'>13.61</td><td style='text-align: center; word-wrap: break-word;'>11.95</td><td style='text-align: center; word-wrap: break-word;'>25.95</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_J$</td><td style='text-align: center; word-wrap: break-word;'>$F_L, F_R$</td><td style='text-align: center; word-wrap: break-word;'>10.66</td><td style='text-align: center; word-wrap: break-word;'>12.60</td><td style='text-align: center; word-wrap: break-word;'>11.63</td><td style='text-align: center; word-wrap: break-word;'>8.73</td><td style='text-align: center; word-wrap: break-word;'>11.65</td><td style='text-align: center; word-wrap: break-word;'>10.00</td><td style='text-align: center; word-wrap: break-word;'>21.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_J$</td><td style='text-align: center; word-wrap: break-word;'>$t_J$</td><td style='text-align: center; word-wrap: break-word;'>12.02</td><td style='text-align: center; word-wrap: break-word;'>13.42</td><td style='text-align: center; word-wrap: break-word;'>12.71</td><td style='text-align: center; word-wrap: break-word;'>8.79</td><td style='text-align: center; word-wrap: break-word;'>11.63</td><td style='text-align: center; word-wrap: break-word;'>10.02</td><td style='text-align: center; word-wrap: break-word;'>22.67</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_S$</td><td style='text-align: center; word-wrap: break-word;'>$t_S$</td><td style='text-align: center; word-wrap: break-word;'>10.44</td><td style='text-align: center; word-wrap: break-word;'>12.36</td><td style='text-align: center; word-wrap: break-word;'>11.40</td><td style='text-align: center; word-wrap: break-word;'>8.53</td><td style='text-align: center; word-wrap: break-word;'>11.33</td><td style='text-align: center; word-wrap: break-word;'>9.75</td><td style='text-align: center; word-wrap: break-word;'>21.70</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_S$</td><td style='text-align: center; word-wrap: break-word;'>$t_J$</td><td style='text-align: center; word-wrap: break-word;'>10.48</td><td style='text-align: center; word-wrap: break-word;'>12.40</td><td style='text-align: center; word-wrap: break-word;'>11.44</td><td style='text-align: center; word-wrap: break-word;'>8.58</td><td style='text-align: center; word-wrap: break-word;'>11.37</td><td style='text-align: center; word-wrap: break-word;'>9.79</td><td style='text-align: center; word-wrap: break-word;'>21.52</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_J$</td><td style='text-align: center; word-wrap: break-word;'>$t_S$</td><td style='text-align: center; word-wrap: break-word;'>9.62</td><td style='text-align: center; word-wrap: break-word;'>11.54</td><td style='text-align: center; word-wrap: break-word;'>10.58</td><td style='text-align: center; word-wrap: break-word;'>7.86</td><td style='text-align: center; word-wrap: break-word;'>10.78</td><td style='text-align: center; word-wrap: break-word;'>9.13</td><td style='text-align: center; word-wrap: break-word;'>18.82</td></tr></table>

<div style="text-align: center;">Table 3: Comparisons of models with various inputs for CA Transformer in FuseFormer. The first row uses  $t_{J}$ as the interaction feature without using the CA Transformer.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">EABlock</td><td rowspan="2">SJT</td><td colspan="3">MPJPE</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</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;'>11.22</td><td style='text-align: center; word-wrap: break-word;'>13.18</td><td style='text-align: center; word-wrap: break-word;'>12.20</td><td style='text-align: center; word-wrap: break-word;'>10.08</td><td style='text-align: center; word-wrap: break-word;'>12.87</td><td style='text-align: center; word-wrap: break-word;'>11.28</td><td style='text-align: center; word-wrap: break-word;'>23.04</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;'>11.05</td><td style='text-align: center; word-wrap: break-word;'>13.04</td><td style='text-align: center; word-wrap: break-word;'>12.04</td><td style='text-align: center; word-wrap: break-word;'>9.07</td><td style='text-align: center; word-wrap: break-word;'>11.92</td><td style='text-align: center; word-wrap: break-word;'>10.28</td><td style='text-align: center; word-wrap: break-word;'>22.80</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;'>10.12</td><td style='text-align: center; word-wrap: break-word;'>11.92</td><td style='text-align: center; word-wrap: break-word;'>11.02</td><td style='text-align: center; word-wrap: break-word;'>8.61</td><td style='text-align: center; word-wrap: break-word;'>11.42</td><td style='text-align: center; word-wrap: break-word;'>9.83</td><td style='text-align: center; word-wrap: break-word;'>21.11</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;'>9.62</td><td style='text-align: center; word-wrap: break-word;'>11.54</td><td style='text-align: center; word-wrap: break-word;'>10.58</td><td style='text-align: center; word-wrap: break-word;'>7.86</td><td style='text-align: center; word-wrap: break-word;'>10.78</td><td style='text-align: center; word-wrap: break-word;'>9.13</td><td style='text-align: center; word-wrap: break-word;'>18.82</td></tr></table>

<div style="text-align: center;">Table 4: Comparison of models with various combinations of EABlock and SJT.</div>

如第四行所示，各项指标均体现出性能提升。具体而言，无论是MPJPE还是MPVPE指标，适配阶段在单手情况下的性能提升幅度都要大于双手情况。这印证了我们设计适配阶段的合理性——该阶段旨在使交互特征适配每只手的需求，并过滤掉交互特征中的不相关信息。

FuseFormer中CA Transformer的输入。表3证明了我们使用JoinToken $t_j$和SimToken $t_S$分别作为FuseFormer中CA Transformer的查询向量和键-值对的策略是合理的。第五行与我们采用的设置（最后一行）对比可知，使用JoinToken作为查询向量时产生的3D误差比使用SimToken作为查询向量时更小。这表明我们的设置有效解决了第3.2节所述的查询-键相关性与值不匹配的问题。此外，我们的设置性能优于仅使用单一类型标记的情况（第三行和第四行），这说明我们的两种标记具有互补性。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Methods</td><td rowspan="2"># of params (M)</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhang et al. [^39]</td><td style='text-align: center; word-wrap: break-word;'>143.37</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>13.95</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;'>Keypoint Transformer [^12]</td><td style='text-align: center; word-wrap: break-word;'>117.05</td><td style='text-align: center; word-wrap: break-word;'>10.16</td><td style='text-align: center; word-wrap: break-word;'>14.36</td><td style='text-align: center; word-wrap: break-word;'>11.94</td><td style='text-align: center; word-wrap: break-word;'>30.87</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>IntagHand [^20]</td><td style='text-align: center; word-wrap: break-word;'>39.04</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>9.03</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;'>EANet (Light. Ours)</td><td style='text-align: center; word-wrap: break-word;'>33.90</td><td style='text-align: center; word-wrap: break-word;'>5.71</td><td style='text-align: center; word-wrap: break-word;'>7.66</td><td style='text-align: center; word-wrap: break-word;'>6.53</td><td style='text-align: center; word-wrap: break-word;'>34.29</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EANet (Ours)</td><td style='text-align: center; word-wrap: break-word;'>106.82</td><td style='text-align: center; word-wrap: break-word;'>4.81</td><td style='text-align: center; word-wrap: break-word;'>6.34</td><td style='text-align: center; word-wrap: break-word;'>5.45</td><td style='text-align: center; word-wrap: break-word;'>28.54</td></tr></table>

<div style="text-align: center;">Table 5: Quantitative comparison with state-of-the-art methods on InterHand2.6M [^27] dataset.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Methods</td><td colspan="3">MPVPE</td><td rowspan="2">MRRPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Single</td><td style='text-align: center; word-wrap: break-word;'>Two</td><td style='text-align: center; word-wrap: break-word;'>All</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Zhang et al. [^39]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>42.08</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;'>Keypoint Transformer [^12]</td><td style='text-align: center; word-wrap: break-word;'>60.19</td><td style='text-align: center; word-wrap: break-word;'>51.21</td><td style='text-align: center; word-wrap: break-word;'>54.71</td><td style='text-align: center; word-wrap: break-word;'>190.77</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>IntagHand [^20]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>45.74</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;'>EANet (Light. Ours)</td><td style='text-align: center; word-wrap: break-word;'>43.90</td><td style='text-align: center; word-wrap: break-word;'>38.47</td><td style='text-align: center; word-wrap: break-word;'>40.59</td><td style='text-align: center; word-wrap: break-word;'>83.44</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>EANet (Ours)</td><td style='text-align: center; word-wrap: break-word;'>32.82</td><td style='text-align: center; word-wrap: break-word;'>34.43</td><td style='text-align: center; word-wrap: break-word;'>33.80</td><td style='text-align: center; word-wrap: break-word;'>81.11</td></tr></table>

<div style="text-align: center;">Table 6: Quantitative comparison with state-of-the-art methods on HIC [^33] dataset.</div>

我们的模型产生的3D误差也低于使用两个手部特征（$F_L$和$F_R$）作为键值对的第二行模型。这证明了使用SimToken相较于这两个手部特征的优势。最后，我们的模型产生的结果远优于第一行模型，该模型使用JoinToken作为交互特征，且未在FuseFormer中采用CA Transformer。这表明仅使用JoinToken是不够的，必须借助CA Transformer才能融合FuseFormer的两种输入特征。

EABlock与SJT的组合。表4显示，我们提出的SJT与EABlock配合默契。仅使用SJT而不用EABlock时（第二行），性能有小幅提升；单独采用EABlock时（第三行），相比基线模型有显著改进。最重要的是，同时采用EABlock和SJT后，各项指标的性能均得到持续提升。

---

![Image](images/31f764906d1019957bf779ff782ee36c6cc125734fc907dd8b11bf25c4b58296.jpg)

<div style="text-align: center;">Figure 8: Comparison of t-SNEs and attention maps. Ours is from CA Transformer in extract stage of EABlock.</div>

#### 4.4. 与最先进方法的比较

在InterHand2.6M和HIC数据集上的比较。表5和表6显示，我们的EANet在Interhand2.6M [^27]和HIC [^33]数据集上均取得了最高性能。遵循以往的研究 [^20] [^39]，我们在与真实网格对齐后对MPVPE进行了测量。由于Keypoint Transformer的论文中未提及MPVPE数值，这些数字取自其官方发布的代码和预训练权重。在表5中，我们将本模型的性能与参数数量与此前的三维交互式手部网格恢复方法 [^27] [^25] [^10] [^12] 进行了对比。我们的EANet参数数量少于Keypoint Transformer [^12]和Zhang等人 [^39] 的方法，但性能却显著更优。此外，为了与参数数量少于我们的IntagHand [^20]进行公平比较，我们推出了轻量级版本的EANet，即EANet（Light）。对于EANet（Light），我们将通道维度从$c = C/8$缩减为$c = C/4$。即便参数更少，EANet（Light）的MPVPE表现仍优于IntagHand [^20]，进一步证明了我们所提方法的有效性。另外，在表6中，我们的EANet在HIC数据集上的性能也显著优于其他方法，显示出其强大的泛化能力。

此外，图7展示了我们的EANet与以往最先进方法 [^20] [^12] 在InterHand2.6M [^27]数据集及自然场景交互式手部图像上的视觉对比结果。结果凸显了我们的EANet在精确手部姿态与交互估计方面的卓越性能。

注意力图比较。图8对比了注意力图及其对应的t-SNE结果。在图8b中，Keypoint Transformer [^12]并未出现远距离标记问题，因为它没有将特征从骨干网络分离为左右手特征。然而，如表1所示，缺乏这种分离会导致网络性能欠佳。此外，其注意力图中强自相关性占主导，非对角线区域的关联性较弱。在图8c中，IntagHand存在远距离标记问题，因此无法生成两种不同姿态手部之间的恰当关联，导致所有查询与键之间的关联性普遍较低。相比之下，图8d显示我们的SimToken和JoinToken不存在远距离标记问题，且两者均呈现出平衡的高关联性。

![Image](images/f55c67e81af659a0697f1906c2f37087a6f2c9669f766eeacfb291f5ff850ac9.jpg)

<div style="text-align: center;">Figure 9: Comparison on InterHand2.6M [^27] sequences with various pose differences. x-axis represents pose difference between two hands. y-axis represents errors of the methods on each sequence with pose difference of x-axis.</div>

注意力图的左半部分和右半部分。由于注意力图的每一半都是根据每个查询与SimToken的每个手部区域计算得出的，因此两半中的高相关性表明我们的模型能够有效地利用左右手信息来处理每个查询。

对双手不对称姿态的鲁棒性。图9显示，与以往的最先进方法相比，我们的EANet对双手不对称姿态表现出显著更强的鲁棒性 [^39] [^12] [^20]。在本次分析中，我们从InterHand2.6M数据集 [^27] 中选取了6个序列，这些序列中双手的姿态相似度各不相同。图中的x轴代表每个选定序列中双手之间的平均姿态差异，数值越大表示姿态差异越大。值得注意的是，即使最右侧x值对应的姿态差异约为最左侧的7倍，我们的EANet产生的MPJPE值仍几乎保持一致。此外，对于所有序列，包括姿态差异最大的那些序列，我们的方法产生的MPJPE值都明显低于以往的方法。关于各序列姿态差异的计算方法，我们在补充材料中进行了说明。

### 5. 结论

我们提出了EANet——一种用于三维交互式手部网格恢复的提取与适配网络。借助核心模块EABlock，EANet通过解决远距离标记问题，有效学习双手之间的交互关系。EABlock主要由我们创新的基于Transformer的模块FuseFormer驱动，该模块利用SimToken和JoinToken来融合两类输入特征。通过从双手特征中提取交互信息，再在EABlock中将这种交互适配到每只手上，我们的EANet在复杂场景下恢复三维交互式手部网格的任务中取得了业界领先的性能。

致谢。本研究部分得到了韩国政府（MSIT）资助的IITP项目[编号2021-0-01343，人工智能研究生项目（首尔大学）、编号2021-0-02068和编号2023-0-00156]以及NRF项目[编号2021M3A9E4080782]的支持。

---

## 参考文献

[^1]: Anurag Arnab, Mostafa Dehghani, Georg Heigold, Chen Sun, Mario Lučić, and Cordelia Schmid. ViViT: A video vision transformer. In ICCV, 2021. 3

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

[^3]: Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. In NeurIPS, 2020. 3

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

[^5]: Chun-Fu Richard Chen, Quanfu Fan, and Rameswar Panda. CrossViT: Cross-attention multi-scale Vision Transformer for image classification. In ICCV, 2021. 4

[^6]: Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. ImageNet: A large-scale hierarchical image database. In CVPR, 2009. 3

[^7]: Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019. 3

[^8]: Xinhan Di and Pengqian Yu. LWA-HAND: Lightweight attention hand for interacting hand reconstruction. In ECCV, 2023. 1, 2, 3

[^9]: Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, et al. An image is worth $16 \times 16$ words: Transformers for image recognition at scale. In ICLR, 2021. 1, 3, 4

[^10]: 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, 8

[^11]: Yury Gorishniy, Ivan Rubachev, Valentin Khrulkov, and Artem Babenko. Revisiting deep learning models for tabular data. In NeurIPS, 2021. 3

[^12]: 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, 6, 7, 8

[^13]: Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, and Ross Girshick. Masked autoencoders are scalable vision learners. In CVPR, 2022. 3

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

[^15]: Max Jaderberg, Karen Simonyan, Andrew Zisserman, et al. Spatial transformer networks. In NeurIPS, 2015. 5

[^16]: Andrew Jaegle, Sebastian Borgeaud, Jean-Baptiste Alayrac, Carl Doersch, Catalin Ionescu, David Ding, Skanda Koppula, Daniel Zoran, Andrew Brock, Evan Shelhamer, et al. Perceiver IO: A general architecture for structured inputs & outputs. In ICLR, 2022. 2, 3

[^17]: Andrew Jaegle, Felix Gimeno, Andy Brock, Oriol Vinyals, Andrew Zisserman, and Joao Carreira. Perceiver: General perception with iterative attention. In ICML, 2021. 2, 3

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

[^19]: Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2014. 6

[^20]: 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. 1, 2, 3, 6, 7, 8

[^21]: Tao Liang, Guosheng Lin, Lei Feng, Yan Zhang, and Fengmao Lv. Attention is not enough: Mitigating the distribution discrepancy in asynchronous multimodal sequence fusion. In ICCV, 2021. 2

[^22]: Tatiana Likhomanenko, Qiantong Xu, Gabriel Synnaeve, Ronan Collobert, and Alex Rogozhnikov. CAPE: Encoding relative positions with continuous augmented positional embeddings. In NeurIPS, 2021. 3

[^23]: Min Lin, Qiang Chen, and Shuicheng Yan. Network in network. arXiv preprint arXiv:1312.4400, 2013. 5

[^24]: Rui Liu, Hanming Deng, Yangyi Huang, Xiaoyu Shi, Lewei Lu, Wenxiu Sun, Xiaogang Wang, Jifeng Dai, and Hongsheng Li. FuseFormer: Fusing fine-grained information in transformers for video inpainting. In ICCV, 2021. 3

[^25]: Gyeongsik Moon, Hongsuk Choi, and Kyoung Mu Lee. Accurate 3D hand pose estimation for whole-body 3D human mesh estimation. In CVPRW, 2022. 5, 8

[^26]: Gyeongsik Moon, Hongsuk Choi, and Kyoung Mu Lee. NeuralAnnot: Neural annotator for 3D human mesh training sets. In CVPRW, 2022. 3

[^27]: 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, 7, 8

[^28]: Arsha Nagrani, Shan Yang, Anurag Arnab, Aren Jansen, Cordelia Schmid, and Chen Sun. Attention bottlenecks for multimodal fusion. In NeurIPS, 2021. 2

[^29]: Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan, Edward Yang, Zachary DeVito, Zeming Lin, Alban Desmaison, Luca Antiga, and Adam Lerer. Automatic differentiation in PyTorch. 2017. 6

[^30]: Javier Romero, Dimitrios Tzionas, and Michael J Black. Embodied hands: Modeling and capturing hands and bodies together. In SIGGRAPH Asia, 2017. 5

[^31]: Vighnesh Shiv and Chris Quirk. Novel positional encodings to enable tree-based transformers. In NeurIPS, 2019. 3

[^32]: Xiao Sun, Bin Xiao, Fangyin Wei, Shuang Liang, and Yichen Wei. Integral human pose regression. In ECCV, 2018. 5

[^33]: 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, 6, 7, 8

## [^34]: Laurens Van der Maaten and Geoffrey Hinton. Visualizing data using t-SNE. JMLR, 2008. 2

---

[^35]: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NeurIPS, 2017. 1, 2, 3, 4, 5

[^36]: Hanqi Yan, Lin Gui, Wenjie Li, and Yulan He. Addressing token uniformity in Transformers via singular value transformation. In UAI, 2022. 3

[^37]: Li Yuan, Yunpeng Chen, Tao Wang, Weihao Yu, Yujun Shi, Zi-Hang Jiang, Francis EH Tay, Jiashi Feng, and Shuicheng Yan. Tokens-to-Token ViT: Training Vision Transformers from scratch on ImageNet. In ICCV, 2021. 3

[^38]: Wang Zeng, Sheng Jin, Wentao Liu, Chen Qian, Ping Luo, Wanli Ouyang, and Xiaogang Wang. Not all tokens are equal: Human-centric visual analysis via token clustering Transformer. In CVPR, 2022. 3

[^39]: Baowen Zhang, Yanggang Wang, Xiaoming Deng, Yinda Zhang, Ping Tan, Cuixia Ma, and Hongan Wang. Interacting two-hand 3D pose and shape reconstruction from single color image. In ICCV, 2021. 1, 3, 7, 8

[^40]: Yuxiao Zhou, Marc Habermann, Weipeng Xu, Ikhsanul Habibie, Christian Theobalt, and Feng Xu. Monocular real-time hand shape and motion capture using multi-modal data. In CVPR, 2020. 3

[^41]: Christian 7: Learning to estimate

 $^{2}$ 平方米
