用于识别空中手写的方法、装置、设备以及计算机可读存储介质与流程

文档序号:16882831发布日期:2019-02-15 22:20阅读:274来源:国知局
用于识别空中手写的方法、装置、设备以及计算机可读存储介质与流程

本公开的实施例总体上涉及图像处理领域,并且更具体地涉及用于识别空中手写的方法、装置、设备以及计算机可读存储介质。



背景技术:

随着移动互联网和人工智能技术的快速发展,越来越多的电子设备开始具有图像采集和识别能力。例如,智能手机通常具有前置摄像头和后置摄像头,其能用来捕获图像以用于图像呈现和/或识别处理。除了智能手机之外,智能可穿戴设备(诸如智能手表)和智能家居(诸如智能电视)等智能终端上也可以设置能够捕获图像的摄像头。

一般来说,可以通过物理键盘或虚拟键盘的方式向设备输入字符,此外,还可以通过手写来输入字符,例如,在触摸屏或触摸板表面进行平面书写。平面书写需要用户将手或笔接触到触摸表面,因而用户体验并不好,一种新的手写方式是空中手写,诸如凌空手写。空中书写能够给用户提供自由的三维书写空间,因而具有更好的用户体验。



技术实现要素:

根据本公开的示例实施例,提供了一种用于识别空中手写的方法、装置、设备以及计算机可读存储介质。

在本公开的第一方面中,提供了一种用于识别空中手写的方法。该方法包括:检测二维灰度图像中的用户的手掌区域;基于手掌区域,检测二维灰度图像中的指尖;基于一组二维灰度图像,确定指尖的空间轨迹,其中一组二维灰度图像包括该二维灰度图像;以及基于空间轨迹,识别用户的手写内容。

在本公开的第二方面中,提供了一种用于识别空中手写的装置。该装置包括:手掌确定模块,被配置为检测二维灰度图像中的用户的手掌区域;指尖检测模块,被配置为基于手掌区域,检测二维灰度图像中的指尖;轨迹跟踪模块,被配置为基于一组二维灰度图像,确定指尖的空间轨迹,其中一组二维灰度图像包括二维灰度图像;以及轨迹识别模块,被配置为基于空间轨迹,识别用户的手写内容。

在本公开的第三方面中,提供了一种电子设备,其包括一个或多个处理器以及存储装置,其中存储装置用于存储一个或多个程序。一个或多个程序当被一个或多个处理器执行,使得电子设备实现根据本公开的实施例的方法或过程。

在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的实施例的方法或过程。

应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了根据本公开的实施例的用于识别空中手写的示例环境的示意图;

图2示出了根据本公开的实施例的用于识别空中手写的方法的流程图;

图3示出了根据本公开的实施例的用于指尖识别的方法的流程图;

图4示出了根据本公开的实施例的用于轨迹识别的方法的流程图;

图5示出了根据本公开的实施例的用于手势识别的方法的流程图;

图6示出了根据本公开的实施例的用于识别空中手写的装置的框图;以及

图7示出了能够实施本公开的多个实施例的电子设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。

传统地,为了实现对空中手写的识别,通常需要使用摄像头采集的深度图像或者彩色图像,并且基于对深度图像或彩色图像进行处理来识别空中手写轨迹。深度图像通常需要专用摄像头或者摄像头阵列来实现,一般的消费者电子设备上可能并不具有。彩色图像由于存在多通道信息,其识别处理速度较慢,而例如对于智能手表和智能家居等处理能力有限的设备来说,会造成较大的处理负担并且速度缓慢。

本公开的实施例提出了一种用于识别空中手写的方案。本公开的实施例使用二维的灰度图像来识别并且跟踪指尖的空间轨迹,二维灰度图像的处理速度通常较快,因而能够加快空中手写识别的速度,并且对设备的处理性能要求较低,同时还能保证较高的准确率。此外,本公开的空中手写识别方案不仅可用于输入法的字符输入,也可以用于其他电子设备的智能交互和/或输入。

此外,本公开的一些实施例在指尖识别和/或手势识别过程中,采用包围盒跟踪的方式,能够减少检测的计算量,提高计算速度。另外,本公开的一些实施例将传统的8方向特征检测与深度神经网络(dnn)相结合,因而能够提高轨迹识别的准确率。以下将参考附图1-7详细描述本公开的一些示例实现。

图1示出了根据本公开的实施例的用于识别空中手写的示例环境100的示意图。在环境100中,电子设备110可以正在处于手写检测状态,其中电子设备包括摄像头111(其例如可以为单目摄像头等)。电子设备110还包括用于获得指尖的空间轨迹的指尖识别模块112、用于识别空间轨迹的轨迹识别模块114以及用于识别手势类型的手势识别模块116。应当理解,电子设备110可以为具有摄像功能的任何电子设备,诸如智能手机、笔记本电脑、智能手表、智能电视、智能音箱,等等,摄像头111可以为电子设备内置的摄像头,也可以是外接的摄像头。

电子设备110在需要接收手写输入的情况下,可以被配置为处于手写检测状态。电子设备110的摄像头111检测其摄像范围内的画面,例如,在环境100中摄像头111正在检测用户120的空中手写。接下来,将摄像头111所采集的图像发送到手势识别模块116,在手势识别模块116检测到开始手势之后,指尖识别模块112可以开始检测用户指尖的空间轨迹,并且轨迹识别模块114对检测到的空间轨迹进行识别以确定用户的手写内容。根据本公开的实施例的指尖识别模块112使用二维灰度图像来识别并且跟踪指尖的空间轨迹,能够加快空中手写识别的速度,并且对设备的处理性能要求较低,同时还能保证较高的准确率。

图2示出了根据本公开的实施例的用于识别空中手写的方法200的流程图。应当理解,根据本公开的实施例的方法200可以由图1所描述的电子设备110来执行。空中手写是指手指尖不触碰触摸屏或触摸笔的书写方式,通过追踪用户手指尖在空中的书写轨迹,能够识别出对应的字符。

在框202,检测二维灰度图像中的用户的手掌区域。例如,指尖识别模块112可以将通过电子设备110的摄像头111采集的二维彩色图像转换成(例如灰度化)二维灰度图像,由于灰度图像的计算量比深度图像或彩色图像更小,并且对设备的要求更低,因而能够加快指尖轨迹的检测速度。在框204,基于手掌区域,检测二维灰度图像中的指尖。例如,指尖识别模块112在提取手掌区域之后再检测二维灰度图像中的指尖关键点。

在框206,基于一组二维灰度图像,确定指尖的空间轨迹,其中这一组二维灰度图像包括第一帧的二维灰度图像。例如,指尖识别模块112进一步通过多幅二维灰度图像,识别并跟踪手指尖在空中的移动轨迹。在框208,基于空间轨迹,识别用户的手写内容。例如,轨迹识别模块114基于所确定的空间轨迹,识别出相应的字符,其中字符可以为汉字、字母、符号,等等。因此,根据本公开的实施例的方法200由于使用二维的灰度图像来识别并且跟踪指尖的空间轨迹,因而能够加快空中手写识别的速度。

图3示出了根据本公开的实施例的用于指尖识别的方法300的流程图。应当理解,根据本公开的实施例的方法300可以由图1所描述的电子设备110中的指尖识别模块112来执行,并且方法300可以为以上参考图2所描述的方法200的步骤206的示例实现。

在框302,基于第一帧检测到的指尖点,确定用于回归手掌框的搜索区域。例如,第一帧利用手掌检测提取手掌框,再进行指尖关键点检测,同时回归手掌框生成一个用于后续跟踪的搜索区域。

在框304,判断下一帧(例如第二帧)的搜索区域中是否跟踪到手掌。如果在框304确定下一帧的搜索区域中跟踪到手掌,则在框306,利用该搜索区域预测当前指尖点,也即,基于搜索区域确定指尖的当前位置。如果在框304确定下一帧的搜索区域中未跟踪到手掌,则说明手掌丢失,因而在框308,在下一帧中重新启用手掌检测。通过采用跟踪的方式,回归出一个大概的手掌框区域用于后续跟踪,避免了每一帧都需要检测手掌区域,从而减少了计算量并且提高了执行速度。

在一些实施例中,可以使用dnn来检测二维灰度图像中的指尖,其中dnn使用连续图像帧信息而被训练。由于采用了连续帧信息,因而指尖检测结果在视频中将会更稳定。在一些实施例中,还可以使用光流方案,让指尖的轨迹识别更连续且稳定。dnn的训练可以包括以下三个方面。首先,利用手掌框裁剪手掌区域,进行指尖关键点检测,同时回归当前手掌框。其次,在手掌区域和指尖的训练基本收敛后,采用连续帧进行训练,以提升指尖关键点的稳定性。然后,再训练分类器,判定当前预测的手掌框中是否包含手掌,以用于后续跟踪判定。因此,本公开的实施例可以通过深度学习获得指尖的梯度特征,直接回归指尖,而不需要传统的深度图信息或热力图信息,也不需要对于每帧图像执行手掌检测。

图4示出了根据本公开的实施例的用于轨迹识别的方法400的流程图。应当理解,根据本公开的实施例的方法400可以由图1所描述的电子设备110中的轨迹识别模块114来执行,并且方法400可以为以上参考图2所描述的方法200的步骤208的示例实现。

在框402,使用曲线拟合的方式对空间轨迹进行重采样。在框404,提取空间轨迹的8方向特征和书写顺序特征。例如,可以使用曲线拟合方式进行重采样,再求导直接得到8方向特征,由此获得更加精准的8方向特征,此外,可以添加时序特征来表示用户书写的顺序而不是单纯的8方向特征。可选地,可以人为定义汉字的空间特征。然而,也可以不用人为定义汉字的空间特征,而是采用神经网络的方式同时学习到空间特征和时序特征。在框406,基于8方向特征和书写顺序特征,使用dnn来确定用户的手写汉字。

传统地,通常使用8方向特征提取和模板匹配、朴素贝叶斯、或者混用组合分类器等方式来识别轨迹,或者采用8方向特征和卷积神经网络(cnn)组合的方式。然而,cnn的方式通常只涉及空间特征,而会丢弃汉字等字符书写的时序信息。相反,本公开的实施例通过dnn(其例如包括5层的全连接网络)来取代传统的cnn等方式,能够解决cnn无法描述用户书写顺序的问题。

图5示出了根据本公开的实施例的用于手势识别的方法500的流程图。应当理解,根据本公开的实施例的方法500可以由图1所描述的电子设备110中的手势识别模块116来执行,并且方法500可以在以上参考图2所描述的方法200之前、之后或者基本上同时执行。

在框502,检测用于触发空中手写的开始手势。例如,手势识别模块116周期性地或按照预定规律检测开始手势。应当理解,虽然通过二维灰色图像也能够检测用户手部,但是彩色图像检测用户手部的准确性更高,可以减少非手部的浅色阴影的误判,因而本公开的一些实施例使用通过摄像头111采集的二维彩色图像来检测用户的手部,进而识别出用户的手势类型。在框504,判断是否检测到开始手势。在检测到手部之后,可以提取手部的特征,做出分类归属,例如,如果识别到当前手势是单指向下,则表明空中手写开始。

如果在框504没有检测到开始手势,则返回框502继续周期性地检测开始手势。如果在框504检测到开始手势,则在框506,指尖识别模块112可以开始工作并且识别手指尖的空间轨迹。

在框508,判断是否检测到用于退出空中手写的结束手势。如果在框508没有检测到结束手势,则返回框506继续识别并跟踪手指尖的空间轨迹。如果在框508检测到结束手势,则说明用户指示书写结束,则停止手写识别的检测,并返回502继续周期性地检测手写开始手势。

在一些实施例中,可以基于检测到的手部,确定用于回归手部的包围盒。在第一彩色图像之后的第二彩色图像的包围盒中跟踪到手部的情况下,基于包围盒确定用户的手势类型;而在第二彩色图像的包围盒中未跟踪到手部的情况下,在第二彩色图像中创新启用对手部的检测。

例如,对于手部检测,可以基于cnn神经网络方案的图像识别,提取画面中的图像特征,然后进行回归计算,判断当前帧是否有手部以及手部的位置。手部检测通常只做第一帧,当手部丢失后,再做下一次检测。针对手部进行二分类判断,如果每帧检测或者跟踪的手部图像不是手部,就重新进行检测。例如,可以采用在线样本挖掘的方式进行手的二分类训练。此外,可以以框的形式进行手部跟踪,跟踪在图像序列中运动的手部。也就是说,在完成手部检测成功之后,可以运行跟踪网络,得到手部的二分类、包围盒区域以及手势类型。如果是手部,则用当前帧的包围盒抠下一帧的图像继续进行跟踪计算。如果不是手部,重新执行手部检测动作。

因此,本公开的实施例通过采用跟踪的方式,避免了每一帧都检测用户的手部,从而提高了执行速度。也就是说,通过加入二分类判别和回归包围盒的方式进行手势的检测跟踪结合,能够减少设备的计算量。

图6示出了根据本公开的实施例的用于识别空中手写的装置600的框图。如图6所示,装置600包括手掌检测模块610、指尖检测模块620、轨迹确定模块630以及轨迹识别模块640。手掌检测模块610被配置为检测二维灰度图像中的用户的手掌区域,指尖检测模块620被配置为基于手掌区域来检测二维灰度图像中的指尖,轨迹确定模块630被配置为基于一组二维灰度图像来确定指尖的空间轨迹,其中一组二维灰度图像包括该二维灰度图像,轨迹识别模块640被配置为基于空间轨迹来识别用户的手写内容。

在一些实施例中,手掌检测模块610包括:采集模块,被配置为通过电子设备的摄像头采集二维彩色图像;以及生成模块,被配置为通过对二维彩色图像进行灰度化来生成二维灰度图像。

在一些实施例中,指尖检测模块620包括:神经网络检测模块,被配置为使用深度神经网络检测二维灰度图像中的指尖,其中深度神经网络使用连续图像帧的信息而被训练。

在一些实施例中,其中该二维灰度图像是第一灰度图像,一组二维灰度图像还包括在时序上紧随第一灰度图像的第二灰度图像,并且轨迹确定模块630包括:搜索区域确定模块,被配置为基于检测到的指尖来确定用于回归手掌框的搜索区域;第一响应模块,被配置为响应于在第二灰度图像中的搜索区域中跟踪到手掌,基于搜索区域确定指尖的当前位置;以及第二响应模块,被配置为响应于在第二灰度图像中的搜索区域中未跟踪到手掌,在第二灰度图像中执行手掌检测。

在一些实施例中,装置600还包括:手势识别模块,被配置为响应于在通过摄像头采集的第一彩色图像中检测到用户的手部,识别用户的手势类型,手势类型至少包括用于触发空中手写的开始手势以及用于退出空中手写的结束手势。

在一些实施例中,其中手势识别模块包括:包围区域确定模块,被配置为基于检测到的手部,确定用于回归手部的包围区域;第三响应模块,被配置为响应于在第一彩色图像之后的第二彩色图像中的包围区域中跟踪到手部,基于包围区域确定用户的手势类型;以及第四响应模块,被配置为响应于在第二彩色图像中的包围区域中未跟踪到手部,在第二彩色图像中执行手部检测。

在一些实施例中,其中轨迹识别模块包括:特征提取模块,被配置为提取空间轨迹的8方向特征和书写顺序特征;神经网络识别模块,被配置为基于8方向特征和书写顺序特征,使用深度神经网络来确定用户的手写汉字。

在一些实施例中,其中特征提取模块包括:重采样模块,被配置为使用曲线拟合方式对空间轨迹进行重采样;以及第二特征提取模块,被配置为基于重采样的空间轨迹,提取8方向特征。

应当理解,图6中所示出的手掌检测模块610、指尖检测模块620以及轨迹确定模块630可以被包括在图1所示出的指尖识别模块112中,轨迹识别模块640可以为图1中所示出的轨迹识别模块114。而且,应当理解,图6中所示出的模块可以执行参考本公开的实施例的方法或过程中的步骤或动作。

图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。应当理解,设备700可以用于实现本公开所描述的用于识别空中手写的装置600或电子设备110。如图所示,设备700包括中央处理单元(cpu)701,其可以根据被存储在只读存储器(rom)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序指令,来执行各种适当的动作和处理。在ram703中,还可存储设备700操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息和/或数据。

处理单元701执行上文所描述的各个方法和过程,例如方法200-500。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram703并由cpu701执行时,可以执行上文描述的方法的一个或多个动作或步骤。备选地,在其他实施例中,cpu701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld),等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各动作或步骤,但是这应当理解为要求这样动作或步骤以所示出的特定次序或以顺序次序执行,或者要求所有图示的动作或步骤应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开的实施例,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

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