一种虚拟键盘的控制方法、装置和计算机设备
文献发布时间:2024-01-17 01:26:37
技术领域
本申请涉及虚拟键盘技术领域,特别是涉及一种虚拟键盘的控制方法、装置和计算机设备。
背景技术
混合现实(MixedReality,简称MR)是一种将真实世界和虚拟世界相结合的新型交互技术。它通过使用各种传感器、计算机视觉算法和显示技术,使用户在真实世界中看到虚拟物体,并与之进行交互。目前,混合现实技术已经被应用于很多领域,例如游戏、工业制造、医疗、教育等。随着技术的不断进步和普及,混合现实会成为一种应用广泛的新型交互方式。
目前,在混合现实环境下,虚拟键盘的控制方法依然采用触屏或者手部佩戴传感器设备的方式,但是上述虚拟键盘的控制方法存在虚拟键盘的界面唤起以及界面切换效率低,使得虚拟键盘的输入效率低的问题。
然而,对于目前存在的虚拟键盘的控制方法,存在虚拟键盘的输入效率低的问题,尚未得到有效的解决。
发明内容
基于此,有必要针对上述技术问题,提供一种虚拟键盘的控制方法、装置和计算机设备。
第一方面,本申请提供了一种虚拟键盘的控制方法。所述方法包括:
获取预先关联的摄像装置采集到的图像帧;
对获取到的所述图像帧进行手部图像检测;
在所述图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手部图像的对应位置处进行按键布局摆放并显示;
响应于检测到的所述手部图像中的手势变化,对所述虚拟键盘进行切换显示。
在其中一个实施例中,所述对获取到的所述图像帧进行手部图像检测,包括:
通过MediaPipe的手部检测算法,对获取到的所述图像帧进行手部图像检测,生成手部图像检测结果。
在其中一个实施例中,在所述图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手部图像的对应位置处进行按键布局摆放并显示,包括:
在所述手部图像检测结果指示在所述图像帧中检测到手部图像的情况下,根据预设的手部检测模型对检测到的所述手部图像进行分类,确定所述手部图像是否属于手掌;
在分类结果指示所述手部图像属于手掌时,基于MediaPipe中预存的手掌库,对所述手掌进行检测,得到所述手掌的关键位置;
基于所述手掌的关键位置,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手掌的关键位置处进行按键布局摆放并显示。
在其中一个实施例中,所述基于所述手掌的关键位置,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手掌的关键位置处进行按键布局摆放并显示,包括:
基于所述手掌的关键位置,获取所述手掌的二维位置分布;
基于所述手掌的二维位置分布,以及预设的数字键盘的布局策略,在所述手掌的二维位置分布中的每个关键位置处,匹配对应的数字键盘的按键内容,显示所述手掌所对应的数字键盘。
在其中一个实施例中,所述基于所述手掌的关键位置,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手掌的关键位置处进行按键布局摆放并显示,包括:
基于所述手掌的关键位置,获取所述手掌的二维位置分布;
基于所述手掌的二维位置分布,以及预设的字母键盘的布局策略,在所述手掌的二维位置分布中的每个关键位置处,匹配对应的字母键盘的按键内容,显示所述手掌所对应的字母键盘。
在其中一个实施例中,所述基于所述手掌的关键位置,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手掌的关键位置处进行按键布局摆放并显示,包括:
基于所述手掌的关键位置,获取所述手掌的二维位置分布;
基于所述手掌的二维位置分布,以及预设的符号键盘的布局策略,在所述手掌的二维位置分布中的每个关键位置处,匹配对应的符号键盘的按键内容,显示所述手掌所对应的符号键盘。
在其中一个实施例中,响应于检测到的手部图像中的手势变化,对所述虚拟键盘进行切换显示,包括:
基于预设的手势识别模型,判断所述图像帧中的手部图像检测结果是否存在预设的手势变化;
在所述图像帧中的手部图像检测结果存在预设的手势变化的情况下,根据所述预设的手势变化所对应的预设的切换规则,以及所述预设的虚拟键盘的显示顺序,对所述虚拟键盘进行切换显示。
在其中一个实施例中,所述方法还包括:
基于所述虚拟键盘,以及手部图像检测结果,完成文本输入。
在其中一个实施例中,所述基于所述虚拟键盘,以及手部图像检测结果,完成文本输入,包括:
基于所述手部图像检测结果,确定所述手部图像中的拇指指尖的位置;
在所述手部图像中的拇指指尖的位置发生改变的情况下,确定所述手部图像中的拇指指尖的位置发生改变前的第一位置,以及发生改变后的第二位置;
基于所述虚拟键盘,确定所述虚拟键盘的每个按键内容的位置;
根据所述第一位置与所述每个按键内容的位置之间的距离,生成第一距离矩阵;根据所述第二位置与所述每个按键内容的位置之间的距离,生成第二距离矩阵;根据所述第一距离矩阵,以及所述第二距离矩阵,获取所述拇指指尖的位置与所述每个按键内容的位置之间的距离变化量;
在所述拇指指尖的位置与所述虚拟键盘的第一按键内容的位置之间的距离变化量,达到预设的变化量阈值的情况下,判断所述拇指指尖在所述第二位置的停留时间是否达到时间阈值;
在所述拇指指尖在所述第二位置的停留时间达到所述时间阈值的情况下,输入所述第一按键内容。
第二方面,本申请还提供了一种虚拟键盘的控制装置。所述装置包括:
获取模块,用于获取预先关联的摄像装置采集到的图像帧;
检测模块,用于在获取到的图像帧中进行手部图像检测;
布局模块,用于在所述图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将所述虚拟键盘在所述手部图像的对应位置处进行按键布局摆放并显示;
以及切换模块,用于响应于检测到的手部图像中的手势变化,对所述虚拟键盘进行切换显示。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的虚拟键盘的控制方法。
上述虚拟键盘的控制方法、装置和计算机设备,通过获取预先关联的摄像装置采集到的图像帧,并对获取到的图像帧进行手部图像检测,检测图像帧中是否存在手部图像,并在图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将虚拟键盘在手部图像的对应位置处进行按键布局摆放并显示。进而,在检测到手部图像的手势变化时,根据手部图像中的手势变化,进行虚拟键盘的切换显示。其通过对摄像装置采集到的图像帧进行手部图像检测,根据检测结果来唤醒预设的虚拟键盘,并根据预设的布局进行显示,实现虚拟键盘的灵活显示,并通过手部图像的手势变化,对虚拟键盘进行切换,实现虚拟键盘的灵活切换,解决了虚拟键盘因为唤起以及切换效率低而导致的输入效率低的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一实施例提供的虚拟键盘的控制方法的终端的硬件结构框图;
图2为本申请一实施例提供的虚拟键盘的控制方法的流程图;
图3为本申请一实施例提供的手掌的21个手部关键位置的示意图;
图4为本申请一实施例提供的数字键盘的示意图;
图5为本申请一实施例提供的字母键盘的示意图;
图6为本申请一实施例提供的符号键盘的示意图;
图7为本申请一优选实施例提供的虚拟键盘的控制方法的流程图;
图8为本申请一实施例提供的虚拟键盘的控制装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行,还可以在增强现实(Augmented Reality,简称AR)、虚拟现实(Virtual Reality,简称VR)、混合现实设备等包括显示屏和摄像头的设备中执行。比如在终端上运行,图1是本实施例的虚拟键盘的控制方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的虚拟键盘的控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种虚拟键盘的控制方法,图2是本实施例的虚拟键盘的控制方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取预先关联的摄像装置采集到的图像帧。
在本步骤中,上述预先关联的摄像装置,可以是与虚拟键盘生成设备所关联的摄像装置。具体地,上述预先关联的摄像装置,可以是设置于头戴设备上,用于采集摄像区域的图像帧的摄像装置,也可以是设置于其他电子设备上用于采集摄像区域的图像帧的摄像装置。在本步骤中,通过与虚拟键盘生成设备所关联的摄像装置来采集摄像区域的图像帧,并根据摄像区域的图像帧,来识别图像帧中的信息,进而实现虚拟键盘的唤起与切换。
步骤S220,对获取到的图像帧进行手部图像检测。
在本步骤中,对获取到的图像帧进行手部图像检测,可以通过MediaPipe的手部检测算法,对获取到的图像帧进行手部图像检测,生成手部图像检测结果。MediaPipe是一种用于构建实时机器学习应用程序的框架,其中包括手部检测算法。上述MediaPipe的手部检测算法,可以基于深度学习技术,从手部图像中推断出手部的21个三维(3Dimensions,简称3D)手部关键位置,进而根据待检测图像中的手部的关键位置,生成待检测图像帧的手部图像检测结果。在本步骤中,通过MediaPipe的手部检测算法,对获取到的图像帧进行手部图像检测,得到图像帧的手部图像检测结果,通过手部图像检测结果,实现虚拟键盘的唤起以及切换。
步骤S230,在图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将虚拟键盘在手部图像的对应位置处进行按键布局摆放并显示。
在本步骤中,上述预设的虚拟键盘,可以包括预先设定好的虚拟键盘的界面按键内容,各个按键内容的布局摆放规则,以及各个按键内容与手部关键位置的对应关系。上述虚拟键盘,还可以包括数字键盘、字母键盘和符号键盘等。其中,数字键盘,可以是将数字0至9、小数点(.)、删除键(Del)以及空格键(—)的内容进行按键布局的设置,生成虚拟键盘。字母键盘,可以将字母A至Z、删除键(Del)以及空格键(—)的内容进行按键布局的设置,生成虚拟键盘。符号键盘,可以是将常用的符号,如:,(逗号)、。(句号)、!(感叹号)、+(加号)等内容进行按键布局的设置,生成虚拟键盘。上述在图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将虚拟键盘在手部图像的对应位置处进行按键布局摆放并显示,具体地,可以在手部图像检测结果指示在图像帧中检测到手部图像的情况下,根据预设的手部检测模型对检测到的手部图像进行分类,确定手部图像是否属于手掌,在分类结果指示手部图像属于手掌时,基于MediaPipe中预存的手掌库,对手掌进行检测,得到手掌的关键位置,进而基于手掌的关键位置,唤醒预设的虚拟键盘,并将虚拟键盘在手掌的关键位置处进行按键布局摆放并显示。本步骤在图像帧中检测到手部图像的情况下,根据手部图像唤醒虚拟键盘,并将虚拟键盘在手部图像对应的位置处进行按键布局摆放并显示,得到与手部图像对应的虚拟键盘,实现了灵活的唤醒虚拟键盘。
步骤S240,响应于检测到的手部图像中的手势变化,对虚拟键盘进行切换显示。
考虑到手部关键点的数量的限制,虚拟键盘中按键布局的设置存在数量限制,可以将常用的符号设置成一个虚拟键盘,也可以在待设置的符号数量超过虚拟键盘的按键布局的数量限制时,根据符号的数量,将常用的符号设置为多个符号键盘,多个符号键盘之间可以通过手势进行切换。另外,英文字母可以分为大写字母和小写字母,相应的虚拟键盘也可以划分为大写字母键盘和小写字母键盘两套字母键盘,两套字母键盘之间可以通过手势进行切换。在本步骤中,还可以通过预设的手势识别模型,对图像帧中的手部图像检测结果进行识别,判断图像帧中的手部图像检测结果是否存在预设的手势变化,并在图像帧中的手部图像检测结果存在预设的手势变化的情况下,根据预设的手势变化所对应的预设的切换规则,以及预设的虚拟键盘的显示顺序,对虚拟键盘进行切换显示。上述预设的手势变化,可以包括握拳、翻转、握麦等。上述预设的手势识别模型,可以是MediaPipe中预存的用于识别手势的模型,具体的,可以包括手部握拳、手部翻转以及手部拿麦等手势识别模型。上述预设的手势变化所对应的预设的切换规则,可以包括握拳表示虚拟键盘种类的切换,翻转表示同种类的虚拟键盘之间的切换,握麦表示虚拟键盘的键盘输入与语音输入之间的切换。具体的,可以在图像帧中的手部图像检测结果存在握拳手势的情况下,进行数字键盘、字母键盘以及符号键盘之间的切换;可以在图像帧中的手部图像检测结果存在翻转手势的情况下,若此时显示的是字母键盘,则进行大写字母键盘与小写字母键盘之间的切换,若此时显示的是符号键盘,则进行不同的符号键盘之间的切换;可以在图像帧中的手部图像检测结果存在握麦手势的情况下,关闭虚拟键盘的键盘输入界面,切换至语音输入界面。上述预设的虚拟键盘的显示顺序,可以设置默认虚拟键盘的显示顺序为:数字键盘—字母键盘—符号键盘,当显示符号键盘的时候接收到切换命令时,再次切换至数字键盘。
在本步骤中,通过检测到的手部图像中的手势变化,对虚拟键盘进行切换,可以提高虚拟键盘的切换效率,进而提高虚拟键盘的输入效率。
优选地,上述对图像帧中的手部图像检测结果进行识别,可以是通过多张图像帧中的手部图像检测结果识别到手部状态的变化规律为“手掌—手背—手掌”,则识别到图像帧中的手部图像检测结果存在翻转手势;若通过多张图像帧中的手部图像检测结果识别到手部状态的变化规律为“手掌—手背”,且停留在手背状态达到阈值时间(可以设置为2秒至5秒之内的一个时间点),则认定为手掌状态消失,关闭虚拟键盘。上述对图像帧中的手部图像检测结果进行识别,可以是通过多张图像帧中的手部图像检测结果识别到手部状态的变化规律为“手掌—握拳—手掌”,则识别到图像帧中的手部图像检测结果存在握拳手势;若通过多张图像帧中的手部图像检测结果识别到手部状态的变化规律为“手掌—握拳”,且停留在握拳状态达到阈值时间(可以设置为2秒至5秒之内的一个时间点),则认定为手掌状态消失,关闭虚拟键盘。上述对图像帧中的手部图像检测结果进行识别,可以是通过多张图像帧中的手部图像检测结果识别到手部状态的变化规律为“手掌—拿麦”,且停留在拿麦状态达到阈值时间(可以设置为3秒至5秒之内的一个时间点),则识别到图像帧中的手部图像检测结果为拿麦手势。
上述步骤S210至步骤S240,通过获取预先关联的摄像装置采集到的图像帧,并通过手部检测算法对采集到的图像帧进行手部图像检测,在图像帧中检测到手部图像的情况下,根据手部图像唤醒虚拟键盘,并将虚拟键盘在手部图像对应的位置处进行按键布局摆放并显示,得到与手部图像对应的虚拟键盘,实现了虚拟键盘的灵活唤起,进而通过检测到的手部图像中的手势变化,对虚拟键盘进行切换,实现了虚拟键盘的灵活切换,通过对虚拟键盘的灵活唤起以及灵活切换,解决了虚拟键盘因为唤起以及切换效率低而导致的输入效率低的问题。
在一个实施例中,基于上述步骤S230,在图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将虚拟键盘在手部图像的对应位置处进行按键布局摆放并显示,包括以下步骤:
步骤S232,在手部图像检测结果指示在图像帧中检测到手部图像的情况下,根据预设的手部检测模型对检测到的手部图像进行分类,确定手部图像是否属于手掌。
其中,上述预设的手部检测模型,可以是预先训练好的用于实现手部图像分类的手部图像的检测模型。在本步骤中,对手部图像的检测模型的训练,可以通过卷积神经网络进行检测模型的训练,也可以采用其他方法进行检测模型的训练,在此不作具体限定。上述预设的手部检测模型,通过将检测到的手部图像的图像帧输入检测模型,自动实现对手部图像的检测,并输出手部图像的分类结果。上述分类结果,可以包括手掌、手背、握拳、握麦等。
步骤S234,在分类结果指示手部图像属于手掌时,基于mediapipe中预存的手掌库,对手掌进行检测,得到手掌的关键位置。
在本步骤中,根据mediapipe中预存的手掌库,对手掌进行检测,得到手掌的21个3D手部关键位置。图3为本申请一实施例提供的手掌的21个手部关键位置的示意图。如图3所示,图3中的0-20个标号所指示的位置表示21个手部关键位置,其中标号5、标号6、标号7、标号9、标号10、标号11、标号13、标号14、标号15、标号17、标号18、标号19指示的位置表示除了拇指以外的四根手指的12个关节点位置,其中标号8、标号12、标号16、标号20指示的位置表示除了拇指以外的四根手指的4个指尖的位置,其中标号5和标号6之间、标号6和标号7之间、标号7和标号8之间、标号9和标号10之间、标号10和标号11之间、标号11和标号12之间、标号13和标号14之间、标号14和标号15之间、标号15和标号16之间、标号17和标号18之间、标号18和标号19之间、标号19和标号20之间指示的位置表示除了拇指以外的四根手指的12个指肚的位置,其中标号0和标号9之间指示的位置表示掌心的位置。
步骤S236,基于手掌的关键位置,唤醒预设的虚拟键盘,并将虚拟键盘在手掌的关键位置处进行按键布局摆放并显示。
在本步骤中,根据手掌的21个关键位置,获取手掌的二维位置分布,进而根据手掌的二维位置分布,以及预设的虚拟键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,通过OpenCV图像处理添加文字方法,添加对应的虚拟键盘的按键内容,显示手掌所对应的虚拟键盘。
上述步骤S232至步骤S236,通过将检测到的手部图像输入检测模型,自动实现对手部图像的检测,并输出手部图像的分类结果,并在分类结果指示手部图像属于手掌时,基于MediaPipe中预存的手掌库,对手掌进行检测,得到手掌的关键位置,最后通过手掌的关键位置,获取手掌的二维位置分布,进而根据手掌的二维位置分布,以及预设的虚拟键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,添加对应的虚拟键盘的按键内容,生成并显示手掌所对应的虚拟键盘,实现了虚拟键盘的灵活唤起。本申请可以针对不同的手掌,根据手掌中各个关键位置,实时生成对应的虚拟键盘,生成的虚拟键盘与手掌相对应,使得通过虚拟键盘进行文本输入更灵活方便。
在一个实施例中,基于上述步骤S236,基于手掌的关键位置,唤醒预设的虚拟键盘,并将虚拟键盘在手掌的关键位置处进行按键布局摆放并显示,包括以下步骤:
步骤S2362,基于手掌的关键位置,获取手掌的二维位置分布;基于手掌的二维位置分布,以及预设的数字键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,匹配对应的数字键盘的按键内容,显示手掌所对应的数字键盘。
其中,上述基于手掌的关键位置,获取手掌的二维位置分布,可以包括基于手掌的21个关键位置,获取除拇指以外的四根手指的12个指肚的二维位置以及掌心的位置。上述预设的数字键盘的布局策略,可以是预设的对数字0-9、小数点(.)、删除键(Del)以及空格键(—)在虚拟键盘的布局。上述在手掌的二维位置分布中的每个关键位置处,匹配对应的数字键盘的按键内容,可以是根据预设的数字键盘的布局策略,通过OpenCV图像处理添加文字方法,在除拇指以外的四根手指的12个指肚的二维位置以及掌心的位置处,添加对应的数字键盘的按键内容。图4为本申请一实施例提供的数字键盘的示意图。需要说明的是,上述数字键盘的布局策略,可以根据实际需要而改变。
步骤S2364,基于手掌的关键位置,获取手掌的二维位置分布;基于手掌的二维位置分布,以及预设的字母键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,匹配对应的字母键盘的按键内容,显示手掌所对应的字母键盘。
其中,上述基于手掌的关键位置,获取手掌的二维位置分布,可以包括基于手掌的21个关键位置,获取除拇指以外的四根手指的12个指肚的二维位置、拇指以外的四根手指的12个关节点的二维位置、除拇指以外的四根手指的4个指尖的二维位置以及掌心的位置。上述预设的数字键盘的布局策略,可以是预设的对大写字母A至Z、删除键(Del)以及空格键(—)在虚拟键盘的布局,还可以是预设的对小写字母a至z以及删除键(Del)在虚拟键盘的布局。上述在手掌的二维位置分布中的每个关键位置处,匹配对应的字母键盘的按键内容,可以是根据预设的字母键盘的布局策略,通过OpenCV图像处理添加文字方法,在除拇指以外的四根手指的12个指肚的二维位置、拇指以外的四根手指的12个关节点的二维位置、除拇指以外的四根手指的4个指尖的二维位置处以及掌心的位置,添加对应的字母键盘的按键内容。通过本步骤,可以生成大写字母键盘和小写字母键盘。一般情况下,从其它类型的虚拟键盘切换至字母键盘,默认切换至大写字母键盘。图5为本申请一实施例提供的大写字母键盘的示意图。需要说明的是,上述字母键盘的布局策略,可以根据个人习惯而改变。
步骤S2366,基于手掌的关键位置,获取手掌的二维位置分布;基于手掌的二维位置分布,以及预设的符号键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,匹配对应的符号键盘的按键内容,显示手掌所对应的符号键盘。
其中,上述基于手掌的关键位置,获取手掌的二维位置分布,可以包括基于手掌的21个关键位置,获取除拇指以外的四根手指手指的12个关节点的二维位置,除大拇指以外的四根手指的4个指尖的二维位置以及掌心的位置。上述预设的符号键盘的布局策略,可以是预设的对常用的符号,如:,(逗号)、。(句号)、!(感叹号)、+(加号)等内容进行按键布局的设置。上述在手掌的二维位置分布中的每个关键位置处,匹配对应的符号键盘的按键内容,可以是根据预设的符号键盘的布局策略,通过OpenCV图像处理添加文字方法,在除大拇指以外的四根手指的12个关节点的二维位置以及除大拇指以外的四根手指的4个指尖的二维位置处,添加对应的符号键盘的按键内容,生成符号键盘。需要说明的是,因为手部关键点的数量的限制,虚拟键盘中按键布局的设置存在数量限制,可以将常用的符号设置成一个虚拟键盘,也可以在待设置的符号数量超过虚拟键盘的按键布局的数量限制时,根据符号的数量,将常用的符号设置为多个符号键盘,多个符号键盘之间可以相互切换。图6为本申请一实施例提供的符号键盘的示意图。需要说明的是,上述符号键盘的布局策略,可以根据实际需要而改变。
上述步骤S2362至步骤S2366,通过手掌的关键位置,获取手掌的二维位置分布,进而根据手掌的二维位置分布,以及预设的虚拟键盘的布局策略,在手掌的二维位置分布中的每个关键位置处,添加对应的虚拟键盘的按键内容,生成并显示手掌所对应的虚拟键盘,通过多种虚拟键盘的灵活生成与唤起,解决了因为虚拟键盘的界面唤起效率低而导致的输入效率低的问题。
在一个实施例中,还包括以下步骤:
步骤S250,基于虚拟键盘,以及手部图像检测结果,完成文本输入。
在本步骤中,通过虚拟键中每个案件内容的位置,以及手部图像检测结果中大拇指指尖的位置,完成文本的输入。
进一步地,基于上述步骤S250,基于虚拟键盘,以及手部图像检测结果,完成文本输入,包括以下步骤:
步骤S251,基于手部图像检测结果,确定手部图像中的拇指指尖的位置。
在本步骤中,根据手部图像检测结果,可以得到检测结果中手部图像中的拇指指尖的位置。
步骤S252,在手部图像中的拇指指尖的位置发生改变的情况下,确定手部图像中的拇指指尖的位置发生改变前的第一位置,以及发生改变后的第二位置。
在本步骤中,当手部图像中的拇指指尖的位置发生改变时,可以得到手部图像中的拇指指尖的位置发生改变前的第一位置,以及手部图像中的拇指指尖的位置发生改变之后的第二位置。
步骤S253,基于虚拟键盘,确定虚拟键盘的每个按键内容的位置。
在本步骤中,通过虚拟键盘的按键布局以及虚拟键盘的位置,来确定虚拟键盘中的每个按键内容的位置。
步骤S254,根据第一位置与每个按键内容的位置之间的距离,生成第一距离矩阵;根据第二位置与每个按键内容的位置之间的距离,生成第二距离矩阵;根据第一距离矩阵,以及第二距离矩阵,获取拇指指尖的位置与每个按键内容的位置之间的距离变化量。
在本步骤中,根据拇指指尖的第一位置和虚拟键盘中的每个按键的位置之间的关系,可以得到第一位置和每个按键的位置之间的第一距离矩阵,根据拇指指尖的第二位置和虚拟键盘中的每个按键的位置之间的关系,可以得到第二位置和每个按键的位置之间的第二距离矩阵,通过第一矩阵与第二矩阵,可以计算拇指指尖的位置和每个按键内容的位置的距离变化量。通过本步骤,可以根据拇指指尖的位置变化,得到拇指指尖与每个按键之间的距离的变化量。
步骤S255,在拇指指尖的位置与虚拟键盘的第一按键内容的位置之间的距离变化量,达到预设的变化量阈值的情况下,判断拇指指尖在第二位置的停留时间是否达到时间阈值。
在本部步骤中,上述预设的变化量阈值,可以设置为手掌21个关键位置中任意两个相邻的位置之间的距离的一定关系的长度,也可以设置为某两个相邻的按键之间的距离的一定关系的长度。例如,可以设置变化量阈值为手掌21个关键位置中任意两个相邻的位置之间的距离的五分之一长度,或可以设置变化量阈值为为某两个相邻的按键之间的距离的三分之一长度。对于预设的变化量阈值的设置,可以根据实际情况进行预先设置,在此不做具体限定,但是,在进行文本输入的过程中,每个虚拟键盘的变化量阈值,都是固定不变的。
步骤S256,在拇指指尖在第二位置的停留时间达到时间阈值的情况下,输入第一按键内容。
在本步骤中,上述时间阈值,可以根据个人习惯进行设置,例如可以设置为0.5秒至2秒之间的一个时间长度作为时间阈值。例如,预设的变化量阈值为1cm,时间阈值为1秒,当拇指指尖的位置发生改变,拇指指尖的位置与数字键盘的0按键内容的位置之间的距离变化量达到1cm,则判断拇指指尖在第二位置(也就是变化后的位置)的停留时间是否达到1秒,当拇指指尖在第二位置停留时间达到1秒,则在文本框中输入0。
优选地,根据手指的位置变化,虚拟键盘中各个按键的位置也会变化,可以根据虚拟键盘的按键的位置变化,以及拇指指尖的位置的变化,进行文本的输入。
上述步骤S251至步骤S256,通过手部图像的拇指指尖的位置变化以及虚拟键盘中每个按键内容的位置,来确定拇指指尖点击的虚拟键盘的哪个按键,进而实现通过拇指指尖的位置变化以及停留进行文本的输入。本步骤通过拇指的移动以及停留,实现文本的输入,提高了虚拟键盘的文本输入的效率。
下面通过优选实施例对本实施例进行描述和说明。
图7是本申请一优选实施例提供的虚拟键盘的控制方法的流程图。如图7所示,该虚拟键盘的控制方法包括以下步骤:
步骤S710,获取预先关联的摄像装置采集到的图像帧;
步骤S720,通过MediaPipe的手部检测算法,对获取到的图像帧进行手部图像检测,生成手部图像检测结果;
步骤S730,在手部图像检测结果指示在图像帧中检测到手部图像的情况下,根据预设的手部检测模型对检测到的手部图像进行分类,确定手部图像是否属于手掌;
步骤S740,在分类结果指示手部图像属于手掌时,基于MediaPipe中预存的手掌库,对手掌进行检测,得到手掌的关键位置;
步骤S750,基于手掌的关键位置,唤醒预设的虚拟键盘,并将虚拟键盘在手掌的关键位置处进行按键布局摆放并显示;
步骤S760,基于预设的手势识别模型,判断图像帧中的手部图像检测结果是否存在预设的手势变化;
步骤S770,在图像帧中的手部图像检测结果存在预设的手势变化的情况下,根据预设的手势变化所对应的预设的切换规则,以及预设的虚拟键盘的显示顺序,对虚拟键盘进行切换显示。
本实施例中,通过获取预先关联的摄像装置采集到的图像帧,并通过手部检测算法对采集到的图像帧进行手部图像检测,在图像帧中检测到手部图像的情况下,根据手部图像唤醒虚拟键盘,并将虚拟键盘在手部图像对应的位置处进行按键布局摆放并显示,得到与手部图像对应的虚拟键盘,实现了虚拟键盘的灵活唤起,进而通过检测到的手部图像中的手势变化,对虚拟键盘进行切换,实现了虚拟键盘的灵活切换,通过对虚拟键盘的灵活唤起以及灵活切换,解决了虚拟键盘因为唤起以及切换效率低而导致的输入效率低的问题。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,在本实施例中还提供了一种虚拟键盘的控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个实施例中,图8是本申请一实施例提供的虚拟键盘的控制装置的结构框图,如图8所示,该虚拟键盘的控制装置,包括:
获取模块82,用于获取预先关联的摄像装置采集到的图像帧;
检测模块84,用于在获取到的图像帧中进行手部图像检测;
布局模块86,用于在图像帧中检测到手部图像的情况下,唤醒预设的虚拟键盘,并将虚拟键盘在手部图像的对应位置处进行按键布局摆放并显示;
以及切换模块88,用于响应于检测到的手部图像中的手势变化,对虚拟键盘进行切换显示。
上述虚拟键盘的控制装置,其通过获取预先关联的摄像装置采集到的图像帧,并对采集到的图像帧进行手部图像检测,在图像帧中检测到手部图像的情况下,根据手部图像唤醒虚拟键盘,并将虚拟键盘在手部图像对应的位置处进行按键布局摆放并显示,得到与手部图像对应的虚拟键盘,实现了虚拟键盘的灵活唤起,进而通过检测到的手部图像中的手势变化,对虚拟键盘进行切换,实现了虚拟键盘的灵活切换,通过对虚拟键盘的灵活唤起以及灵活切换,解决了虚拟键盘因为唤起以及切换效率低而导致的输入效率低的问题。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中的任意一种虚拟键盘的控制方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种线上交易控制方法、装置、及计算机设备
- 一种云游戏控制方法、装置、设备和计算机存储介质
- 一种控制计算机启动的方法、装置和电子设备
- 控制方法及控制装置、计算机设备、存储介质及烹饪设备
- 虚拟键盘的控制方法、装置、虚拟键盘、电子设备和介质
- 一种计算机或设备的远程桌面下虚拟键盘控制方法