Lite Pose
幻灯片|论文|视频
摘要
姿态估计在以人为中心的视觉应用中扮演着至关重要的角色。然而,由于计算成本高(每帧超过150 GMACs),在资源受限的边缘设备上部署最先进的基于HRNet的姿态估计模型非常困难。本文研究了在边缘设备上进行实时多人姿态估计的高效架构设计。通过我们的渐进缩小实验,我们揭示了HRNet的高分辨率分支在低计算区域的模型中是冗余的。移除这些分支可以同时提高效率和性能。受此发现的启发,我们设计了LitePose,一种用于姿态估计的高效单分支架构,并引入了两种简单的方法来增强LitePose的能力,包括融合反卷积头和大核卷积。融合反卷积头消除了高分辨率分支中的冗余,允许以低开销进行尺度感知的特征融合。大核卷积显著提高了模型的容量和感受野,同时保持低计算成本。在CrowdPose数据集上,仅增加25%的计算量,$7\times7$核比$3\times3$核获得了$+14.0$ mAP的性能提升。在移动平台上,与之前最先进的高效姿态估计模型相比,LitePose在不牺牲性能的情况下将延迟降低了高达$5.0\times$,推动了边缘设备上实时多人姿态估计的前沿。
结果
CrowdPose测试
模型 | mAP | #MACs | 延迟 (ms) | ||
Nano | Mobile | Pi | |||
HigherHRNet-W24 | 57.4 | 25.3G | 330 | 289 | 1414 |
EfficientHRNet-H-1 | 56.3 | 14.2G | 283 | 267 | 1229 |
LitePose-Auto-S (我们的) | 58.3 | 5.0G | 97 | 76 | 420 |
LitePose-Auto-XS (我们的) | 49.4 | 1.2G | 22 | 27 | 109 |
COCO 2017验证/测试
模型 | mAP (验证) | mAP (test-dev) | #MACs | 延迟 (ms) | ||
Nano | Mobile | Pi | ||||
EfficientHRNet-H-1 | 59.2 | 59.1 | 14.4G | 283 | 267 | 1229 |
Lightweight OpenPose | 42.8 | - | 9.0G | - | 97 | - |
LitePose-Auto-M (我们的) | 59.8 | 59.7 | 7.8G | 144 | 97 | 588 |
注意:更多详细信息,请参阅我们的论文。
使用方法
先决条件
- 安装PyTorch和其他依赖项:
pip install -r requirements.txt
- 按照官方HigherHRNet仓库的指引安装COCOAPI和CrowdPoseAPI。
数据准备
- 请从COCO下载获取2017年的训练/验证数据集,这些数据用于训练和评估。
- 请从CrowdPose下载获取训练/验证数据集,用于训练和评估。
- 有关数据安排的更多详细信息,请参阅官方HigherHRNet仓库。
训练过程概述
超网络训练
要从头开始训练一个由arch_manager.py指定搜索空间的超网络,使用以下命令:
python dist_train.py --cfg experiments/crowd_pose/mobilenet/supermobile.yaml
权重转移
在训练超网络后,您可能想从超网络中提取特定的子网络(例如search-XS)。以下脚本将会很有用:
python weight_transfer.py --cfg experiments/crowd_pose/mobilenet/supermobile.yaml --superconfig mobile_configs/search-XS.json TEST.MODEL_FILE 你的超网络检查点路径
常规训练
要训练具有特定架构(例如search-XS)的普通网络,请使用以下脚本:
注意:在训练之前,请根据架构配置(例如search-XS.json)更改配置(例如experiments/crowd_pose/mobilenet/mobile.yaml)中的分辨率。
python dist_train.py --cfg experiments/crowd_pose/mobilenet/mobile.yaml --superconfig mobile_configs/search-XS.json
评估
要评估具有特定架构(例如search-XS)的模型,请使用以下脚本:
python valid.py --cfg experiments/crowd_pose/mobilenet/mobile.yaml --superconfig mobile_configs/search-XS.json TEST.MODEL_FILE 你的检查点路径
模型
预训练模型
为了重现论文中的结果,我们需要在训练超级网络之前加载预训练的检查点。这些检查点可在COCO-预训练和CrowdPose-预训练中获取。
结果模型
我们提供了与论文中结果相对应的检查点。
数据集 | 模型 | #MACs | mAP |
CrowdPose | LitePose-Auto-L | 13.7 | 61.9 |
LitePose-Auto-M | 7.8 | 59.9 | |
LitePose-Auto-S | 5.0 | 58.3 | |
LitePose-Auto-XS | 1.2 | 49.5 | |
COCO | LitePose-Auto-L | 13.8 | 62.5 |
LitePose-Auto-M | 7.8 | 59.8 | |
LitePose-Auto-S | 5.0 | 56.8 | |
LitePose-Auto-XS | 1.2 | 40.6 |
致谢
Lite Pose 基于HRNet系列,主要基于HigherHRNet。感谢他们组织良好的代码!
关于大型卷积核,最近几篇论文得出了类似的结论:ConvNeXt、RepLKNet。我们期待大型卷积核在不同任务上有更多应用!
引用
如果Lite Pose对您的研究有用或相关,请通过引用我们的论文来认可我们的贡献:
@article{wang2022lite,
title={Lite Pose: Efficient Architecture Design for 2D Human Pose Estimation},
author={Wang, Yihan and Li, Muyang and Cai, Han and Chen, Wei-Ming and Han, Song},
journal={arXiv preprint arXiv:2205.01271},
year={2022}
}