《Learning to Estimate 3D Hand Pose from Single RGB Images》 论文笔记

《Learning to Estimate 3D Hand Pose from Single RGB Images》ICCV_2017.3

摘要

本文介绍了从2D彩色图像进行3D hand pose estimation的一种方法,总体来说方法很直观。
project page

论文摘要主要讲了以下几点:

低成本的深度相机和深度学习使得能够从深度图像进行合理的3D手姿势估计;
本文提出了一种从常规RGB图像估计3D手部姿态的方法。由于缺少深度信息,该任务具有更多的模糊性;
为此,本文提出了一个深度网络,学习网络隐式3D关节的先验。与图像中检测到的关键点一起,该网络 产生良好的3D姿势估计;
引入了基于合成手模型的大规模3D手势数据集用于训练相关网络。在各种测试集上的实验,包括关于手语识别的测试,证明了对单一RGB图像3D手姿态估计的可行性。

主要流程

Figure 2: 我们的方法由三个构建块组成。首先,通过分割网络(HandSegNet)将手定位在图像中。根据手部掩模,将输入图像裁剪并作为PoseNet的输入。这将定位一组表示为score map

困难

为了训练网络,需要具有真实标注3D关键点的大型数据集。由于没有这样的数据集具有足够的多样性,我们创建了一个包含各种数据增强处理的合成数据集。
在这里插入图片描述

手姿势表示

• 给定显示单手的彩色图像, 想要推断其3D姿势, 我们通过一组坐标来定义手部姿势, 其描述了3D空间中J个关键点的位置, 在这个例子中,J = 21
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HandSegNet

• 对于手部分割,我们部署了一个网络架构,该架构基于Wei [19]等人的Person detector并进行了初始化
• 我们的HandSegNet是Wei等人[19]在我们的手姿势数据集上训练的网络的较小版本。
• HandSegNet提供的手部掩模允许我们对输入进行裁剪和标准化,从而简化了PoseNet的学习任务。

HandSegNet网络结构:
在这里插入图片描述

PoseNet

• 我们将二维关键点的定位表示为二维分数图的估计: c = {c1(u, v), . . . , cJ (u, v)}.
• 我们训练一个网络以预测J个得分图 ,其中每个图包含关于某个关键点在空间位置处出现的可能性的信息。
• 我们使用来自Wei等人[19]的权重进行了初始化,并应用了这些权重,并对网络进行了重新训练以进行手部关键点检测。

PoseNet网络结构:
在这里插入图片描述

PosePrior network

• PosePrior网络在可能不完整或有噪声的分数图的条件下学习预测相对的、标准化的三维坐标。
• 为此,它必须学习多种可能的手部关节及其先验概率。根据分数图的条件,它将输出给定2D信息时的最有可能的3D配置。
• 首先,在x轴和z轴周围寻找旋转Rxz,使得某个关键点与规范框架的y轴对齐:
• 然后,计算围绕y轴的旋转Ry
• 为了适当地处理左手和右手之间的对称性,我们沿着z轴向右翻动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

根据这个规范坐标系的定义,我们训练网络来估计规范坐标系内的三维坐标,并分别估计旋转矩阵R(wrel),我们使用带有三个参数的轴角表示法对其进行参数化。
估计变换R等价于预测给定样本相对于规范坐标系的视点。
因此,我们将这个问题称为视点估计。
两个流的网络结构除了最后一层都相同:
在这里插入图片描述
输入32x32x21,输出两个层。一个是正则化的手的坐标,以手掌的点为原点,且长度进行了normalize, 即维度为21x3。另一个是相对于实际图片的空间的变换关系,即维度为3

数据集

在这里插入图片描述Figure4 : 我们的新数据集提供了33个类的分割图: 每个手指、手掌、人和背景对应3个类。手的三维运动模型为每只手提供21个关键点:每根手指4个关键点,靠近手腕的一个关键点。 包含 41258个用于训练的图像和2728个用于验证的图像,分辨率为320×320像素。

完整系统的例子

在这里插入图片描述 Figure7 :完整系统的例子。输入到网络的是彩色图像和是左手还是右手的信息。该网络对手部分割掩模进行估计,在二维空间中定位关键点,并输出最有可能的三维姿态。 左边的样本来自于我们记录的一个用于定性评估的数据集,右上角的样本来自于手语数据集,右下角的样本来自于S-val。