基于不连续性检测的可度量细粒度遮挡去除可视化方法

文档序号:26267987发布日期:2021-08-13 19:20阅读:83来源:国知局
基于不连续性检测的可度量细粒度遮挡去除可视化方法

本发明涉及一种基于不连续性检测的可度量细粒度遮挡去除可视化方法。



背景技术:

虚拟现实漫游方法是虚拟现实应用中一个重要的组成部分。然而,由于现实物理空间和虚拟现实空间之间存在差异的制约,用户在进行虚拟场景漫游或探索时,往往会与真实物体发生碰撞,或者需要大幅度扭曲虚拟空间。为了达到高效,高沉浸感等方面的要求,已经提出了一些漫游方式,包括运动平台,动作识别,虚拟步行等方法。然而,目前最能保持用户沉浸感的漫游方式仍然是自由探索方式,即用户的真实位移与虚拟位移一一对应的方式。

遮挡作为虚拟场景漫游应用中一个不可避免的因素,一直限制着用户漫游场景的效率。目前为止,已经出现了很多解决虚拟场景遮挡问题的方法。例如,传统渲染中应用的顶视图方法,通过直接显示场景顶视图的方式为用户提供被遮挡的场景内容。另一种去除场景遮挡的方法是透明化渲染的方法。通过类似x光一样的透视效果,将视野内表层的遮挡进行透明化处理,使用户能够直接观察到遮挡后面的物体。近年来,还出现了一种广泛使用的方法,即多视角视图渲染方法。通过采集场景内多个视点的样本,并集中显示在当前主视点视图下,使用户看到当前视点下看不到的被遮挡的部分场景,实现场景的去遮挡效果。

可见性判断和漫游指引作为虚拟现实漫游应用中的一个研究内容,过去已经存在了不少研究。其中,潜在可见集(pvs)的研究,通过计算场景内目标点、面、体与其他图元之间的可见性,直接计算场景可见集合。

然而,上述遮挡去除方法都存在着场景内遮挡要求粒度较大,并且不能自动实施,而导致可应用的场景类型有限以及需要对场景进行人工预处理等问题,这直接限制了这些方法的可用性。针对这些问题,本发明针对场景内可能存在的细粒度遮挡体,提出了一个自动检测细粒度遮挡的算法,并以此为基础建立了合适去除细粒度遮挡的两段式图形相机,实现了场景内细粒度遮挡的自动去除方法。同时,提出了一种适合该去遮挡方法的潜在遮挡度量方法,能够直观的给予用户当前已去除的遮挡百分比,为用户提供场景漫游指引。



技术实现要素:

本发明解决的技术问题是:实现了一个新颖的可度量的实时自动细粒度遮挡去除的虚拟现实漫游可视化方法,该方法能够自动检测场景内的细粒度遮挡区域,并实时建立去遮挡效果,如图1所示。首先从用户视点下对场景进行常规渲染,然后获取场景深度图像,在该图像上对场景进行全局不连续性检测,获取场景内细粒度遮挡区域,通过突出显示其包围盒指示用户其可用性。一旦用户启动去遮挡功能,该方法将自动建立可以去除细粒度遮挡的两段式图形相机,通过用户自行控制两个附加视点的移动获取该图形相机的多视点渲染视图。同时方法还包含一个遮挡去除程度的度量方法,通过将用户视点视椎体体素化,再判断各个体素的可见性以及是否被访问,可以对用户以探索程度进行提示,为用户使用去遮挡效果提供指引。本发明的主要创新点是:(1)提出了基于全局深度不连续性的场景细粒度遮挡检测方法,解决了传统方法场景限定的问题。(2)提出了一个量化与定位遮挡的方法,该方法可以告知用户还有多少遮挡需要看以及在哪里。

本发明采用的技术方案为:一种基于不连续性检测的可度量细粒度遮挡去除可视化方法,其特征在于包括以下四个步骤:

步骤(1)、细粒度遮挡区域的检测:给定场景用户视点下的传统渲染视图,首先从渲染帧缓存中获取场景的深度图,然后对其进行拉普拉斯滤波,获取图像深度变化边缘;之后再进行膨胀和腐蚀滤波方法去掉残留的噪声,最终获取细粒度遮挡区域包围盒。;

步骤(2)、多视角视图的构建:当检测到场景内的细粒度遮挡区域后,利用生成的细粒度遮挡区域包围盒,建立了一个两段式图形相机,该图形相机能够在保持检测到的细粒度区域始终处于用户视野内的前提下获取额外视角下该区域的图像,从而实现细粒度遮挡的去除,同时保持用户附近区域的几何不变,并支持目标区域的放缩显示;

步骤(3)、交互式多视角可视化:一旦前面提到了两段式图形相机建立好之后,用户就可以开始使用建立好的相机模型进行去遮挡。当用户开始慢慢偏头,相机模型中两个附加视点便开始从用户视点慢慢移开,交互地逐步部署去遮挡效果。这导致传统的单视角图像逐渐转变为多视角图像,从而改变了目标区域的视角投影,并去除遮挡。

步骤(4)、遮挡去除效果的度量:上述步骤实现了细粒度遮挡的去除。本发明还开发了一种通知用户当前视角下场景内尚未去除的遮挡的方法,该方法的量化是基于当前区域进行的。首先将当前视角下视景体内的空间进行体素化,然后在用户的整个探索过程中,判断这些体素对用户的可见性,从而实时的反馈给用户当前视角下场景内遮挡的去除程度,以便用户能够系统的,详尽的漫游场景。

本发明的原理在于:

(1)当前视图深度图像内存在的不连续元素指示着场景内存在的可能遮挡,通过分析这些不连续元素的相互结构和粒度大小等信息,可以将场景内存在的细粒度遮挡从众多遮挡中提取出来。

(2)为了可视化检测到的细粒度遮挡区域中被遮挡场景内容,先基于检测的遮挡区域包围盒建立一个对应的两段式图形相机,利用该相机对场景进行投影,可以获取该区域在主视点和附加视点下的合成视图,实现细粒度遮挡去除可视化效果。

(3)为了实现对用户漫游场景的指引,基于本发明提出了细粒度遮挡去除可视化方法,提出了一个遮挡量化和定位方法,通过体素化当前视景体内的虚拟空间,在去遮挡可视化过程中递进式更新各个体素对用户的可见性,实现遮挡去除残余量的计算。

本发明与现有技术相比的优点在于:

1、本发明提出的基于深度图像全局不连续性的细粒度遮挡检测方法,实现了虚拟场景内细粒度遮挡的检测,解决了已有方法存在的只适用于大型遮挡的问题,扩展了多视角可视化方法在泛化虚拟场景下的高效漫游应用。

2、对比已有的方法,本发明提出的细粒度遮挡检测,两段式相机构建以及多视角视图可视化是实时运行的,对于动态场景仍然适用。并且,提出的两段式图形相机,在保持场景连续性,非冗余的要求前提下,锚定了用户位置,并良好的可视化的目标遮挡区域,提高了用户的沉浸感。

3、本发明提供的虚拟场景遮挡量化和定位方法,解决了以往方法存在的预计算时间需求高,无法给予用户良好的去遮挡程度反馈的问题,直观的为用户提供了当前视点下场景遮挡去除的程度,为用户进一步的漫游探索提供了指引。

附图说明

图1为本发明去遮挡效果图。

图2为本发明总体流程图;

图3为细粒度遮挡区域检测流程图;

图4为两段式图形相机模型原理图;

图5为图形相机放大效果原理图;

图6为场景放大效果图;

图7为反投影场景图;

图8为场景遮挡量化效果图。

具体实施方式

图2给出了基于不连续性检测的可度量细粒度遮挡去除可视化的总体处理流程,下面结合其他附图及具体实施方式进一步说明本发明。

1、场景细粒度遮挡区域检测

如图2中所示,当用户激活了遮挡去除应用,第一步就是进行当前场景内细粒度遮挡的检测,以获取当前场景内细粒度遮挡存在区域,为下一步去除遮挡提供支持。

事实上,给定用户视点下视图中遮挡的位置可由虚拟环境常规渲染的深度缓冲区中存在的不连续性来指示,深度从一个像素到下一个像素的明显变化可以指示从前遮挡物表面到后遮挡物表面的跳跃。当视点出现平移时,这样的前后遮挡关系将会自然分开而揭露出原始视点下不可见的场景样本。当场景内是大尺度的遮挡物时,这样的不连续样本会形成一条长边。而对于细粒度遮挡物的情况,则必须找到深度不连续密度高的深度缓冲区,将相邻的深度不连续样本聚集在3d区域中,并建立遮挡去除的效果以连贯地处理整个区域。

图3概述了本发明检测具有细粒度遮挡的区域的过程。首先使用拉普拉斯算子对常规渲染深度缓冲区进行处理(如图3,a所示),以检测二阶深度差变化较大的像素。这对于表面方向不变性是必需的,因为平面样品深度的拉普拉斯算子正好为零,使得得到的检测结果与平面方向无关。使用一阶深度差度量将导致连续曲面的虚假深度不连续,这些连续曲面由于其方向(例如,地平面或以锐角看到的垂直壁)而具有较大的深度变化。在拉普拉斯算子之后,低强度深度像素通过阈值滤波操作被丢弃(如图3,b所示)。至此,我们已经确定了所有强深度不连续像素,包括大型遮挡物的深度不连续,必须消除这些像素,以便获得对具有细晶粒咬合的区域的准确估计。首先,使用盒式滤波器计算局部深度不连续性密度,从而消除较大的阻塞器深度不连续性像素,该盒式滤波器对每个像素附近的深度不连续性像素的数量进行计数,低密度的深度不连续像素将被丢弃(如图3,c所示)。尽管这会丢弃大多数较大尺度的深度不连续性,但一些顽固的较大尺度深度不连续性像素仍保留在较大尺度遮挡边缘相交的区域(如图3,c中的红色方框所示)。最后通过重复的腐蚀和扩张过程去除了剩余的较大尺度遮挡的深度不连续像素,这一过程消除了孤立的像素,同时保留了附近其他像素支持的像素。利用检测到的细粒度深度不连续像素建立与2d轴对齐的边界框(如图3,d所示),然后考虑检测区域内的最小和最大深度,将其投影并生成3d边界框。至此,场景内细粒度遮挡区域的检测就完成了。

2、多视角可视化模型的构建

得到了前述检测的细粒度遮挡3d区域之后,就可以构建满足一下设计考量的多视角去遮挡效果。首先,用户要能够改变对检测到的感兴趣区域的视点,这样才能合成像绕着该区域中心旋转的效果,实现去遮挡;其次,由于一般检测到的区域是离用户都会有一段距离,因此应该要支持放缩以获得更详细的视图;第三,从用户的角度看,应该按常规方式绘制附近的几何图形,以锚定用户虚拟空间位置,避免模拟器眩晕。基于以上三个方面的考量,我们提出了一种两段式的图形相机模型,该模型允许引入两个附加视点,同时提供连续非冗余的交互式渲染性能,该相机模型构造方法如下。

如图4所示,我们将虚拟环境通过两个竖直平面分隔成为三个区域(图中不同颜色表示)。将两个附加视点v1和v2放置在与用户视点v相同的垂直平面上,然后d1以下部分(绿色)用视点v渲染以锚定用户,d1到d2部分(灰色)渲染到v1,d2以上部分渲染到v2。如此一来,增加的两个附加视点实现了目标区域视图方向的更改,同时将目标区域r的中心o保持在了适当的位置。从图中可以看到,整个相机模型内没有相交冗余的区域,因此不会产生原本不相交对象发生相交现象。

除此之外,本发明提出的两段式图形相机可以通过将附加视点沿其视线方向后移来直接模拟放大操作,如图5所示。将视点向后移动会使视场变窄,从而放大了可视化效果,在保持区域中心不变的同时,保留了细粒度遮挡区域,放大效果如图6所示。

3、交互式多视角可视化

构建了实现去遮挡效果的两段式图形相机之后,用户便可以利用其进行遮挡的去除。用户通过逐渐将附加视点从用户视点移开,以交互方式逐步部署解除遮挡效果。这导致将常规的单视点图像逐渐改变为多视点图像,从而改变了感兴趣的虚拟环境区域的视点,从而将遮挡排除掉。本发明利用跟踪的虚拟现实头戴式显示器,让用户直观地控制去遮挡效果,并进行较小的头部平移,放大后的平移可以移动辅助视点。

我们通过基于虚拟环境顶点的视椎体来修改虚拟环境顶点的投影,来用图形摄像机进行渲染。由于我们的图形相机最多具有三个视椎体,并且由于子视锥面是由垂直平面定义的,因此找到包含给定顶点的子视锥体非常简单。使用从当前子视锥到主视点的根视锥的投影矩阵的级联,将顶点直接投影到多视点图像平面上。使用细分来控制穿过子视锥之间边界的三角形的常规栅格化近似误差。我们使用适当的瞳孔间基线和由此产生的视差渲染左眼和右眼的图像。可以将图形相机的投影分解为顶点位移,然后再分解为带有视椎体的常规投影。为了获得正确的立体效果,与沿着分段线性射线从用户到虚拟环境表面的距离的倒数相对应,我们用两个根摄像机渲染了位移的顶点,一个为左眼,一个为右眼,投影效果,如图7所示,图中还给出了利用反投影结合常规渲染获取的场景变化图。

4、遮挡去除效果的度量

到目前为止,本发明已经描述了一种解决细粒度遮挡的方法。像现有的遮挡处理方法一样。我们的方法也是启发式的,它不能保证虚拟环境内所有的遮挡都被去除了。因此,以之为基础,本发明提出了一种方法,能够通知用户仍有多少虚拟环境内的遮挡需要去除。该方法的遮挡量化是相对于当前区域进行处理的,通过直观的提供当前区域内的未探索部分,为用户系统、详尽的探索虚拟场景提供指导。该量化和定位遮挡的方法是一般性的,它不取决于用户选择的遮挡去除方法。

该度量方法分为两个步骤进行。首先,通过找到从当前视点不可见但从附近视点可见的虚拟环境部分来初始化遮挡,然后,随着用户以交互的方式去除了遮挡,每帧实时更新残余的遮挡。

初始化遮挡的计算是通过对当前用户主视点视椎体的体素化细分和附近视点的可见性判断实现的,首先将体素化后的视椎体内所有体素置位不可见,然后通过采样以主视点为球心的球面上的外加视点,并判断各个体素与这些视点之间的可见性来构建场景内当前视点下的可漫游区域体素作为全集,当前视点可见的体素作为目前已经探索到的体素集合,两者的比例即为当前已探索的场景百分比。计算了潜在可见全集之后,当用户以交互方式实施了去遮挡,每帧都对多视角视图内体素的可见性进行计算更新,从而实现实时更新残余遮挡的功能,达到量化遮挡的目的,整个过程如图8所示。

实验使用的硬件配置是inteli7-9700k处理器,nvidiageforcegtx2080显卡,16g内存。运行在windows1064位系统上。所有涉及到效率测试的程序是都使用o2级优化进行编译的64位程序。

本发明未详细阐述的技术内容属于本领域技术人员的公知技术。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1