guodong's blog

master@zhejiang university
   

论文阅读(13): Compositional Human Pose Regression

这篇是iccv2017的论文,地址见 https://arxiv.org/pdf/1704.00159

作者谈到之前回归的方法都没有很好地利用姿势结构信息,于是他构建了一个结构思想的回归方法。它不采用关节点,相反采用骨骼来表达姿势。

之前的方法可以分成两种,基于检测和基于回归。基于检测的模型是生成每个关节的热图,使用最大值点作为关节,但是这样会有噪声和多模,而且无法生成3D热图,因为太需要内存和计算力。基于回归的方法是直接将图像回归到关节点,但是这样没前者方法表现好。这两种方法表现都不行, 因为他们忽略了姿势的内部结构,没有很好地利用关节的独立性。

为此作者提出了一个结构思想,称为  compositional pose regression (组成姿势回归)。作者采取这种想法的原因是:1、骨骼更原始更稳定,所以代替关节更好。2、它利用关节连接结构来定义loss函数,来编码骨骼之间的长距离作用。只需要重新参数化姿势表达。

关节是相对于图像坐标系中的恒定原点定义的,2D作者将最左上的点作为J0,3D中,将骨盆关节作为j0。

直接回归关节–baseline

首先还是归一化,减去平均值然后除以标准差,当然网络的输出也是归一化的。对于关节损失,使用欧氏距离并采用L1正则化。缺点上面也提到了,没有利用骨骼的结构关系。

基于骨骼回归

如上图,重新参数化顶点,使用骨骼表示。盆骨关节作为根节点,则骨骼树可以标记成从两端到root的tree边。parent(k)表示第k个关节的父关节的索引,为了方便,作者定义parent(1)=0,也就是将root关节父节点是原点。作者定义表示从当前关节指向父关节的向量(骨骼)。关节坐标在全局坐标系里标记,而骨骼更加原始,在当地坐标系定义。使用骨骼有以下优点:

  1. 稳定。骨骼更稳定并且更容易学习,图1表明骨骼的标准差比相对应关节的标准差要小很多,尤其是在手腕头部脚踝处。
  2. 几何方便。骨骼编码几何结构并且更容易表达几何约束。For example, constraint of “bone length is fixed” involves one bone but two joints. Constraint of “joint rotation angle is in limited range”involves two bones but three joints
  3. 应用方便。许多姿势驱动的应用只需要骨骼而不是关节。For example, the local and relative “elbow to wrist” motion can sufficiently represent a “pointing” gesture that would be useful for certain human computer interaction scenarios.

损失函数

会造成一点问题,比如骨骼是local的不相干的,在骨骼相连的时候,前面的误差会进行传递放大。为了解决这个问题,远程目标应该被考虑在内,远程误差应该适当平衡。具体做法如下:

使得ju jv为任意两块骨骼,假设沿着骨骼tree从ju到jv共经历m个关节,I(m)返回路径上第m个关节。M和I(*)是常亮,但取决于u 和v,为了清楚起见,在符号中省略了这种依赖性。另外∆Juv 表示路径上所有骨骼的和。sgn(*,*)函数表示骨骼BI(m)的方向是否沿着路径的方向,当parent(I(m))=I(m+1)时,返回1,否则返回-1。N-1表示将归一化的骨骼恢复成原始变量,其中均值和方差都采用GT的均值和方差。上面这个公式很有用,没有多余的参数,作为一个特殊的组合层来实现。

接下来是对GT处理。关节的相互位置,,给定一个关节对P,组成损失函数定义为:,每个关节对uv限制着沿着从u到v的路径上的骨骼。关节对很多,路径很多,每块骨骼都能多次用到,达到平衡的目的。其中关节对可以是任意的,作者在这里只测试了4组变量:

统一2D和3D姿态回归

可以分解成xy方向和z方向。xz方向的对2D和3D同时有效,z在2D中为0,只在3D中有效。xy是图像坐标,z是相机坐标。训练过程中,会经过归一化和逆归一化。在恢复的时候,xy部分通过相机内参数和透视投影模型。

数据处理

输入图像缩成224*224,同时通过平移,尺度变换旋转翻转等扩充数据。

结果

通过协议2的结果:(都是自家的称呼,主要还是看训练的数据集和测试时相机的位置)Protocol 2 Five subjects (S1, S5, S6, S7, S8) are used for training. Evaluation is performed on every 64th frame of two subjects (S9, S11). 除此之外还使用了额外的MPII数据集。

通过协议2的结果:Protocol 2 Five subjects (S1, S5, S6, S7, S8) are used for training. Evaluation is performed on every 64th frame of two subjects (S9, S11)。没有使用额外的MPII数据集。

协议1的结果:Protocol 1 Six subjects (S1, S5, S6, S7, S8, S9) are used in training. Evaluation is performed on every 64th frame of Subject 11’s video




上一篇:
下一篇:

头像

guodong

一条评论

这篇文章分数很好看,应该到现在都是sota。不过奇怪的是后面的文章很少在实验里加上bone loss这一项,就算仅仅作为提分的trick,加上这一项也应该有用才对。

发表评论

电子邮件地址不会被公开。 必填项已用*标注