一种手部姿态检测方法及装置与流程

文档序号:14777961发布日期:2018-06-26 07:54阅读:209来源:国知局

本发明涉及数据处理领域,具体而言,涉及一种手部姿态检测方法及装置。



背景技术:

人与计算机的交互活动已经成为人们日常生活的一个重要组成部分,特别是近几年,随着计算机技术的迅猛发展,研究符合人际交流习惯的新颖人机交互技术成为热点,特别是手势识别。手势是一种自然、直观、易于学习的人机交互手段,以人手直接作为计算机的输入设备,用户可以简单地定义一种适当的手势来对周围的机器进行控制。以人手直接作为输入手段与其它输入方法相比较,具有自然性、简洁性和丰富性、直接性的特点。但是目前无法做到很好的跟踪识别各种手部姿态,例如手掌,拳头,部分手指等等,因此,无法使人机交互保持很好的连续性。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种手部姿态检测方法及装置。

第一方面,本发明实施例提供一种手部姿态检测方法,所述方法包括:基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象;计算所述手部对象在所述当前帧的下一帧中的预测位置;根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果;根据所述匹配结果,确定所述手部对象在所述下一帧中的姿态。

第二方面,本发明实施例提供一种部姿态检测装置,所述装置包括:检测模块,用于基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象;计算模块,用于计算所述手部对象在所述当前帧的下一帧中的预测位置;匹配模块,用于根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果;确定模块,用于根据所述匹配结果,确定所述手部对象在所述下一帧中的姿态。

与现有技术相比,本发明实施例提供的一种手部姿态检测方法及装置,通过基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象;计算所述手部对象在所述当前帧的下一帧中的预测位置;根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果;根据所述匹配结果,确定所述手部对象的姿态,这种方式,能够正确的跟踪识别出手部对象的姿态,保证了人机交互的连续性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例提供的服务器的结构框图。

图2是本发明实施例提供的一种手部姿态检测方法的流程图。

图3是本发明实施例提供的一种手部姿态检测方法中步骤S210的部分流程图。

图4是本发明实施例提供的一种手部姿态检测方法中步骤S220的部分流程图。

图5是本发明实施例提供的一种手部姿态检测方法中步骤S230的部分流程图。

图6是本发明实施例提供的一种手部姿态检测方法中步骤S240的部分流程图。

图7是本发明实施例提供的一种手部姿态检测方法中步骤S250的部分流程图。

图8是本发明实施例提供的一种手部姿态检测方法中步骤S260的部分流程图。

图9是本发明实施例提供的一种手部姿态检测装置的功能模块示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或时间先后。

如图1所示,是服务器100的方框示意图。所述服务器100包括存储器101、处理器102以及网络模块103。

存储器101可用于存储软件程序以及模块,如本发明实施例中的手部姿态检测方法及装置对应的程序指令/模块,处理器102通过运行存储在存储器101内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本发明实施例中的手部姿态检测方法。存储器101可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。进一步地,上述存储器101内的软件程序以及模块还可包括:操作系统121以及服务模块122。其中操作系统121,例如可为LINUX、UNIX、WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务模块122运行在操作系统121的基础上,并通过操作系统121的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。也就是说,服务模块122用于向客户端提供网络服务。

网络模块103用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。

可以理解,图1所示的结构仅为示意,所述服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。另外,本发明实施例中的服务器还可以包括多个具体不同功能的服务器。

图2示出了本发明实施例提供的一种手部姿态检测方法的流程图,请参阅图2,本实施例描述的是服务器的处理流程,所述方法包括:

步骤S210,基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象。

请参阅图3,作为一种实施方式,所述步骤S210可以包括:

步骤S211,根据范围约束条件,确定所述当前帧的检测区域。

可以理解的,正常人的手的活动范围是有限的,当确定了人躯干的位置,则正常人的手的运动范围是受限的,因此可以对视频图像的检测区域进行约束,即设置一个范围约束条件,排除当前帧中手不可能出现的区域,以便节省检测算法的计算量。

步骤S212,基于肤色匹配算法,从所述检测区域中检测出候选人手区域。

可以理解的是,对于不同人种,其肤色信息不同,例如,黑人,其对应的肤色信息为黑色,黄种人,则对应的肤色信息为黄色。因此,可以基于不同肤色信息,基于肤色匹配算法,从所述检测区域中检测出候选人手区域。其中,肤色匹配算法的实施方式很多,此处不再赘述。

步骤S213,判断所述候选人手区域是否满足所述尺寸条件。

一般情况下,人机之间的距离是比较固定的,考虑到人胳膊沿摄像头中心轴方向的前后伸展,可以大致确定人手对象与摄像头的距离。距离不同采集的画面中人手的尺寸是变化的,可以通过样本学习,把人手的轮廓尺寸定义在一定范围内,即可以设置一个尺寸条件,在检测过程中,将大于设置的手的轮廓范围面积的候选人手区域直接排除。

步骤S214,若满足,则对所述候选人手区域进行边缘检测,获得第一边缘点集合。

由于人手的纹理信息应该是非常丰富的,因此,可以基于纹理信息,采用边缘检测算法用来进一步检测所述候选人手区域是否为手部对象。其中,边缘检测算法可以是Sobel边缘检测算法。

步骤S215,若所述第一边缘点集合中边缘点的数目及所述候选人手区域的大小满足预设条件,则将所述候选人手区域作为手部对象。

假设Wc与Hc为候选人手区域的宽与长,该候选人手区域经过Sobel边缘检测算法后,确定了每个像素点是否是边缘,设边缘点的数目为NumE,则计算边缘点的百分比PerE:

若PerE小于阈值T1,代表该候选人手区域过于匀质,则不认为该候选人手区域为手部对象,若PerE大于或等于阈值T1。其中,T1为通过样本学习得到的经验值。

步骤S220,计算所述手部对象在所述当前帧的下一帧中的预测位置。

作为一种实施方式,可以采用卡尔曼滤波算法,计算所述手部对象在所述下一帧中的预测位置。

进一步的,请参阅图4,步骤S220可以包括:

步骤S221,根据所述手部对象在所述当前帧的前两帧中的第一坐标,在所述当前帧中的前一帧的第二坐标,以及在所述当前帧中的第三坐标,计算所述手部对象的移动加速度。

所述第一坐标为,所述手部对象在所述当前帧的前两帧中的中心点坐标。

所述第二坐标为,所述手部对象在所述当前帧中的前一帧的中心点坐标。

所述第三坐标为,所述手部对象在所述当前帧的中心点坐标。

设在当前帧中的手部对象的轮廓方框的位置坐标为:左上(x3a,y3a),左下(x3b,y3b),右上(x3c,y3c),右下(x3d,y3d);则第三坐标(x3,y3)可以由下式计算出来:

x3=(x3c-x3a)/2;y3=(y3b-y3a)/2

当摄像头保持正常的采集,视频帧的间隔固定时,所述差值与手部速度是成正比的,假设第一坐标为(x1,y1),第二坐标为(x2,y2),则将(x2,y2)与(x1,y1)的差值作为手部对象从第一坐标移动到第二坐标的初始速度V2→1,将(x3,y3)与(x2,y2)的差值作为手部对象从第二坐标移动到第三坐标的初始速度V3→2。

由于人手运动轨迹具有多样性,需要进一步考虑前后两帧中手部对象的夹角β,如果夹角β非常小,则手部对象运动的轨迹可以看做为直线,但当夹角β比较大时,手部对象的轨迹就有可能是凸或凹的弧线。这时,需要对手部对象的初始速度V(V2→1或V3→2)添加一个加权系数k,其中,

因此,最终确定的手部速度为:

而移动加速度可以根据下述公式计算:

步骤S223,根据所述所述移动加速度,所述手部速度,及所述第三坐标,确定所述手部对象在所述下一帧中的预测位置。

假设所述手部对象在所述下一帧中的预测位置,即中心点位置为(x4,y4),则可以根据下述公式计算(x4,y4):

步骤S230,根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果。

作为一种实施方式,请参阅图5,步骤S230可以包括:

步骤S231,以所述手部对象在下一帧中的预测位置为中心点,以预设长度为半径,采用shift算法进行肤色匹配,获取肤色匹配像素点总数。

当获得所述手部对象在下一帧中的预测位置时,需要进一步精确定位手部对象的位置,以所述手部对象在下一帧中的预测位置为中心点,基于shift算法做半径为R的肤色匹配,R为所述当前帧中所述手部对象区域的长度的一半。当shift算法收敛时,可以获取肤色匹配像素点总数P1。

步骤S232,将所述肤色匹配像素点总数除以所述当前帧中所述手部对象区域的大小的值,作为所述匹配结果。

设当前帧中手部对象的位置坐标为:左上(x1lt,y1lt),左下(x1lb,y1lb),右上(x1rt,y1rt),右下(x1rb,y1rb),则手部对象的宽和高为:W1=x1rt-x1lt,H1=y1lt-y1lb,面积为A1=W1×H1,则匹配结果为:

Result=P1/A1 (公式-6)

其中,P1为肤色匹配像素点总数。

步骤S240,根据所述匹配结果,确定所述手部对象在所述下一帧中的姿态。

作为一种实施方式,请参阅图6,步骤S240可以包括:

步骤S241,若所述匹配结果位于第一区间,则所述手部对象的姿态为握拳或弯曲状态。

作为一种实施方式,若Result在区间[0.4,0.6]之内,则所述手部对象的姿态为握拳或弯曲状态。

进一步的,请参阅图7,作为一种实施方式,若所述匹配结果位于第一区间,所述方法还包括步骤S250:

步骤S251,根据所述手部对象在所述下一帧中的所述预测位置,进行边缘检测,获得第二边缘点集合。

假设所述手部对象在所述下一帧中的所述预测位置所在的区域的宽为W,长为H,对所述区域进行边缘检测后,其中,边缘检测算法可以是Sobel边缘检测,获得第二边缘点集合。

步骤S252,根据所述第一边缘点集合,及所述第二边缘点集合,计算纹理差异度。

将步骤S231中shift算法收敛后的中心,作为所述下一帧中手部对象区域的中心。而通过步骤S221已经计算出所述当前帧中手部对象区域的中心,将两个中心点重合,获得手部对象分别在当前帧与下一帧中的交集区域。

根据下述公式计算纹理差异度D:

D=(E1(x,y)-E2(x,y))2,(x,y)∈O

其中E1(x,y)代表当前帧人手候选区域像素点是否是边缘,E2(x,y)代表前一帧人手区域像素点是否是边缘。O是上述两个区域中心点重合的交集区域。

步骤S253,若所述纹理差异度位于第三区间,则所述手部对象的姿态为手腕翻转状态。

步骤S242,若所述匹配结果位于第二区间,则所述手部对象的姿态为手指张开状态。

作为一种实施方式,若Result大于0.6,则所述手部对象的姿态为手指张开状态。

作为一种实施方式,请参阅图8,所述方法还包括步骤S260:

步骤S261,若所述匹配结果位于第四区间,根据预设规则,重新获取所述手部对象在所述下一帧中的预测位置。

作为一种实施方式,可以从预存储的中心点列表中,查找时间距离当前帧最近,且距离所述预测位置最近的所述手部对象中心点的位置,作为重新获取的所述手部对象在所述下一帧中的预测位置,所述中心点列表中包括按照时间顺序存储的所述视频流的每帧中手部对象中心点的位置。

步骤S262,以重新获取的所述预测位置为中心点,以预设长度为半径,采用shift算法进行肤色匹配,重新获取肤色匹配像素点总数。

步骤S263,将重新获取的所述肤色匹配像素点总数除以所述当前帧中手部对象区域的大小的值,作为匹配结果。

进一步的,若匹配结果仍然位于第四区间,可以从预存储的中心点列表中,查找时间距离当前帧最近,且距离所述预测位置第二近的所述手部对象中心点的位置,作为重新获取的所述手部对象在所述下一帧中的预测位置。

本发明实施例提供的一种手部姿态检测方法,通过基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象;计算所述手部对象在所述当前帧的下一帧中的预测位置;根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果;根据所述匹配结果,确定所述手部对象的姿态,这种方式,能够正确的跟踪识别出手部对象的姿态,保证了人机交互的连续性。

请参阅图9,是本发明实施例提供的一种手部姿态检测装置300的功能模块示意图。所述手部姿态检测装置300运行于服务器200中。所述手部姿态检测装置300包括:检测模块310、计算模块320、匹配模块330、确定模块340。

检测模块310,用于基于肤色信息、纹理信息、及尺寸条件,从视频流中的当前帧中确定手部对象。

计算模块320,用于计算所述手部对象在所述当前帧的下一帧中的预测位置。

匹配模块330,用于根据所述手部对象在所述下一帧中的所述预测位置,进行肤色匹配,获得匹配结果。

确定模块340,用于根据所述匹配结果,确定所述手部对象在所述下一帧中的姿态。

以上各模块可以是由软件代码实现,也同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的手部姿态检测装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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