mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米

博雯 发自 凹非寺

量子位 报道 | 公众号 QbitAI长久以来,三维姿态估计都在追求准确性上一路狂奔。
但精度提高的同时,也带来了计算成本的上升。
而刚刚被CPVR 2021接受的论文中所提出的模型,MobileHumanPose却可以同时做到又小又好。
还是放在手机上都能hold得住的那种。来感受一下这个feel:

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

这种动作的健身操也没问题:

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

据了解,这个模型的尺寸,只有基于ResNet-50的模型的1/7,算力达到了3.92GFLOPS。
而且平均每关节位置误差(MPJPE),也只有大约5厘米。
那么这一模型到底是如何在有限的算力下产生极佳性能的呢?
基于编码器-解码器结构的改进这是一个从基本的编码器-解码器结构改良得来的模型。
在编码器用于全局特征提取,而解码器进行姿态估计的基础架构上,研究团队对其主干网络、激活函数,以及Skip concatenation功能都进行了修改。
先来看研究团队选择的主干网络,MobileNetV2。
他们在MobileNetV2的前四个倒置残差块(Residual Block)处修改了通道大小,获得了性能提升。

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

接下来,将PReLU函数用于实现激活功能,其中ai为学习参数 yi是输入信号。

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

这一函数中的可学习参数能够在每一层网络都获得额外的信息,因此在人体姿势估计任务中使用参数化PReLU时可提升性能。

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

△修改了激活函数后的baseline现在,模型的效率已经不低了,但考虑到推理速度,团队使用Skip concatenation结构。这一结构能从编码器到解码器中导出低级别特征信号(Lowlevel feature signal),不会降低性能。

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

参数量减少5倍,计算成本降到1/3团队使用Human3.6M和MuCo-3DHP作为三维人体姿势数据集,他们提出了MobileNetV2的大小两个模型。
在Human3.6M上,MobileNetV2大模型实现了51.44毫米的平均每关节位置误差。

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

且其参数量为4.07M,对比同类模型的20.4M(chen)减少了5倍,计算成本为5.49GFLOPS,是同类模型的1/3不到(14.1G)。

【 mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米】mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

对于多人三维姿势估计任务,研究者使用RootNet来估计每个人的绝对坐标,在MuPoTS的20个场景中进行了实验:

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

实验结果证明,对比Zerui Chen等研究者提出的获ECCV 2020的三维人体姿态估计方法,MobileNetV2在一般场景中的性能都更好,且在少数场景中取得了最佳性能:

mobilenetv2|装在手机里的3D姿态估计,模型尺寸仅同类17,误差却只有5厘米
文章插图

在模型效率上,MobileNetV2的大模型效率为2.24M/3.92GFLOPS,远超同类模型的13.0M/10.7GFLOPS(Zerui Chen)。
而小模型也能实现56.94毫米的平均每关节位置误差,有224万个参数,计算成本为3.92GFLOPS。