CPU上跑到 33 FPS 的简单轻量级人体姿态估计网络
在姿态估计算法中,微软开发的 SimpleBaseline 是精度高而又轻量级的典范,昨天一篇论文Simple and Lightweight Human Pose Estimation,在该架构基础上做了少许改进,取得了更快的速度和更小的模型Size。
论文作者信息:
作者均来自南京大学。
该文发明的轻量级姿态估计网络LPN架构:
与SimpleBaseline类似,LPN由一个主干网络和几个上采样层组成,不同的是,作者重新设计了网络中在下采样阶段的基础组件即轻量级Bottleneck模块,并同时在上采样阶段也选择了轻量级的形式。
改进的Bottleneck模块
如下图:
(a)为标准Bottleneck模块,(b)为改进的Bottleneck模块,将标准卷积替换为深度可分离卷积,同时expansion 参数从4设为1,同时为了使网络能够更好的建模全局上下文信息,作者又进一步在Bottleneck中添加了GC block(global context block),如(c),(d)为GC block结构示意图。
另外,作者发明了一种迭代式的训练方法,在不使用ImageNet数据集上预训练的分类网络时,可以有效改进最终精度。
在训练过程中,每一阶段选择不同的学习率,如下图:
另外,作者提出了一种在推断阶段对heatmap进行Soft-Argmax以获得更精确位置信息的方法B-Soft-Argmax。
实验结果
作者在COCO姿态估计数据集上进行了实验。
在COCO验证集上的结果:
在COCO test-dev集上的结果:
可见该文提出的方法,精度与SimpleBaseline相当,相比于SOTA 方法HRNet精度要低一些,但在参数量与FLOPs上仅为后者的1/30左右。
下图为LPN与SOTA方法精度与FPS的比较:
结果是在 Intel i7-8700K CPU上运行得出的,可见该文提出的 LPN 处于一骑绝尘的位置,LPN-50 可以达到 33 FPS,大约是SimpleBaseline152和HRNet-W32的推理速度的3倍。而大型网络LPN-152 AP可以达到 71 ,仍有 23 FPS。
总之,该文提出了一种轻量级、高效的姿态估计网络架构,更具有实用价值。
目前还未发现该文有开源代码。
论文地址:
https://arxiv.org/pdf/1911.10346v1.pdf