本技术涉及虚拟现实,具体而言,本技术涉及一种手势交互方法、装置、电子设备及存储介质。
背景技术:
1、vr(virtual reality,虚拟现实)是指通过计算机技术模拟创造出的一种虚拟环境。在一些虚拟场景中,用户需要进行文本输入,考虑到实体键盘不便携带,以及语音输入的识别准确性容易受到环境的影响,通过虚拟键盘进行文本输入的方法应运而生。
2、目前,基于虚拟键盘的文本输入方法是通过一个控制端,从控制端发出一条射线来瞄准,以选取虚拟键盘中的按键,当射线的方向产生微小的变化时,射线的另一端也会产生较大的偏移,使得射线定位的按键的准确性容易受到控制端的稳定性的影响,控制端的微小移动,都会导致射线选取的按键产生较大偏差,进而导致按键定位的准确性较低。
技术实现思路
1、本技术实施例提供了一种手势交互方法、装置、电子设备及存储介质,可以解决现有技术中按键定位的准确性较低的问题。
2、所述技术方案如下:
3、根据本技术实施例的一个方面,提供了一种手势交互方法,该方法包括:
4、采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
5、根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
6、若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
7、响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
8、可选地,所述根据虚拟手部位置信息确定第一端点的第一位置信息,包括:
9、从所述虚拟手部位置信息中确定手部根节点的第二位置信息;
10、基于所述手部根节点的第二位置信息,确定所述第一端点的第一位置信息;所述第一端点与所述手部根节点之间的相对位置保持不变。
11、可选地,所述从所述至少两个交互元素中确定目标元素,之后还包括:
12、基于所述目标元素的位置,确定第二端点;
13、显示由所述第一端点指向所述第二端点的指示器。
14、可选地,所述基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素,包括:
15、确定所述第一端点与所述目标区域中至少两个交互元素之间的距离;
16、基于所述第一端点与所述目标区域中至少两个交互元素之间的距离,确定当前周期内距离所述第一端点最近的当前最近元素,以及所述当前最近元素与所述第一端点之间的当前距离;
17、若检测到当前距离小于上一距离,且当前距离与上一距离的差值不小于预设缓冲距离,则将所述当前最近元素作为所述目标元素;
18、否则,将上一最近元素作为所述目标元素;
19、其中,所述上一距离为上一最近元素与所述第一端点之间的距离,所述上一最近元素为上一周期内距离所述第一端点最近的交互元素。
20、可选地,所述检测到所述第一端点进入目标区域的交互热区,包括:
21、若检测到所述第一端点与所述目标区域的碰撞盒发生碰撞,则确定所述第一端点进入所述目标区域的交互热区;
22、或
23、确定所述第一端点与所述目标区域之间的交互距离;
24、若所述交互距离小于预设距离阈值,则确定所述第一端点进入所述目标区域的交互热区。
25、可选地,所述目标区域包括虚拟键盘;
26、所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
27、基于所述虚拟手部位置信息,确定所述用户手势;
28、若基于用户手势确定出针对按键的第一触发指令,则确定所述目标元素的按键类型;
29、若所述按键类型为字符按键,则将所述目标元素对应的字符显示在显示区域;
30、若所述按键类型为指令按键,则执行所述目标元素对应的指令。
31、可选地,所述基于用户手势确定出针对按键的第一触发指令,包括:
32、检测到所述用户手势符合第一预设手势,且持续时间小于预设时长,则生成第一触发指令。
33、可选地,所述方法还包括:
34、若基于所述用户手势确定出针对控制栏的第二触发指令,则在所述目标元素的相关位置显示所述目标元素的控制栏;
35、所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
36、可选地,所述基于所述用户手势确定出针对控制栏的第二触发指令,包括如下任一种:
37、检测到所述用户手势符合第二预设手势;
38、或,检测到所述用户手势符合第一预设手势,且持续时间大于预设时长,则生成第二触发指令。
39、可选地,所述目标区域包括文本框;
40、所述响应于用户手势,执行所述用户手势针对所述目标元素的交互指令,包括:
41、基于所述虚拟手部位置信息,确定所述用户手势;
42、若检测到在所述用户手势保持第一预设手势的时间段内,所述指示器的第二端点在文本框中移动,确定所述第二端点对应的起始位置点和结束位置点;
43、基于所述第二端点对应的起始位置点和结束位置点确定选中区域,将所述选中区域包括的至少一个元素作为所述目标元素。
44、可选地,所述将所述选中区域包括的至少一个元素作为所述目标元素,之后还包括:
45、若检测到所述用户手势为释放手势,则在所述目标元素的相关位置显示所述目标元素的控制栏;
46、所述目标元素的控制栏包括至少一个用于操作所述目标元素的交互控件。
47、可选地,所述方法还包括:
48、若基于用户手势确定针对可变区域的调整指令,对可变区域进行调整;
49、其中,所述可变区域包括所述虚拟键盘或所述虚拟键盘中的任一子区域。
50、可选地,所述基于用户手势确定针对可变区域的调整指令,包括:
51、在可变区域上显示对应的位置调整控件;
52、基于针对所述位置调整控件的操作,生成针对所述可变区域的调整指令;
53、响应于所述调整指令,对所述可变区域的位置进行调整。
54、可选地,所述调整指令包括针对所述虚拟键盘的切分指令:
55、所述响应于所述调整指令,对所述可变区域的位置进行调整包括:
56、基于预先设置的切分边界将所述虚拟键盘切分为至少两个子区域。
57、可选地,所述调整指令包括针对至少两个子区域的合并指令;
58、所述响应于所述调整指令,对所述可变区域的位置进行调整之后,还包括:
59、显示所述虚拟键盘。
60、根据本技术实施例的另一个方面,提供了一种手势交互装置,该装置包括:
61、虚拟手部位置确定模块,用于采集用户的手部图像,根据所述手部图像确定虚拟手部位置信息;
62、第一端点确定模块,用于根据虚拟手部位置信息确定第一端点的第一位置信息;所述第一端点与所述虚拟手部的位置相关联;
63、目标元素确定模块,用于若检测到所述第一端点进入目标区域的交互热区,则基于所述第一端点分别与所述目标区域中至少两个交互元素之间的距离,从所述至少两个交互元素中确定目标元素;
64、交互模块,用于响应于用户手势,执行所述用户手势针对所述目标元素的交互指令。
65、根据本技术实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一种手势交互方法的步骤。
66、根据本技术实施例的再一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种手势交互方法的步骤。
67、本技术实施例提供的技术方案带来的有益效果是:
68、通过确定用于表征用户虚拟手部的位置的第一端点,并通过计算第一端点与至少两个交互元素之间的距离确定目标元素,目标元素的定位不会受到控制端稳定性的影响,定位的准确性更高,也无需用户耗费时间和注意力来保持控制端的稳定性,提高了用户的体验。
69、通过响应于用户手势,执行用户手势针对目标元素的交互指令,将目标元素的选取与用户对目标元素进行的交互操作解耦,避免了误触的问题。
70、进一步地,增加目标区域中元素的尺寸设计的灵活性,可以将目标区域以及其中的元素的大小设计得更小,减少显示空间的占用,同时也可以减少用户手部的移动幅度,进一步提高了用户的体验。