基于LeapMotion和卷积神经网络的手势识别

2019-11-16 12:26张起浩蒋少国蒋青山赵鹏
物联网技术 2019年10期
关键词:手势识别卷积神经网络高精度

张起浩 蒋少国 蒋青山 赵鹏

摘 要:针对传统神经网络需要人工对参数进行提取的问题,提出基于Leap Motion结合卷积神经网络的手势识别方法。首先利用Leap Motion获取高精度手势图像,然后对图像进行灰度处理,采用卷积神经网络算法自动对原始图像进行特征提取及分类,最后设计6层卷积神经网络用于手势识别。实验结果表明,卷积神经网络算法在

6种手势测试集上的准确率可达96.5%,且识别时间短,模型具有较好的鲁棒性。

关键词:手势识别;高精度;Leap Motion;灰度处理;卷积神经网络;深度学习

中图分类号:TP39文献标识码:A文章编号:2095-1302(2019)10-00-03

0 引 言

传统人机交互模式大多依赖键盘鼠标等直接接触的设备,但这种交互方式不够自然有效,已无法满足人们的需求。人们迫切需要一种更自然、更符合人们生活习惯的交互方式,如语音、意念、手势等。其中,手势凭借自然、直观等特点[1]在人机交互中得到广泛运用,如今手势识别已成为国内外學者研究的重点。文献[2]利用豪斯多夫(Hausdorff)距离模板匹配的思想实现手势识别,将模版手势与待识别手势进行边缘特征提取后变换到欧氏空间距离,其最短距离即对应的模版手势。文献[3]基于SVM构造多类分类器的手势识别,对手势分别进行一对一、一对多的数据分类,SVM算法是在样本空间或特征空间构造出最优超平面[3],使超平面与样本数集合之间的距离最大。文献[4]采用Kinect传感器对手势图像进行获取,采用动态时间规整(Dynamic Time Warping,DTW)的方法将不对齐的两个序列在某一时刻点进行压缩,实现两个点欧氏空间距离最小。文献[5]利用BP算法训练多层前馈网络。

分析上述文献,发现以下问题:

(1)模版匹配的方法无法解决时间可变性问题,识别精度低;

(2)基于SVM算法对大规模样本训练集的训练时间较长,难以运用在实际问题中;

(3)DTW存在时间规整引入误差的问题,降低了识别精度;

(4)采用传统人工神经网络结构需要人工对参数进行提取。

针对以上问题,本文采用卷积神经网络算法对采集的手势进行识别。

市面上有两种深度视觉传感器:一种是Kinect传感器,侧重于识别人体骨骼,也能识别人脸与人手,但识别人手的精度不高;另一种是Leap Motion传感器,能够采集人体手部的关键点信息,故能更好地应用在手势识别中。

1 Leap Motion手势数据采集

Leap Motion是一种采用立体视觉原理的传感器,内部配备双摄像头,如同人眼从不同角度捕捉画面。骨骼追踪模型如图1所示,此模型在视野不清晰时能够预测手指与手的位置,即使手指交叉也可被Leap Motion追踪。当Leap Motion检测到手或杆状物体时,系统会给Frame里的每一个Hand分配一个唯一的ID标识符。Leap Motion能够对手部信息进行描述,并在Hand::pointable()函数里提供指尖、关节点等的位置以及手掌的方向向量、法向量信息[6],最后将Leap Motion采集到的人体手势数据通过USB接口传输给PC端。

2 卷积神经网络

卷积神经网络(Convolutional Neural Networks,CNN)是一种前馈神经网络,其神经元可响应一部分覆盖范围内的周围单元,对于大规模模式识别有着非常好的泛化能力。CNN还是一个分类器,是一种具有监督功能的机器学习工具,与传统神经网络相比,避免了对图像进行复杂的前期预处理,可直接将原始图像输入模型,图像经过卷积层、池化层、全局平均池化层,最后输出分类图像结果。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图像。因为CNN同一特征平面映射面上的神经元权值相同,所以局部权值共享的特殊结构在图像识别方面有着独特的优越性。

2.1 卷积神经网络结构

卷积层的作用是对局部进行感知,在原始图像的一个小区域上进行特征提取,池化层的作用是将卷积层输出的特征面继续进行特征化。本文选用最大值池化法(Max Pooling),可保留区域矩阵块中的最大数值,忽略其他值,并能提高模型的鲁棒性。全局平均池化层的作用是经过若干卷积池化后将所有特征全连接起来组成一个特征向量,这个特征向量更能表达原始图像;Filter(过滤器)的作用是将输入的图像划分为多个区域,同时Filter在映射图像中的参数共享,且相互独立;激活函数的作用是使整个网络呈现出非线性。本文采用线性整流函数(Rectified Linear Unit,ReLU),ReLU函数可将神经元的一部分输出为0,减少参数之间的关系,有效缓解过拟合情况的发生。卷积神经网络结构如图2所示,输入层为32×32通道为3的图像。Filter尺寸为5×5,深度为3。但在实际计算中,存在无法将原始图像边界点利用起来的情况,针对此问题可根据实际情况设定补零的层数(Zero Padding)。

2.2 卷积层与池化层

3 实验结果与分析

为了验证CNN算法在手势识别上具有较好的准确性,确保Leap Motion能够采集到每一个手势,实验者需在距离Leap Motion传感器正上方100 mm处采集6种手势。手势类别如图3所示,6个手势分别代表1,2,3,4,5,6这六个数字,每种手势采集200个样本,样本均为112×112的手势像素矩阵,训练集和测试集各为1 200个。训练前对样本进行灰度处理,如图4所示。

实验结果见表1所列。手势5的正确率达96.5%,且识别时间较短;但手势4的正确率只有86%,响应时间较长。由于训练所用样本较少,导致复杂手势识别较低,因此可增加训练样本数量,提高手势识别的准确性。

4 结 语

本文设计了6层卷积神经网络用于手势识别,与其他神经网络相比,由于加入了权重共享原則,因此能够降低参数数目。理论上设计神经网络层数越多、节点越多,在训练模型上的效果就越好,甚至会达到100%的预测精度。但随之带来的是模型过拟合,将模型放在测试数据上,预测效果严重降低。残差神经网络是解决此类问题的方法之一,也是未来深度神经网络算法的又一研究方向。

注:本文通讯作者为赵鹏。

参 考 文 献

[1]周菲,蔡晨晓,郑标.基于多源信息融合的手势智能交互系统[J/OL].[2019-05-06].信息与控制,https://doi.org/10.13976/j.cnki.xk.2019.8414.

[2]张良国,吴江琴,高文,等.基于Hausdorff距离的手势识别[J].中国图象图形学报,2002(11):43-49.

[3]马淑慧,夏斌,杨文璐,等.基于SVM的Leap Motion手势识别[J].现代计算机(专业版),2017(23):55-58.

[4]王攀,官巍.基于Kinect手势识别的应用研究[J].计算机与数字工程,2018,46(8):1659-1663.

[5]王景芳,施霖.基于人工神经网络对sEMG信号的手势动作识别[J].传感器与微系统,2017,36(6):63-65.

[6]周开店,谢钧,罗健欣.基于Leap Motion指尖位置的手势提取和识别技术研究[J].微型机与运用,2017,36(2):48-51.

[7]蔡娟.基于卷积神经网络的手势识别[D].福州:福建师范大学,2015.

[8]蔡娟,蔡坚勇,廖晓东,等.基于卷积神经网络的手势识别初探[J].计算机系统应用,2015,24(4):113-117.

[9]吕耀坤.基于卷积神经网络的实景交通标志识别[J].物联网技术,2017,7(1):29-30.

[10]张涛,宋建涛.基于马尔科夫模型和卷积神经网络的异常数据检测方法[J].物联网技术,2018,8(8):80-82.

猜你喜欢
手势识别卷积神经网络高精度
高抗扰高精度无人机着舰纵向飞行控制
基于深度卷积神经网络的物体识别算法
基于手势识别的工业机器人操作控制方法
船载高精度星敏感器安装角的标定
基于高精度测角的多面阵航测相机几何拼接
高精度免热处理45钢的开发