用于多相机孔填充的方法和设备与流程

未命名 08-15 阅读:155 评论:0


1.本公开一般涉及孔填充,并且尤其涉及用于多相机孔填充的系统、方法和设备。


背景技术:

2.近眼系统的面向前的图像传感器和近眼系统的用户的视点(pov)是不同的。例如,面向前的图像传感器可能比用户的pov更靠近物理环境,并且也可能从用户眼睛的位置偏移(例如,竖直和/或水平平移)。为了考虑这种pov的差异,可将来自面向前的图像传感器的图像进行翘曲,以便为用户提供更舒适的体验并且满足用户关于pov的期望。然而,该翘曲过程可在翘曲图像中引入孔(例如,包括遮挡和去遮挡)。
附图说明
3.因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
4.图1是根据一些具体实施的示例性操作架构的框图。
5.图2是根据一些具体实施的图像捕获架构的示意图。
6.图3a是根据一些具体实施的多相机架构的示意图。
7.图3b是根据一些具体实施的翘曲后遮挡的示意图。
8.图3c是根据一些具体实施的用于图3a中的多相机架构的内在参数库的示例性数据结构的框图。
9.图4a示出了根据一些具体实施的第一示例性图像处理流水线架构的框图。
10.图4b示出了根据一些具体实施的第二示例性图像处理流水线架构的框图。
11.图5是根据一些具体实施的遮挡面罩生成过程的示意图。
12.图6a和图6b示出了根据一些具体实施的示例性扩散技术。
13.图7是根据一些具体实施的多相机孔填充的方法的流程图表示。
14.图8a和图8b示出了根据一些具体实施的多相机孔填充的方法的流程图表示。
15.图9是根据一些具体实施的示例性控制器的框图。
16.图10是根据一些具体实施的示例性电子设备的框图。
17.根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。


技术实现要素:

18.本文所公开的各种具体实施包括用于多相机孔填充的设备、系统和方法,多相机孔填充得到用户的视场的具有减少数量的孔(例如,遮挡和去遮挡)的近似表示的图像。根据一些具体实施,一种用于多相机孔填充的方法可基于由相应图像传感器捕获的环境的翘
曲图像获得遮挡面罩,其中翘曲图像考虑了用户的眼睛与如上所述的相应图像传感器之间的pov差异。在一些具体实施中,该用于多相机孔填充的方法可基于来自不同于相应图像传感器的其他图像传感器的图像填充遮挡面罩的孔,其中上述图像被归一化以考虑相应图像传感器与其他图像传感器之间的不同内在相机特性。在一些具体实施中,该用于多相机孔填充的方法还可基于扩散和/或羽化过程填充遮挡面罩的孔,其中扩散和/或羽化过程可与考虑深度和/或位移/距离的扩散核相关联。
19.根据一些具体实施,该方法在包括非暂态存储器和一个或多个处理器的计算系统处执行,其中该计算系统通信地耦接到第一图像传感器和第二图像传感器。该方法包括:从第一图像传感器获得环境的第一图像,其中第一图像传感器与第一内在参数相关联;根据角度偏移值对第一图像执行翘曲操作以生成翘曲的第一图像,以便考虑第一图像传感器与电子设备的用户之间的角度差异;基于所翘曲的第一图像确定包括多个孔的遮挡面罩;从第二图像传感器获得环境的第二图像,其中第二图像传感器与第二内在参数相关联;基于第一内在参数与第二内在参数之间的差异来对第二图像进行归一化以产生归一化的第二图像;以及基于归一化的第二图像填充遮挡面罩的第一组一个或多个孔以产生修改的第一图像。
20.根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。
21.根据一些具体实施,一种计算系统包括一个或多个处理器、非暂态存储器、用于与显示设备和一个或多个输入设备(例如,第一图像传感器和第二图像传感器)通信的接口、以及一个或多个程序;一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行本文所述的方法中的任一种方法的操作的指令。根据一些具体实施,一种非暂态计算机可读存储介质具有存储在其中的指令,这些指令当由具有用于与显示设备和一个或多个输入设备(例如,第一图像传感器和第二图像传感器)通信的接口的计算系统的一个或多个处理器执行时,使该计算系统执行或使执行本文所述的方法中的任一种方法的操作。根据一些具体实施,一种计算系统包括一个或多个处理器、非暂态存储器、用于与显示设备和一个或多个输入设备(例如,第一图像传感器和第二图像传感器)通信的接口、以及用于执行或使执行本文所述的方法中的任一种方法的操作的装置。
具体实施方式
22.描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
802.16x、ieee 802.3x等)与电子设备120通信地耦接。在一些具体实施中,控制器110的功能由电子设备120提供。这样,在一些具体实施中,控制器110的部件集成到电子设备120中。
27.在一些具体实施中,电子设备120被配置为向用户150呈现音频和/或视频(a/v)内容。在一些具体实施中,电子设备120被配置为向用户150呈现用户界面(ui)和/或xr环境128。在一些具体实施中,电子设备120包括软件、固件和/或硬件的合适组合。下文参考图3更详细地描述电子设备120。
28.根据一些具体实施,当用户150物理地存在于物理环境105内时,电子设备120向用户150呈现xr体验,其中物理环境105包括处于电子设备120的视场(fov)111内的桌子107。这样,在一些具体实施中,用户150将电子设备120拿在他/她的一只或两只手中。在一些具体实施中,在呈现xr体验时,电子设备120被配置为呈现xr内容(在本文中有时也被称为“图形内容”或“虚拟内容”),包括xr圆柱体109,并使得能够实现显示器122上物理环境105(例如,包括桌子107)的视频透传。例如,包括xr圆柱体109的xr环境128是立体的或三维的(3d)。
29.在一个示例中,xr圆柱体109对应于显示器锁定的内容,使得当fov 111由于电子设备120的平移和/或旋转运动而改变时,xr圆柱体109保持显示在显示器122上的相同位置处。作为另一示例,xr圆柱体109对应于世界锁定的内容,使得当fov 111由于电子设备120的平移和/或旋转运动而改变时,xr圆柱体109保持显示在其原始位置处。因此,在该示例中,如果fov 111不包括原始位置,则xr环境128将不包括xr圆柱体109。例如,电子设备120对应于近眼系统、移动电话、平板电脑、膝上型电脑、可穿戴计算设备等。
30.在一些具体实施中,显示器122对应于使得能够实现物理环境105(包括桌子107)的光学透传的加成显示器。例如,显示器122对应于透明透镜,并且电子设备120对应于用户150佩戴的一副眼镜。因此,在一些具体实施中,电子设备120通过将xr内容(例如,xr圆柱体109)投影到加成显示器上而呈现用户界面,其继而从用户150的角度叠置在物理环境105上。在一些具体实施中,电子设备120通过将xr内容(例如,xr圆柱体109)显示在加成显示器上而呈现用户界面,其继而从用户150的角度叠置在物理环境105上。
31.在一些具体实施中,用户150穿戴电子设备120,诸如近眼系统。因此,电子设备120包括被提供以显示xr内容的一个或多个显示器(例如,单个显示器或每只眼睛一个显示器)。例如,电子设备120包围用户150的fov。在此类具体实施中,电子设备120通过在一个或多个显示器上显示对应于xr环境128的数据或者通过将对应于xr环境128的数据投影到用户150的视网膜上来呈现xr环境128。
32.在一些具体实施中,电子设备120包括显示xr环境128的集成显示器(例如,内置显示器)。在一些具体实施中,电子设备120包括可头戴式壳体。在各种具体实施中,可头戴壳体包括附接区,具有显示器的另一设备可附接到该附接区。例如,在一些具体实施中,电子设备120可附接到可头戴式壳体。在各种具体实施中,可头戴式壳体被成形为形成用于接收包括显示器的另一设备(例如,电子设备120)的接收器。例如,在一些具体实施中,电子设备120滑动/卡扣到可头戴式壳体中或以其他方式附接到该可头戴式壳体。在一些具体实施中,附接到可头戴式壳体的设备的显示器呈现(例如,显示)xr环境128。在一些具体实施中,将电子设备120替换成被配置为呈现xr内容的xr室、壳体或房间,在其中用户150不穿戴电子设备120。
33.在一些具体实施中,控制器110和/或电子设备120使得用户150的xr表示基于来自电子设备120和/或物理环境105内的可选的远程输入设备的移动信息(例如,身体姿态数据、眼睛跟踪数据、手/肢体/手指/末端跟踪数据等)在xr环境128内移动。在一些具体实施中,可选的远程输入设备对应于物理环境105内的固定或可移动的感官设备(例如,图像传感器、深度传感器、红外(ir)传感器、事件相机、麦克风等)。在一些具体实施中,每个远程输入设备被配置为在用户150物理地在物理环境105内时收集/捕获输入数据并且将输入数据提供给控制器110和/或电子设备120。在一些具体实施中,远程输入设备包括麦克风,并且输入数据包括与用户150相关联的音频数据(例如,语音样本)。在一些具体实施中,远程输入设备包括图像传感器(例如,相机),并且输入数据包括用户150的图像。在一些具体实施中,输入数据表征用户150在不同时间的身体姿态。在一些具体实施中,输入数据表征用户150在不同时间的头部姿态。在一些具体实施中,输入数据表征在不同时间与用户150的手相关联的手跟踪信息。在一些具体实施中,输入数据表征用户150的身体部分(诸如他/她的手)的速度和/或加速度。在一些具体实施中,输入数据指示用户150的关节位置和/或关节取向。在一些具体实施中,远程输入设备包括反馈设备,诸如扬声器、灯等。
34.图2是根据一些具体实施的图像捕获架构200的示意图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。根据一些具体实施,图像捕获架构200包括相机220,该相机捕获至少包括相关联的3d世界场景内的3d对象210的图像(例如,相对于图像平面230)。例如,相机220可以是在具有物理环境105的视场111的电子设备120中实现的图像传感器,如本文参考图1所讨论的。
35.如图2所示,图像捕获架构200包括3d世界场景(例如,图1中的物理环境105)中的3d对象210。3d对象与3d世界坐标212:[x
w y
w zw]相关联。图像捕获架构200还包括具有焦点224的相机220(例如,针孔相机等)。相机220与3d相机坐标222:[x
c y
c zc]相关联。图像捕获架构200还包括图像平面230,该图像平面与相机220的焦点224相隔焦距214。图像平面230(或其上的特征)与2d像素坐标232:[u v]相关联。
[0036]
根据一些具体实施,相机220是不具有透镜并且具有单个小孔径(例如,焦点224)的简单相机。光线穿过孔径并且将倒像投影到相机220的相反侧上的图像平面230上。根据一些具体实施,为了易于参考,虚拟图像平面240被示出为在相机220的前面具有3d世界场景的正立图像。
[0037]
相机参数由相机矩阵表示,相机矩阵在下面示出为等式(1)。相机矩阵将3d世界场景映射到图像平面230中。相机矩阵包括外在和内在参数两者。外在参数表示相机220在3d场景中的位置(例如,3d相机坐标222)。内在参数表示相机220的焦点224(例如,光学中心或孔径)和焦距214。换句话讲,相机矩阵用于代表从3d世界坐标212到2d像素坐标232的投影映射。
[0038][0039]
[u v 1]
t
表示2d像素坐标232中的2d点,并且[x
w y
w zw1]
t
表示3d世界坐标212中的3d点位置,其中指数t表示换位算子。两者用齐次坐标的增强符号表达,该增强符号是机器
人和刚体变换中最常见的符号。
[0040]
内在参数由内在矩阵k表示,内在矩阵在下面示出为等式(2)。参数α
x
=f
·mx
和αy=f
·my
表示根据像素的焦距,其中m
x
和my是使像素与距离相关的比例因子,并且f是根据距离的焦距214。γ表示x轴与y轴之间的偏斜系数,并且通常为0。u0和v0表示主点。
[0041][0042]
外在参数由外在矩阵[r t]表示,外在矩阵在下面示出为等式(3)。r
3x3
有时称为旋转矩阵,并且t
3x1
有时称为平移向量。[r t]涵盖外在参数,这些外在参数代表从3d世界坐标212到3d相机坐标222的坐标系变换。换句话讲,外在参数定义了相机中心的位置和相机在3d世界坐标212中的朝向。t对应于以相机为中心的坐标系的坐标表示的世界坐标系的原点的位置。
[0043][0044]
因此,根据一些具体实施,基于与三个旋转自由度(dof)和三个平移dof相关联的外在参数(例如,外在矩阵[r t]),存在从3d世界坐标212到3d相机坐标222(或反之亦然)的刚性3d到3d变换252。根据一些具体实施,基于与相机220相关联的内在参数(例如,内在矩阵k),存在从一组相机坐标222到2d像素坐标232(或反之亦然)的投影3d到2d变换254。本领域普通技术人员将理解图2中的图像捕获架构200和其解释可适于下面参考图3a描述的多相机架构300的方式。
[0045]
图3a是根据一些具体实施的多相机架构300的示意图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,多相机架构300对应于具有多个图像传感器的近眼系统305,包括左侧主(面向前的)相机310(有时也称为“mcam
l”)、右侧(面向前的)主相机320(有时也称为“mcam
r”)、左侧面向侧面的(外围)相机330(有时也称为“scam
l”)、右侧面向侧面的(外围)相机340(有时也称为“scam
r”)、左侧面向下的相机350(有时也称为“dcam
l”)和右侧面向下的相机360(有时也称为“dcam
r”)。作为一个示例,图1和图10中的电子设备120可对应于近眼系统305。
[0046]
如图3a所示,近眼系统305的多个图像传感器中的每个图像传感器捕获环境(例如,物理环境、部分xr环境、完全xr环境等)的图像。在该示例中,左侧主(面向前的)相机310根据其内在参数(例如,2616x 2136分辨率)捕获环境的图像312,并且右侧主(面向前的)相机320根据其内在参数(例如,872x 712分辨率)捕获环境的图像322。
[0047]
继续该示例,左侧面向侧面的相机330根据其内在参数(例如,1280x1280分辨率)捕获环境的图像332,并且右侧面向侧面的相机340根据其内在参数(例如,1280x 1280分辨率)捕获环境的图像342。此外,继续该示例,左侧面向下的相机350根据其内在参数(例如,1280x 1280分辨率)捕获环境的图像352,并且右侧面向下的相机360根据其内在参数(例如,1280x 1280分辨率)捕获环境的图像362。近眼系统305的多个图像传感器的内在参数在下面参考图3c更详细地描述。本领域普通技术人员将理解,图3a中的近眼系统305的图像传感器的数量和位置仅仅是示例,并且在其他具体实施中可以是不同的。
[0048]
图3b是根据一些具体实施的翘曲后遮挡的示意图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,图3b示出了由mcam
l 310捕捉的环境的图像390,该图像包括障碍物391(例如,桌面或其他平坦表面)和位于障碍物391上方的第一对象393。图3b还示出了从用户150的左眼角度观察的环境的代表性图像392,该图像包括障碍物391、位于障碍物391上方的第一对象393以及位于障碍物391下方的第二对象395。因此,例如,由于mcam
l 310与用户150的左眼的pov之间的偏移/差异,图像390不包括位于障碍物391下方的第二对象395。
[0049]
因此,将来自相应mcam(例如,与左眼相关联的mcam
l 310)的图像进行翘曲以考虑上述pov差异,从而为用户150提供更舒适的体验。然而,该翘曲操作可在来自相应mcam的翘曲图像中引入孔。作为一个示例,图3b还示出了对应于图像390的翘曲版本的翘曲图像394。如图3b所示,翘曲图像394包括遮挡区域397。在一些具体实施中,对翘曲图像394执行孔填充和/或扩散过程以填充或完成遮挡区域397,这将在下面参考图4a和图4b更详细地描述。
[0050]
图3c是根据一些具体实施的用于图3a中的多相机架构300的内在参数库431的示例性数据结构的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,内在参数库431包括主mcam
l 310、辅助mcam
r 320、scam 330和scam340以及dcam 350和dcam360中的每一者的以下参数的值:平移坐标372、旋转坐标374、分辨率376、通道378、视场(fov)380、帧速率382以及帧延迟384。
[0051]
如图3c所示,主mcam
l 310分别与平移坐标372、旋转坐标374、分辨率376、通道378、fov 380、帧速率382以及帧延迟384内在参数的值373a、375a、377a(例如,2616x 2136)、379a(例如,rgb)、381a(例如,109x 89)、383a(例如,90fps)以及385a(例如,约0ms)相关联。
[0052]
如图3c所示,辅助mcam
r 320与平移坐标372、旋转坐标374、分辨率376、通道378、fov 380、帧速率382以及帧延迟384内在参数的值373b、375b、377b(例如,872x 712)、379b(例如,ycc)、381b(例如,109x 89)、383b(例如,30-45fps)以及385b(例如,约1-2ms)分别相关联。
[0053]
如图3c所示,scam 330和scam 340与平移坐标372、旋转坐标374、分辨率376、通道378、fov 380、帧速率382以及帧延迟384内在参数的值373c、375c、377c(例如,1280x 1280)、379c(例如,灰度)、381c(例如,160x 160)、383c(例如,30-45fps)以及385c(例如,约1-2ms)分别相关联。
[0054]
如图3c所示,dcam 350和dcam 360与平移坐标372、旋转坐标374、分辨率376、通道378、fov 380、帧速率382以及帧延迟384内在参数的值373d、375d、377d(例如,1280x 1280)、379d(例如,灰度)、381d(例如,160x 160)、383d(例如,30-45fps)以及385d(例如,约1-2ms)分别相关联。
[0055]
本领域普通技术人员将理解,前述值和参数的值仅仅是示例,并且在其他具体实施中可以是不同的。本领域普通技术人员将理解,图3c是针对用户150的第一眼(例如,左眼),从图4a中的第一图像处理流水线架构400的角度来描述的。为此,本领域普通技术人员将理解,针对用户150的第二眼(例如,右眼)切换mcam用于图4b中的第二图像处理流水线架
构475,其中mcam
r 320作为主mcam并且mcam
l 310作为辅助mcam。
[0056]
图4a示出了根据一些具体实施的第一示例性图像处理流水线架构400的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,第一图像处理流水线架构400对应于用户150的第一眼(例如左眼)的第一显示器
l 482。
[0057]
如图4a所示,来自mcam
l 310的图像312馈送到翘曲引擎410。在一些具体实施中,翘曲引擎410对来自mcam
l 310的图像312执行翘曲操作/技术(例如,密集深度重新投影等),以生成第一翘曲图像412。例如,第一翘曲图像412考虑用户的眼睛(例如左眼)的平移/旋转坐标与mcam
l 310的平移/旋转坐标之间的偏移/差异。
[0058]
如图4a所示,遮挡面罩生成器420基于第一翘曲图像412和与mcam
l 310和用户150的第一眼(例如左眼)中的至少一者相关的深度信息404来确定/生成遮挡面罩422。根据一些具体实施,遮挡面罩422指示第一翘曲图像412中的孔。在一些情况下,翘曲过程相对于物理环境中的物理对象生成遮挡和去遮挡。具体地,去遮挡是有问题的,因为去遮挡是翘曲图像中先前从原始pov不可见但现在因为pov改变也改变了相对于遮挡物理对象等的位置而“可见”的区域。这有效地形成要填充的“孔”。例如,遮挡面罩生成过程在下面参考图5更详细地描述。
[0059]
如图4a所示,来自mcam
r 320的图像322、来自scam
l 330的图像332、来自scam
r 340的图像342、来自dcam
l 350的图像352以及来自dcam
r 360的图像362馈送到归一化引擎430。在一些具体实施中,归一化引擎430基于mcam
l 310与相应图像传感器的内在参数之间的差异对上述图像322、332、342、352和362中的每一个图像进行归一化,从而产生一组归一化的图像432。在一些具体实施中,归一化引擎430从内在参数库431获得(例如,接收或检索)各种图像传感器的内在参数。
[0060]
如图4a所示,孔填充引擎440基于一组归一化的图像432中的至少一个图像来填充遮挡面罩422的孔,以产生修改的第一图像442。如图4a所示,扩散引擎450使用扩散核对经修改的第一图像442执行逐像素扩散过程,以填充遮挡掩模422的另外的孔,以生成经扩散的第一图像456。在一些具体实施中,逐像素核确定器452根据深度信息404基于受试者像素的深度确定/生成扩散核。在一些具体实施中,逐像素核确定器452基于关于受试者像素是否在聚焦区域内的确定来确定/生成扩散核,其中聚焦区域至少部分地基于凝视方向402来确定。在一些具体实施中,羽化器454对与逐像素扩散过程相关联的像素执行羽化操作,以便平滑其中的不连续性。
[0061]
如图4a所示,渲染器462相对于来自相机姿态确定器466的当前相机姿态渲染来自虚拟内容库463的xr内容465。在一些具体实施中,渲染器462向孔填充引擎440提供渲染的xr内容465的位置的指示461。在一些具体实施中,孔填充引擎440基于指示461识别翘曲的第一图像412中将被xr内容覆盖的多个像素,并放弃填充与所识别的多个像素相关联的孔。
[0062]
如图4a所示,合成器464至少部分地基于深度信息404(例如,以保持z轴次序)将渲染的xr内容465与扩散的第一图像456合成以生成xr环境的渲染帧467。继而,用户150的第一眼(例如左眼)的第一显示器
l
482显示xr环境的渲染帧467。在一些具体实施中,合成器464获得(例如,接收、检索、确定/生成或以其他方式访问)与场景(例如,图1中的物理环境
105)相关联的深度信息404(例如,点云、深度网格等)以保持渲染的xr内容与物理环境中的物理对象之间的z轴次序。
[0063]
图4b示出了根据一些具体实施的第二示例性图像处理流水线架构475的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,第二图像处理流水线架构475对应于用户150的第二眼(例如,右眼)的第二显示器
r 484。图4b中的第二图像处理流水线架构475类似于图4a中的第一图像处理流水线架构400并且从中改编。因此,本文使用类似的参考标号,并且为了简洁起见,将仅描述它们之间的不同之处。
[0064]
如图4b所示,来自mcam
r 320的图像322馈送到翘曲引擎410。在一些具体实施中,翘曲引擎410对来自mcam
r 320的图像322执行翘曲操作/技术(例如,密集深度重新投影等),以生成第一翘曲图像412。例如,第一翘曲图像考虑用户的眼睛(例如,右眼)的平移/旋转坐标与mcam
r 320的平移/旋转坐标之间的偏移/差异。
[0065]
如图4b所示,来自mcam
l 310的图像312、来自scam
l 330的图像332、来自scamr的图像342、来自dcam
l 350的图像352以及来自dcamr的图像362馈送到归一化引擎430。在一些具体实施中,归一化引擎430基于mcam
r 320与相应图像传感器的内在参数之间的差异对上述图像312、332、342、352和362中的每个图像进行归一化,从而产生一组归一化的图像432。在一些具体实施中,归一化引擎430从内在参数库431获得(例如,接收或检索)各种图像传感器的内在参数。
[0066]
如图4b所示,合成器464至少部分地基于深度信息404将渲染的xr内容465与扩散的第一图像456合成(例如,以便保持z次序)以生成xr环境的渲染帧467。继而,用户150的第二眼(例如右眼)的第二显示器r484显示xr环境的渲染帧467。
[0067]
图5是根据一些具体实施的遮挡面罩生成过程的示意图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。
[0068]
如图5所示,2d眼平面520中的点(xe,ye)可基于下面的方程(4)变换成2d相机平面510中的点(xc,yc)。
[0069][0070]
在等式(4)中,和是4x4投影矩阵,该投影矩阵将投影空间中的3d场景点分别映射到相机和眼睛像素。本领域普通技术人员将理解等式(4)-(6)与上文关于图2描述的变换252和254相关的方式。
[0071]
因此,在该示例中,遮挡面罩基于相对于相机平面510和眼平面520两者的已知深度值生成。更详细地,根据一些具体实施,如果眼像素(xe,ye)的深度与对应相机像素(xc,
yc)处的可见深度之间的差异太大,则该眼像素可被标记为遮挡。验证这一点的一种方法是执行由下面的等式(5)和(6)概述的往返检查。
[0072][0073]

[0074][0075]
其中τ对应于像素距离阈值。
[0076]
本领域普通技术人员将理解,在一些具体实施中,遮挡面罩还可基于相对于相机平面510和眼平面520中的一个平面的深度值来生成。换句话讲,在一些情况下,深度(,)和深度(,)中的一个深度是已知的。
[0077]
图6a和图6b示出了根据一些具体实施的示例性扩散技术。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。
[0078]
根据一些具体实施,如图6a所示,扩散核602(例如,其大小和权重)至少部分地基于扩散核中的像素深度以及受试者像素到参考像素的距离。例如,以这种方式,前景内的像素与较小的扩散核相关联,以获得更高的分辨率。如图6a所示,扩散核602是3x3矩阵。在该示例中,x0是扩散核602的中心中的参考像素,该像素被填充与扩散核602相关联的3x3矩阵(有时也称为ω
3x3
)的其他像素x
i,j
包围。
[0079]
使用如下面等式(7)定义的邻域权重函数,将权重w(x)分配给扩散核602中的每个像素。
[0080]
w(x,x0)=ws(x,x0)
·
wd(深度(x),深度(x0))
ꢀꢀꢀ
(7)
[0081]
等式(7)中的邻域权重函数可被分成对应于等式(8)的深度加权函数和对应于等式(9)的空间加权函数。
[0082]
wd(深度(x),深度(x0))=深度(x)
p
ꢀꢀꢀ
(8)
[0083][0084]
在等式(8)中,p是在深度值较大(例如,当p》》1时)的情况下对背景赋予更多权重的指数。在等式(9)中,σs表示相对于扩散核602的中心的标准偏差。因此,根据图6a所示的反距离函数604,离参考像素x0较远的像素被给予较低的权重。此外,参考像素x0的所得值可由下面的等式(10)定义。
[0085][0086]
在等式(10)中,ωi表示当前迭代邻域,而ω0包括未遮挡像素,但在每次迭代时通过扩散核602逐渐填充。因此,在一些具体实施中,扩散过程实质上是迭代的,并且在每次迭
代时用变化的像素邻域逐渐填充被遮挡的区域。
[0087]
根据一些具体实施,如图6b所示,至少部分地基于焦点/区域确定来对扩散核(例如,其大小和权重)进行凹化。为此,系统基于凝视方向来识别图像650的聚焦区域652并使聚焦区域652内的像素的权重高于图像650的平衡654中的像素。因此,可以较高分辨率对聚焦区域652内的像素执行扩散。
[0088]
例如,聚焦区域652内的参考像素x0可与扩散核ω
+
相关联,并且聚焦区域652外的像素可与扩散核ω-相关联。在一些具体实施中,扩散核ω
+
可以具有比扩散核ω^-更高分辨率的色彩执行,扩散核ω-可以具有亮度值的较低分辨率执行。
[0089]
因此,以下一组方程(11)考虑了在凹化扩散过程期间图像650的整体处理。
[0090][0091]
i(x)=(f(x)
·
ω
+
)+((1-f(x))
·
ω-)
[0092]
在等式(11)中,σe表示相对于被定义为x
gaze
的凝视方向的标准偏差。
[0093]
图7是根据一些具体实施的多相机孔填充的方法700的流程图表示。在各种具体实施中,方法700由包括非暂态存储器和一个或多个处理器的计算系统执行,其中该计算系统通信地耦接到第一图像传感器和第二图像传感器(例如,图1和图9中的控制器110;图1和图10中的电子设备120;或其合适的组合)或其部件。例如,电子设备对应于图3a中具有一个或多个面向前的mcam、一个或多个面向侧面的scam和/或一个或多个面向下的dcam的近眼系统305。在一些具体实施中,方法700由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。在各种具体实施中,方法700中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。
[0094]
如上所述,在一些情况下,近眼系统(例如,具有物理环境的视频透传)可包括多个面向外部的图像传感器(即,相机),诸如一个或多个面向前的相机(mcam)、一个或多个面向侧面的相机(scam)和/或一个或多个面向下的相机(dcam),这些相机可与不同的内在相机特性(例如,分辨率、帧速率、视场(fov)、帧延迟、色彩空间等)相关联。作为第一问题,面向前的图像传感器和近眼系统的用户的视点(pov)是不同的,例如,面向前的图像传感器比用户的pov更靠近物理环境并且可从用户的眼睛的位置偏移。因此,将来自(例如,与左眼相关联的)相应mcam的图像进行翘曲以考虑上述pov差异,从而为用户提供更舒适的体验。然而,该翘曲过程可在来自相应mcam的翘曲图像中引入孔(例如,包括遮挡和去遮挡)。翘曲过程相对于物理环境中的物理对象生成遮挡和去遮挡。具体地,去遮挡是有问题的,因为去遮挡是翘曲图像中先前从原始pov不可见但现在因为pov改变也改变了相对于遮挡物理对象等的位置而“可见”的区域。这有效地形成要填充的“孔”。
[0095]
因此,如本文所述,在一些具体实施中,来自(例如,与右眼相关联的)另一个mcam、scam和dcam的图像可用于填充孔,但是被归一化以考虑不同的内在相机特性。最后,可对来自另一个mcam的图像执行扩散和羽化过程以填充任何剩余的孔,其中扩散和羽化过程基于考虑深度和/或位移/距离的扩散核。
[0096]
如框7-1所示,方法700包括从与第一内在相机参数相关联的第一图像传感器获得环境的第一图像。例如,参考图3a-图3c,左侧主(面向前的)相机310根据其内在参数(例如,
2616x 2136分辨率)捕获环境的图像312。在一些具体实施中,第一内在相机参数包括第一分辨率、第一fov、第一帧速率、第一帧延迟、第一色彩空间等。在一些具体实施中,环境对应于物理环境、部分xr环境、完全xr环境等。
[0097]
如框7-2所示,方法700包括对第一图像执行翘曲操作以生成翘曲的第一图像。例如,参考图4a,翘曲引擎410对来自mcaml 310的图像312执行翘曲操作/技术(例如,密集深度重新投影等),以生成第一翘曲图像412。例如,第一翘曲图像考虑用户的眼睛(例如,左眼)的平移/旋转坐标与mcam
l 310的平移/旋转坐标之间的偏移/差异。在一些具体实施中,翘曲操作对应于密集深度重新投影。根据一些具体实施,翘曲操作考虑第一图像传感器的pov与用户的相关联眼睛的pov之间的旋转和/或平移偏移。
[0098]
如框7-3所示,方法700包括基于翘曲的第一图像确定遮挡面罩。在一些具体实施中,遮挡面罩包括多个孔。例如,参考图4a,遮挡面罩生成器420基于第一翘曲图像412和与mcam
l 310和用户150的第一眼(例如,左眼)中的至少一者相关的深度信息404来确定/生成遮挡面罩422。根据一些具体实施,遮挡面罩422指示第一翘曲图像412中的孔。例如,遮挡面罩生成过程在上面参考图5更详细地描述。在一些具体实施中,遮挡面罩至少部分地基于相对于与第一图像传感器相关联的第一角度的第一组深度值和相对于与第二图像传感器相关联的第二角度的第二组深度值来确定,第二角度不同于第一角度。例如,第二角度对应于设备的用户的眼睛。
[0099]
如框7-4所示,方法700包括从与第二内在相机参数相关联的第二图像传感器获得环境的第二图像。例如,参考图3a-图3c,右侧主(面向前的)相机320根据其内在参数(例如,872x 712分辨率)捕获环境的图像322。在一些具体实施中,第二内在相机参数包括第二分辨率、第二fov、第二帧速率、第二帧延迟、第二色彩空间等。作为一个示例,第一内在参数和第二内在参数包括至少一个类似的分辨率、fov、帧速率、帧延迟或色彩空间。作为另一示例,第一内在参数和第二内在参数包括相互排斥的分辨率、fov、帧速率、帧延迟和色彩空间。
[0100]
如框7-5所示,方法700包括基于第一内在相机参数与第二内在相机参数之间的差异来对第二图像进行归一化以生成归一化的第二图像。例如,参考图4a,归一化引擎430基于mcam
l 310的内在参数与mcam
r 320的内在参数之间的差异对来自右侧主(面向前的)相机320的图像322归一化,以便产生第二归一化的图像。在一些具体实施中,归一化引擎430从内在参数库431获得(例如,接收或检索)各种图像传感器的内在参数。在一些具体实施中,归一化第二图像对应于使用引导或联合双边滤波器的线性上采样。在一些具体实施中,归一化第二图像对应于使用引导或联合双边滤波器的线性下采样。
[0101]
如框7-6所示,方法700包括基于归一化的第二图像填充遮挡面罩中的孔。例如,参考图4a,孔填充引擎440基于归一化的第二图像填充遮挡面罩422的第一组一个或多个孔,以产生修改的第一图像442。
[0102]
在一些具体实施中,方法700包括跳过遮挡面罩中被指定要被虚拟内容覆盖的像素的孔填充。例如,参考图4a,孔填充引擎440基于指示461识别翘曲的第一图像412中将被xr内容覆盖的多个像素,并放弃填充与多个像素相关联的孔。
[0103]
在一些具体实施中,如框7-7所示,方法700包括使用扩散核在逐像素基础上执行扩散过程以填充孔。例如,参考图4a,扩散引擎450使用扩散核对修改的第一图像442执行逐
像素扩散过程,以填充遮挡面罩422的第二组一个或多个孔,以生成扩散的第一图像456。根据一些具体实施,第一组一个或多个孔和第二组一个或多个孔可与相互排斥的孔相关联。根据一些具体实施,第一组一个或多个孔和第二组一个或多个孔可与至少一些类似/重叠的孔相关联。
[0104]
在一些具体实施中,如框7-7a所示,方法700包括基于逐像素深度修改扩散核(例如,其大小和权重)。例如,参考图4a,逐像素核确定器452根据深度信息404基于受试者像素的深度确定/生成扩散核。因此,前景内的像素与较小的扩散核相关联,以获得更高的分辨率。基于深度和/或位移/距离的扩散核的动态生成在上面参考图6a更详细地描述。
[0105]
在一些具体实施中,如框7-7b所示,方法700包括基于与凝视方向相关联的逐像素聚焦区域确定来修改扩散核(例如,其大小和权重)。因此,聚焦区域内的像素与较小的扩散核相关联,以获得更高的分辨率。例如,参考图4a,逐像素核确定器452基于关于受试者像素是否在聚焦区域内的确定来确定/生成扩散核,其中聚焦区域至少部分地基于凝视方向402来确定。凹化扩散在上面参考图6b更详细地描述。
[0106]
在一些具体实施中,如框7-7c所示,方法700包括执行羽化操作。例如,参考图4a,羽化器454对与逐像素扩散过程相关联的像素执行羽化操作,以便平滑其中的不连续性。
[0107]
图8a和图8b示出了根据一些具体实施的多相机孔填充的方法800的流程图表示。在各种具体实施中,方法800由包括非暂态存储器和一个或多个处理器的计算系统执行,其中该计算系统通信地耦接到第一图像传感器和第二图像传感器(例如,图1和图9中的控制器110;图1和图10中的电子设备120;或其合适的组合)或其部件。例如,电子设备对应于图3a中具有一个或多个面向前的mcam、一个或多个面向侧面的scam和/或一个或多个面向下的dcam的近眼系统305。在一些具体实施中,方法800由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法800由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。在各种具体实施中,方法800中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。
[0108]
如上所描述,在一些情况下,近眼系统(例如,具有物理环境的视频透传)可包括多个面向外部的图像传感器(即,相机),诸如一个或多个mcam、一个或多个scam和/或一个或多个dcam,这些相机可与不同的内在相机特性(例如,分辨率、帧速率、视场(fov)、帧延迟、色彩空间等)相关联。作为第一问题,面向前的图像传感器和近眼系统的用户的pov是不同的,例如,面向前的图像传感器比用户的pov更靠近物理环境并且可从用户的眼睛的位置偏移。因此,将来自(例如,与左眼相关联的)相应mcam的图像进行翘曲以考虑上述pov差异,从而为用户提供更舒适的体验。然而,该翘曲过程可在来自相应mcam的翘曲图像中引入孔。因此,如本文所述,在一些具体实施中,来自(例如,与右眼相关联的)另一个mcam、scam和dcam的图像可用于填充孔,但是被归一化以考虑不同的内在相机特性。
[0109]
如框8-1所示,在图8a中,方法800包括从第一mcam获得环境的第一图像。例如,参考图4a,mcam
l 310捕获环境的图像312。
[0110]
如框8-2所示,方法800包括对来自第一mcam的第一图像执行翘曲操作以生成翘曲的第一图像。例如,参考图4a,翘曲引擎410对来自mcaml 310的图像312执行翘曲操作/技术(例如,密集深度重新投影等),以生成第一翘曲图像412。
[0111]
如框8-3所示,方法800包括基于翘曲的第一图像确定遮挡面罩。例如,参考图4a,
遮挡面罩生成器420基于第一翘曲图像412和与mcam
l 310和用户150的第一眼(例如,左眼)中的至少一者相关的深度信息404来确定/生成遮挡面罩422。根据一些具体实施,遮挡面罩422指示第一翘曲图像412中的孔。例如,遮挡面罩生成过程在上面参考图5更详细地描述。
[0112]
如框8-4所示,方法800包括从第二mcam获得环境的第二图像。例如,参考图4a,mcam
r 320捕获环境的图像322。
[0113]
如框8-5所示,方法800包括基于第一mcam与第二mcam之间的内在相机参数的差异来对来自第二mcam的第二图像进行归一化以生成归一化的第二图像。例如,参考图4a,归一化引擎430基于mcam
l 310与mcam
r 320的内在参数之间的差异来对图像322进行归一化,以产生归一化的第二图像。
[0114]
如框8-6所示,方法800包括基于归一化的第二图像填充遮挡面罩中的孔。例如,参考图4a,孔填充引擎440基于归一化的第二图像填充遮挡面罩422的孔。
[0115]
如框8-7所示,方法800包括确定是否满足孔填充标准。在一些具体实施中,当遮挡面罩中的至少阈值百分比(例如,75%、90%、99.99%等)的孔已经被填充时,满足孔填充标准。如果满足孔填充标准,则方法800继续到框8-13。然而,如果不满足孔填充标准,则方法800继续到框8-8。
[0116]
如框8-8所示,在图8b中,方法800包括从一个或多个scam和/或一个或多个dcam获得环境的图像。例如,参考图4a,scam
l 330捕获环境的图像332,scam
r 340捕获环境的图像342,dcam
l 350捕获环境的图像352,和/或dcam
r 360捕获环境的图像362。
[0117]
在一些具体实施中,基于图像处理流水线对来自一个或多个scam和/或一个或多个dcam的图像进行优先级排序(或加权)。例如,如果图像处理流水线对应于用户150的右眼(例如,如图4b所示),则mcam
r 320对应于主mcam并且mcam
l 310对应于辅助mcam。此外,在该示例中,来自scam
r 340和dcam
r 360的图像可比来自scam
l 330和dcam
l 350的图像优先(或权重更重)。
[0118]
如框8-9所示,方法800包括基于第一mcam与一个或多个scam和/或一个或多个dcam之间的内在相机参数的差异来对来自一个或多个scam和/或一个或多个dcam的图像进行归一化,以生成一个或多个归一化的图像。例如,参考图4a,归一化引擎430基于mcam
l 310与scam
l 330,scam
r 340,dcam
l 350和/或dcam
r 360的内在参数之间的差异对图像332、342、352和/或362中的至少一些图像进行归一化,以产生一个或多个归一化的图像。
[0119]
如框8-10所示,方法800包括基于来自框8-9的一个或多个归一化图像中的至少一些图像来填充遮挡面罩中的孔。例如,参考图4a,孔填充引擎440基于一个或多个归一化图像填充遮挡面罩422的孔。
[0120]
如框8-11所示,方法800包括确定是否满足孔填充标准。在一些具体实施中,当遮挡面罩中的至少阈值百分比(例如,75%、90%、99.99%等)的孔已经被填充时,满足孔填充标准。如果满足孔填充标准,则方法800继续到框8-13。然而,如果不满足孔填充标准,则方法800继续到框8-12。
[0121]
如框8-12所示,方法800包括在逐像素的基础上执行扩散和羽化过程以填充附加孔。例如,参考图4a,扩散引擎450使用扩散核对修改的第一图像442执行逐像素扩散过程,以填充遮挡面罩422的附加孔,以生成扩散的第一图像456。
[0122]
如框8-13所示,方法800包括基于当前相机姿态渲染虚拟内容。例如,参考图4a,渲
染器462根据来自相机姿态确定器466的相对于来自虚拟内容库463的xr内容的当前相机姿态来渲染来自虚拟内容库的xr内容。
[0123]
如框8-14所示,方法800包括将环境的孔填充的图像与渲染的虚拟内容合成。例如,参考图4a,合成器464至少部分地基于深度信息404将渲染的xr内容465与扩散的第一图像456合成(例如,以保持z次序)以生成xr环境的渲染帧467。
[0124]
在一些具体实施中,如框8-15所示,方法800可选的包括呈现来自框8-14的合成内容或导致其呈现。例如,参考图4a,用户150的第一眼(例如,左眼)的第一显示器
l 482显示xr环境的渲染帧467。本领域普通技术人员将理解,图4a中的第一图像处理流水线架构400对应于用户150的第一眼(例如,左眼)的第一显示器
l 482,并且用于用户的第二眼(例如,右眼)的图像处理流水线架构可并行执行(例如,如图4b所示)。
[0125]
图9是根据一些具体实施的控制器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,控制器110包括一个或多个处理单元902(例如,微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、中央处理单元(cpu)、处理内核和/或类似处理单元)、一个或多个输入/输出(i/o)设备906、一个或多个通信接口908(例如,通用串行总线(usb)、ieee 802.3x、ieee 802.11x、ieee 802.16x、全球移动通信系统(gsm)、码分多址(cdma)、时分多址(tdma)、全球定位系统(gps)、红外(ir)、蓝牙、zigbee和/或类似类型的接口)、一个或多个编程(例如,i/o)接口910、存储器920以及用于互连这些部件和各种其他部件的一条或多条通信总线904。
[0126]
在一些具体实施中,该一条或多条通信总线904包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个i/o设备906包括键盘、鼠标、触控板、触摸屏、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种设备。
[0127]
存储器920包括高速随机存取存储器,诸如动态随机存取存储器(dram)、静态随机存取存储器(sram)、双倍数据速率随机存取存储器(ddr ram)或者其他随机存取固态存储器设备。在一些具体实施中,存储器920包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器920可选地包括与一个或多个处理单元902远程定位的一个或多个存储设备。存储器920包括非暂态计算机可读存储介质。在一些具体实施中,存储器920或存储器920的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统930和呈现模块940。
[0128]
操作系统930包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。
[0129]
在一些具体实施中,呈现架构940被配置为渲染、呈现和修改xr环境。为此,在一些具体实施中,呈现架构940包括数据获得器942、映射器和定位器引擎944、翘曲引擎410、遮挡面罩生成器420、归一化引擎430、孔填充引擎440、扩散引擎450、渲染引擎460、数据发射器982。
[0130]
在一些具体实施中,数据获得器942被配置为从控制器110的i/o设备906、电子设备120、和可选的远程输入设备中的至少一者获得数据(例如,捕获的物理环境105的图像
帧、呈现数据、输入数据、用户交互数据、相机姿态跟踪信息、眼睛跟踪信息、头部/身体姿态跟踪信息、手部/肢体跟踪信息、传感器数据、位置数据等)。为此,在各种具体实施中,数据获得器942包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0131]
在一些具体实施中,翘曲引擎410被配置为对来自与第一内在参数相关联的第一图像传感器(例如,图3a-图3c中的主mcam
l
)的环境的第一图像执行翘曲操作/技术(例如,密集深度重新投影等),以生成第一翘曲图像。例如,第一翘曲图像考虑用户的眼睛(例如,左眼)的平移/旋转坐标与第一图像传感器的平移/旋转坐标之间的偏移/差异。为此,在各种具体实施中,翘曲引擎410包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0132]
在一些具体实施中,遮挡面罩生成器420被配置为基于第一翘曲图像获得(例如,接收、检索或确定/生成)指示第一翘曲图像中的孔的遮挡面罩。例如,遮挡面罩生成过程在上面参考图5更详细地描述。为此,在各种具体实施中,遮挡面罩生成器420包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0133]
在一些具体实施中,归一化引擎430被配置为基于第一内在参数与第二内在参数之间的差异来对来自与第二内在参数相关联的第二图像传感器的环境的第二图像进行归一化,以产生归一化的第二图像。在一些具体实施中,归一化引擎430还被配置为对来自其他图像传感器(例如,图3a-图3c中的scam 330和scam 340以及dcam 350和dcam 360)的环境的图像进行归一化。为此,在各种具体实施中,归一化引擎430包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0134]
在一些具体实施中,内在参数库431包括各种图像传感器的内在参数。在一些具体实施中,内在参数库431本地和/或远程存储。在一些具体实施中,通过轮询各种图像传感器来预先填充或即时填充内在参数库431。例如,内在参数库431在上面参考图3c更详细地描述。
[0135]
在一些具体实施中,孔填充引擎440被配置为基于归一化的第二图像填充遮挡面罩的第一组一个或多个孔以产生修改的第一图像。在一些具体实施中,孔填充引擎440还被配置为基于与其他图像传感器(例如,图3a-3c中的scam 330和scam 340以及dcam 350和dcam 360)相关联的其他归一化图像来填充遮挡面罩的附加孔。为此,在各种具体实施中,孔填充引擎440包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0136]
在一些具体实施中,扩散引擎450被配置为使用扩散核对经修改的第一图像执行逐像素扩散过程,以填充遮挡掩模的第二组一个或多个孔。为此,在各种具体实施中,扩散引擎450包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。在一些具体实施中,扩散引擎450包括逐像素核确定器452和羽化器454。
[0137]
在一些具体实施中,逐像素核确定器452被配置为基于受试者像素的深度获得(例如,接收、检索或确定/生成)扩散核。在一些具体实施中,逐像素核确定器452被配置为基于关于受试者像素是否在聚焦区域内的确定来获得(例如,接收、检索或确定/生成)扩散核,其中聚焦区域至少部分地基于凝视方向来确定。为此,在各种具体实施中,逐像素核确定器452包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0138]
在一些具体实施中,羽化器454被配置为对与逐像素扩散过程相关联的像素执行
羽化操作,以便平滑其中的不连续性。为此,在各种具体实施中,羽化器454包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0139]
在一些具体实施中,渲染引擎460被配置为渲染xr环境。为此,在各种具体实施中,渲染引擎460包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。在一些具体实施中,渲染引擎460包括渲染器462、合成器464和相机姿态确定器466。
[0140]
在一些具体实施中,渲染器462被配置为根据相对于虚拟内容库463的当前相机姿态来渲染来自虚拟内容库的xr内容。为此,在各种具体实施中,渲染器462包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0141]
在一些具体实施中,虚拟内容库463包括多个xr对象、项目、场景等。在一些具体实施中,虚拟内容库463本地和/或远程存储。在一些具体实施中,预先填充虚拟内容库463。
[0142]
在一些具体实施中,合成器464被配置为将渲染的xr内容与修改的第一图像合成。在一些具体实施中,合成器464获得(例如,接收、检索、确定/生成或以其他方式访问)与场景(例如,图1中的物理环境105)相关联的深度信息(例如,点云、深度网格等)以保持所渲染的xr内容与物理环境中的物理对象之间的z轴次序。为此,在各种具体实施中,合成器464包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0143]
在一些具体实施中,相机姿态确定器466被配置为确定电子设备120和/或用户150相对于xr内容的当前相机姿态。为此,在各种具体实施中,相机姿态确定器466包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0144]
在一些具体实施中,数据发射器982被配置为至少向电子设备120发射数据(例如,呈现数据诸如与xr环境相关联的渲染的图像帧、位置数据等)。为此,在各种具体实施中,数据发射器982包括指令和/或用于指令的逻辑部件以及启发法和用于该启发法的元数据。
[0145]
尽管数据获得器942、映射器和定位器引擎944、翘曲引擎410、遮挡面罩生成器420、归一化引擎430、孔填充引擎440、扩散引擎450、渲染引擎460、数据发射器982被示出为驻留在单个设备(例如,控制器110)上,但应当理解,在其他具体实施中,数据获得器942、映射器和定位器引擎944、翘曲引擎410、遮挡面罩生成器420、归一化引擎430、孔填充引擎440、扩散引擎450、渲染引擎460、数据发射器982的任何组合可位于分开的计算设备中。
[0146]
在一些具体实施中,控制器110的功能和/或部件与下文在图10中所示的电子设备120组合或由其提供。此外,图9预期更多地作为存在于特定具体实施中的各种特征部的功能描述,而不是本文所述具体实施的结构示意。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图9中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
[0147]
图10是根据一些具体实施的电子设备120(例如,移动电话、平板电脑、膝上型电脑、近眼系统、可穿戴计算设备等)的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,电子设备120包括一个或多个处理单元1002(例如,微处理器、asic、fpga、gpu、cpu、处理核心和/或类似
处理单元)、一个或多个输入/输出(i/o)设备及传感器1006、一个或多个通信接口1008(例如,usb、ieee 802.3x、ieee 802.11x、ieee 802.16x、gsm、cdma、tdma、gps、ir、bluetooth、zigbee和/或类似类型的接口)、一个或多个编程(例如,i/o)接口1010、一个或多个显示器1012、图像捕获设备1070(例如,一个或多个可选的面向内部和/或面向外部的图像传感器)、存储器1020以及用于互连这些部件和各种其他部件的一条或多条通信总线1004。
[0148]
在一些具体实施中,该一条或多条通信总线1004包括互连系统部件并控制系统部件之间的通信的电路。在一些具体实施中,一个或多个i/o设备和传感器1006包括惯性测量单元(imu)、加速度计、陀螺仪、磁力仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎、加热和/或冷却单元、皮肤剪切引擎、一个或多个深度传感器(例如,结构化光、飞行时间等)、定位和映射引擎、眼睛跟踪引擎、身体/头部姿态跟踪引擎、手部/肢体跟踪引擎、相机姿态跟踪引擎等中的至少一者。
[0149]
在一些具体实施中,一个或多个显示器1012被配置为向用户呈现xr环境。在一些具体实施中,一个或多个显示器1012也被配置为向用户呈现平面视频内容(例如,与电视剧或电影相关联的二维或“平面”avi、flv、wmv、mov、mp4等文件,或物理环境105的实时视频透传)。在一些具体实施中,一个或多个显示器1012对应于触摸屏显示器。在一些具体实施中,一个或多个显示器1012对应于全息、数字光处理(dlp)、液晶显示器(lcd)、硅上液晶(lcos)、有机发光场效应晶体管(olet)、有机发光二极管(oled)、表面传导电子发射器显示器(sed)、场发射显示器(fed)、量子点发光二极管(qd-led)、微机电系统(mems)和/或类似显示器类型。在一些具体实施中,一个或多个显示器1012对应于衍射、反射、偏振、全息等波导显示器。例如,电子设备120包括单个显示器。又如,电子设备120包括针对用户的每只眼睛的显示器。在一些具体实施中,一个或多个显示器1012能够呈现ar和vr内容。在一些具体实施中,一个或多个显示器1012能够呈现ar或vr内容。
[0150]
在一些具体实施中,图像捕获设备1070对应于一个或多个rgb相机(例如,具有互补金属氧化物半导体(cmos)图像传感器或电荷耦合设备(ccd)图像传感器)、ir图像传感器、基于事件的相机等。在一些具体实施中,图像捕获设备1070包括透镜组件、光电二极管和前端架构。在一些具体实施中,电子设备120对应于上文更详细地描述的图3a中的近眼系统305。继而,图像捕获设备1070包括多个图像传感器,诸如左侧主(面向前的)相机310(例如,mcam
l
)、右侧(面向前的)主相机320(例如,mcamr)、左侧面向侧面的(外围)相机330(例如,scam
l
)、右侧面向侧面的(外围)相机340(例如,scamr)、左侧面向下的相机350(例如,dcam
l
)以及右侧面向下的相机360(例如,dcamr)。
[0151]
存储器1020包括高速随机存取存储器,诸如dram、sram、ddr ram或其他随机存取固态存储器设备。在一些具体实施中,存储器1020包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器1020任选地包括与一个或多个处理单元1002远程定位的一个或多个存储设备。存储器1020包括非暂态计算机可读存储介质。在一些具体实施中,存储器1020或存储器1020的非暂态计算机可读存储介质存储以下程序、模块和数据结构或者它们的子集,其中包括可选的操作系统1030和呈现引擎1040。
[0152]
操作系统1030包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。
在一些具体实施中,呈现引擎1040被配置为经由一个或多个显示器1012向用户呈现xr内容(和/或其他内容)。为此,在各种具体实施中,呈现引擎1040包括数据获得器1042、呈现器1044、交互处理器1046和数据发射器1050。
[0153]
在一些具体实施中,数据获得器1042被配置为从电子设备120的i/o设备及传感器1006、控制器110和远程输入设备中的至少一者获得数据(例如,呈现数据,诸如与xr环境相关联的渲染的图像帧、输入数据、用户交互数据、头部跟踪信息、相机姿态跟踪信息、眼睛跟踪信息、传感器数据、位置数据等)。为此,在各种具体实施中,数据获得器1042包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0154]
在一些具体实施中,呈现器1044被配置为经由一个或多个显示器1012呈现和更新xr内容(例如,与xr环境相关联的渲染的图像帧)。为此,在各种具体实施中,呈现器1044包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0155]
在一些具体实施中,交互处理器1046被配置为检测用户与所呈现xr内容的交互。为此,在各种具体实施中,交互处理器1046包括指令和/或用于这些指令的逻辑部件以及启发法和用于该启发法的元数据。
[0156]
在一些具体实施中,数据发射器1050被配置为至少向控制器110发射数据(例如,呈现数据、位置数据、用户交互数据、头部跟踪信息、相机姿态跟踪信息、眼睛跟踪信息等)。为此,在各种具体实施中,数据发射器1050包括指令和/或用于指令的逻辑部件以及启发法和用于该启发法的元数据。
[0157]
尽管数据获得器1042、呈现器1044、交互处理器1046和数据传输器1050被图示成驻留在单个设备(例如,电子设备120)上,但应当理解,在其他具体实施中,数据获得器1042、呈现器1044、交互处理器1046和数据传输器1050的任何组合可位于分开的计算设备中。
[0158]
此外,图10更多地用作存在于特定具体实施中的各种特征部的功能描述,而不是本文所述具体实施的结构示意。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图10中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
[0159]
虽然上文描述了在所附权利要求书范围内的具体实施的各个方面,但是应当显而易见的是,上述具体实施的各种特征可通过各种各样的形式体现,并且上述任何特定结构和/或功能仅是例示性的。基于本公开,本领域的技术人员应当理解,本文所述的方面可以独立于任何其他方面来实现,并且这些方面中的两个或更多个可以采用各种方式组合。例如,可以使用本文阐述的任何数量的方面来实现装置和/或可以实践方法。另外,除了本文阐述的一个或多个方面之外或者不同于本文阐述的一个或多个方面,可以使用其他结构和/或功能来实现这样的装置和/或可以实践这样的方法。
[0160]
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重
命名。第一节点和第二节点都是节点,但它们不是同一个节点。
[0161]
本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
[0162]
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。

技术特征:
1.一种方法,所述方法包括:在包括非暂态存储器和一个或多个处理器的计算系统处,其中所述计算系统通信地耦接到第一图像传感器和第二图像传感器:从所述第一图像传感器获得环境的第一图像,其中所述第一图像传感器与第一内在参数相关联;根据角度偏移值对所述第一图像执行扭曲操作以生成经扭曲的第一图像,以便考虑所述第一图像传感器与所述电子设备的用户之间的角度差异;基于所述经扭曲的第一图像确定包括多个孔的遮挡掩模;从所述第二图像传感器获得所述环境的第二图像,其中所述第二图像传感器与第二内在参数相关联;基于所述第一内在参数与所述第二内在参数之间的差异对所述第二图像进行归一化以产生经归一化的第二图像;以及基于所述经归一化的第二图像填充所述遮挡掩模的第一组一个或多个孔以产生经修改的第一图像。2.根据权利要求1所述的方法,还包括:使用扩散核对所述经修改的第一图像执行逐像素扩散过程,以填充所述遮挡掩模的第二组一个或多个孔。3.根据权利要求2所述的方法,其中所述扩散核至少部分地基于受试者像素的深度。4.根据权利要求2所述的方法,还包括:基于所述电子设备的所述用户的凝视方向确定聚焦区域,并且其中所述扩散核至少部分地基于受试者像素是否在所述聚焦区域内。5.根据权利要求2至4中任一项所述的方法,还包括:对与所述逐像素扩散过程相关联的像素执行羽化操作,以便平滑不连续。6.根据权利要求1至5中任一项所述的方法,其中对所述第二图像进行归一化对应于以下中的一者:使用引导或联合双边滤波器进行的线性上采样,或使用所述引导或联合双边滤波器进行的线性下采样。7.根据权利要求1至6中任一项所述的方法,还包括:确定所述第一图像中将被虚拟内容覆盖的多个像素;以及放弃填充与所述多个像素相关联的孔。8.根据权利要求1至7中任一项所述的方法,其中所述遮挡掩模是至少部分地基于相对于与所述第一图像传感器相关联的第一角度的第一组深度值和相对于不同于所述第一角度的与所述第二图像传感器相关联的第二角度的第二组深度值确定的。9.根据权利要求1至7中任一项所述的方法,其中所述遮挡掩模是至少部分地基于相对于与所述第一图像传感器相关联的第一角度的第一组深度值或相对于不同于所述第一角度的与所述第二图像传感器相关联的第二角度的第二组深度值确定的。10.根据权利要求1至9中任一项所述的方法,其中所述第一内在参数包括第一分辨率、第一视场(fov)、第一帧速率、第一帧延迟和第一色彩空间,并且其中所述第二内在参数包括第二分辨率、第二fov、第二帧速率、第二帧延迟和第二色彩空间。11.根据权利要求10所述的方法,其中所述第一内在参数和所述第二内在参数包括至
少一个类似的分辨率、fov、帧速率、帧延迟或色彩空间。12.根据权利要求10所述的方法,其中所述第一内在参数和所述第二内在参数包括互相排斥的分辨率、fov、帧速率、帧延迟和色彩空间。13.根据权利要求1至12中任一项所述的方法,其中所述扭曲操作对应于密集深度重新投影算法。14.根据权利要求1至13中任一项所述的方法,其中所述第一图像传感器的所述第一内在参数包括第一分辨率和第一色彩空间,并且其中所述第二图像传感器的所述第二内在参数包括不同于所述第一分辨率的第二分辨率和不同于所述第一色彩空间的第二色彩空间。15.根据权利要求14所述的方法,其中所述电子设备还包括与第三内在参数相关联的第三图像传感器,其中所述第三图像传感器的所述第三内在参数包括不同于所述第一分辨率的第三分辨率和不同于所述第一色彩空间的第二色彩空间。16.根据权利要求1至15中任一项所述的方法,其中所述电子设备对应于还包括显示设备的近眼系统。17.一种计算系统,所述计算系统包括:接口,所述接口用于与第一图像传感器和第二图像传感器通信;一个或多个处理器;非暂态存储器;和一个或多个程序,所述一个或多个程序存储在所述非暂态存储器中,所述一个或多个程序当由所述一个或多个处理器执行时使所述计算系统执行根据权利要求1至16所述的方法中的任一种方法。18.一种存储一个或多个程序的非暂态存储器,所述一个或多个程序当由具有用于与第一图像传感器和第二图像传感器通信的接口的计算系统的一个或多个处理器执行时使所述计算系统执行根据权利要求1至16所述的方法中的任一种方法。19.一种计算系统,所述计算系统包括:接口,所述接口用于与第一图像传感器和第二图像传感器通信;一个或多个处理器;非暂态存储器;和用于使所述计算系统执行根据权利要求1至16所述的方法中的任一种方法的装置。

技术总结
该方法包括:从与第一内在参数相关联的第一图像传感器获得环境的第一图像;根据角度偏移值对该第一图像执行扭曲操作以生成经扭曲的第一图像,以便考虑该第一图像传感器与该电子设备的用户之间的角度差异;基于该经扭曲的第一图像确定包括多个孔的遮挡掩模;从与第二内在参数相关联的第二图像传感器获得该环境的第二图像;基于该第一内在参数与第二内在参数之间的差异对该第二图像进行归一化以产生经归一化的第二图像;以及基于该经归一化的第二图像填充该遮挡掩模的第一组一个或多个孔以产生经修改的第一图像。以产生经修改的第一图像。以产生经修改的第一图像。


技术研发人员:B
受保护的技术使用者:苹果公司
技术研发日:2021.06.08
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐