首页> 中国专利> 三维手势解锁方法、获取手势图像的方法和终端设备

三维手势解锁方法、获取手势图像的方法和终端设备

摘要

本申请提供了一种三维手势解锁方法、获取手势图像的方法和终端设备。该三维手势解锁方法包括:获取用户的当前手势图像;根据该当前手势图像,获取该当前手势图像中的当前手势的轮廓数据;根据该当前手势的轮廓数据,确定该当前手势的指尖像素点和/或该当前手势的指根像素点;根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据;在该当前手势的特征数据与预设手势的特征数据匹配成功时,解锁该终端设备。根据本申请实施例的三维手势解锁方法,为用户提供了一种全新的趣味性强、准确性高和快速性好的解锁方式。

著录项

  • 公开/公告号CN108351708A

    专利类型发明专利

  • 公开/公告日2018-07-31

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201780004005.3

  • 发明设计人 邵明明;王林;

    申请日2017-04-10

  • 分类号

  • 代理机构北京龙双利达知识产权代理有限公司;

  • 代理人王君

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 06:31:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-03

    授权

    授权

  • 2018-08-24

    实质审查的生效 IPC(主分类):G06F3/01 申请日:20170410

    实质审查的生效

  • 2018-07-31

    公开

    公开

说明书

本申请要求于2016年10月14日提交中国专利局、申请号为201610898260.4、发明名称为“一种智能交互设备的非接触式三维手势解锁的方法和设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及图像识别领域,并且更具体地涉及一种三维手势解锁方法、获取手势图像的方法和终端设备。

背景技术

通常终端设备处于无人交互时会处于锁定的不可交互状态,当用户需要对终端设备设备操作时需要首先通过某种身份鉴别方式进行解锁,以使终端设备进入可交互状态。在确保该用户有正确的权限后才解锁终端设备,以保证终端设备信息的安全。

目前常用的终端设备解锁方式包括:数字密码解锁、图案密码解锁、指纹解锁、虹膜解锁和人脸解锁。数字密码解锁方式密码固定,只要密码输入正确即可解锁,无法分辨是谁输入的密码,因此任何人只要看到拥有者输入过程后都可以操作并解锁终端设备。图案密码解锁方式也存在固定性的缺陷,由于其输入过程更加形象,因此更加容易被其他人看到并记住。指纹解锁方式对指纹依赖性强,而手指是人与外界接触最多的身体部位之一,在不经意间摩擦、磕碰、沾水使得指纹发生变化后容易在解锁时无法被终端设备识别。并且,指纹识别属于接触式测量,多人触摸时不卫生,受污迹影响严重。虹膜解锁方式需要由摄像头对虹膜图像进行采集,因此对环境光亮依赖性高,在外界光较弱时难以获取清晰的虹膜图像,影响识别的准确性。并且,图像采集过程中需要用户眼睛位于最佳成像位置,眼睛较小的用户还需要睁大眼睛来采集,造成一定的繁琐。由于虹膜本身面积较小,对摄像头像素要求高,在提高硬件成本的同时还带来了更复杂的运算量。人脸解锁方式也需要由摄像头采集人脸图像,对环境光亮依赖性高,难以应用于外界光弱的环境。同时,人脸识别时容易受到化妆品、头发和眼睛等的影响,从而降低识别率。

在交互式终端设备越来越智能的今天,人们对终端设备本身操作的趣味性、准确性、快速性要求越来越高。由此,针对目前终端设备解锁方式存在的缺陷,需要一种全新的趣味性强、准确性高和快速性好的解锁方式。

发明内容

本申请提供了一种三维手势解锁方法、获取手势图像的方法和终端设备,能够提高用户体验。

第一方面,提供了一种三维手势解锁方法,该方法可以应用于终端设备,该方法包括:

获取用户的当前手势图像;

根据该当前手势图像,获取该当前手势图像中的当前手势的轮廓数据;

根据该当前手势的轮廓数据,确定该当前手势的指尖像素点和/或该当前手势的指根 像素点;

根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据;

在该当前手势的特征数据与预设手势的特征数据匹配成功时,解锁该终端设备。

根据本申请实施例的三维手势解锁方法,通过实时获取用户在摄像头前方三维空间内所呈现的立体手势图像,提取手势图像中用户的手势,并通过与用户之前设定的解锁手势匹配,达到解锁终端设备的目的。从而,为用户提供了一种全新的趣味性强、准确性高和快速性好的解锁方式。

在一种可能的实现方式中,该根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据,包括:

根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势中的以下信息中的至少一种:

手指个数、手指长度、指尖位置特征数据和手指宽度特征数据,其中,该指尖位置特征数据用于指示手指之间的相对位置,该手指宽度特征数据用于指示手指宽度。

在一种可能的实现方式中,该根据该当前手势图像,获取该手势图像中的当前手势的轮廓数据,包括:

根据该当前手势图像的当前帧数,确定是否需要对该当前手势进行轮廓提取;

当确定需要对该当前手势进行轮廓提取时,搜索该当前手势的轮廓像素点直至搜索完该当前手势的所有轮廓像素点或经过搜索的像素点数量大于预设检测阈值,以获取该当前手势的轮廓数据。

通过设置预设检测阈值有利于在寻找到所有手指边界像素点的情况下减少其他轮廓像素点的查找,从而提高效率。

在一种可能的实现方式中,该方法还包括:

当确定不需要对该当前手势进行轮廓提取时,根据指数平均数(Exponential Moving Average,EMA)算法确定该当前手势的预测指尖像素点和该当前手势预测指根像素点;

根据该当前手势的预测指尖像素点和该当前手势的预测指根像素点,获取该当前手势的轮廓数据。

在一种可能的实现方式中,该根据该当前手势的轮廓数据,确定该当前手势的指尖像素点和/或该当前手势的指根像素点,包括:

根据该当前手势的轮廓数据,确定该当前手势的中的v段弧线,v为大于或等于1的整数;

根据该当前手势中的第s段弧线的开始像素点和该第s段弧线的结束像素点,确定该第s段弧线的中心像素点,s遍历[1,v]中的整数;

根据该第s段弧线的中心像素点到该第s段弧线的中心像素点之前的k个像素点所构成的向量m,以及该第s段弧线的中心像素点到该第s段弧线的中心像素点之后的k个像素点所构成的向量n,确定该第s段弧线的中心向量p,该中心向量p平分该向量m和该向量n所构成的两个角度中的较小角度,k为大于或等于1的整数;

当该中心向量p所指向方向上的像素点所在的位置与该深度摄像头之间的距离在预设距离区间时,确定该中心向量p所对应的中心像素点为指尖像素点,或

当该中心向量p所指向方向上的像素点所在的位置与该深度摄像头之间的距离不在 预设距离区间时,确定该中心向量p所对应的中心像素点为指根像素点。

在一种可能的实现方式中,该确定该当前手势中的手指长度包括:

确定该指尖像素点与位于该指尖像素点左边的指根像素点之间的第一距离,以及该指尖像素点与位于该指尖像素点右边的指根像素点之间的第二距离;

当该第一距离与该第二距离之差的绝对值大于预设长度阈值时,将该第一距离与该第二距离两者中的较小者在该指尖像素点所在的手指方向上的投影确定为该手指长度,

当该第一距离与该第二距离之差的绝对值小于或等于预设长度阈值时,将该第一距离在该指尖像素点所在的手指方向上的投影与该第二距离在该指尖像素点所在的手指方向上的投影的均值确定为该手指长度。

在一种可能的实现方式中,该确定该当前手势中的手指长度包括:

当该指尖像素点的右边不存在指根像素点,或当该指尖像素点的左边不存在指根像素点时,

确定该指尖像素点与位于该指尖像素点左边的指根像素点之间的第三距离,或

确定该指尖像素点与位于该指尖像素点右边的指根像素点之间的第四距离;

将该第三距离在该指尖像素点所在的手指方向上的投影确定为该手指长度,或

将该第四距离在该指尖像素点所在的手指方向上的投影确定为该手指长度。

在一种可能的实现方式中,该指尖位置特征数据Dj满足以下公式:

其中,k为该当前手势中最长手指的长度,k>0,n为该当前手势中的手指的个数,n为大于或等于1的整数,p为该当前手势中的指尖像素点其在x、y为该指尖像素点在该当前手势图像中的坐标,x和y均为实数,z为该指尖像素点在该当前手势图像中的深度值,z≥0。

在一种可能的实现方式中,该确定该手势图像中的手指宽度特征数据包括:

将该当前手势中每个手指的长度在手指方向上平均分为m+1份,m为大于或等于0的正整数;

对于该当前手势中每个手指,计算在等分点位置上垂直于该手指方向的宽度,得到m*n个绝对宽度值,其中,n为该当前手势中的手指个数,n为大于或等于1的整数;

计算该m*n个绝对宽度值中的每两个绝对值宽度的比值,得到mn(mn-1)/2个相对宽度构成的特征向量值{di,i=1,2,…,mn(mn-1)/2};

将该特征向量值{di,i=1,2,…,mn(mn-1)/2}确定为该手指宽度特征数据。

在一种可能的实现方式中,该方法还包括:

在该当前手势的特征数据与预设手势的特征数据未匹配成功时,确定解锁过程时间是否超时;

若该解锁过程时间超时,在预设时间段后对该终端设备进行锁屏处理。

在一种可能的实现方式中,在根据该当前手势图像,获取该当前手势图像中的当前 手势的轮廓数据之前,该方法还包括:

基于该用户的开始设置解锁手势操作获取并向该用户呈现候选手势图像;

基于该用户的确定操作将该候选手势图像中的候选手势设置为预设手势。

在一种可能的实现方式中,在该基于该用户的确定操作将该候选手势图像中的候选手势设置为预设手势之前,该方法还包括:

确定该候选手势的手指个数是否大于或等于3;

若该候选手势的手指个数大于或等于3,基于该用户的确定操作将该候选手势设置为该预设手势;

其中,该方法还包括:

获取该候选手势的特征数据。

第二方面,提供了一种获取手势图像的方法,包括:

获取用户的当前手势图像;

根据该当前手势图像,获取该当前手势图像中的当前手势的轮廓数据;

根据该当前手势的轮廓数据,确定该当前手势的指尖像素点和/或该当前手势的指根像素点;

根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据。

根据本申请的获取手势图像的方法,通过根据当前手势图像中的当前手势的轮廓数据,可以获得当前手势的指尖像素点和/或该当前手势的指根像素点,从而可以确定当前手势的特征数据。

在一种可能的实现方式中,该根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据,包括:

根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势中的以下中的至少一种:

手指个数、手指长度、指尖位置特征数据和手指宽度特征数据,其中,该指尖位置特征数据用于指示手指之间的相对位置,该手指宽度特征数据用于指示手指宽度。

第三方面,提供了一种终端设备,用于执行第一方面或第一方面任意可能的实现方式中的方法。具体地,该终端设备可以包括用于执行第一方面或第一方面任意可能的实现方式中的方法的单元。

第四方面,提供了一种终端设备,用于执行第二方面或第二方面任意可能的实现方式中的方法。具体地,该终端设备可以包括用于执行第二方面或第二方面任意可能的实现方式中的方法的单元。

第五方面,提供了一种终端设备,包括存储器、处理器和显示器,该存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,当程序被运行时,该处理器执行上述第一方面或第一方面任意可能的实现方式中的方法。

第六方面,提供了一种终端设备,包括存储器、处理器和显示器,该存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,当程序被运行时,该处理器执行上述第二方面或第二方面任意可能的实现方式中的方法。

第七方面,提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。

第八方面,提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。

附图说明

图1是实现本申请的三维手势解锁方法的终端设备的一个最少硬件系统的示意图。

图2是根据本申请实施例的三维手势解锁方法的示意性流程图。

图3是根据本申请一个实施例的搜索轮廓像素点时的搜索方向的示意图。

图4是根据本申请一个实施例的检测轮廓像素点的顺序的示意图。

图5是根据本申请一个实施例的确定指尖像素点和指根像素点的方法示意图。

图6是根据本申请实施例的三维手势解锁方法中的设置预设手势的一个实施例的示意性流程图。

图7是根据本申请实施例的三维手势解锁方法的一个具体实施例的示意性流程图。

图8根据本申请实施例的获取手势图像的方法的示意性流程图。

图9是根据本申请实施例的终端设备的一例示意性框图。

图10是根据本申请实施例的终端设备的另一例的示意性框图。

图11是根据本申请实施例的终端设备的再一例的示意性框图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

本申请针对目前设备解锁方式存在的缺陷,通过对终端设备增加深度摄像头,实时获取用户在深度摄像头前方三维空间内所呈现的立体手势图像,提取手势图像中用户的手势,通过与用户之前设定的解锁手势匹配,达到解锁终端设备的目的。从而,为用户提供了一种全新的趣味性强、准确性高和快速性好的解锁方式。

本申请是实施例的终端设备可以是接入终端、用户设备(user equipment,UE)、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、无线通信设备、用户代理或用户装置。终端设备可以是蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字处理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备等。

图1是实现本申请的三维手势解锁方法的终端设备的一个最少硬件系统100的示意图。图1所示的系统100包括:光源发射器110、深度摄像头120、光谱分析模块130、彩色摄像头140、中央处理器150、触摸屏160、非易失性存储器170和内存180。

彩色摄像头140,光源发射器110和深度摄像头120组成光谱输入模块,光谱分析模块130构成图像生成模块。光源发射器110、彩色摄像头140和深度摄像头120可以并排安装于设备上方(例如,设备正上方中央位置)。光源发射器110可以是红外发射器,深度摄像头120可以是红外摄像头,光谱分析模块130可以是红外光谱分析模块。在该情况下,光源发射器110与深度摄像头120配合工作,通过红外光编码影像放映场景。光源发射器110输出普通激光光源,经磨砂玻璃与红外滤光片过滤后形成近红外光。其中,光源发射器110可以持续全面输出波长为840纳米(nm)的红外光。

深度摄像头120是一个互补金属氧化物半导体(Complementary Metal Oxide  Semiconductor,CMOS)图像传感器,用于接收外界反射来的激励光源,比如红外光,将激励光源进行数字编码后形成数字影像传输给光谱分析模块130。光谱分析模块130分析散斑,计算出图像对应像素点与深度摄像头120的距离,并构成深度数据矩阵供驱动程序读取。

中央处理器150用于手势分析与解锁行为判断及外设控制。非易失性存储器170用于保存程序文件、系统文件和手势特征信息。内存180用于系统与程序运行缓存。触摸屏160用于与用户交互。具体地,中央处理器150读取深度数据,提取用户手势特征数据。当用户在设定解锁手势时实时分析手势特征,将识别的用户手势处理后显示在触摸屏160,当用户确定将触摸屏160显示的手势设置为解锁手势时,按下确认按键。同时中央处理器150进一步提取手势特征值,并将其保存在非易失性存储器170中。在用户需要验证手势以解锁屏幕时实时获取手势数据,提取手势特征,与保存的设定手势特征数据比对,如果匹配,则解锁成功,否则解锁失败。

下面,将详细描述根据本申请实施例的终端设备的三维手势解锁方法。

图2是根据本申请一个实施例的三维手势解锁方法的示意性流程图。图2所示的方法由终端设备执行,例如,可以由图1所示的终端设备执行。

S210,获取用户的当前手势图像。

具体地,获取当前手势图像可以理解为获取当前的深度图像。其中,深度图像也被称为距离映像(range image),是指将从图像采集器(例如,本申请中的深度摄像头120)到场景中各点的距离(深度)作为像素值的图像,它直接反映了景物可见表面的几何形状。

举例来说,在该方法由图1所示的终端设备执行时,深度摄像头120通过接收外界反射来的激励光源,比如红外光,将激励光源进行数字编码后形成数字影像传输给光谱分析模块130。光谱分析模块130分析散斑,计算出当前手势图像中对应像素点(x,y)与深度摄像头120的距离z,从而可以获取当前手势图像。

S220,根据当前手势图像,获取当前手势图像中的当前手势的轮廓数据。

S230,根据当前手势的轮廓数据,确定当前手势的指尖像素点和/或当前手势的指根像素点。

S240,根据当前手势的指尖像素点和/或当前手势的指根像素点,确定当前手势的特征数据。

具体地,S220~S240步骤的作用是根据当前手势图像,识别用户的当前手势。

示例性的,本申请所描述的轮廓数据可以指手势图像中的构成手势轮廓的各个像素点的坐标(x,y,z)。可选地,可以根据当前帧数,采用过方式一或方式二获取当前手势的轮廓数据。

具体来讲,本申请实施例可以采用加速识别策略,对每L帧(例如,每5帧)手势图像中的第1帧手势图像采用方式一获取手势图像中手势的轮廓数据,对于剩余的L-1帧(例如,剩余的4帧)图像,采用方式二获取手势图像中手势的轮廓数据。

也就是说,如果当前手势图像是每L帧中的第1帧,则通过方式一获取当前手势的轮廓数据;如果当前手势图像是每L帧中的剩余L-1帧中的任意一帧,则通过方式二获取当前手势的轮廓数据。

下面,具体介绍采用方式一和方式二获取当前手势的轮廓数据的方法。

方式一:对当前手势进行完整的轮廓提取。

轮廓提取主要是找到当前手势中人手边缘的像素点在深度图像中的坐标,并且,可以将各像素点的坐标封装成一个结构体,依次记录到一个有序链表中,供后续步骤使用。

具体地,搜索当前手势中的轮廓像素点,直至搜索完当前手势中的所有轮廓像素点,从而获得当前手势中的轮廓数据。或者,搜索当前手势中的轮廓像素点,直至经过搜索的像素点数量大于预设检测阈值时停止搜索,从而获得当前手势中的轮廓数据。

作为示例而非限定,在搜索当前手势中的轮廓像素点时,可以首先对当前手势图像进行降噪处理;然后,获取经过该降噪处理后的当前手势图像中的当前手势的第一个人手轮廓像素点;再根据该第一个人手轮廓像素点获取经过该降噪处理后的当前手势图像中的其他人手轮廓像素点,直至搜索结束。

(1)图像降噪

本申请中的当前手势图像可以是一个深度图像,深度图像获取过程中会产生一些噪声,噪声产生的来源分为内部和外部。内部噪声可能由光电基本性质引起,由机械振动引起,或者是由元器件缺陷引起。外部噪声可能由电磁串扰引起,由空气中杂质引起,或者是由手上附着的杂质引起。这些噪声在图像上表现为椒盐噪声和随机噪声。

针对深度图像中最可能产生的椒盐噪声,本申请实施例中可以采用中值滤波方式降低图像中的噪声干扰。如式(1)所示,med表示取中值操作,滤波方法是对滑动滤波窗口2I+1内的像素做大小排序,该序列的中值赋给当前像素值。I为大于或等于1的正整数,xk表示像素点。

xk=med{xk-I,xk-I+1,...xk,...xk+I}       (1)

应理解,本申请实施例对进行图像降噪时所采用的方法不作限定。例如,本申请还可以采用均值滤波方式、小波滤波方式等对深度图像进行降噪处理。具体地降噪处理方式可以参照现有技术,此处不作详细介绍。

(2)寻找当前手势中的第一个轮廓像素点

首先判断获取的手势图像,即当前手势图像中是否有手势。换句话说,判断是否存在当前手势。如果当前手势图像中存在与深度摄像头的距离在预设距离区间的像素点,且至少有一个在该像素点上方、下方、左方或右方的相邻像素点与深度摄像头的距离超过这个预设距离区间,则认为当前手势图像中存在手势。

应理解,该预设距离区间可以由用户在设置解锁手势阶段时来设置,也可以由系统定义。该预设距离区间的上下限值可以根据大多数用户手势与深度摄像头距离的值来定义或设置。比如,该距离区间可以是20cm-40cm。下限20cm的选取根据深度摄像头的广角和普通人手的大小而定,目的是为了让人手的深度图像能都被摄像头所获取。上限40cm的选取出于人手在距离较远后所能获取到数据的细微程度的考虑,在保证人手细微数据准确获取的前提下尽量拓宽用户可用距离范围。

在判断当前手势图像中是否有手势时,例如,可以首先判断当前手势图像中心部位,即当前帧的中心位置像素点与深度摄像头的距离是否处于该预设距离区间。如果深度图像中心部位与深度摄像头的距离不处于该预设距离区间,则以多个(例如10个)像素点的距离为间隔依次向左、右、上、下、左上、右上、左下、右下八个方向探测。当寻找到相邻两个处于预设距离区间的像素点时,结束探测,并开始查找第一个人手轮廓像素 点。而如果没有寻找到相邻两个处于预设距离区间的像素点,则说明当前手势图像中没有手势。

在上述步骤中,当寻找到相邻两个处于预设距离区间的像素点后,可以从有效像素点,即该两个像素点中的任一像素点向左方搜索,查找第一个轮廓像素点。

例如,可以从有效像素点向左方搜索,采用折半查找的方式,判读当前像素点的深度值是否处于边界点。判断当前像素点的深度值是否处于边界点的方法是当前像素点与深度摄像头的距离处于预设距离区间,并且与当前像素点相邻的像素点与深度摄像头的距离不处于预设距离区间。这里的相邻是指在当前像素点上方、下方、左方或右方的像素点。

采用折半查找的方式查找时,如果当前像素点与深度摄像头的距离处于预设距离区间,说明人手轮廓像素点在该像素点的左边,则向左方继续折半查找;如果当前像素点与深度摄像头的距离不处于预设距离区间,则说明人手轮廓像素点在该像素点的右边,则向右方折半查找。如果寻找到处于边界点的像素点,则记录该像素点位置并保存,该像素点即为第一个轮廓像素点,并跟踪检测当前手势的其他轮廓像素点。如果没有寻找到处于边界点的像素点,则说明当前手势过大,该帧手势图像,即当前手势图像不符合要求,因此不再继续处理。

应理解,折半查找法只是查找轮廓像素点的一个具体实施例,采用折半查找法可以提高查找效率,但本申请实施例对查找轮廓像素点的方式不作具体限定。

(3)跟踪检测当前手势的其他轮廓像素点

寻找到第一个轮廓像素点后可以跟踪检测与之相近的其他轮廓像素点。在这个过程中,首先,确定寻找方向。

本申请可以定义例如如图3所示的四个搜索方向以加速跟踪。

如图3所示,灰色方框表示当前有效像素点(轮廓像素点),图3中的(a)为向左上方搜索,图3中的(b)为向右上方搜索,图3中的(c)为向左下方搜索,图3中的(d)为向右下方搜索。图中数字表示相邻像素点检测的顺序。由于手指边界多分布在垂直方向,因此四种搜索方式均加强在垂直方向上的查找。对于一个像素点,按上一个像素搜索的方向开始搜索,左上方搜索不到时向右上方搜索,右上方搜索不到时向右下方搜索,右下方搜索不到时向右上方搜索,仍搜索不到时尝试从所有方向搜索。

如果寻找到之前已经记录过的像素点,则改变方向为上一个像素点被找到时所对应的方向,并且逆时针寻找。判断一个像素点是否被保存过的方法是维护一个哈希表,每找到一个有效点都将其以位置值为key加入哈希表,此后可以用位置参数判断该像素点是否被找到过。

如果仍找到之前已经记录过的像素点,则判断当前像素点是否处于边缘垂直或者水平的像素线上。如果不处于此像素线,则说明搜索完所有轮廓像素点。如果该像素点正上方和正下方像素点均不是有效点,则该像素点处于水平单像素线;如果该像素点正左方和正右方像素点均不是有效点,则该像素点处于垂直单像素线。接下来处理单像素线的情况。

如图4中的(a)所示,当检测到第6个像素点后会检测到第5个像素点,而该像素点已经被检测过,而且上方和下方的像素均不是有效像素点,则第6个像素点处于水平单像素线上,则向5位置的右方检测。

如图4中的(b)所示,当检测到第5个像素点后会检测到第4个像素点,而该像素点已经被检测过,而且左方和右方的像素均不是有效像素点,则第5个像素点处于垂直单像素线上,则向4位置的上方检测。

在满足搜索结束条件时,结束搜索操作。

搜索结束的条件可以是搜索完当前手势图像中的当前手势的所有轮廓像素点,或者是经过搜索的像素点数量大于预设检测阈值。也就是说,如果搜索完当前手势图像中的当前手势中的所有轮廓像素点,则结束搜索操作。或者,当已经搜索的像素点的个数大于预设检测阈值,比如已经搜索的像素点的个数大于750个时,则结束搜索操作。

限定有效点检测个数上限,即设定预设检测阈值有利于在寻找到所有手指边界像素点的情况下减少其他轮廓像素点的查找,从而提高效率。

本申请实施例中的手势图像可以是640x480分辨率的深度图,对于640x480分辨率的深度图,可以将预设检测阈值设置为750。

方式二:不对当前手势进行完整的轮廓提取。

作为示例而非限定,可以通过指数平均数EMA算法确定当前手势图像中的当前手势的预测指尖像素点和预测指根像素点;然后,根据预测指尖像素点和预测指根像素点,获取当前手势的的轮廓数据。

例如,可以采用EMA算法,在不进行完整的轮廓提取的前提下对当前手势进行指尖和指根的位置识别,对当前帧中每一个指尖点和指根点,采用式(2)进行位置预测。公式(2)中,st+1是t+1时刻预测的位置,st是t时刻预测的位置,ot是t时刻的实际位置,ω是加权因子(0<ω<1)。

st+1=ωot+(1-ω)st       (2)

该方法需要一系列的预测值,本申请实施例可以维护一个最近多帧(例如,10帧)图像中指尖点、指根点和手指个数的有序链表,当需要计算下一帧图像中某点的预测位置时,将所有这多帧(例如,10帧)图像中相应点的位置信息输入给EMA算法。

举例来说,如果是维护一个近10帧图像中指尖点、指根点和手指个数的有序链表,那么10用来限定系数ω,ω的取值2/(10+1)。这10帧图像中第1帧图像中指尖点和指根点的位置就是实际位置。

在计算出预测指尖像素点和预测指根像素点后,可以获取预测指尖像素点和预测指根像素点周围的轮廓像素点,从而获取手势图像的轮廓数据。例如,可以以n维矩阵为范围,检测矩阵中处于手势轮廓的像素点,然后分别向前和向后跟踪其他一定数量的手势轮廓的像素点,并将跟踪到的点加入轮廓有序链表,这样即可在不进行完整的轮廓提取步骤的前提下得到指尖像素点、指根像素点的周围的轮廓有序链表。

在通过方式一或方式二获取到当前手势的轮廓数据后,可以进一步确定当前手势的指尖像素点和/或当前手势的指根像素点,最终获取当前手势的特征数据。

可选地,作为本申请一个实施例,可以通过以下步骤确定当前手势的指尖像素点和/或当前手势的指根像素点:

根据当前手势的轮廓数据,确定当前手势中的v段弧线,v为大于或等于1的整数;

根据当前手势中的第s段弧线的开始像素点和第s段弧线的结束像素点,确定第s段弧线的中心像素点,s遍历[1,v]中的整数;

根据第s段弧线的中心像素点到第s段弧线的中心像素点之前的k个像素点所构成的向量m,以及第s段弧线的中心像素点到第s段弧线的中心像素点之后的k个像素点所构成的向量n,确定第s段弧线的中心向量p,中心向量p平分向量m和向量n所构成的两个角度中的较小角度,k为大于或等于1的整数;

当中心向量p所指向方向上的像素点所在的位置与深度摄像头之间的距离在预设距离区间时,确定中心向量p所对应的中心像素点为指尖像素点,或

当中心向量p所指向方向上的像素点所在的位置与深度摄像头之间的距离不在预设距离区间时,确定中心向量p所对应的中心像素点为指根像素点。

应理解,v段弧线表示为当前手势中的弧线的数量为v。

具体而言,首先,可以首先通过K曲率算法获得当前手势中的弧线。K曲率算法定义常量k用来描述点间距,角度a用来描述弧度处与两边像素点形成的角度。例如,可以将k定义为25,角度a定义为50度,本申请实施例对此不作特殊限定。对轮廓有序链表中每个像素点,可以构建两个相交向量m、n。两个向量起点都是当前像素点,向量m的终点是在当前像素点之前的第k个像素点,向量n的终点是在当前像素点之后的第k个像素点。然后,计算两个向量之间的夹角,当小于角度a时,则标记当前像素点为弧度点。这样,可以获得当前手势中的所有弧度点,相邻的弧度点构成一段弧线。

另外,在上述方式一中,即完整的轮廓提取过程中,当第一个人廓像素点处于前手臂边缘且与第一个手指距离较远时,由于有效点检测个数的限制,可能会造成在还没有检测到当前手势中的所有手指时就因为有效点达到上限而终止的情况。为避免该情况的发生,在本申请实施例中,可以在提取到第一个弧线点后,计算与第一个人手廓像素点的差值,经判断如果该差值过大,例如大于某一预设数值,则对有效点检测个数即预设检测阈值进行修正,增大预设检测阈值,以便能够继续跟踪检测轮廓像素点,完成所有可以检测到的轮廓像素点的提取。

然后,进行指尖和指根识别,确定指尖像素点和指根像素点。

具体方法是,遍历轮廓像素点链表,寻找弧线开始像素点和结束像素点。由于手指指尖和指根弧线的中心对称性,设定弧线中心点为指尖像素点或指根像素点。

例如,如图5所示,取弧线中心点的两个相交向量m、n,m、n的中心向量p,如果向量p所指方向上的像素点与深度摄像头的距离超过预设距离区间,则该中心点为手指底部的中心点,即指根像素点,否则就是指尖像素点。其中,手指方向由向量p描述。

由于手势变化具有多样性和快速性,为了实时精确检测到指尖像素点和/或指根像素点,可选地,本申请实施例可以使用卡尔曼滤波对每个指尖像素点和/或每个指根像素点进行预测进而确定指尖或指根的精确位置。

首先,定义指尖在t时刻时的状态向量xt,如式(3)所示。x、y是指尖点在图像中的坐标,vx、vy是指尖点在x、y轴上的移动速度。

指尖状态向量在t+1时刻的估计xt+1如式(4)所示。状态转移矩阵A定义为式(5),噪声变化矩阵B定义为式(6)。wt是估计过程中的噪声,服从高斯分布N(0,Qt),均值为0,Q定义为式(7),对角线上后两个8表示指尖点坐标的变化速度幅值。

xt+1=Axt+Bwt           (4)

在上一步骤中计算的指尖识别结果在t时刻的定义如式(8)所示,计算矩阵C定义为式(9),vt是计算结果与真实位置的误差,也服从高斯分布N(0,Qt),均值为0。wt、vt的协方差矩阵分别是其中I2×2是2×2单位矩阵。

yt=Cxt+vt         (8)

接下来定义本发明使用的卡尔曼滤波器。滤波增益方程Kt定义为式(10),表示计算值与估计值差的权重。状态的一步预测方程等同于定义为式(11),表示yt-1之后的预测值。均方误差的一步预测方程等同于定义为式(12),表示的估计误差,Λ等于BBT。由的计算结果可得到指尖的精确位置(x,y)。

这样,可以获得当前手势的更精确的指尖像素点和/或指根像素点。

之后,可以根据所述当前手势的指尖像素点和/或所述当前手势的指根像素点,确定当前手势的特征数据。

示例性的,当前手势的特征数据,主要包括当前手势中的以下信息中的至少一种:手指个数、手指长度、指尖位置特征数据和手指宽度特征数据。其中,所述指尖位置特征数据用于指示手指之间的相对位置,所述手指宽度特征数据用于指示手指宽度。

换句话说,在获得当前手势的指尖像素点和/或所述当前手势的指根像素点后,可以确定当前手势中的以下中的至少一种:手指个数、手指长度、指尖位置特征数据和手指宽度特征数据。

本申请实施例中,根据上述方法获得当前手势的指尖像素点后,就可以确定当前手 势中的手指个数。即,有几个指尖像素点,就表示当前手势中存在几个手指。

在本申请实施例中,为了提高检测精度,可以设置手指个数的取值为3-5。那么,当在确定当前手势中的手指个数小于3时,则舍弃当前手势图像,继续识别下一帧手势图像。而如果确定当前手势中的手指个数大于或等于3时,则继续识别当前手势中的手指长度、指尖位置特征数据和手指宽度特征数据。

下面,具体介绍如何确定手指长度、指尖位置特征数据和手指宽度特征数据。

可选地,在确定当前手势中的手指长度时,如果指尖像素点的左、右两边均存在指根像素点,则首先确定指尖像素点与位于指尖像素点左边的指根像素点之间的第一距离,以及指尖像素点与位于指尖像素点右边的指根像素点之间的第二距离。当第一距离与第二距离之差的绝对值大于预设长度阈值时,将第一距离与第二距离两者中的较小者在指尖像素点所在的手指方向上的投影确定为手指长度;或者,当第一距离与第二距离之差的绝对值小于或等于预设长度阈值时,将第一距离在指尖像素点所在的手指方向上的投影与第二距离在指尖像素点所在的手指方向上的投影的均值确定为手指长度。而如果指尖像素点的右边不存在指根像素点时,则需要确定指尖像素点与位于指尖像素点左边的指根像素点之间的第三距离,将第三距离在指尖像素点所在的手指方向上的投影确定为手指长度。如果指尖像素点的左边不存在指根像素点时,则需要确定指尖像素点与位于指尖像素点右边的指根像素点之间的第四距离,将第四距离在指尖像素点所在的手指方向上的投影确定为手指长度。

应理解,上述的第一距离、第二距离等仅是为了区分不同对象之间的距离。

通过上述方式,可以确定当前手势中的所有被识别到的手指的长度。

应理解,预设长度阈值可以是终端设备系统预先设置的。

可选地,在确定指尖位置特征数据Dj时,可以根据以下公式确定:

其中,k为当前手势中最长手指的长度,k>0,n为当前手势中的手指的个数,n为大于或等于1的整数,p为当前手势中的指尖像素点,其在x、y为指尖像素点在当前手势图像中的坐标,z为指尖像素点在当前手势图像中的深度值,z≥0。

具体而言,p为当前手势中的指尖像素点,其在图像中的x、y值和其对应的深度值z构成该点的坐标。d(pi,pj)用于描述图像中某两个像素点位置的关系,定义为式(14)。k为检测到的最长手指的长度,pi,pj两个点距离越近,d(pi,pj)将越小。Dj用于描述当前手势的指尖位置特征,即每两个指尖的位置关系之和,定义为式(13)。

根据式(14)中,等式右边各数值可以通过本申请前文所述得到,因此,这里可以根据式(13)得到指尖位置特征数据Dj

可选地,确定手势图像中的手指宽度特征数据时,可以首先将当前手势中每个手指的长度在手指方向上平均分为m+1份,m为大于或等于0的整数。对于当前手势中每个手指,计算在等分点位置上垂直于该手指方向的宽度,得到m*n个绝对宽度值。其中, n为当前手势中的手指个数,n为大于或等于1的整数。再计算m*n个绝对宽度值中的每两个绝对值宽度的比值,得到mn(mn-1)/2个相对宽度构成的特征向量值{di,i=1,2,…,mn(mn-1)/2}。将特征向量值{di,i=1,2,…,mn(mn-1)/2}即为手指宽度特征数据。

S250,在当前手势的特征数据与预设手势的特征数据匹配成功时,解锁所述终端设备。

应理解,该预设手势是用户在手势设置阶段设置的。在手势设置阶段设置预设手势类似指纹解锁中的指纹设置阶段设置解锁指纹。该预设手势可以是手势设置阶段设置的多个解锁手势,即多个预设手势中的一个解锁手势,或者就是手势设置阶段设置的唯一一个解锁手势。

可选地,用户在设置预设手势时,终端设备可以基于用户的开始设置解锁手势操作触发光源发射器输出激励光源。然后,通过深度摄像头获取并向用户呈现候选手势图像。最后,基于用户的确定操作将候选手势图像中的候选手势设置为预设手势。

举例来说,用户在用户界面(User Interface,UI)点击例如开始设置解锁手势的按钮,该动作触发光源发射器输出激励光源,由深度摄像头采集深度数据,并将深度图像,即候选手势图像呈现给用户。如果用户满意候选手势图像时按下确定设置该手势的按键。终端设备将该候选手势图像中的候选手势设置为预设手势。

进一步地,在基于用户的确定操作将候选手势图像中的候选手势设置为预设手势之前,该方法还可以包括:确定候选手势的手指个数是否大于或等于3,若候选手势的手指个数大于或等于3,基于用户的确定操作将候选手势设置为预设手势,并获取候选手势的特征数据。

也就是说,候选手势中的手指个数必须大于或等于3。否则,舍弃该当前候选手势,继续采集下一帧候选手势图像。

在手势设置阶段设置预设手势后,终端设备保存有该预设手势的特征数据。

该预设手势的特征数据,例如,可以是该预设手势中的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据。

在该情况下,作为S250的一个实施例,可以在当前手势中的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据分别与预设手势的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据匹配时,解锁该终端设备。

示例性的,当前手势中的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据分别与预设手势的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据匹配,可以是指,当前手势中的手指个数与预设手势中的手指个数相等,当前手势中的各个手指长度与预设手势中的对应的各个手指长度之差的绝对值小于或等于第一预设阈值,当前手势中的指尖位置特征数据与预设手势中的指尖位置特征数据之差小于或等于第二预设阈值,且当前手势中的手指宽度特征数据与预设手势中的手指宽度特征数据之差的欧几里得距离Dis小于或等于第三预设阈值。那么,当当前手势满足上述条件时,则解锁该终端设备。

其中,预设手势中的手指宽度特征数据{dj,j=1,2,…,mn(mn-1)/2}可以通过与当前手势中的手指宽度特征数据{di,i=1,2,…,mn(mn-1)/2}的获取方式相同的方式获得。即, 首先将预设手势中的中每个手指的长度在手指方向上平均分为m+1份。对于预设手势中中每个手指,计算在等分点位置上垂直于该手指方向的宽度,得到m*n个绝对宽度值。其中,n为预设手势中的手指个数。再计算m*n个绝对宽度值中的每两个绝对值宽度的比值,得到mn(mn-1)/2个相对宽度构成的特征向量值{di,i=1,2,…,mn(mn-1)/2}。

当前手势中的手指宽度特征数据与预设手势中的手指宽度特征数据之差的欧几里得距离Dis满足式(15):

如S250所述,在当前手势的特征数据与预设手势的特征数据匹配成功时,解锁所述终端设备。如果当前手势的特征数据与预设手势的特征数据未匹配成功,作为本申请的一个实施例,可以首先确定解锁过程时间是否超时。若解锁过程时间超时,例如,图形用户界面(Graphical User Interface,GUI)提示解锁过程时间超时,并在预设时间段后锁屏。此外,还可以在解锁过程时间超时时,关闭光源发射器和所述深度摄像头。而若解锁过程时间未超时,则终端设备继续识别下一帧图像。

因此,根据本申请实施例的三维手势解锁方法,通过实时获取用户在摄像头前方三维空间内所呈现的立体手势图像,提取手势图像中用户的手势,并通过与用户之前设定的解锁手势匹配,达到解锁终端设备的目的。从而,为用户提供了一种全新的趣味性强、准确性高和快速性好的解锁方式。

为了更加清楚明了地说明根据本申请实施例的设置预设手势的方式,下面结合图6,详细描述根据本申请实施例的三维手势解锁方法中的设置预设手势的一个实施例。

需要说明的是,图6和下文将要介绍的图7中,均以光源发射器为红外发射器,深度摄像头为红外摄像头为例进行说明。

为保证解锁手势的质量和降低手势设置的时间,手势预设时,本申请实施例的用于终端设备的三维手势解锁方法可以提示用户的手应处于图像的中间部位,并且解锁手势中应含有3-5个手指。

S601,终端设备检测第一操作。

具体地,第一操作可以是用户在UI界面点击设定解锁手势的按钮的操作。如果用户在UI界面点击设定解锁手势的按钮,则终端可以检测到第一操作。

S602,触发红外发射器和红外摄像头工作。

具体地,如果终端设备检测到第一操作,即如果用户在UI界面点击设定解锁手势的按钮操作,则终端设备触发红外发射器和红外摄像头工作。

S603,实时获取当前手势图像。

具体地,红外光谱分析芯片实时获取红外摄像头采集到的图像的深度数据。

S604,终端设备根据当前帧数判断是否需要全局跟踪,即执行前文描述的方式一,对当前手势进行完整的轮廓提取。如果需要,则执行S605,否则执行S607。

S605,终端设备进行轮廓提取。

具体地,终端设备可以前文描述的方式一获取该帧图像的轮廓数据。

S606,终端设备判断轮廓是否提取成功,即判断该帧图像中是否有手势,以及手势是否过大。如果该帧图像有手势,且存在手势轮廓点,则可以判断轮廓提取成功。

S607,终端设备进行指尖识别。

具体地,如果轮廓提取成功,接下来识别手势的特征数据,首先是进行指尖的识别。或者,在S604中,终端设备根据当前帧数判断不需要进行全局跟踪,即则按照前文描述的方式二,不对当前手势进行完整的轮廓提取、,而进行指尖位置预测,根据得到的预测指尖像素点和预测指根像素点,最终得到与轮廓提取类似的手势轮廓链表。

S608,根据检测到的第一个指尖位置信息对轮廓检测上限值进行修正。

具体地,该步骤可以参照上文的描述,为了简洁,此处不再赘述。需要说明的是,如果需要对轮廓检测上限值进行修正,那么对轮廓检测上限值进行修正后,执行S605。

S609,数据格式转换。

因为识别到指尖位置的数据仅仅是指尖在图像中的坐标,为了给用户展示指尖位置,终端设备可以改变指尖及周围部分像素点的颜色数据,以遍用户查看。另外,终端设备还可以改变手势轮廓的颜色数据。S610,终端设备将指尖位置融合进图像数据并提交给显示控件。

举例来说,终端设备可以以指尖位置坐标为中心点,以10像素为半径的圆的区域,改变彩色图像中对应区域的像素点的颜色值,同时还可以改变手势轮廓像素点及与其相邻的像素点在彩色图像中对应位置的颜色值。

S611,GUI界面手势图像回显。

显示控件显示经过S610处理后的图像,供用户查看。

S612,终端设备判断用户是否将当前的手势确定为解锁手势

具体地,在指尖识别完成后,如果用户满意当前手势,则按下确定设置该手势的按键,确认将该手势作为解锁手势,同时终端设备将记录该帧图像。终端设备继续执行S614。如果用户不满意当前手势,则重新设置解锁手势,终端设备

跳回执行S603。

S613,终端设备判断该手势中的手指个数是否满足设定要求。

作为本申请一个实施例,终端设备判断手指个数是否大于或等于3,如果满足则执行S615,如果不满足则抛弃当前图像,进行下一帧图像的识别。

S614,终端设备继续识别其他手势特征数据。

在该手势中的手指个数满足设定要求时,终端设备继续识别手指长度、指尖位置特征数据和手指宽度特征数据。

S615,终端设备将包括手指个数的手势特征数据保存至非易失性存储器,供解锁阶段使用。

至此,才将S611显示的图像设置为解锁手势。

下面结合图7,详细描述根据本申请实施例的三维手势解锁方法的一个实施例。该实施例主要描述解锁阶段用户和终端设备的相应操作。

S701,终端设备检测第二操作。

例如,第二操作可以是用户按下电源键的操作。在解锁阶段,由用户按下电源键开启手势解锁过程。

S702,触发红外发射器和红外摄像头工作。

例如,用户按下电源键后,触发红外发射器和红外摄像头工作。

S703,实时获取当前手势图像。

具体地,红外光谱分析芯片实时获取红外摄像头采集到的图像的深度数据。

S704,终端设备根据当前帧数判断是否需要执行前文描述的方式一,即对当前手势进行完整的轮廓提取。如果需要,则执行S705,否则执行S707。

S705,终端设备进行轮廓提取。

具体地,终端设备可以根据前文描述的方式一获取该帧图像的轮廓数据。

S706,终端设备判断轮廓是否提取成功,即判断该帧图像中是否有手势,以及手势是否过大。如果该帧图像有手势,且存在手势轮廓点,则可以判断轮廓提取成功。

S707,终端设备进行指尖识别。

具体地,如果轮廓提取成功,接下来识别手势的特征数据,首先是进行指尖的识别。或者,在S704中,终端设备根据当前帧数判断不需要进行全局跟踪,即不需要执行前文描述的方式一时,则按照前文描述的方式二,不对当前手势进行完整的轮廓提取,而进行指尖位置预测,根据得到的预测指尖像素点和预测指根像素点,最终得到与轮廓提取类似的手势轮廓链表。

可选地,在进行指尖识别后,该方法还可以包括:终端设备判断该手势中的手指个数是否满足设定要求。

作为本申请一个实施例,终端设备判断手指个数是否大于或等于3,如果满足则执行S708或S709,如果不满足则抛弃当前图像,进行下一帧图像的识别。

S708,根据检测到的第一个指尖位置信息对轮廓检测上限值进行修正。

具体地,该步骤可以参照上文的描述,为了简洁,此处不再赘述。需要说明的是,如果需要对轮廓检测上限值进行修正,那么对轮廓检测上限值进行修正后,执行S705。

S709,终端设备继续识别其他手势特征数据。

例如,在该手势中的手指个数满足设定要求时,终端设备继续识别手指长度、指尖位置特征数据和手指宽度特征数据。后者,在进行完指尖识别后,直接执行该步骤。

S710,判断该手势的特征数据是否与预设手势的特征数据满足条件。

具体地,根据该步骤之前是否已经进行过手指个数的匹配,判断该手势中的手指长度、指尖位置特征数据和手指宽度特征数据,是否与预设手势中的对应的手指长度、指尖位置特征数据和手指宽度特征数据匹配。或者,判断手指个数、手指长度、指尖位置特征数据和手指宽度特征数据,是否与预设手势中的对应的手指个数、手指长度、指尖位置特征数据和手指宽度特征数据匹配。如果匹配,则执行S711,否则执行S712。

S711,如果该手势的特征数据是与预设手势的特征数据满足条件,则解锁终端设备。

S712,如果该手势的特征数据是与预设手势的特征数据不满足条件,则判断解锁过程时间是否超时。如果超时,则执行S713,否则跳回继续执行S703。

S713,关闭红外设备,即关闭红外发射器和红外摄像头。

S714,终端设备提示用户解锁过程时间超时,并在一定时间段后锁屏。

应理解,该一定时间段可以是系统预先设置的,比如可以是2秒、4秒等。

还应理解,S713和S714的执行不分先后顺序。

还应理解,本文中所描述的A步骤和B步骤的执行不分先后顺序,是指A步骤和B步骤可以同时执行,也可以先执行A步骤,再执行和B步骤,或者先执行B步骤,再执行A步骤。

图8是根据本申请实施例的获取手势图像的方法的示意性流程图。该方法可以应用 于但不限于图1所示的系统。

S810,获取用户的当前手势图像。

例如,该方法由图1所示的系统执行时,深度摄像头120通过接收外界反射来的激励光源,比如红外光,将激励光源进行数字编码后形成数字影像传输给光谱分析模块130。光谱分析模块130分析散斑,计算出当前手势图像中对应像素点(x,y)与深度摄像头120的距离z,从而可以获取当前手势图像。

S820,根据该当前手势图像,获取该当前手势图像中的当前手势的轮廓数据。

示例性的,本申请所描述的轮廓数据可以指手势图像中的构成手势轮廓的各个像素点的坐标(x,y,z)。

可选地,可以通过上文中的方式一或方式二获取当前手势图像中的当前手势的轮廓数据。具体地可以参照上述的描述,为了简洁,此处不再赘述。

S830,根据该当前手势的轮廓数据,确定该当前手势的指尖像素点和/或该当前手势的指根像素点。

具体地,可以参照上述所描述的方法,为了简洁,此处不再赘述。

S840,根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据。

可选地,该根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势的特征数据,包括:

根据该当前手势的指尖像素点和/或该当前手势的指根像素点,确定该当前手势中的以下中的至少一种:

手指个数、手指长度、指尖位置特征数据和手指宽度特征数据,其中,该指尖位置特征数据用于指示手指之间的相对位置,该手指宽度特征数据用于指示手指宽度。

具体地,可以参照上述所描述的方法,为了简洁,此处不再赘述。

根据本申请的获取手势图像的方法,通过根据当前手势图像中的当前手势的轮廓数据,可以获得当前手势的指尖像素点和/或该当前手势的指根像素点,从而可以确定当前手势的特征数据。可选地,步骤S840之后还包括:当所述当前手势的特征数据与预设手势的特征数据匹配成功时,解锁所述终端设备。

图9示出了本申请实施例的一种终端设备900的示意性框图。如图9所示,该终端设备900包括:获取单元910和处理单元920。

获取单元910,用于获取用户的当前手势图像。

处理单元920,用于根据所述当前手势图像,获取所述当前手势图像中的当前手势的轮廓数据;根据所述当前手势的轮廓数据,确定所述当前手势的指尖像素点和/或所述当前手势的指根像素点;根据所述当前手势的指尖像素点和/或所述当前手势的指根像素点,确定所述当前手势的特征数据;以及,在所述当前手势的特征数据与预设手势的特征数据匹配成功时,解锁所述终端设备。

因此,本申请实施例的终端设备,通过实时获取用户在摄像头前方三维空间内所呈现的立体手势图像,提取手势图像中用户的手势,并通过与用户之前设定的解锁手势匹配,达到解锁终端设备的目的。从而,为用户提供了一种全新的趣味性强、准确性高和快速性好的解锁方式。

可选地,本申请实施例的终端设备,包括但不限于手机、平板、电脑、多媒体机和 游戏机。所有使用移动通信网络的设备,均在本申请实施例的保护范围内。

本申请实施例的终端设备900可对应于本申请方法实施例中的终端设备,并且终端设备900中的各个模块的上述和其它操作和/或功能分别为了实现图2至图7所示的方法的相应流程,为了简洁,在此不再赘述。

图9示出了本申请实施例的一种终端设备1000的示意性框图。如图10所示,该终端设备1000包括:获取单元1010和处理单元1020。

获取单元1010,用于获取用户的当前手势图像。

处理单元1020,用于根据所述当前手势图像,获取所述当前手势图像中的当前手势的轮廓数据;根据所述当前手势的轮廓数据,确定所述当前手势的指尖像素点和/或所述当前手势的指根像素点;以及,根据所述当前手势的指尖像素点和/或所述当前手势的指根像素点,确定所述当前手势的特征数据。

根据本申请的终端设备,通过根据当前手势图像中的当前手势的轮廓数据,可以获得当前手势的指尖像素点和/或该当前手势的指根像素点,从而可以确定当前手势的特征数据。

可选地,本申请实施例的终端设备,包括但不限于手机、平板、电脑、多媒体机和游戏机。所有使用移动通信网络的设备,均在本申请实施例的保护范围内。

本申请实施例的终端设备1000可对应于本申请方法实施例中的终端设备,并且终端设备1000中的各个模块的上述和其它操作和/或功能分别为了实现图8所示的方法的相应流程,为了简洁,在此不再赘述。

图11是根据本申请实施例的终端设备的另一示意性框图。图11所示的终端设备1100包括:射频(Radio Frequency,RF)电路1110、存储器1120、其他输入设备1130、显示屏1140、传感器1150、音频电路1160、I/O子系统1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图11中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。本领领域技术人员可以理解显示屏1140属于用户界面(User Interface,UI),且终端设备1100可以包括比图示或者更少的用户界面。

下面结合图11对终端设备1100的各个构成部件进行具体的介绍:

RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路1110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。

存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行终端设备1100的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储 根据终端设备1100的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其他输入设备1130可用于接收输入的数字或字符信息,以及产生与终端设备1100的用户设置以及功能控制有关的键信号输入。具体地,其他输入设备1130可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。其他输入设备1130与I/O子系统1170的其他输入设备控制器1171相连接,在其他设备输入控制器1171的控制下与处理器1180进行信号交互。

显示屏1140可用于显示由用户输入的信息或提供给用户的信息以及终端设备1100的各种菜单,还可以接受用户输入。具体的显示屏1140可包括显示面板1141,以及触控面板1142。其中显示面板1141可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1141。触控面板1142,也称为触摸屏、触敏屏等,可收集用户在其上或附近的接触或者非接触操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1142上或在触控面板1142附近的操作,也可以包括体感操作;该操作包括单点控制操作、多点控制操作等操作类型),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1142可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位、姿势,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成处理器能够处理的信息,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1142,也可以采用未来发展的任何技术实现触控面板1142。进一步的,触控面板1142可覆盖显示面板1141,用户可以根据显示面板1141显示的内容(该显示内容包括但不限于,软键盘、虚拟鼠标、虚拟按键、图标等等),在显示面板1141上覆盖的触控面板1142上或者附近进行操作,触控面板1142检测到在其上或附近的操作后,通过I/O子系统1170传送给处理器1180以确定用户输入,随后处理器1180根据用户输入通过I/O子系统1170在显示面板1141上提供相应的视觉输出。虽然在图11中,触控面板1142与显示面板1141是作为两个独立的部件来实现终端设备1100的输入和输入功能,但是在某些实施例中,可以将触控面板1142与显示面板1141集成而实现终端设备1100的输入和输出功能。

终端设备1100还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在终端设备1100移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端设备1100还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1160、扬声器1161,麦克风1162可提供用户与终端设备1100之间的音频接口。音频电路1160可将接收到的音频数据转换后的信号,传输到扬声器1161,由扬声 器1161转换为声音信号输出;另一方面,麦克风1162将收集的声音信号转换为信号,由音频电路1160接收后转换为音频数据,再将音频数据输出至RF电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。

I/O子系统1170用来控制输入输出的外部设备,可以包括其他设备输入控制器1171、传感器控制器1172、显示控制器1173。可选的,一个或多个其他输入控制设备控制器1171从其他输入设备1130接收信号和/或者向其他输入设备1130发送信号,其他输入设备1130可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)。值得说明的是,其他输入控制设备控制器1171可以与任一个或者多个上述设备连接。所述I/O子系统1170中的显示控制器1173从显示屏1140接收信号和/或者向显示屏1140发送信号。显示屏1140检测到用户输入后,显示控制器1173将检测到的用户输入转换为与显示在显示屏1140上的用户界面对象的交互,即实现人机交互。传感器控制器1172可以从一个或者多个传感器1150接收信号和/或者向一个或者多个传感器1150发送信号。

处理器1180是终端设备1100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行终端设备1100的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器1180可包括一个或多个处理单元;可选地,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。

处理器1180用于:获取用户的当前手势图像;根据所述当前手势图像,获取所述当前手势图像中的当前手势的轮廓数据;根据所述当前手势的轮廓数据,确定所述当前手势的指尖像素点和/或所述当前手势的指根像素点;根据所述当前手势的指尖像素点和/或所述当前手势的指根像素点,确定所述当前手势的特征数据;在所述当前手势的特征数据与预设手势的特征数据匹配成功时,解锁所述终端设备。

或者,处理器1180用于:获取用户的当前手势图像;根据所述当前手势图像,获取所述当前手势图像中的当前手势的轮廓数据;根据所述当前手势的轮廓数据,确定所述当前手势的指尖像素点和/或所述当前手势的指根像素点;根据所述当前手势的指尖像素点和/或所述当前手势的指根像素点,确定所述当前手势的特征数据。

终端设备1100还包括给各个部件供电的电源1190(比如电池),可选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。

尽管未示出,终端设备1100还可以包括摄像头、蓝牙模块等,在此不再赘述。

应理解,该终端设备1100可对应于根据本申请实施例的三维手势解锁方法中的终端设备,该终端设备1100可以包括用于执行上述方法中的终端设备或电子设备执行的方法的实体单元。并且,该终端设备1100中的各实体单元和上述其他操作和/或功能分别为了上述方法的相应流程,为了简洁,在此不再赘述。

还应理解,该终端设备1100可以包括用于执行上述获取手势图像的方法中的实体单元。并且,该终端设备1100中的各实体单元和上述其他操作和/或功能分别为了上述方 法的相应流程,为了简洁,在此不再赘述。

还应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是中央处理单元(Central Processing Unit,CPU)、该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件器组合执行完成。软件器可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

还应理解,该总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统。

还应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存10在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的用于传输上行信号的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件器组合执行完成。软件器可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中 的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2和/或图3所示实施例的方法。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号