前言

近年来,基于CNN的手势估计方法取得了良好的效果,但目前的方法都存在依赖使用大规模的标注数据集进行训练的问题,而手势数据标记的过程费时费力。此外,在三维手势估计任务中,如何高效地表达和处理三维数据也是一大问题。基于上述问题,基于自组织网络的点云处理算法以及半监督的训练策略,我们提出了一种从深度图像估计出三维手势的算法。

 

image-20200227184839049

【一分钟批阅版】

我们根据相机参数将深度图像转化为三维点云,然后使用HFE (Hand Feature Encoder)对从深度图像中恢复出的点云进行处理,提取global feature和node feature。通过HPE (Hand Pose Estimator)从融合的feature中回归出三维hand pose。此外我们设计了另一个branch,用于在训练阶段从global feature中重建出原始点云,通过比较恢复出的点云与原始点云可以监督autoencoder的训练,从而辅助提高手势估计的效果。另外,点云autoencoder的训练是无监督的,结合手势估计的全监督训练,我们可设计半监督的训练策略用于整个网络的训练,使用带手势标注的数据和未标注的数据共同训练网络。

【五分钟催眠版】

Point cloud preprocessing

我们首先根据深度相机的内参,从深度图像中得到三维点云,设置的采样点数为1024,并进行归一化到方向包围盒坐标系统(OBB C.S)。我们通过SO-Net 编码器从点云中得到SOM对点云的空间分布进行建模以及特征提取,用于引导点云的特征学习。其中,SO-Net是一种处理无序点云的网络,该网络通过构建self-organizing map (SOM) 对点云的空间分布建模,然后对单个点和SOM节点进行分层特征提取,最后生成输入点云的特征表示。

HFE & HPE & HFD

Hand Feature Encoder (HFE)为SO-HandNet网络中的编码器,在SOM的引导下,HFE编码器提取了global、node和point三个等级的特征。Hand Pose Estimator (HPE)为网络中的姿态估计部分,将HFE编码器得到的多等级特征融合用于估计3D手势。Hand Feature Decoder (HFD)为网络中的点云解码器,在训练过程中,HFD解码器从Global Features中恢复一个点云,并与原始点云进行比较,从而优化HFE编码器的特征提取能力。

image-20200227184856752

 

Semi-supervided Learning Strategy

 

在训练阶段,我们同时使用带手势姿态标签的数据和未带标签的数据来训练模型。对于没有标注的训练数据,利用Chamfer Loss损失函数对Autoencoder部分的编码器HFE和解码器HFD进行训练优化;对于具有标签的训练数据,可以利用编码器HFD提取的特征预测3D Pose以及恢复点云,然后通过Chamfer Loss和Hand Pose Loss两方面损失函数对整个网络进行训练优化。

image-20200227184914936

实验结果

我们对比了是否使用半监督训练对最终效果的影响,下图比较了在ICVL 数据集中分别使用25%、50%、 75% 标注数据进行训练的平均误差,结果表明使用半监督的训练策略有助提高效果,且在标注样本较少时(如25%),精度提升更为明显。

image-20200227184933673

下图对比我们的方法与Crossing Net在使用25%,50%, 75%,100%的标注数据和剩下的无标签数据进行半监督训练的平均误差。在ICVL数据集上,除25%以外,我们的效果均好于Crossing Net;而在NYU数据集上,我们的效果均优于Crossing Net。

img

下图对比了我们的方法与之前最好的两种半监督手势估计方法Crossing Net与Cross-modal在NYU、MSRA、ICVL数据集上的表现,横轴是允许最大的误差,纵轴是分布在此误差范围内的测试样本比例,综合三个数据集的测试结果,可见我们的方法效果最好。

image-20200227185025782

image-20200227185052083

image-20200227185112876

总结

数据表示:深度图像 → 点云;

训练策略:Unsupervise + Fully-supervise → Semi-supervise;

应用:使用未标注数据辅助训练,减少标注数据需求。

 

 

Code

欢迎star

https://github.com/TerenceCYJ/SO-HandNet