手势识别方法及装置、电子设备、计算机可读存储介质与流程

文档序号:16504730发布日期:2019-01-05 08:58阅读:152来源:国知局
手势识别方法及装置、电子设备、计算机可读存储介质与流程

本发明涉及图像处理技术领域,尤其涉及一种手势识别方法及装置、电子设备、计算机可读存储介质。



背景技术:

目前,相关技术通过对整个图像进行遍历检测,可以识别出用户的手势;然后,基于手势进行相应的控制操作。但是,遍历整个图像的计算量较大,尤其是识别手势需要遍历多帧图像的情况下使计算量成倍增加,导致识别出用户手势需要一定的时间,降低手势识别的实时性。另外,在遍历整个图像时,由于存在与手掌类似的物体,使手势识别出现误检测,进一步降低手势识别的准确度。



技术实现要素:

本发明提供一种手势识别方法及装置、电子设备、计算机可读存储介质,以解决相关技术中方案需要遍历整个图像进行手势识别,计算量大引起地实时性差的问题,以及误检率高的问题。

根据本发明实施例的第一方面,提供一种手势识别方法,包括:

基于获取的深度图像确定手掌连通域;

确定所述手掌连通域对应追踪框;

基于所述追踪框的位置,在待识别图像对应追踪框的区域内识别手势。

可选地,基于获取的深度图像确定手掌连通域包括:

基于所述深度图像确定人体连通域;

基于深度值细分所述人体连通域,得到多个子连通域;

确定所述多个子连通域中深度值最小的子连通域作为手掌连通域。

可选地,基于所述深度图像确定人体连通域包括:

获取所述深度图像中m个连通域;m为正整数

滤除所述深度值大于第一设定距离的连通域,得到n个连通域;n为小于或等于m的正整数;

针对所述n个连通域中每个连通域,基于所述连通域中各像素点的深度值和高度值计算所述连通域的实际面积,得到所述实际面积超过第一面积阈值且小于第二面积阈值的p个连通域;p为小于或等于n的正整数;

将所述p个连通域输入到预先设置的分类器,得到人体连通域。

可选地,所述分类器利用标准化方法处理后的标准样本图像训练得到;

所述标准化方法是指将目标对象与深度摄像头不同距离时所拍摄的样本图像转化为标准样本图像;所述标准样本图像为距离深度摄像头两米处的人体信息的矩阵,或其他负样本转化到两米处的信息矩阵。

可选地,基于所述连通域中各像素点的深度值和高度值计算所述连通域的实际面积包括:

基于预先设置的换算公式,分别获取各像素点的深度值和高度值对应的深度实际值和高度实际值;

基于所述深度实际值和所述高度实际值得到所述像素点的实际面积;

基于预先设置的面积公式,根据所述连通域中各像素点的实际面积确定所述连通域的实际面积。

可选地,基于深度值细分所述人体连通域,得到多个子连通域包括:

从所述人体连通域内选取基准像素点;

获取与所述基准像素点相邻且深度值差值不超过第一差值的像素点,则所述像素点与所述基准像素点属于同一子连通域;

以获取的像素点作为新的基准像素点,继续获取与所述新的基准像素点属于同一子连通域的像素点;迭代本步骤,直到与新的基准像素点相邻的像素点全部不属于同一子连通域为止,得到子连通域。

可选地,确定所述多个子连通域中深度值最小的子连通域作为手掌连通域之前,所述方法还包括:

获取所述深度图像中人体朝向;

若所述人体朝向表示人体未正对用于采集待识别图像的深度摄像头,则调整所述多个子连通域中各子连通域的深度值。

可选地,确定所述手掌连通域对应追踪框包括:

获取所述手掌连通域的最小外接矩形框,将所述最小外接矩形框作为所述手掌连通域对应追踪框。

可选地,基于所述追踪框的位置,在待识别图像对应追踪框的区域内识别手势包括:

获取与当前的待识别图像具有映射关系的深度图像对应的人体连通域;

在所述追踪框和所述人体连通域的重叠区域内识别手势。

可选地,在所述追踪框和所述人体连通域的重叠区域内识别手势包括:

获取所述重叠区域内的目标对象的第一深度值,以及上一帧待识别图像对应重叠区域内的目标对象的第二深度值;

若所述第一深度值与所述第二深度值两者差值小于差值阈值,则识别手势;否则切换到其他重叠区域识别手势。

根据本发明实施例的第二方面,提供一种手势识别装置,包括:

连通域确定模块,用于基于获取的深度图像确定手掌连通域;

追踪框确定模块,用于确定所述手掌连通域对应追踪框;

手势识别模块,用于基于所述追踪框的位置,在待识别图像对应追踪框的区域内识别手势。

根据本发明实施例的第三方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机指令,其中,所述处理器执行所述计算机指令时实现如第一方面所述的方法的步骤。

根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如第一方面所述的方法的步骤。

可见,本实施例中通过获取手掌连通域及其对应的追踪框,然后在待识别图像对应追踪框的区域内识别手势。这样,无需遍历整个待识别图像,仅遍历追踪框内图像,从而缩小手势查找的范围,降低数据处理量以及提高手势识别的实时性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本发明实施例示出的一种手势识别方法的流程示意图;

图2是本发明实施例示出的一种获取手掌连通域的流程示意图;

图3是本发明实施例示出的一种获取人体连通域的流程示意图;

图4是本发明实施例示出的人体连通域的场景示意图图;

图5是本发明实施例示出的一种细分人体连通域获得多个子连通域的流程示意图;

图6是本发明实施例示出的一种细分人体连通域获得多个子连通域的结果示意图;

图7是本发明实施例示出的人体连通域对应的多个子连通域的结果示意图;

图8是本发明实施例示出的一种调整子连通域的深度值的流程示意图;

图9是本发明实施例示出的另一种手势识别方法的流程示意图;

图10(a)是本发明实施例示出的深度图像对应的人体连通域的效果示意图;

图10(b)是本发明实施例示出的待识别图像对应的追踪框的效果示意图;

图11是本发明实施例示出的另一种手势识别方法的流程示意图;

图12是本发明实施例示出的一种手势识别装置的框图;

图13是本发明实施例示出的一种电子设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

目前,相关技术通过对整个图像进行遍历检测,可以识别出用户的手势;然后,基于手势进行相应的控制操作。但是,遍历整个图像的计算量较大,尤其是识别手势需要遍历多帧图像的情况下使计算量成倍增加,导致识别出用户手势需要一定的时间,降低手势识别的实时性。另外,在遍历整个图像时,由于存在与手掌类似的物体,使手势识别出现误检测,进一步降低手势识别的准确度。

为此,本发明实施例提供了一种手势识别方法,该手势识别方法基于深度图像和与深度图像具有映射关系的待识别图像实现,待识别图像可以为彩色图像或者灰度图像。其中深度图像和待识别图像可以由深度摄像头拍摄,每次拍摄一帧图像并由图像拆分出深度图像和待识别图像,即一帧图像拆分为两帧图像;当然,深度摄像头还可以同时拍摄一组深度图像和待识别图像,即本实施例中对获取深度图像和待识别图像的方式不作限定。

该手势识别方法的思路为,基于一帧深度图像,先获取深度图像中人体连通域,然后在人体连通域的基础上获取该帧深度图像的手掌连通域以及手掌连通域对应的追踪框,这样可以实现人体定位以及手掌定位。之后,在待识别图像中对应于追踪框的区域内追踪手势以及识别手势。

可见,本实施例中通过获取手掌连通域及其对应的追踪框,然后在待识别图像对应追踪框的区域内识别手势。在追踪手势或者识别手势的过程中,无需遍历整个待识别图像,仅遍历追踪框对应区域的图像即可,这样可以缩小遍历范围,从而可以降低数据处理量以及提高手势识别的实时性。

图1是本发明实施例示出的一种手势识别方法的流程示意图,可以应用于服务器、pc机或者终端等电子设备。为方便描述,后续以电子设备为执行主体描述该手势识别方法。参见图1,一种手势识别方法,包括步骤101~步骤103,其中:

101,基于获取的深度图像确定手掌连通域。

在一实施例中,电子设备上可以设置深度摄像头,由于深度摄像头采集深度图像。在另一实施例中,电子设备与具有深度摄像头的设备连接,这样电子设备可以接收到深度图像。

本实施例中,参见图2,电子设备可以根据深度图像确定手掌连通域,包括步骤201~步骤203:

201,基于所述深度图像确定人体连通域。

参见图3,电子设备可以利用相关技术中的连通域获取算法,得到深度图像中的m个连通域,m为正整数(对应步骤301)。其中连通域获取算法可以采用基于行程标识的算法、基于轮廓标记的算法,例如two-pass算法或者seed-filling种子填充法。技术人员可以根据具体场景进行选择合适的连通域获取算法,在此不作限定。

实际应用中,由于深度摄像头有一定的拍摄范围,以及目标对象(即用户)距离深度摄像头过远时,用户的手掌会非常小,因此,本实施例中将深度值大于第一设定距离(例如3米)的连通域滤除,从而可以得到n个连通域,n为小于或等于m的正整数(对应步骤302)。

然后,电子设备针对n个连通域中的每个连通域,基于各像素点的深度值和高度值计算各连通域的面积,可以得到实际面积超过第一面积阈值且小于第二面积阈值的p个连通域;p为小于或等于n的正整数(对应步骤303)。

其中,各连通域的实际面积可以利用连通域的实际宽度和实际高度计算得到,其中实际宽度和实际高度可以采用预先设置的换算公式实现:

各连通域的实际面积可以采用以下计算公式得到:

area=height(real)×width(real);(3)

其中,depth表示联通域所处位置的深度值;ratio表示预先设置用于换算为实际距离的参数,与深度摄像头的规格相关;width(pixel)和width(real)分别表示联通域的宽度所占的像素数以及现实世界中的真实宽度,单位mm。height(pixel)和height(real)分别表示联通域的高度所占的像素数以及现实世界中的真实高度,单位mm。

鉴于多个连通域是不规则的,且不同位置的深度值并不一定相等,因此,本实施例中将公式(1)~公式(3)看作为一个像素(宽为1高为1)在现实世界中的面积。由于连通域由n个像素点组成,从而各连通域的实际面积采用以及预先设置的换算公式实现:

其中,1*1表示一个像素点所占的像素数,depth(n)表示像素点n的深度值。

之后,将p个连通域分别输入到预先设置的分类器,由分类器对各连通域进行分类,从而得到人体连通域(对应步骤304)。

本实施例中,分类器预先训练好,其中训练样本是利用标准化方法处理后的标准样本图像训练得到。其中标准样本图像包括不同年龄性别的用户的前景作为正样本,用户的年龄性别不同是为让人体的形状和大小多样化。不考虑距离的多样性,本实施例中,可以通过标准化方法将所有样本处理为能够反映人体实际大小的矩阵,标准化方法如下:

无论拍摄样本图像时用户和深度摄像头之间距离的远近,都可以通过该方法标准化将所拍摄的图像转化为标准样本图像,其中标准样本图像为距离深度摄像头两米处的人体信息的矩阵,或其他负样本转化到两米处的信息矩阵,从而可以去除距离多样性造成的影响。

针对正负样本图像,提取正样本图像的外接矩形中心点,且以该中心点为中心,边长为2米的矩形框截取图像。其中,边长为2米时可以折算出矩形框所占像素的个数,负样本做同样的标准化处理。然后,通过随机森林,卷积神经网络等传统方法训练出一个具有二分类功能分类器,通过该分类器即可分辨一个待选联通域是否是人体区域。

在一实施例中,利用步骤1和图3的步骤可以得到图4所示的人体连通域。

202,基于深度值细分所述人体连通域,得到多个子连通域。

在确定了人体连通域后,需要追踪人体手势,可以采用以下方式:

方式一,以上一帧深度图像确定的人体连通域为基础,在本帧以及后续多帧待识别图像中人体连通域对应的区域进行手势追踪,从而得到人体手势。由于人体连通域对应区域的面积远小于整个待识别图像的面积,可以降低识别手势过程中的数据计算量。

方式二,由于景深图像中每个物体对应一定的深度值,因此本实施例中可以设置一个差值阈值即第一差值来判断两个像素点是否属于同一个连通域,例如第一差值可以为50mm。

参见图5,首先,从人体连通域内选取基准像素点(对应步骤501),选取方式可以为随机选取,还可以依次选取人体连通域内不属于任意一个子连通域的像素点。然后,获取与基准像素点相邻且深度值差值不超过第一差值(例如50mm)的像素点,则像素点与基准像素点属于同一子连通域(对应步骤502),否则不属于同一子连通域。

然后,更新基准像素点,以获取的(与之前基准像素点属于同一子连通域的)像素点作为新的基准像素点,根据步骤502的方式获取与新的基准像素点属于同一子连通域的像素点。迭代更新基准像素点的步骤,直到与新的其次像素点相邻的像素点全部不属于同一子连通域为止,得到子连通域(对应步骤503)。在遍历完人体连通域后,可以得到如图7所示的多个子连通域。

方式三,参见图6,首先,从人体连通域内选取基准像素点(对应步骤601)。然后,获取与基准像素点相邻的像素点以及各像素点的深度值(对应步骤602)。之后,获取相邻像素点和基准像素点两者的深度值差值(对应步骤603),并判断深度值差值是否不超过第一差值(对应步骤604),若否则转到步骤605,即确定基准像素点是子连通域的边界像素点,或者得到子连通域。若是则转到步骤606,即相邻像素点与基准像素点属于同一子连通域。然后将获取的像素点作为新的基准像素点,继续执行步骤602。最终可以得到与新的基准像素点相邻的像素点的深度值差值全部超过第一差值,得到一个子连通域。在遍历完人体连通域后,可以得到如图7所示的多个子连通域。

203,确定所述多个子连通域中深度值最小的子连通域作为手掌连通域。

由于人体连通域确定为人体,结合用户在作手势的场景,手掌应该位于人体的最前方,在用户正对深度摄像头的情况下,手掌与深度摄像头之间的距离最近。换言之,本实施例中可以确定出多个子连通域中距离镜头最近(即深度值最小)的子连通域作为手掌连通域。

实际应用中,用户在作出手势时,其身体并非正对深度摄像头而是斜对深度摄像头,导致身体与镜头存在夹角,该情况下,手掌所在子连通域有可能不是最近的子连通域。因此,本实施例中,参见图8,在确定手掌连通域之前,可以获取所述深度图像中人体朝向(对应步骤801),然后判断人体朝向是否表示人体深度摄像头。若是,则直接确定深度值最小的子连通域为手掌连通域,若否,则调整多个子连通域中各子连通域的深度值(对应步骤802)。

其中,调整算法可以采用相关技术中用于调整连通域的深度值的算法,例如抠取出人体连通域对应的图像,对图像进行姿态识别,然后将人体姿态调整为正对深度摄像头。在调整为正对深度摄像头之后可以得到各子连通域的深度值。当然,还可以根据人体与镜头的夹角,利用数学方式计算出各子连通域与镜头的距离。技术人员可以根据具体场景进行选择,在此不作限定。

102,确定所述手掌连通域对应追踪框。

在一实施例中,可以根据手掌连通域确定其对应的追踪框,例如获取该手掌连通域的最小外接矩形框,并将最小外接矩形框作为手掌连通域对应的追踪框。在另一实施例中,还可以以手掌连通域的中心位置为中心,预设边长作一矩形框,以此矩形框为手掌连通域对应的追踪框。在又一实施例中,还可以以手掌连通域的中心位置为圆心,预设边长作一圆形框,以此圆形框为手掌连通域对应的追踪框。技术人员可以根据具体场景选择合适的追踪框,在此不作限定。

103,基于所述追踪框的位置,在待识别图像对应追踪框的区域内识别手势。

本实施例中,基于追踪框的位置,利用预先设置的追踪算法,在确定追踪框的深度图像对应彩色图像以及该彩色图像之后的至少一帧待识别图像的对应追踪框的区域内识别手势以及追踪手势。其中识别手势或者追踪手势的算法可以采用相关技术中的算法实现,例如模板匹配算法、统计分析算法、神经网络算法等,还可以为核相关滤波算法kcf、时空上下文视觉跟踪算法stc或者odfs跟踪器等,通过连续的待识别图像追踪物体。技术人员可以根据具体场景进行选择,在此不作限定。

至此,本实施例中通过获取手掌连通域及其对应的追踪框,然后在待识别图像对应追踪框的区域内识别手势。这样,无需遍历整个待识别图像,仅遍历追踪框内图像,从而缩小手势查找的范围,降低数据处理量以及提高手势识别的实时性。

图9是本发明实施例示出的另一种手势识别方法的流程示意图,参见图9,一种手势识别方法,包括步骤901~步骤904,其中:

901,基于获取的深度图像确定手掌连通域。

步骤901和步骤101的具体方法和原理一致,详细描述请参考图1及步骤101的相关内容,此处不再赘述。

902,确定所述手掌连通域对应追踪框。

步骤902和步骤102的具体方法和原理一致,详细描述请参考图1及步骤102的相关内容,此处不再赘述。

903,获取与当前的待识别图像具有映射关系的深度图像对应的人体连通域。

实际应用中,利用相关技术中追踪算法手势的过程中,在追踪过程中有可能会错追到背景或身体的其他部位,导致后面的待识别图像中全部追踪错误。因此,本实施例中借助深度图像和待识别图像的映射关系以及深度图像来辅助追踪手势。参见图10(a)和图10(b),其中图10(a)为深度图像,且矩形框为获取的人体连通域;图10(b)为与深度图像同一时刻采集的待识别图像,且矩形框为追踪框,即图10(a)所示深度图像和图10(b)所示待识别图像具有映射关系。

在追踪手势的过程中,需要针对每一帧待识别图像进行处理,所使用的待识别图像作为当前的待识别图像。本实施例中,可以获取当前的待识别图像具有映射关系的深度图像,然后可以步骤901的方案获取深度图像的人体连通域。

904,在所述追踪框和所述人体连通域的重叠区域内识别手势。

本实施例中,通过获取待识别图像对应的追踪框以及与该帧待识别图像具有映射关系的深度图像的人体连通域,可以获取到追踪框和人体连通域的重叠区域,这样可以进一步细分追踪区域,剔除追踪框对应区域内且不属于人体连通域的部分(例如图10(b)中矩形框之外的区域,其中圆圈表示手掌的中心位置所在区域),可以得到重叠区域。该重叠区域的面积会小于追踪框对应区域的面积。之后,可以利用预先设置的追踪算法在重叠区域对应区域内追踪手势。追踪算法可以参考步骤103的内容,在此不再赘述。

以采集频率为30hz的视频流为例,两帧待识别图像之间间隔约30ms。在追踪过程中,约30ms内手掌在z轴方向(即深度方向)的移动不会超过50mm(即差值阈值)。另外,在使用手势时,用户的手掌和躯体的z轴距离大于50mm。基于此原理,参见图11,本实施例中利用追踪算法追踪手势的过程中,当满足检测条件的目标对象出现后,需要近一步判断该目标对象的深度值即第一深度值,以及该目标对象在上一帧待识别图像对应重叠区域内的深度值即第二深度值(对应步骤1101)。若第一深度值与第二深度值小于差值阈值(即深度差小于50mm),则确定该目标对象是追踪目标,则识别和追踪手势。若第一深度值与第二深度值超过差值阈值(即相差超过50mm),则确定该目标对象不是追踪目标,继续检测其他待检测区域(对应步骤1102)。这样,本实施例可以避免追踪过程中错追到具有相似颜色或灰度值的衣服或人脸,从而提升追踪速度,有利于提高手势识别的实时性。

至此,本实施例中通过获取手掌连通域及其对应的追踪框,然后在待识别图像对应追踪框的区域内识别手势。这样,无需遍历整个待识别图像,仅遍历追踪框内图像,从而缩小手势查找的范围,降低数据处理量以及提高手势识别的实时性。并且,本实施例中对追踪框的区域进一步细分,从而进一步缩小追踪区域,进一步降低数据处理量以及进一步提高手势识别的实时性。

图12是本发明实施例示出的一种手势识别装置的框图。参见图12,一种手势识别装置1200,包括:

连通域确定模块1201,用于基于获取的深度图像确定手掌连通域;

追踪框确定模块1202,用于确定所述手掌连通域对应追踪框;

手势识别模块1203,用于基于所述追踪框的位置,在待识别图像对应追踪框的区域内识别手势。

至此,本实施例中通过获取手掌连通域及其对应的追踪框,然后在待识别图像对应追踪框的区域内识别手势。这样,无需遍历整个待识别图像,仅遍历追踪框内图像,从而缩小手势查找的范围,降低数据处理量以及提高手势识别的实时性。

图13是本发明实施例示出的一种电子设备的框图。参见图13,该电子设备包括处理器1301和存有处理器可执行指令的存储器1302,并且处理器1301经过通信总线1303与存储器保持通信,能够从存储器1302中读取指令以实现:

图2~图11所示方法的步骤。

本发明实施例还提供了一种可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现:图2~图11所示方法的步骤。需要说明的是,可读存储介质可以应用于电子设备,技术人员可以根据具体场景进行选择,在此不作限定。

在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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