基于Leap Motion和Kinect的手势识别外文翻译资料
2022-08-10 19:34:21
英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
基于Leap Motion和Kinect的手势识别
摘要
最近推行的诸如Leap Motion和Kinect之类的新型采集设备能够获得非常详细的手势描述,故可用于准确的手势识别。本文提出了一种新颖的基于Leap Motion数据的手势识别方案。计算基于指尖位置及其方向的临时功能集,并将其输入到多类SVM分类器中,以识别执行的手势。还从Kinect计算的深度中提取了一组特征,将其与Leap Motion的特征相结合,以提高识别性能。实验结果显示了可以从“美国手册字母”的子集上的两个设备获得的精度之间的比较,并显示了如何通过组合这两个功能集来实时实现很高的精度。
关键词:深度,手势识别,Kinect,Leap Motion,SVM
第一章 绪论
近年来,手势识别[1]由于其在许多不同领域的应用而引起了越来越多的人的兴趣,例如人机交互,机器人技术,计算机游戏,自动手语解释等。这个问题最初是由计算机视觉社区通过图像和视频解决的[1、2]。最近,低成本的消费者深度相机(如飞行时间相机和Microsoft的KinectTM [3])的引入为多种不同的方法开辟了道路,这些方法利用这些设备获取的深度信息来改善手势识别性能。大多数方法通过将机器学习技术应用于从深度数据中提取的一组相关特征来识别手势。在[4]中,轮廓和单元格占用特征用于构建形状描述符,然后将其基于动作图馈送到分类器。[5]和[6]都使用了基于支持向量机的体积形状描述符和分类器。相反,[7]和[8]比较了手边缘点到手掌中心的距离的直方图,以便识别手势。在[9]和[10]的方法中,提取了四种不同类型的特征并将其馈送到SVM分类器中。
Leap Motion设备的最新推出为手势识别提供了新的机会。与Kinect不同,Leap Motion设备明确地用于手势识别,并能够直接计算指尖的位置和手的方向。与Kinect和类似设备的深度相机相比,它产生的信息量有限(仅几个关键点而不是完整的深度图),并且其交互区域相当有限,但是它所提取的数据却更加准确(根据[11]它的精度约为200mu;m),并且不需要执行图像处理任务来提取相关点。Leap Motion软件只能识别一些运动模式,例如滑动和轻击,但是将Leap Motion数据用于手势识别的目的仍然是一个尚未开发的领域。关于手语识别的初步研究已在[12]中提出,而在[13]中,作者使用该设备来控制机器人手臂。
本文提出了从Leap Motion获取的数据中检测手势的首次尝试。从传感器产生的数据中提取一组相关特征,并将其输入到SVM分类器中,以识别执行的手势。Kinect还可以获取相同的手势,并且本文展示了从两个设备获取的数据进行性能的比较,以及如何将它们组合在一起以提高识别精度。
本文的组织结构方式如下:第2章介绍了所提出系统的一般体系结构。第3章和第4章分别介绍了从Leap Motion和Kinect数据中提取的特征描述符。然后在第5章中描述分类算法。实验结果在第6章中,最后在第7章中得出结论。
第二章 总体概述
图2.1显示了所建议方法中的两个主要管道的总览,左侧是“Leap Motion”,右侧是Kinect设备。第一步,从“Leap Motion”中收集手势属性,从Kinect中获取深度。然后,两个设备从数据获取中提取一组相关特征。这两个传感器提供不同的数据,因此已从两个传感器中分别提取了不同的功能集。最后,将多类支持向量机分类器应用于提取的特征,以便识别所执行的手势。
图2.1 拟议方法的管道
第三章Leap Motion数据的特征提取
与Kinect和其他类似设备不同,Leap Motion不会返回完整的深度图,而只会返回一组相关的手势点和某些手势特征。图3.1突出显示了将由Leap设备获取的数据,该数据将在建议的手势识别系统中使用,具体如下:
1、指尖的位置Fi,其中i=1,...,N来代表检测到的指尖的3D位置(N是识别出的手指的数量)。需要注意,设备无法将每个3D位置与特定的手指相关联。
2、手掌中心C大致对应于3D空间中手掌区域的中心。
3、基于两个单位向量的手方向,h从手掌中心指向手指,而n垂直于手(手掌)平面,从手掌中心向下指向。但是,它们的估计不是很准确,并且还取决于手指的排列。
图3.1 Leap Motion获取的数据
一个重要的观察结果是,尽管计算出的3D位置非常准确(根据[11]中的研究,误差约为200mu;m),但传感器并不总是能够识别所有手指。不仅不会捕获彼此接触的手指,折叠在手上的手指或隐藏在摄像机视点之外的手指,而且在许多配置中,一些可见的手指也可能会丢失,尤其是在手不垂直于摄像机的情况下。此外,手附近的突出物体,如手镯或袖子边缘,很容易与手指相混,造成判决错误。这是非常关键的,因为在相同手势的不同执行中,捕获的手指的数量可能会变化。因此,仅利用捕获的手指数量的方法效果不佳。
还要注意,当前版本的Leap Motion软件不会返回有关获取的点和相应手指之间的匹配的任何信息,因此,值是随机排序的。在提出的方法中,我们通过基于相对于人手方向h的指尖角度对特征进行排序来解决此问题。这对应于按从拇指到小指的顺序对其进行排序。为了解决手指未对准的问题,如图3.2所示,我们将n刻画并经过C的平面划分为五个角度区域Si,其中i = 1,...,5,并将每个捕获的手指分配给a根据手指在平面上的投影与手的方向h之间的夹角确定特定区域。注意,扇区和手指之间没有一对一的匹配,也就是,一些扇区Si可以包含一个以上的手指,而其他扇区可以是空的。当两个手指位于相同的角度区域中时,如果两个手指中的一个未被占用,则将其中一个分配给最近的相邻扇区,否则将选择两个特征值之间的最大值。
图3.2 掌平面中的角区域
通过除以手掌中心和中指之间的距离S = || Fmiddle-C ||,将所有特征值(角度除外)在间隔[0,1]中进行归一化。为了使该方法对使用不同大小的不同手的人更可靠。当用户开始使用系统时,可以计算比例因子S。
为此,我们引入以下功能:
- 收指尖夹角Ai =ang;( - C,h),其中i = 1,...,5,其中是Fi在由n标识的平面上的投影,是与伸出的指尖的方向相对于手掌方向相对应的角度。捕获的手指的实际数量会严重影响手的方向h,因此也会影响指尖的角度。将获得的值Ai缩放到间隔[0.5,1],以更好地从已设置为0的缺失值中区分出有效间隔。这些值也已用于将每个手指分配给相应的扇区。
- 指尖距离Di = || Fi-C || / S,其中i = 1,...,5,代表指尖到手中心的3D距离。请注意,如前所述,每个扇区最多有一个特征值,缺省值已设置为0。
- 指尖高度Ei = sgn((Fi-)·n)*|| Fi-|| / S,其中i = 1,...,5,表示指尖与手掌区域相对应的平面的距离,这也说明了指尖可以属于手掌平面定义的两个半空间中的任何一个的事实。对于指尖距离,每个扇区最多有一个特征值,并且缺省值已设置为0。请注意,对于指尖角度,值范围已缩放为间隔[0.5,1]。
第四章 Kinect数据的特征提取
使用Leap Motion和Kinect设备都可以获取手势。对于从Kinect数据中提取特征,我们采用了由两个主要步骤组成的管线,即首先从获取的深度和颜色数据中提取出手形,然后从与手形对应的3D点中计算出两种不同类型的特征。已经使用[9]的方法从颜色和深度数据中提取了手形:分析从深度图中的最近点开始,深度和3D距离阈值用于提取候选手形区域。对手的颜色和大小进行进一步检查,以避免将较近的物体识别为手。
然后,提取两种不同类型的特征。对于第一组特征,按照[9]中的描述建立手指尖到手中心的距离的直方图,即:
式4.1
其中I()是与方向和相对应的手的角扇区,即点Xi和手掌中心之间的距离。有关如何计算直方图的详细说明,请参见[9]。另外还建立了一组参考直方图,每个手势g都被创建。与使用最大直方图的[9]不同,此处的特征值是当前直方图与参考直方图的偏移版本之间的最大相关性。
式4.2
其中g = 1,...,G。注意,对每个候选手势执行计算,从而为每个候选手势获得不同的特征值。理想情况下,与正确手势相关的值应该比其他功能的值大。
第二特征集基于手轮廓的曲率。该描述符基于多尺度积分算子,并按照[9]和[10]中的描述进行计算。多尺度描述符由Btimes;S个条目Ci,其中i = 1,...,Btimes;S,这里的 B是面元数,S是所用尺度级数。
第五章 手势分类
第3节和第4节的特征提取方法提供了五个特征向量,每个特征向量描述了从两个传感器提取的手部样本的相关属性。为了识别执行的手势,将提取的特征用于多类支持向量机分类器。每个获取的手势由两个功能集描述。集合Vleap = [A,D,E]其中包含从Leap Motion数据中提取的所有特征,而集合Vkin = [C,R]则包含从Kinect数据中提取的特征。通过将两个集合[Vleap,Vkin]串联在一起可以从而获得完整的功能集。
为了识别手势,必须将五个特征向量及其连接分类为与所考虑的数据库的各种手势相对应的G类。所采用的分类算法利用支持向量机(SVM)。已经使用了基于一对一方法的多类SVM分类器[14],即,使用一组G(G-1)/ 2二进制SVM分类器来相互测试每个类,并选择每个输出作为对某种手势的投票。选择具有最大投票数的手势作为分类的输出。在通过网格搜索方法和训练集的交叉验证选择分类器参数的同时,使用了非线性高斯径向基函数(RBF)核。假设一个训练集包含来自M个用户的数据,为了执行网格搜索,我们用规则网格划分RBF内核的参数(C,gamma;)的空间,对于每对参数,训练集分为两部分,一个包含M -1位用户进行培训,另一位剩余的用户进行验证和性能评估。每次用户用于验证时,我们都会重复更改过程,并选择平均可提供最佳准确性的两个参数。最后,我们使用最佳参数在训练集的所有M个用户上训练SVM。在文献[15]中也提出了基于SVM的替代分类方案。
图5.1 从两个设备中提取的特征向量
第六章 实验结果
为了评估所提出方法的性能,我们使用图6.1的设置获取了手势数据集。图6.1如下所示:
图6.1 采集设置
图6.2 数据库中包含的来自美国手语(ASL)的手势已被用于实验结果
可从http://lttm.dei.unipd.it/downloads/gesture这个网址获得该文件。使用Leap Motion设备和Kinect传感器可以同时获取所执行的手势。该数据库包含由14个不同的人执行的10个不同的手势(见图6.2)。每个手势重复10次,总共有1400个不同的数据样本。对于每个样本,已经获取了第3章中报告的Leap Motion数据以及Kinect提供的深度图和彩色图像。
表6.1显示了使用第5章的分类算法从Leap Motion和Kinect数据获得的精度。指尖距离功能可实现约76%的精度,它们能够识别大多数手势,但是G2和G3很容易困惑。这是由于Leap Motion软件的手掌方向估计的准确性有限,导致这些手势的指尖与相应的角度区域之间的匹配不可靠。使用其他两个功能可以部分解决此不准确之处,但总体准确度会稍低:指尖角度为74.2%,指尖高度为73%。有趣的观察是3个特征描述符捕获了所执行手势的不同属性,并且通过将它们组合在一起可以提高识别精度。例如,通过组合手指距离和高度,可以达到约80%的精度。通过将所有这三个特征组合在一起,则可以获得81%的精度,这代表可以通过所提出的方法从Leap Motion数据中提取的最佳精度。
表6.1 Leap Motion and Kinect功能的表现
Kinect数据包含更多信息的描述(即手的完整3D结构),但它们的准确性也较低,只能提供较低级别的场景描述。此外,还需要对获取的数据进行预处理,以便将手从场景中分割出来以进行特征提取。关联特征允许识别大量手势,但是65%的准确性是所考虑描述符中最低的。正如[9]中所报道的,曲率描述符反而是手形的非常精确的表示,能够允许获得87.3%的非常高的精度。它是所考虑的描述符中最好的单个描述符。即使相关性能不是很好,通过将该描述符与曲率组合,也可以改善后一个描述符的结果,从而获得89.7%的精度。这证明了所提出的机器学习策略的良好性能,即使在组合性能非常不同的描述符时也能够获得良好的结果,而不受性能较差的功能的影响。
表6.2报告了通过组合两个传感器的所有各种功能获得的结果。通过获得91.3%的最佳准确度证明了它们的描述的互补性。即使Kinect作为单个传感器已具有良好的性能,但与单独使用两个传感器中的任何一个相比,结合使用这两种设备也可以获得更好的性能。
表6.2 结合使用两个传感器的性能
最后,表6.3显示了将所有五个功能组合在一起时的混淆矩阵。除了G6,G8和G10以外的所有手势,
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[238001],资料为PDF文档或Word文档,PDF文档可免费转换为Word