电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

597次阅读
没有评论

点击下方卡片,关注AI视界引擎」公众号

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

近年来,视觉Transformer及其各种形式在人体姿态估计中具有重要意义。通过将图像块视为Token,Transformer可以明智地捕获全局关系,通过利用视觉Token来估计关键点Token,并识别人体的姿势。然而,全局注意力在计算上具有挑战性,这使得将基于Transformer的方法扩展到高分辨率特征具有难度。

在本文中引入了关键点Token注意力中的稀疏性和视觉Token注意力中的稀疏性,以提高人体姿态估计。在MPII数据集上的实验结果表明,作者的模型具有更高的准确度,证明了该方法的可行性,并实现了新的最先进的结果。这个想法也可以为其他基于Transformer的模型提供参考。

1 Introduction

人体姿态估计是给定图像或视频恢复人体解剖学关键点的过程,这依赖于视觉线索和关键点约束关系。人体姿态估计最常用的方法是使用卷积神经网络(CNNs)从输入图像中提取特征。然而,它们存在一些局限性和挑战。人体关节高度相关,受到强烈的动力学和物理限制。因此,卷积神经网络(CNNs)的有限接收范围可能导致关节之间存在的长程约束捕捉不佳。

视觉Transformer及其变体在各种视觉任务上展现出令人印象深刻的表现。与卷积神经网络(CNNs)相比,Transformer的自注意力机制可以捕捉到长程依赖性并更好地学习关键点之间的关系。在单视图2D人体姿态估计中,TransPose和TokenPose已经实现了最先进的结果。

通常,特征图被 flatten 成一维的Token序列,然后被输入到 Transformer 中。TokenPose 将关键点分为两类,视觉Token和关键点Token。视觉Token通常指的是用于编码图像或视频帧中的外观和上下文信息的视觉特征或表示。另一方面,关键点Token指的是在姿态估计任务中感兴趣的特定身体关键点,以图像中的坐标或3D空间中的表示。

然而,由于维数变换,计算复杂度很高,输入序列的长度为二次方。因此,将这些方法扩展到高分辨率特征图是具有挑战性的。此外,注意力图通常非常稀疏,只关注一个小局部区域。大部分冗余区域可以移动到加快训练过程。这也促使作者对加强关键点Token之间的联系产生兴趣,因为作者可以通过人体解剖学中的某些关节接触来泛化数学矩阵。

在本文中,作者提出了一种更高效、准确的基于TokenPose Transformer的Transformer模型,名为Improve TokenPose with Sparsity。

具体而言,作者关注两种稀疏Token,即人体关节关键点Token和注意力级别的视觉Token。在关键点Token上,作者指的是人体生理结构,通过稀疏关节Mask来加强相关关节之间的连接。在视觉Token上,作者通过剪枝注意力连接引入了稀疏性。作者发现剪枝这些稀疏Token不会降低准确性,但可以加速整个网络。

改进TokenPose with Sparsity的主要贡献可以概括如下:

  1. 作者提出了一种基于注意力的剪枝策略,动态地升级稀疏注意力Mask。通过关注更重要的视觉Token,作者可以在训练过程中同时实现Token和注意力连接,同时利用它们的稀疏性。作者的方法不需要复杂的Token选择模块或额外的训练损失或超参数。

  2. 作者提出了一种基于人体结构的自定义稀疏关节Mask。通过使用图度,作者可以预定义一个0-1Mask,以强调相邻关节和镜像关节之间的连接。

  3. 作者在MPII数据集上进行了大量的实验,并通过实验分析证明了该方法的可行性。

2 Related Work

Vision Transformer

视觉Transformer(ViT)最初是用于自然语言处理,已被证明在Token序列中捕获长程依赖性是有效的。ViT的关键思想是将Transformer架构直接应用于图像块。最近,它们在各种应用中显示了显著的成功,如分类、目标检测和语义分割。

自从引入以来,ViT已在图像识别的多个基准数据集上实现了最先进的表现,包括ImageNet。ViT也激发了在视觉Transformer领域进一步的研究,包括性能改进的ViT变体,如DeiT,以及用于高效训练视觉Transformer的方法,如TNT。然而,在训练和推理期间,它们的高计算和内存使用会阻碍它们的泛化。

现有的压缩算法通常关注高效的推理,并依赖于预训练的密集模型,而忽视了耗时的训练。研究人员已经提出了几种改进ViT效率的方法。例如,网络剪枝、纯ViT、知识蒸馏和量化已被应用于ViT,其他算法引入了CNN属性来减轻计算全局注意力的负担。

此外,一些模型通过聚合相邻Token来简化输入Token。他们的核心思想是使用可学习的注意力权重来挖掘Token,或者根据分类Token减少和重新组织图像Token。例如,Token-to-tokens、TokenLearner、DynamicViT和EViT。然而,这些模型只被设计用于分类任务,其中最终预测仅依赖于分类Token,而在人体姿态估计中,还需要考虑空间线索和关节关联。

Human Pose Estimation

人体姿态估计是计算机视觉中的一个重要研究领域,它涉及从图像或视频中估计人的身体关节位置和方向。以前,在2D人体姿态估计中提出了许多卷积神经网络(CNN)模型。尽管它在捕获局部信息方面具有公认的有效性,但卷积神经网络在模拟长程关系方面仍然存在困难。这在人体姿态估计方面尤其具有挑战性。

因此,许多工作已经探索了人体姿态估计的 efficient 架构设计。例如,HRNet 是一个多阶段、高分辨率的网络,专门用于人体姿态估计。它使用了一个高分辨率的特征提取阶段,然后是一组并行分支,它们通过在不同尺度上组合信息来实现最先进的结果。轻量级 HRNet 是一个具有有限计算资源的 HRNet 的轻量级版本。

通过减少原始 HRNet 中通道和层数,同时保留其多分辨率特征提取和集成能力,它实现了这个目标。其他工作也是为实时姿态估计而设计的。然而,它们的主要焦点是基于 CNN 的网络,而没有他们的研究探索基于 Transformer 的网络。

最近,许多工作使用 Transformer 网络进行人体姿态估计。例如,TransPose 利用 transformers 说明关键点预测的相互依赖性,TokenPose 引入额外的关键点Token来获取约束关系和外观线索,并使用 transformer 模块捕捉人体姿态估计中身体部分之间的长程依赖性。这些工作突显了基于 Transformer 的模型在人体姿态估计中的日益广泛应用。通过利用自注意力机制和捕获全局依赖性,基于 Transformer 的方法已经展示了有前景的结果,并开辟了提高姿态估计系统准确性和鲁棒性的新途径。

CNNs 和 Transformer 模型在人体姿态估计任务中都是有效的。CNNs 非常适合提取局部特征和处理空间变化,而 Transformer 模型在捕捉身体部分之间的复杂全局关系方面表现更好。两者都强调对全局信息、效率和抗噪声的关注。

3 Methodology

Overview

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

图 2 是作者改进的 TokenPose with Sparsity 的概述。输入图像 首先经过 CNN Backbone网络并输出特征图 。然后,特征图被分割成 patches ,并 flattened 为 1D 向量 是每个图像块的分辨率。 是隐层嵌入的维度。 是总的 patch 数量。

然后,通过线性投影,flattened vectors 产生了视觉Token 是 2D 位置编码 种特定类型的Token随机初始化以表示单个关键点Token 。视觉Token和关键点Token随后被输入到 Transformer 编码器中。Transformer的输入是

Transformer总共包含 层。编码层由多头自注意力组成。每个层的自注意力都可以捕获外观和解剖学约束线索。在选择的第 层,作者使用遮挡的多头自注意力机制来利用视觉Token注意力的稀疏性,更好地衡量图像的复杂性(见 3.2)。

在第 层之后,输出关键点Token被放入具有自定义稀疏关节Mask 的 $L_{1}(L_{1}<l)$ 层图transformer中,该图transformer具有与transformer相同的结构,只是这次作者将关节mask作为初始的注意力mask。通过图transformer层,作者再次强调人体结构的重要性。最后,mlp=”” 头部使用最后一个图transformer层中的关键点token=”” $mathbf{x}_{k}^{l}inmathbb{r}^{jtimes=”” d}$=”” 来预测关键点热力图=”” $mathbf{h}inmathbb{r}^{jtimes(h_{h}cdot=”” w_{h})}$。<=”” p=””>

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

图 3 是作者的过程Token的概要图。基于 TokenPose 模型,为了提高其在人体姿态估计中的应用准确性,作者在两个地方进行了改进,主要关注左上角的键点Token关节Mask和右下角的视觉Token注意力Mask。由于传递给Transformer编码器的图像大小为 ,作者可以抽象出类似于图 3 的 diagram 来帮助作者理解作者正在处理的Token。通过剪枝两个区域 ,并利用所选Token的稀疏性,作者可以移除相对不太重要的数据,并获得准确的最终结果。

Masked Multi-head Self-attention(MMSA)

遮挡的多头自注意力(MMSA)旨在将查询(query)和一组键值对(key-value pairs)映射到输出(output)。给定输入 ,应用三个线性变换将 转换为三个大小相等的矩阵,即查询()、键()和值()。遮挡的多头自注意力(MMSA)操作计算如下:

根据图 2,Token会依次通过两个不同的 Transformer 编码器。对于第一个 Transformer 编码器,在 MMSA 过程中,输入是视觉Token 和注意力Mask 。注意力Mask 最初被设置为一个全 1 的矩阵,然后通过注意力剪枝从某些层中提取出来。

在这种情况下,由第 层生成的注意力Mask将在第 层中使用,并在第 层中动态剪枝和更新。在第二个 Transformer 编码器中,MMSA 的输入是关键点Token 和自定义关节Mask 。计算与方程 1 相同。

Visual Token Attention Prune Module

作者在视觉Token的注意力级别上引入稀疏性,通过剪枝注意力连接。具体而言,对于一个给定的查询Token,作者只计算与一小部分选择的Token之间的注意力连接。注意力Mask的目标是确定不同输入Token之间的注意力权重。由于注意力图通常很稀疏,因此无需追求强烈的注意力,剪枝可以有选择地移除被认为不太重要的连接。

早期的 ViT 依赖于预定的稀疏模式,例如邻域窗口或扩展滑动窗口,这些模式对于形状和大小不同的物体可能有限。另一方面,一些输入相关的方法使用可变形注意力来找到相应的Token,但这需要额外的模块来学习选定的Token。Tri-level ViT提出了一种相对可行的方案,但尚未有具体的实验。

本文旨在实现人体姿态检测的方法并探索其对模型准确性和效率的影响。作者在Transformer中使用 MMSA 机制以更好地捕获图像的复杂性,如图 2 所示。

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

如图 4 所示,对于图像矩阵 ,对于每一行,作者动态地选择前 K 个值并形成一个新的 0-1 注意力Mask。在自注意力矩阵的计算和归一化之后,作者可以简化注意力Mask。通过动态选择必要的Token并剪枝较小的无关数字,作者可以删除冗余数据以提高效率。

作者将Mask的所有元素初始化为 1,并逐步更新Mask。预测模块以当前 (当考虑关节Mask作为输入时,Mask大小为 )和Token 作为输入。 表示图像的高度和宽度。作者计算序列Token中的所有值 的加权和,以及相应的查询 和键 的表示。

注意力权重 不仅基于序列中两个元素之间的配对相似性以及各自的 表示,还基于注意力Mask逐步更新更重要的注意力权重。作者将 与输入图 相乘,得到一个更简单的矩阵

请注意,作者只在 的值为 1 时进行 softmax 操作。如果 为 0,作者将跳过计算过程,使操作更容易。

注意力剪枝模块的优势体现在两个方面:

  • 首先,注意力Mask通常非常稀疏,没有必要考虑所有它们。
  • 其次,已经证明注意力不是越大越好。一些研究人员倾向于舍弃所有注意力,但这可能会导致失去有关图像的信息。

所以在作者的方法中,作者试图使其更短,同时保持有效信息,以实现显著的性能提升。根据对 Transformer 块中每个操作的分析,剪枝操作是在 Multi-Self Attention (MSA) 模块中每个注意力头的权重张量上进行的。给定一个输入序列 ,其中 是输入序列长度或Token数量, 是每个Token的嵌入维度。在 MSA 中,输入大小最初是 ,但通过视觉Token注意力剪枝,作者可以将输入大小减少到 ,进一步简化计算。

Joint Attention Mask

如图 5 所示,无论人体姿态如何,关节之间的连接总是存在的,并且具有一定的模式。因此,作者可以根据人体图来总结并预定义一个关键点关节Mask ,以强调肢体之间的连接并加强关节关系,在训练过程中进行预定义。

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

通过利用关节的稀疏性,对于每个人体关节,作者只保留其相邻节点和镜像节点,将它们设置为 1,将其他节点设置为 0,形成一个稀疏关节Mask。例如,对于关节编号 5(左肩),作者只保留其相邻的左肘关节和其镜像关节。对于人体结构中的每个关节,相应的操作被执行以形成一个 Mask。它应该用作常数值并添加到整个训练过程。关节Mask后来被输入到图Transformer层(如图 2 所示),以强调人体关节连接的不变性。

Implementation Detail

在改进的 TokenPose with Sparsity 中,Transformer L 的编码器层数设置为 12,嵌入大小 D 设置为 192,头数 H 设置为 8。在图Transformer中,编码器层数 L’ 设置为 8。它们采用浅层茎网络和 HRNet-W32 作为 CNN Backbone网络。

4 Experiments and Validation

Settings

作者在单目 2D 人体姿态估计基准测试上评估改进的 TokenPose with Sparsity,数据集 MPII包含大约 25K 图像和 40K 个人体实例,每个实例有 16 个关键点。评估基于头部归一化的正确关键点(PCKh)得分。如果关键点落在预定义的地面真实位置阈值内,则认为该关键点是正确的。作者采用平均 PCKh 分数作为惯例报告。

Ablation Studies

作者首先基于 TokenPose-S 构建了改进的 TokenPose with Sparsity 进行比较。作者遵循与 TokenPose 相同的训练配方。表 1 显示了人体姿态评估的逐步结果。添加关节Mask可以带来轻微的改进。利用视觉Token注意力和关键点Token注意力的稀疏性可以提高至少一个百分点的性能。

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

如图所示,在注意力保持比例为 0.6 时,准确性最高,这意味着只关注视觉Token的 60%,并将其余的舍弃。表 1 中的结果证明了修剪后的视觉Token连接可能对应于更不重要的关系,有助于突出在人体姿态估计过程中更有影响力的关系。然而,需要注意的是,修剪过程可能会影响姿态估计模型的整体准确性。这肯定是一种权衡。移除某些连接可能会丢弃有价值的信息,使模型失去一些人体姿态的细粒度细节。它仍然需要仔细分析和实验来在提高效率和保持准确性之间取得平衡。

Results

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

表 2 显示了在 MPII 数据集上的实验结果。如作者所见,作者的方法与原始的 TokenPose 基线相比有所改进。利用注意力级别的视觉Token和关键点Token稀疏性的想法被证明是高效且有效的,这个想法也可以应用于其他领域。

Visualizations

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

作者在图 6 和图 8 中可视化了作者的方法生成的样本热力图。作者可视化了注意力剪枝的过程。

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

图 7 显示了在剪枝过程中,注意力图是如何动态选择重要信息的。剪枝后,作者将删除对最终结果影响不大的几个Token。

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

5 Conclusion

在本文中,作者提出了一种改进的 TokenPose 用于 2D 人体姿态估计。作者的优势体现在两个方面:结合人体结构,以及使用注意力剪枝生成一个更简单的注意力图。作者在关键点和视觉Token中实现了稀疏性的应用。在 MPII 数据集上的实验表明,与先前的 TokenPose 网络相比,改进的 TokenPose with Sparsity 实现了更好的准确性。

参考

[1].IMPROVED TOKENPOSE WITH SPARSITY.

电子科技大学提出Improved TokenPose | 让TokenPose又快又有高精度

点击上方卡片,关注「AI视界引擎」公众号

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy