基于Leap Motion的手势识别改进算法

2021-05-28 12:38杜佳祥
现代计算机 2021年10期
关键词:阈值手势类别

杜佳祥

(中国航空工业导弹院,洛阳471000)

0 引言

在现阶段,随着机器视觉、计算机图形学以及人机交互等相关技术的飞速发展,对于手势识别的准确性提出了更高的要求。目前国内外学者已经进行了相关研究,重庆大学的彭露茜等人[1]基于模板匹配的思想,使用工业相机对手势图像进行采集与处理,结合粒子滤波器与皮肤的椭圆模型实现手势的动态追踪,并获取手掌中心点的运动轨迹,以此为基础提出使用轨迹追踪的方法实现了对手势的动态追踪与识别;清华大学祝远新等人[2]提出基于表观的新型手势识别方法,通过对用户的动态手势建立相应的表观模型,包括手势的运动表观和时序信息等,确立对应的手势模型的参数,该识别算法能够实现对10种以上的手势在线实时识别;这两种基于机器视觉的手势识别方法优点是成本相对不高,设备相对比较简单,但是由于一个普通的摄像机无法获取深度信息,并且很容易受到光线、肤色和背景的干扰,仅仅依靠机器视觉进行手势识别尤其是动态手势识别进行人手模型细节动作的实时重建是非常困难的,很难达到实时性和准确性的要求。

Oka K等人[3]提出了一种基于Kinect的指尖检测方法,通过红外相机和RGB相机识别人手的五根手指的指尖,在增强现实桌面上,完成复杂背景下的指尖识别以及指尖运动追踪。首先通过传感器定位手掌位置,然后提取手掌轮廓,结合边缘轮廓曲率特征法实现指尖的定位,再计算出手掌中央的位置及手掌掌心到指尖的距离,通过视频中指尖手指的偏移距离来获取手指的运动方向。但是由于Kinect的参数设置主要是针对追踪相对距离比较大(0.5至4米)的全身的人体骨骼动作的追踪,所以相对获取的手部的细节信息是不够的,Kinect的识别精度与其他专门针对手部识别的设备相比精度较低。

对于上述手势识别算法存在的问题,本文提出一种基于Leap Motion(以下简称Leap)的手势识别方法,对现有基于模板匹配的手势识别算法改进,加入有效性阈值对手势类别进一步判断,实现手势的分类与识别。

1 手势识别

1.1 手势识别原理

本文采用的手势识别设备是Leap,该设备采用双目立体视觉的方法获取用户的手势信息。如图1(a)所示,Leap为右手坐标系,单位为毫米,坐标系原点在控制器中心,XYZ三个坐标轴的位置如图中所示,Z轴平行与设备的两条短边,正方向是有指示灯的方向。

Leap内部结构如图1(b)所示,其中包括三个LED指示灯以显示设备是否正常运行,两个红外相机组成双目系统对手势进行检测与识别。该设备的检测区域是倒金字塔,设备中心为金字塔尖,有效检测的高度范围在Y轴的正方向25至600毫米左右。Leap的指尖识别与追踪精度的平均值在0.7毫米左右。

图1 Leap结构图

1.2 手势识别的决策

模板匹配在手势识别领域是一种较为常用的方法,其主要思想是通过对两个样本进行对比计算,得到两个样本之间的相似度用以判断手势,本文采取的也是基于模板匹配的手势识别决策,首先对手势进行初步地分类,然后通过欧氏距离计算计算未知手势与同类的手势之间的相似度。

K最近邻法的思路如下:若所提取的未知样本在已知样本的特征空间中与K个已知样本最近(即为最相似),那么根据这K个样本所属的类别来决策未知样本的类别。该算法可以数学表达为:

其中,x表示未知手势的特征向量,di表示已知样本集的特征向量,cj表示预先设置好的手势类型,bj表示预先设置的cj最优阈值。

K最近邻法的有点在于无显式学习过程,即不需要预先进行训练过程,因此该算法时间复杂度为零[4]。在样本库中选取一定数量的样本k1,k2,k3,…,km,样本对应的类别分别为w1,w2,w3,…,wn,可以通过式(2)来计算未知样本和单个已知样本之间的欧氏距离,然后根据得到的每一个类别的平均欧氏距离Ed(p,wi)对未知的样本进行分类,即将未知样本归类于欧氏距离最小的对应样本的类别。因此,K最近邻法的分类规则为:若未知样本p满足式(2),则p的类别即为wi。

经过上述的分类规则的决策之后,已经能够将未知样本初步筛选分类完成,此时,我们认为用户所做出的手势在已知的多个样本中有一定数量的已知类型的手势与之对应,初步判定未知手势属于该类型。然而不同用户在做相同的手势时也会有一定的差异性,如果对未知的样本在进行类型的分辨时,错误识别的手势数量相比于正确识别的手势数量更多,则最终的手势识别结果就为失败。

为了避免上述情况的发生,提高手势识别准确率,本文提出的解决方案是:在对手势的类别初步筛选之后,添加新的判断机制对手势的分类进行二次筛选,考虑引入有效性阈值μ,首先将初步分类之后的手势与和其相同类别的其他所有的类别已知的样本计算平均相似度,定义与初步分类后的手势类别相同的手势样本共有L个,此L个样本分别与未知样本的单个欧氏距离分别为a1,a2,a3,…,aL则平均相似度可以表示为:

其中,Q表示平均相似度,L表示与未知手势同一类别的手势样本数量。

通过式(3)获得平均相似度Q之后,将该数值与设定的有效性阈值μ进行对比,若满足相似度Q小于有效性阈值μ,则表示该手势的分类与识别正确,如图2所示。

图2 手势识别与交互流程

首先,初始化手势检测成功的计数值X为0,设备获取每一帧图像,并检测是否存在手势,若存在手势则计数值X增加,手势不存在则返回初始化。Leap官方文档指出设备的固有刷新频率是0.01,即每隔0.01s设备将会刷新一帧手势图像,若直接以此刷新频率进行手势的识别与判断,将会导致整个交互操作的不自然,为了提高用户在交互过程中的交互体验与舒适感,本文加入检测阈值参数(设为10),当手势指令不断触发,且连续次数大于等于该阈值时认为该手势的操作指令触发,此时计算欧氏距离Q,然后比较有效性阈值判断手势是否成功,若识别失败则返回,若识别成功则结束程序,手势识别流程结束。

2 实验验证

本文选取26位用户,定义以下三种手势分别为M、R、E,每个用户分别做出三种手势,使用Leap采集以计算有效性阈值,如图3所示。

图3 手势识别验证

根据实验结果对数据进行整理得到欧氏距离分布折线图如图4所示,上面折点为正方形的折线为不同类手势之间的距离分布,下面折点为三角形的折线为同类手势之间的距离分布。

图4 欧氏距离分布折线图

从图中能够看出,两条折线的交叉之处非常少,有明显的分割线,当欧氏距离值为95时,能够明显地区分出两个样本手势的相似度,因此本文的有效性阈值选择为95。

确定有效性阈值之后,本文使用Leap设备对三种手势各采集100组数据进行实验验证。根据上述介绍的分类方法将手势进行初步筛选和分类,然后将未知样本与样本库中的同类已知样本进行相似度的计算,获得两者之间的欧氏距离,最后与选定的有效性阈值进行对比,采集三种手势的样本数量均为100个,然后分别统计M、R、E三种手势的识别率情况,最终得到的实验结果如表1所示。

表1 本文方法对三种手势的识别率

3 结语

本文提出了一种新的手势识别改进算法,在现有的基于模板匹配的手势识别算法中加入有效性阈值对手势类别进一步判断,提高了手势的识别率,且所使用的设备价格低廉、易于携带,故综合考虑,本文算法的可靠性和有效性更高,对人机交互中的手势交互具有一定的实际意义。

猜你喜欢
阈值手势类别
非平稳声信号下的小波变换去噪方法研究
土石坝坝体失稳破坏降水阈值的确定方法
非均匀光照下文本图像分割算法研究
一起去图书馆吧
挑战!神秘手势
简析基于概率预测的网络数学模型建构
利用迭代软阈值方法抑制恒时演化类核磁共振实验中的采样截断伪峰
胜利的手势
认手势说数字
选相纸 打照片