GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB

 

GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB

(适用于单目RGB的实时三维手部跟踪)

Franziska Mueller1,2 Florian Bernard1,2 Oleksandr Sotnychenko1,2 Dushyant Mehta1,2

Srinath Sridhar3 Dan Casas4 Christian Theobalt1,2

1 MPI Informatics 2 Saarland Informatics Campus 3 Stanford University 4 Univ. Rey Juan Carlos

 

figure 1: 作者提出一种从单目RGB输入的3D手势跟踪方法。我们的方法兼容无约束的视频输入,比如来自youbube视频(left)和健壮的遮挡(左中)。我们使用一个现成的RGB摄像头来显示实时的3D手动跟踪结果(右中角)

 

论文地址:paper链接地址paper补充文件

训练数据:合成数据集

 

 

摘要:作者的跟踪方法将卷积神经网络和运动学3D模型结合起来,对未知数据,能鲁棒的对遮挡和可变摄像头视点进行归纳,从而使手部的运动更加平滑。为了训练CNN,作者提出一种基于几何一致的image-to-image的转化网络。更具体的说,作者使用神经网络将 “合成” 图像转化成“ 真实” 图像,这样,生成的图片与真实的图片之间具有相同的统计分布。为了训练这个 translation 网络,作者在转换过程中结合了 adversarial loss(对抗损失) 和 cycle-consistency loss (循环一致性损失)与 geometric consistency(几何一致性损伤)

 

Highlights

  • Problem
    • 如何能直接从单目RGB摄像头得到手势姿态关键点的3D世界坐标?
    • 如何获取精确的3D hand pose annotation
  • Solutions
  1. 文章提出了一种能够保持手部姿态不变的image-to-image transferGeoConGAN来生成训练数据;
  2. 文章提出的GeoConGAN不需要paired-image输入(原因是采用CycleGAN网络设计GeoConGANCycleGAN具有一个重要的特性,即不需要配对数据就可以训练网络);
  3. 文章采用了kinematic hand model来提高有物体遮挡情况下手势姿态回归的精度;
  4. 文章采用ProjLayer层细化2D3D关节点坐标位置;

 

论文核心内容

1.  Hand Tracking System(系统架构)

2. Generation of Training Data(训练数据如何生成)

3. Hand Joints Regression(手势关节点回归)

4. Kinematic Skeleton Fitting(运动学骨架拟合,细化2D和3D坐标精度)

 

  • Hand Tracking System

      本文的目的是提出一种单目RGB3D手势跟踪系统。总的系统如图2,给定RGB视频流使用CNN手关节点预测网络(ResNet),预测2D heatmap3D关节点位置。ResNet的训练输入是image-to-image转换网络GeoConGAN的输出生成的图片。GeoConGAN的输出图片——即GANerated图像——更适合于训练CNN,使其在真实图像上工作。在回归之后,作者通过最小化拟合能量来拟合预测2D3D骨架,这对于实现健壮的3D手姿态跟踪有几个关键的优势:它增强了生物力学的合理性;可以恢复绝对的3D位置;此外,还能够在多帧上实现稳定性。

 

  • Generation of Training Data

     由于在数百幅真实的手势图像中标记3D关节点位置是不可行的,因此通常使用的是合成的图像。合成图像的主要优点是真实3D关节点位置已知,但重要的缺点往往是真实感差。合成图片间的差异限制了CNN的泛化能力。为了处理这种不一致性,作者提出一个 image-to-imagetranslation 网络(GeoConGAN),客观的将合成图转为真实图。最重要的是,网络使用未经配对的真实和合成图像。注意,对于真实的和合成的数据,作者只使用前景分割后的图像,这些手势图都是白色背景的,这有助于训练和使网络聚焦在手势区域。

aGeometrically consistent CycleGAN (GeoConGAN

      虽然合成方式能产生大量的手势数据,但是有一个致命的缺陷,如果直接拿合成数据取训练回归网络,泛化往往会比较差,因此提出一个合成图像转真实图像的网络---GeoConGAN

      GeoConGAN网络是基于CyCleGAN, 它使用对抗式鉴别器同时学习循环一致的正向和逆向映射。循环协调性意味着两个硬伤的组合(在任一个方向)是恒等映射。在作者的例子中,作者学习了从合成图像到真实图像的映射(synth2real)以及从真实图像到合成图像的映射(real2synth)。和许多现有的image-to-image translation网络不一样,CycleGAN的优点是它不需要成对的图像,而这对于论文的目的来说是至关重要的,因为这些图像对我们来说是不存在的。

      图3 GeoConGAN网络的输入是(裁剪)在白色背景上的合成和真实的手图像,以及它们各自的轮廓,即前景分割掩膜。其核心是类似于CycleGAN与它的鉴别器和循环一致性损失,以及两个可训练的转换合成器合成的。然而,与CycleGAN不同,作者加入了额外的几何一致性损失(基于交叉熵),以确保real2synthsynth2real过程时保持手的姿态。图4 说明了该损失函数的好处

      为了提取real2synthsynth2real生成的图像的轮廓,我们基于一个简单的UNet训练一个二进制分类网络SilNet,它有3个2步长的卷积和3个反卷积。注意,这是一个相对容易的任务,因为图像具有白色背景。我们选择一个可微网络,而不是简单的门限,使得GeoConGAN的训练更加的柔和。我们的SilNet是在数据的一个不相交子集上预先训练的,并且在训练real2synthsynth2real时是固定的,详情在补充文件中。

b. Data augmentation(数据增强

     当GeoConGAN训练好后,可以通过 synth2real 产生大量真实图像。如图5,给GANerated生成后的图添加场景背景,就可以合成与真实环境统计分布一致的样本。

  • Hand Joints Regression手势关节点回归

     为了从RGB图像回归到手势的关节点,作者训练了CNN---ResNet,它能预测2D3D位置的21个关节点。2D关节点位置在图像空间中以heatmap的形式表示,3D位置表示为相对于根关节的3D坐标。我们发现,回归的2D和3D关节是相辅相成的,因为2D heatmap 能够表示不确定性,而3D位置解决了深度模糊。

     ResNet 如图6所示。基于一个由10个残差块组成的ResNet50体系结构残差网络,此外,作者还使用了一个基于投影层(projection layer)的(可微的)细分模块来更好地结合二维和三维的预测。the ProjLayer 的思想是执行中间3D预测的正投影。从中创建2D高斯heatmap。利用这些热图的(conv)部分进行最终的2D3D预测。图7a 表明这将导致更好的结果。

     训练是基于GANerated图像和合成图像的混合数据,以及相应的3D真实关节点位置。训练集包含了大约440000个样本,其中60%是修正过的。实证研究发现,进一步提高该比例不会改善真实测试数据集的性能。使用相对关节位置训练ResNet。

 

  • Kinematic Skeleton Fitting运动学骨架拟合

      该部分应该对应ResNet中的ProjLayer。作者首先根据DOF手关节自由度模型建立了kinematic hand model 的表示,每个关键点表示为Θ = (t, R, θ),其中,t是关键点的3维世界坐标,R是根节点的rotationθ是每个关节点的自由度的链接角度。

- M(Θ) ∈ R 则表示了由21个关键点构成的手势。
- 通过遍历3个参数的所有取值组合构建了一个 kinematic tree
- 通过公式E(Θ) = E2D(Θ)+E3D(Θ)+Elimits(Θ)+Etemp(Θ) 来计算输入的2D keypoints heatmap3D relative joints 最匹配的hand model

 

- 这个部分有一个细节是,用户需要在相机前的固定位置(论文里是45cm)完成一个初始化操作,来计算手部的scale

 

 

效果

 

      文章在 STB[1] 、 Dexter+Object[2] 和 EgoDexter[3] 数据集上评估了效果, 并主要和Z&B[4]的工作做了比较。具体比较如下,括号中是Z&B 的结果:

    • STB : AUC = 0.965 (0.948)
    • Dexter+object: AUC = 0.64 (0.49)
    • EgoDexter: AUC = 0.54 (0.44)

RegNet网络前馈性能: 

runtime: 13ms/帧  

设备:GTX 1080 Ti

 

GeoConGAN及ResNet训练细节补充

1. GeoConGAN network

      网络设计: GeoConGAN的体系结构是基于CycleGAN,即分别为合成图像和真实图像训练两个条件生成器网络和两个鉴别器网络,并对它们进行仿真。最近,也提出了只使用一个生成器和鉴别器来从未配对数据中丰富合成图像的方法---shrivastava等人。由于缺乏图像对,两者都在条件合成输入和生成输出之前使用L1损失(除了常见的鉴别器损失之外)。这种损失迫使生成的图像在所有方面都与合成图像相似,也就是说,如果合成数据尚未关闭,可能会妨碍生成器产生实际输出。相反,我们决定将循环一致性和几何一致性损失结合起来,使生成器网络能够进一步与合成数据有差距,从而更接近真实环境数据的分布,同时保持手的姿态。作者的GeoConGAN包含了ResNet生成器和最小二乘PatchGAN鉴别器网络。

参数设置

We train GeoConGAN in Tensorflow for 20,000 iterations with a batch size of 8. We initialize theAdam optimizer with a learning rate of 0.0002, β1 = 0.5, and β2 = 0.999.

2. RegNet network

Projection Layer ProjLayer: 3D人体姿态估计的最新工作是集成投影层,利用2D带标注的数据进行3D姿态预测。

      作者仅仅使用投影层作为精细化模块来连接2D3D的预测。使用正射投影,将3D预测值(中间MCP关节点)的原点投影到渲染热图的中心,得到中间相对三维关节点位置的预测。因此,作者处理后的热图也是相对的,不一定是与真实的2D热图对应的像素。因此,作者进一步处理渲染热图,然后将它们反馈到主网络分支。注意,渲染热图是可微的相对于3D预测,这使得ProjLayer的梯度反向传播成为可能。

参数设置

We train RegNet in the Caffe framework for 300,000 iterations with a batch size of 32. We use the AdaDelta solver with an initial learning rate of 0.1 which is lowered to 0.01 after 150,000 iterations. All layers which are shared between our network and ResNet50 are initialized with the weights obtained from ImageNet pre-training. Both, the 2D heatmap loss and the local 3D joint position loss, are formulated using the Euclidean loss with loss weights of 1 and 100, respectively.

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值