手势检测方法和手势检测设备与流程

文档序号:17549218发布日期:2019-04-30 18:08阅读:330来源:国知局
手势检测方法和手势检测设备与流程

本公开的实施例涉及一种手势检测方法和手势检测设备。



背景技术:

目前,人机交互的方式越来越多。随着虚拟技术的发展,基于手势的人机交互方式受到越来越多的关注,其在硬件成本和操作方式上都具有极大的优势。电视机、电子相框等电子设备中可以融入手势识别功能,以实现基于手势的人机交互。电子设备通过摄像头采集用户的手部动作,并通过模式识别算法对采集的图像中的手部特征进行检测和跟踪,将手部的运动信息转化为电子设备上的光标的运动信息,从而触发电子设备上相应的操作命令,例如视频播放控制、网页切换以及游戏互动等。手势识别技术基于电子设备所配备的摄像头和相应的识别软件,即可实现基于手势的人机交互。



技术实现要素:

本公开至少一实施例提供一种手势检测方法,其包括:对第一帧原始图像进行缩放处理和背景建模,以生成第一帧背景图像;对所述第一帧背景图像进行运动检测,以确定所述第一帧背景图像的运动区域;根据所述第一帧背景图像的运动区域,在所述第一帧原始图像中确定第一手势检测区域;以及在所述第一手势检测区域内进行手势检测。

例如,本公开至少一实施例提供的手势检测方法还包括:当确定所述第一手势检测区域内存在第一手势时,在所述第一帧原始图像中确定所述第一手势的第一手势范围;以及根据所述第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域。

例如,在本公开至少一实施例提供的手势检测方法中,根据所述第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域包括:根据所述第一手势范围的中心坐标确定所述第二帧原始图像的第二手势检测区域的中心坐标;根据所述第一手势范围的尺寸确定所述第二帧原始图像的第二手势检测区域的尺寸,其中,所述第二帧原始图像的第二手势检测区域的尺寸为w×h,h为所述第一手势范围的最长边长的x倍,w为所述第一手势范围的最长边长的y倍,x和y均为大于0的整数。

例如,本公开至少一实施例提供的手势检测方法,还包括:判断所述第二帧原始图像的第二手势检测区域的尺寸是否大于预设检测区域的尺寸,如果是,则对所述第二帧原始图像的第二手势检测区域进行缩放处理,以使所述第二帧原始图像的第二手势检测区域的尺寸与所述预设检测区域的尺寸相同,如果不是,则保持所述第二帧原始图像的第二手势检测区域的尺寸不变。

例如,在本公开至少一实施例提供的手势检测方法中,所述第一帧原始图像的第一手势检测区域的尺寸大于所述预设检测区域的尺寸。

例如,本公开至少一实施例提供的手势检测方法还包括:在所述第二手势检测区域内进行手势检测。

例如,本公开至少一实施例提供的手势检测方法还包括:确定所述第二手势检测区域内存在第二手势,并在所述第二帧原始图像中确定所述第二手势的第二手势范围;根据所述第二手势范围确定第三帧原始图像的第三手势检测区域。

例如,在本公开至少一实施例提供的手势检测方法中,根据所述第二手势范围确定第三帧原始图像的第三手势检测区域,包括:根据所述第二手势范围的中心坐标确定所述第三帧原始图像的第三手势检测区域的中心坐标;根据所述第二手势范围的尺寸确定所述第三帧原始图像的第三手势检测区域的尺寸,其中,所述第三帧原始图像的第三手势检测区域的尺寸为w×h,h为所述第二手势范围的最长边长的x倍,w为所述第二手势范围的最长边长的y倍,x和y均为大于0的整数。

例如,本公开至少一实施例提供的手势检测方法还包括:当确定所述第二手势检测区域内不存在第二手势时,对第三帧原始图像进行缩放处理和背景建模,以生成第三帧背景图像;对所述第三帧背景图像进行运动检测,以确定所述第三帧背景图像的运动区域;根据所述第三帧背景图像的运动区域,在所述第三帧原始图像中确定所述第三手势检测区域;在所述第三手势检测区域内进行手势检测。

例如,在本公开至少一实施例提供的手势检测方法中,对所述第一帧背景图像进行运动检测,以确定所述第一帧背景图像的运动区域,包括:在所述第一帧背景图像中对运动物体进行检测,以确定所述运动物体的轮廓区域;判断所述轮廓区域是否大于运动区域阈值,如果是,则确定所述轮廓区域为所述第一帧背景图像的运动区域。

本公开至少一实施例提供一种手势检测设备,包括处理器和存储器,所述存储器用于存储计算机指令,其中,所述计算机指令被所述处理器执行时实现以下操作:对第一帧原始图像进行缩放处理和背景建模,以生成第一帧背景图像;对所述第一帧背景图像进行运动检测,以确定所述第一帧背景图像的运动区域;根据所述第一帧背景图像的运动区域,在所述第一帧原始图像中确定第一手势检测区域;以及在所述第一手势检测区域内进行手势检测。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:当确定所述第一手势检测区域内存在第一手势时,在所述第一帧原始图像中确定所述第一手势的第一手势范围;以及根据所述第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:根据所述第一手势范围的中心坐标确定所述第二帧原始图像的第二手势检测区域的中心坐标;根据所述第一手势范围的尺寸确定所述第二帧原始图像的第二手势检测区域的尺寸,其中,所述第二帧原始图像的第二手势检测区域的尺寸为w×h,h为所述第一手势范围的最长边长的x倍,w为所述第一手势范围的最长边长的y倍,x和y均为大于0的整数。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:判断所述第二帧原始图像的第二手势检测区域的尺寸是否大于预设检测区域的尺寸,如果是,则对所述第二帧原始图像的第二手势检测区域进行缩放处理,以使所述第二帧原始图像的第二手势检测区域的尺寸与所述预设检测区域的尺寸相同,如果不是,则保持所述第二帧原始图像的第二手势检测区域的尺寸不变。

例如,在本公开至少一实施例提供的手势检测设备中,所述第一帧原始图像的第一手势检测区域的尺寸大于所述预设检测区域的尺寸。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:在所述第二手势检测区域内进行手势检测。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:确定所述第二手势检测区域内存在第二手势,并在所述第二帧原始图像中确定所述第二手势的第二手势范围;根据所述第二手势范围确定第三帧原始图像的第三手势检测区域。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:根据所述第二手势范围的中心坐标确定所述第三帧原始图像的第三手势检测区域的中心坐标;根据所述第二手势范围的尺寸确定所述第三帧原始图像的第三手势检测区域的尺寸,其中,所述第三帧原始图像的第三手势检测区域的尺寸为w×h,h为所述第二手势范围的最长边长的x倍,w为所述第二手势范围的最长边长的y倍,x和y均为大于0的整数。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:当确定所述第二手势检测区域内不存在第二手势时,对第三帧原始图像进行缩放处理和背景建模,以生成第三帧背景图像;对所述第三帧背景图像进行运动检测,以确定所述第三帧背景图像的运动区域;根据所述第三帧背景图像的运动区域,在所述第三帧原始图像中确定所述第三手势检测区域;在所述第三手势检测区域内进行手势检测。

例如,在本公开至少一实施例提供的手势检测设备中,所述计算机指令被所述处理器执行时还实现以下操作:在所述第一帧背景图像中对运动物体进行检测,以确定所述运动物体的轮廓区域;判断所述轮廓区域是否大于运动区域阈值,如果是,则确定所述轮廓区域为所述第一帧背景图像的运动区域。

本公开至少一实施例提供一种手势检测方法和手势检测设备,其通过运动检测减少手势检测器的扫描范围,降低计算量,提高计算速度,在不影响手势识别功能的前提下,保证电子设备流畅运行。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1为本公开一实施例提供的一种手势检测方法的示意性流程图;

图2a为本公开一实施例提供的第一帧原始图像的示意图;

图2b为图2a所示的第一帧原始图像的第一帧背景图像的示意图;

图3a为图2b所示的第一帧背景图像的运动区域的示意图;

图3b为图2a所示的第一帧原始图像中第一手势检测区域的示意图;

图3c为从图3b所示的第一帧原始图像中截取的第一手势检测区域的示意图;

图4为本公开一实施例提供的一种手势检测方法的又一示意性流程图;

图5a和图5b为本公开一实施例提供的第二帧原始图像的第二手势检测区域的示意图;

图6为图4中操作s20的示意性流程图;以及

图7为本公开一实施例提供的一种手势检测设备的示意性框图。

具体实施方式

为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。

人机交互(human-computerinteraction,简写为hci,或者,humanmachineinteraction)主要研究人与计算机(或者其他机器)之间的互动方式,其可以包括多种交互方式。人们与计算机(或者其他机器)之间可以通过鼠标、键盘和触摸屏等进行交互,还可以通过语音、手势、表情等进行交互。手势交互是利用计算机图形学等技术识别用户的肢体语言,并转化为命令来操作设备的一种交互方式。手势识别主要通过数学算法来识别用户的手势,从而使用户能够与计算机(或者其他机器)进行手势交互。

按照是否需要佩戴辅助设备,手势识别可以分为基于数据手套的手势识别和基于机器视觉的手势识别。基于数据手套的手势识别需要佩戴数据手套,其识别速度快,准确率较高,但数据手套的成本较高。基于机器视觉的手势识别则直接利用用户的手进行识别,其可以直观且方便地实现人机交互。又例如,按照表示手势的方法,手势识别可以分为静态手势识别和动态手势识别。静态手势识别用于识别用户手部的单个姿态,例如,手指伸展和弯曲、手掌打开或关闭等。动态手势识别则用于识别用户手部的运动轨迹和行进规律。

具有手势识别的电子设备通常使用常规的网络摄像头实时获取手势图像,同时使用鲁棒性较强的手势检测算法检测手势,以实现手势识别,其需要进行全屏检测,识别速度较慢,难以在终端设备上流畅运行。

本公开至少一实施例提供一种手势检测方法和手势检测设备,其通过运动检测减少手势检测器的扫描范围,降低计算量,提高计算速度,在不影响手势识别功能的前提下,保证电子设备流畅运行。

下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。

图1示出了本公开一实施例提供的一种手势检测方法的示意性流程图。

例如,如图1所示,本公开实施例提供的手势检测方法包括如下操作:

操作s10:对第一帧原始图像进行缩放处理和背景建模,以生成第一帧背景图像;

操作s12:对第一帧背景图像进行运动检测,以确定第一帧背景图像的运动区域;

操作s14:根据第一帧背景图像的运动区域,在第一帧原始图像中确定第一手势检测区域;以及

操作s16:在第一手势检测区域内进行手势检测。

例如,在操作s10中,可以采用插值算法对第一帧原始图像进行缩放处理,以缩小第一帧原始图像的尺寸。插值算法例如包括拉格朗日插值、最近邻插值、高斯插值、双线性插值、二次插值、三次插值、牛顿插值等。

例如,在操作s10中,背景建模可以采用帧间差分法、高斯建模法、近似中值滤波、卡尔曼滤波、基于颜色信息的背景建模法以及核密度估计方法等。帧间差分法的原理是在图像序列相邻两帧或三帧间采用基于像素的时间差分来提取出图像中的运动区域。高斯建模法是基于像素样本统计信息的背景表示方法,其利用像素在较长时间内大量样本值的概率密度等统计信息(例如模式数量、每个模式的均值和标准差)表示背景,然后使用统计差分(例如3σ原则)进行目标像素判断,可以对复杂动态背景进行建模。高斯建模法例如可以包括单高斯模型和混合高斯模型等。

例如,若电子设备采用安卓(android)操作系统,根据安卓操作系统的计算能力,可以调整背景建模的种类和升级速度,以使其适应安卓操作系统。例如,计算机可以每秒处理30帧图像,而安卓操作系统则只能每秒处理10帧图像。也就是说,相对于计算机,电子设备上的相邻帧图像之间的差异较大,那么电子设备上需要设置更为敏感的参数,从而使用户在电子设备上的手势操作的体验感与在计算机上的手势操作的体验感接近。

例如,如果手势变化较快,相邻帧原始图像之间的差异较大,在背景建模的过程中,可以设置更为敏感的背景建模参数,以减少背景图像和原始图像之间的误差,提高手势检测的正确率。例如,对于帧间差分法,若物体的运动较快,则可以选择较小的时间间隔;若物体的运动速度较慢,则可以选择较大的时间间隔。

图2a为本公开一实施例提供的第一帧原始图像的示意图,图2b为本公开一实施例提供的第一帧背景图像的示意图。

例如,图2b所示的第一帧背景图像由图2a所示的第一帧原始图像经过缩放处理和背景建模而形成。如图2b所示,在第一帧背景图像中,白色部分表示发生运动的运动区域,黑色部分表示未发生运动的区域。

例如,若手势为拳头,则手势识别需要手势所占区域的最小分辨率为40×40(例如,以像素为单位)。假设手势识别的操作距离是2米,那么各帧原始图像的分辨率需要大约为1280×960,才能使手势所占区域的最小分辨率大约为40×40。需要说明的是,操作距离表示用户的手与电子设备的图像采集端(例如,摄像头)之间的距离。例如,操作距离的范围为0.5米-2米。

需要说明的是,在本公开实施例中,图像的分辨率和尺寸均可以以像素为单位。例如,原始图像的分辨率为1280×960,即表示原始图像具有1280行960列的像素矩阵。

例如,电子设备可以为终端设备。终端设备例如可以包括智能手机、平板电脑、个人计算机、游戏设备等。图像采集端可以为智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头等,图像采集端还可以为数码照相机的镜头、网络摄像头等。在一些实施例中,终端设备和图像采集端可以为不同的设备,彼此分离;在另一些实施例中,图像采集端可以被包括在终端设备中。例如,图像采集端可以为终端设备内嵌的或外挂的摄像头。

需要说明的是,电子设备也可以是液晶电视等。本公开实施例对电子设备的类型不作限制。

例如,在一个示例中,第一帧原始图像的分辨率可以为1280×960,第一帧背景图像的分辨率可以为320×240。

例如,第一帧原始图像可以为彩色图像,也可以为灰度图像。

需要说明的是,在对第一帧原始图像进行背景建模前,手势检测方法还可以包括对第一帧原始图像进行预处理的操作。预处理可以消除第一帧原始图像中的无关信息或噪声信息。预处理例如可以包括对第一帧原始图像进行伽玛(gamma)校正、肤色提取、膨胀操作、灰度变换、色彩空间转换、图像增强或降噪滤波等处理。例如,第一帧原始图像的滤波操作可以包括空域方法和频域方法。空域方法主要包括平滑和滤波操作,频域方法主要包括傅里叶变换等各种频域变换操作。

例如,操作s12可以包括:在第一帧背景图像中对运动物体进行检测,以确定运动物体的轮廓区域;判断轮廓区域是否大于运动区域阈值,在确定轮廓区域大于或等于运动区域阈值的情况下,则确定轮廓区域为第一帧背景图像的运动区域,在确定轮廓区域小于运动区域阈值的情况下,则确定该轮廓区域属于噪声区域。

例如,在检测过程中,第一帧背景图像中的物体的运动都可以被检测到。因此,在第一帧背景图像中对运动物体进行检测后,可以获取多个运动物体的轮廓区域。若运动物体的轮廓区域较小,则确定其属于噪声区域,需要去除。

例如,运动区域阈值的分辨率可以为100个像素,即,当运动物体的轮廓区域的分辨率小于100个像素,则确定该运动物体的轮廓区域属于噪声区域。但不限于此,运动区域阈值的分辨率还可以为其他值,对此不作限制。

例如,操作s14可以包括:确定第一帧背景图像的运动区域的中心坐标;将第一帧背景图像的运动区域的中心坐标映射到第一帧原始图像上,以在第一帧原始图像上确定第一手势检测区域的中心坐标;以及根据第一手势检测区域的中心坐标,在第一帧原始图像上截取预定尺寸的区域作为第一手势检测区域。预定尺寸将在下面进行说明。

图3a为本公开一实施例提供的第一帧背景图像的运动区域的示意图;图3b为本公开一实施例提供的第一帧原始图像的第一手势检测区域的示意图;图3c为从图3b所示的第一帧原始图像中截取的第一手势检测区域的示意图。

图3b中的第一手势检测区域由图3a中的第一帧背景图像的运动区域映射到第一帧原始图像后得到。

例如,如图3a和3b所示,在一个示例中,第一帧背景图像的运动区域可以为图3a中圆形框圈出的白色轮廓的区域,圆形框可以为白色轮廓的外接圆。第一帧背景图像的运动区域的中心坐标例如可以为圆形框的圆心坐标。第一手势检测区域可以为图3b中矩形框圈出的区域。在第一帧原始图像中的第一手势检测区域(即图3b中矩形框圈出的区域)例如与图3a中的第一帧背景图像的矩形框圈出的区域相对应。也就是说,第一手势检测区域映射到第一帧背景图像上即得到图3a中的矩形框圈出的区域。

需要说明的是,在图3a和3b中,第一手势检测区域为矩形,但不限于此。根据实际需求,第一手势检测区域还可以为圆形、椭圆形、多边形等。

例如,在操作s14中,可以根据在操作s10中的缩放比例将第一帧背景图像的运动区域的中心坐标映射到第一帧原始图像上。在操作s10中,若第一帧原始图像按照比例f进行缩放处理以生成第一帧背景图像,且第一帧背景图像的运动区域的中心坐标为(x1,y1),即图3a中圆形框的圆心坐标为(x1,y1),其映射到第一帧原始图像上的坐标可以为(x2,y2),则x2=x1*f,y2=y1*f,即第一手势检测区域的中心坐标可以为(x1*f,y1*f)。在一个示例中,第一帧原始图像的分辨率为1280×960,第一帧背景图像的分辨率为320×240,则f为1280/320,即x2=x1*1280/320,y2=y1*960/240。

例如,在操作s14中,第一手势检测区域的预定尺寸可以为200×150。预定尺寸与第一帧原始图像的分辨率和操作距离相关。操作距离越小,则预定尺寸越大。第一帧原始图像的分辨率越高,则预定尺寸越大。预定尺寸可以根据实际应用需求而设置,只要保证该预定尺寸的区域能够将第一帧原始图像中的第一手势范围覆盖即可。例如,如图3a所示,在第一帧背景图像中,圆形框圈出的区域表示第一帧背景图像的运动区域,即圆形框圈出的区域可以与第一帧原始图像中的第一手势范围相对应,矩形框圈出的区域可以与第一帧原始图像中的预定尺寸的区域(即第一手势检测区域)相对应。矩形框圈出的区域覆盖圆形框圈出的区域,也就是说,第一帧原始图像中的第一手势检测区域覆盖第一帧原始图像中的第一手势范围。需要说明的是,第一手势范围将在下面进行说明。

例如,操作s16可以包括通过手势检测器使用第一尺度范围内的第一组尺度分别扫描第一手势检测区域,以实现手势检测。例如,第一尺度范围可以为40×40到150×150。第一组尺度可以包括多个不同大小的尺度。第一组尺度例如可以包括40×40、60×60、80×80、120×120等尺度。第一组尺度的数量和具体尺度可以根据实际情况设置,本公开对此不作限制。

本公开实施例提供的手势检测方法中,手势检测器仅需要在第一手势检测区域内进行手势检测,第一手势检测区域的尺寸小于第一帧原始图像的尺寸,从而可以减少计算量,提高手势检测的速度。

例如,手势检测主要包括手势分割、手势分析和手势识别。手势分割用于从第一手势检测区域中提取出第一手势范围,手势分割的方法可以包括基于运动检测的方法、基于运动模板的方法、基于颜色信息的方法等。手势分析用于获取手势的形状特征或运动轨迹。手势分析的方法包括边缘轮廓提取法、质心手指等多特征结合法以及指关节式跟踪法等。手势识别是将模型参数空间里的轨迹(或点)分类到该空间里某个子集的过程,其包括静态手势识别和动态手势识别。例如,手势识别的方法可以包括模板匹配法、神经网络法和隐马尔可夫模型法等。

例如,手势检测器可以采用基于模板匹配方法、线性子空间方法、基于概率统计的方法和神经网络方法等进行手势检测。例如,线性子空间方法包括主元分析(principalcomponentanalysis,pca)方法、线性判别分析(lineardiscriminateanalysis,lda)方法和因素分析(factoranalysis,fa)方法等。基于概率统计的方法包括隐马尔科夫模型(hiddenmarkovmodels,hmm)的方法、基于kullback信息理论的方法、支撑向量机(supportvectormachine,svm)方法、贝叶斯(bayes)决策方法和迭代(adaboost)方法等。神经网络方法可以包括径向基函数神经网络、卷积神经网络(cnn)、概率神经网络(pnn)等。

例如,在一个示例中,手势检测器可以包括神经网络。神经网络可以提取在第一手势检测区域内的第一原始图像的特征信息,并基于提取的特征信息确定第一手势的类型。利用手势检测器进行手势检测前,需要利用大量样本手势图像对手势检测器的神经网络进行训练。样本手势图像可以包括不同类型的手势图像,从而可以得到神经网络与不同类型的手势图像相对应的参数和特征模型。根据实际应用需求,样本手势图像可以包括握拳手势图像、手掌伸展手势图像、剪刀手手势图像等。例如,样本手势图像可以包括对不同年龄段、不同地方的人进行采样得到的手势图像,从而提高神经网络检测和识别手势的准确性。

图4为本公开一实施例提供的一种手势检测方法的又一示意性流程图,图5a和图5b为本公开一实施例提供的第二帧原始图像的第二手势检测区域的示意图;图6为图4中操作s20的示意性流程图。

例如,本公开实施例提供的手势检测方法可以包括运动检测阶段和连续手势追踪检测阶段。如图4所示,运动检测阶段包括操作s10至操作s16;连续手势追踪检测阶段包括操作s18至操作s22。

需要说明的是,操作s10至操作s16是以第一帧原始图像为例描述运动检测阶段,但不限于此,运动检测阶段可以适用于各帧原始图像,例如,第二帧原始图像、第三帧原始图像等。相应地,操作s18至操作s22是以第二帧原始图像为例描述连续手势追踪检测阶段,但不限于此,连续手势追踪检测阶段可以适用于各帧原始图像,例如,第三帧原始图像、第四帧原始图像等,只要把操作s18至操作s22中的第一帧原始图像和第二帧原始图像替换为相邻的两帧原始图像(例如,第三帧原始图像和第四帧原始图像)即可。

例如,如图4所示,操作s16还包括判断第一手势检测区域内是否存在第一手势。在第一手势检测区域内不存在第一手势的情况下,该手势检测方法还可以包括:对第二帧原始图像进行缩放处理和背景建模,以生成第二帧背景图像;对第二帧背景图像进行运动检测,以确定第二帧背景图像的运动区域;根据第二帧背景图像的运动区域,在第二帧原始图像中确定第二手势检测区域;以及在第二手势检测区域内进行手势检测。即,在第一手势检测区域内不存在第一手势的情况下,对第二帧原始图像执行运动检测操作。

若在各帧原始图像内没有检测到手势时,电子设备只需要对相应的各帧背景图像(例如,背景图像的分辨率为320×240)进行运动检测操作即可,从而节约计算时间。在运动检测过程中,如果电子设备检测到运动信息(例如,用户无意间摇头、图像采集端前有人路过等非主观行为),但没有检测到手势,则电子设备循环执行运动检测,即对每帧背景图像执行一次运动检测。

例如,如图4所示,在第一手势检测区域内存在第一手势的情况下,则从第二帧原始图像开始进行连续手势追踪检测。也就是说,在运动检测过程中,如果电子设备检测到手势运动(例如,挥手、抬手等),则电子设备可以根据相邻上一帧原始图像的手势范围确定相邻下一帧原始图像的手势检测区域,并在各帧原始图像的手势检测区域内进行手势检测,从而实现连续手势追踪检测。

例如,如图4所示,在连续手势追踪检测阶段,本公开实施例提供的手势检测方法包括以下操作:

操作s18:在确定第一手势检测区域内存在第一手势时,在第一帧原始图像中确定第一手势的第一手势范围;以及

操作s20:根据第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域。

例如,如图3c所示,区域50为第一帧原始图像中的第一手势范围,第一手势范围50可以为检测到的第一手势的外接矩形。但不限于此。根据实际需求,第一手势范围还可以为圆形、椭圆形、多边形等,只要第一手势范围能覆盖第一手势即可。

例如,第一手势可以为拳头、手掌伸展、剪刀手、食指伸展等。

例如,第一手势范围与第一手势的类型相关。不同类型的第一手势,则第一手势范围不相同。例如,若第一手势为拳头,第一手势范围可以为40×40;若第一手势为手掌伸展,则第一手势范围可以为40×60;若第一手势为剪刀手,则第一手势范围可以为30×60。但不限于此,第一手势的类型和第一手势范围可以根据用户实际需求预先设定。例如,当第一手势为拳头,第一手势范围也可以设定为50×50。

例如,第一手势范围还与操作距离和第一帧原始图像的分辨率相关。例如,操作距离越远,第一手势范围越小。第一帧原始图像的分辨率越高,第一手势范围的分辨率越高。

例如,关于第二帧原始图像的详细说明可以参考第一帧原始图像的描述,重复之处不再赘述。

例如,如图6所示,操作s20可以包括以下操作:

操作s201:根据第一手势范围的中心坐标确定第二帧原始图像的第二手势检测区域的中心坐标;

操作s202:根据第一手势范围的尺寸确定第二帧原始图像的第二手势检测区域的尺寸。

例如,在操作s201中,第二帧原始图像的第二手势检测区域的中心坐标即为第一手势范围的中心坐标,从而保证第一手势范围可以完全被第二手势检测区域覆盖。

例如,在操作s202中,第二帧原始图像的第二手势检测区域的尺寸可以表示为w1×h1,w1为第一手势范围的最长边长的y(例如,3)倍,h1为第一手势范围的最长边长的x(例如,2)倍,x、y均为大于0的整数。例如,如图5a所示,h1表示第二手势检测区域的高度,w1表示第二手势检测区域的宽度。

需要说明的是,上面对x、y的说明仅是示意性的,而非限制性的。根据实际情况,x、y还可以为其他值,例如,x可以为3,y可以为4。本公开实施例对x、y的值不作具体限制。

例如,如图6所示,在一个示例中,在执行操作s202后,手势检测方法还包括:

操作s203:判断第二帧原始图像的第二手势检测区域的尺寸是否大于预设检测区域的尺寸,如果是,则执行操作s204,即对第二帧原始图像的第二手势检测区域进行缩放处理,以使第二帧原始图像的第二手势检测区域的尺寸与预设检测区域的尺寸相同;如果不是,则执行操作s205,即保持第二帧原始图像的第二手势检测区域的尺寸不变。

本公开实施例提供的手势检测方法可以保证手势检测器在小范围内进行扫描检测,节约计算时间,同时又能对移动的手势做出连续的识别,该手势检测方法的计算速度并不受各帧原始图像大小的影响,所以可以允许原始图像具有较高的分辨率,从而延长手势识别的有效距离。

例如,在操作s202中,若用户的手与电子设备的图像采集端之间的距离较近,则检测到的第一手势范围较大,从而导致第二手势检测区域的尺寸较大。在对第二手势检测区域进行处理时,数据计算量有可能会超出安卓操作系统的计算能力。因此,若第二帧手势检测区域的尺寸大于预设检测区域的尺寸,则对第二帧手势检测区域进行缩放处理,以使第二帧手势检测区域的尺寸与预设检测区域的尺寸相同,然后利用手势检测器对缩小后的第二帧手势检测区域进行手势识别与检测,检测到第二手势后再把第二手势的坐标和边长拉伸映射到第二帧原始图像上相应的位置。

需要说明的是,在上述描述中,以第二帧原始图像为例进行说明,但不限于此。例如,在连续手势追踪检测阶段,可以对每一帧原始图像的手势检测区域执行操作s203。这样就可以固定每一帧原始图像的手势检测区域的检测时间的上限,防止由于各帧原始图像的手势检测区域的尺寸不一致而出现卡顿现象,进一步提高电子设备的流畅性。

例如,第一帧原始图像的第一手势检测区域的尺寸可以大于预设检测区域的尺寸。由于对第一帧原始图像进行运动检测后,检测到的是手或其他物体的晃动范围,还无法定位手的中心点或手的轮廓外接矩形的尺寸,即第一手势检测区域为人手的待检测区域,因此,需要加大检测范围以保证获得人手的确定位置和尺寸,为连续手势追踪检测提供优化的依据。

例如,预设检测区域的尺寸可以表示为p×q。p为手势所占最小区域的最长边长的y(例如,3)倍,q为手势所占最小区域的最长边长的x(例如2)倍,x、y均为大于0的整数。例如,在一个示例中,若手势为拳头,则手势所占区域的尺寸可以为40×40,从而预设检测区域的尺寸可以为120×80。在另一个示例中,若手势为剪刀手,则手势所占区域的尺寸可以为30×60,从而预设检测区域的尺寸可以为180×120。

例如,在执行操作s20后,如图4所示,该手势检测方法还包括:

操作s22:在第二手势检测区域内进行手势检测。

例如,操作s22可以包括通过手势检测器使用第二尺度范围内的第二组尺度分别扫描第二手势检测区域,以实现手势检测。

例如,第二尺度范围小于第一尺度范围。第二尺度范围与手势的类型相关。例如,在一个示例中,手势为拳头,则第二尺度范围可以为40×40到60×60。第二组尺度可以包括多个不同大小的尺度。第二组尺度例如可以包括40×40、50×50、55×55、60×60等尺度。第二组尺度的数量和具体尺度可以根据实际情况设置,本公开对此不作限制。

当人手与图像采集端之间的距离不同时,其手势范围也不同。人手与图像采集端之间的距离较远,例如2米,则手势范围较小;人手与图像采集端之间的距离较近,例如0.5米,则手势范围较大。为了确保无论人手与图像采集端之间的距离较远或较近,手势检测器都能检测到手势。在通过手势检测器进行手势检测的时候,需要设置参数使手势检测器采用不同的尺度多次扫描手势检测区域,从而保证检测出不同类型的手势。若手势检测器采用第一尺度范围(例如,40×40到150×150)内的所有尺度扫描手势检测区域,则会导致扫描时间较长。然而,在连续手势追踪检测阶段,对每一帧原始图像的手势检测区域进行缩放处理后,则可以采用第二尺度范围(例如,40×40到60×60)内的多个尺度在预设检测区域进行手势检测,从而减少计算时间,提高响应速度。

例如,如图4所示,操作s22还包括判断第二手势检测区域内是否存在第二手势。在第二手势检测区域内不存在第二手势的情况下,则确定在第二帧原始图像内手势检测丢失,然后对第三帧原始图像执行运动检测操作。例如,在一个示例中,在确定第二手势检测区域内不存在第二手势的情况下,该手势检测方法还包括:对第三帧原始图像进行缩放处理和背景建模,以生成第三帧背景图像;对第三帧背景图像进行运动检测,以确定第三帧背景图像的运动区域;根据第三帧背景图像的运动区域,在第三帧原始图像中确定第三手势检测区域;以及在第三手势检测区域内进行手势检测。

例如,在第二手势检测区域内存在第二手势的情况下,则对第三帧原始图像执行连续手势追踪检测操作。例如,在一个示例中,在第二手势检测区域内存在第二手势的情况下,手势检测方法还包括:

操作s24:确定第二手势检测区域内存在第二手势,在第二帧原始图像中确定第二手势的第二手势范围;

操作s26:根据第二手势范围确定第三帧原始图像的第三手势检测区域。

由于在每一帧原始图像中手势的尺寸和位置不会发生跳变,而是以一个合理的速度发生变化。即用户的手势经过一帧时间后仍然在相邻的上一帧原始图像的手势检测区域内,只是手势的位置发生了变化。因此,可以在第二手势检测区域内检测第二手势,并根据第二手势范围确定第三手势检测区域的尺寸。

例如,如图5b所示,区域51表示第二手势范围,区域60表示根据第一手势范围确定的第二手势检测区域。区域51可以为检测到的第二手势的外接矩形,第二手势检测区域60可以为矩形。但不限于此,根据实际需求,第二手势范围51还可以为圆形、椭圆形、多边形等,只要第二手势范围51能覆盖第二手势即可。相应地,第二手势检测区域60也可以为圆形、椭圆形、多边形等。

例如,第二手势也可以为拳头、手掌伸展、剪刀手、食指伸展等。

需要说明的是,关于第二手势和第二手势范围详细说明可以参考上述第一手势和第一手势范围的描述,关于第二帧原始图像的详细说明可以参考上述第一帧原始图像的描述,重复之处不再赘述。

例如,操作s26可以包括以下操作:

操作s261:根据第二手势范围的中心坐标确定第三帧原始图像的第三手势检测区域的中心坐标;

操作s262:根据第二手势范围的尺寸确定第三帧原始图像的第三手势检测区域的尺寸。

例如,在操作s261中,第三帧原始图像的第三手势检测区域的中心坐标即为第二手势范围的中心坐标,从而保证第二手势范围可以完全被第三手势检测区域覆盖。例如,如图5b所示,区域61表示根据第二手势范围确定的第三手势检测区域。第二手势范围51位于第三手势检测区域61的中心。

例如,如图5b所示,第二手势范围51为矩形,则第三手势检测区域61也可以为矩形。但不限于此,第三手势检测区域61也可以为圆形、椭圆形、多边形等。

例如,在操作s262中,第三帧原始图像的第三手势检测区域的尺寸可以表示为w2×h2,w2为第二手势范围的最长边长的y(例如,3)倍,h2为第二手势范围的最长边长的x(例如,2)倍,x、y均为大于0的整数。h2表示第三手势检测区域的高度,w2表示第三手势检测区域的宽度。

需要说明的是,在本公开以上说明中,仅以第一帧、第二帧和第三帧为例进行描述。但不限于此,对于第四帧、第五帧等各帧图像的手势检测操作,可以参考第一帧、第二帧和第三帧的相关描述。各帧图像均包括原始图像和背景图像。例如,第一帧包括第一帧原始图像和第一帧背景图像。

图7为本公开一实施例提供的一种手势检测设备的示意性框图。

例如,如图7所示,本公开实施例提供的手势检测设备可以包括处理器70和存储器75。应当注意,图7所示的手势检测设备的组件只是示例性的,而非限制性的,根据实际应用需要,该手势检测设备还可以具有其他组件。

例如,处理器70和存储器75之间可以通过网络连接进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。网络可以包括局域网、互联网、电信网、基于互联网和/或电信网的物联网(internetofthings)、和/或以上网络的任意组合等。有线网络例如可以采用双绞线、同轴电缆或光纤传输等方式进行通信,无线网络例如可以采用3g/4g/5g移动通信网络、蓝牙、zigbee或者wifi等通信方式。本公开对网络的类型和功能在此不作限制。

例如,处理器70和存储器75之间还可以通过总线系统(未示出)和/或其它形式的连接机构互连。

例如,处理器70可以控制手势检测设备中的其它组件以执行期望的功能。处理器70可以是中央处理单元(cpu)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如,图像处理单元(gpu)、现场可编程门阵列(fpga)或张量处理单元(tpu)等。中央处理器(cpu)可以为x86或arm架构等。gpu可以单独地直接集成到主板上,或者内置于主板的北桥芯片中。gpu也可以内置于中央处理器(cpu)上。

例如,存储器75可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在存储器75上可以存储一个或多个计算机指令,处理器70可以运行所述计算机指令,以实现各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如第一组尺度、第二组尺度、预设检测区域以及应用程序使用和/或产生的各种数据等。

例如,如图7所示,手势检测设备还可以包括输出装置80。输出装置80可以用于向外部(例如,用户等)输出各种操作信息(例如,手势操作的结果等)。例如,输出装置80可以为显示器、投影仪或扬声器等中的一个或多个。显示器可以通过图像或文字的方式输出各种操作信息,扬声器可以通过声音的方式输出各种操作信息。

例如,如图7所示,手势检测设备还可以包括输入装置85。输入装置85例如可以为智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、或者甚至可以是网络摄像头等。输入装置85可以用于从外部(例如,用户等)接收手势指令,从而实现手势交互。

例如,计算机指令被处理器70执行时可以实现以下操作:对第一帧原始图像进行缩放处理和背景建模,以生成第一帧背景图像;对第一帧背景图像进行运动检测,以确定第一帧背景图像的运动区域;根据第一帧背景图像的运动区域,在第一帧原始图像中确定第一手势检测区域;以及在第一手势检测区域内进行手势检测。

例如,在一个示例中,计算机指令被处理器70执行时实现的“对第一帧背景图像进行运动检测,以确定第一帧背景图像的运动区域”的操作,包括:在第一帧背景图像中对运动物体进行检测,以确定运动物体的轮廓区域;判断轮廓区域是否大于运动区域阈值,如果是,则确定轮廓区域为第一帧背景图像的运动区域。

例如,在一个示例中,计算机指令被处理器70执行时实现的“根据第一帧背景图像的运动区域,在第一帧原始图像中确定第一手势检测区域”的操作,包括:确定第一帧背景图像的运动区域的中心坐标;将第一帧背景图像的运动区域的中心坐标映射到第一帧原始图像上,以在第一帧原始图像上确定第一手势检测区域的中心坐标;以及根据第一手势检测区域的中心坐标,在第一帧原始图像上截取预定尺寸的区域作为第一手势检测区域。

例如,在一个示例中,在确定第一手势检测区域内不存在第一手势的情况下,计算机指令被处理器70执行时还可以实现以下操作:对第二帧原始图像进行缩放处理和背景建模,以生成第二帧背景图像;对第二帧背景图像进行运动检测,以确定第二帧背景图像的运动区域;根据第二帧背景图像的运动区域,在第二帧原始图像中确定第二手势检测区域;以及在第二手势检测区域内进行手势检测。

例如,在另一个示例中,在确定第一手势检测区域内存在第一手势的情况下,计算机指令被处理器70执行时还可以实现以下操作:在第一帧原始图像中确定第一手势的第一手势范围;根据第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域。

例如,在一个示例中,计算机指令被处理器70执行时实现的“根据第一帧原始图像的第一手势范围确定第二帧原始图像的第二手势检测区域”的操作,包括:根据第一手势范围的中心坐标确定第二帧原始图像的第二手势检测区域的中心坐标;根据第一手势范围的尺寸确定第二帧原始图像的第二手势检测区域的尺寸。

例如,第二帧原始图像的第二手势检测区域的尺寸为w1×h1,h1为第一手势范围的最长边长的x(例如,2)倍,w1为第一手势范围的最长边长的y(例如,3)倍,x和y均为大于0的整数。

例如,在一个示例中,计算机指令被处理器70执行时还实现以下操作:判断第二帧原始图像的第二手势检测区域的尺寸是否大于预设检测区域的尺寸,如果是,则对第二帧原始图像的第二手势检测区域进行缩放处理,以使第二帧原始图像的第二手势检测区域的尺寸与预设检测区域的尺寸相同,如果不是,则保持第二帧原始图像的第二手势检测区域的尺寸不变。

例如,第一帧原始图像的第一手势检测区域的尺寸大于预设检测区域的尺寸。

例如,在一个示例中,计算机指令被处理器70执行时还实现以下操作:在第二手势检测区域内进行手势检测。

例如,在一个示例中,在确定第二手势检测区域内存在第二手势的情况下,计算机指令被处理器70执行时还可以实现以下操作:在第二帧原始图像中确定第二手势的第二手势范围;根据第二手势范围确定第三帧原始图像的第三手势检测区域。

例如,在一个示例中,计算机指令被处理器70执行时实现的“根据第二手势范围确定第三帧原始图像的第三手势检测区域”的操作,包括:根据第二手势范围的中心坐标确定第三帧原始图像的第三手势检测区域的中心坐标;根据第二手势范围的尺寸确定第三帧原始图像的第三手势检测区域的尺寸。

例如,第三帧原始图像的第三手势检测区域的尺寸为w2×h2,h2为第二手势范围的最长边长的x(例如,2)倍,w2为第二手势范围的最长边长的y(例如,3)倍,x和y均为大于0的整数。

例如,在另一个示例中,在确定第二手势检测区域内不存在第二手势的情况下,计算机指令被处理器70执行时还可以实现以下操作:对第三帧原始图像进行缩放处理和背景建模,以生成第三帧背景图像;对第三帧背景图像进行运动检测,以确定第三帧背景图像的运动区域;根据第三帧背景图像的运动区域,在第三帧原始图像中确定第三手势检测区域;以及在第三手势检测区域内进行手势检测。

需要说明的是,关于第一手势、第二手势、第一手势范围、第二手势范围、第一手势检测区域的尺寸、第二手势检测区域的尺寸、预设检测区域的尺寸等的详细说明可以参考手势检测方法的实施例中的相关描述,重复之处在此不再赘述。

对于本公开,还有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

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