买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于双指角域特征的手势交互系统及其工作方法_山东大学_201811472842.1 

申请/专利权人:山东大学

申请日:2018-12-04

公开(公告)日:2021-05-07

公开(公告)号:CN109597485B

主分类号:G06F3/01(20060101)

分类号:G06F3/01(20060101);G06K9/00(20060101);G06K9/62(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.05.07#授权;2019.05.03#实质审查的生效;2019.04.09#公开

摘要:本发明涉及一种基于双指角域特征的手势交互系统及其工作方法,包括数据采集模块、特征提取模块、手势识别模块、虚拟交互模块。数据采集模块:Leapmotion初始化并使用Leapmotion采集手势信息;特征提取模块:三维坐标预处理和手势特征提取;手势识别模块:将提取好的双指角域特征输入到SVM‑KNN分类算法中进行手势分类;虚拟交互模块:将Leapmotion与Unity3D连接,实现分类后的不同手势对健身房场景内器械的不同交互控制。本发明提高了用户体验度,增强了用户沉浸感。

主权项:1.一种基于双指角域特征的手势交互系统的工作方法,所述手势交互系统包括依次首尾连接的数据采集模块、特征提取模块、手势识别模块以及虚拟交互模块;所述数据采集模块用于:进行Leapmotion初始化,获取Leapmotion有效视野内的手势关节点三维坐标信息,手势关节点三维坐标信息包括五个手指和手掌中心点处的三维坐标信息以及方向信息,方向信息是指手指相邻指尖的方向夹角信息,采集范围为M个不同用户身上的S种不同手势,每个用户的每种手势各采集N次,M≥2,S≥2,N≥50;所述特征提取模块用于:预处理三维坐标信息和提取手势特征;预处理三维坐标信息是指对基于Leapmotion采集的三维坐标信息进行归一化处理,剔除不必要或错误的手势坐标信息;提取手势特征是指提取手势的双指角域特征,包括计算相邻指尖的距离以及相邻指尖在手掌平面投影所构成向量的夹角,并将其作为主要的特征进行手势识别;所述手势识别模块用于:获取手势数据的训练集和测试集,将手势数据集按照随机比例划分为训练集和测试集,手势数据集包含提取好的相邻指尖距离以及相邻指尖在手掌平面投影所构成向量的夹角,将划分好的训练集和测试集输入到SVM-KNN算法中,对S种不同的手势进行识别分类,对分类好的S种手势形成S个不同的.txt数据样本集进行保存;所述虚拟交互模块用于:一方面,构建Unity3D健身房场景,导入到Unity3D中;另一方面,基于搭建好的Unity3D健身房场,完成Leapmotion与Unity3D的连接,将S种手势形成S个不同的数据样本集输入到Unity3D中,实现S类不同手势对健身房场景中某类器械的交互控制;其特征在于,包括以下步骤:S01:Leapmotion初始化;S02:判断用户手势是否在Leapmotion的视距范围内,有效视距是指:Leapmotion的视野取值范围为100-160°,且有效探测距离为25-600mm;如果用户的手势不在Leapmotion的视距范围内,则进入步骤S03,否则,进入步骤S03’;S03:舍弃手势数据,舍弃不在Leapmotion的视距范围内的手势数据;S03’:保存手势数据,保存在Leapmotion的视距范围内的手势数据;通过进行步骤S03’,在设备采集范围内对M个不同用户身上的S种不同手势依次进行手势数据获取,每个用户的每种手势数据各采集N次,并形成Leapmotion手势数据集;手势数据是指手势关节点数据,手势关节点数据是指拇指远端指骨、食指远端指骨、中指远端指骨、无名指远端指骨、小指远端指骨以及手掌中心点三维坐标信息,三维坐标信息是指包括了X轴,Y轴和Z轴的位置坐标信息,位置坐标信息处于右手笛卡尔坐标系,该坐标系以平行于Leapmotion向右延伸为X轴正半轴,垂直于Leapmotion向上延伸为Y轴正半轴,平行于Leapmotion向前延伸为Z轴正半轴,根据坐标系规则,提取手势关节点数据;S04:在步骤S03’保存的手势数据中,依次获取五指指尖的速度vi,i=0,1,2,3,4;S05:设置阈值t来判断数据有效性,0≤t≤200,单位为mms,依次将五指指尖速度vi和阈值t进行比较,如果vi≤t,静止,数据有效,进入步骤S06’;如果vit,运动,数据无效,进入步骤S06;S06:手势运动,并进入步骤S07:S07:剔除无效数据;S06’:手势静止;并进入S07’:S07’:保留有效数据;进入S08;S08:三维坐标信息归一化处理,将获取的全部有效数据归一化到0,1范围内进行计算;S09:对步骤S08处理后的手势三维坐标,提取双指角域特征;判定双指角域内是否只有一组特征值,如果不是,进入步骤S10;否则,进入步骤S10’;S10:舍弃该特征值;S10’:计算相邻指尖距离和夹角;当用户做出不同的手势时,所获得的相邻指尖距离和相邻指尖角度是不同的,对M个人的S种不同手势分别采集N次,得到M*N个不同的双指角域特征,将这些特征分别串联起来,构成特征向量,输入到分类器中进行手势识别;S11:形成训练样本集,对于步骤S10’已经处理好的数据集,按照随机比例将数据集划分为训练集和测试集,并分别保存到单独的两个.txt的文件中;在划分好的训练集和测试集中,均包含了提取好的双指角域特征;S12:计算相邻样本间欧式距离,计算K个相邻样本的欧式距离;S13:设置距离阈值μ,0≤μ1,比较D与μ的大小,D表示相邻两样本间的欧式距离,如果D≤μ,则说明相邻样本距离较近,采用KNN分类;进入步骤S14’;如果D>μ,则说明相邻样本距离较远,采用SVM分类,进入步骤S14;S14’:进行KNN分类,计算相邻样本间的欧式距离后,通过设定不同k值获得不同的手势识别率,k表示K个相邻样本,进而不断调整k值,获得达到最高识别率的k值,从而得到S种手势的识别率,分类后保存为S类手势样本集;进入到步骤S15;S14:进行SVM分类,导入机器学习算法的SDK,手势分类阶段,在使用SVM算法时采用高斯核函数,即kernel=RBF,包含两个参数gamma和C,gamma为影响参数,C为惩罚参数,将训练集输入到SVM分类器中进行训练,得到稳定的训练集模型,再将测试集输入到SVM分类器中进行测试,将获得的结果与得到的训练集模型进行匹配,从而得到S种手势的识别率;分类后保存为S类手势样本集;进入到步骤S15;S15:将手势样本集输入到Unity3D中;S15’:Leapmotion连接Unity3D,通过将Leapmotion的CoreAssets核心包导入到Unity3D中,实现Leapmotion与Unity3D连接,CoreAssets核心包包括手势控制器和交互引擎;S15”:将健身房场景导入Unity3D;S16:与物体虚拟交互,通过手势控制器和交互引擎完成对健身房场景内器械的控制;S17:获取下一帧,通过获取下一帧数据流,反馈回Leapmotion初始化状态,返回步骤S01,重新进行新一轮的数据采集。

全文数据:一种基于双指角域特征的手势交互系统及其工作方法技术领域本发明涉及一种基于双指角域特征的手势交互系统及其工作方法,属于智能感知与人机交互的技术领域。背景技术手势作为人类使用最频繁的交流方式之一,可以完成人机交互的过程,称之为手势交互。手势交互技术涉及模式识别,图像处理,虚拟现实,人机交互等多个学科领域。目前,手势交互技术在医学,教育,绘画,体感游戏等方面都具有广泛的应用前景和实用价值。例如,在教育领域,使用三维交互软件Unity3D结合Kinect手势识别技术开发的虚拟人体解剖教学系统,增加了教学的逼真性和趣味性,在绘画领域,基于Leapmotion开发的虚拟沙画系统,增加了手势交互的乐趣,加深了用户的沉浸感。一个完整的手势交互过程涵盖了数据采集、特征提取、手势识别以及虚拟交互四部分,而其中最为关键的就是手势识别。因此,为了提高手势识别的准确率以及提高用户的需求响应度和交互体验度,研究一种高精度的手势识别算法是有必要的。目前,国内外对于手势交互系统中手势识别方法的研究有很多,但大多数的手势识别方法都是基于手部轮廓和边缘特征或者手部单指特征进行提取和分类,此类手势特征的弊端是不能全面的表达出人丰富的手势动作,容易造成某一类手指位置和方向信息的遗漏,从而降低手势的识别率和用户在完成虚拟交互时的体验度。发明内容针对现有方法的不足,本发明提供了一种基于双指角域特征的手势交互系统,提取手部双指角域特征,旨在提高手势识别率和用户的真实体验度。本发明还提供了上述一种基于双指角域特征的手势交互系统的工作方法。本发明提高了手势的识别率和用户的交互体验度,增加了交互的乐趣。术语解释:1、LeapMotion,是面向PC以及Mac的体感控制器制造公司Leap于2013年2月27日发布的体感控制器。2、SVMSupportVectorMachine,称为支持向量机,是一种可以训练的机器学习方法,它的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。3、KNNK-nearestNeighborClassification,称为K近邻分类算法,它是从训练集中找到和新数据最接近的K条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离或相似的衡量、K的大小。4、Unity3D,是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。本发明的技术方案为:一种基于双指角域特征的手势交互系统,包括依次首尾连接的数据采集模块、特征提取模块、手势识别模块以及虚拟交互模块;所述数据采集模块连接特征提取模块,并由数据采集模块指向特征提取模块,所述特征提取模块连接手势识别模块,并由特征提取模块指向手势识别模块,所述手势识别模块连接虚拟交互模块,并由手势识别模块指向虚拟交互模块,所述虚拟交互模块通过获取下一帧的方式反馈回数据采集模块,形成了一个闭环回路。所述数据采集模块用于:进行Leapmotion初始化,获取Leapmotion有效视野内的手势关节点三维坐标信息,利用Leapmotion双目摄像头获取有效视野范围内的用户手部关节点处的三维坐标信息,手势关节点三维坐标信息包括五个手指和手掌中心点处的三维坐标信息以及方向信息,方向信息是指手指相邻指尖的方向夹角信息,采集范围为M个不同用户身上的S种不同手势例如:剪刀,石头,布,每个用户的每种手势各采集N次,M≥2,S≥2,N≥50;所述特征提取模块用于:预处理三维坐标信息和提取手势特征;预处理三维坐标信息是指对基于Leapmotion采集的三维坐标信息进行归一化处理,剔除不必要或错误的手势坐标信息;提取手势特征是指提取手势的双指角域特征,包括计算相邻指间的距离以及相邻指尖在手掌平面投影所构成向量的夹角,并将其作为主要的特征进行手势识别;所述手势识别模块用于:获取手势数据的训练集和测试集,将手势数据集按照随机比例划分为训练集和测试集,手势数据集包含提取好的相邻指尖距离以及相邻指尖在手掌平面投影所构成向量的夹角,将划分好的训练集和测试集输入到SVM-KNN算法中,对S种不同的手势进行识别分类,对分类好的S种手势形成S个不同的.txt数据样本集进行保存;所述虚拟交互模块用于:一方面,构建Unity3D健身房场景,健身房场景主要通过3Dmax软件绘制,导入到Unity3D中;另一方面,基于搭建好的Unity3D健身房场,完成Leapmotion与Unity3D的连接,将S种手势形成S个不同的数据样本集输入到Unity3D中,实现S类不同手势对健身房场景中某类器械的交互控制。上述基于双指角域特征的手势交互系统的工作方法,包括以下步骤:S01:Leapmotion初始化;初始化是指通过LeapmotionSDK将Leapmotion设备连接上位机,并利用LeapManager函数对Leapmotion设备进行开发环境初始化配置的过程;在Leapmotion初始化完成后,进入步骤S02。S02:判断用户手势是否在Leapmotion的视距范围内,有效视距是指:Leapmotion传感器的视野取值范围为100-160°,且有效探测距离为25-600mm;如果用户的手势不在Leapmotion的视距范围内,则进入步骤S03,否则,进入步骤S03’;进一步优选的,Leapmotion传感器的视野取值范围为150°;在这里,所获取的坐标值都是有效视距内的三维信息。Leapmotion在其有效的探测范围内,可以结合人体的手部骨骼结构对人手的9块骨头,29个关节点进行探测,并且能够将这些手部骨架信息精简为每个关节点的三维坐标信息,利用获取到的有效三维信息,可以很好的判断用户的手势特征。S03:舍弃手势数据,舍弃不在Leapmotion的视距范围内的手势数据;S03’:保存手势数据,保存在Leapmotion的视距范围内的手势数据;通过进行步骤S03’,在设备采集范围内对M个不同用户身上的S种不同手势依次进行手势数据获取,每个用户的每种手势数据各采集N次,并形成Leapmotion手势数据集。手势数据是指手势关节点数据,手势关节点数据是指利用Leapmotion自带的Finger和Palm函数,获取拇指远端指骨、食指远端指骨、中指远端指骨、无名指远端指骨、小指远端指骨以及手掌中心点三维坐标信息,每根手指包括远端指骨、中间指骨、近端指骨和掌骨四个关节点,在这里采集的是五指远端指骨和手掌中心点的三维坐标信息,采用Leapmotion双目摄像头完成手部三维坐标信息的获取。三维坐标信息是指包括了X轴,Y轴和Z轴的位置坐标信息,Leapmotion采用的是位置坐标信息处于右手笛卡尔坐标系,该坐标系以平行于Leapmotion向右延伸为X轴正半轴,垂直于Leapmotion向上延伸为Y轴正半轴,平行于Leapmotion向前延伸为Z轴正半轴,根据坐标系规则,提取手势关节点数据;S04:在步骤S03’保存的手势数据中,利用Leapmotion中自带的Finger.tip_velocity指尖速度函数依次获取五指指尖的速度vi,i=0,1,2,3,4;例如,获取大拇指指尖速度为:Thumb.tip_velocity,依此类推;S05:设置阈值t来判断数据有效性,通过设置阈值的方法来判断获取的手势数据是否合理,从而剔除不合理或者错误的三维数据,保留有效的三维坐标。0≤t≤200,单位为mms,依次将五指指尖速度vi和阈值t进行比较,如果vi≤t,静止,数据有效,进入步骤S06’;如果vit,运动,数据无效,进入步骤S06;S06:手势运动,并进入步骤S07:S07:剔除无效数据;S06’:手势静止;并进入S07’:S07’:保留有效数据;进入S08。S08:三维坐标信息归一化处理,为了保证计算的简洁性和准确性,将获取的全部有效数据归一化到0,1范围内进行计算;避免较大数据造成计算上的错误。在数据预处理阶段,由于获取的数据量较大,从而容易出现数据上的误判,因此在判断数据有效性的过程中需要不断地在阈值范围内调整和更新t,反复进行数据对比,以获得最佳的阈值取值,从而避免单一对比情况下造成的数据流失,进而保证数据的高精度和手势的完备性。S09:对步骤S08处理后的手势三维坐标包括每根手指的远端指骨位置坐标和手掌中心的位置坐标,提取双指角域特征;判定双指角域内是否只有一组特征值,如果不是,进入步骤S10;否则,进入步骤S10’;S10:舍弃该特征值;S10’:计算相邻指尖距离和夹角;进一步优选的,所述步骤S10’,包括步骤如下:a、将每根手指的远端指骨位置坐标定义为Fi,i=1,2,3,4,5,手掌中心点位置坐标定义为C;b、计算相邻指尖距离,在获取到手势三维坐标基础上,计算相邻指尖距离,通过Fi和C得到相邻指尖距离计算公式,如式Ⅰ所示:Dafi=||Fi-Fi-1||SjⅠ式Ⅰ中,Dafi表示对应不同角域内的相邻两个指尖的距离,i=1,2,3,4,5,Sj表示以掌心为中心的五个角域,依据手指指尖方向与手掌方向向量夹角将手指划分到对应好的角域中,j=1,2,3,4,5;算法规定,每个角域最多只有一组特征值,遗漏值置为0;c、计算相邻指尖角度,相邻指尖角度表示相邻指尖在手掌平面投影所构成向量的夹角,计算公式如式Ⅱ所示:式Ⅱ中,Aafi为相邻指尖角度,即相邻指尖在手掌平面投影所构成向量的夹角,i=1,2,3,4,5,C为手掌中心点位置坐标,Fiπ是以π为基准的在手掌平面法向量方向上的投影坐标点,Fiπ-C为指尖投影与手掌平面所构成向量的夹角;式Ⅱ中除以π进行归一化处理,将相邻指尖角度归一化到[0,1]度范围内进行运算。当用户做出不同的手势时,所获得的相邻指尖距离和相邻指尖角度是不同的,对M个人的S种不同手势分别采集N次,得到M*N个不同的双指角域特征,将这些特征分别串联起来,构成特征向量,输入到分类器中进行手势识别;S11:形成训练样本集,对于步骤S10’已经处理好的数据集,按照随机比例将数据集划分为训练集和测试集,并分别保存到单独的两个.txt的文件中;在划分好的训练集和测试集中,均包含了提取好的双指角域特征;S12:计算相邻样本间欧式距离,计算K个相邻样本的欧式距离;进一步优选的,所述步骤S12,K个相邻样本的欧式距离的计算公式如式Ⅲ所示:式Ⅲ中,D表示相邻两样本间的欧式距离,k表示K个相邻样本,n为样本总数,xk+1和xk为相邻的两个样本取值,分别计算训练集和测试集相邻样本间的欧式距离;S13:设置距离阈值μ,0≤μt,运动,数据无效,进入步骤S06;S06:手势运动,并进入步骤S07:S07:剔除无效数据;S06’:手势静止;并进入S07’:S07’:保留有效数据;进入S08。S08:三维坐标信息归一化处理,为了保证计算的简洁性和准确性,将获取的全部有效数据归一化到0,1范围内进行计算;避免较大数据造成计算上的错误。在数据预处理阶段,由于获取的数据量较大,从而容易出现数据上的误判,因此在判断数据有效性的过程中需要不断地在阈值范围内调整和更新t,反复进行数据对比,以获得最佳的阈值取值,从而避免单一对比情况下造成的数据流失,进而保证数据的高精度和手势的完备性。S09:对步骤S08处理后的手势三维坐标包括每根手指的远端指骨位置坐标和手掌中心的位置坐标,提取双指角域特征;判定双指角域内是否只有一组特征值,如果不是,进入步骤S10;否则,进入步骤S10’;S10:舍弃该特征值;S10’:计算相邻指尖距离和夹角;包括步骤如下:a、将每根手指的远端指骨位置坐标定义为Fi,i=1,2,3,4,5,手掌中心点位置坐标定义为C;b、计算相邻指尖距离,在获取到手势三维坐标基础上,计算相邻指尖距离,通过Fi和C得到相邻指尖距离计算公式,如式Ⅰ所示:Dafi=||Fi-Fi-1||SjⅠ式Ⅰ中,Dafi表示对应不同角域内的相邻两个指尖的距离,i=1,2,3,4,5,Sj表示以掌心为中心的五个角域,依据手指指尖方向与手掌方向向量夹角将手指划分到对应好的角域中,j=1,2,3,4,5;算法规定,每个角域最多只有一组特征值,遗漏值置为0;c、计算相邻指尖角度,相邻指尖角度表示相邻指尖在手掌平面投影所构成向量的夹角,计算公式如式Ⅱ所示:式Ⅱ中,Aafi为相邻指尖角度,即相邻指尖在手掌平面投影所构成向量的夹角,i=1,2,3,4,5,C为手掌中心点位置坐标,Fiπ是以π为基准的在手掌平面法向量方向上的投影坐标点,Fiπ-C为指尖投影与手掌平面所构成向量的夹角;式Ⅱ中除以π进行归一化处理,将相邻指尖角度归一化到[0,1]度范围内进行运算。当用户做出不同的手势时,所获得的相邻指尖距离和相邻指尖角度是不同的,对M个人的S种不同手势分别采集N次,得到M*N个不同的双指角域特征,将这些特征分别串联起来,构成特征向量,输入到分类器中进行手势识别;S11:形成训练样本集,对于步骤S10’已经处理好的数据集,按照随机比例将数据集划分为训练集和测试集,并分别保存到单独的两个.txt的文件中;在划分好的训练集和测试集中,均包含了提取好的双指角域特征;S12:计算相邻样本间欧式距离,计算K个相邻样本的欧式距离;K个相邻样本的欧式距离的计算公式如式Ⅲ所示:式Ⅲ中,D表示相邻两样本间的欧式距离,k表示K个相邻样本,n为样本总数,xk+1和xk为相邻的两个样本取值,分别计算训练集和测试集相邻样本间的欧式距离;S13:设置距离阈值μ,0≤μ1,比较D与μ的大小,如果D≤μ,则说明相邻样本距离较近,采用KNN分类;进入步骤S14’;如果D>μ,则说明相邻样本距离较远,采用SVM分类,进入步骤S14;通过步骤S13不断更新μ值,以获得最合适的距离阈值。S14’:进行KNN分类,计算相邻样本间的欧式距离后,通过设定不同k值获得不同的手势识别率,k表示K个相邻样本,进而不断调整k值,获得达到最高识别率的k值,从而得到S种手势的识别率,分类后保存为S类手势样本集;进入到步骤S15;S14:进行SVM分类,导入机器学习算法的SDK,手势分类阶段,为保证数据更好的拟合,在使用SVM算法时采用高斯核函数,即kernel=RBF,包含两个参数gamma和C,gamma为影响参数,C为惩罚参数,将训练集输入到SVM分类器中进行训练,得到稳定的训练集模型,再将测试集输入到SVM分类器中进行测试,将获得的结果与得到的训练集模型进行匹配,从而得到S种手势的识别率;分类后保存为S类手势样本集;进入到步骤S15;在采用SVM-KNN二重分类算法时,如图3所示,横坐标1-5表示随机采集的五类手势,纵坐标0.3-1.0表示五类手势对应的识别率,通过SVM,KNN和SVM-KNN三类算法对手势进行分类仿真对比,可以看到SVM-KNN二重分类算法的效果优于其他两种分类算法,识别率达到最高。所以采用SVM-KNN二重分类算法有利于减小手势的误判率,将SS≥2种手势进行更清晰地划分,进而提高用户的真实体验度,增加交互乐趣。S15:将手势样本集输入到Unity3D中;将S类手势样本集输入到Unity3D后台控制程序中;S15’:Leapmotion连接Unity3D,通过将Leapmotion的CoreAssets核心包导入到Unity3D中,实现Leapmotion与Unity3D连接,CoreAssets核心包包括手势控制器HandController和交互引擎InteractionEngine;S15”:将健身房场景导入Unity3D;包括:利用3Dmax绘制健身房三维场景,利用3Dmax的三维立体功能,绘制健身房,包括:跑步机、杠铃、举重器、拳击袋、休息椅以及健身房等三维立体图,形成3D健身房场景;3Dmax绘制的健身房场景图在导入Unity3D时,为了避免贴图缺失或者原图失真的情况,在输出场景图时保存为fbx或者obj的格式,将带有fbx或者obj后缀的文件导入到Unity3D中,完成健身房场景的导入。为了增强沉浸感,在Unity3D中的三维场景图以第一视角的形式呈现。S16:与物体虚拟交互,通过手势控制器和交互引擎完成对健身房场景内器械比如哑铃的控制;例如:“剪刀”手势控制器械的颜色变白色变为红色,“石头”手势控制器械的旋转,“布”手势控制器械的静止;S17:获取下一帧,通过获取下一帧数据流,反馈回Leapmotion初始化状态,返回步骤S01,重新进行新一轮的数据采集。通过完成S1-S17,形成了一个手势交互系统的闭环回路。实施例3根据实施例2所述的一种基于双指角域特征的手势交互系统的工作方法,其区别在于:Leapmotion传感器的视野取值范围为150°。

权利要求:1.一种基于双指角域特征的手势交互系统,其特征在于,包括依次首尾连接的数据采集模块、特征提取模块、手势识别模块以及虚拟交互模块;所述数据采集模块用于:进行Leapmotion初始化,获取Leapmotion有效视野内的手势关节点三维坐标信息,手势关节点三维坐标信息包括五个手指和手掌中心点处的三维坐标信息以及方向信息,方向信息是指手指相邻指尖的方向夹角信息,采集范围为M个不同用户身上的S种不同手势,每个用户的每种手势各采集N次,M≥2,S≥2,N≥50;所述特征提取模块用于:预处理三维坐标信息和提取手势特征;预处理三维坐标信息是指对基于Leapmotion采集的三维坐标信息进行归一化处理,剔除不必要或错误的手势坐标信息;提取手势特征是指提取手势的双指角域特征,包括计算相邻指间的距离以及相邻指尖在手掌平面投影所构成向量的夹角,并将其作为主要的特征进行手势识别;所述手势识别模块用于:获取手势数据的训练集和测试集,将手势数据集按照随机比例划分为训练集和测试集,手势数据集包含提取好的相邻指尖距离以及相邻指尖在手掌平面投影所构成向量的夹角,将划分好的训练集和测试集输入到SVM-KNN算法中,对S种不同的手势进行识别分类,对分类好的S种手势形成S个不同的.txt数据样本集进行保存;所述虚拟交互模块用于:一方面,构建Unity3D健身房场景,导入到Unity3D中;另一方面,基于搭建好的Unity3D健身房场,完成Leapmotion与Unity3D的连接,将S种手势形成S个不同的数据样本集输入到Unity3D中,实现S类不同手势对健身房场景中某类器械的交互控制。2.权利要求1所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,包括以下步骤:S01:Leapmotion初始化;S02:判断用户手势是否在Leapmotion的视距范围内,有效视距是指:Leapmotion的视野取值范围为100-160°,且有效探测距离为25-600mm;如果用户的手势不在Leapmotion的视距范围内,则进入步骤S03,否则,进入步骤S03’;S03:舍弃手势数据,舍弃不在Leapmotion的视距范围内的手势数据;S03’:保存手势数据,保存在Leapmotion的视距范围内的手势数据;通过进行步骤S03’,在设备采集范围内对M个不同用户身上的S种不同手势依次进行手势数据获取,每个用户的每种手势数据各采集N次,并形成Leapmotion手势数据集;手势数据是指手势关节点数据,手势关节点数据是指拇指远端指骨、食指远端指骨、中指远端指骨、无名指远端指骨、小指远端指骨以及手掌中心点三维坐标信息,三维坐标信息是指包括了X轴,Y轴和Z轴的位置坐标信息,位置坐标信息处于右手笛卡尔坐标系,该坐标系以平行于Leapmotion向右延伸为X轴正半轴,垂直于Leapmotion向上延伸为Y轴正半轴,平行于Leapmotion向前延伸为Z轴正半轴,根据坐标系规则,提取手势关节点数据;S04:在步骤S03’保存的手势数据中,依次获取五指指尖的速度vi,i=0,1,2,3,4;S05:设置阈值t来判断数据有效性,0≤t≤200,单位为mms,依次将五指指尖速度vi和阈值t进行比较,如果vi≤t,静止,数据有效,进入步骤S06’;如果vit,运动,数据无效,进入步骤S06;S06:手势运动,并进入步骤S07:S07:剔除无效数据;S06’:手势静止;并进入S07’:S07’:保留有效数据;进入S08;S08:三维坐标信息归一化处理,将获取的全部有效数据归一化到0,1范围内进行计算;S09:对步骤S08处理后的手势三维坐标,提取双指角域特征;判定双指角域内是否只有一组特征值,如果不是,进入步骤S10;否则,进入步骤S10’;S10:舍弃该特征值;S10’:计算相邻指尖距离和夹角;当用户做出不同的手势时,所获得的相邻指尖距离和相邻指尖角度是不同的,对M个人的S种不同手势分别采集N次,得到M*N个不同的双指角域特征,将这些特征分别串联起来,构成特征向量,输入到分类器中进行手势识别;S11:形成训练样本集,对于步骤S10’已经处理好的数据集,按照随机比例将数据集划分为训练集和测试集,并分别保存到单独的两个.txt的文件中;在划分好的训练集和测试集中,均包含了提取好的双指角域特征;S12:计算相邻样本间欧式距离,计算K个相邻样本的欧式距离;S13:设置距离阈值μ,0≤μ1,比较D与μ的大小,如果D≤μ,则说明相邻样本距离较近,采用KNN分类;进入步骤S14’;如果D>μ,则说明相邻样本距离较远,采用SVM分类,进入步骤S14;S14’:进行KNN分类,计算相邻样本间的欧式距离后,通过设定不同k值获得不同的手势识别率,k表示K个相邻样本,进而不断调整k值,获得达到最高识别率的k值,从而得到S种手势的识别率,分类后保存为S类手势样本集;进入到步骤S15;S14:进行SVM分类,导入机器学习算法的SDK,手势分类阶段,在使用SVM算法时采用高斯核函数,即kernel=RBF,包含两个参数gamma和C,gamma为影响参数,C为惩罚参数,将训练集输入到SVM分类器中进行训练,得到稳定的训练集模型,再将测试集输入到SVM分类器中进行测试,将获得的结果与得到的训练集模型进行匹配,从而得到S种手势的识别率;分类后保存为S类手势样本集;进入到步骤S15;S15:将手势样本集输入到Unity3D中;S15’:Leapmotion连接Unity3D,通过将Leapmotion的CoreAssets核心包导入到Unity3D中,实现Leapmotion与Unity3D连接,CoreAssets核心包包括手势控制器和交互引擎;S15”:将健身房场景导入Unity3D;S16:与物体虚拟交互,通过手势控制器和交互引擎完成对健身房场景内器械的控制;S17:获取下一帧,通过获取下一帧数据流,反馈回Leapmotion初始化状态,返回步骤S01,重新进行新一轮的数据采集。3.根据权利要求2所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,Leapmotion的视野取值范围为150°。4.根据权利要求2所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,所述步骤S10’,包括步骤如下:a、将每根手指的远端指骨位置坐标定义为Fi,i=1,2,3,4,5,手掌中心点位置坐标定义为C;b、计算相邻指尖距离,在获取到手势三维坐标基础上,计算相邻指尖距离,通过Fi和C得到相邻指尖距离计算公式,如式Ⅰ所示:Dafi=||Fi-Fi-1||SjⅠ式Ⅰ中,Dafi表示对应不同角域内的相邻两个指尖的距离,i=1,2,3,4,5,Sj表示以掌心为中心的五个角域,依据手指指尖方向与手掌方向向量夹角将手指划分到对应好的角域中,j=1,2,3,4,5;每个角域最多只有一组特征值,遗漏值置为0;c、计算相邻指尖角度,相邻指尖角度表示相邻指尖在手掌平面投影所构成向量的夹角,计算公式如式Ⅱ所示:式Ⅱ中,Aafi为相邻指尖角度,即相邻指尖在手掌平面投影所构成向量的夹角,i=1,2,3,4,5,C为手掌中心点位置坐标,Fiπ是以π为基准的在手掌平面法向量方向上的投影坐标点,Fiπ-C为指尖投影与手掌平面所构成向量的夹角;式Ⅱ中除以π进行归一化处理,将相邻指尖角度归一化到[0,1]度范围内进行运算。5.根据权利要求2所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,所述步骤S12,K个相邻样本的欧式距离的计算公式如式Ⅲ所示:式Ⅲ中,D表示相邻两样本间的欧式距离,k表示K个相邻样本,n为样本总数,xk+1和xk为相邻的两个样本取值,分别计算训练集和测试集相邻样本间的欧式距离。6.根据权利要求2-5任一所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,所述步骤S15”,将健身房场景导入Unity3D,包括:利用3Dmax绘制健身房三维场景,形成3D健身房场景;在输出场景图时保存为fbx或者obj的格式,将带有fbx或者obj后缀的文件导入到Unity3D中,完成健身房场景的导入。7.根据权利要求6所述的基于双指角域特征的手势交互系统的工作方法,其特征在于,在Unity3D中的三维场景图以第一视角的形式呈现。

百度查询: 山东大学 一种基于双指角域特征的手势交互系统及其工作方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。