徐 访,黄 俊,陈 权
(重庆邮电大学通信与信息工程学院,重庆 400065)
人机交互系统是人与机器之间交流与信息传递的桥梁[1]。传统的人机交互需借助鼠标、触摸屏、相机等可输入设备进行,传递的信息形式也由早期的编码字符等发展成图像、视频的形式。随着科技的发展以及人们对智能设备日益增多的应用需求,目前,通过机器识别出肢体动作已成为热门研究方向之一[2]。
手势识别方法主要分为基于数据手套及基于视频数据2 种方法。GRIMES 等[3]于1983 年发明了数据手套,里面的传感设备将手部运动姿态等物理信息转化为供计算机使用的数字信息并进行手势识别。然而数据手套价格昂贵且过度依赖辅助设备,用户体验度不佳,难以推广。在基于视觉数据的方法中,用户无需佩戴数据手套等设备,仅配备摄像头就可以实现手势的识别,且识别的精度及速度均在可接受范围内。
传统的基于视觉的动态手势识别常见模型有隐马尔科夫模型(HMM)[4]和动态时间规整(DTW)模型[5]。文献[6]提出一种融合手势全局运动和手指局部运动的手势识别模型,根据关节坐标和距离函数提取关键帧,利用支持向量机实现动态手势识别及分类,该模型使用的手势数据集存在局限性且没有考虑手势旋转的情况;WANG 等[7]提出建立手势三维轨迹特征向量和手形特征,再将识别结果进行融合的识别模型。虽然该模型能够提升准确率,但轨迹特征获取步骤多,处理复杂。整体来说,传统模型往往需要人工提取特征,少量特征的表征能力相对不足,而对复杂特征进行人工提取操作又十分困难,因此造成基于传统手势识别模型和评价指标效果不佳的局面。
近年来,深度学习在目标识别、分类任务等领域被广泛使用。传统的2D 卷积网络对图像具有很强的特征提取能力,但是不能很好地捕捉图像间的时序关系,因此在对视频连续帧的处理上极易丢失目标信息。YU 等[8]提出了3D 卷积网络(3DCNN)并用于人体行为识别,该网络克服了传统2DCNN 在视频处理上的不足。TRAN 等[9]在3D 卷积神经网络基础上提出三维CNN 模型并取得较好的性能,该研究主要提出了一种从视频片段中提取时空特征的结构。文献[10]利用多向3D 卷积神经网络做特征融合并进行手势识别,为了避免手势视频中冗余数据对网络准确率的影响,利用光流法对视频进行关键帧提取,虽然该模型得到的实验结果好于均匀采样法,但该模型需要计算每帧的光流,在实际使用或是长视频上计算消耗较大,可调参数的范围有限。
为了从图像中提取更完整的特征并进行识别和分类,卷积网络的层数需越来越多。文献[11-12]将ResC3D 应用于手势识别任务中并取得了较好效果,这也证明了网络层次越深,模型的学习能力将会越强。Dense-TCNs 模型[13]将DenseNets 网络[14]和增强时间卷积网络(TCNs)应用于手势识别中并引入时域注意力机制,获得了较高的准确率,但在噪声大的数据上模型正确率较低。除了使用RGB 信息外,基于深度图像的动态手势识别技术也被广泛研究[15]。对于视频序列中的时间信息,常使用LSTM 网络。文献[16]使用CNN 网络和LSTM 网络相结合的方式进行动态手势的识别,其中CNN 网络提取空间特征而LSTM 网络提取时域特征,这为后续将空间域和时间域分开处理提供了经验。文献[17]改进原有的CNN 架构,提出一种具有连续时间分类的R3DCNN 网络进行手势识别,该方法虽然对序列信息处理较好,但该方法的模型构造以及预训练复杂,对于复杂环境不具有鲁棒性。而KF+FF 模型[18]首先计算出每一帧的图像熵,再对熵值做密度聚类计算从而选取关键帧,虽然能够减少原始帧中的冗余信息,但仅针对野外场景,且鲁棒性也有待提高。SIMONYAN 等[19]提出一种时空双流卷积网络,并分别从RGB 图像和叠加光流图像中提取输入视频的时间特征和空间特征,最后进行特征融合以实现手势分类。
在实际应用中,由于动作执行者的个人习惯、反应速度等不同,导致采集到的视频长度不同,又由于视频中不含有手势标志帧,因此识别困难。本文提出一种具有分级网络结构的动态手势模型,利用检测器和分类器分步骤完成识别任务,同时利用卷积核拆分法加快模型的训练和测试速度。
卷积神经网络结构通常由卷积层、激活函数层、池化层和全连接层组成。而在实际的应用中会根据应用场景的不同对神经网络的网络层数和结构做出相应的调整。传统的2D 卷积神经网络无法处理或需要与其他网络组合视频数据中连续帧的动作,因此本文使用3D 卷积神经网络对相邻帧时间维度信息进行处理,3D 卷积过程表示为:
深度卷积神经网络的深度对最终的分类结果和识别准确率的影响较大,以往的设计思路是把网络设计的越深越好,然而实际却并非如此。实验结果表明,20层以上的深度网络,继续增加网络的层数,分类的精度反而会降低,50 层网络的测试误差率约为20 层网络的1 倍[20]。主要原因是随着深度的增加梯度消失现象愈发明显,网络效果也随之下降。HE 等[21]提出深度残差网络,在网络中引入恒等映射的设计,缓解了由于神经网络深度增加带来梯度消失和网络退化的问题。图1(a)为普通模型使用的堆叠连接方式,其中残差网络使用的是用捷径连接(shortcut connections)方式构建的网络,如图1(b)所示。
图1 模型连接方式Fig.1 Model connection method
普通的深层神经网络输出结果为:
残差网络使用捷径连接,把输入x直接传到输出端,使得输出的结果变为:
从式(2)和式(3)可知,普通的深层神经网络输出结果需要调整内部参数才能实现恒等映射F(x)=x,而残差神经网络的残差单元在学习一个残差F(x)=H(x)-x,当F(x)=0 后就可实现恒等映射。在增加模型的训练速度和效果的同时,网络的深度也大幅增加。
单个完整的动态手势动作可分为手势开始、高潮和结束3 个部分,如图2 所示。
图2 完整手势组成Fig.2 Complete gesture composition
针对在不带有标志帧的手势视频上进行动态手势识别准确率受影响的问题,本文利用传统模型中分步骤完成任务的思路,将整个模型分为2级。第1级为手势检测器网络模型,第2 级网络为手势分类器网络模型。手势检测器模型首先进行实时检测并判断输入视频中是否包含手势;之后将手势检测的结果保存在缓存队列中,对缓存结果进行滤波操作;然后判断是否启动下一级分类器网络。一旦第2 级网络启动,则能够保证输入到第2 级网络的视频段为手势高潮部分,从而保证第2 级网络提取图像信息的有用性,避免不带标志帧视频中手势开始和结束部分的冗余数据对手势分类准确率造成影响。本文所提模型的整体框架如图3 所示。
图3 本文动态手势识别模型整体框架Fig.3 Overall framework of dynamic gesture recognition model in this paper
由于3D 卷积核有3 个维度的信息,与传统的2D卷积核相比,3D 卷积神经网络的参数增加,这导致模型训练时间变长、训练速度变慢。本文受Inception-v3 模 型[22]中 将3×3 卷积核 分解为3×1 和1×3 这2 种卷积核从而加快模型训练速度的启发,将3D 卷积核拆分成如图4 所示2 种卷积核的形式。图4 中的t代表卷积核的时间维度,而w和h分别代表卷积核的宽度和高度。将尺寸为t×h×w的3D 卷积核拆分为1×h×w卷积核和t×1×1 卷积核形式,这两种卷积核分别对输入的视频流进行操作,其中1×h×w卷积核对视频流中的每帧图像进行二维特征提取,而t×1×1 卷积核对视频流进行深度卷积,提取相邻运动帧之间的信息。
图4 3D 卷积核拆分示意图Fig.4 3D convolution kernel split diagram
本文改进网络使用的基本结构如图5 所示。输入的视频数据被分成2 部处理,对其中的左半部分提取空间域特征,对右半部分提取运行特征。原始输入经过1×1×1 卷积核进行卷积操作后,可以使相加运算的特征图个数相等。三维残差网络中基础块原有的3×3×3 卷积核参数个数为27 个,本文将卷积核进行拆分改进后的参数个数为2×(1×3×3+3×1×1)=24 个,卷积核的参数数量下降了11.11%。因此,改进后的3D 卷积核参数及整个网络的参数将会减少,网络训练和测试的速度得以加快。
图5 网络基本结构Fig.5 Basic network structure
检测器网络需从手势开始到结束保持工作状态。与常见的18 层、34 层或更深的残差网络不同,本文所提检测器网络处在整个网络的第1 级,故需要轻量级的检测器模型从而保证较高的识别速度及准确率。因此,本文在深度残差结构上改进以满足对检测器性能的要求,整个检测器的层数为10,网络结构如图6 所示。
图6 检测器网络结构Fig.6 Detector network structure
检测器网络的输入由连续的N帧图像组成,每一帧图像的高度和宽度均为112 像素。公共卷积层Conv 的卷积核尺寸为3×7×7。为保留时间维度上的信息,本文只在空间维度上进行2×2 的下采样,第一个池化层使用步长为2 的最大池化,其余卷积层Layer1、Layer2、Layer3、Layer4 的模块个数均为1。F为进行卷积操作后的特征通道数,通道数分别为16、32、64、128 个,网络在经过所有卷积层、平均池化层和全连接层后,被送入Softmax 分类器中进行有无手势的判断。
本文在单次卷积操作之后均加入批量归一化,使得每层神经网络在训练过程中的平均值保持为0,方差保持为1,这样有利于提高网络的收敛速度,也可避免手势离开相机视野等情况造成检测器网络误判,从而降低整个分级网络的整体性能。本文使用缓冲队列保存检测器网络的原始结果,将检测器网络中本次检测结果和前3 次结果进行中值滤波处理,从而获得检测器网络的最终决策结果,并根据该结果判断是否开启下一级分类网络。
目前在图像或视频分类领域有诸多性能优异的模型,比如LeNet5、AlexNet、ResNet 等网络模型。本文的分类器网络在ResNeXt 模型上进行改进,ResNeXt 网络将 原来基 础模块中的2 个3×3×3 卷 积核,先用1×1×1 卷积降维,然后用3×3×3 进行卷积,最后再用1×1×1 升维,以保证模型的精度,同时又减少了整体的参数数量。在此基础上,本文将ResNeXt网络基础块中的3×3×3 卷积核进一步拆分,以降低网络的参数,从而加速网络训练和测试。
本文中分类器网络的结构模型和检测器网络大致相同,但是卷积层Layer1、Layer2、Layer3、Layer4的块个数Block_Num 分别为3、24、36、3。每个卷积层对应的输出特征通道数F分别为:256、512、1 024、2 048。最后经过2 层全连接层送入到Softmax 分类器中进行手势的分类。分类器网络模型的参数如表1 所示。
表1 分类器网络参数设置Table 1 Classifier network parameter settings
本文模型先在Jester 数据集[23]上进行预训练,然后迁移到文献[24]制作的EgoGesture 数据集上进行微调操作,最后与文献中所述的VGG 网络和C3D 网络进行对比。EgoGesture 数据集包含83 类来自50 个不同 主体的2 081 个RGB-D 视 频、24 161 个 手势样本和2 953 224 帧图像。手势的平均持续时间为38 帧。数据集按3∶1∶1 比例分为1 239 个训练集视频、411 个验证集视频和431 个测试集视频,分别具有14 416、4 768 和4 977 个手势样本。单个手势视频带有手势起始帧和手势结束帧标注。为得到不带标志帧的数据集,人为地将原有的开始和结束标志帧去除,从而得到带标注帧和不带标注帧的2 个EgoGesture 数据集。
本文实验采用的硬件环境为NVIDIA GeForce GTX 1080Ti 11 GB 显 卡、Intel i7-8700K 6 核CPU、16 GB DDR4 内存;软件平台为Ubuntu18.04 操作系统,Python 3.6.10 版;PyTorch 为1.3.1;CUDA10.1.105版;cuDNN7.6.4。
在检测器模型和分类模型的训练和测试时每个图像的尺寸被随机剪裁为112 像素×112 像素,并在整个手势视频的输入中进行连续帧采样,同时将整个训练集图像进行归一化操作。由于3D 卷积神经网络需要大量的训练数据,为了避免过拟合,将模型训练中的损失函数定为交叉熵,并采用随机梯度下降(Stochastic Gradient Descent,SGD)算法进行参数优化。由于SGD 每次更新并不全会按照正确的方向进行,常存在波动的情况,使得收敛速度变慢。因此,将学习速率设置为0.01,每经过10 次迭代,学习率减小为原来的1/10。为选取最佳的L2 正则化参数λ,本文选取常用的λ参数0.1、0.01、0.001、0.000 1,分别对不同的参数进行5 折交叉验证。将训练集和验证集中的40 个subjects 划分为5 个子集,每个子集包含8 个subjects。其中分组1 的训练集为子集1~子集4,验证集为子集5;分组2 的训练集为子集1~子集3和子集5,验证集为子集4;依次至分组5 训练集为子集2~子集5,验证集为子集1。对不同λ参数和每个分组在验证集上得到的结果如表2 所示。
表2 不同λ 下的实验准确率Table 2 Experimental accuracy rate of different λ %
从表2 可知,不同的λ参数在验证集上得到的平均准确率存在较大区别。平均准确率随着λ参数的减小呈现先升后减的变化趋势。本文中选取λ=0.001 可以使在验证集上的平均准确率最大。
对空间数据流卷积后的特征图进行可视化,视频帧原图如图7 所示。对于前面的卷积层来说,学习的是图像的浅层特征,越往后的卷积层学习到的特征越高级。本文选取分类器第1 层的空间域卷积核进行特征可视化,此层存在256 个特征图,本文选取了其中64 个进行可视化。分析可视化特征图可知,空间卷积核能够有效提取视频帧的不同特征,如图8 所示。
图7 视频帧原图Fig.7 Original image of video frame
图8 卷积特征Fig.8 Convolution feature
本文数据集手势平均持续时间为38 帧,因此本文在测试时选取最大输入帧数为32。表3 为检测器模型在不同条件下的性能表。从表3 可以看出,本文设计的检测器在手势的检测上准确率达到99.61%。实验结果表明,随着输入帧数的增大,检测器模型的准确率有所提升但幅度有限,且上升幅度呈减小趋势,这与本文所选取数据集的平均手势持续时间有关。从表3 中还可得知,在深度图像模态下,模型识别准确率均比RGB 模态下的要高,这是由于深度图像能够有效去除背景环境中光照、颜色等噪音干扰,使模型能更顺利地获取区别特征。
表3 本文检测器模型在不同条件下的性能Table 3 Performance of the detector model in this paper under different conditions %
由于本文第1 级和第2 级网络分别处理不同阶段手势,因此本文分类器模型不依赖于第1 级网络,可以单独进行手势的分类操作。针对有无标志帧手势视频对识别准确率造成影响的问题,本文将所设计的分类器模型与其他现有的分类模型在2 个EgoGesture 数据集上进行对比实验,实验结果如表4所示。
表4 标志帧对不同分类器模型的影响Table 4 Affected flag frame of different classifier models %
从表4 可以看出,Dense-TCNs 模型利用DenseNet 和TCNs 网络分别提取空域特征和时域特征,相对于经典模型的准确率有所提升。KF+FF 模型通过使用关键帧提取和特征融合方法提高了在RGB 模态上的准确率。VGG 模型和C3D 模型均属于经典模型,但二维VGG 和ResNet-50 模型无法处理时间域信息,导致其准确率远低于C3D 模型。C3D+LSTM+RSTTM 模型能够处理序列信息,这使得识别准确率大幅提高。3D 形式的ResNeXt101 模型利用深度残差网络的性能优势,在带标志帧的数据集上的准确率达到90.67%和91.75%。MTUT 则将多模态网络信息嵌入到单模态网络,从而使单模态网络达到较高的准确率。此外,对于含有标注手势起始帧和手势结束帧的输入视频流,模型的识别准确率高于不带有标注帧的,这是因为带有标志帧的视频流中已去除了非手势高潮部分的同时,去除了手势开始或结束阶段中冗余数据和其他干扰,使最终的识别准确率得以提高。这表明对于不带有标志帧的视频数据,视频中的非核心部分将对最终的识别准确率造成较大影响。由于深度模态输入去除了背景中的干扰信息,因此识别准确率高于在RGB 模态下的准确率。本文设计的分类器随着输入的帧数的增加,识别准确率增加的幅度在逐渐减小,这与本文选取数据集的平均手势持续时间有关。由此可知,单纯增加输入帧数对提升准确率作用不大。
从表3 可以看出,检测器的输入帧数对检测器最终识别准确率的影响不明显。因此本文在整体性能测试时,选取检测器输入帧数为8,在不带有手势起始和结束标志帧的数据集上对本文所提模型的整体性能测试结果如图9(a)、图9(b)所示。从图9(a)可以看出,在RGB 模态下由于模型使用了预训练加速,准确率在早期上升较快,但在经历30 个周期后准确率趋于稳定,不同输入帧数的准确率高达92.67%。而在图9(b)所示的深度模态下,在经历25 个周期后,模型的准确率趋于稳定,准确率高达93.35%。表5 所示为对本文所提模型整体测试的准确率结果。
表5 本文所提模型准确率Table 5 Accuracy rate of the method proposed in this article
图9 不同条件下模型准确率变化Fig.9 Model accuracy rate change under different conditions
结合表4 和表5 可知,与只使用分类器相比,本文提出使用分级网络的模型在不带有标志帧的数据集上识别准确率有较高的提升。此外,由于检测器对手势起始阶段的检测仍存在偏差,因此本文模型在识别准确率上要略低于带标志帧的输入视频准确率,但两者差距较小,可以证明本文提出分级网络模型的有效性。
本文选取检测器网络的输入帧数为8,将本文所提模型和现有的模型在不带标志帧的数据集EgoGesture 上,以固定输入16 帧的条件进行了对比实验,结果如表6 所示。实验结果表明,本文所提模型在不带有标志帧的EgoGesture 数据集上优于现有模型。
表6 不同模型准确率对比Table 6 Accuracy comparison of different model
Dense-TCNs 模型由于提取短时时空特征时依赖DenseNets 网络的正确率,导致准确率较低。KF+FF模型虽然在野外场景下的小型数据集上取得了极高的准确率,但由于鲁棒性较差,导致该模型在本文数据集包含的6 个室内外场景上准确率为86.22%,与本文所提方法相差4.74 个百分点。VGG 模型由于使用了对时间域信息缺乏处理能力的2D 卷积神经网络,导致准确率低于60%。C3D 模型利用3D 卷积对时空域良好的学习能力提高了准确率,在RGB 模态和深度模态下的准确率分别达到了83.70% 和85.53%,但与本文模型相比仍有差距,分别下降了7.26、6.29 个百分 点。ResNet50+HandPoseNet 模 型从姿态提取网络中获得手势的坐标信息并进行特征融合,大大提升了识别准确率;C3D+LSTM+RSTTM模型采取C3D 网络结合LSTM、递归时空变换模块RSTTM 的方法,利用递归时空变换模块能够将特征图转换为更易分类的规范图特点提升了准确率,使该模型和本文模型的差距均缩小至4 个百分点左右。ResNeXt-101 模型由于深度残差网络良好的性能,在RGB 模态和深度模态下的准确率分别高达87.92%和89.86%。MUTU 模型则利用多模态网络信息并将多模态信息嵌入到单模态网络,提升了单模态网络的准确率,但和本文相比还存在一定差距。
本文提出一种具有分级结构的识别模型,将手势检测网络为第1 级,手势分类网络为第2 级。第1 级网络作为下级网络的启动开关,保证了输入到第2 级网络视频流中图像信息的有用性和提取网络的完整性。在不带标志帧的EgoGesture 数据集上,与其他模型相比准确率达到最高水平,说明本文所提模型在不带标志帧的动态手势识别方面具有一定的优越性。
本文所提模型将识别任务分成2 个阶段,且采取三维卷积神经网络参数较多,可能对模型的整体耗时产生影响。此外,由于本文检测器使用ResNet网络,而分类器模型主要在深度残差网络上进行改进,因此本文选取了ResNeXt101 模型进行耗时性分析。在相同的超参数设置情况下,对模型的训练时间(epochs=10)以及对识别速率进行验证,实验结果如表7 所示。
表7 与ResNeXt101 模型的对比Table 7 Comparison with ResNeXt101 network
通过对比训练时间可知,本文提出对3D 卷积核进行拆分的模型相对原有的ResNeXt101 模型减少了6.18%的训练时间,但本文的分级网络模型使网络整体的训练时间增加了1.93%,增加的部分时间主要由第1 级检测器网络对手势检测引起的。虽然本文所提模型在识别的速度上略有下降,但是仍可满足实时性的要求。
在不带有标志帧的手势视频上进行动态手势识别会导致准确率下降。针对该问题,本文提出一种使用分级网络完成识别任务的手势识别模型。通过拆分3D卷积核避免3D卷积核参数过多和模型训练时间过长。实验结果表明,本文模型能有效缩短模型训练时间,识别速度满足实时性要求,且准确率优于Dense-TCNs、KF+FF、VGG 等模型。由于单一的RGB 数据或深度数据使模型对手势的认识仍存在一定偏差,因此,下一步将对模型进行特征融合以提高识别率和泛化能力,此外,还将扩展其在连续动态手势识别场景下的应用范围。