手势抖动识别方法及装置、手势识别方法与流程

文档序号:15258170发布日期:2018-08-24 21:00阅读:327来源:国知局

本发明涉及图像识别技术领域,具体而言,本发明涉及一种手势抖动识别方法及装置、手势识别方法。



背景技术:

在vr使用场景及其他利用手势开发的应用中,由于手部在移动过程中可能会发生抖动,现有技术基于单一的标准来抑制手的抖动或者基于全局范围的计算方式去抖动,然而,采用单一标准或者全局范围计算去抖动,不仅使得计算过程中的标准不够稳定,导致计算出的结果有误,同时还增加了计算时间。在基于全范围计算去抖动时,由于需要考虑以及查找整个手势区域,导致大大的增加了去抖动运算的时间,使得人机交互体验不佳。



技术实现要素:

本发明的目的旨在至少解决上述技术缺陷之一,特别是本发明主要解决了去抖动运算过程不够稳定以及计算量大、计算时间长的问题。

本发明提供的一种手势抖动识别方法,包括:

获取相邻两帧的手势图像;

在各帧图像中选取跟踪点,其中,各帧图像中选取的跟踪点皆对应于所述手势上的同一位置;

基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息,该像素点的位置信息为极大值像素点位置信息;

根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动。

进一步地,在所述根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动的步骤中,具体包括:

对比相邻两所述图像中所述跟踪点的位置信息,确定两所述跟踪点的位置差值;

对比相邻两所述图像中所述极大值像素点位置信息,确定两极大值像素点的位置差值;

依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述手势是否发生抖动。

进一步地,在所述依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述手势是否发生抖动的步骤中,具体包括:

当所述跟踪点的位置差值和所述极大值像素点的位置差值的乘积小于零时,确定所述手势是发生抖动。

进一步地,在所述依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述手势是否发生抖动的步骤中,具体包括:

当所述跟踪点的位置差值和所述极大值像素点的位置差值的乘积大于或等于零时,且所述跟踪点的位置差值绝对值小于预设位置阈值,所述极大值像素点的位置差值绝对值小于预设极大值阈值时,确定所述手势发生抖动。

进一步地,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的步骤中,具体包括:

对所述图像进行采样以获得至少一幅所述图像的检测图像,将所述图像作为一幅原始的检测图像;

针对每一幅检测图像,以所述跟踪点为中心构造检测区域;

将所有所述检测区域内像素点对应的像素值全部依次进行对比,确定所有所述检测区域内的极大值像素点。

进一步地,在所述将所有所述检测区域内像素点对应的像素值全部依次进行对比,确定所有所述检测区域内的极大值像素点的步骤中,具体包括:

遍历任意一幅所述检测图像中所述检测区域包围的区域;

以遍历到的当前像素点为中心,获取与所述当前像素点相邻的像素点;

在剩余的所述检测图像中,获取与所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点;

将所述当前像素点、与所述当前像素点相邻的像素点、剩余检测图像中的与所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点的像素值进行对比,确定所述当前像素点的像素值是否最大;

当所述当前像素点的像素值最大时,将所述当前像素点的位置信息提取预设极值数组中,获得极值数组,所述当前像素点确定为像素极值点,所述当前像素点的位置信息为极值数组的元素。

进一步地,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的过程之后,包括:

依次对比所述极值数组中的元素对应的像素值,确定所述图像中像素点的所述极大值像素点位置信息。

进一步地,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的过程之后,包括:

在所述预设极值数组中的元素个数为零时,重新基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息。

进一步地,在所述基于所述跟踪点确定所述图像中像素点的像素极大值的过程之后,包括:

在所述预设极值数组中的元素个数大于1时,遍历所述极值数组的所有元素;

确定各元素对应像素点与所述跟踪点之间的距离;

对比所述各元素对应像素点与所述跟踪点之间的距离,获取与所述跟踪点距离最小的像素点,将该像素点对应的位置信息确定为所述图像中像素点的所述极大值像素点位置信息。

进一步地,在所述获取相邻两帧的手势图像的步骤之前,包括:获取包括手势的相邻两帧源图像,将以所述跟踪点为中心、所述源图像边框长度的五分之一为边长的矩形区域构造为检测区域。

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

基于任一项技术方案所述的手势抖动识别方法确定手势是否发生抖动;

在所述手势发生抖动时,以所述相邻两帧图像中前一帧图像对应的图像参数处理后一帧图像。

本发明实施例提供的一种手势抖动识别装置,包括:

图像获取模块,用于获取相邻两帧的手势图像;

跟踪点选取模块,用于在各帧图像中选取跟踪点,其中,各帧图像中选取的跟踪点皆对应于所述手势上的同一位置;

像素极大值获取模块,用于基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息,该像素点的位置信息为极大值像素点位置信息;

判断模块,用于根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动。

本发明实施例提供的一种计算机可读存储介质,存储有计算机程序,该计算机程序执行时实现任一项技术方案所述的手势抖动识别方法的步骤。

本发明实施例提供的一种手势抖动识别装置,包括处理器、存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现任一项技术方案所述的手势抖动识别方法的步骤。

本发明实施例提供的一种手势识别设备,包括摄像装置及与所述摄像装置连接的所述计算机可读存储介质或所述的手势抖动识别装置,所述摄像装置用于采集包括多幅所述手势图像的图像流

与现有技术相比,本发明提供的实施例具有以下有益效果:

1、本发明提供的一种手势抖动识别方法,包括:获取相邻两帧的手势图像;在各帧图像中选取跟踪点,其中,各帧图像中选取的跟踪点皆对应于所述手势上的同一位置;基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息,该像素点的位置信息为极大值像素点位置信息;根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动。本发明在检测出手势后,提取局部特征,基于跟踪点位置的变化以及图像中手势像素的最大值。进而依据跟踪点位置变化和最大像素点位置的不同两重标准来确定手是否发生抖动,其运算过程更加稳定,本发明大大减少了计算时间,提高了运行速度。手的位置以手腕处的位置为标准,减小了因为手指的形变带来的误差,同时采用图像局部的像素值进行处理,判断手势是否发生抖动,降低了图像处理和判断过程的计算量,提高了手运动轨迹的稳定性,极大增强了人机交互体验。

2、本发明提供的一种手势抖动识别方法,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的步骤中,具体包括:依据预设采样规则对所述图像采样,获得至少一幅所述图像的检测图像;针对每一幅检测图像,将以所述跟踪点为中心的预设区域构造为检测区域;在所述检测区域内依次对比各像素点对应像素值,确定所述检测区域内的像素极值点。按不同倍率分别降采样多幅检测图像,构造多个尺度空间,得到新的检测图像,再在所有的检测图像(包括采样前的图像)的基础上寻找像素极值点,进而提高极值点运算的准确度。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明手势抖动识别方法的一种实施方式的流程图;

图2(a)为本发明一种手势抖动识别方法实施例中手势图像的原始图像;

图2(b)为本发明一种手势抖动识别方法实施例中从ycrcb图像中提取的cr通道图像;

图2(c)为本发明一种手势抖动识别方法实施例中对cr通道图像使用otsu算法分割出的手的图像;

图2(d)由图2(c)计算得到的手的轮廓图像;

图3为本发明一种手势抖动识别方法的典型实施例中一种实施方式的流程图;

图4为本发明一种手势抖动识别方法的典型实施例中又一种实施方式的流程图;

图5(a)为本发明一种手势抖动识别方法实施例中三种尺度图像中构造的检测区域;

图5(b)为本发明一种手势抖动识别方法实施例中检测区域放大后的图像;

图5(c)为本发明一种手势抖动识别方法实施例中相邻三幅图像中相对应像素点构造的九宫格像素点图像;

图6为本发明一种手势抖动识别方法的典型实施例中又一种实施方式的流程图;

图7为本发明实施例中手势识别的流程图示意图;

图8为本发明一种手势抖动识别装置的典型实施例的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

一种手势抖动识别方法,在其中一种实施方式中,如图1所示,包括s100到s400。

s100:获取相邻两帧的手势图像;

s200:在各帧图像中选取跟踪点,其中,各帧图像中选取的跟踪点皆对应于所述手势上的同一位置;

s300:基于所述跟踪点确定所述图像中像素极大值对应像素点的极大值像素点位置信息;

s400:根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动。

在本发明实施过程中,通过摄像装置拍摄图像,基于摄像装置拍摄的图像进行手势抖动识别,在实施过程中,首先对进行手势抖动识别的系统进行初始化设置处理,调整系统的初始参数,便于后续依据该参数调整系统处理后续的图像;在系统初始化完成后,设置摄像装置的帧率,视频图像尺寸等,将系统中部分参数或者固定设备的参数进行统一设置,同时还可以减少图像处理的步骤,并保证图像处理的精度。

由于本发明主要使用与ar虚拟场景中的人机交互过程,摄像装置主要拍摄用户通过手势进行人机交互过程中用户的手势图像流,获取该手势图像流中的手势图像,如图2中(a)所示,将该图像流传送给图像处理判断设备(手势抖动识别装置),基于摄像装置拍摄的包括用户手的图像流(视频流),从该图像流中获取相邻的两帧图像。为了便于手势抖动的判断,降低手势抖动判断的繁琐步骤和手势抖动的精准判断,对该图像进行预处理,如对该图像进行高斯滤波,减小图像噪声;另外,还可以在前述的基础上将手势图像尽量处理为单一色彩信号分量的图像。在前述过程之后,将当前帧手势图像转换到ycrcb颜色空间,提取cr通道(图2(b)所示)进行处理,然后再对图像进行二值化,在二值化的基础上,从手势图像中分割出手的区域,如使用otsu算法分割出手的区域(图2(c)所示),再从手的区域中提取手的轮廓(图2(d)所示),将提取的手的轮廓记为手轮廓,将手轮廓外包围的矩形框内的区域作为手势框区域,即包围手轮廓图像的外边框内的区域,其中,手势图像为图2(d)所示的图像,即本发明实施例中的手轮廓图像。

为了便于对比,在手轮廓图像中需要提取一个基准点,如目标物为手,基准点记为本发明的实施例中的跟踪点,便于每一张图像在进行处理过程中都以相同的跟踪点为处理的基准,便于进行图片对比判断识别,即本发明实施例中的手势抖动识别,每一帧图像的跟踪点都在目标物(手)上的同一位置。具体的,在本发明进行手势抖动识别的实施例中,由于手可以看作是半刚性物体的运动,因为手指的灵活性,导致手在图像中的形状经常变化,表现为不规则的运动形态。但是手腕处的部分在图像中是形变较小的,在手的运动过程中,手腕处由于有衣服遮挡、形变小等特点,运动轨迹相对手指部分是比较稳定的。因此,选取手轮廓的左下角作为跟踪点(handpos),跟踪点记录每次图像检测到的手势位置。

在跟踪点确定后,基于跟踪点确定手势位置,以跟踪点为基准构造检测区域,且在该检测区域内进行遍历和计算确定在一帧图像中的像素极大值,该像素极大值如前文所述经二值化处理后灰度值,且该像素极大值为在当前帧图像中检测区域内最大的灰度值,该像素值极大值对应像素点的位置信息为极大值像素点位置信息,该像素极大值为当前手势框区域内的最大像素值,该像素值极大值对应像素点的位置信息记为maxvalue。对比相邻两帧手势框区域内的最大像素值对应像素点的位置信息(即极大值像素点位置信息),判断手势发生的是否是抖动。在判断过程中,通过相邻两帧图像极大值像素点位置信息的差值和相邻两帧图像跟踪点的位置确定手势是否发生抖动,详细过程如后文说明。在本发明的实施例中,相邻两帧图像为用户预设进行手势图像判断的间隔帧数,该相邻两帧图像为手势判断过程中相邻的两帧图像。因此,该相邻两帧图像为图像流中相邻的两帧图像或者间隔的两帧不相邻的图像,通过局部像素点的处理和判断,能够快速稳定的确定手势是否发生抖动。

进一步地,在其中一种实施方式中,如图3所示,在所述根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述目标物是否发生抖动的步骤中,具体包括s410至s430。

s410:对比相邻两所述图像中所述跟踪点的位置信息,确定两所述跟踪点的位置差值;

s420:对比相邻两所述图像中所述极大值像素点位置信息,确定两极大值像素点的位置差值;

s430:依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述手势是否发生抖动。

进一步地,在所述依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述目标物是否发生抖动的步骤中,具体包括:

当所述跟踪点的位置差值和所述极大值像素点的位置差值的乘积小于零时,确定所述目标物是发生抖动。

进一步地,在所述依据所述跟踪点的位置差值和所述极大值像素点的位置差值确定所述手势是否发生抖动的步骤中,具体包括:

当所述位置差值和所述极大值位置差值的乘积大于或等于零时,且所述跟踪点的位置差值绝对值小于预设位置阈值,所述极大值像素点的位置差值绝对值小于预设极大值阈值时,确定所述手势发生抖动。

在前文的基础上,在跟踪点的基础上确定了手势框区域内的极大值像素点位置信息,在判断手势是否发生抖动的过程中,具体的,通过摄像装置接收下一帧图像,记为下一帧图像。重复前文的过程得到新的参数,如跟踪点位置和像素极大值,且下一帧图像的跟踪点位置和极大值像素点位置信息记为handposnext和maxvaluenext。将handpos和handposnext之间的距离记为dishandpos,将maxvalue和maxvaluenext之间的距离记为dismaxvalue。在进行具体的判断过程中,通过如下过程实现:

具体的,计算方式为:

dishandpos=handposnext-handpos,

dismaxvalue=maxvaluenext-maxvalue。

基于dishandpos和dismaxvalue的值判断手是否发生抖动。例如,条件一:若dishandpos*dismaxvaluenext>=0,则表示两个点的移动方向相同,则还需要进行进一步的判断,判断的条件为条件二。条件二:|dishandpos|<7并且|dismaxvalue|<5。在满足条件一和条件二时,确定手势为抖动现象;另外,在dishandpos和dismaxvalue的值的乘积不满足条件一时,可直接确定手势为抖动现象。在前述的情况下,在满足条件一且不满足条件二时,能够确定手势不为抖动现象,其为手势移动。在本发明的实施例中,需要说明的是,条件一的反向表达方式为dishandpos*dismaxvaluenext<0,即当dishandpos*dismaxvaluenext<0时,则为不满足条件一;另外,|dishandpos|<7并且|dismaxvalue|<5,在本发明提供的实施例中,优选地,预设位置阈值为7,预设极大值阈值为5,需要说明的是,预设位置阈值和预设极大值阈值也可根据实际需要进行设定,即预设位置阈值7、预设极大值阈值5不限制本发明的实施。

进一步地,在其中一种实施方式中,如图4所示,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的步骤中,具体包括s310至s330。

s310:对所述图像进行采样以获得至少一幅所述图像的检测图像,将所述图像作为一幅原始的检测图像;

s320:针对每一幅检测图像,以所述跟踪点为中心构造检测区域;

s330:将所有所述检测区域内像素点对应的像素值全部依次进行对比,确定所有所述检测区域内的像素极值点。

进一步地,在所述获取相邻两帧的手势图像的步骤之前,包括:

获取包括手势的相邻两帧源图像,将以所述跟踪点为中心、所述源图像边框长度的五分之一为边长的矩形区域构造为检测区域。

在本发明提供的实施例中,所述图像作为一幅原始的检测图像,对所述图像进行采样获得的至少一幅所图像为检测图像,以便于在所述图像和检测图像上均能构造检测区域,进而后文能够遍历所述图像和检测图像中的任意一幅,便于在剩下的检测图像的检测区域中获取到相对应的像素点。所述源图像为手的区域二值化后的图像,结合图2(c)可知,所述源图像为otsu算法分割出手区域的图像,为了能够有精准的对比,在提取cr通道的图像基础上,按照不同的倍数对cr图像进行降采样,获得多幅cr图像不同倍数下的检测图像,同时缩小图像像素的检测范围,确定优选的检测区域,以便于在不同的倍数下提高像素的精确度,提高手势识别的精准度,其中原倍数的cr图像也是检测图像。因此,在每一幅检测图像,将以所述跟踪点为中心的预设区域构造为检测区域,依次对比检测区域内各像素点对应像素值,确定所述检测区域内的像素极值点,进而便于依据该像素极值点的像素确定像素极大值,其具体过程如前文和后文的说明。

具体的,为了便于处理,在前述对图像进行滤波和提取cr通道的基础上,将提取cr通道的图像作为记作图像0,按2倍和4倍对图像0分别降采样,构造两个尺度空间,得到两幅新的图像,记为图像1和图像2(图5(a)所示)。其预设采样规则即为2倍和4倍的降采样规则。结合前文的说明,所述源图像为otsu算法分割出手区域的图像(如图2(c)),以跟踪点(handpos)为中心,取手势框区域宽度的五分之一作为边长,构造一个检测矩形,记为检测区域。如图5(a)中黑色矩形框所示,三幅图像分别构造三个检测矩形。将此检测区域放大,即为图5(b)所示,图中黑色点表示的是跟踪点。在检测区域内寻找极值点,且记为像素极值点,像素极值点的位置记为maxvalue。其中,在构造一个检测区域来寻找像素极值点的过程中,检测区域的大小直接影响像素极值点的寻找。手的活动会造成检测区域的尺寸变化,以手势框区域宽度的五分之一作为边长的框是最合适的尺寸,取该尺寸的手势框区域在检测过程中能够平衡检测的速度和精度,即在检测的速度足够快的情况下,同时保证检测出来的手势能够精准的判断为用户无意的抖动或者用户刻意的移动。检测区域即为检测图像中用于检测像素极值点的区域。

进一步地,在其中一种实施方式中,如图6所示,在所述检测区域内依次对比各像素点对应像素值,确定所述检测区域内的像素极值点的步骤s330中,具体包括s331至s335。

s331:遍历任意一幅所述检测图像中所述检测区域包围的区域;

s332:以遍历到的当前像素点为中心,获取与所述当前像素点相邻的像素点;

s333:在剩余的所述检测图像中,获取与所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点;

s334:将所述当前像素点、与所述当前像素点相邻的像素点、剩余检测图像中的与所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点的像素值进行对比,确定所述当前像素点的像素值是否最大;

s335:当所述当前像素点的像素值最大时,将所述当前像素点的位置信息提取预设极值数组中,获得极值数组,所述当前像素点确定为像素极值点,所述当前像素点的位置信息为极值数组的元素。

进一步地,在所述基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息的过程之后,包括:

依次对比所述极值数组中的元素对应的像素值,确定所述图像中像素点的所述极大值像素点位置信息。

结合前文说明,遍历任意一幅所述检测图像中所述检测区域包围的区域,其检测图像可以为所述图像作为的原始检测图像,也可以为在所述图像上采样产生的检测图像。当遍历的所述检测图像为原始的检测图像时,即所述图像,则在所述图像上采样产生的检测图像中获取与遍历到的所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点;当遍历的图像为在所述图像上采样产生的任意一幅检测图像时,则在剩余的检测图像和原始的检测图像(即所述图像)上获取与遍历到的所述当前像素点相对应的像素点以及与所述当前像素点相邻像素点相对应的像素点;为了使得对比出来的像素值更为精准,在优选地检测区域内,依次遍历对比同一检测区域内各像素点的像素值,使得确定的像素极大值为优选地且能体现出手势抖动的像素极大值。因此,在此基础上,优选从第2行第2列开始,到第19行第19列为止,遍历图像1。优选地,在本发明的实施例中,局部图像大小是20*20像素,遍历的模板是3*3像素,因此需要留一圈像素,避免对比时会出现空像素,进而从第2行第2列开始,到第19行第19列为止,遍历图像1;另外,在本发明优选的实施例中,在各判断条件的标准均在图像1的基础上进行设置时,优先遍历图像1,降低检测的误差,即在本发明实施时,在后续判断图像是否发生抖动时。在以图像2或者图像0作为遍历图像时,由于其为图像1的1/2倍或者4倍,导致图像2像素值为图像1像素值的放大之后的两倍,或者图像0像素值为图像1像素值缩小后的两倍。而判断图像是否发生抖动的条件一和条件二是在图像1像素值的基础上进行设计的。在对图像进行放大和缩小的倍数较大时,使得相邻像素值之间会出现重构或者插值,导致像素值的变化较大且像素值精确度较低。因此在判断条件的标准固定时,若以其他图像像素值对应的像素点进行判断,会出现由于像素值的变化大,像素值精确度较低的情况,从而导致得出手势抖动或者移动结论的可信度不够高,将其应用在条件一和条件二或者与条件一和条件二相关的其他步骤中时,导致判断结果的精确度不高,误差较大,因此以设计判断标准的图像作为遍历图像。由于图像0和图像2为图像1不同倍数下的图像,因此对每个遍历的点图像1中的像素点1来说,在图像0和图像2中都有与之位置对应的像素点0和像素点2,即像素点0在图像0中,像素点1在图像1中且与像素点0相互对应,像素点2在图像2中且同样与像素点0相互对应。其中,像素点0、像素点1、像素点2分别对应图像0、图像1、图像2中像素点的名称或者标识,其可用其他符号代替。在图像0、图像1、图像2中找出相互对应的像素点0、像素点1、像素点2之后,以像素点0、像素点1、像素点2为中心的九宫格图像的像素共27个(如图5(c)所示),判断像素点1在这27个值当中是否为最大,若是,则加入到预设极值数组中,该像素极值点为预设极值数组的元素,进而获得预设极值数组的元素。需要说明的是,在本发明的实施例中,若以图像0作为遍历的图像,且判断条件也是以图像0进行设计时,则在遍历图像0时,遍历到的图像0中的当前像素点在图像1和图像2有与其对应的像素点,并结合前文的描述,在遍历图像时,以设计判断条件的图像作为遍历图像,进而提高手势判断的精度,避免其他图像上像素值重构或者插值计算的误差影响图像判断结果。另外,在本发明提供的实施例中,以图像1作为遍历图像,除了图像判断的条件以图像1设计的之外,同时,图像1降采样的倍数相当于在图像0的基础上再一次进行了去噪,避免了图像中噪声对判断结果的影响,因此,在本发明优选的实施例中,以图像1作为遍历的图像。

在检测区域内遍历完成,获得了预设极值数组的元素并将其提取到所述预设极值数组,得到极值数组,依次对比所述极值数组中的元素,获得所述图像中像素点的所述像素极大值。其具体过程如后文说明。

进一步地,在所述基于所述跟踪点确定所述图像中像素点的像素极大值的过程之后,包括:

在所述预设极值数组中的元素个数为零时,重新基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息。

在所述预设极值数组中的元素个数为零时,结合前文的说明,表明在遍历图像1时,未能够找到图像1的检测区域内存在像素值最大的像素点。进而通过重新执行步骤s331至s335,确定所述图像中像素极大值对应像素点的位置信息,具体的,优先为再一次(即第二次)遍历步骤s331步骤中遍历过的所述检测图像中所述检测区域包围的区域(如前文图像1中所述检测区域包围的区域),避免在第一次遍历图像1时,漏掉部分检测区域内的像素点,以至于未能够确定检测区域内具有最大像素值的像素点,进而通过第二次遍历图像1,并第二次通过步骤s332至s335确定所述图像中像素极大值对应像素点的位置信息,避免漏掉第一次遍历图像1并执行步骤s332至s335时,未能够及时地确定具有最大像素值的像素点,具体过程同步骤s331至s335的说明,在此不做赘述。

进一步地,在所述基于所述跟踪点确定所述图像中像素点的像素极大值的过程之后,包括:

在所述预设极值数组中的元素个数大于1时,遍历所述极值数组的所有元素;

确定各元素对应像素点与所述跟踪点之间的距离;

对比所述各元素对应像素点与所述跟踪点之间的距离,获取与所述跟踪点距离最小的像素点,将该像素点对应的位置信息确定为所述图像中像素点的所述极大值像素点位置信息。

如前文,极值数组为中,若中的元素个数为0,则表示当前帧图像没有像素极值点,此时在图像1中重新遍历,寻找像素极值点加入到中;在极值数组中元素个数为1时,说明该值即为像素极大值;在极值数组中元素个数大于1时表示有多个极大值,计算每个元素与跟踪点的距离,选取距离最小的值,即为极大值像素点位置信息。

在本发明的实施例中还提供了一种手势识别方法,包括:

基于任意一项前述技术方案所述的手势抖动识别方法确定手势是否发生抖动;

在所述手势发生抖动时,以所述相邻两帧图像中前一帧图像对应的图像参数处理后一帧图像。

在前文的基础上,当通过手势图像判断出手势发生抖动后,使用当前手势图像对应摄像装置拍摄图像的所有参数更新相邻下一帧图像对应的参数,即且下一帧图像为也为摄像装置拍摄的图像。其中,图像参数例如为本发明实施例中的跟踪点选取的位置,例如,确定手势未发生抖动时,将当前帧图像跟踪点选取的位置确定为下一帧图像中跟踪点选取的位置;若发生抖动时,依据相邻两帧图像中跟踪点位置的差值dishandpos确定下一帧图像中跟踪点选取的位置,例如在dishandpos的差值为-2时,在则在下一帧图像中,跟踪点向右直线移动两个像素点的位置,若不在手势轮廓上,则再往上移动或者往下移动,以使跟踪点位于手势轮廓上。

在本发明提供的实施例中,结合前文的描述,手势识别经过如下过程成实现,参见图7,首先对检测系统进行初始化设置,如设置摄像头帧率,视频图像尺寸等,摄像头拍摄的速率便于依次对图像进行处理,寻找到图像中检测区域内的极大值像素点(即图7中的极值点)、视频图像尺寸的设置便于获得尺寸大小合适且利于进行处理的图像。在摄像头拍摄到一帧图像后,摄像装置将其送入手势抖动识别装置中,进而执行前述的任一项技术方案的手势抖动识别方法。如对该帧图像进行高斯滤波,减小图像噪声,避免噪声对提取或者分割手势图像的影响。进而将该帧图像转换到ycrcb颜色空间,提取cr通道进行处理,使用otsu算法分割出手的区域,即将图像上手势轮廓的像素点的像素值处理为同一个像素值,而手势轮廓外的其他其余的像素点的像素值处理为另外一个像素值,且与手势轮廓上像素点的像素值差距较大,以便于otsu算法分割出手势轮廓图像。在分割出手势轮廓图像后,结合前文手势抖动识别方法在当前帧图像中获取跟踪点的位置,并通过该方法寻找出该手势图像的极值点;在确定了当前帧图像的手势图像,获取下一帧摄像头拍摄的图像,对该图像做前述的的过程,获取下一帧手势图像的跟踪点和极值点。进而对比两帧图像中跟踪点和极值点位置的差值,结合前文的条件一和条件确定单钱帧图像中的手势是否发生抖动,当发生抖动时,根据当前帧跟踪点的位置,以及两帧图像中跟踪点位置的差值,调整当前帧图像的下一帧图像的跟踪点的位置,实现去抖动,进而提高手势在人机交互过程中运动轨迹的稳定性,并且提高客户的人机交互体验。

在本发明的实施例中还提供了一种手势抖动识别装置,如图8所示,包括图像获取模块100、跟踪点选取模块200、像素极大值获取模块300、判断模块400。

图像获取模块100,用于获取相邻两帧的手势图像;

跟踪点选取模块200,用于在各帧图像中选取跟踪点,其中,各帧图像中选取的跟踪点皆对应于所述手势上的同一位置;

像素极大值获取模块300,用于基于所述跟踪点确定所述图像中像素极大值对应像素点的位置信息,该像素点的位置信息为极大值像素点位置信息;

判断模块400,用于根据相邻两所述图像中对应的所述极大值像素点位置信息以及所述跟踪点的位置信息,确定所述手势是否发生抖动。

在本发明的实施例中还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序执行时实现任一项技术方案所述的手势抖动识别方法的步骤。

在本发明的实施例中还提供了一种手势识别设备,包括处理器、存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现任一项技术方案所述的手势抖动识别方法的步骤。

在本发明的实施例中还提供了一种手势识别设备,包括摄像装置及与所述摄像装置连接的所述计算机可读存储介质或所述的手势抖动识别装置,所述摄像装置用于采集包括多幅所述手势图像的图像流,图像流由多帧图像组成,其中该图像至少有两帧图像内包括手势,其中,手势图像为图像流中的一帧图像经过前述图像处理过程之后的图像。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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