文章目录
选择该篇论文的缘由
最近一直在看关于挖掘人体结构属性的论文,在《Optimizing Network Structure for 3D Human Pose Estimation》ICCV2019这篇文章中,提到了对人体关节旋转角度进行学习的论文,也就是本次笔记中的论文。虽然是2015年发表的,但其中的做法与我之前的想法有点重合,值得进一步看一下。
论文要点汇总
【这是一篇从2D姿态估计3D姿态的论文】
- 收集了一个运动捕捉数据集,用于学习关节约束的姿态依赖模型,即角度约束
- 定义了一个一般且准确的人体姿态参数
- 提供了利用部分关节估计相机参数的方法
- 提出了一个新的、多阶段的方法,用于从2D关节中估计3D姿态【部分关节姿态估计—>全身关节姿态估计】
- 本文主要用于解决3D人体姿态模糊问题。(因为一个2D姿态可以对应多种3D姿态)
论文细节
数据集
现有的数据集例如CMU等,不足以用于学习真正的关节角度极限。因此作者捕获了一个新的数据集,包含各种伸展动作。
从这个数据集中,学习与姿态相关的关节角度极限,作为姿态估计的先验。
这个先验还可以与稀疏的姿态表达相结合,形成一个一般且正确的人体姿态参数。
相机参数
从2D姿态中估计3D姿态很重要的一步就是对相机参数的估计。不正确的相机参数会导致不正确的姿态估计。为了解决这个问题,提出了一个人体部件组合,称为“扩大的躯干”(extended-torso)。由躯干、头部、上肢组成。因为extended-torso的姿态变化小于全身姿态,更容易估计其3D姿态和对应的相机参数。然后将估计的相机参数用于全身姿态估计。相比以往的方法,这种多步骤的方法的效果更好。
【运动学树形结构】
以往的方法中,估计3D姿态使用的是从静态摄像头中获取的2D点。这些方法都需要使用附加的信息来解决歧义问题。如果不施加角度限制,可能估计出一个无效的三维姿态。
单目姿态估计中的一些歧义是通过序列帧来解决的。
关节约束
在生物力学中已经证实,关节对之间存在角度约束,例如一个人的手臂能弯曲多少取决于它是在后面还是在前面。医科教学书中仅提供少数位置关节角度的极限,全身与姿势相关的关节角度极限未知。
以往大多数方法都是假设固定的关节角度限制。
条件姿态先验
全局坐标转换为局部坐标
为了估计关节角度的极限,首先需要找到所有关节的局部坐标系。
局部坐标系:可以唯一地找到一个关于两个非平行向量u和v。第三个坐标轴使用Gram-Schmidt
和u×v获得。
pa(b)表示父关节,Ru是u的旋转,a为任意向量。
关节角度极限
将上臂、上肢和头部的局部坐标转换为球形坐标,分别用离散的方位角θ和极角φ表示。
如果骨骼的方位角和径向角(极角)所示位置在相应的矩阵中值为1,则认为该骨骼是有效的。
【图中绿色为有效区,蓝色为无效】
为了找到骨骼合理性的空间。首先定义一个平面,b^Tn+d<0。n为法向量,d为平面到原点的距离。然后将数据集中b的所有实例投影到平面上,并找到一个包含这些投影的边界框,如果一个骨骼位于这个空间内,则认为是有效的。
使用下面的公式来优化分离平面。
A是数据集中b的所有实例的列式连接。
3D姿态估计步骤
准备工作
在一个能缩放的正交相机模型下,图像中的2D关节坐标由以下公式得到
大X表示3D坐标,小x表示2D坐标;s,R,t表示相机的缩放大小、旋转、变换参数;⊗表示 Kronecker积;下标1:2表示矩阵的前两行。
我们可以让t=0,假设3D的质心被映射到2D,这也是世界和相机坐标系的起源。知道了三维姿态,就可以用公式(4)计算真实的t值。
目标函数
本文从2D姿态到3D姿态估计的方法,使用了所提出的姿态角度先验和骨骼长度遵循已知比例的事实。
为了关注姿态而不是身体比例,将所有训练的身体设置成相同的平均骨骼长度,并且所有身体拥有相同的比例。使用extended-torso进行Procrustes对齐。
学习每个动作类的PCA基础,并将这些基础连接起来,以得到过完整的字典。
估计3D姿态使得下面公式值最小
β是一个标准化常数,成本Cl为估计的第i个骨长度与标准化平均骨骼长度之间的差值
X^通过公式(2)获得
µ表示平均姿态,ω是姿态系数的响亮;B是一个从过完整字典B中选择的基础姿态Bi与列索引IB的列式连接。
X^表示与基础姿态对齐的近似三维姿态,并与估计的姿态X和相机旋转R有关,
这种稀疏表示比PCA提供了更好的泛化性。但是仍然会有无效的姿态。本文通过解决下面的优化问题来估计这种无效的姿态。
∣∣·∣∣表示L²范式;如果骨骼都是有效的,则Cp=0,相当于使用isvalid(.)函数。
公式(7)比以往的方法对初始化更加敏感,特别是需要对相机旋转矩阵R进行更好的猜测来估计正确的三维姿态。为了解决这个问题,发现extended-torso比全身姿态的多样性更少,因此它的姿态估计可以给出更准确的相机矩阵。
Extended-torso姿态估计
最小化类似于公式(7)中的方程(9),但X是全身,而是只考虑在extended-torso中的X’。
学习extended-torso中的平均u’和PCA基础B’。
OMP算法
这里已经通过利用关节角度限制知道一些骨骼的深度。
Z表示3D姿态中所有点的未知深度;li表示第i个骨骼的长度;s表示估计的正交尺寸;
文中生成手臂或腿部骨骼的所有可能情况,并通过使用有效函数isvalid(δX)测试是否为有效姿态。
Id是通过这种方法估计出来的深度指数。
算法解读:
从当前的3D姿态估计为u(平均姿态),计算2D投影和已知的相对深度的初始残差(1,2行)。
每次迭代中,从B(过完整字典)中选择一个基向量并添加到B中,该向量与当前旋转估计下的残差最一致(4,5行)。
然后给定B,重新估计姿态系数w和相机旋转R(6,7行)。
如果基向量使结果姿态无效,则移除它,并考虑下一个具有最高点积的基向量(8,9行)。
残差使用B、w*和最新估计出的R进行更新(10,11行)
最终,估计出来的B*,w*和R用于初始化公式(7)。
实验
baseline只有投影匹配算法组成,并测试它的准确性。
之后需要做的地方
- 相机、图像、像素坐标之间的转换方法整理
- 该作者后续的文章
- 优化思考
扩充角度极限学习的数据集,使之包含平常运动及极限姿态。(只包含极限的姿态对估计日常姿态可能不准确,可能会认为小范围的合理的角度不行)
知识拓展
球坐标系极角(径向角)、方位角的定义
Procrustes对齐
通过不断的迭代,寻找标准形状,并利用最小二乘法寻找每个对象形状到这个标准形状的仿射变换方法。