RTMPose:基于MMPose的实时多人姿态估计.
0. TL;DR
RTMPose 是一个基于 MMPose 的高性能实时多人姿态估计框架。它通过优化模型架构、训练策略和部署方式,在保持高精度的同时实现了低延迟和高效率。RTMPose 在 COCO 数据集上达到了 75.8% 的 AP,同时在 Intel i7-11700 CPU 上实现 90+ FPS,在 NVIDIA GTX 1660 Ti GPU 上实现 430+ FPS。此外,RTMPose-s 在移动设备上也能达到 70+ FPS,显著优于现有的开源库。该框架采用自顶向下的方法,并结合 CSPNeXt 作为骨干网络,使用 SimCC 算法进行关键点定位,通过一系列优化策略提升了模型性能和部署效率。
1. 背景介绍
实时多人姿态估计在人机交互、动作识别、体育分析等领域具有广泛的应用前景。尽管在学术基准测试中取得了显著进展,但在实际工业应用中,现有的姿态估计模型仍面临模型参数庞大、推理延迟高的问题。为了弥合这一差距,RTMPose 对姿态估计的关键因素进行了实证研究,包括范式、模型架构、训练策略和部署方式,并提出了一个高性能的实时多人姿态估计框架。
2. 方法介绍
RTMPose 采用自顶向下的范式,通过一个现成的目标检测器获取人体边界框,然后对每个人分别进行姿态估计。尽管自顶向下的方法通常被认为准确但速度慢,但由于实时检测器的高效性,检测部分不再是推理速度的瓶颈。RTMPose 的轻量级姿态估计网络能够在大多数场景(每张图像中不超过 6 人)中实时处理多个实例。
RTMPose 使用一个骨干网络、一个卷积层、一个全连接层和一个门控注意力单元(Gated Attention Unit, GAU)提取$K$个关键点的特征。然后采用SimCC把二维姿态估计任务看作两个分类任务,分别预测关键点的水平和垂直坐标。
RTMPose 使用 CSPNeXt 作为骨干网络。与为图像分类设计的骨干网络相比,CSPNeXt 在目标检测、姿态估计等密集预测任务中表现出更好的速度和精度平衡,并且易于部署。
SimCC 将关键点定位视为分类任务,通过将水平和垂直坐标分别划分为子像素级的分类标签来预测关键点位置。与基于热图的算法相比,SimCC 在计算成本更低的情况下实现了竞争性的精度,并且其简单的架构(仅包含两个全连接层)便于在各种后端上部署。
RTMPose 重新审视了以往工作中的训练设置,并引入了一系列适用于姿态估计任务的训练策略,包括预训练、优化策略、两阶段数据增强等。这些策略为 RTMPose 模型带来了显著的性能提升。
RTMPose 还对姿态估计框架的整个推理流程进行了联合优化。通过采用跳帧检测策略、姿态 NMS 和平滑滤波等技术,降低了延迟并提高了鲁棒性。其中跳帧检测策略是指每$K$帧进行一次人体检测,而其他帧的人体边界框是通过上一次姿态估计结果生成的。
3. 实验分析
RTMPose 在多个标准数据集上进行了评估,包括 COCO、COCO-SinglePerson、COCO-WholeBody、AP-10K、CrowdPose 和 MPII。
- RTMPose 在 COCO 数据集上表现出色,RTMPose-m 在标准 COCO val2017 集上达到了 75.8% 的 AP,同时在 Intel i7-11700 CPU 上实现 90+ FPS,在 NVIDIA GTX 1660 Ti GPU 上实现 430+ FPS。RTMPose-s 在移动设备上也能达到 70+ FPS,显著优于现有的开源库。
- RTMPose 在 COCO-SinglePerson 数据集上也表现出色,RTMPose-m 达到了 82.4% 的 AP,显著优于其他单人姿态估计方法,如 BlazePose 和 MoveNet。
- RTMPose 在 COCO-WholeBody 数据集上也取得了优异的性能。RTMPose-m 在该数据集上达到了 58.2% 的 AP,与现有的 SOTA 方法相比,在准确性和复杂度之间取得了良好的平衡。
- RTMPose 在 AP-10K、CrowdPose 和 MPII 数据集上也进行了评估。RTMPose-m 在这些数据集上均表现出色,例如在 MPII 数据集上达到了 88.9% 的 PCKh@0.5,接近 SOTA 方法。
RTMPose 在不同硬件上的推理速度表现如下:
- 在 Snapdragon 865 移动设备上,RTMPose-m 的 FP16 推理延迟为 26.44 ms。
- 在 Intel i7-11700 CPU 上,RTMPose-m 的推理延迟为 11.06 ms。
- 在 NVIDIA GTX 1660 Ti GPU 上,RTMPose-m 的推理延迟为 2.29 ms。