CN117289801A - 手势交互方法、装置、电子设备及存储介质 - Google Patents
手势交互方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117289801A CN117289801A CN202311280881.2A CN202311280881A CN117289801A CN 117289801 A CN117289801 A CN 117289801A CN 202311280881 A CN202311280881 A CN 202311280881A CN 117289801 A CN117289801 A CN 117289801A
- Authority
- CN
- China
- Prior art keywords
- gesture
- endpoint
- interaction
- determining
- user
- 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
- 230000003993 interaction Effects 0.000 title claims abstract description 149
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000002452 interceptive effect Effects 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 12
- 210000003811 finger Anatomy 0.000 description 50
- 210000003813 thumb Anatomy 0.000 description 36
- 238000010586 diagram Methods 0.000 description 22
- 230000033001 locomotion Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 210000004247 hand Anatomy 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 238000012946 outsourcing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 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/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- 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/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供了一种手势交互方法、装置、电子设备及存储介质,涉及虚拟现实技术领域。该方法包括:采集用户的手部图像,根据手部图像确定虚拟手部位置信息;根据虚拟手部位置信息确定第一端点的第一位置信息;第一端点与虚拟手部的位置相关联;若检测到第一端点进入目标区域的交互热区,则基于第一端点分别与目标区域中至少两个交互元素之间的距离,从至少两个交互元素中确定目标元素;响应于用户手势,执行用户手势针对目标元素的交互指令。本申请实施例提高了定位的准确性,同时提高了用户的体验。
Description
技术领域
本申请涉及虚拟现实技术领域,具体而言,本申请涉及一种手势交互方法、装置、电子设备及存储介质。
背景技术
VR(Virtual Reality,虚拟现实)是指通过计算机技术模拟创造出的一种虚拟环境。在一些虚拟场景中,用户需要进行文本输入,考虑到实体键盘不便携带,以及语音输入的识别准确性容易受到环境的影响,通过虚拟键盘进行文本输入的方法应运而生。
目前,基于虚拟键盘的文本输入方法是通过一个控制端,从控制端发出一条射线来瞄准,以选取虚拟键盘中的按键,当射线的方向产生微小的变化时,射线的另一端也会产生较大的偏移,使得射线定位的按键的准确性容易受到控制端的稳定性的影响,控制端的微小移动,都会导致射线选取的按键产生较大偏差,进而导致按键定位的准确性较低。
发明内容
本申请实施例提供了一种手势交互方法、装置、电子设备及存储介质,可以解决现有技术中按键定位的准确性较低的问题。
所述技术方案如下:
根据本申请实施例的一个方面,提供了一种手势交互方法,该方法包括:
采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
可选地,所述根据虚拟手部位置信息确定第一端点的第一位置信息,包括:
从所述虚拟手部位置信息中确定手部根节点的第二位置信息;
基于所述手部根节点的第二位置信息,确定所述第一端点的第一位置信息;所述第一端点与所述手部根节点之间的相对位置保持不变。
可选地,所述从所述至少两个交互元素中确定目标元素,之后还包括:
基于所述目标元素的位置,确定第二端点;
显示由所述第一端点指向所述第二端点的指示器。
可选地,所述基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素,包括:
确定所述第一端点与所述目标区域中至少两个交互元素之间的距离;
基于所述第一端点与所述目标区域中至少两个交互元素之间的距离,确定当前周期内距离所述第一端点最近的当前最近元素,以及所述当前最近元素与所述第一端点之间的当前距离;
若检测到当前距离小于上一距离,且当前距离与上一距离的差值不小于预设缓冲距离,则将所述当前最近元素作为所述目标元素;
否则,将上一最近元素作为所述目标元素;
其中,所述上一距离为上一最近元素与所述第一端点之间的距离,所述上一最近元素为上一周期内距离所述第一端点最近的交互元素。
可选地,所述检测到所述第一端点进入目标区域的交互热区,包括:
若检测到所述第一端点与所述目标区域的碰撞盒发生碰撞,则确定所述第一端点进入所述目标区域的交互热区;
或
确定所述第一端点与所述目标区域之间的交互距离;
若所述交互距离小于预设距离阈值,则确定所述第一端点进入所述目标区域的交互热区。
可选地,所述目标区域包括虚拟键盘;
所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
基于所述虚拟手部位置信息,确定所述用户手势;
若基于用户手势确定出针对按键的第一触发指令,则确定所述目标元素的按键类型;
若所述按键类型为字符按键,则将所述目标元素对应的字符显示在显示区域;
若所述按键类型为指令按键,则执行所述目标元素对应的指令。
可选地,所述基于用户手势确定出针对按键的第一触发指令,包括:
检测到所述用户手势符合第一预设手势,且持续时间小于预设时长,则生成第一触发指令。
可选地,所述方法还包括:
若基于所述用户手势确定出针对控制栏的第二触发指令,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
可选地,所述基于所述用户手势确定出针对控制栏的第二触发指令,包括如下任一种:
检测到所述用户手势符合第二预设手势;
或,检测到所述用户手势符合第一预设手势,且持续时间大于预设时长,则生成第二触发指令。
可选地,所述目标区域包括文本框;
所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
基于所述虚拟手部位置信息,确定所述用户手势;
若检测到在所述用户手势保持第一预设手势的时间段内,所述指示器的第二端点在文本框中移动,确定所述第二端点对应的起始位置点和结束位置点;
基于所述第二端点对应的起始位置点和结束位置点确定选中区域,将所述选中区域包括的至少一个元素作为所述目标元素。
可选地,所述将所述选中区域包括的至少一个元素作为所述目标元素,之后还包括:
若检测到所述用户手势为释放手势,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
可选地,所述方法还包括:
若基于用户手势确定针对可变区域的调整指令,对可变区域进行调整;
其中,所述可变区域包括所述虚拟键盘或所述虚拟键盘中的任一子区域。
可选地,所述基于用户手势确定针对可变区域的调整指令,包括:
在可变区域上显示对应的位置调整控件;
基于针对所述位置调整控件的操作,生成针对所述可变区域的调整指令;
响应于所述调整指令,对所述可变区域的位置进行调整。
可选地,所述调整指令包括针对所述虚拟键盘的切分指令:
所述响应于所述调整指令,对所述可变区域的位置进行调整包括:
基于预先设置的切分边界将所述虚拟键盘切分为至少两个子区域。
可选地,所述调整指令包括针对至少两个子区域的合并指令;
所述响应于所述调整指令,对所述可变区域的位置进行调整之后,还包括:
显示所述虚拟键盘。
根据本申请实施例的另一个方面,提供了一种手势交互装置,该装置包括:
虚拟手部位置确定模块,用于采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
第一端点确定模块,用于根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
目标元素确定模块,用于若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
交互模块,用于响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一种手势交互方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种手势交互方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
通过确定用于表征用户虚拟手部的位置的第一端点,并通过计算第一端点与至少两个交互元素之间的距离确定目标元素,目标元素的定位不会受到控制端稳定性的影响,定位的准确性更高,也无需用户耗费时间和注意力来保持控制端的稳定性,提高了用户的体验。
通过响应于用户手势,执行用户手势针对目标元素的交互指令,将目标元素的选取与用户对目标元素进行的交互操作解耦,避免了误触的问题。
进一步地,增加目标区域中元素的尺寸设计的灵活性,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种手势交互方法的流程示意图;
图2为本申请实施例提供的一种输入法虚拟界面的示意图;
图3为本申请实施例提供的一种距离计算的示意图;
图4为本申请实施例提供的一种虚拟手部关键节点的示意图;
图5为本申请实施例提供的一种指示器的示意图;
图6为本申请实施例提供的一种目标元素选取过程的示意图;
图7为本申请实施例提供的一种坐标距离计算的示意图;
图8为本申请实施例提供的一种文本框交互过程的示意图;
图9为本申请实施例提供的另一种输入法虚拟界面的示意图;
图10为本申请实施例提供的又一种输入法虚拟界面的示意图;
图11为本申请实施例提供的再一种输入法虚拟界面的示意图;
图12为本申请实施例提供的一种手势交互装置的结构示意图;
图13为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
VR是指通过计算机技术模拟创造出的一种虚拟环境。它利用HMD(Head MountedDisplay,头戴式显示器)设备、传感器等设备,让用户身临其境地感受到一个虚拟世界,并通过交互设备与虚拟场景进行互动。
在一些虚拟场景中,用户需要进行文本输入,考虑到实体键盘不便携带,以及语音输入的识别准确性容易受到环境的影响,通过虚拟键盘进行文本输入的方法应运而生。
目前,一种基于虚拟键盘的文本输入方法是通过一个控制端,从控制端发出一条射线来瞄准,以选取虚拟键盘中的按键,这里的射线可以是用户手部握住的控制端呈现的形状(例如触控笔等),也可以是控制端通过对手部进行射线追踪发射的射线。
当射线的方向产生微小的变化时,射线的另一端也会产生较大的偏移,使得射线定位的按键的准确性容易受到控制端的稳定性的影响,控制端的微小移动,都会导致射线选取的按键产生较大偏差,进而导致按键定位的准确性较低。
此外,考虑到射线另一端的移动幅度较大,需要将虚拟键盘以及按键的尺寸需要设计得很大,从而占用较多的显示空间;每个按键之间的间距较大,用户在不同按键之间移动中会消耗更多的体力,增加了用户操作的不便;同时在定位选取按键时,为了避免偏移需要控制端非常稳定,使得用户需要耗费更多的时间和注意力,提高了用户操作的难度,降低了用户体验。
另一种基于虚拟键盘的文本输入方法是通过模拟实体按钮的形式和交互模式,使用食指戳击每个按键进行输入,虚拟按键只能提供视觉或听觉反馈,缺乏触觉反馈;并且由于手部对按键的视觉遮挡,导致用户无法准确的感知按键与手指间的距离关系,使得点击按钮操作的准确度低。另外,在空中抬手戳击的动作至少需要调用上臂和前臂肌肉,长时间操作很容易导致疲劳,降低了用户体验。
本申请提供的手势交互方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的一种手势交互方法的流程示意图,如图1所示,该方法包括:
步骤S110,采集用户的手部图像,根据手部图像确定虚拟手部位置信息。
具体地,用户的手部图像可以为包括用户手部的图像,可以通过摄像头采集用户的手部图像,例如可以通过摄像头捕捉用户的手部运动,将摄像头拍摄的视频数据中的一帧图像作为手部图像。其中,摄像头可以设置在HMD设备之中,也可以单独设置,本申请实施例对此不做限制。
在获取到手部图像之后,可以对手部图像进行手势识别,得到手部上多个关键节点(例如手指关键节点、掌心关键节点等)的位置信息,作为虚拟手部位置信息。其中,虚拟手部位置信息可以包括手部上多个关键节点的三维坐标。
可选地,用户可以发出预设指令,进入文本输入模式,当检测到文本输入模式触发时,可以基于用户身体和头部的空间坐标,在距离用户预设操作距离的位置显示输入法虚拟界面,例如,在距离用户胸部中心0.5米的位置。
步骤S120,根据虚拟手部位置信息确定第一端点的第一位置信息;第一端点与虚拟手部的位置相关联。
具体地,在确定出虚拟手部位置信息之后,可以根据虚拟手部位置信息,确定第一端点的第一位置信息。其中,第一端点的第一位置信息可以包括第一端点的坐标和第一端点的方向,第一端点与虚拟手部的位置相关联,即第一端点的位置可以随虚拟手部的位置变化而变化,这里第一端点可以理解为在虚拟场景中对虚拟手部的一种抽象表示。
可选地,第一端点可以用于表征虚拟手部的指向性手势所指向的位置。当用户使用指向性手势时,手势所指向的位置可以理解为用户希望选择或操作的对象。
步骤S130,若检测到第一端点进入目标区域的交互热区,则基于第一端点分别与目标区域中至少两个交互元素之间的距离,从至少两个交互元素中确定目标元素。
具体地,目标区域可以为虚拟场景中用户需要交互的区域,目标区域可以包括至少一个元素,元素可以为交互元素和非交互元素,交互元素可以为能够与用户进行交互的元素,例如按键;非交互元素可以为不与用户进行交互的元素,例如装饰性元素。
目标区域可以包括虚拟键盘,也可以包括输入法虚拟界面中的其他可交互区域。图2为本申请实施例提供的一种输入法虚拟界面的示意图,如图2所示,该虚拟界面可以包括文本框和虚拟键盘,目标区域可以包括文本框或虚拟键盘。
可选地,输入法虚拟界面还可以包括候选列表,可以根据已选择的字符进行联想、自动补全或智能推荐等方式得到推荐字符串,将推荐字符串按照推荐顺序依次排列在候选列表中。
目标区域的交互热区用于表示能够与目标区域进行交互的有效区域,交互热区可以为在三维坐标系下的一个空间范围,当用户的交互行为发生在目标区域的交互热区中,则目标区域可以对用户的交互行为进行响应;当用户的交互行为发生在目标区域的交互热区之外,则目标区域不会对用户的交互行为进行响应。
第一端点可以代表用户的虚拟手部的位置,当检测到第一端点进入目标区域的交互热区,表示用户的手势能够与目标区域进行交互,可以基于第一端点与至少两个交互元素之间的距离,从至少两个交互元素中确定出目标元素,目标元素可以为至少两个交互元素中与第一端点距离最近的交互元素。
图3为本申请实施例提供的一种距离计算的示意图,如图3所示,交互元素可以包括按键“F”和按键“G”,可以将按键“F”或按键“G”的中心与第一端点之间的距离,作为这两个元素分别与第一端点之间的距离。
可选地,可以计算第一端点与目标区域中各个交互元素之间的距离,将距离第一端点最近的交互元素作为目标元素。
可选地,可以基于第一端点的邻近区域(例如,以第一端点为圆心,以预设长度为半径的球形区域),从目标区域中选取在该邻近区域中的至少两个交互元素,然后再计算第一端点与选取出的至少两个交互元素之间的距离,将距离第一端点最近的交互元素作为目标元素。
本申请实施例中,通过确定用于表征用户虚拟手部的位置的第一端点,并通过计算第一端点与至少两个交互元素之间的距离确定目标元素,由于目标元素是距离第一端点最近的交互元素,即目标元素是用户希望与之交互的元素的可能性最大。相比于现有技术中通过射线定位选取的方法,本申请实施例中是目标元素的选取是基于与第一端点之间的距离自动确定的,而不是通过控制端的射线瞄准的,目标元素的定位不会受到控制端稳定性的影响,定位的准确性更高,也无需用户耗费时间和注意力来保持控制端的稳定性,提高了用户的体验。
而且,目标元素的定位是通过点与点之间的距离计算实现的,与现有技术中通过一条射线与一个界面的交点不同,无需考虑到射线的另一端的移动幅度较大的问题,目标区域中元素的尺寸设计更灵活,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。
步骤S140,响应于用户手势,执行用户手势针对目标元素的交互指令。
具体地,当确定出目标元素之后,可以通过突出显示目标元素,让用户知晓当前选择的元素,例如,可以通过调整颜色或透明度等方式进行突出显示。随即,可以识别出用户手势,确定用户手势对应的交互指令,并对目标元素执行交互指令。
结合图2给出的示例,当目标区域为虚拟键盘,目标元素为一个字符按键时,识别出用户做出点击指令对应的触发手势,则触发执行对该字符按键的点击指令,将该字符按键对应的字符输入至文本框中。
其中,触发手势与交互指令之间的关系可以是预设设置好的,例如,将拇指与其他手指的捏合手势作为点击指令的触发手势。此外,针对不同的目标区域,同一触发手势可以对应不同的交互指令,例如当目标区域为虚拟键盘时,拇指与其他手指的捏合手势用于触发键盘中的某个按键;当目标区域为文本框时,拇指与其他手指的捏合手势用于触发选中文本框中某个文本元素。
可选地,可以将拇指与其他手指的捏合手势作为触发手势,其中,触发手势可以为拇指与任意一个其他手指捏合,例如拇指与食指捏合,或者拇指与中指捏合;触发手势也可以为拇指与多个其他手指捏合,例如,拇指与食指和中指共同捏合。
当使用捏合手势作为触发手势时,捏合的动作可以给予用户一种触觉上的感知,使得用户在与虚拟元素进行交互时可以得到触觉反馈,即用户可以通过触觉感知到对虚拟元素进行了操作。
相较于现有技术中模拟实体按钮的交互模式,使用食指戳击每个按键进行输入的方式,选中按键和点击操作是同时完成的,本申请实施例中,目标元素的选取与用户对目标元素进行交互操作是分开的,也就是说选取到目标元素之后,不会立即执行对目标元素的交互操作,只有当用户做出触发手势之后,才会执行对目标元素的交互操作,而且由于目标元素的选取会在视觉上提示用户,如果用户发现所选取的目标元素有误,可以重新进行选取,不会出现对错误元素进行操作(即误触)的问题。由于不存在误触的问题,也就不需要对目标区域中元素的尺寸设计进行限制,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。
本申请实施例中,通过确定用于表征用户虚拟手部的位置的第一端点,并通过计算第一端点与至少两个交互元素之间的距离确定目标元素,目标元素的定位不会受到控制端稳定性的影响,定位的准确性更高,也无需用户耗费时间和注意力来保持控制端的稳定性,提高了用户的体验。
通过响应于用户手势,执行用户手势针对目标元素的交互指令,将目标元素的选取与用户对目标元素进行的交互操作解耦,避免了误触的问题。
进一步地,增加目标区域中元素的尺寸设计的灵活性,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。
作为一种可选实施例,根据虚拟手部位置信息确定第一端点的第一位置信息,包括:
从虚拟手部位置信息中确定手部根节点的第二位置信息;
基于手部根节点的第二位置信息,确定第一端点的第一位置信息;第一端点与手部根节点之间的相对位置保持不变。
具体地,虚拟手部位置信息可以包括手部上各个关键节点的位置信息,从虚拟手部位置信息中可以确定出虚拟手部根节点的第二位置信息,图4为本申请实施例提供的一种虚拟手部关键节点的示意图,如图4所示,多个虚拟手部关键节点(图4中黑色圆点)呈现以一个关键节点为根节点的树状分布,这个根节点即为手部根节点。手部根节点的第二位置信息可以包括手部根节点的坐标和手部根节点的方向。
在确定出手部根节点的第二位置信息之后,可以基于手部根节点的第二位置信息,确定第一端点的第一位置信息,其中,第一端点可以与手部根节点之间的相对位置保持不变,使得第一端点可以随手部根节点的变化而变化。
需要说明的是,图4中第一端点(图4中的白色圆点)与手部根节点之间的相对位置关系可以表示为第一端点与手部根节点之间的连线(图4中虚线),这个连线在三维坐标系中可以看作一个向量,这个向量的大小和方向就可以表示第一端点与手部根节点之间的相对位置。而且,当用户使用拇指与其他手指的捏合手指作为指向性手势时,这个向量的方向可以表示该指向性手势所指向的方向。
可选地,手部根节点可以位于手掌的区域,例如将手掌的中心作为手部根节点,用户在做出不同手势时,手指上的关键节点的位置会发生变化,但是手掌部分的位置基本不变,通过将手部根节点设置在手掌的区域,使得手部根节点的位置不会随不同的手势的变化而变化,即手部根节点的位置可以更准确地表征虚拟手部的位置,使得后续基于手部根节点确定的第一端点可以随虚拟手部的位置的变化而变化。
可选地,基于手部根节点的第二位置信息,确定第一端点的第一位置信息,包括:
将手部根节点的位姿作为第二位置信息,将第一端点的位姿作为第一位置信息,可以将手部根节点的位姿转换为对应的变换矩阵,基于手部根节点的变换矩阵,确定第一端点的变换矩阵,并将第一端点的变换矩阵转换为第一端点的位姿。
可以基于如下公式确定第一端点的变换矩阵:
M′_C=M′_P*M_C
式中,M′_C为第一端点的变换矩阵,M′_P为手部根节点的变换矩阵,M_C为第一端点的初始变换矩阵。
作为一种可选实施例,从至少两个交互元素中确定目标元素,之后还包括:
基于目标元素的位置,确定第二端点;
显示由第一端点指向第二端点的指示器。
具体地,在确定出目标元素之后,可以基于目标元素的位置,确定出第二端点,例如,将目标元素的中心作为第二端点。在确定出第一端点和第二端点之后,可以基于第一端点和第二端点分别对应的位置,确定由第一端点指向第二端点的指示器,基于带有指向性功能的网格面模型,对指示器进行显示,其中,网格面模型的形状可以包括直线、三角形、圆锥形、棱锥形、箭头等。
指示器可以理解为一种从虚拟手部指向目标元素的可视化表示形式,当第一端点和第二端点发生更新时,指示器也会随之进行更新。通过显示由第一端点指向第二端点的指示器,用户可以通过指示器的长度、倾斜角度、端点位置等视觉上的信息,感知到用户手部与虚拟元素之间的相对位置,从而帮助用户进行更准确地选取虚拟元素,既提高了虚拟元素定位的准确性,又为用户提供了更多指向性的信息,提高了用户交互操作的便利性和体验感。
图5为本申请实施例提供的一种指示器的示意图,如图5所示,图5中指示器的形状为三角形,图5中第一端点即为指示器尾部,第二端点即为指示器头部,通过带有指向性功能的形状可以使得用户更清楚的感知到选择的方向。
作为一种可选实施例,基于第一端点分别与目标区域中至少两个交互元素之间的距离,从至少两个交互元素中确定目标元素,包括:
确定第一端点与目标区域中至少两个交互元素之间的距离;
基于第一端点与目标区域中至少两个交互元素之间的距离,确定当前周期内距离第一端点最近的当前最近元素,以及当前最近元素与第一端点之间的当前距离;
若检测到当前距离小于上一距离,且当前距离与上一距离的差值不小于预设缓冲距离,则将当前最近元素作为目标元素;
否则,将上一最近元素作为目标元素;
其中,上一距离为上一最近元素与第一端点之间的距离,上一最近元素为上一周期内距离第一端点最近的交互元素。
具体地,每间隔预设周期,计算第一端点与目标区域中至少两个交互元素之间的距离,在上一周期内,可以将距离第一端点最近的交互元素作为上一最近元素,将上一最近元素与第一端点之间的距离作为上一距离。
在当前周期内,可以将距离第一端点最近的交互元素作为当前最近元素,将当前最近元素与第一端点之间的距离作为当前距离。
由于上一最近元素是上一周期距离第一端点最近的交互元素,即上一最近元素为目标元素,在确定出当前最近元素和当前距离之后,可以将当前距离与上一距离进行比较,若当前距离小于上一距离,说明当前最近元素距离第一端点更近,但是此时并不将目标元素更新为当前最近元素,而是在当前距离小于上一距离的前提下,还需要判断当前距离与上一距离之间的差值与预设缓冲距离的大小,若当前距离与上一距离之间的差值不小于预设缓冲距离,说明用户手部发生了明显的移动,也就是说此时是用户主观进行移动去切换选择的对象,避免了因用户手部非主观意愿的抖动所带来的目标元素的频繁切换,减少了因用户手部抖动而产生的误操作,提高了虚拟元素定位的准确性。
图6为本申请实施例提供的一种目标元素选取过程的示意图,如图6所示,预设的缓冲距离为0.02,在第一周期,第一端点与按键F之间的元素距离为0.10,第一端点与按键G之间的元素距离为0.12,则将按键F作为目标元素,即用户希望选中“F”;在第二周期,第一端点与按键F之间的元素距离为0.11,第一端点与按键G之间的元素距离为0.10,虽然此时第一端点距离按键G更近,但是由于这两个元素距离的差值0.01小于预设缓冲距离0.02,说明用户手部可能发生非主观意愿的抖动,此时仍将按键F作为目标元素;在第三周期,第一端点与按键F之间的元素距离为0.12,第一端点与按键G之间的元素距离为0.10,这两个元素距离的差值0.02不小于预设缓冲距离0.02,说明用户主观上移动手部选中按键G,则将目标元素更新为按键G。
作为一种可选实施例,检测到第一端点进入目标区域的交互热区,包括:
若检测到第一端点与目标区域的碰撞盒发生碰撞,则确定第一端点进入目标区域的交互热区;
或
确定第一端点与目标区域之间的交互距离;
若交互距离小于预设距离阈值,则确定第一端点进入目标区域的交互热区。
具体地,为检测第一端点是否进入目标区域的交互热区,可以通过以下方式中的任一种:
可以为目标区域设置对应的碰撞盒,碰撞盒用于判断用户的输入是否与目标区域发生碰撞,碰撞盒的形状可以为长方体、正方体等立方体。当第一端点的位置位于目标区域的碰撞盒的边缘或内部时,则确定第一端点与目标区域的碰撞盒发生了碰撞,即第一端点进入了目标区域的交互热区。
还可以通过计算第一端点与目标区域之间的交互距离,例如计算第一端点与目标区域的中心之间的交互距离,当该交互距离小于预设距离阈值时,确定第一端点进入了目标区域的交互热区。
作为一种可选实施例,目标区域包括虚拟键盘;
响应于用户手势,执行用户手势针对目标元素的交互指令,包括:
基于虚拟手部位置信息,确定用户手势;
若基于用户手势确定出针对按键的第一触发指令,则确定目标元素的按键类型;
若按键类型为字符按键,则将目标元素对应的字符显示在显示区域;
若按键类型为指令按键,则执行目标元素对应的指令。
具体地,目标区域可以为虚拟键盘,目标元素可以为虚拟键盘上的按键。
用户通过手势与虚拟键盘进行交互的过程可以包括:在得到用户的虚拟手部位置信息之后,可以对虚拟手部位置信息中多个关键节点的三维坐标进行手势识别,得到对应的用户手势,并基于用户手势确定对应的交互指令。若确定出用户手势对应的交互指令为第一触发指令时,则可以执行第一触发指令,第一触发指令可以为针对按键的点击指令。
当执行针对目标元素的点击指令,即第一触发指令时,可以确定目标元素的按键类型;若目标按键的按键类型为字符按键,则可以将目标元素对应字符显示在显示区域,其中,显示区域可以包括候选列表或文本框;若目标按键的按键类型为指令按键,例如回车键或删除键,则可以执行指令按键对应的指令。
作为一种可选实施例,基于用户手势确定出针对按键的第一触发指令,包括:
检测到用户手势符合第一预设手势,且持续时间小于预设时长,则生成第一触发指令。
具体地,当检测到用户手势符合第一预设手势,且用户保持第一预设手势的持续时间小于预设时长,则可以生成第一触发指令。
其中,第一预设手势可以为拇指与其他手指的捏合的手势,可以为拇指与任意一个其他手指捏合,例如拇指与食指捏合,或者拇指与中指捏合;也可以为拇指与多个其他手指捏合,例如,拇指与食指和中指共同捏合,本申请实施例对第一预设手势的设置不做限制。
可选地,可以基于拇指指尖与其他手指指尖之间的坐标距离,判断用户手势的类型。图7为本申请实施例提供的一种坐标距离计算的示意图,如图7所示,可以通过计算拇指指尖与食指指尖之间的距离,判断用户是否做出拇指与食指捏合的手势。
下面结合一个示例进行说明,假设拇指与食指捏合作为第一手势,将拇指与中指捏合作为第二手势,将拇指与食指和中指共同捏合作为第三手势。因此,可以计算拇指指尖的坐标和食指指尖的坐标之间的距离,当该距离小于预设阈值时,确定为第一手势;计算拇指指尖的坐标和中指指尖的坐标之间的距离,当该距离小于预设阈值时,确定为第二手势;计算拇指指尖的坐标和食指指尖的坐标之间的距离,以及拇指指尖的坐标和中指指尖的坐标之间的距离,当这两个距离都小于预设阈值时,确定为第三手势。
此外,对应同一目标元素,可以设置不同的手势对应不同的触发指令,例如,第一手势对应小写字母指令,第二手势对应大写字母指令,第三手势对应点击指令。通过为同一目标元素设置不同的手势,来执行不同的指令,用户只需要变化手势就可以实现不同的交互操作,丰富了用户的交互操作,提高了用户体验。
作为一种可选实施例,该方法还包括:
若基于用户手势确定出针对控制栏的第二触发指令,则在目标元素的相关位置显示目标元素的控制栏;
目标元素的控制栏包括至少一个用于操作目标元素的交互控件。
具体地,基于用户手势,确定对应的交互指令,当用户手势对应的交互指令为针对控制栏的第二触发指令时,则可以执行第二触发指令,第二触发指令可以为针对控制栏的显示指令。
当执行针对控制栏的显示指令,即第二触发指令时,可以确定目标元素的相关位置,相关位置可以为目标元素邻近的位置,例如目标元素对应按键的外包矩形上的顶点;并在相关位置显示目标元素的控制栏,控制栏用于对目标元素进行操作,控制栏可以包括至少一个用于操作目标元素的交互控件,交互控件可以包括切换大写字母的控件、切换小写字母的控件等,交互控件的具体功能可以根据实际应用场景进行设置,本申请实施例对此不做限制。
通过显示目标元素的控制栏,利用控制栏中的交互控件对目标元素进行操作,丰富了用户与虚拟元素之间的交互操作,提高了用户操作的便利性,进而提高了用户体验。
作为一种可选实施例,基于用户手势确定出针对控制栏的第二触发指令,包括如下任一种:
检测到用户手势符合第二预设手势;
或,检测到用户手势符合第一预设手势,且持续时间大于预设时长,则生成第二触发指令。
具体地,当检测到用户手势符合第二预设手势,或者检测到用户手势符合第一预设手势,且用户保持第一预设手势的持续时间大于预设时长时,则可以生成第二触发指令。
其中,第二预设手势可以为与第一预设手势不同的手势,例如,当第一预设手势为拇指与食指捏合时,第二预设手势可以为拇指与中指捏合,也就是说,当用户做出拇指与中指捏合的手势,或者用户持续捏住拇指与食指,都可以生成第二触发指令,从而增加了用户通过手势与虚拟元素交互的灵活性和丰富性。
作为一种可选实施例,目标区域包括文本框;
响应于用户手势,执行用户手势针对目标元素的交互指令,包括:
基于虚拟手部位置信息,确定用户手势;
若检测到在用户手势保持第一预设手势的时间段内,指示器的第二端点在文本框中移动,确定第二端点对应的起始位置点和结束位置点;
基于第二端点对应的起始位置点和结束位置点确定选中区域,将选中区域包括的至少一个元素作为目标元素。
具体地,目标区域可以包括文本框,文本框中的元素可以为文本框中的字符,例如,当文本为汉字时,元素可以为一个汉字;当文本为英文时,元素可以为一个字母。
用户通过手势与文本框进行交互的过程可以包括:在得到用户的虚拟手部位置信息之后,可以对虚拟手部位置信息中多个关键节点的三维坐标进行手势识别,得到对应的用户手势。当检测到用户手势符合第一预设手势时,表示用户选中目标元素(即一个字符);在此基础上,用户可以保持第一预设手势的姿势,同时移动手部,使得指示器的第二端点在文本框中移动,得到第二端点移动的起始位置点和结束位置点。
将起始位置点与结束位置点之间的区域作为选中区域,将目标元素更新为选中区域中的至少一个元素,使得用户可以同时选中多个字符,丰富了用户与文本框之间的交互操作。
作为一种可选实施例,将选中区域包括的至少一个元素作为目标元素,之后还包括:
若检测到用户手势为释放手势,则在目标元素的相关位置显示目标元素的控制栏;
目标元素的控制栏包括至少一个用于操作目标元素的交互控件。
具体地,当用户选中至少一个字符之后,可以将选中的字符可以通过变换字体颜色、背景颜色等方式进行突出显示。
当检测到用户手势为释放手势之后,可以进入字符编辑模式,其中,释放手势可以是针对第一预设手势而言的,例如,当第一预设手势为拇指与食指捏合的手势,即拇指指尖与食指指尖之间坐标距离小于预设阈值,则释放手势可以拇指与食指捏合之后松开的手势,即拇指指尖与食指指尖之间的坐标距离大于预设阈值。
当进入字符编辑模式,可以确定目标元素的相关位置,相关位置可以为目标元素邻近的位置,例如目标元素对应区域的外包矩形上的顶点;并在相关位置显示目标元素的控制栏,控制栏用于对目标元素进行操作,控制栏可以包括至少一个用于操作目标元素的交互控件,交互控件可以包括复制字符的控件、搜索字符的控件和删除字符的控件等,交互控件的具体功能可以根据实际应用场景进行设置,本申请实施例对此不做限制。
通过显示目标元素的控制栏,利用控制栏中的交互控件对目标元素进行操作,丰富了用户与虚拟元素之间的交互操作,提高了用户操作的便利性,进而提高了用户体验。
图8为本申请实施例提供的一种文本框交互过程的示意图,如图8所示,用户做出第一预设手势(例如捏合拇指和食指),选中字符“亲”(即目标元素)并突出显示,并保持该手势向左移动一段距离,目标元素更新为“我们是相亲”并突出显示;当用户做成释放手势时(例如松开拇指和食指),则在目标元素的附近显示控制栏,控制栏包括复制、搜索和删除三个交互控件,通过交互控件分别可以执行对目标元素的复制、搜索和删除等操作。
作为一种可选实施例,该方法还包括:
若基于用户手势确定针对可变区域的调整指令,对可变区域进行调整;
其中,可变区域包括虚拟键盘或虚拟键盘中的任一子区域。
具体地,在识别出用户手势之后,可以确定用户手势对应的交互指令,若确定出针对可变区域的调整指令,则可以根据调整指令对可变区域进行调整。其中,可变区域可以包括切分之前的整个虚拟键盘,也可以包括切分之后得到的任一子区域。当虚拟界面中包括文本框和候选列表时,可变区域还可以包括文本框或候选列表。
作为一种可选实施例,基于用户手势确定针对可变区域的调整指令,包括:
在可变区域上显示对应的位置调整控件;
基于针对位置调整控件的操作,生成针对可变区域的调整指令;
响应于调整指令,对可变区域的位置进行调整。
具体地,针对每个可变区域,可以为可变区域设置对应的位置调整控件,位置调整控件用于对可变区域的位置进行调整。
在调整指令触发后,可以显示可变区域对应的位置调整控件,用户通过对位置调整控件进行操作,生成针对可变区域的调整指令,以供基于调整指令,对可变区域的位置进行调整。
图9为本申请实施例提供的一种输入法虚拟界面的示意图,如图9所示,该虚拟界面可以包括文本框、候选列表和虚拟键盘,其中,在虚拟界面的左右两侧以及下方均设置一个位置调整控件,用户通过操作移动控件可以调整各个区域的位置,例如,用户可以通过移动或旋转下方的位置调整控件,对虚拟键盘进行移动或旋转。又例如,用户可以通过移动两侧的位置调整控件,调整文本框、候选列表与虚拟键盘之间的相对位置。
作为一种可选实施例,调整指令包括针对虚拟键盘的切分指令:
响应于调整指令,对可变区域的位置进行调整
基于预先设置的切分边界将虚拟键盘切分为至少两个子区域。
具体地,在识别得到用户手势之后,可以确定用户手势对应的交互指令,当确定出针对虚拟键盘的切分指令时,可以基于预先设置的切分边界,对虚拟键盘进行切分,得到至少两个子区域。例如,可以将虚拟键盘的在水平方向的轴线作为切分边界,从而将虚拟键盘切分为两个大小相同的子区域。
可选地,针对位于下方的移动控件,用户可以通过将两个手指位于该位置调整控件中,通过将这两个手指沿水平上相反的方向朝外侧移动,即这两个手指之间的距离越来越远,直至大于预设切分距离,则可以生成针对虚拟键盘的切分指令,并基于切分指令,根据预先设置的切分边界得到两个子区域。
图10为本申请实施例提供的一种输入法虚拟界面的示意图,如图10所示,该虚拟界面中虚拟键盘被切分为两个子区域,针对每个子区域,都可以设置一个对应的位置调整控件,通过对该位置调整控件进行移动或旋转,则可以生成对应的移动指令或旋转指令,从而对可变区域进行移动或旋转,使得各个子区域的位置可以适应不同手部的舒适操作范围,进而提高了用户的体验。
图11为本申请实施例提供的一种输入法虚拟界面的示意图,如图11所示,当虚拟手部与键盘区域在视野中重叠时,可以通过改变虚拟手部模型或键盘区域的透明度,使两者的相对位置和内容细节能够更清晰的被用户看到和感知。
作为一种可选实施例,调整指令包括针对至少两个子区域的合并指令;
响应于调整指令,对可变区域的位置进行调整之后,还包括:
显示虚拟键盘。
具体地,针对切分之后的虚拟键盘,用户还可以通过操作至少一个子区域对应的位置调整控件,生成针对各个子区域的合并指令,在基于合并指令将至少两个子区域进行合并之后,可以消除预先设置的切分边界,显示虚拟键盘,从而还原得到未切分的原始虚拟键盘。
可选地,用户可以通过移动任一子区域的位置调整控件,当检测到两个子区域之间的距离小于预设合并距离时,生成合并指令,将这两个子区域进行合并。
可选地,用户可以通过两个手指分别位于两个子区域的位置调整控件上,通过将这两个手指沿水平上相反的方向朝内侧移动,即这两个手指之间的距离越来越近,直至小于预设合并距离,生成合并指令,将这两个子区域进行合并。
图12为本申请实施例提供的一种手势交互装置的结构示意图,如图12所示,该装置包括:
虚拟手部位置确定模块210,用于采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
第一端点确定模块220,用于根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
目标元素确定模块230,用于若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
交互模块240,用于响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
作为一种可选实施例,第一端点确定模块具体用于:
从所述虚拟手部位置信息中确定手部根节点的第二位置信息;
基于所述手部根节点的第二位置信息,确定所述第一端点的第一位置信息;所述第一端点与所述手部根节点之间的相对位置保持不变。
作为一种可选实施例,该装置还包括指示器模块,用于:
基于所述目标元素的位置,确定第二端点;
显示由所述第一端点指向所述第二端点的指示器。
作为一种可选实施例,目标元素确定模块具体用于:
确定所述第一端点与所述目标区域中至少两个交互元素之间的距离;
基于所述第一端点与所述目标区域中至少两个交互元素之间的距离,确定当前周期内距离所述第一端点最近的当前最近元素,以及所述当前最近元素与所述第一端点之间的当前距离;
若检测到当前距离小于上一距离,且当前距离与上一距离的差值不小于预设缓冲距离,则将所述当前最近元素作为所述目标元素;
否则,将上一最近元素作为所述目标元素;
其中,所述上一距离为上一最近元素与所述第一端点之间的距离,所述上一最近元素为上一周期内距离所述第一端点最近的交互元素。
作为一种可选实施例,目标元素确定模块具体用于:
若检测到所述第一端点与所述目标区域的碰撞盒发生碰撞,则确定所述第一端点进入所述目标区域的交互热区;
或
确定所述第一端点与所述目标区域之间的交互距离;
若所述交互距离小于预设距离阈值,则确定所述第一端点进入所述目标区域的交互热区。
作为一种可选实施例,所述目标区域包括虚拟键盘;
交互模块包括:
手势识别模块,用于基于所述虚拟手部位置信息,确定所述用户手势;
第一触发指令模块,用于若基于用户手势确定出针对按键的第一触发指令,则确定所述目标元素的按键类型;
若所述按键类型为字符按键,则将所述目标元素对应的字符显示在显示区域;
若所述按键类型为指令按键,则执行所述目标元素对应的指令。
作为一种可选实施例,第一触发指令模块具体用于:
检测到所述用户手势符合第一预设手势,且持续时间小于预设时长,则生成第一触发指令。
作为一种可选实施例,该装置还包括第二触发指令模块,用于:
若基于所述用户手势确定出针对控制栏的第二触发指令,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
作为一种可选实施例,第二触发指令模块具体用于:
检测到所述用户手势符合第二预设手势;
或,检测到所述用户手势符合第一预设手势,且持续时间大于预设时长,则生成第二触发指令。
作为一种可选实施例,所述目标区域包括文本框;
交互模块,具体用于:
基于所述虚拟手部位置信息,确定所述用户手势;
若检测到在所述用户手势保持第一预设手势的时间段内,所述指示器的第二端点在文本框中移动,确定所述第二端点对应的起始位置点和结束位置点;
基于所述第二端点对应的起始位置点和结束位置点确定选中区域,将所述选中区域包括的至少一个元素作为所述目标元素。
作为一种可选实施例,该装置还包括字符编辑模块,用于:
若检测到所述用户手势为释放手势,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
作为一种可选实施例,该装置还包括调整模块,用于:
若基于用户手势确定针对可变区域的调整指令,对可变区域进行调整;
其中,所述可变区域包括所述虚拟键盘或所述虚拟键盘中的任一子区域。
作为一种可选实施例,调整模块包括:
位置调整控件显示模块,用于在可变区域上显示对应的位置调整控件;
调整指令生成模块,用于基于针对所述位置调整控件的操作,生成针对所述可变区域的调整指令;
调整子模块,用于响应于所述调整指令,对所述可变区域的位置进行调整。
作为一种可选实施例,所述调整指令包括针对所述虚拟键盘的切分指令:
调整子模块,具体用于:
基于预先设置的切分边界将所述虚拟键盘切分为至少两个子区域。
作为一种可选实施例,所述调整指令包括针对至少两个子区域的合并指令;
该装置还包括还原模版,用于:
显示所述虚拟键盘。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现上述手势交互方法的步骤,与相关技术相比可实现:通过确定用于表征用户虚拟手部的位置的第一端点,并通过计算第一端点与至少两个交互元素之间的距离确定目标元素,目标元素的定位不会受到控制端稳定性的影响,定位的准确性更高,也无需用户耗费时间和注意力来保持控制端的稳定性,提高了用户的体验。通过响应于用户手势,执行用户手势针对目标元素的交互指令,将目标元素的选取与用户对目标元素进行的交互操作解耦,避免了误触的问题。进一步地,增加目标区域中元素的尺寸设计的灵活性,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。
在一个可选实施例中提供了一种电子设备,如图13所示,图13所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (18)
1.一种手势交互方法,其特征在于,包括:
采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
2.根据权利要求1所述的手势交互方法,其特征在于,所述根据虚拟手部位置信息确定第一端点的第一位置信息,包括:
从所述虚拟手部位置信息中确定手部根节点的第二位置信息;
基于所述手部根节点的第二位置信息,确定所述第一端点的第一位置信息;所述第一端点与所述手部根节点之间的相对位置保持不变。
3.根据权利要求1所述的手势交互方法,其特征在于,所述从所述至少两个交互元素中确定目标元素,之后还包括:
基于所述目标元素的位置,确定第二端点;
显示由所述第一端点指向所述第二端点的指示器。
4.根据权利要求1所述的手势交互方法,其特征在于,所述基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素,包括:
确定所述第一端点与所述目标区域中至少两个交互元素之间的距离;
基于所述第一端点与所述目标区域中至少两个交互元素之间的距离,确定当前周期内距离所述第一端点最近的当前最近元素,以及所述当前最近元素与所述第一端点之间的当前距离;
若检测到当前距离小于上一距离,且当前距离与上一距离的差值不小于预设缓冲距离,则将所述当前最近元素作为所述目标元素;
否则,将上一最近元素作为所述目标元素;
其中,所述上一距离为上一最近元素与所述第一端点之间的距离,所述上一最近元素为上一周期内距离所述第一端点最近的交互元素。
5.根据权利要求1所述的手势交互方法,其特征在于,所述检测到所述第一端点进入目标区域的交互热区,包括:
若检测到所述第一端点与所述目标区域的碰撞盒发生碰撞,则确定所述第一端点进入所述目标区域的交互热区;
或
确定所述第一端点与所述目标区域之间的交互距离;
若所述交互距离小于预设距离阈值,则确定所述第一端点进入所述目标区域的交互热区。
6.根据权利要求1至5中任一项所述的手势交互方法,其特征在于,所述目标区域包括虚拟键盘;
所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
基于所述虚拟手部位置信息,确定所述用户手势;
若基于用户手势确定出针对按键的第一触发指令,则确定所述目标元素的按键类型;
若所述按键类型为字符按键,则将所述目标元素对应的字符显示在显示区域;
若所述按键类型为指令按键,则执行所述目标元素对应的指令。
7.根据权利要求6所述的手势交互方法,其特征在于,所述基于用户手势确定出针对按键的第一触发指令,包括:
检测到所述用户手势符合第一预设手势,且持续时间小于预设时长,则生成第一触发指令。
8.根据权利要求7所述的手势交互方法,其特征在于,所述方法还包括:
若基于所述用户手势确定出针对控制栏的第二触发指令,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
9.根据权利要求8所述的手势交互方法,其特征在于,所述基于所述用户手势确定出针对控制栏的第二触发指令,包括如下任一种:
检测到所述用户手势符合第二预设手势;
或,检测到所述用户手势符合第一预设手势,且持续时间大于预设时长,则生成第二触发指令。
10.根据权利要求3所述的手势交互方法,其特征在于,所述目标区域包括文本框;
所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
基于所述虚拟手部位置信息,确定所述用户手势;
若检测到在所述用户手势保持第一预设手势的时间段内,所述指示器的第二端点在文本框中移动,确定所述第二端点对应的起始位置点和结束位置点;
基于所述第二端点对应的起始位置点和结束位置点确定选中区域,将所述选中区域包括的至少一个元素作为所述目标元素。
11.根据权利要求10所述的手势交互方法,其特征在于,所述将所述选中区域包括的至少一个元素作为所述目标元素,之后还包括:
若检测到所述用户手势为释放手势,则在所述目标元素的相关位置显示所述目标元素的控制栏;
所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
12.根据权利要求6所述的手势交互方法,其特征在于,所述方法还包括:
若基于用户手势确定针对可变区域的调整指令,对可变区域进行调整;
其中,所述可变区域包括所述虚拟键盘或所述虚拟键盘中的任一子区域。
13.根据权利要求12所述的手势交互方法,其特征在于,所述基于用户手势确定针对可变区域的调整指令,包括:
在可变区域上显示对应的位置调整控件;
基于针对所述位置调整控件的操作,生成针对所述可变区域的调整指令;
响应于所述调整指令,对所述可变区域的位置进行调整。
14.根据权利要求13所述的手势交互方法,其特征在于,所述调整指令包括针对所述虚拟键盘的切分指令:
所述响应于所述调整指令,对所述可变区域的位置进行调整包括:
基于预先设置的切分边界将所述虚拟键盘切分为至少两个子区域。
15.根据权利要求14所述的手势交互方法,其特征在于,所述调整指令包括针对至少两个子区域的合并指令;
所述响应于所述调整指令,对所述可变区域的位置进行调整之后,还包括:
显示所述虚拟键盘。
16.一种手势交互装置,其特征在于,包括:
虚拟手部位置确定模块,用于采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
第一端点确定模块,用于根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
目标元素确定模块,用于若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
交互模块,用于响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
17.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至15中任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至15中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311280881.2A CN117289801A (zh) | 2023-09-28 | 2023-09-28 | 手势交互方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311280881.2A CN117289801A (zh) | 2023-09-28 | 2023-09-28 | 手势交互方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117289801A true CN117289801A (zh) | 2023-12-26 |
Family
ID=89247688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311280881.2A Pending CN117289801A (zh) | 2023-09-28 | 2023-09-28 | 手势交互方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117289801A (zh) |
-
2023
- 2023-09-28 CN CN202311280881.2A patent/CN117289801A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8959013B2 (en) | Virtual keyboard for a non-tactile three dimensional user interface | |
US9529523B2 (en) | Method using a finger above a touchpad for controlling a computerized system | |
US9542032B2 (en) | Method using a predicted finger location above a touchpad for controlling a computerized system | |
CN111475097B (zh) | 一种笔迹选择方法、装置、计算机设备和存储介质 | |
CN108700957A (zh) | 用于虚拟环境中文本输入的电子***和方法 | |
JPH02132510A (ja) | 入力装置 | |
EP4307096A1 (en) | Key function execution method, apparatus and device, and storage medium | |
US10621766B2 (en) | Character input method and device using a background image portion as a control region | |
CN107272881B (zh) | 一种信息输入方法及装置,输入法键盘和电子设备 | |
JPH07129312A (ja) | 画像処理装置 | |
US9639195B2 (en) | Method using finger force upon a touchpad for controlling a computerized system | |
JP2015135572A (ja) | 情報処理装置とその制御方法 | |
JP2003122506A (ja) | 座標入力及び操作方法指示装置 | |
CN117289801A (zh) | 手势交互方法、装置、电子设备及存储介质 | |
CN117480483A (zh) | 用于增强现实设备的文本输入方法 | |
CN113457144A (zh) | 游戏中的虚拟单位选取方法及装置、存储介质及电子设备 | |
CN113485590A (zh) | 触控操作方法及装置 | |
CN114578956A (zh) | 设备控制方法、装置、虚拟穿戴设备以及存储介质 | |
EP4115270A1 (en) | Electronic input system | |
KR100484143B1 (ko) | 터치 스크린을 사용하는 단말기에 있어서 편집 장치 및 방법 | |
KR101654710B1 (ko) | 손동작 기반 문자 입력 장치 및 이를 이용한 문자 입력 방법 | |
CN117695648B (zh) | 虚拟角色的移动和视角控制方法、装置、电子设备和介质 | |
EP4073624B1 (en) | Systems and methods for grid-aligned inking | |
US20240160294A1 (en) | Detection processing device, detection processing method, information processing system | |
CN110716678B (zh) | 一种显示画面的局部删除方法及处理***、显示设备 |
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 |