guodong's blog

master@zhejiang university
   

论文阅读(17): Learning Pose Specific Representations by Predicting Different Views

这是一篇cvpr2018的论文,虽然是关于手势识别的,但是对三维重建来说也有借鉴的地方。论文地址:https://arxiv.org/pdf/1804.03390   项目地址:https://poier.github.io/PreView/

摘要:作者说自己构建了一种方法来学习铰链目标表达,并且不需要训练数据被标记。给定一个pose和shape的手,能够近似出任意视角下的模型。这个模型中,给定一个视角下的输入,来生成另外一个视角下的手势。因此唯一需要监督的地方就是第二视觉。

这是一篇cvpr2018的论文,虽然是关于手势姿态重建的,但是对人体姿态重建来说也有借鉴的地方。作者构建了一种方法来学习铰链目标表达,并且不需要训练数据被标记。给定一个视角下的手的姿势和形状参数,能够生成任意视角下的近似姿势和形状,具体上,先估计较少的隐含变量,随后从这些隐含变量中来估计不同视角下的姿态。直觉上,这些隐含变量可以认为是姿势和形态的参数。如下图所示,为了能够使用第二视角下的图像,作者使用图中所示框架,中间是低维的隐含变量,另一个视角下的预测误差作为反馈,强制中间的隐含参数获取更具体的姿势信息,从而不需要给图片标记姿势参数。整个训练过程是端到端的半监督的方式,允许标记的样本少一个数量级。

从多视角学习:多视角学习的一个例子就是canonical correlation analysis (CCA),看参考文献吧。

Implementation of the observations

作者设θ为手的参数,包括大小和形状,对于一个已知的视角i下的参数xi, d表示维度,构建一个函数g使得其中T是可能的姿势参数集合。但是θ也就是手的参数是未知的,所以还需要构建函数,输入的是图像,输出的姿势参数。综合之,可以得到函数:i是已知的视角,j是任意的视角,x表示图像。于是问题变成成,如何得到这两个参数。函数f相当于encoder,输入图像,得到姿势,函数g相当于decode。输入姿势,得到图像。为了不失一般性,作者假设输入图像具有深度信息。

loss也就是重建loss:y是预测输出,x是GT,使用L1正则化。另外,作者还谈到了对于f函数,应该有个损失,防止产生没必要的没意义的姿势,不过损失函数自身没必要约束f来完成这个目标,作者谈到可以通过简单并且有效的方法来约束这项:假设除了输入之外,任何已知视图下的外观预测的最小可能的表达,都包含类似于这个姿势的表示。

Learning from labeled and unlabeled data

如图所示,作者设计了一个线性层,其实是DCGAN ,使用带标签的图像来训练中间的参数,关节位置的表达。f是encode,映射到姿势参数θ,后面提到这个θ的数目的多少不是固定的,后面有提到,当数目是20-30时表现最好。decode g2是生成不同视角下的图像,gl是将中间参数θ映射到3D关节位置,保证满足线性映射,这个过程的参数都是使用带标签的数据集训练,其他所有的参数及使用带标签的也使用不带标签的。

半监督的损失函数 lsemi结合打标签和不带标签的损失,λ1权重因子,当使用没有标签的数据时,为0。为了提高鲁棒性,作者对每个关节使用huber loss求和,其中||·||表示L2范式,lhuber函数:d,始终是正的,huber损失。

另外作者还设计了对抗损失,但提升效果不是很明显,忽略了。对抗性损失会产生计算开销,需要对训练的参数进行非常明智的调整。

数据集

NYU hand pose dataset 另外还自己构建了一些数据集。

 




上一篇:
下一篇:

guodong

没有评论


你先离开吧:)



发表评论

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