Introduction:
随着AR/VR领域的发展,动作捕捉的发展蒸蒸日上,尤其在移动端的需求会日益增加。传统的动作捕捉系统非常依赖于穿戴设备和环境,成本过高。随着深度学习的发展,人体姿态预测发展迅速。
Novelty:
apply knowledge distillation from 2D pose estimation in 3D pos estimation.
Contributions:
- 设计了MoVNect,一个可以实时在有限资源硬件(例如手机)上运行的轻量级3D人体姿态预测模型;
- 提出一个可以进行高效训练使用了师生学习的轻量级三维人体姿态预测的方法。在Human3.6M的数据及上,我们的方法在准确度比vanilla高出14%的提升;
- 评估了不同方法的推理速度,表明了我们提出的模型在不同硬件上使用是可行的;
- 开发了一个结合我们模型的实时3D骨骼移动应用程序,并表明了我们方法的实用性。
Works:
2D Human Pose Estimation
早期方法通过CNN提取特征,再通过全连接层将关节坐标预测成数值;
后来有了基于热度图的回归方法,其充分使用了图像的空间文本信息,网络估计每个关节的热图,并用热图的最大值点表示关节的位置。
3D Human Pose Estimation
早期方法受限于z周的坐标信息无法从二维图像中获取,以及3D输出精度过分依赖于2D关节点的预测;
后来提出将常用的两个步骤结合起来,使用体积热图回归的三维姿态算法应用而生,但需要大量的记忆存储,所以新方法有逐步增加分辨率和基于softmax以在低分辨率的热图中寻找三维坐标;
但目前的好方法在进行多视角结合的训练,虽然精度不错,但计算量极大;
提出另一种方法:回归位置映射法(其中每个像素包含特定坐标值的估计)因为该方法使用了二维位置映射图,所以有存储记忆高效利用以及计算成本相对减少.
Knowledge Distillation 知识蒸馏
知识蒸馏就是在不同能力的网络之间传递信息,早期知识蒸馏主要应用在2D姿态预测上,而我们将应用在3D姿态预测上.
MoVNec: 轻量化3D人体姿态预测网络
基于CNN的三维姿态回归网络结构
因为Mehta方法在准确度推理耗时上有很好的的平衡性,我们设计了基于Metha方法拥有模型搜索过程的轻量化网络结构
使用MobileNetV2的till of block12 作为我们主干网络以及额外的CNN纵深层作为计算层。添加了骨骼长度特征作为一个指导相对根节点坐标映射的明确线索。
推理:
推理速度受制于图片的大小,所以我们想到一方法:获取一个基于人体关键点K的边界框,在2D热图的最初几帧中找到一个0.2倍高度和0.4倍宽度的缓冲区。接着以0.75的动量在最初几帧中持续追踪边界框。
基于边界框的裁剪图像会被设定为256x256的大小作为网络的输入。
基于师生学习策略的额外监督
早期使用softmax交叉熵损失的知识蒸馏主要设计在目标分类任务中,并不适合转移姿态知识。因此,基于Zhang的方法,我们设计了针对3D姿态知识转移的模拟损失函数。网络通过热图损失函数和坐标映射损失函数来进行训练。
后期处理
- 解决时间抖动问题
- 通过逆向运动学将3D坐标转换为方向,使其姿态适用于角色动画控制
- 引入解剖学关节角以确保姿势的旋转角度符合人体构造
Results
准确度方面如上图所示,跟其他方法相比有很大提升。在推理速度上,即便在iphone7这种只有cpu的垃圾设备上,运行可以超过20fps,在装备NPU的iphonexs上可达到120fps
Conclusion:
- 提出了一个轻量化3D姿态预测模型和一个高效的训练策略:师生学习
- 将应用于从2D姿态预测中的知识蒸馏方法转化到3D中
- 拓展了姿态评估方法和推理时间基准
- 模型的准确度和推理时间有非常大的提升