一种手势判断方法及存储介质与流程

文档序号:16856641发布日期:2019-02-12 23:23阅读:227来源:国知局
一种手势判断方法及存储介质与流程

本发明涉及手势识别方法领域,尤其涉及一种手势判断方法及储存介质。



背景技术:

随着计算机技术的不断发展,人机之间的交互方式日新月异,人们利用自然的方式完成与计算机间的声音、手势、肢体动作的交互,而手势识别是人机交互的一种重要方式。手势识别在非接触式操作的方法中,可以越发自然地与计算机进行交互。而且涉及领域非常之广泛,如图像处理、模式识别、计算机视觉、工业控制、智能分析、智能控制等领域。手势识别相对于其他识别有着非常直观、自然、易于学习等众多优势,结合当今流行的深度学习,可实现智能化的人机交互体验。

传统的手势识别中,由于只对手势进行简单的识别,没有对周围环境进行过滤,因此周围环境一旦变得复杂,手势识别将变得不可靠,鲁棒性低。



技术实现要素:

为此,需要提供一种手势判断方法及储存介质,以解决现有技术中的手势识别方法在复杂环境下鲁棒性低的问题。

为实现上述目的,发明人提供了一种手势判断方法,包括以下步骤:

接收摄像设备采集的图像,并识别图像上所有的人体骨架;所述人体骨架包括手部;

判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;

若是,则跟踪相匹配的人体骨架的手部,并根据该手部的位置变化确定对应的手势信息;

根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令。

进一步地,在判断设备前是否存在数据库储存的人体骨架前,还包括:

接收摄像设备采集的图像,并识别图像上所有的人的人脸图像;

判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像;

若是,则根据数据库中储存的人脸图像与人体骨架信息的对应关系,确定该人脸图像对应的人体骨架信息。

进一步地,判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像,具体包括以下步骤:

计算采集到的人脸图像与数据库储存的人脸图像的相似值;

判断采集到的人脸图像与数据库储存的人脸图像的相似值是否大于50%。

进一步地,根据该手部的位置变化确定对应的手势信息,具体包括以下步骤:

判断该手部的位置变化是否划过启动点;

若是,标记该手部的位置变化划过的关键点;

判断该手部的位置变化是否划过结束点;

若是,则进入下一步骤。

进一步地,根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令,具体包括以下步骤:

解析出划过的关键点的所呈图形信息;

根据预设的所呈图形信息与操作指令的对应关系,执行该手势信息对应的操作指令。

发明人还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收摄像设备采集的图像,并识别图像上所有的人体骨架;所述人体骨架包括手部;

判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;

若是,则跟踪相匹配的人体骨架的手部,并根据该手部的位置变化确定对应的手势信息;

根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令。

进一步地,在判断设备前是否存在数据库储存的人体骨架前,所述计算机程序被处理器执行时实现以下步骤;

接收摄像设备采集的图像,并识别图像上所有的人的人脸图像;

判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像;

若是,则根据数据库中储存的人脸图像与人体骨架信息的对应关系,确定该人脸图像对应的人体骨架信息。

进一步地,判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像,所述计算机程序被处理器执行时实现以下步骤:

计算采集到的人脸图像与数据库储存的人脸图像的相似值;

判断采集到的人脸图像与数据库储存的人脸图像的相似值是否大于50%。

进一步地,根据该手部的位置变化确定对应的手势信息,所述计算机程序被处理器执行时实现以下步骤:

判断该手部的位置变化是否划过启动点;

若是,标记该手部的位置变化划过的关键点;

判断该手部的位置变化是否划过结束点;

若是,则进入下一步骤。

进一步地,根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令,所述计算机程序被处理器执行时实现以下步骤:

解析出划过的关键点的所呈图形信息;

根据预设的所呈图形信息与操作指令的对应关系,执行该手势信息对应的操作指令。

区别于现有技术,上述技术方案所述手势判断方法以及执行该方法所成的计算机程序的存储介质,所述方法包括以下步骤:接收摄像设备采集的图像,并识别图像上所有的人体骨架;所述人体骨架包括手部;判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;若是,则跟踪相匹配的人体骨架的手部,并根据该手部的位置变化确定对应的手势信息;根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令。这样的方法以及执行方法的存储介质,在手势识别前,先进行人体骨架的识别,可以过滤掉人体骨架以外的周围环境的信息,大大降低了周围环境对手势识别的干扰;将采集到的人体骨架信息与数据库内人体骨架信息的配对,还可以将采集到的诸多的人体骨架信息中未在数据库内储存有的人体骨架滤除,并保留数据库内储存有的人体骨架,本方法则可以只识别数据库内储存有的人体骨架,准确地正确地跟踪具有操作权限的人体骨架的手部,最后通过该人体骨架的手部的位置变化确定对应的手势信息,将身份识别或权限识别与手势识别结合提高了该方法和存储介质的稳定性及鲁棒性。

附图说明

图1为本发明一实施例涉及的手势判断方法的流程图;

图2为本发明一实施例涉及的haar特征结构图;

图3为本发明一实施例涉及的ym强分类器的级联过程图;

图4为本发明一实施例涉及的adaboost级联过程图;

图5为本发明一实施例涉及的神经元结构图;

图6为本发明一实施例涉及的具有隐含层的神经网络结构图;

图7为本发明一实施例涉及的全连接神经网络图;

图8为本发明一实施例涉及的局部连接神经网络图;

图9为本发明一实施例涉及的单卷积核图;

图10为本发明一实施例涉及的多卷积核图;

图11为本发明一实施例涉及的卷积神经网络池化过程图;

图12为本发明一实施例涉及的手势识别图;

图13为本发明一实施例涉及的手势匹配结果图。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1至图13,本发明提供了一种手势判断方法及存储介质。请参阅图1,在具体的实施例中,所述方法包括以下步骤:

进入步骤s104接收摄像设备采集的图像,并识别图像上所有的人体骨架;所述人体骨架包括手部;

然后进入步骤s105判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;

若是,则然后进入步骤s106跟踪相匹配的人体骨架的手部,并根据该手部的位置变化确定对应的手势信息;

最后进入步骤s107根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令。

在上述的方法中,所述摄像设备可以为rgb-d摄像机体感设备,该设备包含了红外深度摄像头、一个rgb摄像头、一组麦克风阵列,具备实时影像传输、语音传送,多人互动等众多功能。这款设备通过人体就可以达到体感识别与设备控制的效果,摆脱了以往的手柄控制与鼠标操纵,使操作者无需接触pc等设备就可达到“隔空控制”的效果。rgb-d摄像机通过中间的彩色镜头获取现实中的彩色数据,通过一对红外线镜头组,发射红外信号,由于红外线会对触碰到的物体产生反射,由红外接收镜头进行接收,通过内部对红外信号进行计算,转变成深度数据。

摄像设备可以用来分析rgb-d摄像机读取的数据信息,以及对场景进行分割,输出人体骨架信息。因此,采集图像的过程可以为:首先使用asus-xtion深度摄像机(rgb-d)进行图像数据采集,其次采用计算机视觉开源库opencv对采集出来的图像进一步合成,获取图像三维信息,然后提取操作者的人体骨架信息。这样可以将周围环境过滤掉,只提取出人体骨架信息,因此,在周围环境复杂的条件下可以剔除非人的信息。

rgb-d摄像机所在的位置作为笛卡尔坐标系的原点,规定设备的坐标系为:与设备所在平面平行的平面为x-z平面,水平方向为x轴,深度方向为z轴,竖直方向为y轴。因此,摄像设备可以采集到点的坐标p=(x,y,z),且其计算公式为:

其中dx,dy,rx,ry为常量,i为x轴的值,j为y轴的值,d深度值分别是:dx=321,dy=241,rx=ry=0.00173667,该值为分辨率为,640×480时的取值。这样的摄像设备还可以记录人体骨架的坐标,特别是人体骨架的手部的关节的坐标,因此,可以通过记录识别出的人体骨架的坐标,并将该坐标与数据库中存储的人体骨架的坐标进行匹配,则可以判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;以及可以通过获取人体骨架的手部关节的坐标变化确定对应的手势信息,实现对非手和非人的干扰的过滤。

在具体的实施例中,通过nite提供的用户跟踪器接口为usertracker。它提供访问nite的大部分算法。该对象提供场景分割、骨架、平面检测和姿态检测。用户跟踪器算法的第一个目的是查找特定场景中的所有活动用户。它分别跟踪每个发现的人,并提供了将他们的轮廓与背景分开的方式。一旦场景被分割,用户跟踪器也被用于启动骨骼跟踪和姿势检测算法。每个用户在被检测到时都会提供一个id。只要用户保留在框架中,用户id保持不变。如果用户离开摄像设备的视野,将丢失该用户的跟踪,则当再次检测到该用户时可能具有不同的id。通过创建usertracker,使用usertracker.readframe函数可以快速获取图像中的人体骨架信息,信息包括骨架的唯一id号和人体重要关节坐标:头、脖子、左手掌、右手掌、左肩、右肩、左手腕、右手腕、躯干、左脚趾、右脚趾、左膝盖、右膝盖。通过得到用户id号,通过使用usertracker的函数startskeletontracking选择是否对用户id所对应的骨架进行跟踪。

在进行手势识别之前,上述方法通过识别采集的图像中的人体骨架,以及判断图像内是否有用户本人(即数据库内存储有信息的人)的人体骨架,并跟踪该人体骨架的手部,达到了提高稳定性和鲁棒性的目的。为了更加准确地过滤非用户本人(即数据库内未存储有信息的人),请参阅图1,在进一步的实施例中,在判断设备前是否存在数据库储存的人体骨架前,还包括:

首先进入步骤s101接收摄像设备采集的图像,并识别图像上所有的人的人脸图像;

然后进入步骤s102判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像;

若是,则然后进入步骤s103根据数据库中储存的人脸图像与人体骨架信息的对应关系,确定该人脸图像对应的人体骨架信息。

识别图像上所有的人的人脸图像可以采取haar特征与adaboost进行级联形成强分类器的方法来定位采集的图像的人脸关键点。haar特征主要分成三类:线性特征、中心特征、边缘特征与对角线特征结合成特征模板。特征模板内部的两种不同的矩形分别是白色和黑色,通过预先定义模板的特征值为白色所在矩形的像素值减去黑色所在的矩形的像素值和。haar的特征值主要反应了图像的灰度变化情况,主要特征结构如图2所示。

haar特征个数计算公式:

w为图片的宽度,h为图片的高度,w为矩形特征的宽度,h为矩形特征的高度,表示矩形特征在水平方向与垂直方向的能放大的最大比例系数。单个haar特征所包含的信息非常少,所以通过采用adaboost算法将多个haar特征进行级联。adaboost算法允许设计者通过使用不断的加入新的“弱分类器”的方法,来使某个预定的分类器拥有相对小的误差率。在adaboost算法中,在每个训练的样本中都拥有一个不同的权重,用来表示它被某个分量的分类器选入到训练集中的概率,假如某个样本点已经被正确分类到对应分类点中,那么在构造下个训练集中。被选中的概率就会被降低;相反的,如果某个样本点没有被正确分类,下次被选中的概率就会变比前一次的概率来得高,强分类器的级联过程如图3所示。

分类器ym是由众多个弱分类进行组合,相当是由最后m个弱分类器来投票来决定分类结果,并且每一个弱分类器的话语权α不一样。adaboost算法实现的具体过程如下所示:

(1)将全部训练样例的权重初始化为,其中n是样例数

(2)form=1,2,3,...m:

a)对弱分类器ym进行训练,使得它的最小化权重的误差函数如公式(3)

b)接下来计算该弱分类器的h话语权α:

c)更新权重:

其中zm:

(3)得到最后的分类器:

可以看到前一个分类器改变权重w,同时组成最后的分类器,假如一个训练样例在前一个分类器中被误分,那么会导致它的权重加重,相应的被正确分类的样例权重就会因此降低。

最后将重多分类好的弱分类器进行级联形成强分类器其公式:

为了提高人脸检测的识别的速度和精度,最后得到的分类器还需要使用多个强分类器进行级联,在级联分类系统中,将每张输入图片顺序通过每个强分类器,前面的强分类器相对简单,所以它包含的弱分类器也相对较少,而后面的强分类器逐级越来越复杂,只有通过前面的强分类检测为正确的图片后才能进入到后面的强分类器进行检测,比较靠前的几级分类器可以过滤掉绝大部分的不符合的图像,只有通过了所有强分类器检测的图片区域才算是有效人脸区域,如图4所示。

可以通过卷积神经网络对人脸进行识别,判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像,过滤掉非用户本人(即数据库内未存储有信息的人)的人体骨架,进一步地保证手势识别的正确性,众多的神经元通过结合形成了神经网络,神经网络的每个神经单元如图5所示。

对应的公式为:

x为向量,w为向量x所对应的权重,b为常数。该单元也称为logistic回归模型。多个单元结合起来,形成具有分层结构的模式时,就成为了神经网络模型。

图6为展示具有隐含层的神经网络结构,根据公式(9)可推出图6中神经元对应的公式为:

比较类似的,可以拓展到有2,3,4,5,6,…个隐含层。神经网络的训练方式和logistic近似,不过因为其多层性,还需要操纵链式求导法则对隐含层的节点进行求导,这就是反向传播。

cnn可以降低参数数目,通过局部感知野,人对外界的认识,是先从局部区域再到全局区域的,但是图像的空间间的联系也使得局部区域的像素联系较为紧密,而距离较远的区域,像素间的相关性则相对较弱。每个神经元不需要对全局图像的信息进行感知,只需要对局部区域中的信息进行感知,然后在更高层的网络中将局部信息综合起来便能得到全局的信息。神经网络中网络部分的连通思想也是由生物中视觉系统结构受启发的,如图7全连接神经网络图所示,及如图8局部连接神经网络图所示。

在图7中,如果每个神经元只和10×10个像素相互连接,权重数据个数为1000000×100个参数,可以将数据减少到原本千分之一。而那10×10个像素值,所对应10×10个参数,相当于进行卷积操作。但这样的话,仍然使参数过多,所以使用第二种方式,即使用权值共享。

如果上面的参数只有100个时,表示只有1个100×100的卷积核,明显,特征提取是不充分,可以通过添加多个卷积核,例如使用32个卷积核,就能学习32种不同的特征。在有多个卷积核时,如图9和图10所示。

在图9中,将一张彩色图像根据r、g、b三个通道拆分成三张图,不同颜色通道的图像对应不同的卷积核。每个卷积核都会把图像合成为另一幅图像。

为了描述大的图像,就是对不同位置的特征点进行聚合统计,这些既要统计特征不但具有低维度(相比使用所有提取得到的特征),而且还会改善结果,不容易欠拟合或者过拟合。这种聚合的操作称为池化(pooling),池化过程如图11所示,最后通过全连接层进行前向传播,匹配对应的标签。

在进一步的实施例中,判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像,具体包括以下步骤:

计算采集到的人脸图像与数据库储存的人脸图像的相似值;

判断采集到的人脸图像与数据库储存的人脸图像的相似值是否大于50%。

在进一步的实施例中,根据该手部的位置变化确定对应的手势信息,具体包括以下步骤:

判断该手部的位置变化是否划过启动点;

若是,标记该手部的位置变化划过的关键点;

判断该手部的位置变化是否划过结束点;

若是,则进入下一步骤。

本上述方法中,手势识别采用的是关键点识别,通过在空间中标记多个关键点,在手部划过关键点的同时,标记该点,待动作完成后,对多个关键点进行解析,并根据预设手势来判断操作者想表达的想法,这样的做的好处是精度高,相对于传统的dtw(动态规划算法)来说算法相对简单,不需要复杂的计算,并且组合自由,不需要训练样本,相对于静态手势识别,能组合成各式各样的手势动作。使操作者能够在短时间内快速适应本系统。关键点描述如图12所示,图中的点为预先设定的关键点,关键点的颜色可预先设置成蓝色,利用手部经过关键点后,关键点会从蓝色点标记成红色点,通过判断关键点的颜色,来判断手势,最后得到手势动作。

在进一步的实施例中,根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令,具体包括以下步骤:

解析出划过的关键点的所呈图形信息;

根据预设的所呈图形信息与操作指令的对应关系,执行该手势信息对应的操作指令。

确定出为用户本人(即数据库内存储有信息的人)后,开始跟踪此人体骨架获取左右手的坐标信息,并将坐标转换从nite内的坐标系统转换为rgb-d摄像机的坐标系统。防止在计算坐标的过程中出现坐标系混乱。如图13所示,以坐标为31的点作为识别启动点,坐标32的点作为结束点均由右手控制,其余的六个点由左手控制,根据左手滑过的点的个数顺序的不同,来识别手势,图13中,手依次划过点11、点21、点22、点23识别的结果为7。如图13所示,依次划过点11、点12、点13、点23后,右手触摸点32,识别出的信息为l。

在具体的实施例中,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收摄像设备采集的图像,并识别图像上所有的人体骨架;所述人体骨架包括手部;

判断识别出的人体骨架信息是否与数据库中存储的人体骨架信息相匹配;

若是,则跟踪相匹配的人体骨架的手部,并根据该手部的位置变化确定对应的手势信息;

根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令。

在进一步的实施例中,在判断设备前是否存在数据库储存的人体骨架前,所述计算机程序被处理器执行时实现以下步骤;

接收摄像设备采集的图像,并识别图像上所有的人的人脸图像;

判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像;

若是,则根据数据库中储存的人脸图像与人体骨架信息的对应关系,确定该人脸图像对应的人体骨架信息。

在进一步的实施例中,判断识别出数据库中是否存储有与采集到的人脸图像相匹配的人脸图像,所述计算机程序被处理器执行时实现以下步骤:

计算采集到的人脸图像与数据库储存的人脸图像的相似值;

判断采集到的人脸图像与数据库储存的人脸图像的相似值是否大于50%。

在进一步的实施例中,根据该手部的位置变化确定对应的手势信息,所述计算机程序被处理器执行时实现以下步骤:

判断该手部的位置变化是否划过启动点;

若是,标记该手部的位置变化划过的关键点;

判断该手部的位置变化是否划过结束点;

若是,则进入下一步骤。

在进一步的实施例中,根据预设的手势信息和操作指令的对应关系,执行该手势信息对应的操作指令,所述计算机程序被处理器执行时实现以下步骤:

解析出划过的关键点的所呈图形信息;

根据预设的所呈图形信息与操作指令的对应关系,执行该手势信息对应的操作指令。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1