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

小白学视觉

共 3829字,需浏览 8分钟

 ·

2021-08-01 12:23

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自|计算机视觉工坊

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

• 深度图(depth map),2D图片,每个像素记录从视点到物体的距离,以灰度图表示,越近越黑;
• 体素(voxel),体积像素概念,类似于2D之于像素定义;
• 点云(point cloud),每个点逗含有三维坐标,乃至色彩、反射强度信息;
• 网格(mesh),即多边形网格,容易计算。
三维姿态估计:许多论文将人体姿态估计定义为从单视图或多视图的图像、视频序列中定位人体主要三维关节的问题。即从图片或视频中估计出关节点的三维坐标 (x, y, z)。
根据不同的特征总结基于深度学习的HPE 方法的不同类别:
1.生成(基于人体模型,SMPL)和判别(无人体模型);
2.自上而下(从高级抽象到低级像素证据,如HRNet)和自下而上(从低级像素证据到高级抽象,如OpenPose);
3.基于回归(直接从输入图像映射到身体关节位置)和基于检测(生成中间图像patch或关节位置的heatmap);
4.单阶段(端到端培训)和多阶段(分阶段培训)。

3D姿态估计引言:

与2DHPE相比,3DHPE更具有挑战性,因为它需要预测人体关节的深度信息。另外,3D HPE的训练数据不像2DHPE那样容易获得。大多数现有的数据集是在有限的可推广性约束环境下获得的。
3D姿态估计有深度模糊的问题,多个三维姿态对应相同的二维投影。且许多姿态可能是不合理的,例如不可能的关节角度或者非常瘦的身体。

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

3D姿态估计常见方法:
1.直接估计法:
视频数据集如HumanEva和Human3.6M 标注了3D关节的位置。故可以直接使用3D关键点数据进行监督学习,直接从图像中估计三维关节。
许多方法没有解决相机问题,而是估计相对于根的深度,并使用基于骨骼平均长度的预定义全局尺度。
缺点:
具有精确的ground truth 3D注释的图像是在受控的MoCap环境中捕获的。仅根据这些图像训练的模型不能很好地适用于现实世界。在这里不考虑此种方法。
2.两阶段法:

(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关节之间的误差。
基于回归的方法:最近的大多数工作,对于单个RGB图像,使用深度网络对模型参数进行回归。由于缺乏具有完整的三维形状地面真实感的图像,这些工作大多集中在替代监督信号训练深层网络。它们中的大多数都严重依赖于2D注释,包括2D关键点、分割Mask。
典型代表:
HMR,结构如下图:
其思想是,给定一幅图像,网络必须推断出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)。这个过程是在训练循环中完成的。
两阶段法缺点
为了约束2D到3D估计中的固有模糊性,这些方法使用了各种先验。大多数方法对肢长或比例做出一些假设。
过多地依赖于2D关节检测并且可能在估计3D姿势时丢弃图像信息。

表征方面:

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

SMPL介绍:

总结:

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

参考文献:

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


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报