虚拟图像生成系统及其操作方法
阅读说明:本技术 虚拟图像生成系统及其操作方法 (Virtual image generation system and method of operating the same ) 是由 M·卡斯 于 2017-03-15 设计创作,主要内容包括:本发明涉及虚拟图像生成系统及其操作方法。分别从相对于第一视点的第一左聚焦中心和第一右聚焦中心渲染三维场景的左合成图像和右合成图像。第一左和第一右聚焦中心彼此间隔开大于终端用户的眼间距离的距离。将左合成图像和右合成图像分别变形到相对于不同于第一视点的第二视点的第二左聚焦中心和第二右聚焦中心。第二左和右聚焦中心彼此间隔开等于终端用户的眼间距离的距离。帧从左和右变形的合成图像被构造并被显示给终端用户。(The invention relates to a virtual image generation system and an operation method thereof. Left and right composite images of a three-dimensional scene are rendered from first left and right focus centers, respectively, relative to a first viewpoint. The first left and first right focus centers are spaced apart from each other by a distance greater than an interocular distance of an end user. The left and right composite images are warped to a second left focus center and a second right focus center, respectively, with respect to a second viewpoint different from the first viewpoint. The second left and right focus centers are spaced apart from each other by a distance equal to the interocular distance of the end user. The composite image with frames warped from left and right is constructed and displayed to the end user.)
本申请是申请日为2017年3月15日、PCT国际申请号为 PCT/US2017/022554、中国国家阶段申请号为201780017604.9、发明名称为“虚拟图像生成系统及其操作方法”的申请的分案申请。
相关申请的交叉引用
本申请要求于2016年3月15日以代理人案卷号ML.30032.00提交的名称为“用于低延迟渲染的宽基线立体(WIDE BASELINE STEREO FOR LOW-LATENCY RENDERING)”的美国临时专利申请序列号62/308,418 的优先权。上述专利申请的内容通过引用整体明确地并入本文。
技术领域
本发明一般涉及被配置为促进一个或多个用户的交互式虚拟或增强现实环境的系统和方法。
背景技术
现代计算和显示技术促进了用于所谓的“虚拟现实”或“增强现实”体验的系统的开发,其中数字再现图像或其的一部分以它们看起来或者可被感知为真实的方式呈现给用户。虚拟现实(VR)场景通常涉及数字或虚拟图像信息的呈现,而对于其他实际的真实世界视觉输入不透明,而增强现实(AR)场景通常涉及数字或虚拟图像信息的呈现作为对用户周围的实际世界的可视化的增强。
例如,参考图1,描绘了增强显示场景,其中AR技术的用户看到以人、树木、背景中的建筑物和混凝土平台8为特征的真实世界公园状设置 6。除了这些项目之外,AR技术的用户同样感知到他“看到”站在真实世界平台8上的机器人雕像10,以及飞过的卡通式化身角色12,该化身角色看起来是大黄蜂的化身,即使这些要素10、12在真实世界中不存在。因为人类的视觉感知系统非常复杂,并且产生有助于连同其它虚拟或真实世界的图像要素一起的虚拟图像要素的舒适、自然、丰富呈现的VR或AR技术是具有挑战性的。
VR和AR显示系统可受益于关于观看者或用户的头部姿态的信息 (即,用户头部的取向和/或位置)。
例如,头戴式显示器(或头盔式显示器或智能眼镜)至少宽松地耦接到用户的头部,并因此在用户的头部移动时移动。如果显示系统检测到用户的头部移动,则可以更新正在显示的数据以考虑头部姿态的变化。
作为示例,如果佩戴头戴式显示器的用户在显示器上观看三维(3D) 对象的虚拟表示并在3D对象出现的区域周围走动,则该3D对象可以关于每个视点重新渲染,使用户感知到他或她正在一个占据真实空间的对象周围走动。如果头戴式显示器用于在虚拟空间内呈现多个对象(例如,丰富的虚拟世界),则可以使用头部姿态的测量来重新渲染场景以匹配用户动态改变的头部位置和方位并提供增加的沉浸在虚拟空间中的感觉。
能够实现AR(即,同时观看真实和虚拟要素)的头戴式显示器可以具有若干不同类型的配置。在一种这样的配置中,通常被称为“视频透视”显示器,相机捕捉真实场景的要素,计算系统将虚拟要素叠加到捕捉的真实场景上,并且非透明显示器将合成图像呈现给眼睛。另一种配置通常被称为“光学透视”显示器,其中用户可以透视到显示系统中的透明(或半透明)元件以直接观看来自环境中的真实对象的光。通常称为“组合器”的透明元件将来自显示器的光叠加在用户对真实世界的视野上。
在视频和光学透视显示器中,头部姿态的检测可以使显示系统能够渲染虚拟对象,使得它们看起来占据真实世界中的空间。当用户的头部在真实世界中移动时,虚拟对象被重新渲染为头部姿态的函数,使得虚拟对象看起来相对于真实世界保持稳定。至少对于AR应用,虚拟对象与物理对象的空间关系的放置(例如,呈现为在二维或三维中在空间上接近物理对象)可能是非平凡的问题。例如,头部移动可能使周围环境视图中的虚拟对象的放置显著复杂化。无论视图是作为周围环境的图像被捕捉然后被投影或显示给终端用户,还是终端用户直接感知周围环境的视图,都是如此。例如,头部移动将可能导致终端用户的视场改变,这将可能需要更新到在终端用户的视场中显示的各种虚拟对象的位置。另外,头部移动可以在多种范围和速度内发生。头部移动速度可以不仅在不同的头部移动之间变化,而且可以在单个头部移动的范围内或跨单个头部移动的范围内变化。例如,头部移动速度可以最初从起始点增加(例如,线性地或非线性地),并且可以在达到终点时减小,从而在头部移动的起始点和结束点之间的某处获得最大速度。快速的头部移动甚至可能超过特定显示器或投影技术的能力,以使得对于终端用户看起来是均匀和/或平滑运动的图像进行渲染。
头部跟踪准确度和延迟(即,用户移动他或她的头部与图像被更新并显示给用户时的时间之间的经过时间)已成为VR和AR系统的问题。特别是对于用虚拟要素填充用户视场的大部分的显示系统,头部跟踪的准确性高且从头部移动的第一次检测到由显示器传递给用户视觉系统的光的更新的整体系统延迟非常低是至关重要的。如果延迟很高,系统可能会在用户的前庭和视觉感觉系统之间产生不匹配,并产生运动病或模拟器病。在光学透视显示器的情况下,用户对真实世界的视图基本上具有零延迟,而他或她的虚拟对象视图具有取决于头部跟踪速率、处理时间、渲染时间和显示帧速率的延迟。如果系统延迟高,则虚拟对象的明显位置在快速头部移动期间将显得不稳定。
除了头戴式显示系统之外,其他显示系统可受益于准确且低延迟的头部姿态检测。这些包括头部跟踪显示系统,其中显示器没有佩戴在用户的身体上,而是例如安装在墙壁或其他表面上。头部跟踪显示器起到场景上的窗口的作用,并且当用户相对于“窗口”移动他的头部时,场景被重新渲染以匹配用户的改变视点。其他系统包括头戴式投影系统,其中头戴式显示器将光投射到真实世界中。
解决头部跟踪准确度和延迟的方法可以包括增加实际帧速率或有效帧速率,例如视图闪动或闪烁或通过其他技术。可以采用预测头部跟踪来减少延迟。预测头部跟踪可以依赖于多种因素或方法中的任何一种,包括关于特定终端用户的历史数据或属性。而且,可以有效地使用显示或呈现的消隐,例如,在快速头部移动期间变黑。
无论所使用的显示系统的类型如何,在显示渲染时从当前视点或预测视点渲染3D对象。为了将延迟保持在最小,在最后时刻调整渲染图像以在扫描显示器中“追踪光束”。这通常是通过变形(warp)图像来实现;也就是说,图像被时间变形以减少用户移动他或她的头部的时间与图像更新的时间之间的延迟。例如,假设图像只能以60帧每秒(FPS)呈现给用户,不利用时间变形的图像渲染过程可以在先前图像已被渲染并呈现给用户之后紧接地确定用户头部的位置,然后基于该头部位置,渲染并向用户显示下一图像。如果系统以60帧每秒(FPS)向用户呈现图像,则每个图像从确定头部位置的时间到呈现给用户的时间可能花费长达16.7ms,这是不可接受的。利用时间变形的图像渲染过程将通过变形先前在用户的实际或估计的头部位置处渲染的图像而在将图像呈现给用户之前的可能的最后时刻确定或估计头部位置。
典型地,图像通常使用视差而被变形。也就是说,因为当视点改变时 (即,当用户的头部移动时)更靠近观察者的对象比更远离观看者的对象移动得更快,所以变形过程利用三维数据来执行图像上的二维变形。因为在特定视点处渲染的场景的图像可能不包含来自不同特定视点的相同场景的所有三维数据(例如,完全隐藏在渲染图像中的另一对象后面的一个对象可能是在不同的视点处仅部分被隐藏或者根本不被隐藏),由于不同深度的对象的不同位移(displacement),视差变形过程可能在所得图像中引入孔。
因此,需要降低在虚拟现实或增强现实环境中已渲染的变形的图像中的孔的频率和尺寸。
发明内容
本发明的实施例涉及用于促进一个或多个用户的虚拟现实和/或增强现实交互的设备、系统和方法。
根据本发明的一个方面,提供了一种操作虚拟图像生成系统的方法。该方法包括分别从相对于第一视点的第一左聚焦中心(focal center)和第一右聚焦中心渲染三维场景的左合成图像和右合成图像。第一左和第一右聚焦中心彼此间隔开大于终端用户的眼间(inter-ocular)距离的距离。该方法还包括分别将左合成图像和右合成图像变形到相对于不同于第一视点的第二视点的第二左聚焦中心和第二右聚焦中心。第二左和右聚焦中心彼此间隔开等于终端用户的眼间距离的距离。该方法还包括从左和右变形的合成图像构造帧,以及将该帧显示给终端用户。
在一个实施例中,左和右合成图像在三个维度中渲染并且在两个维度中变形。该方法可以包括分别为左合成图像和右合成图像生成左深度数据和右深度数据,在这种情况下,可以使用左深度数据和右深度数据分别变形左合成图像和右合成图像。在一个实施例中,基于三维场景中的第一观察点渲染左合成图像和右合成图像,并且基于三维场景中的第二观察点变形左合成图像和右合成图像。三维场景可以包括从相对于第一视点的第二左和右聚焦中心不可见的以及从相对于第一视点的第二左和右聚焦中心可见的虚拟对象的至少一部分。在一个实施例中,预测第一视点的估计并且检测第二视点。在另一实施例中,检测第一和第二视点中的每一个。
根据本发明的另一方面,提供了一种由具有眼间距离的终端用户使用的虚拟图像生成系统。虚拟图像生成系统包括存储三维场景的存储器。虚拟图像生成系统还包括控制子系统(例如,包括图形处理单元(GPU)的控制子系统),其被配置为分别从相对于第一视点的第一左聚焦中心和第一右聚焦中心渲染三维场景的左合成图像和右合成图像。第一左和第一右聚焦中心彼此间隔开大于终端用户的眼间距离的距离。
控制子系统还被配置为分别将左合成图像和右合成图像变形到相对于与第一视点不同的第二视点的第二左聚焦中心和第二右聚焦中心。第二左和右聚焦中心彼此间隔开等于终端用户的眼间距离的距离。虚拟图像生成系统可选地还可包括一个或多个传感器,其被配置用于检测用户的眼间距离。虚拟图像生成系统还可以包括患者(patient)定位(orientation)模块,其被配置用于预测第一视点的估计并检测第二视点,或者可选地,检测第一和第二视点中的每一个。
在一个实施例中,左和右合成图像在三个维度中渲染并且在两个维度中变形。控制子系统还可以被配置为分别为左合成图像和右合成图像生成左深度数据和右深度数据,在这种情况下,可以分别使用左深度数据和右深度数据变形左合成图像和右合成图像。在另一实施例中,基于三维场景中的第一观察点渲染左合成图像和右合成图像,并且基于三维场景中的第二观察点变形左合成图像和右合成图像。三维场景可以包括从相对于第一视点的第二左和右聚焦中心不可见的以及从相对于第一视点的第二左和右聚焦中心可见的虚拟对象的至少一部分。在一个实施例中,预测第一视点并且检测第二视点。
控制子系统还被配置用于从左和右变形的合成图像构造帧。虚拟图像生成子系统还包括显示系统,该显示系统被配置用于将帧显示给终端用户。显示系统可以被配置为位于终端用户的眼睛前方。在一个实施例中,显示系统包括投影子系统和部分透明的显示表面,在这种情况下,投影子系统可以被配置用于将帧投影到部分透明的显示表面上,并且部分透明的显示表面可以被配置为位于终端用户的眼睛和周围环境之间的视场中。虚拟图像生成系统还可以包括被配置为由终端用户佩戴的框架结构,在这种情况下,框架结构可以承载显示系统。
在详细说明、附图和权利要求中描述了本发明的附加和其他目的、特征和优点。
附图说明
附图示出了本发明的优选实施例的设计和实用性,其中相似元件由相同的附图标记表示。为了更好地理解如何获得本发明的上述和其他优点和目的,将通过参考其特定实施例来呈现上面简要描述的本发明的更特别的描述。应理解,这些附图仅描绘了本发明的典型实施例,因此不应认为是对其范围的限制,本发明将通过使用附图的附加特征和细节进行描述和说明,其中:
图1是可以通过现有技术的增强现实生成设备向终端用户显示的三维增强现实场景的图片;
图2是根据本发明的一个实施例构造的虚拟图像生成系统的框图。
图3是由图2的虚拟图像生成系统生成的示例性帧的平面图。
图4A是可用于佩戴图2的虚拟图像生成系统的一种技术的视图;
图4B是可用于佩戴图2的虚拟图像生成系统的另一技术的视图;
图4C是可用于佩戴图2的虚拟图像生成系统的又一种技术的视图;
图4D是可用于佩戴图2的虚拟图像生成系统的又一种技术的视图;
图5是示出与在终端用户的头部移动之后被变形到与终端用户的眼间距离对准的左和右聚焦中心的三维虚拟对象的视图相比较的当从相同的左和右聚焦中心渲染时的三维虚拟对象的基线视图的图表;
图6是示出与在终端用户的头部移动之后被变形到与终端用户的眼间距离对准的左和右聚焦中心的三维虚拟对象的视图相比较的当从间隔开比终端用户的眼间距离大的距离的左和右聚焦中心渲染时的三维虚拟对象的基线视图的图表;
图7是示出操作图2的虚拟图像生成系统以渲染和变形图像的一种方法的流程图;以及
图8是示出操作图2的虚拟图像生成系统以渲染和变形图像的另一种方法的流程图。
具体实施方式
以下描述涉及要在虚拟现实和/或增强现实系统中使用的显示系统和方法。然而,应该理解,虽然本发明很好地适用于虚拟现实中的应用,但是本发明在其最广泛的方面可以不受此限制。
参考图2,现在将描述根据本发明构造的虚拟图像生成系统100的一个实施例。虚拟图像生成系统100可以作为增强现实系统来操作,提供与终端用户50的视场中的物理对象混合的虚拟对象的图像。当操作虚拟图像生成系统100时,存在两种基本方法。第一种方法使用一个或多个成像器 (例如,相机)来捕捉周围环境的图像。虚拟图像生成系统100将虚拟图像混合到表示周围环境的图像的数据中。第二种方法采用一个或多个至少部分透明的表面,通过该表面可以看到周围环境,虚拟图像生成系统100 可以在该表面上产生虚拟对象的图像。
虚拟图像生成系统100和本文教导的各种技术可以用于除增强现实和虚拟现实系统之外的应用中。例如,各种技术可以应用于任何投影或显示系统。例如,这里描述的各种技术可以应用于微型投影仪,其中可以由终端用户的手而不是头部进行移动。因此,尽管这里经常就增强现实系统或虚拟现实系统描述,但是教导不应限于这种用途的这种系统。
至少对于增强现实应用,可能期望相对于在终端用户50的视场中的相应物理对象在空间上定位各种虚拟对象。在本文中也称为虚拟标签(一个或多个)或标注(call out)的虚拟对象可以采用各种形式中的任何一种,基本上可以采用能够被表示为图像的任何种类的数据、信息、概念或逻辑构造。虚拟对象的非限制性示例可包括:虚拟文本对象、虚拟数字对象、虚拟字母数字对象、虚拟标签对象、虚拟场对象、虚拟图表对象、虚拟映射对象、虚拟仪器对象或物理对象的虚拟可视化表示。
为此,虚拟图像生成系统100包括:由终端用户50佩戴的框架结构 102;由框架结构102承载的显示系统104,使得显示系统104位于终端用户50的眼睛52的前方;以及由框架结构102承载的扬声器106,使得扬声器106位于终端用户50的耳道附近(可选地,另一个扬声器(未示出) 位于终端用户50的另一个耳道附近以提供立体声/可成形声音控制)。显示系统104被设计成向终端用户50的眼睛52呈现基于照片的辐射图案,该辐射图案可以被舒适地感知为对物理现实的增强,具有高水平的图像质量和三维感知,以及能够呈现二维内容。显示系统104呈现高频的帧序列,该高频的帧序列提供单个相干场景的感知。
在所示实施例中,显示系统104包括投影子系统108和部分透明的显示表面110,投影子系统108在部分透明的显示表面110上投影图像。显示表面110位于终端用户50的眼睛52与周围环境之间的终端用户50的视场中。在所示实施例中,投影子系统108包括一个或多个光纤112(例如单模光纤),每个光纤112具有其中接收到光的一个端部112a和另一个端部112b,光被从另一个端部112b提供给部分透明的显示表面110。投影子系统108还可以包括产生光的一个或多个光源114(例如,以限定的图案发射不同颜色的光),并且将光可通信地耦接到光纤112的另一端112a。光源114可以采用多种形式中的任何一种,例如,RGB激光器(例如,能够输出红光、绿光和蓝光的激光二极管)的组,其根据在像素信息或数据的各个帧中指定的限定的像素图案,可操作地分别产生红色、绿色以及蓝色相干准直光。激光提供高色彩饱和度并且高能效。
显示系统104还可以包括扫描设备116,其响应于控制信号以预定图案扫描光纤112。例如,参考图3,根据一个示出的实施例,像素信息或数据的帧118规定像素信息或数据以呈现图像,例如,一个或多个虚拟对象的图像。帧118示意性地被示出为具有分成水平行或线122a-122n的单元 120a-120m。帧118的每个单元120可以为与单元120对应的相应像素和/ 或强度指定多种颜色中的每一种的值。例如,帧118可以为每个像素指定用于红色124a的一个或多个值、用于绿色124b的一个或多个值以及用于蓝色124c的一个或多个值。值124可以被指定为颜色中的每一个的二进制表示,例如,每种颜色的相应的4比特数。帧118的每个单元120可以另外包括指定幅度的值124d。解释显示系统104的示例的进一步细节在美国临时专利申请序列No.61/801,219(代理人案卷号ML-30006-US)中提出,其通过引用明确地并入本文。
返回参考图2,虚拟图像生成系统100还包括安装到框架结构102的一个或多个传感器(未示出),用于检测终端用户50的头部54的位置和移动和/或终端用户50的眼睛位置和眼间距离。这种传感器可以包括图像捕捉设备(诸如相机)、麦克风、惯性测量单元、加速度计、罗盘,GPS 单元、无线电设备和/或陀螺仪)。
例如,在一个实施例中,虚拟图像生成系统100包括头戴式换能器 (transducer)系统126,其包括一个或多个惯性换能器以捕捉指示终端用户50的头部54的移动的惯性测量。这可以是用于感测、测量或收集关于终端用户50的头部移动的信息。例如,这可以用于检测终端用户50的头部54的测量移动、速度、加速度和/或位置。虚拟图像生成系统100还可以包括面向前的相机128。这可以用于捕捉关于终端用户50位于的环境的信息。这可以用于捕捉指示终端用户50相对于该环境和该环境中的特定对象的距离和取向的信息。当头部佩戴时,面向前的相机128特别适于捕捉指示终端用户50的头部54相对于终端用户50位于的环境和该环境中的特定对象的距离和取向的信息。例如,这可以用于检测头部移动、头部移动的速度和/或加速度。例如,这可以用于例如至少部分地基于终端用户50 的头部54的取向来检测或推断终端用户50的注意力中心。可以在任何方向(例如,相对于终端用户50的参考框架的上/下、左、右)上检测取向。
虚拟图像生成系统100还包括患者定位检测模块130。患者定位模块 130检测终端用户50的头部54的瞬时位置,并基于从传感器接收的位置数据来预测终端用户50的头部54的位置。在一个实施例中,患者定位模块130基于预测终端用户的聚焦移动来预测头部54的位置。例如,患者定位模块130可以至少基于指示终端用户50的注意力的输入来选择虚拟对象,并且相对于终端用户50的参考帧确定虚拟对象在终端用户50的视场中出现的位置。作为另一示例,患者定位模块130可以采用估计的速度和/ 或估计的速度变化或估计的加速度来预测终端用户50的头部54的位置。作为另一示例。患者定位模块130可以采用终端用户50的历史属性来预测终端用户50的头部54的位置。描述预测终端用户50的头部位置的进一步细节在美国专利申请序列号No.61/801,219(代理人案卷号ML-30006-US) 中提出,其先前已通过引用并入本文。
虚拟图像生成系统100还包括可以采用多种形式中的任何形式的控制子系统。控制子系统包括多个控制器,例如一个或多个微控制器、微处理器或中央处理单元(CPU)、数字信号处理器、图形处理单元(GPU)、其他集成电路控制器,该其他集成电路控制器诸如专用集成电路(ASIC)、例如场PGA(FPGA)的可编程门阵列(PGA)和/或可编程逻辑控制器(PLU)。
在所示实施例中,虚拟图像生成系统100包括中央处理单元(CPU) 132、图形处理单元(GPU)134和一个或多个帧缓冲器136。CPU 132控制整体操作,而GPU 134从存储在远程数据储存库150中的三维数据渲染帧(即,将三维场景转换成二维图像),并将这些帧存储在帧缓冲器136 中。虽然未示出,但是一个或者多个附加的集成电路可以控制从帧缓冲器136读入和/或读出帧以及控制显示系统104的扫描设备的操作。读入和/ 或读出帧缓冲器146可以采用动态寻址,例如其中帧被过度渲染。虚拟图像生成系统100还包括只读存储器(ROM)138和随机存取存储器(RAM) 140。虚拟图像生成系统100还包括三维数据库142,GPU134可以从该三维数据库142访问用于渲染帧的一个或多个场景的三维数据。
虚拟图像生成系统100的各种处理组件可以物理地包含在分布式系统中。例如,如图4A-4D所示,虚拟图像生成系统100包括本地处理和数据模块144,其诸如通过有线引线或无线连接146可操作地耦接到显示系统 104和传感器。本地处理和数据模块144可以以各种配置安装,诸如固定地附到框架结构102(图4A)、固定地附到头盔或帽子56(图4B)、嵌入耳机中、可拆卸地附到终端用户50的躯干58(图4C)、或者以带耦接式配置可拆卸地附到终端用户50的臀部60(图4D)。虚拟图像生成系统 100还包括远程处理模块148和远程数据储存库150,该远程数据储存库 150诸如通过有线引线或无线连接150、152可操作地耦接到本地处理和数据模块144,使得这些远程模块148、150可操作地彼此耦接并且可用作本地处理和数据模块144的资源。
本地处理和数据模块144可以包括功率有效的处理器或控制器,以及诸如闪存的数字存储器,这两者都可以用于辅助数据的处理、高速缓存和存储数据,该数据被从相机捕捉和/或该数据使用远程处理模块148和/或远程数据储存库150被获取和/或处理,该数据可以在这样的处理或检索之后被传送到显示系统。远程处理模块148可以包括一个或多个相对强大的处理器或控制器,这些处理器或控制器被配置为分析和处理数据和/或图像信息。远程数据储存库150可以包括相对大尺寸的数字数据存储设施,该设施可以通过因特网或“云”资源配置中的其它网络配置而可用。在一个实施例中,在本地处理和数据模块144中存储所有数据并且执行所有计算,从而允许从任何远程模块完全自主的使用。
上述各种组件之间的耦接146、152、154可以包括用于提供布线或光通信的一个或多个有线接口或端口,或者用于提供无线通信的诸如通过 RF、微波和IR的一个或多个无线接口或端口。在一些实现中,所有通信可以是有线的,而在其他实现中,所有通信可以是无线的。在更进一步的实现中,有线和无线通信的选择可以与4A-4D中所示的不同。因此,不应将有线或无线通信的特定选择视为限制。
在所示实施例中,患者定位模块130包含在本地处理和数据模块144 中,而CPU132和GPU 134包含在远程处理模块148中,尽管在替代实施例中,CPU 132、GPU 124或者其部分可以包含在本地处理和数据模块 144中。3D数据库142可以与远程数据储存库150相关联。
对于本发明而言重要的是,GPU 134基于通过本地处理和数据模块144 从换能器系统126获得的终端用户50的头部位置和头部移动,以使延迟 (即,当终端用户50移动他或她的头部时与帧被更新并被显示给终端用户 50时的时间之间的经过时间)最小化的方式渲染和变形帧,同时还减小变形的图像中的孔的频率和尺寸。
具体地,并且参考图5,考虑终端用户50在相对于视点V(x,y,z)=(0, 0,0)的位置PL(x,y,z)=(-d,0,0)和PR(x,y,z)=(d,0,0)处具有目聚焦 (ocular focal)中心,其中x、y和z是存在三维场景70的三维空间中的坐标。然后,终端用户50的标称眼间距离将是2d。在现有技术中,假设左眼和右眼52a、52b指向观察点PLA,三维场景70的合成图像IL(u,v)和深度缓冲器DL(u,v)可以从焦点PL(x,y,z)构造,并且三维场景70的合成图像IR(u,v)和深度缓冲器DR(u,v)可以从焦点PR(x,y,z)构造,其中u和v 是合成图像中像素的坐标。假设终端用户50的头部位置改变,使得视点从位置V改变到位置V’,则左眼52a现在位于新焦点PL’(x,y,z),并且右眼 52b现在位于新焦点PR’(x,y,z),这些新焦点现在指向不同的观察点PLA’。在现有技术中,使用常规方式的视差、使用深度缓冲器DL(u,v)和DR(u,v)、旧的和新的观察点PLA’和PLA对合成图像IL(u,v)和IR(u,v)进行二维变形,以创建用于新焦点PL’(x,y,z)和PR’(x,y,z)的三维场景70的新的合成图像IL’(u,v)和IR’(u,v)。
因为图像点移动不同的量,取决于它们的深度,从旧焦点PL(x,y,z) 和PR(x,y,z)不可见的三维场景70中的点可以从新焦点PL’(x,y,z)和PR’(x, y,z)可见。这些点(去遮挡的点)是有问题的,因为它们为新变形的合成图像IL’(u,v)和IR’(u,v)创建“孔”。填充这些孔的所有现存方法在计算上都是昂贵的和/或可能产生伪影。例如,考虑图5中所示的三维场景70中的凸状对象,诸如球体72。球体72的相对小的部分72a从旧焦点PL(x,y, z)和PR(x,y,z)是可见的,而球72的相对大的部分72b从旧焦点PL(x,y,z) 和PR(x,y,z)保持不可见。然而,球72的不同部分72c从新焦点PL’(x,y,z) 和PR’(x,y,z)是可见的,其中的一些72d被包括在从旧焦点PL(x,y,z)和 PR(x,y,z)不可见的球体72的相对大的部分72b中。也就是说,当眼睛从旧焦点PL(x,y,z)和PR(x,y,z)移动到新焦点PL’(x,y,z)和PR’(x,y,z)时,球体72的部分72d已被去遮挡。
参考图6,在本发明的一个实施例中,假设左眼和右眼52a、52b指向观察点PLA,相对于视点V(x,y,z)=(0,0,0),三维场景70的合成图像IL(u, v)和深度缓冲器DL(u,v)最初从焦点WL(x,y,z)构造,以及三维场景70的合成图像IR(u,v)和深度缓冲器DR(u,v)最初从焦点WR(x,y,z)构造。
焦点WL(x,y,z)和WR(x,y,z)彼此间隔开较大的渲染距离,该较大的渲染距离大于终端用户50的眼间距离(在示例性情况下,大于2d)。例如,可以根据以下等式选择焦点WL(x,y,z)和WR(x,y,z):
[1]WL(x,y,z)=PR(x,y,z)+k(PL(x,y,z)–PR(x,y,z));以及
[2]WR(x,y,z)=PL(x,y,z)+k(PR(x,y,z)–PL(x,y,z)),
其中k>1以将焦点WL(x,y,z)和WR(x,y,z)之间的间距设置为大于终端用户50的眼间距离。关于焦点WL(x,y,z)和WR(x,y,z)的值可以选择以在最小化合成图像中的孔的尺寸和数量与合成图像的整体质量之间进行折衷。也就是说,随着焦点WL(x,y,z)和WR(x,y,z)之间的距离增加,合成图像中的孔的尺寸和数量将减少;然而,随着焦点WL(x,y,z)和WR(x,y,z) 之间的距离增加,合成图像的一般质量将降低。
再次假设终端用户50的头部位置改变,使得视点从位置V改变到位置V’,左眼52a现在位于新焦点WL’(x,y,z),并且右眼52b现在位于新焦点WR’(x,y,z),这些新焦点现在指向不同的观察点PLA’。使用以常规方式的视差、使用深度缓冲器DL(u,v)和DR(u,v)、旧的和新的观察点PLA’和 PLA对合成图像IL(u,v)和IR(u,v)进行二维变形,已创建用于新焦点PL’(x, y,z)和PR’(x,y,z)的三维场景70的新的合成图像IL’(u,v)和IR’(u,v)。
明显地,与从旧焦点PL(x,y,z)和PR(x,y,z)看到的球体72的部分72a 相比,球体72的较大部分72e从旧焦点WL(x,y,z)和WR(x,y,z)是可见的,而与从旧焦点PL(x,y,z)和PR(x,y,z)不可见的球体72的部分72b相比,球体72的较小部分72f从旧焦点WL(x,y,z)和WR(x,y,z)保持不可见。因此,从焦点WL(x,y,z)和WR(x,y,z)可见的球面点的轨迹大于从焦点PL(x,y,z) 和PR(x,y,z)的球面点的轨迹。结果,当观察凸点时,将预期在用于计算三维场景70的用于新焦点WL’(x,y,z)和WR’(x,y,z)的新图像IL’(u,v)和IR’(u, v)的二维图像变形之后存在较少和较小的孔。例如,球体72的不同部分72g 从新焦点PL’(x,y,z)和PR’(x,y,z)是可见的,部分72g的一些72h被包括在从旧焦点PL(x,y,z)和PR(x,y,z)不可见的球体72的相对大的部分72f中。也就是说,当眼睛从旧焦点PL(x,y,z)和PR(x,y,z)移动到新焦点PL’(x,y,z) 和PR’(x,y,z)时,与球体72的部分72d相比的球体72的较小部分72h已被去遮挡。
现在参考图7,将描述操作虚拟图像生成系统100以向终端用户50显示AR图像帧的一种方法200。首先,CPU 132确定终端用户50的眼间距离(即,焦点PL(x,y,z)和PR(x,y,z)之间的差)(步骤202)。可以检测终端用户50的眼间距离,诸如安装到框架结构102的面向后的相机。可选地,可以将终端用户50的眼间距离手动输入到虚拟图像生成系统100中。
接下来,CPU 132选择较宽的渲染间距(即,焦点WL(x,y,z)和WR(x, y,z)之间的差(步骤204)。例如,较宽的渲染间距可以被手动地输入到虚拟图像生成系统100中。可以根据等式[1]和[2]来选择较宽的渲染间距。
在图7所示的方法中,以比渲染三维场景70的图像的速率大的速率向终端用户50显示帧,以便最小化延迟;也就是说,当终端用户50移动他或她的头部时与帧被更新并被显示给终端用户50时的时间之间的经过时间。例如,如果渲染帧的最大速率是每15ms一次,则可以每5ms一次将帧显示给终端用户50。在这种情况下,对于渲染的每个图像,可以向终端用户50显示三个帧。
因此,CPU 132指示患者定位模块130(使用相关联的头戴式换能器系统126和面向前的相机128)在下一次显示帧给终端用户50时预测终端用户50的头部54的估计位置以及由此的估计的视点V(步骤206)。头部54的位置的预测可以从头部54的紧接的在前检测的实际位置和诸如终端用户50的速度、加速度和历史属性的其他参数得到。然后,CPU 132 指示GPU 134分别从相对于估计的视点V的较宽的左和右聚焦中心WL(x, y,z)和WR(x,y,z)渲染三维场景70的左和右合成图像IL(u,v)和IR(u,v)(步骤208)。在优选方法中,左和右合成图像IL(u,v)和IR(u,v)被在三个维度中渲染,并且可以基于三维场景70中的观察点PLA被渲染。然后,CPU 132 将左和右合成图像IL(u,v)和IR(u,v)存储在存储器中(步骤210)。重复步骤206-210以在头部54的每个估计位置处连续地渲染和存储左和右合成图像IL(u,v)和IR(u,v)。
当GPU 134渲染并存储这些图像时,CPU 132确定是否到了向终端用户50显示下一帧的时间(步骤212)。如果是,则CPU 132使用相关联的头戴式换能器系统126和面向前的相机128指示患者定位模块130检测终端用户50的头部54的实际位置以及由此的实际观察点V’(步骤214)。
然后,CPU 132指示GPU 134从存储器检索在较宽的左和右聚焦中心 WL(x,y,z)和WR(x,y,z)处渲染的最近的完整的左和右合成图像IL(u,v)和 IR(u,v)(步骤216)并将检索到的左和右合成图像IL(u,v)和IR(u,v)分别变形到相对于实际视点V’的较窄的左和右焦点PL’(x,y,z)和PR’(x,y,z)(步骤218)。在优选方法中,左和右合成图像IL(u,v)和IR(u,v)被在二个维度中变形,并且可以基于三维场景中的不同观察点PLA’被渲染。左和右合成图像IL(u,v)和IR(u,v)可以使用在渲染左和右合成图像IL(u,v)和IR(u,v) 期间生成的左深度数据和右深度数据而被变形。然后,CPU 132指示GPU 134从左和右变形的合成图像IL’(u,v)和IR’(u,v)构造帧(步骤220),然后指示显示系统104向终端用户50显示该帧(步骤222)。CPU 132返回到步骤212以周期性地确定是否到了向终端用户50显示下一帧的时间。
现在参考图8,将描述操作虚拟图像生成系统100以向终端用户50显示AR图像帧的另一方法300。方法300通常与方法200的不同之处在于,帧仅以比终端用户50移动他或她的头部54时三维场景70的图像的速率大的速率显示。例如,如果帧被渲染的最大速率是每15ms一次,则当终端用户50的头部54稳定时,可以每15ms一次将帧显示给终端用户50,并且当终端用户50的头部54移动时,可以每5ms一次将帧显示给终端用户 50。
为此,CPU 132确定终端用户50的眼间距离(步骤302),并选择较宽的渲染间距(步骤304),这可以以上面关于方法200的步骤202和204 描述的方式实现。接下来,CPU 132指示患者定位模块130(使用相关联的头戴式换能器系统126和面向前的相机128)检测终端用户50的头部54 的实际位置以及由此的基线视点V(步骤306)。然后,CPU 132指示GPU 134分别从相对于基线视点V的较宽的左和右焦点WL(x,y,z)和WR(x,y,z) 渲染三维场景70的左和右合成图像IL(u,v)和IR(u,v)(步骤308)。在优选方法中,左和右合成图像IL(u,v)和IR(u,v)在三个维度中被渲染,并且可以基于三维场景70中的观察点PLA被渲染。然后,CPU 132将左和右合成图像IL(u,v)和IR(u,v)存储在存储器中(步骤310)。重复步骤306-310 以连续地渲染和存储左和右合成图像IL(u,v)和IR(u,v)。
当GPU 134渲染并存储这些图像时,CPU 132指示患者定位模块130 (使用相关联的头戴式换能器系统126和面向前的相机128)确定终端用户50的头部54的实际和预期的移动是否发生(步骤312)。如果确实发生了实际或预期的移动,则CPU 132指示患者定位模块130(使用相关联的头戴式换能器系统126和面向前的相机128)检测终端用户50的头部54的新位置以及由此的新视点V’(步骤314)。
接下来,CPU 132确定基线视点V与新视点V’之间是否存在实质差(步骤316)。如果基线视点V和新视点V’之间存在实质差,则CPU 132指示 GPU 134检索在较宽的左和右聚焦中心WL(x,y,z)和WR(x,y,z)处渲染的最近的完整的左和右合成图像IL(u,v)和IR(u,v)(步骤318),并且指示 GPU 134将检索到的左和右合成图像IL(u,v)和IR(u,v)分别变形到相对于实际视点V’的较窄的左和右聚焦中心PL’(x,y,z)和PR’(x,y,z)(步骤320)。在优选方法中,左和右合成图像IL(u,v)和IR(u,v)在二个维度中被变形,并且可以基于三维场景中的不同观察点PLA’被渲染。左和右合成图像IL(u, v)和IR(u,v)可以使用在渲染左和右合成图像IL(u,v)和IR(u,v)期间生成的左深度数据和右深度数据而被变形。然后,CPU 132指示GPU134从左和右变形的合成图像IL’(u,v)和IR’(u,v)构造帧(步骤320),然后指示显示系统104将该帧显示给终端用户50(步骤324)。
如果在步骤312确定没有发生用户50的头部54的实际或预期的移动,或者如果在步骤316确定基线视点V与新视点V’之间没有实质差,则CPU 132确定是否到了向终端用户50显示下一帧的时间(步骤226)。如果是,则CPU 132然后指示GPU 134从存储器检索在较宽的左和右聚焦中心 WL(x,y,z)和WR(x,y,z)处渲染的最近的完整的左和右合成图像IL(u,v)和 IR(u,v)(步骤328),并且指示GPU 134将检索到的左和右合成图像IL(u, v)和IR(u,v)分别变形到相对于基线视点V的较窄的左和右聚焦中心PL’(x, y,z)和PR’(x,y,z)(步骤330)。在优选方法中,左和右合成图像IL(u,v) 和IR(u,v)在二个维度中被变形,并且可以基于三维场景中的不同观察点PLA’而被渲染。左和右合成图像IL(u,v)和IR(u,v)可以使用在渲染左和右合成图像IL(u,v)和IR(u,v)期间生成的左深度数据和右深度数据而被变形。然后,CPU 132指示GPU 134从左和右变形的合成图像IL’(u,v)和IR’(u,v) 构造帧(步骤322),然后指示显示系统104将该帧显示给终端用户50(步骤324)。CPU 132返回到步骤326以确定终端用户50的头部54的实际或预期移动是否已移动。
在前述说明书中,已经参考其特定实施例描述了本发明。然而,显而易见的是,在不脱离本发明的更广泛的精神和范围的情况下,可以对其进行各种变型和改变。例如,参考方法动作的特定顺序来描述上述方法流程。然而,可以改变许多所描述的方法动作的顺序而不影响本发明的范围或操作。因此,说明书和附图应被视为示例性的而非限制性意义的。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:像距连续变化的抬头显示系统及车辆