《厦门理工学院学报》  2021年第1期 35-42   出版日期:2021-02-28   ISSN:1673-4432   CN:35-1289/Z
差分特征融合改进的动态手势识别分类网络模型


人机交互是人们近年来广泛研究的热点之一[1]。基于视觉的动态手势识别在智能人机交互、虚拟现实等领域应用广泛[2],其研究具有一定的实际应用价值,可提高使用的智能化水平[3]。它是采用摄像头采集动态手势动作视频,然后再通过算法处理完成动作的识别分类[4]。基于视觉手势识别发展出不同的方法,如:Grimes[5]最早发明的数据手套,可以实现手势动作的识别,但由于设备穿戴繁琐,使用具有局限性;Lee等[6]基于隐马尔可夫模型实现静态手势动作的识别,其在自采集的手语词汇数据集上的识别率为846%;李文生等[7]基于粒子群优化神经网络动态手势种类进行识别,但是识别的种类和识别率较低;刘杨俊武[8]基于动态时间规整的算法进行动态手势识别,随着手势类别的增加识别率会快速下降;操小文[9]采用卷积神经网络(convolutional neural network,CNN)单模型研究手势识别,该网络能自动提取空间特征信息,不能提取时序上的特征信息;范长军等[10]采用长短期记忆网络(long and short term memory networks,LSTM )自动提取传感器的特征进行多模态信息特征的融合,但缺乏局部空间特征信息的提取;付天豪等[11]针对现有单目视觉的动态手势识别率低的问题,提出一种联合卷积神经网络和支持向量机分类的动态手势识别算法,此算法能够较好地识别动态手势,但对环境的影响比较敏感。总之,目前,受不同距离背景、定位追踪和光照环境变化等的影响,动态手势识别仍然存在识别率较低的问题[12]。为此,本文针对动态手势识别发展问题,以及环境变化和单模型对处理复杂分类问题的局限性,结合2D卷积神经网络和长短期记忆网络进行分类建模,通过增强算法提升模型对复杂环境的泛化能力,再基于不同深度的结合模型,采用差分特征融合算法对模型加以改进,并对模型的损失函数收敛和识别率变化情况进行实验分析,验证模型的有效性和可行性。 1网络模型组成结构 本文提出的动态手势识别的完整交互系统主要包括摄像头数据采集、手势特征的提取、手势特征维度的时序关联、手势识别分类几个阶段。它通过2D卷积神经网络提取动态手势序列图像的特征信息,再通过长短期记忆网络进行时域信息关联,完成对动态手势动作的跟踪,最后通过多分类器实现手势分类。动态手势识别网络结构如图1所示。 厦门理工学院学报2021年 第1期林智伟,等:差分特征融合改进的动态手势识别分类网络模型 图1动态手势识别网络结构 Fig1Network structure of dynamic gesture recognition 11卷积神经网络 本文在网络模型中使用浅层4层卷积神经网络和深层残差网络[13]。其网络模型均由卷积层和最大池化层组成,并在残差网络中使用了11卷积核来进行降维。卷积神经网络包含有1个输入层、多个卷积层、池化层以及全连接层。 训练数据从卷积神经网络的输入层输入,经由隐藏层处理,最后通过输出层输出,这个过程为前向传播过程。其中涉及符号及公式表示为:b(l)=(b(l)1,b(l)2,…,b(l)nl)T∈Rnl表示l-1层到第l层的偏置;z(l)=(z(l)1,z(l)2,…,z(l)nl)T∈Rnl、z(l)=w(l)a(l-1)+b(l)表示l层神经元的状态;a(l)=(a(l)1,a(l)2,…,a(l)nl)T∈Rnl、a(l)=f(z(l))表示l层神经元的激活值(即输出值)。 由卷积神经网络前向传播过程知,l(2≤l≤L)层神经元的状态z以及激活值a为: z(l)=w(l)a(l-1)+b(l),(1) a(l)=f(z(l))a(L)。(2) 对于L层感知器,网络的最终输出为a(L),前馈神经网络的前向传递过程如式(3): x=a(1)→z(2)→…→a(L-1)→z(L)→a(L)=y。(3) 对于某一个训练数据(x(i),y(i))使用代价函数衡量预测值与真实值的误差,如式(4)表示: E(i)=12||y(i)-o(i)||=12∑nLk=1(y(i)k-o(i)k)2,(4) 式(4)中:y(i)为期望的输出;o(i)为神经网络对输入x(i)产生的实际输出。 由式(1)~式(4)可得,代价函数E(i)仅和权重矩阵w(l)和偏置向量b(l)相关,调整权重和偏置可以减少或增大误差。如果E(i)降低到无法再降的值,则取最小值。使用梯度求得一个方向向量表示函数在该点变化率最大的方向。同时训练数据的总体平均代价可表示为 Etotal=1N∑Ni=1E(i)。(5) 网络通过不断迭代调整更新权重和偏置,使得总体代价误差变小,最终网络收敛,确定相应的权重和偏置的参数。更新迭代的过程如下。 1)神经网络计算预测值和实际值的误差,并通过输出层向隐藏层反向传播直到输入层,采用梯度下降[14]不断地更新调整网络的参数,使得网络收敛,公式表示如下: w(l)=w(l)-μEtotalw(l)=w(l)-μ∑Ni=1E(i)w(l),(6) b(l)=b(l)-μEtotalb(l)=b(l)-μN∑Ni=1E(i)b(l),(7) 式(6)~式(7)中:μ为学习率;w为神经网络权重;b为偏置项。 2)由式(4)~式(7)可得,只需要求得每个训练数据的代价函数E(i)、对参数的偏导数E(i)w(l),E(i)b(l),即可得到参数的迭代更新公式。网络权值更新使结果不断逼近期望值取得极小值,网络达到最优,高效计算每次迭代过程中的梯度,网络收敛到稳定值。 12长短期记忆网络 图2长短期记忆单元结构 Fig2Structure of long short term memory units卷积神经网络无法处理包含时序信息的序列图像数据,短时记忆功能的循环神经网络[15]对于长序列的信息处理能力有限,故使用长短期记忆网络 [16]处理长序列信息。长短期记忆网络主要采用3个门控结构来对信息进行控制处理,包含遗忘门、输入门和输出门,还有一个细胞状态用来保留上级信息和这级信息的结合,对于时间间隔较远的序列信息也可以很好地处理,网络较为稳定。长短期记忆单元结构如图2所示。 长短期记忆网络计算公式如下:f(t)=σ(wfh(t-1)+ufx(t)+bf),i(t)=σ(wih(t-1)+uix(t)+bi),a(t)=tanh(wah(t-1)+uax(t)+ba),C(t)=C(t-1)f(t)+i(t)a(t),O((t))=σ(woh(t-1)+uox(t)+bo),h(t)=O(t)tanh(C(t)),其中:σ为非线性激活函数sigmoid;为Hadamard积;w,u为各个门控结构计算权重矩阵;b为各自的偏置;x(t)表示t时间点的输入数据;h(t)为t时间点的输出数据;h(t-1)表示上一个时间点神经元计算的结果;f,i,C,O分别代表遗忘门、输入门、单元细胞向量、输出门,均和隐藏向量h的大小相同。 通过3个门控结构处理,长短期记忆网络对当前序列索引预测输出为:y^(t)=σ(vh(t)+C(t)),其中:σ为非线性激活函数;h(t)和C(t)为其两个隐藏状态;v为相应系数。 2网络模型的优化和参数设定 搭建完2D卷积神经网络和长短期记忆网络的结合模型,需要适合模型稳定训练的超参数,将相关的数据载入网络进行训练调试。训练时,需要采用相应的方法对网络的训练过程进行约束,使网络朝理想的状态收敛,得到对应的超参数设置,能较好地预测测试集数据。 21参数优化和模型评估 本文解决的是动态手势识别多分类的非线性问题,所以使用交叉熵损失函数来评估模型拟合程度的好坏。损失函数收敛到稳定状态表示网络的拟合程度越好,表明模型的预测能力越好,超参数值确定。 交叉熵函数计算公式为:C=-1m∑x[yln a+(1-y)ln(1-a)],其中:x表示输入的样本数据;m表示样本的总数量;y表示实际值;a表示预测输出值。首先经过Softmax激活函数将向量归一化[17]为概率的形式,再与目标值计算交叉熵损失,表示两个概率分布的差异。经过2D卷积神经网络提取网络的空间特征,长短期记忆网络对序列图像特征进行时序关联,最后经过Softmax对输出的结果进行处理,最终预测类别的值和为1,输出则变为不同手势类别概率分布的值。 Softmax分类层输出计算公式为:P(C|x,θ)=exp(xk)∑Ki=1exp(xi),其中:xi为第i个神经元输出值;P为输出层的各个分类手势的概率;θ为模型参数。 同时,本文采用Adam优化器[18]对模型进行优化,Adam是一种自适应学习率的优化方法,使用梯度的一阶矩估计和二阶矩估计动态的调整学习率。 22参数的设定 在进行网络建模的过程中对参数进行初始化设置,针对本文的手势类别设置为7种,每个类别设置对应的标签。batch_size设置为15,初始学习率设置为0000 1。同时为了解决网络的过拟合问题,使用L2正则化对网络进行约束,设置为5e-3,促使网络能够正常的收敛。 3实验和结果分析 31实验平台环境 本实验在操作系统为Ubuntu1404、显卡为泰坦X、显存为12GB的工作站上进行模型搭建调试和训练,基于开源框架pytorch实现。在使用深层残差网络进行模型结合训练时,采用迁移学习的方式使用网络的预训练模型,缩短深层神经网络的训练时间。 在数据采集的过程中,采用普通的单目2D摄像头进行动态手势数据的采集,结合应用相应的视觉采集算法和opencv视觉库,完成实验所需的数据库的建立。 32实验数据定义和预处理 本文的实验数据设定7种动态手势动作形式,数据采集的动作距离为2~4 m,包括一定的背景环境、光照条件,采集帧数为30帧/秒。数据的采集由5名志愿者组成,每种动态手势动作采集100个 表17种动态手势动作定义形式 Table 1Seven dynamic gesture definitions手势动作动作具体形式向上手掌张开并拢,从下向上自然挥手。向下手掌张开并拢,从上向下自然挥手。向左手掌张开并拢,先举起再向左挥手收回。向右手掌张开并拢,先举起再向右挥手收回。张开握紧手置于胸前握拳张开手掌连续两次。移动手右手举起握拳在胸前横移旋转右手举起在胸前位置顺时针旋转2圈样本视频数据,数量相当,在采集过程中变换不同的距离和位置。采集得到的动态手势动作的视频数据经过分帧算法处理成序列的形式,每个序列为120帧,硬件设备延时固有问题,截取100帧进行实验,去除冗余帧数。序列图像的大小为640 px×480 px,通过内置函数处理成为224 px×224 px的分辨率大小,以减少网络计算的参数量。在进行网络模型训练之前,通过函数将训练集和测试集自动划分为7∶3的比例。7种动态手势动作的具体定义形式如表1所示。 由表1的定义可采集得到7种动态手势的动作数据,以向左挥手部分帧数为例,具体如图3所示。 图3向左挥手动作示例 Fig3Leftward waving demonstration 为了增强网络模型的泛化能力,对序列数据进行增强,使用加噪、小幅度旋转、小幅度平移和亮度调整的图像增强算法,将增强之后的序列数据输入网络训练。增强算法的效果如图4所示。 图44种序列图像增强方式示例 Fig4Four sequential image enhancements 33实验结果与改进对比 331增强算法对网络模型的提升 数据经过增强算法的处理,经由结合模型训练,得到的损失函数曲线收敛情况和识别率如图5所示。 图5基于结合模型的训练变化曲线图 Fig5Modelbased training change curves 由图5实验结果可以看出,训练集和测试集的损失函数呈现收敛拟合的趋势,同时识别率也相应趋近拟合,说明结合网络模型实现较好分类结果。增强算法处理的识别率变化情况如表2所示。 表2不同深度网络结合模型及增强算法处理的识别率 Table 2Recognition rate of network models at different depths and enhanced algorithm processing 网络模型测试集识别率/%测试集识别率(数据增强)/%4层CNN+LSTM63336524Resnet50+LSTM83818667由表2可见,基于浅层4层卷积神经网络和长短期记忆网络进行结合模型的识别率为6333%,数据增强后提升191%;基于残差网络和长短期记忆网络结合模型识别率,数据增强之后达到8667%,提升286%。可见,增强算法对浅层和深层结合模型均有提升效果,加强网络的泛化能力。332差分特征提取融合改进实验 优秀的模型一般是深度神经网络,这些网络层次较深,参数较多,训练起来耗时。对于这种情况,有2种解决方法:1)使用网络层数较少的简单神经网络结构进行多模型结合;2)使用网络深度较深的神经网络模型参与多模型结合,同时采用预训练参数模型,加快训练的速度。 本文网络模型的不同深度结合方式为:1)基于浅层网络结构进行多模型结合,用4层浅层卷积神经网络和3层长短期记忆网络相互结合;2)基于深层网络结构进行多模型结合,采用迁移学习的方式使用resnet50的预训练参数模型和3层长短期记忆网络进行结合训练。 3321基于浅层网络的结合模型 通过差分算法提取序列运动特征,再将其与原序列图像进行融合,共同载入网络模型训练。在载入模型训练之前进行序列图像特征差分处理,将序列输入的每帧图像做阈值处理,大于阈值保留特征信息,若是小于阈值,进行背景过滤。将处理后保留的特征信息与原特征信息进行融合训练,通过运动特征的再提取方式得到更好的训练结果。基于序列图像差分融合改进算法的具体流程如图6所示。 图6基于序列图像差分融合改进算法流程图 Fig6Flow chart of algorithm improvement with sequential image differential feature fusion 3322基于深层网络的结合模型 通过卷积神经网络提取特征维度的信息,在维度间进行前后帧信息的差分,再与原维度特征信息进行融合,然后载入到长短期记忆网络中进行时序关联。不同深度网络结合模型的差分特征融合改进实验的结果如表3所示。 表3基于差分特征融合改进的实验结果对比 Table 3Experimental results on differential feature fusion improvement compared 模型测试集识别率/%测试集识别率(差分算法改进)/%4层CNN+LSTM(基于序列图像差分融合训练)65248381Resnet50+LSTM(基于维度差分融合训练)86678762基于维度特征信息差分融合改进算法的流程如图7所示。 图7基于维度特征信息差分融合改进算法流程图 Fig7Flow chart of algorithm improvement with dimensional difference feature fusion 由表3可见,基于序列图像差分融合训练的网络结合模型的识别率得到较大的改善,识别率从6524%提升到8381%;基于维度特征信息差分融合训练的网络结合模型的识别率从8667%提升到8762%。说明差分特征提取动态手势动作的运动信息再融合原序列特征信息的改进,可有效提升不同深度网络结合模型的识别率。 4结论 本文针对单网络模型处理动态手势分类问题的局限性,结合2D卷积神经网络和长短期记忆网络进行建模。通过增强算法提高数据多样性,提升网络模型对复杂环境的泛化能力,识别率最佳提升286%。在此基础上,对浅层网络结合模型和深层网络结合模型分别做不同形式差分特征提取再融合训练的改进。实验结果表明,两种不同形式的差分特征改进融合都提升动态手势分类的识别率:基于序列间差分特征融合改进算法,识别率达到8381%,提升1857%;基于维度差分特征融合改进算法,识别率达到8762%,提升095%。 虽然实验的差分融合改进算法对网络结合模型的识别率有一定的提升。但是,网络模型训练收敛的震荡幅度较大,说明网络的稳定性还不够好,今后将采用注意力机制进行进一步的探究。