CN117435059A - 用于虚拟键盘的显示方法和装置 - Google Patents
用于虚拟键盘的显示方法和装置 Download PDFInfo
- Publication number
- CN117435059A CN117435059A CN202210833540.2A CN202210833540A CN117435059A CN 117435059 A CN117435059 A CN 117435059A CN 202210833540 A CN202210833540 A CN 202210833540A CN 117435059 A CN117435059 A CN 117435059A
- Authority
- CN
- China
- Prior art keywords
- hand
- virtual
- key
- virtual keyboard
- key point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000009877 rendering Methods 0.000 claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000004590 computer program Methods 0.000 claims abstract description 19
- 210000003811 finger Anatomy 0.000 claims description 74
- 210000003813 thumb Anatomy 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 15
- 210000004247 hand Anatomy 0.000 claims description 13
- 210000001145 finger joint Anatomy 0.000 claims description 9
- 238000009499 grossing Methods 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 7
- 210000000707 wrist Anatomy 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 description 18
- 238000013527 convolutional neural network Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 210000004553 finger phalanx Anatomy 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/0219—Special purpose keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
- G06V40/11—Hand-related biometrics; Hand pose recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种用于虚拟键盘的显示方法、装置、计算机可读介质、电子设备、计算机程序产品和头戴显示设备,其中方法包括:识别当前帧图像中的手势;响应于当前帧图像中的手势与预设手势类别存在匹配,确定与预设手势类别对应的虚拟键盘布局;以及,根据采集的手部图像序列,获取手部关键点信息;根据手部关键点信息与虚拟键盘布局,对虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使虚拟键盘在手部叠加显示。
Description
技术领域
本公开涉及信息输入技术领域,尤其是一种用于虚拟键盘的显示方法、装置、计算机可读介质、电子设备、计算机程序产品和头戴显示设备。
背景技术
目前常用的信息输入方式包括通过实体键盘输入或通过虚拟键盘输入。其中,虚拟键盘主要应用于AR(Augmented Reality,增强现实)和VR(Virtual Reality,虚拟现实技术)等设备中的信息输入。在信息输入过程中,通常是将虚拟键盘投射在眼睛前方,通过手势识别按压的虚拟键盘进行人机交互,实现信息的输入。
发明内容
本公开的实施例提供了一种用于虚拟键盘的显示方法、装置、计算机可读介质、电子设备、计算机程序产品和头戴显示设备。
根据本公开实施例的一个方面,提供了一种用于虚拟键盘的显示方法,包括:
识别当前帧图像中的手势;响应于当前帧图像中的手势与预设手势类别存在匹配,确定与预设手势类别对应的虚拟键盘布局;根据采集的手部图像序列,获取手部关键点信息;其中,手部图像序列包括从当前帧图像向前至少一帧的时序手部图像;手部关键点信息包括各个手部关键点的空间位置信息,手部关键点包括用于表征指尖、指关节和手腕所在位置的至少一个点;虚拟键盘布局包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系;根据手部关键点信息与虚拟键盘布局,对虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使虚拟键盘在手部叠加显示。
根据本公开实施例的一个方面,提供了一种用于虚拟键盘的显示装置,包括:
识别模块,用于识别当前帧图像中的手势;确定模块,用于响应于当前帧图像中的手势与预设手势类别存在匹配,确定与预设手势类别对应的虚拟键盘布局;获取模块,用于根据采集的手部图像序列,获取手部关键点信息;其中,手部图像序列包括从当前帧图像向前至少一帧的时序手部图像;手部关键点信息包括各个手部关键点的空间位置信息,手部关键点包括用于表征指尖、指关节和手腕所在位置的至少一个点;虚拟键盘布局包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系;渲染模块,根据手部关键点信息与所述虚拟键盘布局,对虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使虚拟键盘在手部叠加显示。
根据本公开实施例的一个方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序指令,计算机程序指令在被处理器运行时执行上述用于虚拟键盘的显示方法。
根据本公开实施例的一个方面,提供了一种头戴显示设备,头戴显示设备包括上述用于虚拟键盘的显示装置。
根据本公开实施例的一个方面,提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器执行时实现上述用于虚拟键盘的显示方法。
根据本公开实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,其上存储有一个或多个计算机程序指令;在一个或多个计算机程序指令被一个或多个处理器执行的情况下,一个或多个处理器实现上述用于虚拟键盘的显示方法。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的虚拟键盘的显示方法的流程示意图。
图2是本公开一示例性实施例提供的手部关键点的示意图。
图3是本公开一示例性实施例提供的虚拟键盘的布局样式的示意图。
图4是本公开另一示例性实施例提供的虚拟键盘的布局样式的示意图。
图5是本公开一示例性实施例提供的虚拟键盘在手部叠加显示的侧视图。
图6是本公开一示例性实施例提供的虚拟键盘的显示装置的一种结构示意图。
图7是本公开一示例性实施例提供的虚拟键盘的显示装置的另一种结构示意图。
图8是本公开电子设备一个应用实施例的结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各实施例的描述着重强调各实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
图1是本公开一示例性实施例提供的虚拟键盘的显示方法的流程示意图。本实施例可应用在电子设备、AR设备或VR设备等上,如图1所示,包括如下步骤:
步骤100,识别当前帧图像中的手势。
在一种可选的实施方式中,可以通过头戴显示设备上的图像采集设备实时或按照预设周期采集至少一帧图像,采集的图像可以为深度图像。图像采集设备可以为单目摄像头、双目摄像头或深度摄像头(如,TOF(Time of flight,飞行时间)摄像头)等。
在一种示例中,手势用于表示手部的姿势,例如可以为ok手势,v形手势,右手四指并拢向左、手心朝向头戴显示设备的手势,右手四指并拢向上、手心朝向头戴显示设备的手势,左手四指并拢向上、手心背对头戴显示设备的手势,两手分别四指并拢指尖相对中指相接、手心朝向头戴显示设备的手势,两手分别四指并拢指尖向上、左右手掌相接、手心朝向头戴显示设备的手势等。
在一种可选的实施方式中,可以通过图像识别技术对当前帧图像进行识别,确定当前帧图像中的手势。示例性的,可以通过预先训练好的用于手势识别的神经网络对当前帧图像进行手势识别,得到当前帧图像中的手势。该神经网络可以为CNN(ConvolutionalNeural Networks,卷积神经网络),R-CNN(Region Convolutional Neural Networks,区域卷积神经网络)等。该用于手势识别的神经网络可以通过多帧标识有手势的训练图像训练得到。也可以通过预先训练好的用于手部关键点识别的神经网络对当前帧图像中的手部进行手部关键点识别,之后利用识别出的手部关键点以及手部关键点的相互位置关系与手势的对应关系,得到当前帧图像中的手势。该神经网络可以为CNN,R-CNN等。
步骤110,响应于当前帧图像中的手势与预设手势类别存在匹配,确定与预设手势类别对应的虚拟键盘布局。
在一种可选的实施方式中,可以预先存储至少一种预设手势类别,将当前帧图像中的手势与各个预设手势类别进行匹配,确定当前帧图像中的手势是否与任一预设手势类别存在匹配。当确定当前帧图像中的手势与任一预设手势类别存在匹配时,可以确定与该预设手势类别对应的虚拟键盘布局。每种预设手势类别对应一种虚拟键盘布局。
在一种可选的实施方式中,虚拟键盘布局可以包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系。
在一种可选的实施方式中,虚拟键盘包括多个虚拟按键,可以在每一虚拟按键上选择一个点作为该虚拟按键的定位点。可以采用每一虚拟按键的定位点的空间位置信息表征该虚拟按键的空间位置信息。
在一种可选的实施方式中,虚拟键盘的布局样式用于表征虚拟键盘的外观样式和虚拟按键的数量。示例性的,虚拟键盘的外观样式,例如可以为右手手心横向的样式,左手手心横向的样式,双手手心横向的样式,双手手心纵向的样式,右手手背纵向的样式,左手手背纵向的样式等等。虚拟键盘的虚拟按键数量可以包括9宫格键盘或26宫格键盘等,例如,图3示出了布局样式为右手手心横向、12宫格键盘的虚拟键盘,图4示出了布局样式为双手手心横向、34宫格键盘的虚拟键盘。虚拟键盘的布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系,即每一虚拟按键的定位点与哪一个手部关键点绑定。
本公开实施例中,手部关键点信息可以包括各个手部关键点的空间位置信息,手部关键点可以包括用于表征指尖、指关节和手腕所在位置的至少一个点。参见图2,其中示出了21个手部关键点。
在一种可选的实施方式中,可以预先创建预设手势类别与虚拟键盘布局的对应关系,即每一预设手势类别对应一个虚拟键盘布局。每一预设手势类别中存储了一类手势,除拇指外的其余手指所形成的手势集合,例如一个预设手势类别包括右手四指并拢向左、手心朝向头戴显示设备的手势集合,另一个预设手势类别包括右手四指并拢向上、手心朝向头戴显示设备的手势集合,再一个预设手势类别包括两手分别四指并拢指尖相对中指相接、手心朝向头戴显示设备的手势集合。
在一种可选的实施方式中,可以获取与当前帧手部图像中的手势匹配的预设手势类别,根据预设手势类别与虚拟键盘布局的对应关系,获取与当前帧图像中的手势匹配的预设手势类别对应的虚拟键盘布局。
步骤120,根据采集的手部图像序列,获取手部关键点信息。
在一种可选的实施方式中,该手部图像序列包括从当前帧手部图像向前至少一帧的时序手部图像。
在一种可选的实施方式中,可以利用图像识别技术对采集的图像进行手部识别,确定采集的图像中是否存在手部,并将从当前帧向前至少一帧的具有手部的连续图像作为手部图像序列。当前帧手部图像可以为手部图像序列中时序最新的手部图像,或在当前帧图像中包括有手部时可以将当前帧图像作为当前帧手部图像。
可选的,手部关键点的空间位置信息可以包括该手部关键点的横纵坐标和深度,该手部关键点的深度可以为该手部关键点与头戴显示设备之间的距离。示例性的,手部关键点的空间位置信息可以通过该手部关键点的三维坐标(x,y,z)表示,x和y分别表示手部关键点的横纵坐标,z表示手部关键点的深度。
在一种可选的实施方式中,可以通过预先训练好的用于手部关键点识别的神经网络对手部图像序列进行手部关键点识别,得到手部关键点信息。该神经网络可以为DNN(Deep Neural Networks,深度信息神经网络)、CNN(Convolutional Neural Networks,卷积神经网络)等。示例性的,图2示出了识别出的手部关键点。如图2所示,识别出手部上的21个手部关键点,并对每一手部关键点进行编号。其中,编号为0的手部关键点对应手腕的位置,编号为8的手部关键点对应食指指尖的位置,编号为5的手部关键点对应食指根部手指关节的位置。
步骤130,根据手部关键点信息与虚拟键盘布局,对虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使虚拟键盘在手部叠加显示。
在一种可选的实施方式中,根据手部关键点信息中每个手部关键点的空间位置信息、虚拟键盘的布局样式中的各虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系,确定每个虚拟按键的空间位置信息。
在一种可选的实施方式中,根据各虚拟按键的定位点的空间位置信息,对各虚拟按键进行渲染,以使虚拟键盘在手部叠加显示。例如,图5示出了虚拟键盘在手部叠加显示的侧视图。如图5所示,虚拟键盘在手部叠加显示时,由于各虚拟按键的定位点的深度信息与其绑定的手部关键点的深度信息具有对应关系,所以虚拟键盘并非一个平面键盘。根据手部关键点的深度不同,对应的各虚拟按键的深度也不同,从而实现各虚拟按键在至少一个深度上进行渲染,虚拟按键跟随手指移动的效果。
本公开实施例中,在识别到当前帧图像中的手势与任一预设手势类别存在匹配的情况下,确定与该预设手势类别对应的虚拟键盘布局,以及,根据采集的手部图像序列,获取手部关键点信息,并根据手部关键点信息和虚拟键盘布局进行渲染,生成虚拟键盘,同时使虚拟键盘在手部叠加显示,实现了在手部叠加显示虚拟键盘。另外,本公开实施例中,由于每一虚拟按键与该虚拟按键绑定的手部关键点的深度具有对应关系,使虚拟按键与其绑定的手部关键点更加贴合,进一步方便用户点击虚拟键盘,使用户在点击虚拟按键的时候有触觉和反馈,提高了用户的使用体验。
在本公开一个实施例中,在步骤100之前,还可以包括:采集图像序列。
在一种可选的实施方式中,用于渲染虚拟键盘的头戴显示设备,在渲染虚拟键盘前,会使用自带的图像采集设备持续采集图像得到时序的图像序列。图像序列的上限帧数可以为指定帧数,当采集到新的图像时,使用新的图像作为当前帧图像,而时序最早的那帧图像被剔除。图像序列也可以不设上限帧数,在有新的图像持续出现的情况下,在图像序列中继续补增。
在一种可选的实施方式中,还可以包括:对图像序列中的每帧图像进行预处理。此处的预处理可以包括但不限于:自动曝光控制、自动白平衡、色彩矫正、图像去噪等操作。通过预处理可以使采集的图像更清晰,便于后续进行各种操作和应用。
在一种可选的实施方式中,还可以包括:确认当前帧图像中是否包含手部。
可选的,可以通过预先训练得到的手部检测模型对当前帧图像进行第一人称手部的检测,并将检测到的手部的区域进行框选和输出。手部检测模型可以使用CNN进行训练得到。手部检测模型检测到的第一人称的左手和右手在图像中的位置,可以用(C,X,Y,W,H)表示。其中C表示类别(左手或是右手),X和Y表示框住手部的目标矩形框的中心在图像中的位置,W和H分别表示目标矩形框的宽和高。对于识别出双手的情况,则在图像中使用两个目标矩形框来分别表示。
在一种可选的实施方式中,在图像序列中,若从当前帧图像向前至少一帧的时序图像中均包含有手部,则将从当前帧图像向前至少一帧的包含手部的时序图像作为手部图像序列。
在一种可选的实施方式中,在确认当前帧图像中包含手部的情况下,则执行步骤100的识别当前帧图像中的手势的步骤。由于手部图像序列包括从当前帧图像向前至少一帧的时序手部图像,因此在确认当前帧图像中包含手部的情况下,可以开始执行步骤120的根据采集的手部图像序列,获取手部关键点信息的操作。
在本公开一个实施例中,步骤120可以包括:将手部图像序列输入时序手部关键点识别模型,经时序手部关键点识别模型输出手部关键点信息。
可选的,时序手部关键点识别模型可以为预先训练好的用于手部关键点识别的神经网络,例如,该神经网络可以为LSTM(Long Short-Term Memory,长短期记忆网络)、RNN(Recurrent Neural Network,循环神经网络)、TCN(Temporal Convolutional Network,时序卷积网络)等。可选的,可以通过具有时序关系的多帧标注有手部关键点信息的训练图像对神经网络进行训练,得到时序手部关键点识别模型。由于输出的手部关键点信息是空间位置信息,是包含深度的,因此训练时序手部关键点识别模型的训练样本需要能够体现深度,例如可以是单目带深度的图像,或双目图像;对于单目无深度的图像,可以根据常规物体(例如人手)的平均尺寸和该物体在图像中的尺寸来估算深度。
在一种可选的实施方式中,输入时序手部关键点识别模型的手部图像还可以带有表征手部所在区域的目标矩形框,便于直接在手部所在区域中进行手势识别,提高手势识别的速度并降低计算量。
在一种可选的实施方式中,时序手部关键点识别模型的输入为时序的至少一帧手部图像(例如10帧),输出为一帧手部关键点信息。
本公开实施例中,利用时序手部关键点识别模型强大的学习能力和时序序列分析能力,可以对具有时序关系的手部图像序列进行识别和平滑,得到准确稳定的手部关键点信息,为后续利用手部关键点信息渲染各虚拟按键提供可靠的数据基础。
在本公开一个实施例中,步骤120可以包括如下步骤:
步骤121,将手部图像序列中的每帧手部图像分别输入单帧手部关键点识别模型,经单帧手部关键点识别模型输出对应每帧手部图像的初步手部关键点信息。
在一种可选的实施方式中,单帧手部关键点识别模型可以为预先训练好的用于手部关键点识别的神经网络,例如,该神经网络可以为CNN、R-CNN等。例如,可以通过多帧标注有手部关键点信息的训练图像对神经网络进行训练,得到单帧手部关键点识别模型。每一帧手部图像的初步手部关键点信息可以包括该帧手部图像中的各手部关键点的空间位置信息。由于输出的初步手部关键点信息是空间位置信息,是包含深度的,因此训练单帧手部关键点识别模型的训练样本需要能够体现深度,例如可以是单目带深度的图像,或双目图像;对于单目无深度的图像,可以根据常规物体(例如人手)的平均尺寸和该物体在图像中的尺寸来估算深度。
在一种可选的实施方式中,输入单帧手部关键点识别模型的手部图像还可以带有表征手部所在区域的目标矩形框,便于直接在手部所在区域中进行手势识别,提高手势识别的速度并降低计算量。
步骤122,将时序排列的初步手部关键点信息序列输入平滑模型,经平滑模型输出手部关键点信息。
在一个可选示例中,可以根据每一初步手部关键点信息对应的手部图像的采集时刻,确定该初步手部关键点信息对应的时刻,进而得到时序排列的初步手部关键点信息。
在另一个可选示例中,可以在步骤121中将手部图像序列依时序输入到单帧手部关键点识别模型,则单帧手部关键点识别模型依次输出的就是时序排列的初步手部关键点信息。
在一种可选的实施方式中,平滑模型可以为预先训练好的用于进行平滑处理的神经网络,例如,该神经网络可以为CNN、R-CNN等。可选的,可以通过具有时序关系的多帧标注有手部关键点信息的训练图像对神经网络进行训练,得到平滑模型。平滑模型的输入为时序的至少一帧(例如10帧)初步手部关键点信息,输出为一帧手部关键点信息。
本公开实施例中,利用单帧手部关键点识别模型强大的学习能力,实现了对各帧手部图像中手部关键点的准确识别,得到各帧手部图像的准确的初步手部关键点信息,然后利用平滑模型对时序初步手部关键信息进行平滑,得到稳定的手部关键点信息,降低了依据单帧手部图像输出手部关键点信息时手部关键点抖动、进而导致与手部关键点绑定的虚拟按键抖动的情况,为后续利用手部关键点信息渲染各虚拟按键提供了稳定的数据基础。
在本公开一个实施例中,还包括:响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,确定发生针对该虚拟按键的点击事件。
在一种可选的实施方式中,指定手部关键点可以为预先设定的至少一个手部关键点,指定手部关键点可以用于对虚拟按键进行点击。预设阈值可以根据实际需求设定。
示例性的,可以将拇指的指尖设置为指定手部关键点,例如,如图2所示,可以将拇指上编号为4的手部关键点设置为指定手部关键点。对于图3的场景,还可以将左手的食指指尖8设置为指定手部关键点,具体如何设置指定手部关键点,可以根据具体的场景需求来预先确定。
在一种可选的实施方式中,可以实时或按照预设周期检测指定手部关键点与各虚拟按键之间的距离,可以根据指定手部关键点的空间位置信息与各虚拟按键的定位点的空间位置信息,确定指定手部关键点与各虚拟按键之间的距离。指定手部关键点与虚拟按键之间的距离可以为欧氏距离、马氏距离等。例如,可以根据指定手部关键点的空间位置信息中的空间坐标(x1,y1,z1)与虚拟按键的定位点的空间位置信息中的空间坐标(x2,y2,z2),确定指定手部关键点与虚拟按键之间的距离。
在一种可选的实施方式中,在检测到指点手部关键点与任一虚拟按键之间的距离小于预设阈值的情况下,确定发生针对该虚拟按键的点击事件,并将与指定手部关键点之间距离小于预设阈值的虚拟按键确定为目标虚拟按键。
需要说明的是,指定手部关键点可以为一个也可以为多个,当指定手部关键点为多个时,需要确定每一指定手部关键点与各虚拟按键之间的距离,当任一指定手部关键点与任一虚拟按键之间的距离小于预设阈值时,确定发生针对该虚拟按键的点击事件。
本公开实施例中,根据指定手部关键点与虚拟按键之间的距离与预设阈值,可以快速准确的确定是否发生针对虚拟按键的点击事件,实现了准确和高效的对虚拟按键的点击事件的确定,有效的提高用户的使用体验。
在一种可选的实施方式中,检测针对虚拟按键的点击事件包括:响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,且通过当前帧及之前预设帧数的手部图像判定指定手部关键点与该虚拟按键之间的相对距离减小,确定发生针对该虚拟按键的点击事件。
在一种可选示例中,在检测到当前帧手部图像中的指定手部关键点与任一虚拟按键之间的距离小于预设阈值的情况下,将与指定手部关键点之间的距离小于预设阈值的虚拟按键确定为初步目标虚拟按键。通过当前帧及之前预设帧数的手部图像,检测在指定手部关键点与初步目标虚拟按键之间距离小于预设阈值前,指定手部关键点与初步目标虚拟按键之间的相对距离是否逐渐变小。在指定手部关键点与初步目标虚拟按键之间距离小于预设阈值前,指定手部关键点与初步目标虚拟按键之间的相对距离逐渐变小的情况下,确定发生针对初步目标虚拟按键的点击事件,将初步目标虚拟按键确定为目标虚拟按键。若检测到在指定手部关键点与初步目标虚拟按键之间距离小于预设阈值前,指定手部关键点与初步目标虚拟按键之间的相对距离没有发生逐渐变小,确定未发生针对初步目标虚拟按键的点击事件,此次指定手部关键点与该虚拟按键之间的距离小于预设阈值不被识别为一次点击事件。可选的,当前帧及之前预设帧数的总帧数可以与手部图像序列的帧数相同,或两者在帧数上有差别,均不影响本公开实施例的实现。
本实施方式中,当检测到当前帧手部图像中的指定手部关键点与虚拟按键之间的距离小于阈值,且通过当前帧及之前预设帧数的各帧手部图像判定指定手部关键点与该虚拟按键之间的距离变小,确定发生对该虚拟按键的点击事件。对于指定手部关键点持续按在同一虚拟按键上的情况进行识别和排除,避免由于用户手部动作慢导致同一虚拟按键对应的信息多次重复输入而导致的输入错误,有效的提高了确定发生对虚拟按键的点击事件的准确性。
在另一种可选的实施方式中,检测针对虚拟按键的点击事件包括:通过当前帧及之前预设帧数的手部图像,响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预定阈值后,指定手部关键点与该虚拟按键之间的相对距离直接增大,确定发生针对该虚拟按键的点击事件。
在一种可选示例中,通过当前帧及之前预设帧数的手部图像,检测到出现指定手部关键点与任一虚拟按键之间的距离小于预设阈值的至少一帧手部图像。将这里的至少一帧手部图像分别确定为起始帧手部图像,并对应将与指定手部关键点之间的距离小于预设距离的虚拟按键分别确定为初步目标虚拟按键。对于每个起始帧手部图像:获取该起始帧手部图像之后的其他帧时序手部图像中的指定手部关键点与对应初步目标虚拟按键之间的距离;在其他帧时序手部图像中的指定手部关键点与对应初步目标虚拟按键之间的相对距离直接增大的情况下,即其他帧时序手部图像中的指定手部关键点与对应初步目标虚拟按键之间的相对距离在小于预设阈值后直接增大,确定发生针对对应初步目标虚拟按键的点击事件,将对应初步目标虚拟按键确定为目标虚拟按键。若对于某一起始帧手部图像,在其他帧时序手部图像中的指定手部关键点与对应初步目标虚拟按键之间的相对距离未直接增大的情况下,确定未发生针对对应初步目标虚拟按键的点击事件,此次指定手部关键点与该虚拟按键之间的距离小于预设阈值不被识别为一次点击事件。可选的,当前帧及之前预设帧数的总帧数可以与手部图像序列的帧数相同,或两者在帧数上有差别,均不影响本公开实施例的实现。
本实施方式中,在检测到指定手部关键点与一虚拟按键之间的相对距离在小于预设阈值后直接增大,确定发生对虚拟按键的点击事件。对于指定手部关键点按在一个虚拟按键后、保持按压状态在虚拟键盘上的不同虚拟按键上进行滑动的情况进行识别和排除,以最后一次指定手部关键点按压并抬起的虚拟按键作为本次按压的实际虚拟按键,有效的提高了确定发生对虚拟按键的点击事件的准确性。
在一个可选的实施方式中,在确定某一虚拟按键发生点击事件后,若该虚拟按键上对应一个输入符号,则可以直接将该虚拟按键对应的输入符号作为输入信息。若该虚拟按键上对应多个输入符号,则该虚拟按键可以展开二级键盘。二级键盘上分布有多个二级虚拟按键,每个二级虚拟按键对应原虚拟按键上的一个输入符号。在检测到指定手部关键点与任一二级虚拟按键的距离小于预设阈值的情况下,将该二级虚拟按键对应的输入符号作为输入信息。若在展开二级键盘的情况下,用户没有从二级键盘上选择二级虚拟按键,而是点击了虚拟键盘上的其他虚拟按键,则可以收起二级键盘,并同时确定该其他虚拟按键发生点击事件。
在一个可选的实施方式中,在确定某一虚拟按键发生点击事件后,若该虚拟按键上对应一个输入符号,则可以直接将该虚拟按键对应的输入符号作为输入信息。若该虚拟按键上对应多个输入符号,还可以检测该虚拟按键从发生点击事件时刻起,是否在预设时间间隔内发生一次以上点击事件。若是,则按照接收的点击次数确定虚拟按键上的对应输入符号。例如,对于带有3个输入符号的虚拟按键,若预设时间间隔内没有再发生点击事件,则将顺序第一的输入符号作为输入信息;若预设时间间隔内发生2次点击事件,则将顺序第三的输入符号作为输入信息;若预设时间间隔内发生5次点击事件,则认为没有输入符号命中,或将顺序第一的输入符号作为输入信息输出6次等。
在本公开一个实施例中,用于虚拟键盘的显示方法还包括:响应于检测到指定手部关键点位于任一虚拟按键与渲染虚拟键盘的头戴显示设备之间,或者检测到指定手部关键点所在手指位于任一虚拟按键与渲染虚拟键盘的头戴显示设备之间,将定位点的横纵坐标位于指定手部关键点所在手指范围内、且深度信息大于指定手部关键点所在手指的深度的虚拟按键进行全部或部分隐藏。此处的全部或部分隐藏也可以称为至少部分隐藏。
在一个可选的实施方式中,头戴显示设备上的图像采集设备用于采集图像,形成手部图像序列,例如,图像采集设备可以为AR设备上的摄像头。当根据手部图像序列检测到指定手部关键点位于任一虚拟按键与头戴显示设备之间,或者,检测到指定手部关键点所在手指位于任一虚拟按键与头戴显示设备之间,将定位点的横纵坐标位于指定手部关键点所在手指的范围内、且深度大于指定手部关键点的深度的虚拟按键进行至少部分隐藏。即将被指定手部关键点所在手指遮挡的虚拟按键进行全部隐藏,不对该虚拟按键进行渲染,或渲染该虚拟按键能够从指定手部关键点所在手指范围外露出的那部分。
示例性的,可以将手部图像序列输入预先训练好的用于检测手指轮廓信息的神经网络,得到指定手部关键点所在的手指的轮廓信息。该手指的轮廓信息包括指定手部关键点所在的手指的轮廓上各点的空间位置信息。根据指定手部关键点所在的手指的轮廓信息和各虚拟按键的定位点的空间位置信息,确定定位点的横纵坐标位于指定手部关键点所在手指的范围内,同时其深度大于指定手部关键点的深度的虚拟按键。将确定的虚拟按键不进行渲染,或渲染该虚拟按键能够从指定手部关键点所在手指范围外露出的那部分,以使确定的虚拟按键不在手部上显示或显示能看到的那部分。
本公开实施例中,将横纵坐标位于指定手部关键点所在手指范围内、且深度大于指定手部关键点的深度的虚拟按键进行至少部分隐藏,使得虚拟键盘在叠加显示在手部时更接近于真实键盘效果,不仅便于用于对虚拟键盘的点击,而且提高了用户的使用体验度,同时也便于用户确认其点击的虚拟按键,进一步提高用户的使用体验。
在本公开一个实施例中,用于虚拟键盘的显示方法还可以包括:将发生点击事件的虚拟按键突出显示。
在一个可选的实施方式中,发生点击事件的虚拟按键为目标虚拟按键,即指定手部关键点所点击的虚拟按键。在确定发生针对某一虚拟按键的点击事件的情况下,将指定手部关键点点击的虚拟按键突出显示。可选的,突出显示可以包括以下至少一项:将发生点击事件的虚拟按键的颜色以区别于其他虚拟按键的颜色显示,将发生点击事件的虚拟按键放大,在该虚拟按键原先所在的深度基础上增加或减小一设定距离,将发生点击事件的虚拟按键上的字符加粗并变色,将发生点击事件的虚拟按键以预设图形作为背景进行呈现等。
本公开实施例中,将点击事件对应的虚拟按键突出显示方便用户确认其所点击的虚拟按键,降低虚拟按键点击的错误率。
在本公开一个实施例中,步骤110具体可以包括如下步骤:
步骤111,响应于当前帧图像中的手势与预设手势存在匹配,显示用于提示是否启动虚拟键盘的提示信息。
在一个可选的实施方式中,在当前帧图像中的手势与预设手势类别存在匹配的情况下,提示是否启动虚拟键盘。该提示可以通过音频,也可以通过亮度变化、振动、文字、图像等方式提示。在提示是否启动虚拟键盘时,还可以显示用于控制是否启动虚拟键盘的虚拟控件,用户可以通过点击虚拟控件中的选项,确定是否启动虚拟键盘。
步骤112,响应于接收到启动虚拟键盘的确认指令,则执行步骤110中确定与预设手势类别对应的虚拟键盘布局的操作。
本公开申请实施例中,通过提示是否启动虚拟键盘,向用户确认是否启动虚拟键盘,避免了用户由于误发出与预设手势类别匹配的手势,直接显示虚拟键盘对用户造成打扰,进而有效的提高了用户的使用体验。
在本公开一个实施例中,还可以包括:响应于检测到满足结束渲染条件,结束对各虚拟按键的渲染。
在一个可选的实施方式中,结束渲染条件包括以下一项或多项:与预设手势类别匹配的手势消失;存在用于指示退出虚拟键盘的设定手势;未检测到手部。
在一个可选示例中,头戴显示设备上的图像采集设备实时或按照预设周期采集图像,并将采集的包括有手部的图像按时序排列,形成手部图像序列。手部图像序列的上限帧数可以为指定帧数,当新的手部图像出现时,使用新的手部图像作为当前帧手部图像,而时序最早的那帧手部图像被剔除。手部图像序列也可以不设上限帧数,在有新的手部图像持续出现的情况下,在手部图像序列中继续补增。在检测到的新的手部图像中存在与预设手势类别不匹配的手势时,即与预设手势类别匹配的手势消失,则确定满足结束渲染条件,结束对各虚拟按键的渲染,使虚拟键盘不再叠加显示在手部。或者,在检测到新的手部图像中存在用于指示退出虚拟键盘的设定手势的情况下,则确定满足结束渲染条件,结束对各虚拟按键的渲染,使虚拟键盘不再叠加显示在手部。或者,采集的当前帧图像中不包括手部,即未检测到手部,则确定检测到满足结束渲染条件,结束对各虚拟按键渲染,使虚拟键盘不再叠加显示在手部。
本公开实施例中,通过对结束渲染条件的检测,并在检测到满足结束渲染条件的情况下,及时结束对各虚拟按键渲染,以使虚拟键盘不再显示,有效的提高了用户的使用体验。
在本公开一个实施例中,还可以包括如下步骤:
步骤140,响应于检测到满足结束渲染条件,提示是否退出虚拟键盘。
在一个可选的实施方式中,当检测到满足结束渲染条件时,提示是否退出虚拟键盘,该提示可以通过音频也可以通过亮度变化、振动、文字、图像等方式提示,在提示是否退出虚拟键盘时,还可以显示用于控制虚拟键盘是否关闭的虚拟控件,用户可以通过点击虚拟控件中的选项,确定是否关闭虚拟键盘。
步骤150,响应于接收到退出虚拟键盘的确认指令,执行上述结束对各虚拟按键的渲染的操作。
在一个可选的实施方式中,当接收到退出虚拟键盘的确认指令,结束对各虚拟按键渲染,即停止在手部叠加显示虚拟键盘。
本公开实施例中,通过提示是否退出虚拟键盘向用户确认是否关闭虚拟键盘,避免了用户由于误操作产生结束对虚拟键盘渲染导致虚拟键盘消失,有效的提高了用户的使用体验。
在一个可选的实施方式中,各虚拟按键的定位点可以为虚拟按键的中心点或位于虚拟按键边框上的预设点,还可以包括位于该虚拟按键其他位置上的点,本公开实施例不进行穷举。
在一种可选的实施方式中,虚拟键盘的布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系包括以下至少一项:
各虚拟按键的中心点与除拇指外的其余手指上对应的各手部关键点的绑定关系;
各虚拟按键的边框上的预设点分别与除拇指外的其余手指上对应的手部关键点的绑定关系;
各虚拟按键的中心点分别与通过除拇指外属于同一手指的相邻两个手部关键点确定的位置点的绑定关系。
在一个可选示例中,各虚拟按键的中心点与除拇指外的其余手指上对应的各手部关键点的绑定关系,即为虚拟按键的中心点与除拇指外的其他手指关节和指尖的绑定关系。虚拟按键的中心点的横纵坐标可以采用对应手部关键点的横纵坐标。虚拟按键的中心点的深度可以直接采用对应手部关键点的深度坐标,也可以在对应手部关键点的深度坐标基础上减预设手指厚度的一半,从而在视觉上使虚拟按键贴合在对应的手指关节和指尖表面。可选的,虚拟按键的表面朝向头戴显示设备的方向,或与绑定的手指关节的表面平行。
在一个可选示例中,各虚拟按键的边框上的预设点分别与除拇指外的其余手指上对应的手部关键点的绑定关系,即为一个虚拟按键边框上的预设点(例如四个顶点或相对两侧边框上的中点)与除拇指外的其他手指关节和指尖的绑定关系。虚拟按键的边框上的预设点的横纵坐标可以根据对应手部关键点的横纵坐标确定。虚拟按键的边框上的预设点的深度可以直接采用对应手部关键点的深度坐标,也可以在对应手部关键点的深度坐标基础上减预设手指厚度的一半,从而在视觉上使虚拟按键贴合在对应的手指指骨表面。在虚拟按键边框上的预设点为相对两侧边框上的中点的情况下,每个中点的横纵坐标可以采用对应手部关键点的横纵坐标。在虚拟按键边框上的预设点为四个顶点的情况下,位于同一手部关键点一侧的两个顶点的横坐标可以均采用对应手部关键点的横坐标,纵坐标可以在对应手部关键点的纵坐标基础上分别增减预设手指宽度的一半。这样在视觉上虚拟按键的两端挂在手指指骨两端,随手指指骨的长度进行调整。
在一个可选示例中,各虚拟按键的中心点分别与通过除拇指外属于同一手指的相邻两个手部关键点确定的位置点的绑定关系,即为虚拟按键的中心点与除拇指外的其他手指指骨的绑定关系。虚拟按键的中心点的横纵坐标可以采用对应指骨两端的两个手部关键点的横纵坐标的平均值。虚拟按键的中心点的深度可以直接采用对应的两个手部关键点的深度坐标的平均值,也可以在对应的两个手部关键点的深度坐标的平均值的基础上减预设手指厚度的一半,从而在视觉上使虚拟按键贴合在对应的手指指骨表面。可选的,虚拟按键的表面朝向头戴显示设备的方向,或与绑定的手指指骨的表面平行。
可选的,虚拟键盘中的虚拟按键可以一部分绑定在指尖、手指关节等手部关键点上,另一部分绑定在手部关键点表征的手指指骨上,具体可以根据虚拟键盘的布局样式来确定。预设手指宽度、预设手指厚度可以是根据人类手指的平均手指宽度和厚度预先设定的值。
在本公开的方法中,上述公开的各种实施例、实施方式和示例,都可以根据需要进行灵活的选择和组合,从而实现相应的功能和效果,本公开不进行一一列举。
示例性装置
图6为本公开的虚拟键盘的显示装置一个实施例的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例。如图6所示的装置包括:
识别模块300,用于识别当前帧图像中的手势。
确定模块310,用于响应于所述当前帧图像中的手势与预设手势类别存在匹配,确定与该预设手势类别对应的虚拟键盘布局。
获取模块320,用于根据采集的手部图像序列,获取手部关键点信息。
在一种可选的实施方式中,手部图像序列包括从当前帧图像向前至少一帧的时序手部图像;手部关键点信息包括各个手部关键点的空间位置信息,手部关键点包括用于表征指尖、指关节和手腕所在位置的至少一个点;虚拟键盘布局包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系。
渲染模块330,用于根据各手部关键点的手部关键点信息与上述虚拟键盘布局,对该虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使虚拟键盘在手部叠加显示。
在本公开一个实施例中,所述获取模块320可以用于将所述手部图像序列输入时序手部关键点识别模型,经所述时序手部关键点识别模型输出手部关键点信息。
在本公开一个实施例中,所述获取模块320可以用于将手部图像序列中的每帧手部图像分别输入单帧手部关键点识别模型,经所述单帧手部关键点识别模型输出对应每帧手部图像的初步手部关键点信息;将时序排列的初步手部关键点信息输入平滑模型,经平滑模型输出手部关键点信息。
在本公开一个实施例中,确定模块310,还可以用于响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,确定发生针对该虚拟按键的点击事件。
在本公开一个实施例中,确定模块310可以用于:响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,且通过当前帧及之前预设帧数的手部图像判定指定手部关键点与该虚拟按键之间的相对距离减小,确定发生针对该虚拟按键的点击事件。
在本公开一个实施例中,确定模块310可以用于:通过当前帧及之前预设帧数的手部图像,响应于检测到指定手部关键点与所述任一虚拟按键之间的距离小于预设阈值后,该指定手部关键点与该虚拟按键之间的相对距离直接增大,确定发生针对该虚拟按键的点击事件。
在本公开一个实施例中,渲染模块330,还可以用于响应于检测到指定手部关键点位于任一虚拟按键与渲染虚拟键盘的头戴显示设备之间,或者检测到指定手部关键点所在手指位于任一虚拟按键与渲染虚拟键盘的头戴显示设备之间,将定位点的横纵坐标位于所述指定手部关键点所在手指范围内、且深度大于所述指定手部关键点所在手指的深度的虚拟按键进行全部或部分隐藏。
在本公开一个实施例中,渲染模块330,还可以用于将发生点击事件的虚拟按键突出显示。
在本申请本公开一个实施例中,如图7所示,所述装置还可以包括:
提示模块340,用于响应于所述当前帧图像中的手势与预设手势类别存在匹配,提示是否启动虚拟键盘;
确定模块310,还可以用于响应于接收到启动虚拟键盘的确认指令,则执行所述确定与预设手势类别对应的虚拟键盘布局的操作。
在本公开一个实施例中,渲染模块330,还可以用于响应于检测到满足结束渲染条件,结束对各虚拟按键的渲染。
在一种可选的实施方式中,所述结束渲染条件包括以下一项或多项:
与预设手势类别匹配的手势消失;
存在用于指示退出虚拟键盘的设定手势;
未检测到手部。
在本公开一个实施例中,提示模块340,还可以用于:响应于检测到满足结束渲染条件,提示是否退出虚拟键盘;
渲染模块330,还可以用于:响应于接收到退出虚拟键盘的确认指令,结束对各虚拟按键的渲染。
在本公开一个实施例中,布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系可以包括以下至少一项:
各虚拟按键的中心点与除拇指外的其余手指上对应的各手部关键点的绑定关系;
各虚拟按键的边框上的预设点分别与除拇指外的其余手指上对应的手部关键点的绑定关系;
各虚拟按键的中心点分别与通过除拇指外属于同一手指的相邻两个手部关键点确定的位置点的绑定关系。
在本公开的装置中,上述公开的各种实施例、实施方式和示例,都可以根据需要进行灵活的选择和组合,从而实现相应的功能和效果,本公开不进行一一列举。
示例性头戴显示设备
本公开实施例提供了一种头戴显示设备,该头戴显示设备包括:本公开实施例中的用于虚拟键盘的显示装置。
在一个可选的实施方式中,头戴显示设备可以包括:头戴显示主体、处理器设备、图像采集设备和投影设备。头戴显示主体可以为眼镜、头盔等。图像采集设备用于图像采集。处理器设备用于对手部图像序列进行处理和渲染各虚拟按键,并将渲染的各虚拟按键传输到投影设备投影至手部显示。处理器设备可以为CPU,GPU(Graphics ProcessingUnit,图像处理器)或单片机等。
示例性电子设备
图8是本公开电子设备一个应用实施例的结构示意图。如图8所示,电子设备包括一个或多个处理器500和存储器510。
处理器500可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器510可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器500可以运行所述程序指令,以实现上文所述的本公开的各实施例的用于虚拟键盘的显示方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备还可以包括:输入装置520和输出装置530,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
输入装置520可以是麦克风或麦克风阵列,用于捕捉声源的输入信号。此外,该输入装置520还可以包括例如键盘、鼠标等等。
该输出装置530可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该该输出装置530可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于虚拟键盘的显示方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的用于虚拟键盘的显示方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (17)
1.一种用于虚拟键盘的显示方法,包括:
识别当前帧图像中的手势;
响应于所述当前帧图像中的手势与预设手势类别存在匹配,确定与所述预设手势类别对应的虚拟键盘布局;
根据采集的手部图像序列,获取手部关键点信息;
其中,所述手部图像序列包括从当前帧图像向前至少一帧的时序手部图像;所述手部关键点信息包括各个手部关键点的空间位置信息,所述手部关键点包括用于表征指尖、指关节和手腕所在位置的至少一个点;所述虚拟键盘布局包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系;
根据所述手部关键点信息与所述虚拟键盘布局,对所述虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使所述虚拟键盘在手部叠加显示。
2.根据权利要求1所述的方法,其中,所述根据所述手部图像序列,获取手部关键点信息,包括:
将所述手部图像序列输入时序手部关键点识别模型,经所述时序手部关键点识别模型输出所述手部关键点信息。
3.根据权利要求1所述的方法,其中,所述根据所述手部图像序列,获取手部关键点信息,包括:
将所述手部图像序列中的每帧手部图像分别输入单帧手部关键点识别模型,经所述单帧手部关键点识别模型输出对应所述每帧手部图像的初步手部关键点信息;
将时序排列的所述初步手部关键点信息输入平滑模型,经所述平滑模型输出所述手部关键点信息。
4.根据权利要求1所述的方法,其中,还包括:
响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,确定发生针对所述虚拟按键的点击事件。
5.根据权利要求4所述的方法,其中,所述响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,确定发生针对所述虚拟按键的点击事件,包括:
响应于检测到所述指定手部关键点与所述虚拟按键之间的距离小于预设阈值,且通过当前帧及之前预设帧数的手部图像判定所述指定手部关键点与所述虚拟按键之间的相对距离减小,确定发生针对所述虚拟按键的点击事件。
6.根据权利要求4所述的方法,其中,所述响应于检测到指定手部关键点与任一虚拟按键之间的距离小于预设阈值,确定发生针对所述虚拟按键的点击事件,包括:
通过当前帧及之前预设帧数的手部图像,响应于检测到所述指定手部关键点与所述拟按键之间的距离小于预设阈值后、所述指定手部关键点与所述虚拟按键之间的相对距离直接增大,确定发生针对所述虚拟按键的点击事件。
7.根据权利要求1所述的方法,其中,还包括:
响应于检测到指定手部关键点位于任一虚拟按键与渲染虚拟键盘的头戴显示设备之间,或者检测到指定手部关键点所在手指位于所述任一虚拟按键与渲染虚拟键盘的头戴显示设备之间;
将定位点的横纵坐标位于所述指定手部关键点所在手指范围内、且深度大于所述指定手部关键点所在手指的深度的虚拟按键进行全部或部分隐藏。
8.根据权利要求4至6中任一项所述的方法,其中,还包括:
将发生点击事件的虚拟按键突出显示。
9.根据权利要求1所述的方法,其中,所述响应于所述当前帧图像中的手势与预设手势类别存在匹配,确定与所述预设手势类别对应的虚拟键盘布局,包括:
响应于所述当前帧图像中的手势与预设手势类别存在匹配,提示是否启动虚拟键盘;
响应于接收到启动虚拟键盘的确认指令,则执行所述确定与所述预设手势类别对应的虚拟键盘布局的操作。
10.根据权利要求1所述的方法,其中,还包括:
响应于检测到满足结束渲染条件,结束对各虚拟按键的渲染;
其中,所述结束渲染条件包括以下一项或多项:
与预设手势类别匹配的手势消失;
存在用于指示退出虚拟键盘的设定手势;
未检测到手部。
11.根据权利要求10所述的方法,其中,所述响应于检测到满足结束渲染条件,结束对各虚拟按键的渲染,包括:
响应于检测到满足结束渲染条件,提示是否退出虚拟键盘;
响应于接收到退出虚拟键盘的确认指令,结束对各虚拟按键的渲染。
12.根据权利要求1所述的方法,其中,所述布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系包括以下至少一项:
各虚拟按键的中心点与除拇指外的其余手指上对应的各手部关键点的绑定关系;
各虚拟按键的边框上的预设点分别与除拇指外的其余手指上对应的手部关键点的绑定关系;
各虚拟按键的中心点分别与通过除拇指外属于同一手指的相邻两个手部关键点确定的位置点的绑定关系。
13.一种用于虚拟键盘的显示装置,包括:
识别模块,用于识别当前帧图像中的手势;
确定模块,用于响应于所述当前帧图像中的手势与预设手势类别存在匹配,确定与所述预设手势类别对应的虚拟键盘布局;
获取模块,用于根据采集的手部图像序列,获取手部关键点信息;
其中,所述手部图像序列包括从当前帧图像向前至少一帧的时序手部图像;所述手部关键点信息包括各个手部关键点的空间位置信息,所述手部关键点包括用于表征指尖、指关节和手腕所在位置的至少一个点;所述虚拟键盘布局包括:虚拟键盘的布局样式、以及布局样式中表征各个虚拟按键的定位点与除拇指外的其余手指上对应的手部关键点的绑定关系;
渲染模块,用于根据所述手部关键点信息与所述虚拟键盘布局,对所述虚拟键盘布局中各虚拟按键在至少一个深度上进行渲染,以使所述虚拟键盘在手部叠加显示。
14.一种计算机可读存储介质,所述存储介质存储有计算机程序指令,所述计算机程序指令在被处理器运行时执行上述权利要求1至12任一项所述的用于虚拟键盘的显示方法。
15.一种头戴显示设备,所述头戴显示设备包括:权利要求13所述的用于虚拟键盘的显示装置。
16.一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器执行时,实现上述权利要求1至12中任一项所述的用于虚拟键盘的显示方法。
17.一种电子设备,包括:
一个或多个处理器;
存储器,其上存储有一个或多个计算机程序指令;
在所述一个或多个计算机程序指令被所述一个或多个处理器执行的情况下,所述一个或多个处理器实现如权利要求1至12中任一项所述的用于虚拟键盘的显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210833540.2A CN117435059A (zh) | 2022-07-15 | 2022-07-15 | 用于虚拟键盘的显示方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210833540.2A CN117435059A (zh) | 2022-07-15 | 2022-07-15 | 用于虚拟键盘的显示方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435059A true CN117435059A (zh) | 2024-01-23 |
Family
ID=89546815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210833540.2A Pending CN117435059A (zh) | 2022-07-15 | 2022-07-15 | 用于虚拟键盘的显示方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435059A (zh) |
-
2022
- 2022-07-15 CN CN202210833540.2A patent/CN117435059A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kılıboz et al. | A hand gesture recognition technique for human–computer interaction | |
US10394334B2 (en) | Gesture-based control system | |
CN106845335B (zh) | 用于虚拟现实设备的手势识别方法、装置及虚拟现实设备 | |
TWI411935B (zh) | 利用影像擷取裝置辨識使用者姿勢以產生控制訊號之系統以及方法 | |
US8146020B2 (en) | Enhanced detection of circular engagement gesture | |
US20150084859A1 (en) | System and Method for Recognition and Response to Gesture Based Input | |
JP2020052991A (ja) | ジェスチャ認識に基づく対話型ディスプレイの方法及び装置 | |
US10466798B2 (en) | System and method for inputting gestures in 3D scene | |
US9063573B2 (en) | Method and system for touch-free control of devices | |
US20130343601A1 (en) | Gesture based human interfaces | |
KR20130099317A (ko) | 인터랙티브 증강현실 구현 시스템 및 증강현실 구현 방법 | |
JP2020067999A (ja) | ジェスチャー認識に基づく仮想ユーザー・インターフェース対話の方法および関係した装置 | |
WO2017029749A1 (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
EP4307096A1 (en) | Key function execution method, apparatus and device, and storage medium | |
US20230251745A1 (en) | Systems and methods for providing on-screen virtual keyboards | |
KR101525011B1 (ko) | Nui 기반의 실감형 가상공간 디스플레이 제어장치 및 제어방법 | |
CN111782041A (zh) | 打字方法及装置、设备、存储介质 | |
CN117435059A (zh) | 用于虚拟键盘的显示方法和装置 | |
KR20190132885A (ko) | 영상으로부터 손을 검출하는 장치, 방법 및 컴퓨터 프로그램 | |
KR102107182B1 (ko) | 손 제스처 인식 시스템 및 방법 | |
JP2021009552A (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN112306242A (zh) | 一种基于书空手势的交互方法和系统 | |
KR20110049162A (ko) | 휴대용 영상 처리기에서 가상 입출력 장치 및 방법 | |
Chen | Universal motion-based control and motion recognition | |
KR101558094B1 (ko) | 직관적인 핸드 모션에 기반한 멀티-모달 시스템 및 그 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |