ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
代码
目录
Abstract
Introduction
Method
Simple vision transformer baselines.
Pretraining.
Finer-resolution feature maps.
Experiment
Ablation study
The influence ofdifferent resolutions
The influence of pretraining data
The influence of finer-resolution feature maps
The influence of backbone model size
Comparison with SOTA methods
Conclusion
最近,定制的vision transformer已被用于人体姿势估计,并通过精细的结构实现了卓越的性能。然而,尚不清楚普通vision transformer是否可以促进姿势估计。在本文中,我们通过使用简单的非分层vision transformer和称为 ViTPose 的简单反卷积解码器进行人体姿态估计,迈出了回答这个问题的第一步。我们证明了带有 MAE 预训练的普通的vision transformer在对人体姿态估计数据集进行微调后可以获得卓越的性能。 ViTPose 在模型大小和输入分辨率和token数量方面的灵活性方面具有良好的可扩展性。此外,它可以很容易地使用未标记的姿势数据进行预训练,而不需要大规模的上游 ImageNet 数据。我们基于具有10亿个参数的VITAE-G主干的最大ViTPose模型在MS Coco测试开发集上获得了最好的80.9 MAP,而集成模型进一步设置了新的最先进的人体姿势估计,即81.1 MAP.
人体姿态估计是计算机视觉的基本任务之一,在现实世界中有着广泛的应用。然而,由于遮挡、截断、尺度、光照和人体外观的变化,这是非常具有挑战性的。基于深度学习的姿态估计方法已经取得了快速的进展,DeepPose,SimpleBaseline,HRNet等使用基于卷积的网络来应对这一困难任务。
最近,受transformer结构在视觉任务中的成功启发,ViT,Swin,Vitae,ViTAEv2将不同的vision transformer结构被用于位姿估计。利用级联回归机制,PRTR采用编解码器结构来逐步预测人体关键点。采用vision transformer来提炼CNN提取的特征,无论是否有额外的keypoint tokens。HRFormer通过多分辨率并行变换模块将高分辨率表示引入vision transformer,从而适应位姿估计任务。这些方法在人体姿态估计任务中取得了较好的性能。然而,目前还不清楚在没有这些修改的情况下,人体姿势估计任务是否可以从普通的vision transformer中受益。
在本文中,我们采用了一种简单的、非分级的vision transformer来完成人体姿态估计任务,即ViTPose,从而为回答这个问题迈出了第一步。特别是,我们通过简单地在vision transformer之后附加几个反卷积层来回归关键点热图,探索了vision transformer在人体姿态估计中的使用。这样一个简单的基线在 MS COCO 数据集上获得了更好的性能,证明了即使没有多分辨率特征或级联细化,vision transformer在人体姿态估计任务上也具有出色的泛化能力。
此外,我们研究了 ViTPose 在模型大小、输入分辨率和token数量方面的可扩展性和灵活性,以获得更好的性能。 我们还表明,ViTpose 可以很容易地使用未标记的姿势数据进行预训练,而不需要大规模的上游 ImageNet 数据 。 ViTPose 在 MS COCO 测试开发集上获得了最好的 81.1 mAP。
在本文中,我们尝试探索普通vision transformer在不进行精细修改的情况下用于人体姿态估计的潜力。因此,参考SimpleBaseline,我们直接将输入图像 I ∈ R^(H×W ×3 )输入到vision transformer中,以从最后一个transformer块中提取特征 F ∈ R^(H/d×W/d×C),其中 d 是vision transformer的下采样率,C 是通道维度。通常,对于 ViT 变体,d = 16。为了与人体姿态估计方法的常规保持一致,使用几个反卷积层将特征图进一步上采样到 1/4 输入大小。通道维度被下采样到 256 以降低每个反卷积层的计算成本。这种具有 ViT-Base 主干和 256 × 192 输入分辨率的简单baseline在 MS COCO 验证集上获得了 75.8 mAP,其性能优于或可与基于视觉转换器的最先进 (SOTA) 结果相媲美,例如,来自 HRFormer 的 75.6 mAP,来自 TokenPose 和 TransPose 的 75.8 mAP。
vision transformer通常需要大量数据,并且需要大量训练数据才能获得更好的性能。 已经提出了许多工作来解决这个问题。 在本文中,我们使用 ImageNet1K 上的 MAE 预训练权重初始化vision transformer主干,其中包含 1M 图像数据。另一方面,在 MS COCO Lin 和 AI Challenger 等人体姿态数据集中,大约有 500K 人实例。 我们想知道 ImageNet-1K 预训练是否对于更好的人体姿态估计是必要的。 令人惊讶的是,仅使用未标记的姿势数据进行 MAE 预训练,与使用在 ImageNet-1K 上预训练的主干相比,简单的 ViTPose 基线获得了相似的性能。
为了进一步提高简单vision transformer的性能,我们探索了使用更精细的特征图进行姿态估计的好处。 具体来说,假设 ViT 的下采样率 d 为 16,ViT 首先将输入图像下采样到其输入大小的 1/16,方法是将图像划分为不重叠的窗口,其中每个窗口的大小与下采样率匹配。 然后,将每个窗口映射到具有通道维度 C 的特征向量(即令牌),并由transformer块处理以对全局依赖关系进行建模。 为了在对普通vision transformer的修改最少的情况下生成更高分辨率的特征图,我们只需使用带有填充的重叠窗口来分割输入图像。 例如,为了将下采样率从 16 增加到 8,我们使用 16 × 16 的窗口大小和相邻窗口之间的 8 像素重叠来分割图像。
尽管这样的操作可以帮助我们生成更精细的特征图(即更多的tokens),但使用全局transformer块来处理更精细的特征图将带来额外的计算和极其巨大的内存占用。 这是因为 Transformers 中原始的 self-attention 的计算复杂度与token的数量成平方关系。 我们采用全窗口注意力结构来减少内存负载来解决这个问题。 然而,没有全局传播的窗口注意力会严重降低 ViT 的性能,因为它无法对全局依赖项进行建模。 为了实现不同窗口之间的信息传播,采用了对 ViT 的简单修改,即 ViTAE ,它在注意力块旁边采用并行卷积分支来辅助相邻窗口之间的信息通信。
我们采用 MAE 在 ImageNet 数据集上预训练的 ViT-B 作为消融研究的baseline。 这些模型在来自 COCO 数据集的训练图像上进一步训练了 210 个 epoch,并在 COCO 数据集的 val 集上报告了性能。
为了评估ViTPose在不同输入分辨率下的灵活性和性能,我们将输入图像调整到不同的分辨率,并使用这些图像对简单的ViTPose基线进行训练和测试。结果总结如表1。一般来说,对于较大的输入图像,ViTPose可以产生更好的人体姿势性能,例如,与使用256×192的输入分辨率进行训练和测试相比,在576×432输入分辨率下,ViTPose获得绝对2MAP增加。此外,使用正方形输入并不比使用矩形输入对位姿估计任务有多大的好处,例如,使用256×256或256×192作为输入分辨率与使用384×384或384×288作为输入分辨率时,性能几乎相同。
为了缓解vision transformer数据匮乏的问题,我们使用MAE预先训练的vision transformer来初始化用于人体姿势估计的骨干网络。然而,预训练方法需要额外的数据,即ImageNet-1K,用于姿势估计。我们想知道是否有必要使用如此大规模的数据集进行预训练。为此,我们在COCO和AI Challenger人体姿势数据集的未标记的Person实例上使用MAE从头开始训练VIT-B模型,时间为1600个epoch,遵循MAE的相同设置。然后,使用预先训练的模型来初始化用于姿态估计的主干,并使用来自COCO的210个epoch的训练图像进行微调。如表2所示,根据人体姿势数据进行预训练的模型获得了与ImageNet-1K预训练模型几乎相同的性能。结果表明,如果下游任务中有足够的图像,则不需要使用来自上游任务的额外训练数据来进行预训练,并且特定领域的数据本身可以提供良好的初始化。
为了在更高分辨率的特征图上评估全窗口注意的ViTPose算法的性能,我们将预训练模型的下采样比从16改为8,并在训练过程中使用256×192幅图像。如表3所示,具有全窗口注意的VIT-B模型在位姿估计任务上的效果比表1中的原始的全局注意版本的75.8 MAP差得多。结果表明,全局信息传播对于位姿估计是重要的。使用并行卷积分支进行相邻窗口之间的信息交换,全窗口注意的VITAE-B模型获得了更好的性能,例如76.3MAP V.S.72.0MAP。
正如在其他视觉任务中所展示的,例如图像分类或目标检测,VIT型号可以轻松扩展到更大的尺寸。通过采用VIT-B、VIT-L和VIT-H作为人体姿态估计的骨干网络,对ViTPose算法的可扩展性进行了评估。如表4所示,随着模型尺寸的增大,平均准确率和召回率稳步提高,这表明ViTPose在模型尺寸方面具有良好的可扩展性。
我们在COCO测试集上对ViTPose和SOTA方法进行了比较。如Tabel 5所示,带有单一VITAE-G主干的ViTPose在COCO测试开发集上获得了最佳性能,超过了包括UDP++在内的所有以前的冠军产品,UDP++使用了更强大的探测器。我们的四个ViTPose模型的集成版本在COCO测试开发集上进一步获得了81.1 MAP,为人体姿势估计任务设置了新的SOTA。
在本文中,我们证明了普通vision transformer可以很好地概括人体姿态估计任务,即使没有特定的设计。 所提出的简单但有效的vision transformer baseline,即 ViTPose,在 COCO 测试开发集上获得了最佳的 81.1 mAP,这得益于更大的模型尺寸、更大的输入分辨率和更多的token数。 我们相信 ViTPose 也可以应用于其他姿势估计任务,例如,动物姿势估计 。 我们希望这项研究可以为社区提供有用的见解,并引起更多的关注,让普通vision transformer适应更多的视觉任务。