近年来对二维姿态估计的研究在公共基准上已经取得了不错的进展,但其在工业界的应用仍存在着模型参数大和高延迟的问题。为了弥补这一差距,本文通过经验探讨了姿态估计中的关键因素,包括范式、模型架构、训练策略和部署,并提出了一个基于MMPose的高性能实时多人姿态估计框架RTMPose。
RTMPose-m在英特尔i7-11700 CPU和COCO上以95_FPS的速度得到了75.8%的AP,在NVIDIA GTX 1660 Ti GPU上达到430+的FPS,而RTMPose-l在COCO-WholeBody上以130+的FPS达到67.0%的AP。
为了进一步评估RTMPose在关键实时应用程序中的能力,本文还报告了在移动设备上部署后的性能。RTMPoses-s在骁龙865芯片上以70+的FPS实现了72.2%的AP,性能优于现有的开源方法。
Github:https://github.com/open-mmlab/mmpose/tree/dev-1.x/configs/wholebody_2d_keypoint/rtmpose
1、简介
实时人体姿态估计对人机交互、动作识别、运动分析和VTuber技术等各种应用都很有吸引力。尽管在学术基准上取得了惊人的进展,但在计算能力有限的设备上执行鲁棒和实时的多人姿态估计仍然是一项具有挑战性的任务。最近的尝试缩小了与高效网络架构和无检测范式之间的差距,这仍然不足以达到工业应用的满意性能。
在这项工作中,作者从5个方面实证研究了影响2D多人姿态估计框架性能和延迟的关键因素:范式、骨干网络、定位方法、训练策略和部署。通过一系列优化,引入了RTMPose,这是一系列用于姿态估计的实时模型。
首先,RTMPose遵循自上而下的模式,即使用现成的检测器来获取边界框,然后单独估计每个人的姿势。由于额外的检测过程和人群场景中不断增加的工作量,自顶向下算法被定型为准确但速度慢。然而,得益于实时检测器的卓越效率,检测部分不再是自顶向下方法推理速度的瓶颈。在大多数场景中(每个图像6人以内),所提出的轻量级姿态估计网络能够实时地对所有实例执行多个前向传递。
第二,RTMPose采用CSPNeXt作为主干,它首先设计用于目标检测。为图像分类设计的主干对于密集的预测任务(如目标检测、姿势估计和语义分割等)来说是次优的。一些利用高分辨率特征图或高级Transformer架构的主干在公共姿势估计基准上实现了高精度,但存在高计算成本、高推理延迟或部署困难。CSPNeXt在速度和精度方面表现出良好的平衡,并且易于部署。
第三,RTMPose使用基于SimCC的算法预测关键点,该算法将关键点定位视为分类任务。与基于Heatmap的算法相比,基于SimCC的算法以较低的计算工作量实现了具有竞争力的精度。此外,SimCC使用2个完全连接层的非常简单的架构进行预测,使其易于部署在各种后端。
第四,作者重新审视了先前工作中的训练设置,并根据经验介绍了一组适用于姿势估计任务的训练策略。作者的实验表明,这组策略为提出的RTMPose以及其他姿势估计模型带来了显著的收益。
最后,作者联合优化了姿态估计框架的推理流水线。使用Blazepose中提出的跳帧检测策略来减少延迟,并通过姿态非最大抑制(NMS)和平滑滤波来改进姿态处理,以获得更好的鲁棒性。作者还提供了一系列具有t/s/m/l大小的RTMPose模型,以覆盖不同的应用场景,同时实现最佳的性能和速度权衡。
使用不同的推理框架(PyTorch、ONNX Runtime、TensorRT、ncnn)和硬件(i7-11700、GTX1660Ti、Snapdragon865)部署RTMPose,以测试效率。
如图1所示,使用各种推理框架(PyTorch、ONNX Runtime、TensorRT、ncnn)和硬件(Intel i7-11700、GTX 1660Ti、Snapdragon 865)评估RTMPose的效率。RTMPose-m在COCO valset上实现了75.8%的AP,Intel i7-11700 CPU上的帧速率为90+,NVIDIA GeForce GTX 1660 Ti GPU上的帧率为430+,Snapdragon 865芯片上的帧频率为35+。在姿态估计管道中使用高性能实时检测模型RTMDet nano,RTMPosem可以实现73.2%的AP。
借助MMDeploy,RTMPose还可以轻松部署到各种后端,如RKNN、OpenVINO、PPLNN等。
2、相关工作
2.1、Bottom-up Approaches
自底向上算法检测图像中的实例不可知关键点,并划分这些关键点以获得人体姿势。自下而上的范式被认为适合人群场景,因为随着人数的增加,计算成本稳定。然而,这些算法通常需要较大的输入分辨率来处理各种人的尺度,这使得协调准确性和推理速度具有挑战性。
2.2、Top-down Approaches
自顶向下算法使用现成的检测器来提供边界框,然后将人体裁剪成统一的比例以进行姿态估计。自上而下范式的算法一直主导着公共基准。两阶段推理范式允许行人检测器和姿态估计器使用相对较小的输入分辨率,这允许它们在非极端场景(即,当图像中的人数不超过6人时)中在速度和精度方面优于自下而上的算法。
此外,以前的大多数工作都集中在公共数据集上实现最先进的性能,而本文工作旨在设计具有更好速度精度权衡的模型,以满足工业应用的需求。
2.3、Coordinate Classification
先前的姿态估计方法通常将关键点定位视为坐标回归或Heatmap回归。SimCC引入了一种新的方案,该方案将关键点预测公式化为分别从水平和垂直坐标的子像素箱进行分类,这带来了几个优点。
首先,SimCC摆脱了对高分辨率Heatmap的依赖,从而允许非常紧凑的架构,既不需要高分辨率的中间表示,也不需要昂贵的上采样层。
其次,SimCC将最终的特征图变平以进行分类,而不是涉及全局池化层,因此避免了空间信息的丢失。
第三,量化误差可以通过亚像素级的坐标分类有效缓解,而无需额外的细化后处理。这些特性使得SimCC在构建轻量级姿态估计模型方面具有吸引力。
在这项工作中,作者进一步开发了坐标分类方案,并对模型架构和训练策略进行了优化。
2.4、Vision Transformers
移植自现代自然语言处理(NLP)的基于Transformers的架构在各种视觉任务中取得了巨大成功,如表示学习、目标检测、语义分割、视频理解以及姿态估计。
ViTPose利用最先进的Transformer主干来提高姿态估计精度,而TransPose将Transformer编码器与CNN集成,以有效地捕获长距离空间关系。基于Token的关键点嵌入被引入以结合视觉线索querying和anatomic constraint学习,在基于Heatmap的和基于回归的方法中都显示出有效。
PRTR和PETR提出了带有Transformer的端到端多人姿态估计框架。以前使用Transformer的姿态估计方法要么使用基于Heatmap的表示,要么保留像素tokens和关键点tokens,这导致了高计算成本,并使实时推理变得困难。
相反,本文将自注意力机制与基于SimCC的紧凑表示相结合,以捕获关键点依赖性,这显著减少了计算负载,并允许以更高的准确性和效率进行实时推断。