ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J

A2J: Anchor-to-Joint Regression Network for 3D Articulated Pose Estimation from a Single Depth Image

简介:

这是我们在ICCV 2019的一篇论文,文章主要解决的是基于单张深度图像的手势以及人体的3D姿态估计问题,我们首次提出了将经典目标检测的anchor的概念应用到姿态估计任务中来,设计了一种简洁有效的方法,最终在包括三个手势姿态估计数据集(HANDS2019,ICVL,NYU)以及两个人体姿态估计数据集(ITOP,K2HPD)上取得了state-of-the-art的效果。

这里对文章做一个简要的介绍,欢迎大家讨论,相互学习,同时,如果你对我们的工作有兴趣,可以下载阅读我们的论文:https://arxiv.org/abs/1908.09999。同时,代码也即将给出:https://github.com/zhangboshen/A2J。

Anchor-to-Joint:

首先给出两张paper中的示意图。左图是我们技术方案的一个流程示意,对于一张给定的输入深度图片(这里假设输入仅包含单个手或人体,前面需要一个检测器的预处理步骤,类似于human pose的Top-down思路),我们密集的在图像上设立anchor point,如右图所示,每隔 s t r i d e = 4 stride=4 stride=4个像素点就会设立一个anchor point,最终的关节点预测将会通过这些anchor point去完成。具体而言,每个锚点需要针对所有关节点预测一个图像坐标下的偏移量(左图中的绿色箭头)以及一个深度值,最终的关节点坐标将由所有锚点加权投票得出(权重是可学习的,左图中红色的anchor point就是权重值比较大的点,我们称之为informative anchor point)。
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第1张图片

技术实现:

为了实现上面的思路,我们采取的技术流程如下图所示。Backbone我们在实验中主要基于ResNet50,也对比进行了其他的网络结构。输出包含三个分支,一个是图像坐标系下面的偏移量输出,一个是深度值输出,最后一个是对anchor point进行加权的anchor proposal分支输出。第三支的输出结果经过softmax之后直接乘在前面两支的输出结果上对anchor point投票进行权重赋值。
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第2张图片
上面的技术方案有几个特点:
1)Anchor proposal分支可学习,对于不同的关节点,Informative anchor point的分布是不一样的,因此,A2J具有针对不同关节点的自适应性
2)网络中不包含Deconv层,这里区别于目前主流的Heatmap的做法,不需要上采样使得我们的算法速度更快,结构更简单;
3)End-to-end training,我们最终的loss来自于anchor point加权投票之后的预测输出以及GT之间的差异,不需要对GT进行任何形式的变换。
4)。网络结构简单,前向推理的速度很快,我们在NVIDIA 1080Ti的实测速度超过100fps。

网络结构

上面提到Backbone基于ResNet来提取特征,事实上我们对ResNet的结构进行了一些小的调整,使得最终编码得到的特征是经过16倍下采样的(而不是32倍)。对于三个输出分支,我们的结构选择如下所示,即4个3×3的卷积就直接进行输出。最终的输出是对于每一个anchor point都会有上面提到的offset、depth以及置信度输出。
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第3张图片

损失函数

对于损失函数的选择,我们使用SmoothL1作为距离衡量标准,最终的损失包括 l o s s 1 loss_1 loss1 l o s s 2 loss_2 loss2两项, l o s s 1 loss_1 loss1用于衡量预测值与GT之间的差异:
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第4张图片
l o s s 2 loss_2 loss2我们称之为Informative anchor point surrounding loss,这个loss的意义在于控制Informative anchor point的空间分布,我们希望最终的Informative anchor point可以从关节点的各个角度去观察预测,进而加以下面的约束:
loss2
l o s s 2 loss_2 loss2实际是上是一个正则项,可以有效地缓解过拟合现象,最终的效果也非常显著,如下图所示,有无 l o s s 2 loss_2 loss2的时候Informative anchor point的位置分布差异很大:
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第5张图片

实验:

实验部分我们在包括三个手势姿态估计数据集(HANDS2019,ICVL,NYU)以及两个人体姿态估计数据集(ITOP,K2HPD)上进行,最终的结果都已经达到或接近了现在的state-of-the-art:
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第6张图片
ICCV2019:基于Anchor point的手势及人体3D姿态估计方法:A2J_第7张图片
Ablation study依次验证了我们对于每一个component的选择的有效性(详细结果请参见我们的论文)。

总结:

我们的工作创新点在于以一种简单的方式来使得anchor point的概念在姿态估计这个任务上得以实现。方法简单有效。A2J区别于现在主流的基于Heatmap的2D人体姿态估计方法以及手势3D姿态估计的方法(3D CNN,PointNet),拥有以上提到的许多优点。同时,A2J可以很容易的拓展到许多类似的任务中去,比如基于RGB图的2D/3D人体以及手势的姿态估计。此外,A2J的速度优势明显,未来可以考虑应用到一些耗时要求较高的嵌入式设备中。

你可能感兴趣的:(人体姿态估计,A2J,姿态估计,ICCV2019,HANDS2017)