基于卷积神经网络的手势识别研究

2019-01-16 07:16任晓文郭一娜刘其嘉李健宇
太原科技大学学报 2019年1期
关键词:步长手势准确度

任晓文,郭一娜,刘其嘉,李健宇

(太原科技大学 电子与信息工程学院,太原 030024)

手势识别技术一般可以分为手势区域检测和手势识别两个环节。但由于不同人的手势不尽相同,并且同一手势可以表示多种意义,因此基于视觉的手势识别成为一项难度较大,涉及领域较广的研究内容[1][2]。最近几年众多研究者对手势识别提出了不同的识别思想。2006年Double[3]利用手势的形状和纹理特征进行手势识别,达到较好的识别效果,识别率达到90%以上;周航在2008年提出利用统计分类思想,采用支持向量机进行分类,从而达到手势识别的目的,取得了较好的识别效果[4];2012年Yi Li[5]从Kinect获取深度图像并进行人手定位,根据检测手部轮廓和凹凸点来检测指尖点进而识别几种常见的静态手势,但该方法在做手势识别时对实验者有较高的要求;2016年张立志等人[6]将手势的局部特征和全局特征结合,采用“隐马尔科夫模型(Hidden Markov model, HMM)”方法来识别静态手势,但是对于部分差异较小的手势组,识别率并不高;还有就是在2013年,杨磊等人提出基于肤色的手势检测方法[7][8],该类方法的出发点是皮肤的色彩信息分布在一定的空间范围内,但该方法容易受光照、种族、人体其他部位以及相似颜色背景等多种因素的影响。

总体来说,对于各种环境下的手势,仅仅依靠某一独立的特征进行手势识别往往并不能够满足手势识别的要求。本文首先从卷积神经网络的模型构建入手,结合手势识别的算法过程及实验结果进行分析进行研究,通过卷积神经网络中的参数,观察不同参数对网络的均方误差和测试准确度的影响。

1 模型构建

目前通过神经网络[9]在解决众多问题中均有运用。其主要的思路如图1所示:

图1 神经网络解决问题思路
Fig.1 Neural network to solve the problem

中间的三个组成部分,预处理,特征提取,特征选取,总结起来即为特征表达[10]。良好的特征表达,对于算法最后结果的正确度起到了相当枢纽性的作用。而卷积神经网络是该问题的良好解决方法。卷积神经网络思想的基本结构如图2所示。

图2 卷积神经网络基本结构
Fig.2 The basic structure of convolution neural network

1.1 全连接的反向传播算法

在规范的卷积神经网络中,均有卷积层和下采样层,架构由多层通用网络最终组成,为全连接的一维网络[11]。二维的特征映射变化成全连接的一维网络输入。在一维的网络中,二维特征映射要作为输入,直接使用显然是不行的。一维的输入由二维特征转化得到,是经常所使用的方法[12]。

1.2 卷积神经网络

通常,卷积层之间穿插子采样层的作用是:降低计算时间成本并建立进一步的空间配置不变性。同时,为了保持特异性,因此需要一个小的子采样因子。多个输入映射卷积值可以组成一个输出映射(Xj)[13]。有:

这里Mj表示输入映射集合的其中一个选择,常见的输入映射选择包括全对和全三重,在每一个输出映射的基础上都会被给予一个另外的偏置b.然而针对具体的输出映射,输入映射将会受到与其他有别的卷积核的卷积[14]。即如果输出映射j和输出映射k都是由输入映射i卷积求和得来的,那么对应两个不同输出映射的卷积核是不同的。

假设采样层L+1均会在每个卷积层L存在。依照反向传播算法,求得当前层L每个神经元节点的灵敏度之后,才可以更新每个神经元的权值。为了求该灵敏度就需要首先对下一层神经节点的灵敏度进行求和,然后乘以两层之间连接对应的权值w.最终乘上当前层L神经节点的输入u的激活函数f的导数值,进而通过反向传播来计算权重的梯度,并且很多相互连接的权值都是共享的,所以,针对确定的权值,要求对全部与该权值存在关联的连接进行梯度计算,而后将这些所得梯度求和。

2 卷积神经网络算法流程

2.1 CNN训练过程

利用卷积神经网络进行手势识别中,采用270幅28*28像素的灰度值图片数据作为输入训练CNN网络,如图3所示为个别样本。

图3 样本实例
Fig.3 Sample instance

输入数据之后,需要首先对其数据进行预处理,即归一化,并且采用双精度浮点型数据以提高精度[15]。

在对CNN进行训练之前,首先对CNN的结构进行定义。在本模型中采用两个卷积层,两个子抽样层的结构。第一卷积层采用6种滤波器,每种滤波器采用5*5的尺寸。第一子采样层采用2*2的尺寸。第二卷积层使用12种滤波器,每种滤波器采用5*5的尺寸。第二子采样层与第一子采样层相同。

而后对该训练过程中的激活函数,步长以及迭代次数等参数进行赋值。注意迭代次数,训练的步数必须为整数,即步长必须是样本数的约数。步长太大,不利于特征的提取;反之,训练的速度会很慢。迭代次数太少,训练出的网络准确度太差;迭代次数太多,时间成本太大。

接下来继续对CNN进行初始化, 对CNN的每一层进行如图4所示的处理:

图4 CNN的初始化过程
Fig.4 CNN’s initialization process

完成初始化过程之后,便可以开始利用样本对CNN进行训练。保存样本总数,对样本的顺序进行打乱。取出步长数量打乱顺序后的样本和对应的标签[16],在每个训练批次中,在当前所得网络权值和网络输入下计算网络的输出,即使用当前神经网络对输入向量进行预测。如图5所示。

然后通过对应的样本标签用反向传播算法训练得到神经网络,在训练过程中,采用累积的方式计算累积误差,从而对网络的训练效果做出评估。就此完成对CNN的训练。

图5 当前神经网络对输入向量进行预测过程
Fig.5 The prediction of current neural network to the input vector

2.2 CNN测试过程

CNN测试的过程如图6所示:

图6 CNN测试过程
Fig.6 CNN testing process

以上过程即为CNN样本测试流程。在良好训练网络的情况下,输出结果较为理想的。

3 实验结果分析

3.1 样本测试

在270个训练样本中,另采集了90个随机样本作为测试数据,9种分类的情况下,3000次迭代,步长选择为18,输出的结果如图7所示:

图7 CNN的均方误差
Fig.7 CNN′s mean square error

从图中可以明显看出CNN的均方误差随迭代次数的变化曲线。当增加迭代次数,均方误差逐渐减小,在达到30 000次之后,均方误差基本不变。

其测试结果如图表1.其中表格中的手势1、2、3……9各代表的手势,如图3所示。

表1 测试结果列表
Tab.1 Test results list

手势测试个数识别个数错误识别正确率/%手势1109190手势210100100手势3109190手势4109190手势5109190手势610100100手势710100100手势810100100手势9108280总计9084693.33

最后得到准确度93.33%.

3.2 迭代次数和步长对准确度的影响

在CNN中迭代的次数与步长是众多参数中很重要的两个。下面就这两个参数对准确度的影响进行探讨,如图8所示:

图8 步长与迭代次数对准确度的影响
Fig.8 The Influence of steps and iterations on accuracy

本文在270个样本中分别采用了15,18,27和45四种步长,每种步长100,300,400,500,700,1 000,2 000和3 000次迭代,准确度如上图所示。在每种步长下,随着迭代次数的增加,准确度普遍会有所上升,但也有特殊情况。比如当步长为45时,300次迭代的准确度要比400次的高。并且步长的选择非最小或最大为最佳。步长过大,网络对手势的特征提取不够,准确度稍差;步长过小,计算量增大,时间成本过高。

4 结论与讨论

本文主要提出一种利用卷积神经网络完成手势识别的方法,重点讨论了迭代次数和步长对网络训练的均方误差和测试准确度的影响。特征提取阶段依据步长的选择提取不同手势的多种特征,步长的选择会直接影响到提取手势特征的准确度;手势识别时,少量的训练识别率比较低,但进行适量的训练识别率会有很大的提高,实验最终手势识别率为93.33%.在后续的研究中,将在本算法的基础上继续对各种手势进行研究,快速准确的完成手势识别。

猜你喜欢
步长手势准确度
中心差商公式变步长算法的计算终止条件
影响重力式自动装料衡器准确度的因素分析
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
一种改进的变步长LMS自适应滤波算法
Phosphatidylinositol-3,4,5-trisphosphate dependent Rac exchange factor 1 is a diagnostic and prognostic biomarker for hepatocellular carcinoma
挑战!神秘手势
胜利的手势
论提高装备故障预测准确度的方法途径
基于动态步长的无人机三维实时航迹规划
对GB 17167实施过程中衡器准确度要求问题的探讨