手势交互的算法研究
2019-05-18徐文妹撒灵张维展巴克热吐尔孙王琴
徐文妹 撒灵 张维展 巴克热·吐尔孙 王琴
(西北民族大学数学与计算机科学学院,甘肃 兰州 730100)
一、研究背景
从古至今,人类进行交流的方式有很多种,不仅仅可以通过说话来交流,还可以通过文字语言、肢体语言甚至眼神、表情来进行交流。毫无疑问的是通过肢体语言来进行交流是最直观、最简单的交流方式。手势交互是通过各种算法识别不同手势,在将其转化为语音或者文字等不同的命令对设备进行操作控制的方式。在人工智能快速发展的时代,手势交互技术将慢慢融入人们的生活,如智能家居、无人驾驶等技术。所以,手势交互技术具有重大的研究意义和发展空间。
二、手势检测技术
在手势交互系统中,手势识别和指尖检测都是基于手势检测模块的,所以手势识别和指尖检测的准确性在一定程度上受手势检测的影响。本文选择基于卷积神经网络的手势检测方式进行研究。
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络[2],它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的)。它的非全连接和权值共享的网络结构使之更类似于生物神经网络,降低了网络模型的复杂度(对于很难学习的深层结构来说,这是非常重要的),减少了权值的数量。
该研究中使用劵积神经网络中经典的LeNet5,该算法是一种监督式的深度学习算法。由卷积层、池化层、全连接层构成,共有七层(卷积层C1 、池化层S2 、卷积层C3 、池化层S4 、全连接层C5 、全连接层F6 、全连接层Output);能够利用反向传播算法不断优化神经网络中的权值。模拟出交叉熵和准确率。如图1所示。
图1 交叉熵和准确率的曲线模型
三、手势识别技术
目前手势识别分为两种,分别为:基于视觉的手势识别和非视觉的手势识别。本文通过基于SVM的手势识别来提高手势的识别率来避免人机交互的错误反馈。
在机器学习分类领域,支持向量机是一种重要的分类学习方法。SVM 算法基于结构风险最小化理论,在特征空间中建构最优分割超平面,使训练结果达到全局最优化,具有较为准确的手势识别率。SVM通过获取数据,导入数据,对数据进行标准化处理,生产标签,通过训练或者调试获得训练模型或者调试模型,以此得到手势识别率。本文通过软件模拟建立出了SVM手势识别错误率模型。如图2所示。
图2 SVM手势识别错误率
四、指尖检测算法
指尖检测顾名思义就是在手势图像中的精准估计的不同指尖的位置,本文采用有效技术分割出了手势信息,得到了比较理想的手势轮廓,采用轮廓分析的方法来检测指尖:利用轮廓曲率粗略地定位指尖,结合轮廓点、质心距滤除误检的指缝凹陷点[3]。 指尖检测算法流程描述如下[4]:
(一)手势轮廓提取:提取出手势轮廓。
(二)获取轮廓曲率:通过轮廓曲率能得到指尖点或指缝凹陷点,用相邻像素的两向量夹角的余弦值替代,以10个点为间隔取像素:设轮廓的第i个点为Pi,所以其左右相邻距离为10的点为Pi10。
先通过计算得到每个轮廓点的曲率值,再取向量夹角余弦值小于阈值0.3的点作为等待处理的点,这些点分布在由各自的若干个连续的轮廓点所组成的不同区域中。效果如图5所示。
图5 指尖检测算法效果图
五、结语
手势交互是人机交互中的一个重要研究领域,具有广阔的应用前景与实用价值。本文阐述了手势检测、手势识别、指尖检测三类具体实现方法,追求具有实时性、准确性、鲁棒性的算法,完成了手势交互的算法研究。