发明内容
本发明的一个目的是提供一种用于虚拟现实设备的手势识别的新技术方案。
根据本发明的第一方面,提供了一种用于虚拟现实设备的手势识别方法,所述虚拟现实设备包括深度摄像头,所述手势识别方法包括:
控制所述深度摄像头采集当前用户的当前手部图像;
根据所述当前手部图像判断所述当前用户是否执行敲击动作,如是,则:
从所述当前手部图像中提取当前特征;
将所述当前特征与模型中的参考特征进行匹配,根据匹配结果确定所述当前用户敲击的按键。
可选的是,所述手势识别方法还包括:
控制所述深度摄像头采集参考用户的参考手部图像;
从所述参考手部图像中提取所述参考特征,并将所述参考特征存储在所述模型中。
可选的是,所述虚拟现实设备还包括显示屏,所述根据所述当前图像判断所述当前用户是否敲击之前还包括:
在所述显示屏上显示出键盘图像及所述当前用户的手指在所述键盘图像上的初始位置。
可选的是,所述手势识别方法还包括:
根据所述当前用户敲击的按键,在所述显示屏上显示出所述当前用户的手指在所述键盘图像上的当前位置。
根据本发明的第二方面,提供了一种用于虚拟现实设备的手势识别装置,包括:
第一控制模块,用于控制所述深度摄像头采集当前用户的当前手部图像;
判断模块,用于根据所述当前手部图像判断所述当前用户是否执行敲击动作;
当前特征提取模块,用于在所述判断模块的判断结果为是的情况下,从所述当前手部图像中提取当前特征;
匹配模块,用于将所述当前特征与模型中的参考特征进行匹配,根据匹配结果确定所述当前用户敲击的按键。
可选的是,所述手势识别装置还包括:
第二控制模块,用于控制所述深度摄像头采集参考用户的参考手部图像;
参考特征提取模块,用于从所述参考手部图像中提取所述参考特征,并将所述参考特征存储在所述模型中。
可选的是,所述虚拟现实设备还包括显示屏,所述手势识别装置还包括:
第一显示模块,用于在所述显示屏上显示出键盘图像及所述当前用户的手指在所述键盘图像上的初始位置。
可选的是,所述手势识别装置还包括:
第二显示模块,用于根据所述匹配模块确定的所述当前用户敲击的按键,在所述显示屏上显示出所述当前用户的手指在所述键盘图像上的当前位置。
根据本发明的第三方面,提供了一种虚拟现实设备,包括根据本发明第二方面所述的手势识别装置。
根据本发明的第四方面,提供了一种虚拟现实设备,包括深度摄像头、处理器和存储器,所述深度摄像头用于采集图像,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本发明第一方面所述的手势识别方法。
本发明的发明人发现,在现有技术中,存在头戴式虚拟现实设备的交互主要是通过语言、手势等,无法实现对文字的复杂处理的问题。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
本发明的一个有益效果在于,本发明通过使用深度传感器的手势识别技术来区别各种手势、左右手确认以及手指指尖坐标获取,能够将虚拟键盘运用到现实中,可以很好的调高用户使用的灵活性,同时还释放了实体键盘空间,减少用户因复杂的字符输入产生的困扰,从而提高用户体验。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了解决现有技术中存在的头戴式虚拟现实设备的交互主要是通过语言、手势等,无法实现对文字的复杂处理的问题,提供了一种用于虚拟现实设备的手势识别方法,该虚拟现实设备包括深度摄像头。
深度摄像头也称为深度传感器或者3D传感器,例如可以是TOF摄像头,发出经调制的近红外光,遇物体后反射,摄像头通过计算光线发射和反射时间差或相位差,来换算被拍摄物体的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将物体的三维轮廓以不同颜色代表不同距离的图像呈现出来。
图1为根据本发明一种用于虚拟现实设备的手势识别方法的一种实施方式的流程图。
根据图1所示,该手势识别方法包括以下步骤:
步骤S110,控制深度摄像头采集当前用户的当前手部图像。
具体的,例如可以是控制TOF摄像头,发出经调制的近红外光,遇当前用户的手部后反射,摄像头通过计算光线发射和反射时间差或相位差,来换算当前用户手部任意位置的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将手部的三维轮廓以不同颜色代表不同距离的当前手部图像呈现出来。
步骤S120,根据该当前手部图像判断当前用户是否执行敲击动作,如是,则执行步骤S130;如否,则继续执行步骤S110。
根据深度摄像头采集得到当前手部图像中手部轮廓各点的曲率,可以计算得到指尖位置。对当前手部图像中手部轮廓的每一个点根据一定的步长确定每个点的曲率,手指指尖的曲率是有一定范围的,通过查看每个点的曲率判定是否在该范围内就可确定指尖的位置,通过手势判定的结果以及指尖的位置再通过形态学可推算手部其他关键点的位置,其中,其他关键点例如可以是关节。
深度传感器可以设置在虚拟现实设备上面或者是用户手部前面的任意位置上。在本发明的一个具体实施例中,深度传感器的位置可以是设置在虚拟现实设备上。深度传感器采集到当前用户的当前手部图像后,通过当前手部图像中手部轮廓点的曲率的计算可得到当前用户的双手当前指尖坐标,根据用户指尖坐标推算出用户手部其他关键点,手部指尖和其他关键点通过例如是3D渲染技术得到用户手部图像成像在VR的键盘图像之上。之后根据当前手部图像可以确认用户手指的深度变化从而确认有无敲击键盘。
采用3D渲染技术,使得图像清晰,调高了图像的分辨率,并可适当调整可视角度和可视距离。
由于深度传感器获得是深度图,根据手部离深度传感器的远近,深度是不一样的,因此,当手指抬起时深度值较小,手指落下时深度值较大,从而可以确定当前用户是否执行敲击动作。
在本发明的一个具体实施例中,该虚拟现实设备还包括显示屏,在执行步骤S120之前还包括:
在显示屏上显示出键盘图像及当前用户的手指在该键盘图像上的初始位置。
当前用户使用该虚拟设备例如可以是头戴式虚拟现实设备进行字符输入时,为了减轻当前用户手臂的不适,当前用户可借助周围的平板的物件例如桌子等。当前用户的双手可以按照实体键盘的手势放置,深度摄像头得到当前手部图像和指尖坐标,可以是通过食指指尖归一化处理将左手食指放置在键盘的按键F处,将右手的食指放置在键盘的按键J处,当前用户可根据虚拟现实设备的成像,适当的调整其他手指位置,从而落到各个手指的正确初始位置。
这样,能够使得当前用户清楚地看到键盘上需要按下的按键的位置,以此来确定敲击的动作,提升用户体验。
步骤S130,从当前手部图像中提取当前特征。
在本发明的一个具体实施例中,当前特征的提取可以是通过神经网络(CNN)改进算法实现的。CNN改进算法,通过卷积和得到用户手部的特征点(例如10几个),之后再根据最大池层和全连接层从而得到手部所有的神经元,其中,CNN改进算法例如可以是采用caffe或者是tensorflow等CNN的算法架构,再从中提取出当前特征。
步骤S140,将该当前特征与模型中的参考特征进行匹配,根据匹配结果确定当前用户敲击的按键。
参考特征例如可以是在虚拟现实设备出厂前存储在模型中的,也可以是当前用户在使用该虚拟现实设备之前存储的。
在本发明的一个具体实施例中,在执行步骤S140之前,该手势识别方法还包括:
控制该深度摄像头采集参考用户的参考手部图像;
从所述参考手部图像中提取所述参考特征,并将所述参考特征存储在该模型中。
具体的是,采集用户关于敲击键盘各个按键的手部各种动作的参考手部图像,并从每一参考手部图像中提取参考特征,建立包含与手部各种动作对应的参考特征的模型,得到的模型会应用于与当前特征进行匹配,如果匹配成功,则能够确定与匹配成功的参考特征相对应的当前用户敲击的按键。
执行完步骤S140之后,该手势识别方法还包括:
根据当前用户敲击的按键,在显示屏上显示出当前用户的手指在键盘图像上的当前位置。
具体的,在显示屏上显示出当前用户的手指在键盘图像上的当前位置的方法,与上述的显示初始位置的方法可以相同。
这样,本发明通过使用深度传感器的手势识别技术来区别各种手势、左右手确认以及手指指尖坐标获取,在用户眼前出现手指敲击键盘画面从而完成字符或者是数字的输入,就能够将虚拟键盘运用到现实中,可以很好的调高用户使用的灵活性,同时还释放了实体键盘空间,减少用户因复杂的字符输入产生的困扰,从而提高用户体验。
本发明还提供了一种用于虚拟现实设备的手势识别装置,图2为根据本发明一种用于虚拟现实设备的手势识别装置的一种实施结构的方框原理图。
根据图2所示,该手势识别装置200包括第一控制模块210、判断模块220、当前特征提取模块230和匹配模块240。
上述第一控制模块210用于控制深度摄像头采集当前用户的当前手部图像;
上述判断模块220用于根据当前手部图像判断当前用户是否执行敲击动作;
上述当前特征提取模块230用于在判断模块的判断结果为是的情况下,从当前手部图像中提取当前特征;
上述匹配模块240用于将当前特征与模型中的参考特征进行匹配,根据匹配结果确定当前用户敲击的按键。
具体的,该手势识别装置还包括第二控制模块和参考特征提取模块,第二控制模块用于控制深度摄像头采集参考用户的参考手部图像;参考特征提取模块用于从参考手部图像中提取参考特征,并将参考特征存储在模型中。
进一步地,虚拟现实设备还包括显示屏,手势识别装置还包括第一显示模块,用于在显示屏上显示出键盘图像及当前用户的手指在键盘图像上的初始位置。
在此基础上,手势识别装置还包括第二显示模块,用于根据匹配模块确定的当前用户敲击的按键,在显示屏上显示出当前用户的手指在键盘图像上的当前位置。
本发明还提供了一种虚拟现实设备,根据一方面,该虚拟现实设备包括本发明的一种用于虚拟现实设备的手势识别装置200。该虚拟现实设备例如可以是虚拟现实眼镜、虚拟现实头盔等产品。
图3为根据本发明另一方面的该虚拟现实设备的一种实施结构的方框原理图。
根据图3所示,该虚拟现实设备300包括存储器301和处理器302,该存储器301用于存储指令,该指令用于控制处理器302进行操作以执行上述用于虚拟现实设备的手势识别方法。
除此之外,根据图3所示,该虚拟现实设备300还包括接口装置303、输入装置304、显示装置305、通信装置306等等。尽管在图3中示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,处理器301、存储器302、接口装置303等。
上述通信装置306例如能够进行有有线或无线通信。
上述接口装置303例如包括耳机插孔、USB接口等。
上述输入装置304例如可以包括触摸屏、按键等。
上述显示装置305例如是液晶显示屏、触摸显示屏等。
上述各实施例主要重点描述与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。以上所描述的***实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是―—但不限于―—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。