博客专栏

EEPW首页 > 博客 > 基于深度学习的三维姿态估计

基于深度学习的三维姿态估计

发布人:计算机视觉工坊 时间:2021-02-20 来源:工程师 发布文章

三维重建领域主要的数据格式有四种:

• 深度图(depth map),2D图片,每个像素记录从视点到物体的距离,以灰度图表示,越近越黑;

• 体素(voxel),体积像素概念,类似于2D之于像素定义;

• 点云(point cloud),每个点逗含有三维坐标,乃至色彩、反射强度信息;

• 网格(mesh),即多边形网格,容易计算。

三维姿态估计:许多论文将人体姿态估计定义为从单视图或多视图的图像、视频序列中定位人体主要三维关节的问题。即从图片或视频中估计出关节点的三维坐标 (x, y, z)。

根据不同的特征总结基于深度学习的HPE 方法的不同类别:

1.生成(基于人体模型,SMPL)和判别(无人体模型);

2.自上而下(从高级抽象到低级像素证据,如HRNet)和自下而上(从低级像素证据到高级抽象,如OpenPose);

3.基于回归(直接从输入图像映射到身体关节位置)和基于检测(生成中间图像patch或关节位置的heatmap);

4.单阶段(端到端培训)和多阶段(分阶段培训)。

1.jpg

3D姿态估计引言:

与2DHPE相比,3DHPE更具有挑战性,因为它需要预测人体关节的深度信息。另外,3D HPE的训练数据不像2DHPE那样容易获得。大多数现有的数据集是在有限的可推广性约束环境下获得的。

3D姿态估计有深度模糊的问题,多个三维姿态对应相同的二维投影。且许多姿态可能是不合理的,例如不可能的关节角度或者非常瘦的身体。

常见的3D姿态估计数据集:

2.jpg

3D姿态估计常见方法:

1.直接估计法:

视频数据集如HumanEva和Human3.6M 标注了3D关节的位置。故可以直接使用3D关键点数据进行监督学习,直接从图像中估计三维关节。

许多方法没有解决相机问题,而是估计相对于根的深度,并使用基于骨骼平均长度的预定义全局尺度。

缺点:

具有精确的ground truth 3D注释的图像是在受控的MoCap环境中捕获的。仅根据这些图像训练的模型不能很好地适用于现实世界。在这里不考虑此种方法。

2.两阶段法:

3.jpg

(regression)先获取2D信息,然后再“提升”到3D姿态。该方法对图像提取特征,最终得到2D point(如HRNet、PifPaf等网络),后将2D关键点序列输入到后续网络(强行FC、TCN、LSTM等)中,提升到3D关键点。该方法有相关实验结果显示:用2D的ground truth关节点来生成3D的关节点错误率非常低,比目前最好的结果好了30%。而我们用从2D图像得到的2D关节点来生成3D关节点,这样的错误率只比目前最好的结果稍微好一点。因此,该种方法还是主要依赖于目前的2D姿态估计技术。

(model fitting)基于模型的人体姿态估计目前有两种不同的方法。基于优化的方法以迭代的方式将参数体模型与二维观测值进行拟合,可以得到精确的图像-模型比对,但往往对初始化比较缓慢和敏感。相比之下,基于回归的方法,即使用深度网络直接从像素估计模型参数,往往提供合理的,但像素不准确的结果,同时需要大量的监督。

两种方法都依赖于人体参数化模型。

基于优化的方法已经被很好地探索和理解。给定人体的参数模型,例如在SMPL,迭代拟合方法试图估计身体姿态和形状,最好地解释二维观察,最典型的如二维关节位置。由于我们明确地对模型与图像特征的一致性进行优化,我们通常会得到很好的拟合,但优化往往非常缓慢,而且对初始化的选择相当敏感。另一方面,最近的深度学习进展已经将焦点转移到纯粹基于回归的方法上,即使用深度网络直接从图像中回归模型参数。理论上,这是一个很有前途的方向,因为深度回归可以考虑所有的像素值,而不是仅仅依赖于二维位置的稀疏集。遗憾的是,这种一次预测可能会导致图像-模型对齐不理想,同时需要大量的数据对网络进行适当的训练。

基于优化的方法:SMPLify。

使用当时流行的基于CNN的方法DeepCut来预测(自下而上)二维人体关节位置。然后,将发布的统计身体形状模型SMPL(自顶向下)拟合到2D关节。通过最小化目标函数来惩罚投影的3D模型关节与检测到的2D关节之间的误差。

4.jpg

基于回归的方法:最近的大多数工作,对于单个RGB图像,使用深度网络对模型参数进行回归。由于缺乏具有完整的三维形状地面真实感的图像,这些工作大多集中在替代监督信号训练深层网络。它们中的大多数都严重依赖于2D注释,包括2D关键点、分割Mask。

典型代表:

HMR,结构如下图:

5.jpg6.jpg

其思想是,给定一幅图像,网络必须推断出3D网格参数和摄像机,以便在投影后,3D关键点与标注的2D关键点相匹配。为了处理模糊性,这些参数被发送到鉴别器网络,鉴别器网络的任务是确定三维参数是否与真实人体相对应。

虽然SMPL可以对静态软组织变形进行姿态建模,但它对由于身体运动和与地面的冲击力而发生的动态变形并不工作。因而SMPL作者为了建模这些,引入了一组新的附加混合形状,称之为动态混合形状。这些额外的位移与身体和四肢的速度和加速度有关,而与姿势无关,该模型称之为DMPL。

联合优化与回归的方法:

如SPIN(Learning to Reconstruct 3D Human Pose and Shape via Model-fitting in the Loop):

SPIN通过基于回归和基于迭代的优化方法之间的紧密协作,为三维人体姿态和形状估计训练了一个深度网络。在培训期间,网络预测SMPL参数模型,不使用ground truth 2D关键点来应用弱重投影损失,而是建议使用回归估计来初始化一个迭代优化例程,使模型适合于2D关键点(SMPLify)。这个过程是在训练循环中完成的。

7.jpg

两阶段法缺点:

为了约束2D到3D估计中的固有模糊性,这些方法使用了各种先验。大多数方法对肢长或比例做出一些假设。

过多地依赖于2D关节检测并且可能在估计3D姿势时丢弃图像信息。

表征方面:

对于人体的三维形态,目前看到有几类不同的表征方式,包括回归出参数化人体模型的参数(如SMPL的图片和图片),直接学习出人体的体素(Voxel)等以及学习texture-to-surface的correspondences(如UV map)。

SMPL介绍:

8.jpg9.jpg

总结:

目前的网络已经验证了多阶段结构、中间监督、多尺度特征融合、多任务学习、体结构约束等有效的网络设计方法。网络效率也是将算法应用于实际应用的一个非常重要的因素。多样性数据可以提高网络处理姿态不规则、肢体遮挡和人群拥挤等复杂场景的鲁棒性。针对特定复杂场景的数据收集是一个选项,还有其他方法可以扩展现有数据集。在合成数据与真实数据存在领域差距的情况下,理论上合成技术可以产生无限的数据。跨数据集补充,特别是用二维数据集补充三维数据集,可以缓解训练数据多样性不足的问题。

参考文献:

1.基于深度学习的三维重建算法综述https://zhuanlan.zhihu.com/p/108198728

2.一张照片获得3D人体信息,云从科技提出新型DenseBody框架

https://zhuanlan.zhihu.com/p/61454340

3.CVPR 2020 | VIBE: 基于视频的人体3D形状和姿态估计

https://zhuanlan.zhihu.com/p/133492544

4.3D人体姿态估计笔记

https://zhuanlan.zhihu.com/p/113024569

5.SMPL, SMAL, SMALR, SMALST--单图像的人体+动物三维重建论文https://blog.csdn.net/Oblivior/article/details/101024958

本文仅做学术分享,如有侵权,请联系删文。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词:

相关推荐

技术专区

关闭