长久以来,三维姿态估计都在追求准确性上一路狂奔。

但精度提高的同时,也带来了计算成本的上升。

而刚刚被CPVR 2021接受的论文中所提出的模型,MobileHumanPose却可以同时做到又小又好

还是放在手机上都能hold得住的那种。来感受一下这个feel:

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_人工智能

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_机器学习_02

据了解,这个模型的尺寸,只有基于ResNet-50的模型的1/7,算力达到了3.92GFLOPS

而且平均每关节位置误差(MPJPE),也只有大约5厘米

那么这一模型到底是如何在有限的算力下产生极佳性能的呢?

基于编码器-解码器结构的改进

这是一个从基本的编码器-解码器结构改良得来的模型。

在编码器用于全局特征提取,而解码器进行姿态估计的基础架构上,研究团队对其主干网络、激活函数,以及Skip concatenation功能都进行了修改。

先来看研究团队选择的主干网络,MobileNetV2。

他们在MobileNetV2的前四个倒置残差块(Residual Block)处修改了通道大小,获得了性能提升。

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_算法_03

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_人工智能_04

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_算法_05

△修改了激活函数后的baseline

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_网络_06

参数量减少5倍,计算成本降到1/3

团队使用Human3.6M和MuCo-3DHP作为三维人体姿势数据集,他们提出了MobileNetV2的大小两个模型。

在Human3.6M上,MobileNetV2大模型实现了51.44毫米的平均每关节位置误差。

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_算法_07

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_算法_08

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_深度学习_09

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

Android 一倍图开发和三倍图开发是什么意思 安卓一倍图尺寸_深度学习_10

在模型效率上,MobileNetV2的大模型效率为2.24M/3.92GFLOPS,远超同类模型的13.0M/10.7GFLOPS(Zerui Chen)。

而小模型也能实现56.94毫米的平均每关节位置误差,有224万个参数,计算成本为3.92GFLOPS。