可以装在手机里的 3D 姿态估计,模型尺寸仅同类 1/7,平均关节位置误差却只有 5 厘米
长久以来,三维姿态估计都在追求准确性上一路狂奔。
但精度提高的同时,也带来了计算成本的上升。
而刚刚被 CPVR 2021 接受的论文中所提出的模型,MobileHumanPose 却可以同时做到又小又好。
还是放在手机上都能 hold 得住的那种。来感受一下:
这种动作的健身操也没问题:
据了解,这个模型的尺寸,只有基于 ResNet-50 的模型的 1/7,算力达到了 3.92GFLOPS。
而且平均每关节位置误差(MPJPE),也只有大约 5 厘米。
那么这一模型到底是如何在有限的算力下产生极佳性能的呢?
基于编码器-解码器结构的改进
这是一个从基本的编码器-解码器结构改良得来的模型。
在编码器用于全局特征提取,而解码器进行姿态估计的基础架构上,研究团队对其主干网络、激活函数,以及 Skip concatenation 功能都进行了修改。
先来看研究团队选择的主干网络,MobileNetV2。
他们在 MobileNetV2 的前四个倒置残差块(Residual Block)处修改了通道大小,获得了性能提升。
接下来,将 PReLU 函数用于实现激活功能,其中 ai 为学习参数 yi 是输入信号。
这一函数中的可学习参数能够在每一层网络都获得额外的信息,因此在人体姿势估计任务中使用参数化 PReLU 时可提升性能。
▲ 修改了激活函数后的 baseline
现在,模型的效率已经不低了,但考虑到推理速度,团队使用 Skip concatenation 结构。这一结构能从编码器到解码器中导出低级别特征信号(Lowlevel feature signal),不会降低性能。
参数量减少 5 倍,计算成本降到 1/3
团队使用 Human3.6M 和 MuCo-3DHP 作为三维人体姿势数据集,他们提出了 MobileNetV2 的大小两个模型。
在 Human3.6M 上,MobileNetV2 大模型实现了 51.44 毫米的平均每关节位置误差。
且其参数量为 4.07M,对比同类模型的 20.4M(chen)减少了 5 倍,计算成本为 5.49GFLOPS,是同类模型的 1/3 不到(14.1G)。
对于多人三维姿势估计任务,研究者使用 RootNet 来估计每个人的绝对坐标,在 MuPoTS 的 20 个场景中进行了实验:
实验结果证明,对比 Zerui Chen 等研究者提出的获 ECCV 2020 的三维人体姿态估计方法,MobileNetV2 在一般场景中的性能都更好,且在少数场景中取得了最佳性能:
在模型效率上,MobileNetV2 的大模型效率为 2.24M/3.92GFLOPS,远超同类模型的 13.0M/10.7GFLOPS(Zerui Chen)。
而小模型也能实现 56.94 毫米的平均每关节位置误差,有 224 万个参数,计算成本为 3.92GFLOPS。
作者介绍
论文的三位作者皆毕业于韩国高等技术研究院,一作 Sangbum Choi 为该校的电机及电子工程专业硕士。
论文:
https://openaccess.thecvf.com/content/CVPR2021W/MAI/html/Choi_MobileHumanPose_Toward_Real-Time_3D_Human_Pose_Estimation_in_Mobile_Devices_CVPRW_2021_paper.html
开源地址:
[1]https://github.com/SangbumChoi/MobileHumanPose
[2]https://github.com/ibaiGorordo/ONNX-Mobile-Human-Pose-3D
2022-05-06 13:09:17