CN116612234A - 基于增强或虚拟现实应用程序内立体视觉的高效动态遮挡 - Google Patents
基于增强或虚拟现实应用程序内立体视觉的高效动态遮挡 Download PDFInfo
- Publication number
- CN116612234A CN116612234A CN202310126981.3A CN202310126981A CN116612234A CN 116612234 A CN116612234 A CN 116612234A CN 202310126981 A CN202310126981 A CN 202310126981A CN 116612234 A CN116612234 A CN 116612234A
- Authority
- CN
- China
- Prior art keywords
- depth
- stereoscopic image
- depth mask
- virtual object
- mask
- 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
- 230000003190 augmentative effect Effects 0.000 title claims description 7
- 238000012549 training Methods 0.000 claims abstract description 51
- 238000009877 rendering Methods 0.000 claims abstract description 35
- 239000002131 composite material Substances 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 9
- 238000003384 imaging method Methods 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 210000001519 tissue Anatomy 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 210000000845 cartilage Anatomy 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004424 eye movement Effects 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
对二元深度掩模模型进行训练,以便用于混合现实应用程序内的遮挡。该训练利用关于虚拟对象的位置和深度的信息;作为对虚拟对象的渲染的一部分,该信息固有地可供系统使用。该训练是在一组立体图像、与这些立体图像相对应的一组二元深度掩模、以及用于评估对象深度的深度值上执行的。给定该输入,该训练输出二元深度掩模模型;当给定一立体图像作为输入时,该二元深度掩模模型输出二元深度掩模,该二元深度掩模指示立体图像中的哪些像素比深度值更靠近或更远离。当将给定的真实世界立体图像与虚拟对象合成时,可以实时应用该深度掩模模型来处理遮挡操作。
Description
相关申请
本申请要求于2022年12月22日提交的、第18/087,483号非临时申请的权益,以及于2022年2月16日提交的、第63/310,935号临时申请的权益,这两个申请通过引用并入本文。
技术领域
本公开总体上涉及计算机图形,并且更具体地涉及对用于高效遮挡增强或虚拟现实场景内的对象的模型的训练和使用。
背景技术
在三维(three-dimensional,3D)图形应用程序(例如,3D游戏、或虚拟世界等)中,遮挡(occlusion)是正确渲染场景所需的关键操作。遮挡是从虚拟“摄像头”的角度隐藏3D场景内的多个对象(这些对象在其他对象后面)的操作。在没有正确遮挡对象的情况下,可能会对3D场景的无意义图像进行渲染,例如从城堡外渲染城堡的场景:在该场景中,即使城堡的居民位于城堡墙壁内侧并因此应当是不可见的,但这些居民也会被显示在城堡墙壁的前景中。
存在许多用于遮挡的一般技术。然而,虽然这些技术适用于非实时应用程序,例如,渲染高质量图像以供随后静态使用(例如,在胶片中显示),但是对于需要动态、实时遮挡的情境,例如在像电子游戏或3D虚拟世界(其中,真实世界的图像必须与虚拟对象结合)这样的交互式应用程序中,这些技术计算量太大(并因此很慢)。对于这些应用程序,需要更有效的方法来使得能够在用户会获得良好体验的足够短的时间内,渲染具有遮挡的场景。
发明内容
对二元深度掩模模型进行训练,以便用于增强现实或虚拟现实(以下称为“混合现实”)应用程序内的遮挡。该训练利用关于虚拟对象的位置和深度的信息;作为对虚拟对象的渲染的一部分,该信息固有地可供系统使用。
在一些实施例中,基于一组立体图像、与这些立体图像相对应的一组二元深度掩模(或从中获得这些二元深度掩模的视差图)、以及用于评估对象深度的深度值,来训练二元深度掩模模型。给定该输入,该训练过程输出二元深度掩模模型,该二元深度掩模模型在给定立体图像作为输入时,输出二元深度掩模,该二元深度掩模指示立体图像中的哪些像素比深度值更靠近或更远离。当将给定立体图像与虚拟对象合成时,可以实时应用该深度掩模模型来处理遮挡操作。
在一些实施例中,针对一组不同深度中的每个深度,训练一单独的二元深度掩模模型。当渲染系统相对于一特定虚拟对象在立体图像中执行遮挡时,该渲染系统选择具有对应深度值的二元深度掩模模型,该深度值相对于场景中的当前“摄像头”视点最接近该虚拟对象的深度值。在一些实施例中,使用单个二元深度掩模模型来实现多个单独的逻辑二元深度掩模模型,其中,将期望深度作为参数而输入该模型。在下文中,当文本提到多个二元深度掩模模型时,这些模型可以在多个不同的深度掩模模型(每个深度值一个深度掩模模型)内实现,或者可以在以深度等级为参数的单个深度掩模模型内实现。
二元深度掩模模型可以比更一般的用于遮挡的方法所采用的模型更轻量级。与更一般的方法所采用的那些模型相比,该模型的轻量级允许该模型在运行时的使用速度更快,使得这些模型在交互式混合现实中的使用是可行的。
本说明书中所描述的特征和优势不是穷举的,并且特别地,对于本领域的普通技术人员来说,基于附图、说明书和权利要求,许多附加特征和优点是显而易见的。此外,应注意的是,本说明书中所使用的语言主要是出于可读性和指导性目的而选择的,且该语言可能不是为了描述或限制创造性主题而选择。
附图说明
图1为示出了根据一些实施例的硬件环境的一个示例的框图,在该硬件环境中,二元深度掩模模型被训练、且用于执行混合现实渲染中的遮挡操作。
图2为示出了根据一些实施例的、模型训练模块在训练二元深度掩模模型时执行的多个操作的数据流图。
图3A和图3B为头戴式视图器客户端设备分别被实现为眼镜设备和头戴式显示器(head-mounted display,HMD)的实施例的立体图。
附图仅出于说明的目的描绘了各个实施例。本领域技术人员将从以下论述中容易地认识到,可以在不脱离本文所描述的原理的情况下,采用本文所示出的结构和方法的替代实施例。
具体实施方式
系统概述
图1为示出了根据一些实施例的硬件环境的一个示例的框图,在该硬件环境中,二元深度掩模模型被训练、且用于执行混合现实渲染中的遮挡操作。图1示出了训练系统100和客户端设备120;在该训练系统100上训练多个二元深度掩模模型;客户端设备120具有混合现实渲染模块(也称为渲染模块)124,该混合现实渲染模块124使用这些二元深度掩模模型来渲染包括多个虚拟对象的混合现实场景。
客户端设备120可以是向用户提供沉浸式视听体验的可穿戴的头戴式视图器设备,该沉浸式视听体验增强了所渲染的场景的体验。以下关于图3A和图3B描述了这种可穿戴的头戴式视图器设备的两个示例,图3A和图3B分别示出了虚拟现实(virtual reality,VR)头戴式显示器(HMD)和增强现实(augmented reality,AR)眼镜。其他客户端设备120—例如,台式计算机、膝上型计算机、视频游戏控制台、平板电脑、或智能手机等—在它们具有获取立体图像的能力的情况下也可以使用。
客户端设备120具有混合现实应用程序(也称为应用程序)122,例如3D游戏、或虚拟世界等,该混合现实应用程序122创建从摄像头获取的真实世界场景与三维虚拟对象的图形合成。例如,应用程序122可以是游戏,该游戏显示由多个虚拟对象构成的想象世界,而且还显示由客户端设备120的摄像头采集的某些真实对象(例如,当用户的手向前伸出时、该用户的手),其中,更近的对象(例如,该手)应遮挡在背景中更远的虚拟对象。作为另一示例,该应用程序可以是家居装饰应用程序,在该家居装饰应用程序中,虚拟家具可以被放置在用户住所的多个墙壁之间;在这种环境中,位于一物理墙壁后面的虚拟家具(位于虚拟空间中)应被该物理墙壁遮挡。应用程序122可以是客户端设备120上的“本机”应用程序,或者当在基于网页(web)的应用程序中、某些代码通过网络140下载并在客户端设备120上执行、而某些代码在服务器上执行的情况下,应用程序122可以部分地存储在其他系统上并部分地在这些系统上执行。应用程序122使用渲染模块124来处理在其一些或全部场景中风格化的混合现实内容的图形渲染;渲染模块124继而在其遮挡操作中使用一个或多个二元深度掩模模型(也称为深度掩模模型)109。
训练系统100是由一个或多个计算设备(例如,多个工作站计算机、以及连接这些工作站计算机的计算机网络)组成的系统,该一个或多个计算设备基于一组图像、对应的一组深度图和相关联的深度值,来单独地或共同地训练一个或多个二元深度掩模模型109。在一些实施例中,存在许多工作站系统,每个工作站系统具有一个或多个图形处理单元(graphics processing unit,GPU),该一个或多个GPU用于训练对应模型。尽管训练系统100被示出为与客户端设备120分开,但在一些实施例中,该训练是在客户端设备120本身上执行的。
网络140可以是用于数据传输的任何合适的通信网络。在例如图1所示的实施例中,网络140使用标准通信技术和/或协议,并且网络140可以包括因特网。在另一实施例中,实体使用定制和/或专用数据通信技术。尽管在图1中网络被示出为连接客户端设备120和训练系统100,但在一些实施例中,客户端设备120和训练系统100不一定需要连接到网络。
现将在以下更详细地描述训练系统100和客户端设备120的渲染模块124。
训练系统100包括或访问多个立体图像的训练集101。“多个立体图像”是以类似于人类从两只不同的略微偏移的眼睛获取同一场景的多幅图像的方式、从一略微不同的有利位置采集的同一场景的多个图像对。在图1的实施例中,训练集包括“合成”立体图像(也称为“合成”图像)和“非合成”立体图像(也称为“非合成”图像)这两种,然而在一些实施例中仅存在一种或另一种。“非合成”图像101A是由摄像头采集的真实世界物理场景的图像;相比之下,“合成”图像101B是通过渲染3D模型而生成的高质量虚拟图像。
训练系统100还包括针对训练集101的多幅图像中的每幅图像的二元深度掩模(也称为深度掩模)102。二元深度掩模102指示—针对该二元深度掩模102所对应的图像101,且针对计算该二元深度掩模102时的对应深度值103—该图像中的哪些像素比该对应的深度值更近,哪些像素比该对应的深度值更远。深度值103表示距摄像头视点的距离,该图像由摄像头从该摄像头视点采集或由渲染器从该摄像头视点渲染。用于真实世界非合成图像的二元深度掩模102可以是在通过诸如光探测和测距(light detection and ranging,LiDAR)等物理技术采集真实世界非合成图像时而生成的。
训练系统100还包括合成图像生成模块104,该合成图像生成模块104生成供训练集101使用的合成图像101B、以及对应的二元深度掩模102。合成图像生成模块104从给定的一组3D模型渲染高质量合成图像101B。在一些实施例中,该渲染使用了路径追踪算法。另外,由于合成图像生成模块104本身从3D模型渲染合成图像101B,因此作为渲染过程的结果,模块104固有地具有所渲染图像的每个像素的深度值,从而作为渲染的一部分,模块104可以直接构造用于对应合成图像101B的二元深度掩模102。
训练系统100还包括立体图像移位模块106,该立体图像移位模块对针对多个立体图像对中的每个立体图像对中的一个图像(例如,“右眼”图像)而提取的多个图像特征进行修改。这在特征向量提取(随后在以下所论述的)期间用于对该多个图像特征进行归一化,以说明给定立体图像对中的两个图像之间的视点视差。在一些实施例中,所提取的多个图像特征沿着核线(epipolar line)移位了源自于目标深度值的距离,使得当该所提取的多个图像特征与来自该立体图像对中的另一图像的特征相结合并作为输入提供给分割网络(例如,提供给以下所论述的分割网络210B)时,该分割网络将基于所匹配的特征向量的方向来推断一给定像素的位置是在该深度值前还是在该深度值后。
训练系统100还包括深度掩模生成模块108,该深度掩模生成模块108从包含多个连续视差值的多个视差图生成多个二元深度掩模,这些连续视差值(实际上)指示每个像素距该像素的摄像头原点的距离。这些视差图是通过根据以下关系对地面实况深度图进行转换而生成的:d=f*(b/z),其中,d表示视差,f表示摄像头的焦距,b表示立体基线,且z表示深度值。具有多个视差图允许在训练期间基于随机选择的视差平面即时生成多个二元深度掩模。
训练系统100还包括模型训练模块110,该模型训练模块110从训练集101和对应的多个二元深度掩模(例如,使用合成图像生成模块104、立体图像移位模块106和深度掩模生成模块108)来训练深度掩模模型109。现关于图2更详细地描述训练系统100的操作。
图2为示出了根据一些实施例的模型训练模块110在训练二元深度掩模模型时执行的多个操作的数据流图。如先前所提及的,模型训练的输入为来自训练集101的多个立体图像、这些立体图像对应的多个二元深度掩模102、以及计算这些二元深度掩模所依据的多个深度值103。多个特征提取器(也称为特征网络)210A从多幅图像201提取多个图像特征,并且分割网络210B将所提取的多个图像特征作为输入,并输出针对给定深度值的二元深度掩模。在一些实施例中,二元深度掩模模型109被实现为卷积神经网络(convolutionalneural network,CNN);在这些实施例中,该多个特征提取器210A利用神经网络的多个层中的第一子集来实现,且分割网络210B利用该多个层的剩余部分来实现。
对于来自训练集101中多个立体图像的多个立体图像对201A和201B中的一些或全部立体图像对,这些图像对201以及与这些图像对相对应的多个视差图204和计算这些视差图所使用的深度值一起被输入到模型训练模块110。多个特征提取器210从多幅图像201提取多个图像特征,并且深度掩模生成模块108将视差图204转换为对应的二元深度掩模202。给定深度值的所有图像对201用作分割网络210B的输入,该分割网络210B输出临时二元深度掩模215,该临时二元深度掩模215表示用于深度掩模模型109(如以上所提及的,该深度掩模模型109可以由多个特征提取器210A和分割网络210B实现)的当前训练状态的预测二元深度掩模。将该临时二元深度掩模215与“地面实况”二元深度掩模202进行比较,并基于该比较、根据给定损失函数来计算损失220(例如,二元交叉熵损失)。基于该损失220的值来修改深度掩模模型109,并重复该过程(例如,进行给定的迭代次数,或者直到实现足够小的损失)。然后,深度掩模模型109的最终状态用作针对该深度值(深度掩模模型109根据该深度值来训练)的深度掩模模型。
在一些实施例中,针对一组不同深度值中的每一个深度值,训练一个二元深度掩模模型109。针对每个不同深度值的训练可以使用相同的多幅图像201,但视差图204/二元深度掩模202将根据深度值而不同。具有针对不同深度值的多个二元深度掩模模型109允许渲染模块124能够对位于距摄像头原点不同距离处的不同虚拟对象执行遮挡。相关地,对于同一虚拟对象,如果该虚拟对象具有显著的深度,则具有针对不同深度值的不同二元深度掩模模型109(或涵盖了不同深度值的单个二元深度掩模模型109)可能是有价值的。在这种情况下,可以获得针对与该虚拟对象相对应的不同深度值的多个二元深度掩模,并且可以将这些二元深度掩模用于遮挡该虚拟对象的具有较大深度值(即,远离)的部分。
再次返回到图1,经训练的二元深度掩模模型109被分发给具有混合现实渲染模块124的客户端设备。取决于客户端设备120的实施例和能力,可以在生产该设备并使该设备可供销售时,将多个模型“手动”预安装在该客户端设备120上;和/或可以通过计算机网络(例如,网络140)将该多个模型传送到该设备上。对于联网的多个客户端设备120,多个二元深度掩模模型109的新版本可以随着该多个模型在训练系统100上被更新而被分发给该多个客户端设备。
渲染模块124在渲染混合现实场景时,使用多个二元深度掩模模型109来执行遮挡。作为一个特定的具体示例,客户端设备120可以是头戴式视图器(例如,OCULUS QUEST头戴式视图器),并且混合现实应用程序122可以是游戏,在该游戏中,客户端设备120的用户可以探索虚拟世界,同时看到位于该用户的视野内的、被适当地结合到头戴式视图器显示器上所显示的虚拟场景中的某些真实世界对象(例如,用户的双手)。进一步假设该应用程序122正在渲染一室外场景,其中一友好的非玩家角色站在虚拟环境中5英尺远的地方,假设用户向他视野范围内的该角色伸出手打招呼,并且假设该头戴式视图器的摄像头拍摄了该用户房间的立体图像,该立体图像包括用户伸出的手和墙壁、家具或其他背景对象。渲染模块124可以通过将来自摄像头的立体图像输入到与5英尺(应用程序122“知晓”该非玩家角色所站立的位置距该用户的视点的距离)的深度值相对应的深度掩模模型109而获取该立体图像的深度掩模,来适当地渲染该场景。在该示例中,该深度掩模可能指示,该立体图像中与用户伸出的手相对应的像素表示接近5英尺的位置,但该立体图像的其余像素表示超过5英尺的位置。因此,代替显示虚拟场景的渲染图像的未遮挡部分,渲染模块124将在向用户显示的最终合成图像内显示与用户的手相对应的像素,但是将遮挡来自摄像头图像的其余像素(例如,虚拟场景,但该用户伸出的手遮挡该非玩家角色的一部分)。
由二元深度掩模模型109生成的二元深度掩模的另一用途是执行混合现实入侵检测—即,确定呈现潜在危险的真实世界的对象是否在用户的某个阈值真实世界距离内。例如,在客户端设备是诸如图3B中的沉浸式头戴式视图器时,入侵检测是有用的,否则该沉浸式头戴式视图器可能会阻止用户看到危险,例如墙壁、宠物、和尖锐物体等。为了执行混合现实入侵检测,应用程序122(或客户端设备120上的其他软件)将针对表示用户周围的安全区域的“安全”深度值(例如,5英尺)的深度掩模模型109应用于由客户端设备120的摄像头产生的立体图像,以确定该图像中的与比“安全”深度值更靠近的对象相对应的区域。如果识别到比安全深度值更靠近的区域,则应用程序122(或其他软件)向用户提供警告,例如警报噪声、或闪烁图像等。在一些实施例中,在提供警告之前,应用程序122(或其他软件)对任何识别出的部分执行语义图像分析,以识别对应的对象并确定该对象是否众所周知地造成不可忽略的危险。
总之,本文所公开的技术非常适合于在混合现实应用程序内执行遮挡。它们产生的结果比诸如半全局匹配(例如,SGM)等技术更准确、且比诸如金字塔立体匹配网络(Pyramid Stereo Matching Network,PSMNet)等更常规的技术在运行时更高效地应用于客户端设备。准确性和速度之间的这种权衡会产生具有相对低延迟的、令人愉悦的视觉效果,这在许多混合现实场景中运行良好。
示例头戴式视图器
图3A为根据一个或多个实施例的被实现为眼镜设备的头戴式视图器300的立体图。在一些实施例中,该眼镜设备为近眼显示器(near eye display,NED)。通常,头戴式视图器300可以佩戴在用户的面部上,使得使用显示组件和/或音频系统来呈现媒体内容(例如,混合现实内容)。然而,头戴式视图器也可以被用来使得以不同的方式向用户呈现内容。由头戴式视图器300呈现的媒体内容的示例包括一幅或多幅图像、视频、音频或它们的某种组合。头戴式视图器300包括框架,并且可以包括显示组件、深度摄像头组件(depth cameraassembly,DCA)、音频系统和位置传感器390等其他部件,该显示组件包括一个或多个显示元件320。尽管图3A示出了头戴式视图器300中的多个部件位于头戴式视图器300上的多个示例位置,但这些部件可以位于头戴式视图器300上的其他位置、可以位于与头戴式视图器300配对的外围设备上、或者可以位于它们的某种组合。类似地,头戴式视图器300上可以具有比图3A所示的部件更多或更少的部件。
框架310保持头戴式视图器300的其他部件。框架310包括保持一个或多个显示元件320的前部、和附着到用户头部的多个端部件(例如,镜腿)。框架310的前部桥接于用户鼻子的顶部。端部件的长度可以是可调节的(例如,可调节的镜腿长度),以适合不同的用户。端部件还可以包括卷曲在用户耳朵后面的部分(例如,镜腿尖端、耳承(ear piece))。
该一个或多个显示元件320向正佩戴着头戴式视图器300的用户提供光。如图所示,对于用户的每只眼睛,头戴式视图器包括一显示元件320。在一些实施例中,显示元件320生成图像光,该图像光被提供到头戴式视图器300的眼动范围(eyebox)。眼动范围是在佩戴着头戴式视图器300时用户的眼睛所占据的空间中的位置。例如,显示元件320可以是波导显示器。波导显示器包括光源(例如,二维源、一个或多个线源、一个或多个点源等)和一个或多个波导。来自光源的光被内耦合到该一个或多个波导中,该一个或多个波导以使得在头戴式视图器300的眼动范围中存在瞳孔复制的方式而输出光。光的内耦合和/或光从该一个或多个波导的外耦合可以使用一个或多个衍射光栅来完成。在一些实施例中,波导显示器包括扫描元件(例如,波导、反射镜等),该扫描元件在来自光源的光内耦合到该一个或多个波导中时扫描该光。注意,在一些实施例中,这些显示元件320中的一个显示元件或两个显示元件是不透明的,并且不透射来自头戴式视图器300周围的局部区域的光。该局部区域是头戴式视图器300周围的区域。例如,该局部区域可以是正佩戴着头戴式视图器300的用户所在的房间,或者正佩戴着头戴式视图器300的用户可以在外面并且该局部区域是室外区域。在这种背景下,头戴式视图器300生成VR内容。替代地,在一些实施例中,该两个显示元件320中的一个显示元件或两个显示元件至少部分透明,使得来自局部区域的光可以与来自一个或多个显示元件的光组合以生成增强现实(AR)内容和/或混合现实(MR)内容。
在一些实施例中,显示元件320不生成图像光,而是显示元件320是将来自局部区域的光传输到眼动范围的透镜。例如,该两个显示元件320中的一个显示元件或两个显示元件可以为没有矫正的镜片(非处方用镜片)或处方用镜片(例如,单光镜片、双焦和三焦镜片、或渐变镜片)以帮助矫正用户视力的缺陷。在一些实施例中,显示元件320可以是偏光的和/或着色的,以保护用户的眼睛免受阳光照射。
在一些实施例中,显示元件320可以包括附加的光学模块(未示出)。该光学模块可以包括将来自显示元件320的光引导到眼动范围的一个或多个光学元件(例如,透镜、菲涅耳透镜等)。该光学模块例如可以校正图像内容中的一些部分或所有部分中的像差、放大图像中的一些部分或所有部分、或它们的某种组合。
DCA确定头戴式视图器300周围的局部区域中的一部分的深度信息。DCA包括一个或多个成像设备330和DCA控制器(图3A中未示出),并且该DCA还可以包括照明器340。在一些实施例中,照明器340利用光照射该局部区域中的一部分。该光例如可以是红外(infrared,IR)结构光(例如,点图案、多个条纹等)、用于飞行时间的IR闪光灯等。在一些实施例中,该一个或多个成像设备330采集该局部区域中包括来自照明器340的光的该部分的多幅图像。在一个实施例中,所采集的多幅图像可以包括头戴式视图器300的用户的一幅或多幅图像和/或一个或多个视频(例如,用户佩戴了头戴式视图器300并站在镜子前)。在一些实施例中,所采集的多幅图像可以包括一个或多个单独头戴式视图器用户的一幅或多幅图像和/或一个或多个视频(例如,头戴式视图器300采集该局部区域的包括多个头戴式视图器用户的图像)。如图所示,图3A显示了单个照明器340和两个成像设备330。在替代实施例中,没有照明器340但具有至少两个成像设备330。
DCA控制器使用所采集的多幅图像以及一种或多种深度确定技术,来计算该局部区域中的该部分的深度信息。深度确定技术例如可以是直接飞行时间(direct time-of-flight,ToF)深度感测、间接ToF深度感测、结构光、被动式立体分析、主动式立体分析(该主动式立体分析通过来自照明器340的光而向场景添加纹理)、用于确定场景的深度的一些其他技术、或它们的某种组合。
音频系统提供音频内容。该音频系统包括转换器阵列、传感器阵列和音频控制器350。然而,在其他实施例中,音频系统可以包括不同的部件和/或附加的部件。类似地,在一些情况下,参考音频系统的这些部件所描述的功能可以以与这里所描述的方式不同的方式而分布在多个部件之中。例如,该控制器的一些功能或所有功能可以由远程服务器执行。图3A公开了根据一些实施例的音频系统的附加细节。
转换器阵列向用户呈现声音。在一些实施例中,转换器阵列基于一个或多个声音滤波器,呈现空间化的音频内容。转换器阵列包括多个转换器。转换器可以是扬声器360或组织转换器370(例如,骨传导转换器或软骨传导转换器)。尽管扬声器360被示出为位于框架310的外部,但扬声器360可被装在框架310中。在一些实施例中,代替用于每只耳朵的单独扬声器,头戴式视图器300包括扬声器阵列,该扬声器阵列包括集成到框架310中的多个扬声器以改善所呈现的音频内容的方向性。组织转换器370结合到用户的头部,并且直接振动该用户的组织(例如,骨或软骨)以生成声音。转换器的数量和/或位置可以与图3A中所示的数量和/或位置不同。
传感器阵列检测头戴式视图器300的局部区域内的声音。传感器阵列包括多个声学传感器380。声学传感器380采集该局部区域(例如,房间)中的一个或多个声源所发出的声音。每个声学传感器被配置为检测声音,并将检测到的声音转换为电子格式(模拟或数字)。声学传感器380可以是声波传感器、传声器、声音转换器、或适于检测声音的类似传感器。
在一些实施例中,一个或多个声学传感器380可以放置在每只耳朵的耳道中(例如,充当双耳传声器)。在一些实施例中,声学传感器380可以放置在头戴式视图器300的外表面上、放置在头戴式视图器300的内表面上、与头戴式视图器300分开(例如,某个其他设备的一部分)、或它们的某种组合。声学传感器380的数量和/或位置可以与图3A中所示的数量和/或位置不同。例如,可以增加声学检测位置的数量,以增加所收集的音频信息的量、以及该信息的灵敏度和/或准确性。这些声学检测位置可以被定向为使得传声器能够检测到正佩戴着头戴式视图器300的用户周围的宽方向范围内的声音。
音频控制器350处理来自传感器阵列的、描述了由该传感器阵列检测到的声音的信息。音频控制器350可以包括处理器和计算机可读存储介质。音频控制器350可以被配置为确定用户的姿势、生成头部相关传递函数(head-related transfer function,HRTF)、动态地更新HRTF、生成波达方向(direction of arrival,DOA)估计、追踪声源的位置、形成声源的方向上的波束、对声源进行分类、生成用于扬声器360的声音滤波器、或它们的某种组合。
位置传感器390响应于头戴式视图器300的运动而生成一个或多个测量信号。位置传感器390可以位于头戴式视图器300的框架310的一部分上。位置传感器390可以包括惯性测量单元(inertial measurement unit,IMU)。位置传感器390的示例包括:一个或多个加速度计、一个或多个陀螺仪、一个或多个磁力计、检测运动的另一合适类型的传感器、一种用于IMU的误差校正的传感器、或它们的某种组合。位置传感器390可以位于IMU外部、IMU内部、或它们的某种组合。
在一些实施例中,头戴式视图器300可以针对头戴式视图器300的位置提供用于同步定位和地图构建(simultaneous localization and mapping,SLAM)、并且可以提供对局部区域的模型的更新。例如,头戴式视图器300可以包括生成彩色图像数据的无源摄像头组件(passive camera assembly,PCA)。该PCA可以包括一个或多个RGB摄像头,该一个或多个RGB摄像头采集局部区域中的一些或所有部分的图像。在一些实施例中,DCA的多个成像设备330中的一些或所有成像设备也可以用作PCA。由PCA采集的多幅图像和由DCA确定的深度信息可以用于确定局部区域的参数、生成局部区域的模型、更新局部区域的模型、或它们的某种组合。此外,位置传感器390追踪头戴式视图器300在房间或其他物理环境内的定位(例如,位置和姿势)。
音频系统为用户动态地更新定制的HRTF模型。该音频系统接收由一个或多个成像设备(例如,一个或多个成像设备330)所采集的用户的一幅或多幅图像。该音频系统基于所采集的图像,确定用户的姿势(例如,躯干形状、耳朵形状、头部躯干方位等)。该音频系统基于所确定的姿势,动态地更新定制的HRTF模型。该音频系统使用经更新的HRTF模型生成一个或多个声音滤波器,并将这些声音滤波器应用于音频内容以生成空间化的音频内容。该音频系统经由扬声器360向用户提供该空间化的音频内容。
图3B为根据一个或多个实施例的被实现为头戴式显示器(HMD)的头戴式视图器305的立体图。在描述AR系统和/或MR系统的实施例中,HMD正面的多个部分在可见波段(~380纳米(nm)到750nm)至少部分透明,并且HMD的、在HMD正面与用户的眼睛之间的多个部分至少部分透明(例如,部分透明的电子显示器)。HMD包括前部刚性体315和带375。头戴式视图器305包括以上参考图3A所描述的多个相同部件中的许多部件,但这些部件被修改为与HMD形状因子相结合。例如,HMD包括显示组件、DCA、图3A的音频系统、以及位置传感器390。图3B显示了照明器340、多个扬声器360、多个成像设备330、多个声学传感器380、和位置传感器390。该多个扬声器360可以位于各种位置,例如耦接到带375(如图所示)、耦接到前部刚性体315,或者该多个扬声器360可以被配置为插入用户的耳道内。
附加配置信息
已经出于说明的目的而呈现了本公开的多个实施例的前述描述;该描述不旨在穷举的,也不旨在将本公开限制为所公开的精确形式。相关领域的技术人员可以理解,根据上述公开,许多修改和变型是可能的。
本说明书的一些部分描述了本公开的对信息的操作的算法和符号表示方面的多个实施例。这些算法描述和表示通常由数据处理领域的技术人员用来向本领域的其他技术人员有效地传达他们工作的实质。虽然在功能上、计算上或逻辑上对这些操作进行了描述,但这些操作被理解为由计算机程序或等效电路、微代码等来实现。此外,在不失一般性的情况下,有时将这些操作布置称为模块也被证明是方便的。所描述的操作及其相关联的模块可以以软件、固件、硬件、或它们的任意组合来体现。
本文所描述的多个步骤、多个操作或多个过程中的任何一个可以利用一个或多个硬件或软件模块单独地或与其他设备组合地执行或实现。在一个实施例中,软件模块利用包括计算机可读介质的计算机程序产品来实现,该计算机可读介质包括计算机程序代码,该计算机程序代码可以由计算机处理器执行以用于执行所描述的任何或所有步骤、任何或所有操作、或任何或所有过程。
本公开的实施例还可以涉及用于执行本文中的操作的装置。该装置可以是出于所需目的而专门构造的,和/或该装置可以包括通用计算设备,该通用计算设备由存储在计算机中的计算机程序选择性地激活或重新配置。这种计算机程序可以存储在非暂态有形计算机可读存储介质中、或者适于存储电子指令的任何类型的介质中,上述介质可以耦接到计算机系统总线。此外,在本说明书中提及的任何计算系统可以包括单个处理器,或者可以是采用多处理器设计以用于增加计算能力的架构。
本公开的实施例还可以涉及由本文所描述的计算过程产生的产品。这种产品可以包括从计算过程得到的信息,其中该信息被存储在非暂态有形计算机可读存储介质上,并且可以包括计算机程序产品的任何实施例或本文所描述的其他数据组合。
最后,在说明书中所使用的语言主要是出于可读性和指导性目的而选择的,且该语言可能不是为了描述或限制创造性主题而选择的。因此,旨在本公开的范围不受具体实施方式的限制,而是由基于此而在本申请上所公布的任何权利要求来限制。因此,多个实施例的公开内容旨在对所附权利要求中阐述的本公开的范围进行说明而不是限制。
Claims (18)
1.一种用于通过虚拟现实或增强现实应用程序遮挡物理场景内的虚拟对象的计算机实现的方法,所述方法包括:
获取来自摄像头的物理场景的立体图像;
确定虚拟对象的至少一个深度值,所述虚拟对象待被所述应用程序与所述物理场景的立体图像合成;
确定与所述虚拟对象的所述深度值相对应的深度掩模模型;
通过将所述深度掩模模型应用于所述物理场景的立体图像来获取深度掩模;
基于所获取的所述深度掩模,遮挡所述虚拟对象的一部分;
在所述立体图像内渲染所述虚拟对象的未遮挡部分;以及
显示所述虚拟对象的渲染部分。
2.根据权利要求1所述的计算机实现的方法,还包括训练所述深度掩模模型,所述训练包括:
获取以下内容作为训练输入:
多个立体图像;
与所述多个立体图像相对应的多个二元深度掩模;以及
所述深度值。
3.根据权利要求2所述的计算机实现的方法,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述计算机实现的方法还包括:
对于所述非合成立体图像,使用光探测和测距Li DAR生成对应的视差图;以及
从所述视差图生成与所述非合成立体图像相对应的二元深度掩模。
4.根据权利要求2所述的计算机实现的方法,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述计算机实现的方法还包括:
使用渲染软件从给定的三维模型生成所述合成立体图像;
使用由所述渲染软件计算的像素深度值,生成所述合成立体图像的视差图;以及
从所述视差图生成与所述非合成立体图像相对应的二元深度掩模。
5.根据权利要求1所述的计算机实现的方法,还包括:
确定小于所述深度值的第二深度值,所述第二深度值对应于,所述物理对象的比对应于所述深度值的部分更靠近的部分;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
基于所获取的所述第二深度掩模,遮挡所述虚拟对象的一部分,所获取的所述第二深度掩模遮挡所述虚拟对象的、与被所获取的所述深度掩模所遮挡的部分不同的部分;以及
在所述立体图像内渲染所述虚拟对象的未遮挡部分。
6.根据权利要求1所述的计算机实现的方法,还包括:
确定与来自用户的入侵检测距离相对应的第二深度值;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
使用所述第二深度掩模模型来识别比所述第二深度值更靠近的对象;
确定所识别的所述对象表示危险;
响应于确定所识别的所述对象表示危险,向所述用户发出警告。
7.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有多个指令,所述多个指令在被计算机处理器执行时执行多个动作,所述多个动作包括:
获取来自摄像头的物理场景的立体图像;
确定虚拟对象的至少一个深度值,所述虚拟对象待被应用程序与所述物理场景的立体图像合成;
确定与所述虚拟对象的所述深度值相对应的深度掩模模型;
通过将所述深度掩模模型应用于所述物理场景的立体图像来获取深度掩模;
基于所获取的所述深度掩模,遮挡所述虚拟对象的一部分;
在所述立体图像内渲染所述虚拟对象的未遮挡部分;以及
显示所述虚拟对象的渲染部分。
8.根据权利要求7所述的非暂态计算机可读存储介质,其中,所述多个动作还包括训练所述深度掩模模型,所述训练包括:
获取以下内容作为训练输入:
多个立体图像;
与所述多个立体图像相对应的多个二元深度掩模;以及
所述深度值。
9.根据权利要求8所述的非暂态计算机可读存储介质,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述多个动作还包括:
对于所述非合成立体图像,使用光探测和测距Li DAR生成对应的视差图;以及
从所述视差图生成对应于所述非合成立体图像的二元深度掩模。
10.根据权利要求8所述的非暂态计算机可读存储介质,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述多个动作还包括:
使用渲染软件从给定的三维模型生成所述合成立体图像;
使用由所述渲染软件计算的像素深度值,生成所述合成立体图像的视差图;以及
从所述视差图生成与所述非合成立体图像相对应的二元深度掩模。
11.根据权利要求7所述的非暂态计算机可读存储介质,其中,所述多个动作还包括:
确定小于所述深度值的第二深度值,所述第二深度值对应于,所述物理对象的比对应于所述深度值的部分更靠近的部分;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
基于所获取的所述第二深度掩模,遮挡所述虚拟对象的一部分,所获取的第二深度掩模遮挡所述虚拟对象的、与被所获取的所述深度掩模遮挡的部分不同的部分;以及
在所述立体图像内渲染所述虚拟对象的未遮挡部分。
12.根据权利要求7所述的非暂态计算机可读存储介质,其中,所述多个动作还包括:
确定与来自用户的入侵检测距离相对应的第二深度值;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
使用所述第二深度掩模模型来识别比所述第二深度值更靠近的对象;
确定所识别的所述对象表示危险;
响应于确定所识别的所述对象表示危险,向所述用户发出警告。
13.一种计算机设备,包括:
计算机处理器;以及
非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有多个指令,所述多个指令在被所述计算机处理器执行时执行多个动作,所述多个动作包括:
获取来自摄像头的物理场景的立体图像;
确定虚拟对象的至少一个深度值,所述虚拟对象待被应用程序与所述物理场景的立体图像合成;
确定与所述虚拟对象的所述深度值相对应的深度掩模模型;
通过将所述深度掩模模型应用于所述物理场景的立体图像来获取深度掩模;
基于所获取的所述深度掩模,遮挡所述虚拟对象的一部分;
在所述立体图像内渲染所述虚拟对象的未遮挡部分;以及
显示所述虚拟对象的渲染部分。
14.根据权利要求13所述的计算机设备,其中,所述多个动作还包括训练所述深度掩模模型,所述训练包括:
获取以下内容作为训练输入:
多个立体图像;
与所述多个立体图像相对应的多个二元深度掩模;以及
所述深度值。
15.根据权利要求14所述的计算机设备,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述多个动作还包括:
对于所述非合成立体图像,使用光探测和测距Li DAR生成对应的视差图;以及
从所述视差图生成与所述非合成立体图像相对应的二元深度掩模。
16.根据权利要求14所述的计算机设备,其中,所述多个立体图像包括合成立体图像和从摄像头获取的非合成立体图像,所述多个动作还包括:
使用渲染软件从给定的三维模型生成所述合成立体图像;
使用由所述渲染软件计算的像素深度值,生成所述合成立体图像的视差图;以及
从所述视差图生成与所述非合成立体图像相对应的二元深度掩模。
17.根据权利要求13所述的计算机设备,其中,所述多个动作还包括:
确定小于所述深度值的第二深度值,所述第二深度值对应于,所述物理对象的比对应于所述深度值的部分更靠近的部分;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
基于所获取的所述第二深度掩模,遮挡所述虚拟对象的一部分,所获取的所述第二深度掩模遮挡所述虚拟对象的、与被所获取的所述深度掩模所遮挡的部分不同的部分;以及
在所述立体图像内渲染所述虚拟对象的未遮挡部分。
18.根据权利要求13所述的计算机设备,其中,所述多个动作还包括:
确定与来自用户的入侵检测距离相对应的第二深度值;
确定与所述第二深度值相对应的第二深度掩模模型;
通过将所述第二深度掩模模型应用于所述物理场景的立体图像来获取第二深度掩模;
使用所述第二深度掩模模型来识别比所述第二深度值更靠近的对象;
确定所识别的所述对象表示危险;
响应于确定所识别的所述对象表示危险,向所述用户发出警告。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/310,935 | 2022-02-16 | ||
US18/087,483 | 2022-12-22 | ||
US18/087,483 US20230260222A1 (en) | 2022-02-16 | 2022-12-22 | Efficient dynamic occlusion based on stereo vision within an augmented or virtual reality application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116612234A true CN116612234A (zh) | 2023-08-18 |
Family
ID=87673467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310126981.3A Pending CN116612234A (zh) | 2022-02-16 | 2023-02-16 | 基于增强或虚拟现实应用程序内立体视觉的高效动态遮挡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116612234A (zh) |
-
2023
- 2023-02-16 CN CN202310126981.3A patent/CN116612234A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693242B2 (en) | Head-mounted display for virtual and mixed reality with inside-out positional, user body and environment tracking | |
US11238568B2 (en) | Method and system for reconstructing obstructed face portions for virtual reality environment | |
US9710973B2 (en) | Low-latency fusing of virtual and real content | |
CN112148118B (zh) | 生成物理环境中的人的姿势信息 | |
US20190371072A1 (en) | Static occluder | |
US20140176591A1 (en) | Low-latency fusing of color image data | |
KR101892735B1 (ko) | 직관적인 상호작용 장치 및 방법 | |
US20110149043A1 (en) | Device and method for displaying three-dimensional images using head tracking | |
JP7148634B2 (ja) | ヘッドマウントディスプレイ装置 | |
US11682138B2 (en) | Localization and mapping using images from multiple devices | |
EP4231635A1 (en) | Efficient dynamic occlusion based on stereo vision within an augmented or virtual reality application | |
CN116612234A (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 |