《3D Human pose estimation: A review of the literature and analysis of covariates》
CVIU 2016 论文链接
这篇文章主要介绍了基于RGB图片进行3D人体姿态估计的方法,包括了基于单张图片、视频序列、多视角图片的。
之前写过一篇2D人体姿态估计综述笔记,2D姿态估计通过深度学习已经能达到较好的效果,但3D姿态估计更多的采用传统算法,涉及较多数学知识,笔者目前对本文具体算法的介绍部分只能略读。需要注意的是,这篇综述是16年的,至今可能也出了一些新的paper基于深度学习做3D姿态估计,有待进一步调研。
文章目录
- 1 基本框架及方法分类
- 2 Body Model 和特征表达
- 3 从单张图片恢复3D人体姿态
-
- 3.1 单目图片
- 3.2 multi-view 多视角图片
- 4 从视频序列恢复3D人体姿态
-
- 4.1 单目视频
- 4.2 multi-view 多视角视频
- 5 数据集
- 6 评价指标
- 7 总结
1 基本框架及方法分类
上图是3D人体姿态估计的通用框架,一个具体的方法可能包含部分或全部步骤。
方法分类如上图所示,大致可分为生成型、判别型和混合型。
-
Generative model (model-based)
-
top-down approaches:用先验信息构造一个姿态模型再拟合它,主要有以下两步 1) modeling:根据先验信息(人体结构、相机模型、图片描述符等)构建一个likelihood function 2) estimation:基于对图片的观察和likelihood function,预测出最可能的人体姿态
-
part-based (bottom-up):把人体看作是由关节点连接起来的一系列身体部件。代表模型有Pictorial Structure Model (PSM) / Deformable Structures Model / Stitched Puppet (SP)
-
-
Discriminative approaches (model-free)
- learning-based:学习一种从图片空间到3D人体姿态空间的映射
- example-based:将样例图片及其对应姿态存储下来,测试输出的姿态是相似样例姿态的插值
-
Hybrid model:融合了生成模型和判别模型。用生成模型得到的likelihood来验证判别模型提出的姿态假设。
笔者个人理解生成模型是拟合constraints,判别模型是提出hypotheses。
生成模型能够更精确地估计姿态,因为其泛化能力好,能够处理复杂的人体情况如衣服和饰品。
判别模型的鲁棒性好、速度快,因为这种模型在更低维度上进行预测,其根本原因是实际可行的人体姿态空间小于解剖学上的可能空间。
2 Body Model 和特征表达
最常用:人体骨架模型(上图左)。
- structure model: tree-based (上图右)
- shape model: 圆柱模型 / 截断圆锥模型
Contraints
- kinematic:关节角度、肢体长度比例等
- occlusion:部分身体被自身遮挡
- appearance:左右对称性
- smoothness:视频序列中相邻帧的关节点角度变化应是平滑的
特征提取
- low-level features:边缘、颜色、光流、轮廓
- image descriptors:SIFT、SC、HoG
- 特殊设计的最具判别性的特征,如posebits
3 从单张图片恢复3D人体姿态
这个问题非常困难:
- 不同的3D姿态可能表现为相似的2D投影
- 2D关节点的细微偏差会导致3D空间的巨大偏离
- 高维灾难
3.1 单目图片
-
深度学习:缺乏足够多的训练数据,16年提出使用合成图片。e.g.
- ConvNets 在目标检测任务上预训练,在姿态回归任务上微调(2014)
- 输入一张图片和一个3D姿态,输出两者的相似度分数,joint embedding(2015)
-
2d detector for 3D pose estimation:训练一个2D姿态检测器,测试时通过最小化投影误差来得到最可能的3D姿态
-
相机参数估计 / 判别式方法 / 基于样本的方法
笔者没有仔细看,但大部分用到了概率分布模型、贝叶斯等知识
3.2 multi-view 多视角图片
也是采用2d detector for 3D pose estimation的方法,但在3D估计时综合考虑了各视角的信息。
4 从视频序列恢复3D人体姿态
难点:人体外形可能在连续帧中有非常剧烈的变化,比如由于背景改变或相机移动、光照改变、肢干在深度方向的旋转、宽松的衣服。
4.1 单目视频
-
判别性方法
ConvNets来对齐连续帧中的bbox
encoder-decoder 架构来获得3D姿态 -
隐变量模型:通常只是理论探讨,因为难以准确估计那些被遮挡的关节点
-
rigid constraints / particle filter alg. / action-specific
4.2 multi-view 多视角视频
这类数据较少,如视频监控。
更多的数据带来更多信息,但整合它们又是一个更具挑战性的问题。
- 3DPS:3D pictorial structures
5 数据集
6 评价指标
- 3D Error / MPJPE: mean squared distance 距离误差
E(x,x^)=1M∑i=1M∥mi(x)?mi(x^)∥\mathcal{E}(x, \hat{x})=\frac{1}{M} \sum_{i=1}^{M}\left\|m_{i}(x)-m_{i}(\hat{x})\right\| E(x,x^)=M1?i=1∑M?∥mi?(x)?mi?(x^)∥ - 3D PCP: 检测率。如果满足以下条件,认为该关节点被检测到
∥sn?s^n∥+∥en?e^n∥2≤α∥sn?en∥\frac{\left\|s_{n}-\hat{s}_{n}\right\|+\left\|e_{n}-\hat{e}_{n}\right\|}{2} \leq \alpha\left\|s_{n}-e_{n}\right\| 2∥sn??s^n?∥+∥en??e^n?∥?≤α∥sn??en?∥ - MJAE(Mean Joint Angle Error):衡量角度误差
MJAE=∑i=1M∣(yi?yi′)mod±180?∣MM J A E=\frac{\sum_{i=1}^{M}\left|\left(y_{i}-y_{i}^{\prime}\right) \bmod \pm 180^{\circ}\right|}{M} MJAE=M∑i=1M?∣(yi??yi′?)mod±180?∣?
7 总结
在受限场景中,表现较好;在复杂环境的实际应用中,还远不能满足目标。
key challenges:
- ill-posed. 不同的3D姿态可能表现为相似的2D投影,常伴随自遮挡 --> 可通过引入时序信息、multi-view信息来解决单目场景中的ill-posed问题。
- 人体姿态的多变性 --> PosePrior数据集提供了对合法姿态的先验信息。
- 人与人或环境的交互。需要解决多种遮挡问题 --> tracking by detection + multi-view的模式可以克服该困难。
- 为了在现实应用中落地,需要构建真实场景(unconstrained)数据集 --> 目前的虚拟数据集还不能达到足够逼真的程度。