3D人手姿态估计论文:CrossInfoNet: Multi-Task Information Sharing Based Hand Pose Estimation

3D人手姿态估计论文:CrossInfoNet: Multi-Task Information Sharing Based Hand Pose Estimation

论文地址:https://openaccess.thecvf.com/content_CVPR_2019/papers/Du_CrossInfoNet_Multi-Task_Information_Sharing_Based_Hand_Pose_Estimation_CVPR_2019_paper.pdf
论文代码:https://github.com/dumyy/handpose
论文出处:2019CVPR

论文概述

本文提出一种CrossInfoNet,将hand pose estimation任务分成两部分:palm pose estimationfinger pose estimation,并对两个分支采用cross-connection方式进行信息共享(受多任务信息共享机制的启发)。

并提出一种热图引导的特征提取结构(heat-map guided feature extraction structure)以获得更好的特征图,可以从热图中通过end-to-end的方式进行训练,得到关节坐标。

实验部分在ICVL Dataset,NYU Dataset,MSRA Dataset,HANDS 2017 Challenge Frame-based Dataset四个公共数据集上进行自比较(消融实验)和与一些SOAT方法的比较。

1. 简介

  • 3D人手姿态估计的难点:(1)关节高度灵活性;(2)局部自相似性;(3)严重的遮挡。
    人手姿态估计从数据上发展为:RGB图像–双目图像–深度图像–RGB图像(做3D估计);
    姿态估计算法分为:基于生成模型的方法(generative model-based
    )和基于学习的方法(learning-based),目前基于学习的方法发展SOAT。

  • 对于深度图的处理,可以将深度图视为2D图像,然后回归到3D关节坐标。 本文采用的是2D输入图像,使用2D CNN网络。

  • 采用多任务学习能够提高网络的泛化能力。
    全局的人手姿态主要取决于palm的关节状态;局部人手姿态受到finger的关节状态影响最大。
    本文根据多任务设计了一种分层模型(hierarchical
    model)
    。它包含2个branch,对应手掌关节回归sub-task和手指关节回归sub-task

  • 输出有热图和3D关节坐标两种方式。 热图能提供更多的关节相关信息,优于3D坐标。 一般采用maximum
    operation从热图获得关节坐标,但这不是端到端的方法。
    本文提出了一种热图导引的特征图提取网络结构,能将热图到3D关节坐标实现训练端到端。

2. 相关工作

  1. 姿态参数

姿态可以由关节坐标关节热图两种方法表示。
关节热图首先由Tompson等人提出,它使用2D热图表示每个人手关节的姿态参数,再通过后处理(post-processing)将他们转化成3D坐标。

热图不仅能减少需要的学习能力,还能提高泛化能力。

本文采用热图限制下的3D坐标回归。该策略能使模型学习到更好的特征图,无需后处理就可以得到准确的关节坐标。

  1. 模型设计

分层模型可以将手姿态估计根据手的结构分解成多个子任务。

Chen et al.对每个手指和经过手指的连接关节都分配了子任务;
Madadi et al. 使用5个分支为手指建模,再使用一个分支为手掌建模;
Zhou et al.使用3个分支,一个用来表示大拇指,一个表示食指,一个表示剩下三个手指。

本文两个分支上使用不同的参数设置,可以使回归任务变的简单;
此外,使用交叉连接能使每个分支focus on自己的任务。

  1. 多任务信息分享

多任务学习能够使模型更好的泛化。

Xia et al.提出多任务解决人体解析和人体姿态估计任务。使用2个FCNs,估计的姿态能提供目标级的形状先验来调整部位分割,部位分割能限制姿态位置的变化。最后两个任务通过fully-connected conditional random field (FCRF)进行融合。
文献[39]是第一个将多任务学习应用到人手姿态估计上的,他们将任务分为2D热图、3D热图和单位3D方向向量场。通过基于后处理的mean shift algorithm进行融合。

本文的关节回归任务分解成手掌的关节回归子任务和手指关节回归子任务。通过交叉连接2个子任务来分享信息。

3. 方法

CrossInfoNet:信息共享的多任务分层模型

  • 初始化特征提取模块:整体热图作为约束来学习更好的特征图,获得全部关节特征。
  • 特征微调(refinement)模块:分解为两个子任务,一个子任务是估计手掌关节,另一个子任务是估计手指关节。再通过将两个子任务的特征图共享以提高估计性能。
  • 关节坐标回归模块
    在这里插入图片描述

3.1 热图引导的特征提取

在这里插入图片描述

  • 选择用resnet50作为backbone,它带有4个residual modules。
  • 采用特征金字塔结构融合不同层是为了获得更多信息。
  • 不同于其它基于热图的检测方法,这里的热图只作为约束指导特征的提取,并不传播到接下来的模型。
  • 用于回归初始关节位置的特征图定义为T。它具有256个channels,会输入到后面的特征微调模块。

注意:这步完成之后可以获得hand的姿态热图了,已经完成了手姿态估计的任务,只是这里是一个粗略的估计结果,后面的分层网络模块只是用来做微调。

3.2 Baseline的特征微调结构

  • 手掌关节相对手指关节有更小的活动空间,因此两个部分的回归复杂度是不同的。
    如果用2套不同的参数表示手指和手掌,人手姿态回归会更容易。

在这里插入图片描述

  1. 从初始特征提取模块输出的T输入到两个分支的residual block提取手指和手掌更本质的局部特征。
  2. 经过全连接的fp和ff再串联来估计全部关节坐标。
    在这里插入图片描述
    不同数据集有不同的label协议(protocol),HAND 2017 frame-based challenge dataset结构与MSRA一致。

3.3 New的特征微调结构

  • 上述baseline的特征微调结构和基于网络的全局方法没有太大的区别。

  • 然而,在手掌回归分支中,有残余的手指特征,这些特征对于手掌姿态回归来说是噪声,但对于手指的姿态回归是有用处的。

  • 因此想到设计一种新的多任务信息共享策略。

  • Twotask Cross-stitch Network是一种通用的都任务网络,如图5(a)所示。
    在这里插入图片描述

  • 根据图5(a)设计图5(b)的结构。

  • 以上面分支为例,通过skip line来从全局手特征中减去palm特征,得到finger特征,然后采用cross line将上面分支的finger特征和下面分支的finger特征用concat串联,得到强化的finger特征。

具体的结构如下图所示:
在这里插入图片描述

  • 视finger特征F_为手指的“attention mask”,这个mask对手掌姿态回归是noise,但对手指姿态回归是有利的。

图6对应的算法如下:
在这里插入图片描述

3.4 误差函数

  1. 初始特征提取模块
    热图的检测误差定义为:
    在这里插入图片描述

  2. 特征微调模块
    用于提取手掌的初始特征P0和手指的初始特征F0的误差函数:
    在这里插入图片描述

  3. 回归模块
    手掌关节回归误差、手指关节回归误差、整手的关节回归误差分别定义为:
    在这里插入图片描述
    在这里插入图片描述

  4. 整体的误差函数
    在这里插入图片描述

3.5 补充细节

  • 图片中手的区域先被裁剪,然后resize为96×96的图片。
  • 裁剪区域的深度值归一化到【-1,1】,labels进行同样的归一化。
  • 训练时进行在线数据扩充,分别做随机旋转(【-180,180度】),平移(【-10,10像素】),缩放(【0.9,1.1】)。
  • 所有权值的初始化都进行零均值正规分布with σ = 0.01。
  • Initial learning rate 1e-3, batch size 128 and weight decay 1e-5. The learning rate is reduced by a factor of 0.96 every epoch, and the dropout rate is set to be 0.6 to prevent over-fitting.
  • RTX 2080 TI GPU。
  • 单个GPU上速度124.5fps。

4. 实验和结果

4.1 数据集

  • ICVL dataset
    训练集:330K(22k frame真实的数据,300k经过平面旋转的增强数据)
    测试集:1.5K
    标签:16 annotated joints

  • NYU dataset
    训练集:72k (three different views, subject A)
    测试集:8k(subject A,B)
    标签:14 annotated joints

  • MSRA dataset
    数据集:76.5k(9 subjects and 17 different gestures for each one)
    标签:21 annotated joints

  • HANDS 2017 Challenge Frame-based Dataset
    训练集:957k(5 subjects)
    测试集:295k(10 subjects, including 5 unseen subjects)
    标签:21 annotated joints

  • 评价标准
    (1)the average 3D distance error between the ground truth and the predicted 3D joint location for each joint;
    (2)the percentage of success frames below a threshold.

4.2 消融实验

在这里插入图片描述

4.3 SOAT比较实验

误差比较:
在这里插入图片描述
速度比较:
在这里插入图片描述
效果图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gaoqing_dream163/article/details/109226787