一种自定义安全区域的生成方法及设备与流程

文档序号:31468233发布日期:2022-09-09 22:17阅读:102来源:国知局
一种自定义安全区域的生成方法及设备与流程

1.本技术涉及虚拟现实(virtual reality,ar)技术领域,尤其涉及一种自定义安全区域的生成方法及设备。


背景技术:

2.用户使用vr一体机时,视觉会与真实环境相隔绝,用户无法获知其所在的真实环境的情况,可能会发生碰撞、羁绊等危险。为保证用户的个人安全,为用户创建一个安全区域变得十分必要。
3.考虑到用户所在的真实环境的复杂多样性,vr一体机一般支持基于当前环境自定义安全区域的功能,由用户通过手柄画线的方式在当前环境的地面上生成一个安全区域,以确保vr体验过程中自身的安全。
4.目前,市面上6dof的vr一体机在生成用户自定义的安全区域时,主要存在以下问题:
5.(1)在使用手柄画定安全区域的曲线时,如果画的曲线不封闭,会导致安全区域不闭合,这样,就会出现用户走出安全区域外的风险,危及个人安全。
6.(2)在使用手柄画定安全区域的曲线时,如果曲线存在交叉,可能会出现多个小的安全区域,从而限制用户的活动范围,影响用户ar体验。
7.因此,需要针对vr一体机提供一种自定安全区域的生成方法以解决上述问题。


技术实现要素:

8.本技术实施例提供了一种自定义安全区域的生成方法及设备,用于提高自定义安全区域的画线成功率,提高用户人身安全。
9.一方面,本技术实施例提供一种自定义安全区域的生成方法,应用于vr设备,包括:
10.按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,得到水平坐标相同的三维有限点集,所述手柄用于画所述vr设备的自定义安全区域的轮廓曲线;
11.将所述三维有限点集中的曲线交点投影到二维平面,得到二维有限点集;
12.从所述二维有限点集中,提取所述自定义安全区域的边缘点,并对各边缘点进行有序连接,得到所述自定义安全区域的轮廓曲线;
13.根据所述轮廓曲线,生成自定义的安全区域。
14.另一方面,本技术实施例提供一种vr设备,包括处理器、存储器和通信接口,所述通信接口、所述存储器与所述处理器通过总线连接;
15.所述vr设备通过所述通信接口与手柄连接,所述手柄用于画所述vr设备的自定义安全区域的轮廓曲线;
16.所述存储器包括数据存储单元和程序存储单元,所述程序存储单元存储有计算机程序,所述处理器根据所述计算机程序执行以下操作:
17.按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,得到水平坐标相同的三维有限点集并存储至所述数据存储单元;
18.将所述三维有限点集中的曲线交点投影到二维平面,得到二维有限点集;
19.从所述二维有限点集中,提取所述自定义安全区域的边缘点,并对各边缘点进行有序连接,得到所述自定义安全区域的轮廓曲线;
20.根据所述轮廓曲线,生成自定义的安全区域。
21.另一方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机设备执行本技术实施例提供的自定义安全区域的生成方法。
22.本技术实施例提供的一种自定义安全区域的生成方法及设备中,在使用手柄为vr设备的自定义安全区域画轮廓曲线的过程中,按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,并投影到二维平面,从而将画线过程中的三维路径曲线抽象成二维有限点集,便于从二维有限点集中提取自定义安全区域的边缘点,降低创建自定义安全区域的难度;并在提取出自定义安全区域的各边缘点后,对各边缘点进行有序连接,从而得到所画的包含非单一闭合区域的复杂曲线或者未完全闭合曲线的最大闭合轮廓曲线,提高自定义安全区域的画线成功率,进而生成最大范围且闭合的自定义安全区域,提高用户人身安全。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1为本技术实施例提供的自定义安全区域画线示意图;
25.图2a为本技术实施例提供的自定义安全区域的轮廓为未完全闭合的曲线示意图;
26.图2b为本技术实施例提供的未完全闭合的曲线生成的安全区域效果图;
27.图3a为本技术实施例提供的自定义安全区域的轮廓为交叉五角星曲线示意图;
28.图3b为本技术实施例提供的交叉五角星曲线生成的安全区域效果图;
29.图4a为本技术实施例提供的自定义安全区域的轮廓为复杂曲线示意图;
30.图4b为本技术实施例提供的复杂曲线生成的安全区域效果图;
31.图5为本技术实施例提供的自定义安全区域的生成方法流程图;
32.图6a为本技术实施例提供的一组分布规则的二维有限点集;
33.图6b为本技术实施例提供的绘制分别经过二维有限点集中两点的两个圆的示意图;
34.图6c为本技术实施例提供的绘制分别经过二维有限点集中另外两点的两个圆的示意图;
35.图7为本技术实施例提供的为一组分布不规则的二维有限点集绘制圆的效果图;
36.图8a为本技术实施例提供的半径为线段长度二倍时提取含的边缘点示意图;
37.图8b为本技术实施例提供的半径为线段长度五倍时提取含的边缘点示意图;
38.图8c为本技术实施例提供的半径为线段长度十倍时提取含的边缘点示意图;
39.图9为本技术实施例提供的边缘点提取方法流程图;
40.图10为本技术实施例提供的统计每个圆内包含的边缘点的方法流程图;
41.图11为本技术实施例提供的边缘点连接效果图;
42.图12a为本技术实施例提供的连接边缘点的方法流程图;
43.图12b为本技术实施例提供的逆时针连接边缘点的方法流程图;
44.图12c为本技术实施例提供的顺时针连接边缘点的方法流程图;
45.图13为本技术实施例提供的另一边缘点连接效果图;
46.图14a为本技术实施例提供的绘制的自定义安全区域的轮廓曲线示意图;
47.图14b为本技术实施例提供的生成的自定义安全区域示意图;
48.图15a为本技术实施例提供的绘制的另一自定义安全区域的轮廓曲线示意图;
49.图15b为本技术实施例提供的生成的另一自定义安全区域示意图;
50.图16为本技术实施例提供的vr设备的结构图。
具体实施方式
51.vr一体机是具备独立处理器的vr头盔(即头戴式显示设备),具备独立运算、输入和输出的功能。随着vr技术的发展,vr一体机已应用到教育、游戏、医疗等各个领域,极大的提高了人们在视觉和听觉上的享受。
52.vr一体机可外接有手柄,用户通过手柄控制vr头盔显示的图像画面。用户使用vr一体机时,视觉会与真实环境相隔绝,用户无法获知其所在的真实环境的情况,如沙发、桌椅等的位置,这样,在vr体验过程中,存在与真实环境的物体会发生碰撞、羁绊等危险。
53.为保证用户的个人安全,目前在6dof的vr一体机产品中,安全区功能是vr一体机的基础功能。安全区功能是指通过手柄画线的方式,在当前环境的地面上自定义一个安全区域,最终确定出的安全区的形状多呈现出不规则曲线的状态,该曲线可以作为安全区域的轮廓,由手柄射线与平面相交的点连接而成,如图1所示,画线过程中,用户可以通过预设规则操作手柄。用户可以在自定义安全区域内进行活动,防止与当前环境的物体会发生碰撞、羁绊等危险,保证自身安全。
54.目前,市面上6dof的vr一体机在生成用户自定义的安全区域时,主要存在以下问题:
55.(1)在使用手柄画定安全区域的曲线时,如果画的曲线不封闭,会导致安全区域不闭合,这样,就会出现用户走出安全区域外的风险,危及个人安全。
56.例如,如图2a所示,为使用手柄画出的自定义安全区域,自定义安全区域的轮廓为一条未完全闭合的曲线。基于该未完全闭合的曲线,生成的三维安全区域如图2b所示,从图2b可以看出,该安全区域未完全闭合,当用户处于开口以外的区域时,无法保证用户安全。
57.(2)在使用手柄画定安全区域的曲线时,如果曲线存在交叉,可能会出现多个小的安全区域,从而限制用户的活动范围,影响用户ar体验。
58.例如,如图3a所示,用户使用手柄画出的自定义安全区域的轮廓为五角星形状,五条边之前存在交叉,将整个五角星区域划分为6个独立的闭合小区域。基于该交叉的五角星曲线,生成的三维安全区域如图3b所示,从图3b可以看出,6个小的安全区域相互独立,限制
了用户的活动范围。
59.再例如,如图4a所示,用户使用手柄画出的自定义安全区域的轮廓为非单一闭合区域的复杂曲线,该复杂曲线存在交叉,包含4个独立的闭合小区域。基于该复杂曲线,生成的三维安全区域如图4b所示,从图4b可以看出,4个小的安全区域相互独立,限制了用户的活动范围。
60.鉴于此,本技术实施例提供一种自定义安全区域的生成方法及设备,基于6dof的vr一体机,在使用手柄为vr一体机画自定义安全区域的轮廓曲线时,按特定规则将轮廓曲线储存为一组三维有限点集(即手柄射线与平面交点的集合),并投影到二维平面,获得二维有限点集,采用绘圆法绘制经过二维有限点集中两点的两个圆,剔除非边缘点,从而得到自定义安全区域的边缘点,再对各边缘点进行特殊处理,以提取所画的包含非单一闭合区域的复杂曲线或者未完全闭合曲线的最大闭合轮廓曲线,从而生成最大范围且闭合的自定义安全区域。该方法在vr头盔算力允许的范围内,实现对画出的表征自定义安全区域的轮廓曲线的有限点集进行高效过滤,准确提取最大且闭合的自定义安全区域的边缘点,提高自定义安全区域画线的成功率,降低创建自定义安全区域的难度,有效保证用户的个人安全,提升用户vr体验。
61.参见图5,为本技术实施例提供的自定义安全区域的生成方法流程图,该流程由vr设备执行,主要包括以下几步:
62.s501:按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,得到水平坐标相同的三维有限点集。
63.在本技术的实施例中,vr设备与手柄连接,vr设备的佩戴者可通过手柄画线的方式为vr设备确定一个自定义安全区域,vr设备的佩戴者可以在自定义安全区域内活动。其中,手柄画出的线条可以作为vr设备的自定义安全区域的轮廓曲线。
64.本技术实施例在使用手柄为vr设备画自定义安全区域的轮廓曲线时,首先,根据vr设备的佩戴者当前所在的环境,选定一个自定义安全区域的范围,并在该范围内画线,然后,确定画线的水平面高度,一般的,通常设定画线的水平面为地面。进一步地,用手柄指向地面进行运动,手柄在当前运动位置发出的射线与地面相交,这些交点构成了手柄在三维空间中的画线路径。
65.画线过程中,手柄按照设定的距离间隔记录射线与地面的曲线交点,手柄运动停止,则停止记录曲线交点。由于地面平行于画线的水平面,因此,各曲线交点的水平坐标相同。手柄将按设定距离间隔记录的曲线交点的三维坐标,发送给vr设备,使得vr设备获得水平坐标相同的三维有限点集。
66.s502:将三维有限点集中的曲线交点投影到二维平面,得到二维有限点集。
67.由于三维有限点集中的曲线交点的水平坐标相同,因此,可以将三维有限点集中的曲线交点投影到二维平面,这样,可以将画线过程中的三维路径曲线抽象成二维有限点集,便于从二维有限点集中提取自定义安全区域的边缘点,降低创建自定义安全区域的难度。
68.s503:从二维有限点集中,提取自定义安全区域的边缘点。
69.本技术的实施例中,可采用绘圆法从二维有限点集中提取自定义安全区域的边缘点。提取边缘点的设计思想如下:
70.参见图6a,给出了包含9个点的二维有限点集,这9个点分布规则,绘圆法的目的是提取出除去e点之外剩余的a、b、c、d、f、g、h、i这8个边缘点。
71.以图6a中a、d这两个点为例,分别画固定直径且经过a、d两点的两个圆,这两个圆的半径相同,且大于a、d两点间长度的一半,如图6b所示。由图6b可知,圆心为j的圆只包含a、d这两个点,圆心为k的圆包含a、b、c、d、e、f、h、i这8个点。
72.同理,再以图6a中b、e这两个点为例,分别画固定直径且经过b、e两点的两个圆,如图6c所示,圆心为l的圆包含a、b、d、e、g这5个点,圆心为n的圆包含b、c、e、f、i这5个点。
73.对比图6b和图6c可知,可以得到非边缘的特征为:经过非边缘点e的两个圆包含二维有限点集中三个或三个以上的点。
74.需要说明的是,上述特征不仅适用于分布规则的二维有限点集,同样适用于分布不规则的二维有限点集,参见图7,为采用绘圆法从分布不规则的二维有限点集中提取的边缘点示意图。
75.在实际操作过程中,曲线上两点的间距是可以控制的,如图6b中ad的长度是可以控制的。以图6b中ad两个端点构成的线段为例,假设线段的长度为d,经实验测得,两个圆的半径r必须要大于d/2,才能有效的提取边缘点。
76.其中,半径r越大,过滤掉的非边缘点(即曲线的内部点)会越多,包含的二维有限点集中离散点的数量会越少,最终形成的自定义安全区域的轮廓的边缘点会越稀疏,因此,r的设定非常重要。
77.下面给出了同一条轮廓曲线中不同半径r对应的边缘点提取结果。
78.假设两个圆经过的线段的长度为l,当两个圆的半径r为2d时,从该绘制的轮廓曲线中提取的边缘点的结果如图8a所示;当两个圆的半径r为5d时,从该绘制的轮廓曲线中提取的边缘点的结果如图8b所示;当两个圆的半径r为10d时,从该绘制的轮廓曲线中提取的边缘点的结果如图8c所示。
79.经实验发现,当两个圆的半径r越接近d/2时,从二维有限点集中提取的离散的边缘点的数量会越多,最终提取的边缘点会越密集。
80.利用上述非边缘的特征以及设定半径的圆,可以从二维有限点集中提取自定义安全区域的边缘点,具体提取过程参见图9,主要包括以下几步:
81.s5031:根据二维有限点集包含的点数,确定多条线段。
82.例如,假设二维有限点集包含的点数为n,这n个点确定的线段条数为n(n-1)/2。
83.s5032:针对每一条线段,确定经过该线段的两个端点且半径相同的两个圆,分别包含的二维有限点集中的点数。
84.当一个圆的圆心和半径确定后,该圆也就确定了,因此,确定经过线段两个端点且半径相同的两个圆的过程,可以理解为确定圆心的过程。圆心确定后,可以根据二维有限点集中的点与圆心的距离与半径的比较结果,确定每个圆包含的点数。具体过程参见图10,主要包括以下几步:
85.s5032_1:针对所述两个圆中的任一个确定线段的中垂线,中垂线经过该圆的圆心。
86.假设线段的长度为d,设定两个圆的半径r为5d,以确定一个圆的圆心为例,参见图6b,p为线段ad的中点,如果把线段ad看做一个带方向的向量,根据向量的垂直关系运算法
则,可以获取经过点p且与向量ad垂直的向量kp,即kp为线段ad的中垂线,并对向量kp进行归一化,得到kp的单位向量。而线段ad为该圆的弦,由此可知中垂线经过该圆的圆心。
87.s5032_2:根据该圆的半径和线段的长度,利用勾股定理,确定该圆的圆心。
88.仍以图6b为例,由勾股定理可知,kp2=dp2+kd2,其中dp=d/2,kd=r=5d,则可以求解出kp的长度,结合归一化后的kp的是单位向量可以确定该圆的圆心k的位置。
89.s5032_3:根据二维有限点集中的其余点到该圆圆心的距离以及该圆的半径,确定该圆包含的二维有限点集中的点数。
90.针对二维有限点集中的其余每一个点,确定该点到该圆圆心的距离,若该距离小于该圆的半径,则确定该点在该圆内。遍历每一个其余点后,可以确定该圆包含的二维有限点集中的点数。
91.s5033:确定两个圆包含的点数是否均大于等于3,若是,执行s5034,否则,执行s5035。
92.在s5033中,根据经过非边缘点的两个圆包含二维有限点集中三个或三个以上的点的这一特征,可以确定该线段的两个端点是否为边缘点。
93.s5034:从二维有限点集中剔除该线段的两个端点。
94.如果两个圆包含的点数均大于等于3,表明该线段包含的两个端点为非边缘点,应从二维有限点集中剔除该线段的两个端点,否则,表明该线段包含的两个端点为边缘点,应当保留。
95.s5035:获取下一线段,返回s5032。
96.s5036:将剔除后二维有限点集中剩余的点,作为自定义安全区域的边缘点。
97.通过上述操作,遍历二维有限点集中的点构成的多条线段后,可以提取出自定义安全区域的边缘点。
98.在一些实施例中,为了提高边缘点的提取效率,在确定经过该线段的两个端点且半径相同的两个圆,分别包含的二维有限点集中的点数之前,可以在绘制圆之前先对两个端点构成的线段的长度进行判定。具体的,确定该线段的长度是否大于一个圆的半径的2倍,若大于,表明这两个端点的距离较远,可以直接放弃这条线段,不再进行圆心确定操作,即不为该线段包含的两个端点绘圆,这样可以大幅提升计算效率;若小于,则进行圆心确定操作。
99.s504:对各边缘点进行有序连接,得到自定义安全区域的轮廓曲线。
100.在从二维有限点集中成功提取出自定义安全区域轮廓的各边缘点后,各边缘点的排序会丢失曲线绘制时的顺序关系,即使没有丢失顺序关系,实际得到轮廓曲线也可能也不是按顺序关系绘制的。
101.例如,如图11所示,a到b到c的连接顺序是所需的最终结果,但在实际轮廓曲线的绘制中,c点可能并不是紧跟b点绘制出来的,有可能是在e点之后才绘制出来的,这样,可能无法得到所需的结果。因此,需要对各边缘点进行有序连接。
102.参见图12a,为各边缘点的有序连接过程,主要包括以下几步:
103.s5041:对各边缘点的纵坐标进行排序,选择纵坐标最小的边缘点作为参考点,参考点为轮廓曲线的起点和终点。
104.仍以图11为例,a-k为提取的各边缘点,各边缘点为三维空间的曲线交点投影到二
维平面上的点,因此,可以获得各边缘点的二维坐标。通过a-k点的纵坐标进行排序,可以得到纵坐标最小的边缘点为a点,并将a点作为参考点。
105.由于需要绘制最大且闭合的轮廓曲线,因此,将参考点作为自定义安全区域的轮廓曲线的起点和终点。
106.s5042:按照各边缘点的横坐标,将各边缘点分为左右两部分,参考点以及与参考点的横坐标相同的边缘点属于右部分。
107.在s5042中,经过参考点a划定左右分割线,并将各边缘点的横坐标分别与参考点的横坐标进行比较,并根据比较结果,将各边缘点分为分割线的左右两部分。具体的,将横坐标大于等于参考点的边缘点置于分割线的右部分,将横坐标小于参考点的边缘点置于分割线的左部分。这样分割完成后,参考点以及与参考点的横坐标相同的边缘点属于分割线的右部分。
108.例如,在图11中,边缘点a、k、j、i、h、g、f为右部分的边缘点(记为第一边缘点),边缘点b、c、d、e为左部分的边缘点(记为第二边缘点)。
109.s5043:根据设定的连接类型,有序连接左右两部分包含的边缘点。
110.其中,连接类型包括顺时针连接和逆时针连接。
111.当连接类型为逆时针连接时,则各边缘点的有序连接过程参见图12b,主要包括以下几步:
112.s5043_11:针对右部分的各第一边缘点,按照各第一边缘点的纵坐标从小到大的顺序,依次连接各第一边缘点。
113.例如,仍以图11为例,在分割线的右部分,各第一边缘点的纵坐标从小到大的顺序为:a<k<j<i<h<g<f,则将按照该顺序,将第一边缘点a连接至第一边缘点k,第一边缘点k连接至第一边缘点j,第一边缘点j连接至第一边缘点i,第一边缘点i连接至第一边缘点h,第一边缘点h连接至第一边缘点g,第一边缘点g连接至第一边缘点f。
114.s5043_12:针对左部分的各第二边缘点,按照各第二边缘点的纵坐标从大到小的顺序,依次连接各第二边缘点。
115.例如,仍以图11为例,在分割线的左部分,各第二边缘点的纵坐标从大到小的顺序为:e>d>c>b,则将按照该顺序,将第二边缘点e连接至第二边缘点d,第二边缘点d连接至第二边缘点c,第二边缘点c连接至第二边缘点b。
116.s5043_13:将右部分中纵坐标最大的第一边缘点,与左部分中纵坐标最大的第二边缘点相连接,以及,将左部分中纵坐标最小的第二边缘点,与右部分中纵坐标最小的第一边缘点相连接,得到自定义安全区域的轮廓曲线。
117.例如,仍以图11为例,将分割线右部分中纵坐标最大的第一边缘点f,与左部分中纵坐标最大的第二边缘点e相连接,以及,将右部分中纵坐标最小的第一边缘点a,与左部分中纵坐标最小的第二边缘点b相连接,得到自定义安全区域的轮廓曲线a-k-j-i-h-g-f-e-d-c-b-a,从图11可知,自定义安全区域的轮廓曲线完全闭合且没有交叉。
118.当连接类型为顺时针连接时,则各边缘点的有序连接过程参见图12c,主要包括以下几步:
119.s5043_21:针对右部分的各第一边缘点,按照各第一边缘点的纵坐标从大到小的顺序,依次连接各第一边缘。
120.例如,图13为例,在分割线的右部分,各第一边缘点的纵坐标从小到大的顺序为:g>h>i>j>k>l>a,则将按照该顺序,将第一边缘点g连接至第一边缘点h,第一边缘点h连接至第一边缘点i,第一边缘点i连接至第一边缘点j,第一边缘点j连接至第一边缘点k,第一边缘点k连接至第一边缘点l,第一边缘点l连接至第一边缘点a。
121.s5043_22:针对左部分的各第二边缘点,按照各第二边缘点的纵坐标从小到大的顺序,依次连接各第二边缘点。
122.例如,仍以图13为例,在分割线的左部分,各第二边缘点的纵坐标从小到大的顺序为:b<c<d<e<f,则将按照该顺序,将第二边缘点b连接至第二边缘点c,第二边缘点c连接至第二边缘点d,第二边缘点d连接至第二边缘点e,第二边缘点e连接至第二边缘点f。
123.s5043_23:将右部分中纵坐标最小的第一边缘点,与左部分中纵坐标最小的第二边缘点相连接,以及将左部分中纵坐标最大的第二边缘点,与右部分中纵坐标最大的第一边缘点相连接,得到自定义安全区域的轮廓曲线。
124.例如,仍以图13为例,将分割线右部分中纵坐标最小的第一边缘点a,与左部分中纵坐标最小的第二边缘点b相连接,以及,将左部分中纵坐标最大的第二边缘点f,与右部分中纵坐标最大的第一边缘点g相连接,得到自定义安全区域的轮廓曲线a-b-c-d-e-f-g-h-i-j-k-l-a,从图13可知,自定义安全区域的轮廓曲线完全闭合且没有交叉。
125.本技术实施例采用绘圆法绘制分别经过两点的两个圆,并根据经过非边缘点的两个圆包含三个或三个以上的点的特征,提取自定义安全区域的边缘点,并通过对边缘点的纵坐标进行排序,选择二维有限点集中的参考点,并基于该参考点,按照边缘点的横坐标,将边缘点分为左右两步部分,并有序连接左右两部分的边缘点,通过对边缘点的特殊处理,获得所画的包含非单一闭合区域的复杂曲线或者未完全闭合曲线的最大闭合轮廓曲线。该方法在vr头盔算力允许的范围内,实现对画出的表征自定义安全区域的轮廓曲线的有限点集进行高效过滤,准确提取最大且闭合的自定义安全区域的边缘点,提高自定义安全区域画线的成功率,降低创建自定义安全区域的难度。
126.需要说明的是,图12a至图12c仅是一种示例,可选的,参考点以及与参考点的横坐标相同的边缘点,可以属于分割线的作部分。
127.同时,也可以对各边缘点的横坐标进行排序,将边缘点分割为上下两部分,再对上下两部分的边缘点进行有序连接。
128.s505:根据轮廓曲线,生成自定义的安全区域。
129.在执行s505时,以轮廓曲线为底,预设长度为高,生成自定义的安全区域。其中,高可根据当前的实际场景进行设置。
130.参见图14a,通过连接提取的边缘点获得完全闭合的轮廓曲线,图14b为根据图14a所示的轮廓曲线生成的自定义安全区域的效果图。从图14b可知,采用本技术实施例提供的连接提取的边缘点的方法,能够准得到自定义安全区域的轮廓曲线,从而得到闭合的自定义安全区域,提高用户的人身安全。
131.参见图15a,通过连接提取的边缘点剔除内部干扰曲线,获得最大写完全闭合的轮廓曲线,图15b为根据图15a所示的轮廓曲线生成的自定义安全区域的效果图。从图15b可知,采用本技术实施例提供的连接提取的边缘点的方法,可以剔除内部曲线的干扰,得到一个封闭且最大的自定义安全区域,扩大了用户的活动范围,在保证用户人身安全的情况下
提升用户的vr体验。
132.本技术实施例提供的一种自定义安全区域的生成方法中,在使用手柄为vr设备的自定义安全区域画轮廓曲线的过程中,按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,并投影到二维平面,从而将画线过程中的三维路径曲线抽象成二维有限点集,便于从二维有限点集中提取自定义安全区域的边缘点,降低创建自定义安全区域的难度;通过绘圆法,统计经过任意两点且半径相同的圆各自包含的二维有限点集的点数,结合非边缘的特征(即:经过非边缘点的两个圆包含二维有限点集中三个或三个以上的点),提取出自定义安全区域的边缘点,并在提取出各边缘点后,对各边缘点进行有序连接,从而得到所画的包含非单一闭合区域的复杂曲线或者未完全闭合曲线的最大闭合轮廓曲线,提高自定义安全区域的画线成功率,进而生成最大范围且闭合的自定义安全区域,提高用户人身安全。
133.基于相同的技术构思,本技术实施例提供一种vr设备,该vr设备可实现上述实施例中自定义安全区域的生成方法步骤,且能达到相同的技术效果。
134.参见图16,该vr设备包括处理器1601、存储器1602和通信接口1603,所述通信接口1603、所述存储器1602与所述处理器1601通过总线1604连接;
135.所述vr设备通过所述通信接口1603与手柄连接,所述手柄用于画所述vr设备的自定义安全区域的轮廓曲线;
136.所述存储器1602包括数据存储单元和程序存储单元,所述程序存储单元存储有计算机程序,所述处理器1601根据所述计算机程序执行以下操作:
137.按照设定距离间隔,获取三维空间中手柄的射线与地面的曲线交点,得到水平坐标相同的三维有限点集并存储至所述数据存储单元;
138.将所述三维有限点集中的曲线交点投影到二维平面,得到二维有限点集;
139.从所述二维有限点集中,提取所述自定义安全区域的边缘点,并对各边缘点进行有序连接,得到所述自定义安全区域的轮廓曲线;
140.根据所述轮廓曲线,生成自定义的安全区域。
141.可选的所述处理器1601从所述二维有限点集中,提取所述自定义安全区域的边缘点,具体操作为:
142.根据所述二维有限点集包含的点数,确定多条线段;
143.针对每一条线段,确定经过所述线段的两个端点且半径相同的两个圆,分别包含的所述二维有限点集中的点数,所述半径大于所述线段长度的一半;
144.若两个圆包含的点数均大于等于3,则从所述二维有限点集中剔除所述线段的两个端点;
145.将剔除后所述二维有限点集中剩余的点,作为所述自定义安全区域的边缘点。
146.可选的,所述处理器1601确定经过所述线段两个端点且半径相同的两个圆,分别包含的所述二维有限点集中的点数,具体操作为:
147.针对所述两个圆中的任一个,确定所述线段的中垂线,所述中垂线经过所述圆的圆心;
148.根据所述半径和所述线段的长度,利用勾股定理,确定所述圆的圆心;
149.根据所述二维有限点集中的其余点分别到所述圆心的距离以及所述半径,确定所
述圆包含的所述二维有限点集中的点数。
150.可选的,所述处理器1601确定经过所述线段的两个端点且半径相同的两个圆,分别包含的所述二维有限点集中的点数之前,所述处理器1601还执行:
151.确定所述线段的长度是否大于所述半径的2倍;
152.若是,则丢弃所述线段。
153.可选的,所述处理器1601对各边缘点进行有序连接,得到所述自定义安全区域的轮廓曲线,具体操作为:
154.对所述各边缘点的纵坐标进行排序,选择纵坐标最小的边缘点作为参考点,所述参考点为所述轮廓曲线的起点和终点;
155.按照所述各边缘点的横坐标,将所述各边缘点分为左右两部分,所述参考点以及与所述参考点的横坐标相同的边缘点属于右部分;
156.根据设定的连接类型,有序连接所述左右两部分包含的边缘点。
157.可选的,所述连接类型为逆时针连接时,则所述处理器1601根据设定的连接类型,连接所述左右两部分包含的边缘点,具体操作为:
158.针对右部分的各第一边缘点,按照所述各第一边缘点的纵坐标从小到大的顺序,依次连接所述各第一边缘点;
159.针对左部分的各第二边缘点,按照所述各第二边缘点的纵坐标从大到小的顺序,依次连接所述各第二边缘点;
160.将所述右部分中纵坐标最大的第一边缘点,与所述左部分中纵坐标最大的第二边缘点相连接,以及,将所述左部分中纵坐标最小的第二边缘点,与所述右部分中纵坐标最小的第一边缘点相连接,得到所述自定义安全区域的轮廓曲线。
161.可选的,所述连接类型为顺时针连接时,则所述处理器1601根据设定的连接类型,连接所述左右部分包含的边缘点,具体操作为:
162.针对右部分的各第一边缘点,按照所述各第一边缘点的纵坐标从大到小的顺序,依次连接所述各第一边缘点;
163.针对左部分的各第二边缘点,按照所述各第二边缘点的纵坐标从小到大的顺序,依次连接所述各第二边缘点;
164.将所述右部分中纵坐标最小的第一边缘点,与所述左部分中纵坐标最小的第二边缘点相连接,以及将所述左部分中纵坐标最大的第二边缘点,与所述右部分中纵坐标最大的第一边缘点相连接,得到所述自定义安全区域的轮廓曲线。
165.需要说明的是,图16仅是一种示例,给出vr设备执行本技术实施例提供的自定义安全区域的生成方法步骤所必要的硬件,未示出的,该vr设备还包含显示设备的常用硬件,如左右眼镜片、显示屏、扬声器、麦克风等。
166.本技术实施例图16中涉及的处理器可以是中央处理器(central processing unit,cpu),通用处理器,图形处理器(graphics processing unit,gpu)数字信号处理器(digital signal processor,dsp),专用集成电路(application-specific integrated circuit,asic),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
167.本技术实施例还提供一种计算机可读存储介质,用于存储一些指令,这些指令被
执行时,可以完成前述实施例的方法。
168.本技术实施例还提供一种计算机程序产品,用于存储计算机程序,该计算机程序用于执行前述实施例的方法。
169.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
170.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
171.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
172.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
173.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1