2019_ITM_Continuous Gesture Segmentation and Recognition using 3DCNN and Convolutional LSTM

摘要

  连续手势识别旨在识别连续手势序列中正在进行的手势,并且由于每个手势实例的开始帧和结束帧在实际中通常是未知的,因此更有意义。本文提出了一种有效的连续手势识别的深层架构。首先,使用提出的时间扩张的Res3D网络将连续的手势序列分割成孤立的手势实例。提出了平衡平方铰链损失函数来处理边界和非边界之间的不平衡。时间扩张使得基于时空信息上下文的分割更加合理和有效。然后,基于三维卷积神经网络(3DCNN),卷积长短期记忆网络(ConvLSTM)和二维卷积神经网络(2DCNN)构建识别网络,实现孤立手势识别。“3DCNN-ConvLSTM-2DCNN”体系结构对于同时学习长期相关时间特征和深度时空特征更为有效。提出的分割和识别网络在Chalearn LAP ConGD数据集上获得0.7163的Jaccard指数,比2017年ChaLearn LAP大型连续手势识别挑战获胜者高0.106。

1 介绍

  手势识别,其目的是解释人的手势,在计算机视觉领域非常重要,如人机交互(HCI)[1],虚拟现实(VR),手语理解。
  手势识别可以分为两类:孤立手势识别和连续手势识别[2]。前者旨在对每个序列中仅包含一个孤立手势实例的视频或其他类型的手势序列(例如,RGB-D或骨架数据)进行分类。后者必须从连续的数据序列中检测并识别没有已知边界的手势。大多数手势识别都集中在孤立的实例[3]-[9]。然而,连续手势识别更实用,因为手势的数目,顺序和边界在实际中通常是未知的[10]。对于连续的手势识别,还需要检测每个手势实例的开始和结束边界。
  模板匹配方法是一种基于每个帧中的手工特征的很有前途的连续手势识别技能,如[11]和[12]中所述。但是,手工制作的功能通常基于Kinect传感器从正面看到的手势。该限制使得模板匹配方法不适合于从RGB视频进行连续手势识别,视频可能从不同视角观察手,或者手轮廓由于遮挡或照明而模糊。因此,手工特征和传统的机器学习方法不适合视频的连续手势识别,部分原因是手势词汇量大,各种照明条件,词汇之外的动作,不同表演者之间的不一致和不规范的动作。
  一般来说,连续手势识别的分割和识别问题可以分别用深度神经网络解决。在[13]中,滑动体积法应用于RGB视频,以获得使用3D卷积神经网络(3DCNN)进行识别的手势体积。然而,滑动体积方法带来了巨大的计算量,并且不适合识别具有各种长度的手势。移动量(QoM)用于分割[14]中深度序列的手势。但是,基于QoM的分割方法假定所有手势都从相似的姿势开始。基于手动检测器的Faster R-CNN[15]被构造以获得用于时间分段的精确手部位置,然后采用双流递归神经网络[16]或3DCNN[17]进行最终识别。在这两种方法中,需要手动标记手部位置以训练手部检测器。
  在本文中,提出了一种基于Res3D网络[18]的手势分割网络和基于3DCNN和卷积长短期记忆(ConvLSTM)网络[19]的手势识别网络,用于连续手势识别。连续手势识别的分割问题在文献[20]中被视为两类分类问题,并且采用双流ConvNets将RGB-D序列中的每个帧分类为转换帧和手势帧。提出的分割网络也将每个帧分为两类:边界和非边界。将时间扩张插入到原始Res3D网络中以构建提出的分割网络。我们认为根据上下文信息检测手势边界更合理,而不是像[20]中那样使用局部帧。考虑到边界与非边界之间的不平衡,我们还提出了一种分段网络的均衡平方铰链损失函数。
  连续的手势序列被分割成各种长度的孤立的手势序列。因此,可以采用孤立手势识的别方法进行最终识别。提出的识别网络是我们以前的孤立手势识别网络的改进版本[6,21]。利用Res3D的底部四个3D卷积块学习短时空特征,然后利用ConvLSTM学习长时空特征映射,最后利用MobileNet[22]基于学习的2D时空特征映射进行最终分类。提出的“3DCNN-ConvLSTM-2DCNN”体系结构适用于各种长度的手势识别,无需额外的输入长度标准化。
  本文的贡献主要在于以下两个方面:

  • 基于上下文时空信息,Res3D采用时空扩展方式进行手势边界检测,并提出均衡平方铰链损失函数来处理分割网络训练中边界与非边界之间的不平衡问题。
  • 提出的识别网络中的3DCNN,ConvLSTM和2DCNN组件分别用于学习不同级别的时空特征。 这种组合使网络更适合同时学习长期相关时间特征和深度时空特征。

  本文的其余部分安排如下。在第二节中,简要回顾了连续手势识别的分割和识别方法的发展。随后,第三部分和第四部分分别给出了建议的分割和识别网络的细节。在第五节中,给出了实验结果来验证所提出的网络的有效性。最后,结论和未来的工作在最后一节讨论。

2 相关工作

  在本节中,将简要回顾连续手势识别的分割和识别网络的发展。

A.时间分段

  一般来说,连续手势识别比孤立手势识别更具挑战性,因为连续手势序列中手势实例的模糊边界。因此,时间分割对于连续手势识别是至关重要的。
  连续手势(或动作)识别的时间分割方法可以分为三类。第一类使用滑动窗口[13,23]或多尺度滑动窗口[24]进行时间分割。第二类假定相邻手势的开始和结束帧是相似的,例如,中立姿势或手位置。在[25]中提出了一个二元分类器来区分静止或执行动作的主体帧。基于[26]中的人手运动分析设计了一种时间分割方法。柴等在[16,17]中认为在生成一个手势时主体举手,在执行一个手势后放下双手。因此,他们利用Faster R-CNN来检测手并根据手位置来分割连续的手势序列。江等人[27]和王等人[14]基于移动量检测开始和结束帧,因为他们假设所有手势都是从相似的姿势开始的。第三类是使用基于神经网络的分类器来检测边界。Wang等人[20]利用双流ConvNets将RGB-D序列中的每个帧分类为“过渡帧”和“手势帧”。
  受之前的作品[28]和[29]的启发,其中构造卷积去卷积(CDC)网络在未修剪的视频中定位动作实例,并且在C3D中采用时间扩张来构建时间保存卷积网络以获得精确时间定位,提出了一种基于时间扩张的Res3D网络进行边界检测的分割网络。在分割网络中采用均衡平方铰链损失函数来处理边界和非边界之间的不平衡。

B.手势识别

  时间分割将未修剪的手势视频划分为独立的手势序列。在时间分割之后,连续手势识别被转换成孤立手势识别。虽然2DCNN在基于图像的应用中取得了巨大成功,但3DCNN在2016年和2017年ChaLearn LAP大规模孤立手势识别挑战中取得了优异的手势识别性能[30],[31]。Li等人[3]和朱等人[5]采用基于C3D的网络,并在2016年ChaLearn LAP大型孤立手势识别挑战中获得第一名和第三名。Duan等人[32]集成了一个卷积双流共识投票网络和一个3D Depth-Saliency ConvNet用于手势识别。苗等人[8]采用3DCNN从RGB/Depth/Flow模式学习时空特征,并使用典型相关分析(CCA)将特征融合到最终分类中。
  然而,我们认为递归神经网络更适合从各种长度的序列或长期序列中学习时间特征。因此在我们以前的网络[6],[21]中,我们使用浅3DCNN学习短时空特征,使用ConvLSTM来学习长时空特征。在本文中,使用最先进的2DCNN和3DCNN网络构建改进的网络。 Res3D的底部四个3D卷积块和MobileNet网络的一部分被用于提出的识别网络的3DCNN和2DCNN组件。实验结果证明了所提出的深层架构的优越性。

3 分段网络

A.深度架构

  时间分割对于连续手势识别是至关重要的。如图1所示,所提出的分割网络基于Res3D网络。与[20]中的时间分割网络不同,该网络使用双流ConvNets来对RGB-D序列中的每个帧进行分类,所提出的分割网络被设计为通过充分利用上下文信息来检测手势边界。因此,采用Res3D作为基础网络。
image
  原始的Res3D网络如表1所示,时间长度缩小了8倍。然而,为了获得更精确的手势边界,时间分割系统应该以精细的粒度进行密集预测。Shou等人[28]利用CDC过滤器对3D ConvNets的预测进行上采样,以便执行每帧动作预测。然而,3D ConvNets中的时间下采样操作会部分地导致时间信息的丢失。为了保持时间分辨率并同时对空间分辨率进行降采样,我们将所有卷积层的步幅减少到1,并将时间膨胀引入卷积层,如表1所示。我们在conv5中使用扩张率1而不是8([33]中使用),因为conv5是所提出的分割网络中的最终卷积块,所以通过使用具有适当频率的滤波器[35]来消除混叠伪像[34]。
image
  如表1所示,1级dense层,而不是2级softmax层,堆叠在提出的时间扩张Res3D网络的顶部。其动机是通过使用将在下一节中进行介绍的平衡铰链损失为边界和非边界构建“最大边缘”分类器。

B. 训练

  分割网络旨在检测手势边界。通常,手势实例的开始和结束帧被定义为手势边界。这意味着手势序列中边界和非边界的帧数之间存在巨大的不平衡。如果将边界检测问题简单地视为二元分类问题,则不平衡会对分割准确性产生负面影响。因此,在训练过程中采用均衡平方铰链损失函数,而不是softmax损失函数。
  在机器学习中,铰链损失是用于训练分类器的目标函数。铰链损失用于“最大边距”分类。对于预期输出y=±1和预测分数y’,预测y’的铰链损失被定义为
l(y,y)=max(0,1yy)(1) l(y,y')=max(0,1-y*y') \tag{1}
因此,在一个连续手势序列中手势的传统的平方铰链损失可以表示为
L=1Ni=1N(max(0,1yiyi))2(2) L=\frac{1}{N}\sum^N_{i=1}(max(0,1-y_i*y'_i))^2 \tag{2}
其中N是连续手势序列中手势的计数。
  为了处理手势序列中边界和非边界之间的不平衡,我们修改了传统的平方铰链损失函数。设rbr_brnr_n分别代表手势序列中的边界和非边界的比率。对于预期的输出,令yi=1y_i=1表示边界,yi=0y_i=0表示非边界。具体而言,由于在密集层中采用S形激活函数,所以1级密集层的输出是介于0和1之间的概率分数。因此,概率分数yiy'_i是连续的浮点数,其指示每个帧可以被标记为边界的程度。所提出的均衡平方铰链损失函数被定义为
L=rn1Ni=1N(max(0,(1yi)yi))2+rb1Ni=1N(max(0,(1yi)yi))2(3) L=r_n*\frac{1}{N}\sum^N_{i=1}(max(0,(1-y'_i)*y_i))^2 + r_b*\frac{1}{N}\sum^N_{i=1}(max(0,(1-y_i)*y'_i))^2 \tag{3}
  如等式(3)所示,等号右边的第一个表达式计算边界的平均损失,第二个表达式计算非边界的平均损失。权重值rbr_brnr_n组成边界和非边界之间的不平衡。将每一帧分为边界或非边界不是所提出的平衡平方铰链损失函数的唯一目的,获得边界和非边界之间的“最大边缘”分类也是关键目标。图2演示了时间分割的结果。
image

4 识别网络

  由于基于2DCNN的神经网络已经在基于图像的计算机视觉领域取得了巨大的成功,研究人员还在探索时空3DCNN是否可以追溯2DCNN和ImageNet的历史[36]。在过去的一年中,基于Res3D[18]和I3D[37]的神经网络在动作检测/定位/识别领域取得了巨大进步。在我们以前的工作[6]中,我们首先提出使用浅3DCNN学习短时空特征和卷积LSTM网络来学习长时空特征映射。在过去的ICCV 2017[21]中,我们通过堆叠3DCNN,双向ConvLSTM和2DCNN重建了神经网络,用于孤立的手势识别。在本文中,我们将3DCNN和2DCNN的最新特性引入到我们以前的网络中,并构建如图1所示的手势识别网络。
  如图1所示,在提出的识别网络中主要有三个卷积块:3DCNN块,ConvLSTM块和2DCNN块。
  3DCNN块旨在学习短时空特征,因此我们只借用Res3D中的最底层四个3D卷积块,即表II所示的conv1-conv4块。但是,我们用步幅(1,1,1)替换了conv4块中的步幅(2,2,2)。这意味着提出的识别网络的3DCNN块仍具有输出形状L/2×28×28×256。这与3DCNN块旨在学习短时空特征的原理完全一致。
image)
  ConvLSTM块旨在学习长期时空特征映射。使用ConvLSTM而不是LSTM的原因是在循环步骤中融合时间特征时保持空间相关性信息。手的位置在手势上下文中扮演重要角色。构建每层具有256个过滤器的两层ConvLSTM网络。ConvLSTM卷积的步幅都设置为(1,1)。这意味着ConvLSTM块不会缩小空间分辨率。在ConvLSTM的每个循环步骤输出的2D时空特征映射融合了过去帧的时空特征。视频被转换成2D时空特征地图,以进行更深层次的时空学习。
  在此阶段,3DCNN和ConvLSTM块已将视频文件转换为2D时空特征地图。然而,对于大规模的手势识别来说,这两个块仍然很浅,特征地图仍然具有28×28×256的大形状。因此,我们使用2DCNN来进一步学习更深的时空特征。在过去的一年里,深度可分离的卷积显示出它们的巨大优势[22,38,39]。因此,我们借用MobileNet[22]作为我们的2DCNN块。由于我们有2D特征映射,其形状为28×28×256,作为2DCNN块的输入,我们只借用MobileNet的一部分,如表3所示。
image
  在表III的MobileNet的顶部,我们在循环步骤上堆叠3D池层,如图1所示.3D池层具有L/2×4×4的核心,其中L/2是3DCNN块输出的时间长度,4×4是空间池化大小。因此,3D池化层的输出是1024维特征向量。最后,在网络顶部堆叠多级softmax层,以获得最终的识别结果。
  在最近的文献[40]中,研究人员考虑在各个级别“缩小”I3D模型以理解3D卷积的作用。但是,提出的识别网络不同于[40]中的“Bottom-heavy I3D”和[18]中3D和2D卷积的各种混合。提出的识别网络中的3DCNN,ConvLSTM和2DCNN块被有意设计为学习不同阶段或级别的不同时空特征。

5 实验结果

  提出的分割和识别网络在ChaLearn LAP连续手势数据集(ConGD)[2]和孤立的Jester Dataset-V1(Jester)[41]上进行评估。首先,提供ConGD和Jester的数据集描述和评估方法。然后,简要介绍训练策略。本节将结束实验结果和讨论。

A. 数据集和评估

  ConGD包含22535个RGB-D手势视频,有47933个RGB-D手势实例,来自ChaLearn手势数据集(CGD)。每个视频文件都包含一个或多个手势实例。由21个不同的人表演了249种手势。
  Jaccard指数用于评估性能(越高越好),该指标用于测量给定手势序列中真实与预测的序列之间的平均相对重叠。形式上,令Gs,iG_{s,i}Ps,iP_{s,i}为序列s的二元指示向量,其中1值对应于被标记或预测为第i类手势的帧。第i个类的Jaccard索引被定义为
Js,i=Gs,iPs,iGs,iPs,i(4) J_{s,i}=\frac{G_{s,i}\cap P_{s,i}}{G_{s,i}\cup P_{s,i}} \tag{4}
其中Gs,iG_{s,i}是真实值,Ps,iP_{s,i}是预测值。当Gs,iG_{s,i}Ps,iP_{s,i}为空时,Js,iJ_{s,i}被定义为0。因此,具有lsl_s个真标签的序列s的Jaccard指数被计算为
Js=1lsi=1CJs,i(5) J_s=\frac{1}{l_s}\sum^C_{i=1}J_{s,i} \tag{5}
其中C是手势类别的数量。对于所有测试序列S=s1,...,snS=s_1,...,s_n的n个手势,平均Jaccard指数JS\overline{J_S}被用作评估标准(越高越好)。JS\overline{J_S}计算
JS=1nj=1nJsj(6) \overline{J_S}=\frac{1}{n}\sum^n_{j=1}J_{s_j} \tag{6}
  Jester数据集[41]是一个密集标记的视频剪辑的大集合,显示人类在笔记本电脑摄像头或网络摄像头前执行预先定义的手势。该数据集由大量的人工创建。该数据集包括27种手势的148094个RGB视频。每个视频文件中只包含一个手势实例。
  对于孤立的手势识别,计算识别率r作为评估标准
r=1nj=1nj=1nδ(pl(i),tl(i))(7) r = \frac{1}{n}\sum^n_{j=1}\sum^n_{j=1}\delta(p_l(i),t_l(i)) \tag{7}
其中n是样本的数量,plp_ltlt_l是预测的标签和真实值。如果j1=j2j_1=j_2,则δ(j1,j2)=1\delta(j_1,j_2)=1,否则δ(j1,j2)=0\delta(j_1,j_2)=0

B. 网络训练

  分割和识别网络是在Tensorflow v1.2上使用Keras API实现的。NVIDIA TITAN XP GPU用于训练网络。
  对于分割网络,RGB和深度模态网络分别进行训练。学习速率在10个周期从最初的0.0001多项式衰减到最后的0.000001。提出的均衡平方铰链损失被用于训练。批量大小设置为1,因为视频文件具有不同的时间长度。输入的空间大小限制为112×112。给定RGB和深度模态网络的分割结果,评估两个分数融合策略以获得最终的分割结果。一个是“乘性融合”融合分数
Scorei=ScoreiRGBScoreiDepth(8) Score_i=\sqrt{Score_i^{RGB}*Score_i^{Depth}} \tag{8}
其中i表示序列中的帧索引。另一个是“平均融合”融合分数
Scorei=(ScoreiRGB+ScoreiDepth)/2(9) Score_i=(Score_i^{RGB}+Score_i^{Depth})/2 \tag{9}
提出的时间膨胀的Res3D网络输出似然概率分数,其指示每个帧可以被标记为边界的程度。这是使用替代的密集层的动机,如表1所示。因此我们需要使用阈值的方法来基于似然概率分数检测边界
Yi={boundaryifScorei>=TCnonboundaryotherwise(10) Y_i = \begin{cases} boundary & if Score_i>=TC \\ non-boundary & otherwise \end{cases} \tag{10}
其中i表示序列中的帧索引。TC=0.5是在我们的实现中区分边界和非边界的阈值。
  对于识别网络,RGB/深度/流模态网络分别进行训练。网络首先在Jester数据集上进行训练,然后在ConGD数据集上进行微调。在Jester数据集训练期间,学习速率在30个周期内从最初的0.001多项式衰减到最后的0.000001。批量大小为16,输入的时间长度为16,输入的空间大小限制为112×112。在我们以前的工作[6]中提出的采用时间抖动策略的均匀采样用于对输入进行预处理。在对ConGD数据集训练期间,学习速率在10个周期内从最初的0.001多项式衰减到最后的0.000001。批量大小为8,输入的时间长度为32 [3]。采用多级softmax损失函数,采用小批量随机梯度下降法进行训练。提出的识别网络的最终3D池化层输出的RGB/深度/流模式的特征被级联,用于训练最终识别的支持向量机(SVM)分类器。

C. 实验结果

  1)分割评估:为了评估所提出的分割网络的有效性,我们将提出的时间扩张的Res3D(TD-Res3D)与所有时间步长设定为1的Res3D(TS1-Res3D)的进行比较。换句话说,TS1-Res3D也是TD-Res3D的一个变体,其中所有的时间膨胀率都设置为1。分割网络首先将连续的手势视频划分为独立的片段,然后提出的识别网络进行分类。Jaccard指数,如公式(4)-(6)作为最终连续手势识别准确度的评估标准。
  表4给出了ConGD测试集的结果。提出的网络在2017年ChaLearn LAP大规模连续手势识别挑战赛中胜过现有方法[31]。在挑战中赢得第一和第二名的方法[31]使用Faster-RCNN来检测分割的手。需要手动标记手位置作为手部检测网络训练的监督。在提出的分割网络中,除了原始的帧级别标签外,不需要额外的标签。上下文时空信息被有效地用于分割视频。这一优势使得提出的分割网络更加实用和有效。
  此外,TD-Res3D与TS1-Res3D之间的比较表明,时间膨胀在分割网络中起着重要作用。扩张增强了时间感受域而不损失时间分辨率。因此,上下文时空信息可以充分用于分割。提出的分割网络优于仅基于孤立图像检测边界的方法[20]。
  2)识别评估:为了评估提出的识别网络,通过参考我们以前的网络来设计两个变体[6,21]。所有的网络都是在大规模孤立的手势数据集(IsoGD)上进行评估[2]。表V中的3DCNN组件具有四个3D卷积(类似于[21])。2DCNN组件有三个2D卷积(类似于[6])。空间金字塔池(SPP)组件具有4级池化,即7×7,4×4,2×2和1×1(类似于[6])。表V中的比较结果表明,采用Res3D和MobileNet的部分功能可显着增加卷积层的数量,而参数数量没有大的变化。卷积层数的增加带来更好的性能。
  提出的识别网络也在大规模孤立手势数据集Jester上进行评估。表VI给出了Jester的验证和测试集上的识别结果。提出的识别网络在验证和测试集上获得了最新的性能。鉴于提议的网络仅对每个视频预测一次,提出的网络与MultiScale TRN相比获得了1.69%的提高,并且仍然略胜于10个裁剪的MultiScale TRN。
  3)讨论:分段对连续手势识别至关重要。连续手势识别中的分割和识别过程可以分开或同时进行。如本文所示,所提出的分割和识别网络都使用Res3D。因此,如果分割和识别网络可以组合成一个网络来同时分割和识别连续的手势,这将是一个有意义的研究。在未来的工作中,我们将探讨使用手势边界作为ConvLSTM网络中遗忘门训练的监督方法。这也是我们之前在网络中不使用双向ConvLSTM的原因之一[21]。当需要保留空间或时间分辨率时,膨胀是一项重要技能。时间膨胀可以充分利用长期上下文信息而不会损失时间分辨率。
  了解三维卷积中空间和时间卷积的有效性是一个重要的研究问题。用时空可分离的三维卷积代替三维卷积似乎是一种更加有效和高效的选择。因此,重新考虑所提出的识别网络的3DCNN和2DCNN块的体系结构将是一个有趣的想法。受到这项工作的启发,处理ConvLSTM中的空间和循环卷积将是一个很好的未来研究方向。

6 结论

  本文提出了连续手势识别的有效分割和识别网络。分割和识别过程是连续执行的。首先,基于时间扩张的Res3D的分割网络将连续的手势视频划分为孤立的手势文件。然后,识别网络使用“Res3D-ConvLSTM-MobileNet”深度架构对每个孤立文件进行分类。ChaLearn LAP ConGD数据集和Jester数据集上的实验结果证明了提出网络的有效性。在我们未来的工作中,我们将探索使用手势边界作为ConvLSTM网络中遗忘门训练的监督方法,以便为连续手势识别同时进行分割和识别。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章