《RTMPose: Real-Time Multi-Person Pose Estimation based on MMPose》,主要介绍了一种高性能实时多人姿态估计框架RTMPose,能在多种设备上实现实时推理,平衡模型性能和复杂度。
原文链接:https://arxiv.org/abs/2303.07399
代码:https://github.com/open-mmlab/mmpose/tree/main/projects/rtmpose
-
研究背景:2D姿态估计在学术基准测试中表现不错,但因模型参数多、延迟高,在工业领域应用受限。实时人体姿态估计在人机交互、动作识别等方面有很大需求,因此本文旨在缩小差距,设计出更适用于工业应用的模型。
-
创新点
- 采用新范式:使用自上而下的方法,借助实时检测器的高效性,让检测不再成为速度瓶颈,在多数场景能实时处理多人实例。
- 选择合适骨干网络:采用CSPNeXt作为骨干网络,在速度、准确性和部署友好性上达到较好平衡。
- 新的关键点预测算法:用基于SimCC的算法预测关键点,将其看作分类任务,计算量更低,部署更容易。
- 优化训练策略:重新研究并引入适用于姿态估计任务的训练策略,提升了模型性能。
- 优化推理流程:联合优化推理流程,用跳帧检测策略降低延迟,通过姿态非极大值抑制(NMS)和平滑滤波提高稳定性。还提供不同尺寸的模型,满足不同场景需求。
-
网络设计:整体架构包含卷积层、全连接层和门控注意力单元(GAU)。骨干网络用CSPNeXt/(目标检测),通过全连接层扩展特征维度,再经GAU模块优化关键点表示,最后将2D姿态估计视为对x轴和y轴坐标的两个分类任务,预测关键点的水平和垂直位置。
-
原理:基于SimCC将关键点定位看作分类问题,把水平和垂直轴划分成等宽的区间,将连续坐标离散化为区间标签,模型训练预测关键点所在区间。利用高斯标签平滑策略,用软标签替代独热标签,减少量化误差,提高模型性能。
-
训练策略
- 预训练:用基于热图的UDP方法对骨干网络预训练,提升模型准确性。
- 优化策略:采用指数移动平均(EMA)减轻过拟合,使用平坦余弦退火策略提高准确率,抑制归一化层和偏差的权重衰减。
- 两阶段训练增强:先使用强数据增强训练180个epoch,再用弱增强策略训练30个epoch ,防止模型过拟合,使其更好地学习姿态结构信息。
-
实验结果:在COCO、COCO-SinglePerson、COCO-WholeBody等多个数据集上进行实验,RTMPose相比其他开源库,在准确率和复杂度上表现更优。在不同设备上测试推理速度,结果显示RTMPose能在多种设备(CPU、GPU、移动设备)上实现实时推理。
-
研究结论:该研究探索了姿态估计中的关键因素,提出的RTMPose框架在平衡模型性能和复杂度方面表现出色,可在多种设备上实时推理。希望该算法及其开源实现能满足工业中姿态估计的部分需求,推动人体姿态估计任务的进一步研究。