# Mesh Graphormer

Kevin Lin、Lijuan Wang、Zicheng Liu

微软公司

{keli, lijuanw, zliu}@microsoft.com

## 摘要

我们提出了一种基于图卷积增强的Transformer模型，名为Mesh Graphormer，用于从单张图像中重建3D人体姿态和网格。近年来，Transformer和图卷积神经网络（GCNN）在人体网格重建领域均取得了令人瞩目的进展。基于Transformer的方法在建模3D网格顶点与身体关节之间的非局部交互方面表现优异，而GCNN则擅长利用预先指定的网格拓扑来挖掘邻域顶点间的交互信息。本文研究了如何在Transformer中结合图卷积与自注意力机制，以同时建模局部和全局交互。实验结果表明，我们提出的Mesh Graphormer在Human3.6M、3DPW和FreiHAND等多个基准数据集上均显著优于以往的最优方法。代码和预训练模型可在<https://github.com/microsoft/MeshGraphormer>获取。

### 1. 引言

从单张图像中重建3D人体姿态和网格是一个热门的研究方向，因为它在人机交互领域有着广泛的应用前景。然而，由于人体关节结构复杂，这一任务极具挑战性。

近年来，Transformer和图卷积神经网络（GCNN）在人体网格重建领域取得了显著进展。例如，近期研究[^20] [^5]指出，可利用GCNN通过考虑相邻顶点间的局部交互来直接回归网格顶点的3D坐标。在另一项研究中[^22]，研究者采用带有自注意力机制的Transformer编码器来捕捉身体关节与网格顶点间的全局交互，从而进一步提升了重建效果。

不过，正如文献中所讨论的那样[^41] [^40] [^8] [^41] [^3]，Transformer和卷积神经网络（CNN）各自存在局限性。Transformer擅长建模输入标记间的长距离依赖关系，但

![Image](images/7863426ee9999594b354611dfd5a9c64aeadab15844d88a65e0835746526475a.jpg)

<div style="text-align: center;">Figure 1: Summary. We study how to combine self-attentions and graph convolutions in a transformer for human mesh reconstruction. The proposed Graphormer outperforms existing graph convolution networks [^5] [^20] and transformer-based method [^22] by a clear margin. The numbers are the reconstruction error (PA-MPJPE) in the unit of millimeter. The lower the better.</div>

在捕捉细粒度的局部信息方面效率较低。相比之下，卷积层虽有助于提取局部特征，但往往需要多层结构才能捕捉到全局上下文信息。在自然语言处理和语音识别领域，Conformer[^8]是一种新近提出的技术，它利用了自注意力机制与卷积操作的互补性来学习表征。这启发我们将自注意力与图卷积相结合，用于3D人体网格重建（见图1）。

我们提出了一种名为Mesh Graphormer的基于图卷积增强的Transformer模型，用于从单张图像中重建人体姿态和网格。我们将图卷积模块嵌入Transformer块中，以增强相邻顶点与关节间的局部交互。为了充分发挥图卷积的优势，Graphormer能够关注所有包含更详细局部信息的图像网格特征，这些特征对优化3D坐标预测大有裨益。最终，Graphormer与图像网格特征相互强化，从而在人体姿态和网格重建任务中取得更佳性能。

大量实验表明，所提出的Mesh Graphormer能够有效建模局部和全局交互，且性能明显优于以往的最优方法。

---

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

<div style="text-align: center;">Figure 2: Architecture of a Graphormer Encoder. We propose a graph-convolution-reinforced transformer encoder to capture both global and local interactions for 3D human mesh reconstruction. The encoder consists of a stack of  $N = 4$ identical blocks.</div>

我们提供了在多个数据集中重建人体网格的方法。此外，我们还针对将图卷积和自注意力机制融入Transformer编码器的各种模型设计方案进行了消融研究。

本文的主要贡献包括

- 我们提出了一种名为Mesh Graphormer的图卷积增强型Transformer，用于建模局部和全局交互，以实现人体姿态和网格的3D重建。

- Mesh Graphormer允许关节和网格顶点自由关注图像网格特征，从而优化3D坐标预测。

• 在Human3.6M、3DPW和FreiHAND数据集上，Mesh Graphormer的性能均优于以往的最先进方法。

### 2. 相关工作

人体网格重建大致可分为参数化方法和非参数化方法。以往的大多数研究[^19] [^14] [^34] [^7] [^18] [^21] [^31]都采用SMPL等参数化人体模型[^24]，并将SMPL参数空间作为回归目标。给定姿态和形状系数后，SMPL在生成人体网格方面具有鲁棒性和实用性。然而，正如文献中所讨论的[^20] [^29] [^5] [^42]，从单张图像中估计准确的系数仍然很困难，研究人员[^4] [^30] [^18] [^27]正试图通过更多视觉证据来预测3D姿态，或采用密集对应图[^42] [^9]来提升重建效果。

与回归参数化系数不同，非参数化方法[^5] [^26] [^20]会直接从图像中回归顶点。在以往的研究中，图卷积神经网络（GCNN）[^17] [^5] [^20]是最受欢迎的选择之一，因为它能够基于给定的邻接矩阵[^32] [^5] [^20] [^38]来建模相邻顶点间的局部交互作用。不过，它在捕捉顶点与身体关节间的全局交互方面效率较低。为克服这一局限，基于Transformer的方法[^22]采用自注意力机制来自由关联网格中的顶点与身体关节，从而编码人体网格的非局部关系。然而，与基于GNN的方法相比，它建模局部交互并不那么便捷[^5] [^20]。

在上述研究中，METRO[^22]与我们提出的方法最为相关。METRO和我们提出的模型之间的主要区别在于，我们设计了用于重建人体网格的图卷积增强型Transformer编码器。此外，我们将图像网格特征作为输入标记加入Transformer，并允许关节和网格顶点关注网格特征。

Transformer架构正针对不同应用快速发展[^6] [^35] [^33] [^15] [^10]。其中一个重要方向是提升Transformer网络的表达能力，以实现更好的上下文建模。近期研究[^40] [^8]表明，在Transformer编码器中结合卷积与自注意力机制有助于改善表征学习。不过，以往的工作主要集中于语言建模和语音识别领域。当涉及到3D人体网格等复杂数据结构时，这仍是一个尚未解决的问题。

为应对这些挑战，我们研究了如何将图卷积注入Transformer编码器模块，以便更好地建模3D网格顶点与身体关节之间的局部及全局交互作用。

### 3. Graphormer编码器

图2展示了我们提出的Graphormer编码器的架构。它由$N = 4$个相同的模块堆叠而成。每个模块包含五个子模块，分别是层归一化、多头自注意力模块、图残差块、第二个层归一化，以及末端的多层感知机（MLP）。我们的Graphormer编码器与传统Transformer编码器的架构类似[^35]，但我们引入了图卷积来建模细粒度的局部交互。在后续章节中，我们将介绍多头自注意力（MHSA）模块和图残差块。

---

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

![Image](images/b6344555833d079330e98e833bf093b011f83763a7d17dee485a9634131e078d.jpg)

<div style="text-align: center;">Figure 3: Graphormer for Human Mesh Reconstruction. (a) Our end-to-end mesh regression framework takes an image as input and predicts 3D joints and mesh vertices at the same time. We extract both the grid features and a global feature vector using a pre-trained CNN. The features are then tokenized and fed to a multi-layer Graphormer encoder. Grid features and multi-layer Graphormer encoder are mutually reinforced to reconstruct an accurate human mesh. (b) Our multi-layer Graphormer encoder consists of three Graphormer encoder blocks. All encoders have the same number of input tokens. We gradually reduce the hidden sizes, and output the 3D coordinates of body joints and mesh vertices.</div>

#### 3.1. 多头自注意力

我们采用了Vaswani等人提出的多头自注意力（MHSA）模块[^35]，该模块通过并行使用多个自注意力函数来学习上下文表征。给定一个输入序列$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_n\} \in \mathbb{R}^{n \times d}$，其中d为隐藏层大小。它首先利用可训练参数$\mathbf{Q}$将输入序列投影为查询$\mathbf{K}$、键$\mathbf{V}$和值$\{\mathbf{W}_Q, \mathbf{W}_K, \mathbf{W}_V\} \in \mathbb{R}^{d \times d}$。具体表示为：

 $$ \mathbf{Q},\mathbf{K},\mathbf{V}=\mathbf{X}\mathbf{W}_{Q},\mathbf{X}\mathbf{W}_{K},\mathbf{X}\mathbf{W}_{V}\quad\in\mathbb{R}^{n\times d}. $$

这三个特征表示被拆分为h个不同的子空间，例如$\mathbf{Q} = [\mathbf{Q}^1, \mathbf{Q}^2, \ldots, \mathbf{Q}^h]$，其中$\mathbf{Q}^i \in \mathbb{R}^{n \times \frac{d}{h}}$，这样我们就可以针对每个子空间单独执行自注意力计算。对于每个子空间，输出$\mathbf{Y}^h = \{\mathbf{y}_1^h, \mathbf{y}_2^h, \ldots, \mathbf{y}_n^h\}$的计算方式如下：

 $$ \mathbf{y}_{i}^{h}=\mathbf{A}\mathbf{t}\mathbf{t}(\mathbf{q}_{i}^{h},\mathbf{K}^{h})\mathbf{V}^{h}\quad\in\mathbb{R}^{\frac{d}{h}}, $$

其中$\text{Att}(\cdot)$表示注意力函数[^35]，它通过缩放点积和softmax量化查询$\mathbf{q}_i^h$与键$\mathbf{K}^h$之间的语义相关性。每个子空间的输出$\mathbf{Y}^h \in \mathbb{R}^{n \times \frac{d}{h}}$随后会被拼接起来，形成最终输出$\mathbf{Y} \in \mathbb{R}^{n \times d}$。

#### 3.2. 图残差块

虽然MHSA在提取长距离依赖关系方面表现优异，但在捕捉3D网格等复杂数据结构中的细粒度局部信息方面效率较低。我们提出的网络中的图残差块旨在解决这一难题。

给定由MHSA生成的上下文特征$\mathbf{Y} \in \mathbb{R}^{n \times d}$，我们借助图卷积来优化局部交互：

 $$ \mathbf{Y}^{\prime}=\mathbf{G r a p h C o n v}(\mathbf{\bar{A}},\mathbf{Y};\mathbf{W}_{G})=\sigma(\mathbf{\bar{A}}\mathbf{Y}\mathbf{W}_{G}). $$

$\mathbf{\bar{A}} \in \mathbb{R}^{n \times n}$表示图的邻接矩阵，$\mathbf{W}_G$为可训练参数。$\sigma(\cdot)$是赋予网络非线性的激活函数。根据BERT的研究结论[^6]，本研究采用了高斯误差线性单元（GeLU）[^11]。

为了使用多层图卷积进行训练，我们遵循GraphCMR中的设计原则[^20]来构建图残差块。该网络架构在思想上与[^20]类似，但我们用层归一化[^39]替换了组归一化[^2]，并用GeLU[^28]替换了ReLU[^11]。这样做是为了使这类层与Transformer保持一致。

我们的图残差块能够显式地在网络中编码图结构，从而提升特征的空间局部性。

### 4. 用于网格重建的Graphormer

在本节中，我们将介绍如何将Graphormer编码器应用于从单张图像进行人体姿态和网格重建。

---

单张图像。

图3(a)展示了我们的端到端网格回归框架概览。大小为224×224的图像被用作输入，并从中提取图像网格特征。这些图像特征被转化为令牌，作为多层Graphormer编码器的输入。最终，我们的端到端框架能同时预测网格顶点和身体关节的3D坐标。

接下来，我们将介绍用于提取图像网格特征的图像基架构。随后，我们会描述用于回归3D顶点和身体关节的多层Graphormer编码器。最后，我们会讨论重要的训练细节。

#### 4.1. CNN与图像网格特征

在模型的第一部分，我们使用预训练的图像基CNN进行特征提取。以往的研究[^20] [^14] [^22]会提取一个2048维的全局图像特征向量作为模型输入。但这种方式的缺点是全局特征向量不包含细粒度的局部细节。这促使我们添加网格特征[^13]作为输入令牌，允许关节和网格顶点自由地关注所有网格特征。正如我们在实验中展示的那样，网格特征提供的局部信息能被Graphormer中的图卷积有效利用，从而优化网格顶点和身体关节的3D位置。

如图3(a)所示，我们从CNN的最后一个卷积块中提取网格特征。这些网格特征的大小通常为$7 \times 7 \times 1024$。它们被转化为49个令牌，每个令牌是一个1024维的向量。与[^22]类似，我们也会从CNN的最后一层隐藏层中提取2048维的图像特征向量，并利用人体模板网格中每个顶点和身体关节的3D坐标来进行位置编码。最后，我们通过MLP使所有输入令牌的尺寸保持一致。此后，所有输入令牌的维度均为2051。

#### 4.2. 多层Graphormer编码器

给定网格特征、关节查询向量和顶点查询向量后，我们的多层Graphormer编码器会依次降低维度，从而同时将输入映射为3D身体关节和网格顶点。

如图3(b)所示，我们的多层Graphormer编码器由三个编码器块组成。这三个编码器块包含的令牌数量相同，包括49个网格特征令牌、14个关节查询向量和431个顶点查询向量。不过，这三个编码器的隐藏维度各不相同。在本研究中，这三个编码器的隐藏维度分别为1024、256和64。

与[^22]类似，我们的多层Graphormer编码器会处理一个包含431个顶点的粗糙网格。我们使用粗糙的模板网格进行位置编码，而Graphormer编码器会输出一个粗糙网格。随后，我们通过线性投影将粗糙网格采样至原始分辨率（在SMPL网格拓扑中共有6K个顶点）。正如文献[^20]和[^22]中所解释的那样，先学习粗糙网格再进行上采样，有助于避免原始网格中的冗余，并能提升训练效率。

#### 4.3. 训练细节

遵循METRO [^22]的做法，我们在训练模型时除了使用Graphormer的输出外，还会应用$L_{1}$损失。训练中我们还采用掩码顶点建模技术[^22]来提高模型的鲁棒性。具体来说，我们对3D网格顶点和身体关节应用$L_{1}$损失；为了提升图像与重建网格之间的对齐度，我们也对2D投影后的身体关节应用$L_{1}$损失。此外，我们对粗糙网格施加中间监督以加速收敛。

我们使用Adam优化器[^16]来训练Graphormer模型。Graphormer和CNN骨干网络的初始学习率均设为$1 \times 10^{-4}$。模型训练共进行200个周期，在100个周期后学习率会降低为原来的十分之一。所有Graphormer权重均为随机初始化，CNN骨干网络则使用ImageNet预训练权重进行初始化。按照[^22]的做法，我们报告了基于HRNet骨干网络[^37]的实验结果。

### 5. 实验

本节中，我们首先介绍训练所使用的数据集，接着将我们的方法与以往的最先进方法进行比较，最后会对模型架构展开深入的消融研究。

#### 5.1. 数据集

我们利用公开可用的数据集进行了大量训练，包括Human3.6M[^12]、MuCo-3DHP[^25]、UP-3D[^21]、COCO[^23]和MPII[^1]。需要注意的是，由于许可问题，Human3.6M[^12]中的3D网格训练数据无法使用。因此，我们采用了来自[^5] [^26]的伪3D网格训练数据。我们遵循常规设置：训练时使用受试者S1、S5、S6、S7和S8，测试时使用受试者S9和S11。所有结果均按照P2协议[^14] [^19]呈现。为了与先前的最先进方法[^18] [^22]进行公平比较，我们在3DPW实验中也使用了3DPW[^36]的训练数据。

我们还将该方法应用于3D手部重建任务。我们在FreiHAND [^44]数据集上训练模型，并通过其在线服务器进行评估。需要注意的是，FreiHAND实验我们采用了测试时增强技术。

#### 5.2. 主要结果

我们在Human3.6M和3DPW数据集上将我们的方法与以往的人体网格重建方法进行了比较。从表1中可以看出，我们的方法在这两个数据集上的表现均优于以往的最先进水平。这包括

---

![Image](images/349f6c449ac3421ce0f2b8911197fd6d2ee20ec98dd8a9bbd4bcbd6f7295e55d.jpg)

<div style="text-align: center;">Figure 4: Qualitative results of our method on different datasets. The top two rows are the results on Human3.6M, and the bottom two rows are the results on 3DPW.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td colspan="3">3DPW</td><td colspan="2">Human3.6M</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MPVE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>MPJPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE $\downarrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>HMR [^14]</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;'>81.3</td><td style='text-align: center; word-wrap: break-word;'>88.0</td><td style='text-align: center; word-wrap: break-word;'>56.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>GraphCMR [^20]</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;'>70.2</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>50.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>SPIN [^19]</td><td style='text-align: center; word-wrap: break-word;'>116.4</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>59.2</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>41.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pose2Mesh [^5]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>89.2</td><td style='text-align: center; word-wrap: break-word;'>58.9</td><td style='text-align: center; word-wrap: break-word;'>64.9</td><td style='text-align: center; word-wrap: break-word;'>47.0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>I2LMeshNet [^26]</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>93.2</td><td style='text-align: center; word-wrap: break-word;'>57.7</td><td style='text-align: center; word-wrap: break-word;'>55.7</td><td style='text-align: center; word-wrap: break-word;'>41.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>VIBE [^18]</td><td style='text-align: center; word-wrap: break-word;'>99.1</td><td style='text-align: center; word-wrap: break-word;'>82.0</td><td style='text-align: center; word-wrap: break-word;'>51.9</td><td style='text-align: center; word-wrap: break-word;'>65.6</td><td style='text-align: center; word-wrap: break-word;'>41.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^22]</td><td style='text-align: center; word-wrap: break-word;'>88.2</td><td style='text-align: center; word-wrap: break-word;'>77.1</td><td style='text-align: center; word-wrap: break-word;'>47.9</td><td style='text-align: center; word-wrap: break-word;'>54.0</td><td style='text-align: center; word-wrap: break-word;'>36.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mesh Graphormer</td><td style='text-align: center; word-wrap: break-word;'>87.7</td><td style='text-align: center; word-wrap: break-word;'>74.7</td><td style='text-align: center; word-wrap: break-word;'>45.6</td><td style='text-align: center; word-wrap: break-word;'>51.2</td><td style='text-align: center; word-wrap: break-word;'>34.5</td></tr></table>

<div style="text-align: center;">Table 1: Performance comparison with the previous state-of-the-art methods on 3DPW and Human3.6M datasets.</div>

基于GCNN的模型[^20]和[^5]，以及基于Transformer的方法[^22]。这表明Graphormer模型能够更好地捕捉局部和全局交互信息，从而实现更精确的网格重建。

图4展示了我们的方法在Human3.6M和3DPW数据集上的定性结果。可以看出，我们的方法对具有挑战性的姿态和嘈杂的背景具有很强的鲁棒性。

我们还将该方法应用于3D手部重建任务，并在FreiHAND数据集上与其他现代方法进行比较[^22] [^5] [^26] [^44]。从表2中可以看出，我们的方法的表现远优于现有技术。这证明了我们的方法对其他物体同样具备良好的泛化能力。

图5展示了我们的方法在FreiHAND测试集上的定性结果。可以看出，Graphormer能够

---

![Image](images/6ae207996579ef342538ffb43f327c149534a14b59f59b7d9987ccef6f8ac9cf.jpg)

<div style="text-align: center;">Figure 5: Qualitative results of our method on FrieHAND test set. Graphormer generalizes to 3D hand reconstruction even if the gestures are novel and complicated.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>PA-MPVPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE $\downarrow$</td><td style='text-align: center; word-wrap: break-word;'>F@5 mm $\uparrow$</td><td style='text-align: center; word-wrap: break-word;'>F@15 mm $\uparrow$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Hasson et al [^14]</td><td style='text-align: center; word-wrap: break-word;'>13.2</td><td style='text-align: center; word-wrap: break-word;'>—</td><td style='text-align: center; word-wrap: break-word;'>0.436</td><td style='text-align: center; word-wrap: break-word;'>0.908</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Boukhayma et al. [^20]</td><td style='text-align: center; word-wrap: break-word;'>13.0</td><td style='text-align: center; word-wrap: break-word;'>—</td><td style='text-align: center; word-wrap: break-word;'>0.435</td><td style='text-align: center; word-wrap: break-word;'>0.898</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>FreiHAND [^19]</td><td style='text-align: center; word-wrap: break-word;'>10.7</td><td style='text-align: center; word-wrap: break-word;'>—</td><td style='text-align: center; word-wrap: break-word;'>0.529</td><td style='text-align: center; word-wrap: break-word;'>0.935</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Pose2Mesh [^5]</td><td style='text-align: center; word-wrap: break-word;'>7.8</td><td style='text-align: center; word-wrap: break-word;'>7.7</td><td style='text-align: center; word-wrap: break-word;'>0.674</td><td style='text-align: center; word-wrap: break-word;'>0.969</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>I2LMeshNet [^26]</td><td style='text-align: center; word-wrap: break-word;'>7.6</td><td style='text-align: center; word-wrap: break-word;'>7.4</td><td style='text-align: center; word-wrap: break-word;'>0.681</td><td style='text-align: center; word-wrap: break-word;'>0.973</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>METRO [^22]</td><td style='text-align: center; word-wrap: break-word;'>6.7</td><td style='text-align: center; word-wrap: break-word;'>6.8</td><td style='text-align: center; word-wrap: break-word;'>0.717</td><td style='text-align: center; word-wrap: break-word;'>0.981</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mesh Graphormer</td><td style='text-align: center; word-wrap: break-word;'>5.9</td><td style='text-align: center; word-wrap: break-word;'>6.0</td><td style='text-align: center; word-wrap: break-word;'>0.764</td><td style='text-align: center; word-wrap: break-word;'>0.986</td></tr></table>

<div style="text-align: center;">Table 2: Performance comparison with the previous state-of-the-art methods on FreiHAND dataset.</div>

用于重建3D手部模型，即便目标手势是新颖且复杂的。

#### 5.3. 消融实验

我们在Human3.6M数据集上开展了大规模的消融实验[^12]，以探究模型的能力。我们使用3D姿态精度来评估模型，并通过PA-MPJPE指标来报告精度[^43] [^14] [^19] [^20]。

网格特征的有效性：在首次消融实验中，我们重点关注向Transformer编码器添加图像网格特征所产生的影响。我们实现了一个基线模型[^22]，该模型将图像网格特征作为输入。表3显示，加入图像网格特征后，重建性能有了显著提升。这表明使用单一的全局特征向量是现有技术的性能瓶颈之一。

接下来可能会有人问：哪些特征图对训练Transformer编码器至关重要？我们进行了

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Transformer [^22]</td><td style='text-align: center; word-wrap: break-word;'>36.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Transformer + Grid Features</td><td style='text-align: center; word-wrap: break-word;'>35.9</td></tr></table>

<div style="text-align: center;">Table 3: Analysis of the effective of using the image grid features in a transformer framework.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Grid Features</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><td style='text-align: center; word-wrap: break-word;'>D</td><td style='text-align: center; word-wrap: break-word;'>E</td><td style='text-align: center; word-wrap: break-word;'>F</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</td><td style='text-align: center; word-wrap: break-word;'>37.1</td><td style='text-align: center; word-wrap: break-word;'>37.7</td><td style='text-align: center; word-wrap: break-word;'>36.3</td><td style='text-align: center; word-wrap: break-word;'>38.1</td><td style='text-align: center; word-wrap: break-word;'>36.0</td><td style='text-align: center; word-wrap: break-word;'>35.9</td></tr></table>

<div style="text-align: center;">Table 4: Performance comparison of the use of different image grid features from the HRNet.</div>

![Image](images/fac210d53ed021f6ad1d9fc8fc2e1b5bd72d64d6d9967463dddf4e212336bd9f.jpg)

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Encoder1</td><td style='text-align: center; word-wrap: break-word;'>Encoder2</td><td style='text-align: center; word-wrap: break-word;'>Encoder3</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</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;'>35.9</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;'>36.7</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;'>36.2</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;'>35.1</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;'>36.0</td></tr></table>

<div style="text-align: center;">Figure 6: Illustration of different grid features we extracted from HRNet [^37] for ablation study.</div>

<div style="text-align: center;">Table 5: Ablation study of Graphormer Block for three encoders used for human mesh regression. ✓: Add graph convolution into the specified transformer encoder; X: No graph convolution in the specified transformer encoder.</div>

针对HRNet中多种特征图的分析[^37]。图6展示了我们为实验选取的六种特征图，表4则给出了性能对比结果。我们发现，最新的特征图（图6中标记为F）的效果优于其他特征图。结果表明，特征金字塔有助于提升Transformer编码器的性能。

添加图卷积的有效性：一个重要的问题是，向Transformer中添加图卷积是否有用。在本实验中，我们研究了图卷积的作用，以及图卷积与

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Model Architecture</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Graph Conv. and MHSA in parallel</td><td style='text-align: center; word-wrap: break-word;'>36.4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Graph Conv. before MHSA</td><td style='text-align: center; word-wrap: break-word;'>35.6</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Graph Conv. after MHSA</td><td style='text-align: center; word-wrap: break-word;'>35.1</td></tr></table>

<div style="text-align: center;">Table 6: Performance comparison between different design options of the architecture of Graphormer Block.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Design Choices</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Grid Features</td><td style='text-align: center; word-wrap: break-word;'>35.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Grid Features + Graph Conv.</td><td style='text-align: center; word-wrap: break-word;'>35.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Grid Features + Graph Res. Block</td><td style='text-align: center; word-wrap: break-word;'>34.5</td></tr></table>

<div style="text-align: center;">Table 7: Ablation study of the basic graph convolution and Graph Residual Block.</div>

Transformer相结合的方式。

由于我们提出的框架包含三个编码器模块，我们通过逐步在每个编码器中添加图卷积层并比较性能，来考察图卷积的效果。表5中第一行对应不使用任何图卷积的基线模型，其余行则显示了在不同编码器模块中添加图卷积层后的结果。结果呈现出一些有趣的发现：(i) 向Encoder1或Encoder2添加图卷积并不会提升性能；(ii) 向Encoder3添加图卷积可使PA-MPJPE降低0.9。这些结果表明，较低层的编码器侧重于建模人体姿态的网格顶点间的全局交互，而较高层的编码器则更关注局部交互以实现更好的形状重建。

编码器架构分析：我们进一步研究了编码器模块中的网络架构。具体而言，我们通过三种不同设计来探究MHSA模块（多头自注意力机制）与图卷积模块之间的关系：(i) 我们采用与[^40]类似的方式，将图卷积层与MHSA并行使用；(ii) 我们先使用图卷积层，再使用MHSA；(iii) 我们先使用MHSA，再使用图卷积层。关于这三种架构设计的图示说明，请参阅补充材料。从表6中可以看出，在MHSA之后直接添加图卷积层的设计效果明显优于其他方案。

添加图残差块的有效性：在前几节中，我们探讨了在Transformer编码器中应用基础图卷积层的情况。在此，我们将实验范围扩展到图残差块。具体来说，我们用图残差块替换图卷积层以提升模型容量。从表7中我们可以看到，

---

![Image](images/ebbe474c2192235348a68cc644ecae5db6c2dd0567c285096f41f01656b036cf.jpg)

<div style="text-align: center;">Figure 7: Qualitative comparison. The top row (with pink mesh) shows the results of a transformer baseline [^22] which has no graph convolutions. The bottom row (with blue mesh) shows our results with Graphormer. The attention visualization shows the interactions between the left knee and all other vertices, and the brighter color indicates stronger interactions. As can be seen, Graphormer is helpful to model both global and local interactions among vertices and body joints, and achieves a more accurate reconstruction. Please note the color of each attention map is normalized with respect to the maximum attention. Figure 6 in the supplementary material shows the attention maps without color normalization.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Grid Features</td><td style='text-align: center; word-wrap: break-word;'>Graph Conv.</td><td style='text-align: center; word-wrap: break-word;'>Graph Res.</td><td style='text-align: center; word-wrap: break-word;'>PA-MPJPE</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;'>36.7</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;'>36.7</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;'>36.6</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;'>35.9</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;'>35.1</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;'>34.5</td></tr></table>

<div style="text-align: center;">Table 8: Ablation study of different combinations of image grid features and graph convolutions.</div>

图残差块的效果优于基础图卷积层。

网格特征与图卷积之间的关系：一个有趣的问题是，当我们使用Graphormer编码器但不使用网格特征时会发生什么。为解答这一问题，表8给出了相关对比结果。

首先，表8的第一行对应基线模型，该模型在Transformer中既不使用网格特征也不使用图卷积。与表8的第四行相比可以发现，仅启用网格特征就能使PA-MPJPE指标提升0.8。接下来，如表8第三行所示，仅启用图卷积时，PA-MPJPE仅提升0.1。最后，如表8最下方一行所示，当同时启用网格特征和图卷积时，PA-MPJPE最终提升了2.2，这一数值远大于两种单独改进效果之和$(0.1 + 0.8)$。这表明网格特征与图卷积能够相互促进，从而进一步提升性能。

局部交互的可视化：我们进一步研究了Graphormer在学习身体关节与网格顶点之间的全局及局部交互方面的作用。我们从最后一个编码器的最后一层提取注意力图，并计算所有注意力头的平均注意力值。我们将Graphormer的自注意力结果与现有方法[^22]的结果进行对比。图7展示了定性对比结果。从图7的上排可以看出，原有方法[^22]无法建模左膝与左脚趾之间的交互关系；相比之下，如图7下排所示，Graphormer能够建模全局及局部交互，尤其是左膝与左脚趾之间的交互。因此，与以往方法相比，Graphormer能重建出更合理的形状。

### 6. 结论

我们提出了Mesh Graphormer，这是一种全新的Transformer架构，它结合了图卷积与自注意力机制，能够从单张图像中重建人体姿态和网格。我们探索了多种模型设计方案，并证明图卷积与网格特征均有助于提升Transformer的性能。实验结果表明，我们的方法在Human3.6M、3DPW和FreiHAND数据集上均取得了新的最优性能。

---

## 参考文献

[^1]: Mykhaylo Andriluka, Leonid Pishchulin, Peter Gehler, and Bernt Schiele. 2d human pose estimation: New benchmark and state of the art analysis. In CVPR, 2014. 4

[^2]: Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint arXiv:1607.06450, 2016. 3

[^3]: Yunpeng Chen, Yannis Kalantidis, Jianshu Li, Shuicheng Yan, and Jiashi Feng. A2-nets: Double attention networks. arXiv preprint arXiv:1810.11579, 2018. 1

[^4]: Hongsuk Choi, Gyeongsik Moon, and Kyoung Mu Lee. Beyond static features for temporally consistent 3d human pose and shape from a video. arXiv e-prints, pages arXiv–2011, 2020. 2

[^5]: 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. 1,2,4,5,6

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

[^7]: Peng Guan du R O Balan, and Mich pose from

[^8]: Anmol Gulati, James Qin, Chung-Cheng Chiu, Niki Parmar, Yu Zhang, Jiahui Yu, Wei Han, Shibo Wang, Zhengdong Zhang, Yonghui Wu, et al. Conformer: Convolutionaugmented transformer for speech recognition. In INTERSPEECH, 2020. 1, 2

[^9]: Riza Alp Güler, Natalia Neverova, and Iasonas Kokkinos. Densepose: Dense human pose estimation in the wild. In CVPR, 2018. 2

[^10]: Kai Han, Yunhe Wang, Hanting Chen, Xinghao Chen, Jianyuan Guo, Zhenhua Liu, Yehui Tang, An Xiao, Chunjing Xu, Yixing Xu, et al. A survey on visual transformer. arXiv preprint arXiv:2012.12556, 2020. 2

[^11]: Dan Hendrycks and Kevin Gimpel. Gaussian error linear units (gelus). arXiv preprint arXiv:1606.08415, 2016. 3

[^12]: Catalin Ionescu, Dragos Papava, Vlad Olaru, and Cristian Sminchisescu. Human3.6m: Large scale datasets and predictive methods for 3d human sensing in natural environments. IEEE Transactions on Pattern Analysis and Machine Intelligence, 36(7):1325–1339, 2014. 4, 6

[^13]: Huaizu Jiang, Ishan Misra, Marcus Rohrbach, Erik Learned-Miller, and Xinlei Chen. In defense of grid features for visual question answering. In CVPR, 2020. 4

[^14]: Angjoo Kanazawa, Michael J Black, David W Jacobs, and Jitendra Malik. End-to-end recovery of human shape and pose. In CVPR, 2018. 2, 4, 5, 6

[^15]: Salman Khan, Muzammal Naseer, Munawar Hayat, Syed Waqas Zamir, Fahad Shahbaz Khan, and Mubarak Shah. Transformers in vision: A survey. arXiv preprint arXiv:2101.01169, 2021. 2

[^16]: Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014. 4

[^17]: Thomas N Kipf and Max Welling. Semi-supervised classification with graph convolutional networks. arXiv preprint arXiv:1609.02907, 2016. 2

[^18]: Muhammed Kocabas, Nikos Athanasiou, and Michael J. Black. Vibe: Video inference for human body pose and shape estimation. In CVPR, 2020. 2, 4, 5

[^19]: Nikos Kolotouros, Georgios Pavlakos, Michael J Black, and Kostas Daniilidis. Learning to reconstruct 3d human pose and shape via model-fitting in the loop. In ICCV, 2019. 2, 4, 5, 6

[^20]: Nikos Kolotouros, Georgios Pavlakos, and Kostas Daniilidis. Convolutional mesh regression for single-image human shape reconstruction. In CVPR, 2019. 1, 2, 3, 4, 5, 6

[^21]: Christoph Lassner, Javier Romero, Martin Kiefel, Federica Bogo, Michael J Black, and Peter V Gehler. Unite the people: Closing the loop between 3d and 2d human representations. In CVPR, 2017. 2, 4

[^22]: Kevin Lin, Lijuan Wang, and Zicheng Liu. End-to-end human pose and mesh reconstruction with transformers. In CVPR, 2021. 1, 2, 4, 5, 6, 7, 8

[^23]: Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C Lawrence Zitnick. Microsoft coco: Common objects in context. In ECCV, 2014. 4

[^24]: Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J Black. Smpl: A skinned multi-person linear model. ACM Transactions on Graphics, 34(6):248, 2015. 2

[^25]: Dushyant Mehta, Oleksandr Sotnychenko, Franziska Mueller, Weipeng Xu, Srinath Sridhar, Gerard Pons-Moll, and Christian Theobalt. Single-shot multi-person 3d pose estimation from monocular rgb. In 3DV, 2018. 4

[^26]: 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. 2, 4, 5, 6

[^27]: Gyeongsik Moon and Kyoung Mu Lee. Pose2pose: 3d positional pose-guided 3d rotational pose prediction for expressive 3d human pose and mesh estimation. arXiv preprint arXiv:2011.11534, 2020. 2

[^28]: Vinod Nair and Geoffrey E Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010. 3

[^29]: Mohamed Omran, Christoph Lassner, Gerard Pons-Moll, Peter Gehler, and Bernt Schiele. Neural body fitting: Unifying deep learning and model based human pose and shape estimation. In 3DV, 2018. 2

[^30]: Georgios Pavlakos, Jitendra Malik, and Angjoo Kanazawa. Human mesh recovery from multiple shots. arXiv preprint arXiv:2012.09843, 2020. 2

[^31]: Georgios Pavlakos, Luyang Zhu, Xiaowei Zhou, and Kostas Daniilidis. Learning to estimate 3d human pose and shape from a single color image. In CVPR, 2018. 2

## [^32]: Anurag Ranjan, Timo Bolkart, Soubhik Sanyal, and Michael J Black. Generating 3d faces using convolutional mesh autoencoders. In ECCV, 2018. 2

---

[^33]: Yi Tay, Mostafa Dehghani, Dara Bahri, and Donald Metzler. Efficient transformers: A survey. arXiv preprint arXiv:2009.06732, 2020. 2

[^34]: Hsiao-Yu Tung, Hsiao-Wei Tung, Ersin Yumer, and Katerina Fragkiadaki. Self-supervised learning of motion capture. In NeurIPS, 2017. 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. 2, 3

[^36]: Timo von Marcard, Roberto Henschel, Michael Black, Bodo Rosenhahn, and Gerard Pons-Moll. Recovering accurate 3d human pose in the wild using imus and a moving camera. In ECCV, 2018. 4

[^37]: Jingdong Wang, Ke Sun, Tianheng Cheng, Borui Jiang, Chaorui Deng, Yang Zhao, Dong Liu, Yadong Mu, Mingkui Tan, Xinggang Wang, Wenyu Liu, and Bin Xiao. Deep high-resolution representation learning for visual recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019. 4,7

[^38]: Nanyang Wang, Yinda Zhang, Zhuwen Li, Yanwei Fu, Wei Liu, and Yu-Gang Jiang. Pixel2mesh: Generating 3d mesh models from single rgb images. In ECCV, 2018. 2

[^39]: Yuxin Wu and Kaiming He. Group normalization. In ECCV, 2018. 3

[^40]: Zhanghao Wu, Zhijian Liu, Ji Lin, Yujun Lin, and Song Han. Lite transformer with long-short range attention. In ICLR, 2020. 1, 2, 7

[^41]: Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, and Quoc V Le. Qanet: Combining local convolution with global self-attention for reading comprehension. In ICLR, 2018. 1

[^42]: Hongwen Zhang, Jie Cao, Guo Lu, Wanli Ouyang, and Zhenan Sun. Learning 3d human shape and pose from dense body parts. IEEE Trans. Pattern Anal. Mach. Intell., 2020. 2

[^43]: Xiaowei Zhou, Menglong Zhu, Georgios Pavlakos, Spyridon Leonardos, Konstantinos G Derpanis, and Kostas Danilidis. Monocap: Monocular human motion capture using a cnn coupled with a geometric prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018. 6

[^44]: 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. 4,5
