英语原文共 11 页
基于leap motion的实时手势系统
总结
在三维人机交互中,动态和静态手势的识别是机器视觉领域一项非常重要和具有挑战性的工作,本文提出了一种新的手势识别系统。跳跃运动装置是一种专门用于手识别的设备,它能实时获取特征数据,实现手势识别,系统主要由以下两部分组成,对于静态手势,我们使用一种基于距离的特征信息。指尖的角度、方向和弯曲度,并将支持向量机引入训练中,实现静态手势识别。对于动态手势,我们使用手势长度作为基准来拒绝非关键手势,并预处理带有异常手势序列的帧。静态手势的平均识别率为99.98%,动态手势的平均识别率为96.20%,实验结果表明,该算法对手势识别有较好的效果,适用于手势与人、在有日常沟通障碍的人与人之间进行简单的交互。
关键词:手势识别,HMM,leap motion,SVM
1介绍
在三维人机交互领域引入手势识别是一个非常重要的问题,如果能有效地解决这一问题,它可以应用于AR游戏、机械手臂、自动手势语言解释等许多领域。手势识别问题可以通过使用可穿戴设备(如电子臂环、可穿戴手套和基于视觉的方法)来解决。视觉手势识别的鲁棒性和抗扰性更为普遍,但它也是计算机视觉领域的一个有趣问题。直到几年前,所有可用的方法都是通过从图像和视频中提取特征信息来实现分类。这些表示二维平面上的三维手势。这是由于手和手指可以进行复杂的三维运动,手与手指之间存在许多相互遮挡的现象。以Microsoft Kinect作为光学相机的代表,具有成本低、免疫性强等特点,可以快速穿透。市场。特别是微软的Kinect,已经成功地将基于三维数据的采集应用到了业务中,Kinect的性能比他们书中提到的其他产品都要好。然而,Kinect更偏向于身体姿势认知,即对手识别的小细节。智能化;存在许多不足,为了实现更精确的手势识别,我们介绍了一种特殊的手势识别装置——跳跃运动。该装置擅长对手、手指骨骼进行三维建模,同时建立三维笛卡尔坐标系,返回指尖、关节、手掌等特征点的三维坐标信息。本文介绍了如何利用该传感器进行精确的手势识别。利用跳跃运动采集的特征数据,进行了三维变换过程;将三维坐标序列转换为二维坐标序列,并利用初始的HMM模型识别动态。IC手势。
本文利用跳跃运动数据,提出了一种有效的姿态识别算法。
2相关工作
随着计算机视觉理论和硬件技术的发展,基于视觉技术的手势交互技术已经成为现实,目前有Bobick和Wilson 通过划分手势运动序列的不同状态来表达这种技术,Yang和Ahuja所使用的时间延迟网络具有优势。在运动轨迹上抓住手势。国内在朱先生的工作中,提出了一种基于表格的手势识别算法。王的FNN-HMM模型负责动态手势识别,并使用微软的Kinect实现手势识别。在王的工作中,提出了一种基于直线检测的冗余手臂去除方法,从形态处理和曲率信息的手指区域分割新算法、多参数相似度测量改进、基于分层模板的手势识别方法三个方面进行了改进、匹配。在王的工作中,提出了一种基于手势分解的动态手势识别算法,详细分析了自定义数据集和常用数据集参数对该算法的影响。解决了动态手势识别中手势特征的时间域冗余信息和特征对手势速度变化的鲁棒性差的问题,显著提高了手势识别率,在福和谈先生的基于肤色法的的工作中,采用YCRCB颜色步调,将手势图像的模糊特征作为手势特征,利用BP神经网络对静态手势分类器进行训练。
总之,只研究静态和动态的单一方向的理论算法往往无力做微妙的手势,但在生活中,手势是动态和静态的交互。此外,动态手势往往是连续的,不一定每个人都是一个有效的手势,提高容错并有效地划分,为当前阶段结构识别的热点领域。
基于门限的多分类器是解决非关键手势识别问题的有效方法。手势识别常用的分类器有隐马尔可夫模型(HMM),在Chang的工作中,提出了基于阈值的HMM模型(T-HMM),通过建立阈值表来扩展HMM。然而,本文首次尝试将T-HMM应用于动态手势识别。在周等和拉赫贾等的研究中,提出了一种基于支持向量机的静态手势识别特征提取方法,该方法提取了三个特征,识别率达到99.17%,但在完成手势后得到了识别结果。提出了一种基于20维特征的静态手势识别方法,识别率高达99.89%,并对现有算法进行了优化。
最后,在上述算法的基础上,结合语音识别模块的接口,实现了无障碍通信。
3手势识别
3.1静态手势
与Kinect等类似设备相比,静态手势识别跳跃运动无法提供完整的深度图进行跟踪,但会返回手部关键点的三维坐标信息和方位信息,如图1a和图2所示。
对于静态手势的识别,由于样本数量少,人工神经网络分类器不适合于手势识别,也不适合于决策树的分类器。支持向量机作为一种二分类模型,被定义为特征空间上最间隔的线性分类器,其学习策略是如何最大化区间,最终将其转化为凸的二次规划问题,支持向量机在解决小样本非线性、高维问题上具有明显的优势。NAL模式识别。因此,分析决定利用支持向量机模型的小样本灵敏度进行手势识别,提取指尖特征点进行手势识别。虽然跳跃运动在手势识别和跟踪手势深度信息方面具有很高的准确性,但有可能存在手指重叠和相互干扰。为了解决这一问题,跳跃运动本身在构造姿态模型时,先对受扰部分关键点的位置进行估计,然后对返回信息进行粗略估计,得到完整的手部关键点信息,用于提取和计算特征值。
利用上述三个特征数据,通过网格参数优化遍历和测试数据集的50%交叉验证方法,得到最优参数。伽玛值为0.5,惩罚因子为32。
然而,在系统中使用该算法时,由于使用问题,存在较大的误差。提出了一种基于该模型的改进模型。引入变量i来显示i指的弯曲程度。当指尖和第二关节的曲率在手掌和第二关节的角度之间时,当弯曲度大于Pi;/4时,手指弯曲,变量的值为1或0。根据以往的经验,我们根据动态姿态的差异,预先建立了姿态曲率表(表1)。
根据测试结果,我们可以看出参数c为0.0039,参数g为0.0039,根据其他工作中提出的算法,训练数据的交叉验证概率为100%,并用获得的参数对SVM模型进行训练,即得到图3a和3b中的结果。
然而,由于计算机操作的速度太快,在这个过程中手势会被识别很多次。延迟识别算法用于为每帧分配权重。每次识别的结果存储在系统缓存中(见图1b),手势的识别结果记录为累积结果,手势作为输出结果添加到95%以上,缓存被清空,否则在记录一定数量的手势时,也会定期清空缓存。这将大大提高系统的容错能力。
本文建立的跳跃运动传感器支持向量机模型具有计算量小、效率高、精度高等优点。通过获取手的指尖位置和方向信息,可以有效、准确地识别出用户的手势。实验结果表明,该方案能有效地解决由于手指重叠引起的误差而导致的手势识别率降低的问题。
3.2动态手势
由于计算机不知道输入手势序列何时开始和何时结束,因此输入和输出的手动分割,例如手势静止5个连续帧时,被视为手势的结束。然后,删除非关键序列的不必要的开始和结束,这对系统的用户非常不友好。
对于静态和动态手势的分割,大多数都是基于速率或方向角的分割。为了方便观察分割结果,本文以手写数字序列的分割为例。
首先,方向角分析法具有很强的快速断点检测能力,能有效地检测大方向的拐点。然而,很难以相对平稳的速度分割手势。虽然基于速率的手势识别能够非常有效地检测拐点,但是对于不同的人的手势习惯,手势的运动速度也会经常发生变化,因此许多无效的速率转折点可能会被切除。
在手势检测中存在着许多低效的转折点,常和彭提出了两种手势分割算法。对于两种提取拐点的检测算法,将任意两个拐点序列之间的拐点序列提取为HMM模型识别,采用动态规划的思想,将单词序列的识别概率作为最大的手势序列候选,然后将输出序列与门限值进行比较,如果该阈值为确定手势序列大于阈值。否则,继续作为候选序列替换单词序列,直到下一个。重复这样的操作可以得到很好的分割结果。
实验结果表明,分割效果较好,但分割速度随HMM模型数目的变化而变化。在大量HMM模型的情况下,无法实现手势的实时分割。这对用户不是很友好,不同的人的手势习惯也不同,需要提高分割效果的鲁棒性。因此,针对大量HMM模型中的手势识别问题,提出了一种简单有效的手势分割方法SEZ。
当跳跃动作装置捕捉到的手数大于0时,作为手势的起始状态,当从跳跃动作装置中取出手作为手势的结束时,手数为0;当手势数据容量小于93.975时,被认为是错误的手势。在输入下一个手势之前,需要暂时离开捕获区域。这显然是一个持续输入连续手势的问题。因此,在实际使用过程中,手势的分割往往不仅是分割单元,而且是句子或短语的形式。这就要求识别模型不仅对单词有很好的识别效果,而且可以通过Tripathi等人的工作中提到的方法识别短语和句子的手势序列。在这一阶段,主要是研究词序的分割。实验结果如图7a和7b所示。
由于模型的训练需要大量的手势数据,所以我们选择不同的人来收集手势数据。5种姿势共获得训练样本120套,测试数据80套,数据1000套。其中,由于设备的跳跃运动原因,可能有一部分是由非人类引起的异常序列,也可能有一部分操作错误导致的错误手势序列。在这里,我们需要通过数据预处理来去除这部分数据,否则会导致手势识别不好,具体的实现方案将在下面的手势拒绝部分讨论。
在对动态手势进行分割后,手势的特征提取也成为一项艰巨的任务,本文分析了各种提取方法。近年来,更多的是利用手势的坐标位置序列进行HMM识别,也基于多种方向角。然而,对于手势坐标的位置,该技术对系统用户的三维方向有着严格的要求。因为,根据系统用户之间的距离和手势用户的行为习惯,他们之间有很大的相关性。但是,不同的方向是不同的。例如,两个连续帧的手掌或当前帧的手势,以及起点的方向角。本文提出了一种基于方位角序列的手势特征提取方法,将三维手势序列转换为二维,尽可能消除距离对识别结果的影响。第二,选择手掌并沿中心角度方向跟踪当前帧手势作为特征,而不使用当前帧的两个连续帧或手掌、方向和角度的起点,因为前后角度的方向与连续可变长度的序列相一致,导致手掌的变化也会逐渐呈现出特征差序列,所以这里是手掌的中心和轨迹角作为特征值。
在获取了手势的特征值后,剩下的就是HMM模型的设计。在这里,手势轨迹是相对于简单的,为了严格限制转移状态,以及减少训练收敛到局部最小的可能性,使用这个HMM模型图(见图9),也就是说,将任何一个状态转移到另一个状态,或者他们自己的状态。
众所周知,HMM模型中的n个数是决定整个模型好坏的关键。然而,没有经验值来告诉我们每个手势的隐含状态的数量。根据BIC暴力搜索(通过正向算法),从隐式状态数3-9中搜索每个手势观测序列的最大平均概率。因此,我们得到以下数据,其中0表示HMM模型不能与10E-4收敛,或者精度小于10E-4(见表3)。
因此,针对上述情况,我们选择了使爱情具有最高准确性的隐含状态的个数,以及第二高状态的个数,做下表的手势,如下所示。特别是,表4和表5中的数据并不总是对称的,实际结果可能比理论结果稍小。在选择隐含状态数的过程中,除了“爱”手势外,其他手势的隐含状态数的确定也不需要做更多的工作。
从以上数据可以看出,当隐藏状态数为4时,识别效率低于原始识别率(见表5),但垃圾手势序列的识别率大大降低,错误手势序列的识别概率降低,最终识别率降低,改进。
因此,我们可以很容易地得到手势序列的隐式状态表(见表6)。
由于HMM模型使用了左右带状结构,因此模型的值与样本的平均长度和隐藏的数值。因此,将Ti的容量设置为I样本,m是总样本大小。根据Chang方法,优化后平均值,我们得到以下矩阵:
观察矩阵b,假设每次观察的概率相同,用16链码量化特征值,用图表示b。
在设定初始值后,采用Baum-Welch算法对训练样本的特征向量进行迭代训练,得到一个新的HMM模型,直到输出概率收敛到10E-4。在这里,5个HMM模型接受了这5种手势的训练。然而,传统的baum-welch算法对样本没有很好的容错性,使得模型最终收敛到0.0001时间,可能导致一些训练样本的识别效果较差。我们只考虑baum-welch算法本身的错误。在识别过程中,我们需要对每个HMM模型进行比较,直到找到其中一个最大的模型并输出结果。然而,当算法模型用于人机交互时,由于用户在使用过程中的不正常的手势习惯或设备,用户往往会产生错误。对于前者,序列的长度在很大程度上决定了模型的识别,因为与HMM模型相关的手势序列。对于识别效率很低的模型,每个模型都可以得到一个识别率几乎等于1的模型。对于长序列,例如,当手势序列接近1000时,识别概率接近模型0,为了解决上述问题,hmmmodel可能不会。
3.3拒绝手势
在用户使用过程中,直接放弃长度小于93.975或大于325.53125的手势序列(见表7),对符合要求的手势进行帧判断。重要的是要判断手势的顺序是否正常,是否有框架或卡片框架,等等。以识别率最高的模型作为识别结果。在输出结果之前,将输入信号序列的长度与相应模型的平均长度进行比较。如果手势长度在相应训练集平均长度的75%-125%范围内,则视为有效手势;否则视为错误的手势顺序。
对于帧异常的确定,我们使用手势序列来说明以下两张图片(见图10a和10b)是帧异常的常见情况。
对于丢失的帧,我们可以通过算法检测两帧之间的距离和瞬时速度,并大致确定帧是否丢失。然而,对于帧不稳定,我们还没有找到一种有效的方法来确定记录的数据是否是帧不稳定的,因为跳跃运动是高度精确和敏感的,所以我们只能用人工的方式删除轨迹扭曲的手,从而保证训练集。这个过程需要有很多时间和精力,但结果也不错,即数据的准确性。如果没有光线异常和干扰,跳跃运动中帧不稳定的情况就很少,而帧丢失是由于用户快速的手势序列造成的。这种情况可以被手势序列的长度范围所拒绝。因此,通过清除数据集中的脏数据,我们重复上诉算法,得到以下实验结果。
我们使用每组手势80组测试数据,进入HMM模型,以识别率最大的H
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。