【论文笔记】(2019CVPR)3D Hand Shape and Pose Estimation from a Single RGB Image

1.导论

1.1算法的输入和输出

输入:一张RGB图片(in test,还需知道相机的内参、手掌的boudingbox,用来将uvd坐标转换为xyz坐标);输出:Mesh手掌模型(由图结构节点所定义的)、3D Hand Pose

1.2作者的逻辑

作者认为,从single RGB中恢复3D mesh有以下挑战: “3D hand mesh的众多vertices代表着高维度的输出生成”,通常的做法是回归一个可变性手部模型(如MANO的β、θ )的低维度参数,而作者的做法是:将3D hand mesh vertices当作一种图结构的数据。将从图像得到的低维向量输入至Graph CNN(伴随着upsampling and nonlinear activation),得到3D hand mesh vertices。“缺乏带有ground truth 3D hand mesh的真实世界训练数据”,作者的做法是:创建一个大型的合成数据集进行训练。“但是,合成数据集所训练的模型很难适应真实世界”,于是作者又想到:利用weekly-supervised method弱监督方法进行微调网络,主要就是利用深度图像作为3D mesh生成的弱监督,而不需要3D mesh or 3D pose 注释。

2.方法

2.1方法概述图

2.2用以Mesh姿态估计的图卷积神经网络

作者采用的图神经网络为Chebyshev Spectral Graph CNN,以此来生成图结构的手掌关键点。Chebyshev Spectral Graph CNN的关键在于它利用了切尔雪夫等式作为它的过滤函数,以此抵消了“特征向量”,从而使得Graph CNN的过程不需要计算“傅里叶变换”,大大减少了计算量,使得基于频谱的Graph CNN转化为了基于空间的Graph CNN。中间的过程函数如下所示:

fin维数为N*Fin,L的维数为N*N(由度数矩阵与邻接矩阵求得,为实对称矩阵),θk的维数为Fin*Fout,上式所得到的维数为N*Fout。具体的式子含义可见原文。上式的操作是K-localized的,因为它是一个关于图拉普拉斯矩阵的K次多项式,而且它只影响每个中心节点的K-hop neighbors(这句话不是很理解,因为矩阵L是含有所有节点之间相互关系的,那么fin与Tk(L)矩阵相乘,则应该每一个节点,而不是局部的节点)。

From coarse to fine:

图中的拓扑结构是预先设计计算好的,用的是一种[9]聚类算法来进行coarsen操作,并且创建了树形结构来存储相关数据,如下图左所示。而upsampling操作则如下图右一般。

而Graph CNN用的则是K=3的Chebyshev Graph CNN。最终网络输出的坐标是UV坐标。而真实的3D坐标需要结合相机内参才能够得到。而3D joint locations的提取作者用的是simplified Graph CNN,带有两层池化层。

2.2合成数据集上的全监督学习

Heat-map Loss

Ground truth heat-map是基于ground truth 2D joint location的标准差为4的正态分布。

Mesh Loss

Vertex loss(用以约束mesh顶点的2D、3D位置):

Normal loss(用以加强mesh表面的正常一致性):

3点成面??

Edge loss(用以加强mesh的边缘长度一致性):

Laplacian loss(保留mesh局部表面的平滑性):

大家往一个方向偏,则局部就会更加顺滑~??

最终的loss:

3D pose loss

在实际训练中,首先用heat-map loss和3D pose loss分别训练stacked hourglass network和3D pose regressor;然后用完整的loss训练stacked hourglass network、residual network、Graph CNN for mesh generation:

2.3基于弱监督的微调

Depth loss:

Pseudo-ground truth mesh loss:

Depth loss仅仅约束可见面,并且对于噪声十分敏感,所以运用了Pseudo-ground truth mesh loss。运用预训练模型和ground truth heat-maps,得到Pseudo-ground truth mesh,然后如mesh loss一般,但不使用vertex loss和normal loss,只使用edge loss和laplacian loss,以此来保存边缘长度和mesh的表面平滑性。

最终的loss:

若有ground truth 3D pose,则可加入 pose loss。

3.合成的数据集

现有的合成数据集大多只提供2D/3D手掌关节点的位置,没有包含3D Hand Shape的注释。于是作者使用了Maya进行来创建带有配备有joints的3D Hand model,并用HDR(High-Dynamic-Range)images赋予它真实的纹理和自然光。作者通过创建具有不同形状和比例的混合形状,然后在混合形状上应用随机权重,来模拟手部的变化。作者选择了500种手势和1000个摄影角度。为了模仿真实世界的多样性,作者用了30种光和5种肤色。作者的Render操作用的是off-the-shelf Arnold renderer。总共生成了375,000张RGB图像,315,000用作训练,60,000用作测试。背景取自COCO [28], LSUN [60], and Flickr [10] datasets。

作者还创建了真实世界的数据集共583张RGB用以评估模型效果,创建过程是:利用RGBD得到深度图像,并参考RGB图像和深度点,在Maya中手动调整3D手部模型。

4.实验结果

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值