一种基于RGBD摄像头深度图像的机器人手势交互方法和装置与流程

文档序号:13673209阅读:1251来源:国知局
本发明属于人机交互和机器人
技术领域
,具体涉及一种基于rgbd摄像头深度图像的机器人手势交互方法和装置。
背景技术
:腿式移动操作机器人可以代替人类去危险的剧毒场所作业,也可以去太空等执行星球探测任务,在侦察预警、应急救援、反恐防暴等领域有广阔的应用前景。这些任务通常比较复杂,而目前机器人水平有限,不能完全自主处理所有事务,通常需要人类协助,良好的人机交互不仅可以提高工作效率,还可以充分利用人类智慧,指导机器人完成更复杂的任务。因此,良好的人机交互至关重要。手势是人与机器人交互的重要方式,具有交互直观、自然的优点,但机器人与人手势交互过程中存在以下问题:由于腿式移动操作机器人多基于嵌入式系统,硬件计算能力有限,无法实现实时交互;且机器人多处于动态环境,受光照、背景变化等影响较大。自然的人机交互具有简单直观、操作方便的优点,让人们与机器人的交互越来越有趣,让人们的生活越来越便利,越来越受到大众的青睐;所以改善人机交互方式在计算机和机器人行业是大势所趋。技术实现要素:本发明为了解决腿式移动机器人中的手势识别硬件计算能力有限,但手势识别有实时性要求,且手势识别受光照变化影响大的问题,提出了一种基于rgbd摄像头深度图像的机器人手势交互方法和装置,用于腿式移动操作机器人应用平台;所述的基于rgbd摄像头深度图像的机器人手势交互装置,包括预定义模块,数据获取模块,手部区域分割子模块,手势识别子模块,机器人控制模块和反馈模块;其中预定义模块包括手势类型子模块和映射子模块;手部区域分割子模块和手势识别子模块构成了静态手势识别模块。预定义模块根据机器人的类型和实际应用需求,预定义用户手势的类型,以及手势和机器人之间的映射关系;具体为:手势类型子模块用来预定义用户的手势类型;映射子模块用来定义手势种类/识别结果与机器人运动种类/操作类型间的映射;包含三种模式:运动控制模式、操作控制模式和“运动+操作”模式。运动控制模式用来定义两种映射:手势种类与机器人运动种类间的映射,以及识别结果与机器人运动种类间的映射;操作控制模式用来定义两种映射:手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射;“运动+操作”模式定义四种映射:手势种类与机器人运动种类的映射,识别结果与机器人运动种类的映射;手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射。用户在摄像头前做出某手势动作,数据获取模块通过rgbd摄像头采集用户的骨骼点和深度图像等数据,并用usb传输给手部区域分割子模块,手部区域分割子模块从获取的骨骼点和深度图像中分割出用户的手部区域提供给手势识别子模块;手势识别子模块进行识别,并将识别结果通过ros消息发送给机器人控制模块;机器人控制模块根据机器人自身的运动种类和操作类型,结合手势种类和识别结果,从映射子模块定义中选择出对应的映射关系,控制机器人完成特定动作。反馈模块是用户根据任务需求、环境变化及机器人实际完成的特定动作,制定相应控制策略;并返给预定义模块,将控制策略转化为特定手势类型。所述的基于rgbd摄像头深度图像的机器人手势交互方法,具体步骤如下:步骤一、针对腿式移动操作机器人应用平台,预定义模块根据实际应用情况,分别自定义用户手势的类型,以及手势和机器人之间的映射关系;映射包含三种模式:运动控制模式、操作控制模式和“运动+操作”模式。运动控制模式用来定义两种映射:手势种类与机器人运动种类间的映射,以及识别结果与机器人运动种类间的映射;操作控制模式用来定义两种映射:手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射;“运动+操作”模式定义四种映射:手势种类与机器人运动种类的映射,识别结果与机器人运动种类的映射;手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射。步骤二、用户根据机器人类型、实际需求和预定义的手势及映射,做出特定手势;步骤三、数据获取模块使用rgbd摄像头采集用户手势的骨骼点和深度图像;步骤四、静态手势识别模块对采集的骨骼点和深度图像进行手部区域分割和手势识别;具体步骤如下:步骤401、利用rgbd摄像头的sdk提取手部中心点的深度值作为基准值,设定手部的深度值范围,并提取出该范围内的物体;具体为:首先利用sdk提取手部中心点的深度值depthvalue,并将depthvalue作为基准值,前后各选取范围a,则将深度值在[depthvalue-a,depthvalue+a]范围内的像素点的值都设置为0,将其余深度范围内的像素点的值都设置为255,提取出深度值在[depthvalue-a,depthvalue+a]范围内的物体。步骤402、以手部中心点为基准,提取手部感兴趣(regionofinterest,roi)区域,在深度值范围内进行手部区域的分割。具体为:首先,以手部中心点为基准,在手部中心点周围定义矩形框作为手部感兴趣区域;矩形框的宽度β根据用户离摄像头的远近来调整,具体为β=d×w;d为离手部中心点的深度;w为初始深度为离手部中心点1米时矩形框的宽度。当手部的点落在深度值范围[depthvalue-a,depthvalue+a]内时,这些点对应的矩形框中的物体均保留,作为分割的手部区域。步骤403、对分割的手部区域结果进行降噪和形态学处理,得到手部二值化图像。步骤404、对手部二值图像进行识别,得到手指的个数作为手势识别结果。具体步骤为:步骤4041、提取手心位置并计算手心精确位置作为新的基准点;将sdk提取的手部中心点向中间移动,将手部中心点沿着最远点和中心点所组成的向量,分别沿x方向和y方向移动;移动距离通过以下方式确定:在手势接近于垂直状态下,按照手心坐标移动方程,对手部中心点进行平移:其中,(x_max,y_max)分别为手部最远点沿x,y方向的坐标值;(handx,handy)为手部中心点沿x,y方向的坐标值;b,c∈q,q为有理数,根据实际手部几何关系确定。经过手心坐标平移之后,新的基准点更加靠近手部中心。步骤4042、在手部roi区域内找到距离新的基准点最远的点,并计算两者之间的距离distance_max;步骤4043、将距离distance_max等分成num_circle份;num_circle是用户根据实际需要和采集的图像确定的经验值;0<num_circle≤20,num_circle∈n;步骤4044、以的整数倍为半径画num_circle个圆,记下每一个圆与手部roi区域中的手部轮廓的交点个数,组成集合count;集合count={count[1],count[2],...count[i],count[n]};步骤4045、针对集合count中每个圆与手部roi区域中的手部轮廓的交点是否有效进行判断,如果有效,则将该交点统计,否则不予计数;当统计第i个圆与手部roi区域中的手部轮廓的交点个数时,当圆从白色区域进入黑色区域时,当前d个检测的像素点都在白色区域内,且后d个检测的像素点都在黑色区域内时,当前的颜色变化有效,count[i]的值加1;当圆从黑色区域进入白色区域时,在前d个像素点都在黑色区域内,后d个像素点都在白色区域内,颜色改变有效,count[i]的值加1。检测点个数为圆周半径的正比例函数。步骤4046、找到判断后的集合count中计数最大的数count[i],计算手指个数为coun[t]i/2-1。步骤五、根据预定义的手势映射,将手势识别结果映射为机器人的特定动作,并通过ros消息发送给机器人控制模块。步骤六、机器人控制模块控制机器人完成特定动作;步骤七、用户根据机器人实际完成的特定动作、环境变化及任务需求,制定相应控制策略;步骤八、反馈模块根据相应控制策略选择继续当前的手势映射还是进行新的手势映射,重复上述步骤,将控制策略转化为特定手势类型。本发明的优点在于:1)、一种基于rgbd摄像头深度图像的机器人手势交互方法,使人与机器人自然交互,提高人机交互效果和工作效率。2)、一种基于rgbd摄像头深度图像的机器人手势交互方法,对光照和复杂背景有较好鲁棒性,且识别方法简单,能够满足机器人实时交互的需求。3)、一种基于rgbd摄像头深度图像的机器人手势交互装置,基于ros(robotoperatingsystem,机器人操作系统),可移植性强。附图说明图1是本发明一种基于rgbd摄像头深度图像的机器人手势交互方法的流程图;图2是本发明以手部中心点为基准定义自适应矩形框的计算相似原理示意图;图3是本发明静态手势识别模块进行手部区域分割结果和手势识别示意图图4是本发明一种基于rgbd摄像头深度图像的机器人手势交互装置的结构图;图5是本发明预定义的6种特定手势示意图;图6是本发明原始深度图像和提取出的基于阈值的手部区域分割图像对比图;图7是本发明原始深度图像和提取出的手部区域分割图增加roi区域框后的对比图;图8是本发明分割出的手势轮廓中误差来源示意图。具体实施方式下面将结合附图和实施例对本发明作进一步的详细说明。本发明从自然通用的人机交互角度出发,针对腿式移动操作机器人应用平台,使用华硕体感摄像头xtionprolive采集到的深度图像进行手部分割和手势识别,通过识别静态手势来控制机器人运动/操作。其中,静态手势识别基于rgbd摄像头深度图像,受光照影响很小,有利于提高手势交互对环境的适应性和鲁棒性;本方法操作简单,能满足机器人实时交互的要求,且对光照和复杂背景具有较好鲁棒性。本发明面向公共安全特定应用,用于window和linux平台;本实施例基于linux平台,ros(robotoperatingsystem,机器人操作系统)进行开发。所述的基于rgbd摄像头深度图像的机器人手势交互装置,如图4所示,包括预定义模块,数据获取模块,手部区域分割子模块,手势识别子模块,机器人控制模块和反馈模块;其中预定义模块包括手势类型子模块和映射子模块;手部区域分割子模块和手势识别子模块构成了静态手势识别模块。预定义模块根据机器人的类型和实际应用需求,预定义用户的手势种类和手势识别结果,以及手势和机器人之间的映射关系;具体为:手势类型子模块用来预定义用户的手势种类和手势识别结果;映射子模块用来定义手势种类/识别结果与机器人运动种类/操作类型间的映射;包含三种模式:运动控制模式、操作控制模式和“运动+操作”模式。运动控制模式用来定义两种映射:手势种类与机器人运动种类间的映射,以及识别结果与机器人运动种类间的映射;操作控制模式用来定义两种映射:手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射;“运动+操作”模式定义四种映射:手势种类与机器人运动种类的映射,识别结果与机器人运动种类的映射;手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射。数据获取模块通过rgbd摄像头采集骨骼点、rgb图像、深度图像等数据,为基于深度图像的静态手势识别子模块提供数据。机器人运动控制模块用来接收基于深度图像的静态手势识别模块通过ros消息发送出来的手势识别结果,并按照预定义模块定义的手势识别结果与运动种类/操作类型间的映射关系,控制机器人完成特定动作。基于深度图像的静态手势识别子模块包括手部区域分割子模块和手势识别子模块。其中,手部区域分割子模块从数据获取模块中获取的深度图中分割出手部区域,手势识别子模块从手部区域分割子模块分割出的手部区域中识别出手势种类。用户在摄像头前做出某手势动作,数据获取模块通过rgbd摄像头采集用户的骨骼点和深度图像等数据,并用usb传输给手部区域分割子模块,手部区域分割子模块从获取的骨骼点和深度图像中分割出用户的手部区域提供给手势识别子模块;手势识别子模块进行识别,并将识别结果通过ros消息发送给机器人控制模块;机器人控制模块根据机器人自身的运动种类和操作类型,结合手势种类和识别结果,从映射子模块定义中选择出对应的映射关系,控制机器人完成特定动作。反馈模块是用户根据任务需求、环境变化及机器人实际完成的特定动作,制定相应控制策略;并返给预定义模块,将控制策略转化为特定手势类型。所述的基于rgbd摄像头深度图像的机器人手势交互方法,如图1所示,具体步骤如下:步骤一、针对腿式移动操作机器人应用平台,预定义模块根据实际应用情况,分别自定义用户手势的类型,以及手势和机器人之间的映射关系;映射包含三种模式:运动控制模式、操作控制模式和“运动+操作”模式。运动控制模式用来定义两种映射:手势种类与机器人运动种类间的映射,以及识别结果与机器人运动种类间的映射;操作控制模式用来定义两种映射:手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射;“运动+操作”模式定义四种映射:手势种类与机器人运动种类的映射,识别结果与机器人运动种类的映射;手势种类与机器人操作类型间的映射,以及识别结果与机器人操作类型间的映射。步骤二、用户根据机器人类型、实际需求和预定义的手势及映射,做出特定手势;步骤三、数据获取模块使用rgbd摄像头采集用户手势的骨骼点和深度图像;使用华硕体感摄像头xtionprolive或适用于kinect等其他的rgbd摄像头采集数据。步骤四、静态手势识别模块对采集的骨骼点和深度图像进行手部区域分割和手势识别;具体步骤如下:步骤401、利用rgbd摄像头的sdk提取手部中心点的深度值作为基准值,设定手部的深度值范围,并提取出该范围内的物体;具体为:首先利用华硕体感摄像头xtionprolive的sdk提取手部中心点的深度值depthvalue,并将depthv作为基准值,前后各选取范围a,则将深度值在[depthvalue-a,depthvalue+a]范围内的像素点的值都设置为0(黑色),将不在这个深度范围内的像素点的值都设置为255(白色),提取出深度值在[depthvalue-a,depthvalue+a]范围内的物体。步骤402、以手部中心点为基准,提取手部感兴趣(regionofinterest,roi)区域,在深度值范围内进行手部区域的分割。具体为:首先,以手部中心点为基准,在手部中心点周围定义矩形框作为手部感兴趣区域;只有当满足步骤401条件的点处在这个矩形框之内时,才将其认为是手部的点。考虑到人的手部可能距离摄像头的远近不同,矩形框的大小也要根据手部与摄像头的距离进行调整。本发明将矩形框的大小认为是距离的一次函数,更简单地可以认为是一个成正比的函数,如图2所示:假设当手部处在距离摄像头1米(即手部中心点的深度为1米)处时手部矩形框所占宽度是w,则当深度是d时,假设宽度为β,根据相似原理,可得β=d×w;当手部的点落在深度值范围[depthvalue-a,depthvalue+a]内时,这些点对应的矩形框中的物体均保留,作为分割的手部区域。图2是手部区域自适应矩形框示意图,它能根据用户距离摄像头的远近来调整边框的宽度。但实际上,距离摄像头越近,手部在屏幕上所对应的面积就越大,所需要的边框宽度就越大。所以,在计算矩形框大小的时候,本发明在此基础上需要用255(最大深度值)减去距离值作为新的距离,这样便得到自适应手部区域框,即手部感兴趣区域roi。在此基础上,将手部区域点的判断限定在满足步骤401,且在自适应的感兴趣区域框内,这样便得到手部区域的分割结果。步骤403、对分割的手部区域结果进行降噪和形态学处理,得到手部二值化图像。步骤404、对手部二值图像进行识别,得到手指的个数作为手势识别结果。分割出手部区域后,得到手部二值化图像,以手心为圆心,沿着不同的半径的圆周对分割出来的手部二值图像进行检测,检测到颜色变化点就可以认为有手指出现,如图3所示。具体步骤为:步骤4041、利用数据采集卡提取手心位置并此位置为基准,计算手心精确位置作为新的基准点;由于华硕体感摄像头xtionprolive的sdk提取手部中心点始终在中指指根,而且提取出来的手部区域距离此基准点最远的点始终在手腕部分,将手部中心点尽量向中间移动,将手部中心点沿着最远点和中心点所组成的向量,分别沿x方向和y方向移动一定的距离;移动距离通过以下方式确定:假设手势接近于垂直状态下,只要偏离角度不是很大,按照手心坐标移动方程即公式(1),对手部中心点进行平移:其中,(x_max,y_max)分别为手部最远点沿x,y方向的坐标值;(handx,handy)为手部中心点沿x,y方向的坐标值;b,c∈q,q为有理数,根据实际手部几何关系确定。经过手心坐标平移之后,新的基准点更加靠近手部中心,为后续手势识别奠定基础。步骤4042、在手部roi区域内找到距离新的基准点最远的点,并计算两者之间的距离distance_max;步骤4043、将距离distance_max等分成num_circle份;num_circle是用户根据实际需要和采集的图像确定的经验值;0<num_circle≤20,num_circle∈n;步骤4044、以的整数倍为半径画num_circle个圆,记下每一个圆与手部roi区域中的手部轮廓的交点个数,组成集合count;集合count={count[1],count[2],...count[i],count[n]};步骤4045、针对集合count中每个圆与手部roi区域中的手部轮廓的交点是否有效进行判断,如果有效,则将该交点统计,否则不予计数;由于圆周每经过一个手指,都会经过两次的像素值变化:像素的颜色从白色变为黑色和从黑色变为白色。为了减少或者避免出现检测错误的问题,本发明增加对是否计数的条件判断;当统计第i个圆与手部roi区域中的手部轮廓的交点个数时,当圆从白色区域进入黑色区域时,当前d个检测的像素点都在白色区域内,且后d个检测的像素点都在黑色区域内时,认为这是一次有效的颜色变化,从背景进入手指,count[i]的值加1;当圆从黑色区域进入白色区域时,在前d个像素点都在黑色区域内,后d个像素点都在白色区域内,认为这是一次有效的颜色改变,从手指黑色区域进入白色背景,count[i]的值加1。这里需要注意的是,并不是取的点越多越好,由于像素坐标是一个个的整型数,是离散型的。当取了过多的点时,可能连续两次检测的是同一点,这样就会出现计数偏多的情况,数出来的手指数自然也会跟着增加;当检测点过少,也就是说每次沿圆周检测的角度增量变得比较大,这样如果两根手指之间的角度很小,就有可能直接把中间的空隙给隔过去,造成漏检。为此本发明将检测点的个数和圆周的半径联系起来,将检测点个数设成圆周半径的正比例函数,这样就能使得不同半径的圆周上检测的单次角度增量都是一样的。步骤4046、找到判断后的集合count中计数最大的数count[i],计算手指个数为coun[t]i/2-1。当沿着圆周上的点进行逐个检测,如果检测到像素值发生变化,就将第i个圆的计数器count[i]增加1;这样检测到最后,去除这些圆中计数器中存储的最大的数max,由于检测的时候将手腕也算在里面,这样就多检测出了两个像素变化点;所以当前的手指数为:max/2-1(2)步骤五、根据预定义的手势映射,将手势识别结果映射为机器人的特定动作,并通过ros消息发送给机器人控制模块。步骤六、机器人控制模块控制机器人完成特定动作;机器人控制模块根据接收到的手势识别结果和预定义的手势类型和运动/操作的映射关系,控制机器人完成特定运动/操作任务。步骤七、用户根据机器人实际完成的特定动作、环境变化及任务需求,制定相应控制策略;步骤八、反馈模块根据相应控制策略选择继续当前的手势映射还是进行新的手势映射,重复上述步骤,将控制策略转化为特定手势类型。实施例一:以下是本发明基于rgbd摄像头深度图像的静态手势识别与机器人进行手势交互的实现过程,分以下步骤:首先,预定义手势种类和手势识别结果与机器人运动/操作类型的映射。本实例针对六足腿式移动操作机器人,其末端执行器装在机器人腿末端,机器人移动时,其末端执行器可作为腿进行行走,机器人停止时,其末端执行器可进行操作作业。如图5所示,预定义6种静态数字手势(单手0-5数字手势);预定义静态手势识别结果与机器人操作类型的映射,如表1所示。表1识别出的手指个数机器人操作动作0机器人末端执行器闭合1机器人末端执行器打开2机器人末端执行器顺时针旋转3机器人末端执行器逆时针旋转4抬起机器人末端执行器5放下机器人末端执行器然后,静态手势识别模块对采集的用户的骨骼点和深度图像进行手部区域分割和手势识别:步骤1):利用华硕体感摄像头xtionprolive的sdk提取手部中心点的深度值depthvalue,并将depthvalue作为基准值,向前向后各取2个单位的距离,则将深度值在[depthvalue-2,depthvalue+2]范围内的像素点的值都设置为0(黑色),将不在这个深度范围内的像素点的值都设置为255(白色),这样就提取出深度值在[depthvalue-2,depthvalue+2]范围内的物体,如图6所示。由于摄像头取景范围内,肯定会有其他物品与手部处于同一深度范围,这样直接设置深度范围极有可能将其他和手部具有相等深度的物品也误认为是手。由图6可知,边界区域有其他等深度的物品被当作手部给提取出来,同时,由于手臂竖直举起,手部和手臂几乎处于相同深度,所以,手臂整个都被误认为是手部而提取出来。步骤2):为了解决步骤1)的问题,以手部中心点为基准,向周围定义一个矩形框,只有当满足步骤1)条件的点处在这个矩形框之内时才将其认为是手部的点。如图7所示是手部区域的分割结果,可以看出这次分割效果有效去除了等深物体的影响,也有效地去除了手臂部分。同时由于本发明采用了roi区域,而在roi区域中几乎不可能会有其他物体和手部区域具有相同的深度,所以在手部区域框内不会出现噪点。而在手部范围框roi之外,将像素值统一设置为255(白色),所以在区域框之外也不可能会出现噪点。不够理想的地方只能是摄像头在手部边缘检测精度不够引起的微小噪点造成的手部边缘不够平滑。这点缺陷可以运用图像的降噪处理和二值图像的形态学操作将这种不平滑降到最小,对于本实例降噪采用中值滤波,形态学操作采用开操作。到现在为止,已经成功分割出手部区域,为后续手势识别奠定坚实基础。步骤3):分割出手部区域后,得到手部二值化图像,以手心为圆心,沿着不同的半径的圆周对分割出来的手部二值图像进行检测,检测到颜色变化点就可以认为有手指出现,具体如下:本发明利用数据采集卡提取到的手心位置,并以此位置为基准进行以下操作:提取手心位置,为后续手势识别奠定基础。由于华硕体感摄像头xtionprolive的sdk提取手部中心点始终在中指指根,而且提取出来的手部区域距离此基准点最远的点始终在手腕部分,所以本发明首先将手心点尽量向中间移动,将手部中心点沿着最远点和中心点所组成的向量,分别沿x方向和y方向移动一定的距离。移动距离通过以下方式确定:首先假设手势总是接近于垂直状态,只要偏离角度不是很大,都可以按照手心坐标移动方程,即公式(1),对手部中心点进行平移,即handx=handx+(x_max-handx)/bhandy=handy+(y_max-handy)/c(1)其中,b=10,c=6;这里之所以沿着两个方向的移动比例不同,是因为,本发明提取到的“手部中心点”并不是真的位于掌心,而是位于中指指根,当手部接近垂直状态时,在x方向上,“手部中心”偏离真正的手心很少,而在y方向则偏离比较多。所以本发明沿x方向移动比例很小,只占原来距离的十分之一,而在y方向移动比例较大,占原来距离的六分之一。这两个比例使本实例根据手部的几何关系得到,用户可以根据实际情况稍微改动。由于xtionprolive数据采集卡对手指边缘检测的不精确,分割出来的手部区域在手指边缘也会有不少凹凸不平的点。用这种方法直接检测手指时就有可能出现误检,因为如果手指边缘出现了细小的噪点,可能将其检测为一个手指,如图8所示,可以看出分割出的手势轮廓部分还有一些不平滑的地方。其中,以曲线标记出的噪点为例,如果圆恰好穿过此突起,根据上面的算法,计数器count[i]就会增加两个计数,因为圆在从白色区域进入这个黑色突起时记了一次数,然后在从黑色突起进入白色区域时又记了一次数。count[i]多记了两次,就等于多数出了一根手指。虽然本发明已经通过前面所说的降噪处理和形态学操作提升了分割出的手部区域的质量,但还是不能排除会有少量突起影响到手势识别结果。为了减少或者避免出现检测错误的问题,本发明增加了对是否计数的条件判断,即在圆是从白色区域进入黑色区域时,只有在前两个点都在白色区域内,后两个点都在黑色区域内,本发明才认为这是一次有效的颜色变化,从背景进入手指,count[i]增加。当圆是从黑色区域进入白色区域时,只有在前两个点都在黑色区域内,后两个点都在白色区域内,本发明才认为这是一次有效的颜色改变,从手指黑色区域进入白色背景,count[i]增加。本发明通过大量的实验找出检测的最佳单次角度增量,即在每个圆周上取到最佳数量的检测点,大大降低了对噪点的误检率,并且将所有的count[i]都控制在了合理的范围内,即count[i]<=12,得到了比较令人满意的结果。本实例将每一种手势都用10张图片来进行测试,手势识别结果如表2所示。表2由表2统计可得出总体识别率为92%。这个结果总体上还是能够达到要求的。但这种方法对手指个数为零时的识别率不高,只达到了60%,这是因为当我们的手握拳时,手指关节有可能会突出。造成检测上的错误,突出的部分被误认为是手指。一种改进方法是对判断条件限制更加苛刻一点,只有当判断点和手心的距离大于某个值时,才认为这个点是有效的点。这个距离可以是最大距离的正比例函数。在此本实例可以取为最大距离的三分之一。最后,将手势识别结果发送给机器人控制系统。机器人控制系统根据接收到如表1所示的手势识别结果和预定义的手势类型和机器人操作动作映射关系,控制机器人完成特定运动/操作任务。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1