掌桥专利:专业的专利平台
掌桥专利
首页

用于增强现实的光照估计

文献发布时间:2023-06-19 12:19:35


用于增强现实的光照估计

技术领域

本公开涉及虚拟现实(VR)和/或增强现实(AR)体验以及估计与VR和/或AR体验中的场景相关联的光照方面。

背景技术

虚拟现实(VR)开发人员可能会与视觉效果开发人员分享共同的挑战。例如,在视觉效果环境和VR环境中,将内容插入场景中的至少两个挑战包括匹配相机视点和光照特性。可以使用许多的算法实时执行匹配相机视点。但是,当目的是确保真实和逼真的内容,则要将真实世界场景中的光照特性与复合到VR环境中的内容进行匹配可能会是具有挑战性的。

发明内容

一个或多个计算机的系统可以被配置成借助于具有在系统上安装的软件、固件、硬件或它们的组合来执行特定的操作或动作,该软件、固件、硬件或它们的组合在操作中使该系统执行动作。一个或多个计算机程序可以被配置成借助于包括指令来执行特定的操作或动作,所述指令在由数据处理装置执行时使该装置执行动作。

在一个总体方面,描述了一种计算机实现的方法。该方法包括:在电子计算设备处针对在增强现实(AR)环境中渲染的场景的至少一个图像获得在第一时间段捕获的场景光照估计。场景光照估计可以至少包括与场景相关联的第一图像测量。该方法可以进一步包括在电子计算设备处确定在第二时间段处与场景相关联的第二图像测量,其中第二时间段在第一时间段之后发生。该方法可以进一步包括在电子计算设备处确定第一图像测量和第二图像测量的函数,并且基于所确定的函数,在电子计算设备处触发部分光照估计更新的计算或触发全部光照估计更新的计算。该方法可以进一步包括使用部分光照估计更新或全部光照估计更新在电子计算设备的屏幕上针对场景渲染该场景。

计算机实现的方法的特定实施方式可以包括下述特征中的任何一个或全部。在一些实施方式中,第一图像测量和第二图像测量包括对场景的相应周围光强度测量,并且如果确定的函数高于预定阈值并且第一时间段和第二时间段之间流逝的时间超出阈值流逝时间,则触发全部光照估计更新的计算,全部光照估计更新包括在即将到来的时间段的针对场景的高动态范围(HDR)光照估计的计算。

在一些实施方式中,该函数是第一图像测量与第二图像测量的比率,并且全部光照估计更新使用至少一个神经网络计算场景的HDR光照估计。在一些实施方式中,第一图像测量和第二图像测量包括与电子计算设备相关联的描绘场景的相应6-DoF姿势测量,并且如果确定的函数低于预定阈值并且在第一时间段与第二时间段之间的流逝时间低于阈值流逝时间,则触发部分光照估计更新的计算。部分光照估计更新可以至少包括用于在场景中显示的方向性光配置修改。在一些实施方式中,部分光照估计更新表示根据函数生成对场景的逐渐照明变化的线性内插光照估计。在一些实施方式中,部分光照估计更新估计至少一个图像的平均光强度。在一些实施方式中,全部光照估计更新表示用于至少一个方向性光源、至少一个环境图和多个球谐系数的配置。

在一些实施方式中,该方法还包括确定从第一时间段到第二时间段的与场景相关联的姿势变化的发生,并且响应于确定姿势变化是否高于旋转阈值水平或高于平移阈值水平,则触发高动态范围(HDR) 光照估计的计算。另外,该方法可以包括生成针对场景的更新的光照估计和根据更新的光照估计来渲染场景。

在一些实施方式中,旋转阈值水平和平移阈值水平为电子计算设备配置生成用于以至少一个光源照亮场景的更新的高动态范围(HDR) 光照估计的计算频率。

在第二总体方面,描述了一种系统,该系统包括相机、至少一个处理器以及存储指令的存储器,所述指令在由所述至少一个处理器执行时使所述系统从表示包括虚拟内容的场景的多个帧获得针对第一帧捕获的场景光照估计,该场景光照估计至少包括场景的第一周围光强度测量,生成针对第二帧的场景的第二周围光强度测量,第二帧在多个帧中的第一帧之后发生,确定第一周围光强度测量与第二周围光强度测量之间的至少一个差,并且基于所确定的至少一个差,触发针对场景的至少包括方向性光配置修改的部分光照估计更新的计算,或触发针对场景的全部光照估计更新的计算。处理器还可以使用利用第一周围光强度测量的部分光照估计更新或者所述渲染全部光照估计更新为所述场景渲染虚拟内容。

系统的特定实施方式可以包括下述特征中的任意一个或所有特征。在一些实施方式中,在AR环境中为AR会话渲染场景,并且指令进一步使系统当场景在整个AR会话中改变时连续生成多个附加的周围光强度测量,并且使用多个附加的周围光强度测量,确定是否触发计算场景的其他部分光照估计更新或全部光照估计更新。在一些实施方式中,第一周围光强度测量和第二周围光强度测量是平均线性周围强度值。在一些实施方式中,全部光照估计更新使用至少一个神经网络计算场景的HDR光照估计。

在一些实施方式中,如果所确定的第一周围光强度测量和第二周围光强度测量之间的差高于预定阈值并且在第一帧和第二帧之间的流逝时间低于阈值流逝时间,则触发全部光照估计更新的计算,全部光照估计更新包括在即将到来的时间段的针对场景的高动态范围(HDR) 光照估计的计算。

在第三总体方面,描述了有形地体现在非暂时性计算机可读介质上的计算机程序产品。该计算机程序产品可以包括指令,该指令在被执行时被配置成使至少一个处理器针对包括虚拟内容的场景的至少一个图像获得在第一时间段处捕获的场景光照估计,该场景光照估计至少包括与场景相关联的第一图像测量值,确定与在第二时间段的场景相关联的第二图像测量,第二时间段在第一时间段之后发生,确定第一图像测量与第二图像测量的比率,并基于所确定的比率,触发部分光照估计更新的计算或触发全部光照估计更新的计算。指令可以进一步触发使用部分光照估计更新或全部光照估计更新针对所述场景渲染虚拟内容。

计算机程序产品的特定实施方式可以包括下述特征中的任意一个或全部特征。在一些实施方式中,第一图像测量和第二图像测量包括场景的相应周围光强度测量,并且如果确定的比率高于预定阈值并第一时间段和第二时间段之间的流逝时间高于阈值流逝时间,则触发全部光照估计更新的计算,全部光照估计更新包括针对即将到来的时间段的场景的高动态范围(HDR)光照估计的计算。在一些实施方式中,部分光照估计更新估计至少一个图像的平均光强度。在一些实施方式中,全部光照估计更新表示模拟两个或更多个光源的照明配置。

在一些实施方式中,指令进一步包括确定从第一时间段到第二时间段的与场景相关联的姿势变化的发生。响应于确定姿势变化高于旋转阈值水平或高于平移阈值水平,指令可以触发高动态范围(HDR) 光照估计的计算。指令可以进一步包括:针对场景生成更新的光照协议,和根据更新的光照协议渲染场景。在一些实施方式中,旋转阈值水平和平移阈值水平为电子计算设备配置生成用于以至少一个光源照亮场景的更新的高动态范围(HDR)光照估计的计算频率。

所描述的技术的实施方式可以包括硬件、方法或过程或计算机可访问介质上的计算机软件。

在附图和以下描述中阐述一种或多种实施方式的细节。根据说明书和附图以及权利要求书,其他特征将显而易见。

附图说明

图1A-1B图示根据示例实施方式的具有各种光照特性的示例增强现实(AR)场景。

图2是根据示例实施方式的示例计算设备的框图,该示例计算设备具有用于生成针对AR体验的光照估计的框架。

图3是根据示例实施方式的针对AR体验的至少一个会话生成高动态范围(HDR)光照环境估计的示例过程的框图。

图4是根据示例实施方式的用于生成针对AR体验的光照环境估计的示例线程模型的框图。

图5是根据示例实施方式的用于生成光照环境估计的示例过程。

图6是根据示例实施方式的用于生成光照环境估计的另一示例过程。

图7是根据示例实施方式的评估启发法的计算摊销以触发光照环境估计的生成的示例过程。

图8图示可以与此处描述的技术一起使用的计算机设备和移动计算机设备的示例。

在各个附图中使用相似或相同的附图标记旨在指示相似或相同的元素或特征的存在。

具体实施方式

在下面详细地描述用于增强现实(AR)、虚拟现实(VR)和/或混合现实(MR)的光照估计技术。特别地,所描述的用于在AR、VR 和/或MR环境中估计逼真的光照的系统和技术可以采用多种启发法来确定是否花费计算资源和定时资源来在AR会话期间计算更新的光照环境(例如,生成光照估计)。如果确定了要计算(例如,并且生成) 更新的光照环境,则本文描述的光照估计技术能够用于在AR会话中估计和/或计算AR场景的光照方面,以当将内容合成到场景中时并且通常随着用户在AR会话期间体验AR环境而确保逼真光照估计。

本文描述的光照估计技术可以包括对说明许多变量的算法和神经网络的使用,这些变量能够用于降低对于特定场景执行光照计算(例如,光照估计)的成本和/或频率。此类变量可以附加地用于确定是否对于场景触发新的光照环境(例如,更新的光照估计)。

简而言之,为了避免用于使用神经网络以近实时的帧速率连续地估计光照的大计算费用,本文描述的系统和技术可以利用被设计来在不降低渲染结果的视觉质量的情况下降低专用于光照估计的总计算成本的计算摊销程序和启发法。在一些实施方式中,这些系统和技术可以基于AR会话期间的光照可能不会急剧改变的知识来计算对不到所有图像帧的光照估计,所以能够根据对于先前渲染的图像帧所执行的光照估计智能地传播当前或先前的帧光照。

本文描述的系统和技术能够通过摊销估计场景的光照的成本并且确定何时触发场景光照的这种估计来为AR、VR和/或MR提供改进的光照估计解决方案。例如,如果本文描述的系统和技术确定要执行新的(例如,更新的)光照估计,则系统可以利用光照估计技术来基于定时、图像强度和姿势数据(例如,相机姿势数据和/或设备姿势数据) 等估计(例如,计算)更新的光照估计,仅举几个例子。如果本文描述的系统替代地确定不要执行更新的光照估计,则本文描述的技术可以用于将过去的光照估计传播到当前(例如,目前实时的)AR、VR 和/或MR场景中,从而当渲染场景中的内容和光照时执行部分光照估计。

AR、VR和/或MR系统可能必须以诸如24帧每秒(FPS)、30FPS、60FPS或另一速率的高速率实时地刷新显示给用户的图像。用于根据图像确定或估计场景中的光照的常规技术可以包括执行许多计算(或处理器周期),这可能是昂贵的。一些传统技术利用关于环境中的光照的先验信息,其对其中使用AR系统的许多环境来说可能不是可用的。本文进一步描述的技术可以允许以逼真方式光照插入的虚拟内容和虚拟光照,而无需使用环境光照的先验知识,同时使用比传统技术少的处理器周期。附加地,由于本文描述的技术所利用的处理周期的数目减少了,所以这些技术可以允许在使用比传统技术会采用的更少的电力(例如,移动设备上的电池电量)的同时以逼真方式将内容和光照插入到捕获的图像/视频中。

在一些实施方式中,本文描述的系统和技术可以提供对常规光照系统的改进,因为这些技术可能确定执行部分光照估计,其利用来自神经网络的数据、过去的光照数据以及下述变量和/或启发法中的一个或多个。

在操作中,本文描述的系统和技术可以提供用以对于AR环境和/ 或其它合成应用使用机器学习来估计要用于光照并将虚拟内容渲染到真实世界场景中的高动态范围(HDR)全向(360度)光照/照明的机制。例如,本文描述的系统和技术能够通过访问与特定AR会话相关联的相机、光照和定时变量或参数来确定何时根据移动计算设备的给定相机馈送计算近似的HDR照明(例如,全部或部分环境光照估计)。

通常,所提出的系统和技术提供了一种改进的光照解决方案,该改进的光照解决方案使用机器学习技术来评估和学习能够基于移动计算设备的相机馈送作为输入来估计环境光照的模型,并且使用所估计的光照来照明并将内容(例如,AR对象)逼真地合成到场景中。在一些实施方式中,所提出的系统和技术能够基于本文描述的变量来确定何时触发环境光照的估计。此类变量可以包括但不限于相机姿势、设备姿势、图像强度、流逝的时间、相机设定、用户移动、先前的光估计等,以确定何时且多久(例如,频繁)触发对于特定场景生成新的全部或部分(例如,更新的)光照估计。

在一些实施方式中,本文描述的系统和技术包括使用基于学习的方法来考虑到来自具有有限视场(FOV)的移动计算设备相机的无约束低动态范围(LDR)图像推理似真的HDR、全向照明。对于训练数据,收集放置在相机的FOV内的各种反射球的视频,让一定量的背景未被遮挡,并且利用具有不同反射率函数的材料来在单次曝光中揭示不同的光照线索。可以将神经网络(例如,深度神经网络)训练成通过使LDR地面实况球图像(在下面描述)与使用基于图像的补光通过预测照明而渲染的图像相匹配来从LDR背景图像的未被遮挡部分回归到HDR光照,这是可区分的。推理在移动计算设备上以交互式帧速率执行,从而对于移动AR、VR和/或混合现实(MR)环境使得能够将虚拟对象逼真地渲染到真实场景中。

根据贯穿本公开描述的示例实施方式,本文描述的计算设备可以利用所描述的算法来随着用户和/或移动计算设备移动而对于AR场景中的任何数目的AR对象确定光照方面并估计(例如,计算)光照(例如,照明)。在一些实施方式中,本文描述的计算设备可以利用所描述的算法来随着时间流逝(例如,在用户不移动的情况下)对于AR场景中的任何数目的AR对象确定光照方面以估计(例如,计算)光照(例如,照明)。

贯穿本公开描述的实施方式可以解决下述技术问题:例如,准确地跟踪由移动计算设备的相机在AR体验(例如,会话)期间捕获的移动内容,并且对于在AR会话期间在设备中提供的场景生成(例如,计算和/或估计等)逼真光照环境。可以相对于各种图像方面以及光照和渲染管线技术以技术准确性生成此类光照环境,这些光照和渲染管线技术包括以多点或方向性光的光照虚拟对象、反射贴图、阴影贴图、周围遮挡、球谐和基于HDR图像的光照技术,包括基于全局照明的渲染。在一些实施方式中,本文描述的系统和技术能够生成光照表示(例如,光照估计),这些光照表示包括单光点、方向性光源、场景或AR 环境的环境图和/或许多球谐系数中的任意一个或全部。

本文描述的技术方案可以提供确定何时基于在场景中发生检测到的变化来计算光照环境的技术效果。所计算的光照环境能够用于确保根据场景的准确深度、颜色、光和感知来通过光和阴影渲染放置(例如,合成)到场景中的对象。

在一些实施方式中,例如,可以以交互式帧速率执行来自背景图像的光照推理(例如,估计),从而当在移动计算设备处理器上运行时以每秒约12-20帧的速率产生光照估计。然而,使用神经网络以此类近实时的帧速率连续地估计光照使用大量计算资源,同时潜在地引起遍及移动计算设备(或其它显示器/计算机设备)热传递和过度的电池消耗。本文描述的系统和技术可以采用被设计来减少专用于光照估计的总计算资源而不降低渲染结果的视觉质量的计算摊销启发法。在一些实施方式中,这些系统和技术可以基于AR会话期间的光照可能不会急剧改变的知识确定对具有更少帧的光照估计计算的需要,并且执行具有更少帧的光照估计计算,并且因此能够根据与前一帧相关联的光照估计智能地传播当前(例如,目前实时的)帧中的光照。

本文描述的技术解决方案可以提供基于本文描述的变量来评估是否触发全部或部分光照估计(例如,更新)的执行的附加技术效果,从而节约用于光照场景和/或环境的计算成本并且减轻移动设备/无线计算设备的电池消耗。例如,不是基于每帧、基于每时间或以其它间隔触发光照估计的执行,而是本文描述的系统和技术可以替代地使用任何或所有可测量的和/或可确定的场景变量、相机变量、传感器读数变量、图像变量、姿势变量等,以确定对于场景光照估计更新是否存在令人信服的理由。如果确定不执行整个光照估计更新,则可以执行部分光照估计(例如,更新)以确保基于从计算设备检测到的传感器数据来执行特定光变化。

在一些实施方式中,本文描述的技术解决方案可以提供时间平滑/ 滤波的附加技术效果。例如,因为本文描述的光照估计被配置成以较低频率进行计算以节约计算资源,所以从始至终描述的系统能够跨任何数目的帧在时间上平滑(例如,滤波)以防止突然的光照变化。例如,这可以提供在任何时刻(或响应于用户查询)为光照估计服务同时在必要时允许突然的光照变化以赶上变化的环境条件的优点。包括但不限于相机设定、运动、总图像强度、颜色变化、光传感器变化等的可用测量可以用于推理动态平滑参数,以便于在环境因素几乎没有变化的情况下缓慢地且平滑地调整光照。当环境因素的变化大大变化时,这也可以使本文描述的系统能够迅速地对齐到新的光照估计。

图1A图示根据示例实施方式的具有各种光照特性的示例增强现实(AR)场景100A。为了生成场景100A,示例AR系统捕获用户周围的物理空间的图像。然后,AR系统可以确定插入内容的位置和/或光照。例如,系统可以接收指示内容在屏幕上的位置的用户输入。可以将内容放置在用户指示的位置,或者放置在位于用户指示的位置下方的与诸如地板或地面的表面相对应的平面上的位置。AR系统还可以估计和/或计算光照特性以便于照明场景100A中的任何和所有内容。然后可以生成光照特性并将其渲染在场景中。

如图1A中所示,场景100A在物理空间107内包括三棵AR树102、 104和106。这三棵AR树102、104和106由光源108背光照明。光源 108照明场景100A,如由在线110处开始并在线112处结束的虚线至少部分地指示的。这种照明是AR场景100A的照明的一个示例。场景100A表示AR环境,该AR环境包括在物理空间107的图像上方显示的插入的AR内容(例如,树102、104和106)。在该示例中,树102 包括由光源108将光投射到树102上引起的阴影区域114(例如,阴影)。类似地,树104包括阴影116,而树106包括阴影118。阴影区域114 可以根据光源108被遮挡,例如通过执行本文所述技术的光照引擎被确定。

在操作中,本文描述的系统和技术可以确定图像的对应于一个或多个虚拟对象(例如,内容)的一个或多个区域。然后,系统可以从一个或多个区域提取图像属性,并使用那些属性来照明内容(例如,树102、104和106)。例如,可以从区域之一中提取亮度(或光度)值,并且可以缩放所提取的亮度值并将其用作高架光源的亮度属性。在一些实施方式中,可以从另一个区域中提取亮度(或光度)值,并且可以缩放所提取的亮度值并将其用作附加光源(例如,下光源)的亮度属性。

在一些实施方式中,还从一个或多个区域提取诸如色调和饱和度的其他属性。这些属性可以被修改(例如,缩放,部分去饱和),并且然后用作上光源和/或下光源的属性。然后可以将照明的内容呈现给用户(例如,覆盖在围绕用户的物理空间107的捕获图像上,投射/显示在被布置在用户视场内的光学组合器上等)。

在一些实施方式中,每个阴影区域可以包括插入内容(例如,在该示例中为树)的区域,该区域具有向下指向的表面法线(即,表面法线矢量的垂直分量小于零)并且其他阴影区域可以包括插入内容(例如,树)的区域,该区域具有向上指向(即,表面法线矢量的垂直分量大于零)的表面法线。

在某一时刻,设备202(在图2中示出并且在下文中更详细地描述)可以通过在AR会话期间选通场景中的照明计算来采用功率节省和 /或计算成本节省技术。例如,为了触发针对场景的次要(例如,部分) 照明更新(例如,估计)或全部照明更新(例如,估计),设备202 可以使用光照引擎228来评估随时间流逝发生在场景中的特定图像测量。

例如,在图1B中,场景100B已经从场景100A稍微位移。在此,贯穿本公开描述的系统可以确定是否触发部分光照估计更新的计算或者替代地触发全部光照估计更新的计算(例如,HDR光照估计)。例如,呈现AR环境的计算设备可以检测定时、运动和图像数据以确定是否执行特定的光照估计更新。

为此,计算设备可以获得针对在增强现实(AR)环境中渲染的场景的至少一个图像的场景光照估计。场景光照估计可以是针对第一时间段,并且场景光照估计可以包括至少与场景相关联的第一图像测量。例如,图像测量可以包括针对场景图像的周围光照强度。计算设备可以确定在第二时间段的与场景相关联的第二图像测量。例如,计算设备可以确定场景100B的在当前时间的周围光照强度。计算设备可以使用当前周围光照强度并且可以计算当前周围光照强度与第一周围光照强度的函数(例如,根据最新的,即,最近执行的光照估计)。这样的函数可以包括两个周围光照强度之间的差(和/或两个周围光照强度之间的比率)。如果函数的输出很小(即,周围光照强度从帧到帧保持大约相同或不变),则计算设备可以计算先前的光照估计与当前图像帧之间的时间差。如果时间差较小(例如,在阈值水平内),则可以触发次要(例如,部分)更新以计算以获得关于图像和/或场景的任何照明表示(例如,所有照明、方向性光和/或立方图数据等)的更新。在一些实施方式中,计算设备可以触发与图像、计算设备和/或场景相关联的相对运动(例如,平移和/或旋转)的计算。

可以计算从先前的光照估计到当前帧的相对运动。如果相对运动较小(例如,在阈值水平内),则计算设备可以触发针对特定图像和/ 或场景的照明的部分更新的执行。如果以上计算都未被触发,则计算设备可以触发对全部光照估计更新的计算。不管确定部分光照估计更新还是全部光照估计更新,都可以在计算设备的屏幕上渲染更新的光照。

通常,可以为本文所述的场景和AR环境配置特定的阈值和阈值水平。在一些实施方式中,可以从特定值升高或降低阈值以改进光照质量。在一些实施方案中,可以从特定值升高或降低阈值以改进设备电池、处理速度和/或计算成本等。

在场景100B的所描绘的示例中,场景100A和100B之间的平移移动指示可以触发新的全部光照。因此,示出了从光源108发射的更新的照明图案,其触发计算设备102还为树104和树106分别确定更新的阴影效果120和122。此外,针对内容(树102和阴影114))移除光照和阴影,因为内容不再在场景100B中。可以计算和渲染附加光照变化,并且上述列举的更新仅仅是场景的照明修改的示例。

尽管场景100A和100B包括单个光源,但是任何数量的光源都是可能的,并且本文所述的技术可以针对每个光源以及整个场景生成光照估计。

图2是图示根据示例实施方式的具有框架的示例计算设备202的系统200的示意图。该框架用于生成针对AR体验的光照估计。该系统 200可以被用于确定生成针对AR、VR以及/或者MR环境的光照估计。通常,计算设备(例如,移动设备、平板电脑、膝上型计算机、HMD设备、智能手表等)202可以生成光照条件以照明AR场景。另外,设备202可以为系统200的用户生成AR环境,以触发在设备202或另一设备上利用所生成的光照条件渲染AR场景。在一些实施方式中,系统 200包括计算设备202、头戴式显示器(HMD)设备204以及AR内容源206。还示出了网络208,计算设备202可以通过网络208与AR内容源206进行通信。

计算设备202包括存储器210、处理器组件212、通信模块214、传感器系统216和显示设备218。存储器210可以包括AR应用220、AR内容222、图像缓冲器224、图像分析器226、光照引擎228和渲染引擎230。计算设备202还可包括各种用户输入设备232,诸如一个或多个使用无线通信协议与计算设备202进行通信的控制器。在一些实施方式中,输入设备232可以包括例如可以接收触觉用户输入的触摸输入设备、可以接收可听用户输入的麦克风等。计算设备202也可以是一个或多个输出设备234。输出设备234可以包括例如用于视觉输出的显示器、用于音频输出的扬声器等。

计算设备202还可以包括传感器系统216中的任何数量的传感器和/或设备。例如,传感器系统216可以包括相机组件236以及3-DoF 和/或6-DoF跟踪系统238。跟踪系统238可以包括(或可以访问)例如光传感器、惯性测量单元(IMU)传感器240、音频传感器242、图像传感器244、距离/接近度传感器(未示出)、定位传感器(未示出) 和/或其他传感器和/或传感器的不同组合。传感器系统216中包括的一些传感器可以提供对设备202的定位检测和跟踪。系统216中的一些传感器可以提供对物理环境的图像的捕获,以显示在渲染AR应用220的用户界面的组件上。

在一些实施方式中,计算设备202是移动计算设备(例如,智能电话),其可以被配置成经由HMD 204向用户提供或输出AR内容。例如,计算设备202和HMD 204可以经由有线连接(例如,通用串行总线(USB)电缆)或经由无线通信协议(例如,任何Wi-Fi协议、任何蓝牙协议、Zigbee等)进行通信。另外地或可替代地,计算设备202 是HMD 204的组件,并且可以被包含在HMD 204的壳体内。

存储器210可以包括一个或多个非暂时性计算机可读存储介质。存储器210可以存储可用于为用户生成AR环境的指令和数据。

处理器组件212包括一个或多个能够执行诸如由存储器210存储的指令的指令以执行与生成AR、VR和/或MR环境相关联的各种任务的设备。例如,处理器组件212可以包括中央处理单元(CPU)和/或图形处理器单元(GPU)。例如,如果存在GPU,则可以将诸如基于确定的光照参数的对内容进行着色的某些图像/视频渲染任务从CPU 卸载到GPU。

通信模块214包括用于与诸如AR内容源206的其他计算设备通信的一个或多个设备。通信模块214可以经由诸如网络208的无线或有线网络进行通信。

IMU 240检测计算设备202和/或HMD 204的运动、移动和/或加速度。IMU 240可以包括各种不同类型的传感器,诸如例如,加速度计、陀螺仪、磁力计和其他此类传感器。可以基于IMU 240中包括的传感器提供的数据来检测和跟踪HMD 204的定位和定向。检测到的HMD 204的定位和定向可以允许系统依次检测和跟踪用户的注视方向和头部移动。可以将这样的跟踪添加到可以由光照引擎228轮询的跟踪栈,以确定设备和/或用户移动的变化并将相关联的时间与这种移动的变化相关。在一些实施方式中,AR应用220可以使用传感器系统216来确定在物理空间内的用户的位置和定向和/或辨识物理空间内的特征或对象。

相机组件236捕获计算设备202周围的物理空间的图像和/或视频。相机组件236可以包括一个或多个相机。相机组件236还可包括红外相机。

AR应用220可以经由HMD 204和/或计算设备202的一个或多个输出设备234(诸如显示设备218、扬声器(例如,使用音频传感器242) 和/或其他输出设备(未示出))向用户呈现或者提供AR内容222。在一些实施方式中,AR应用220包括存储在存储器210中的指令,该指令在由处理器组件212执行时使处理器组件212执行本文所述的操作。例如,AR应用220可以基于例如AR内容(诸如AR内容222和/或从AR内容源206接收的AR内容)来生成AR环境并将其呈现给用户。

AR内容222可以包括AR、VR和/或MR内容,诸如可以显示在 HMD 204中的用户视野的一部分上或与计算设备202相关联的显示器 218或其他显示设备(未示出)上的图像或视频。例如,可以利用与用户所位于的物理空间基本匹配的光照(使用光照引擎228)来生成AR内容222。AR内容222可以包括叠加物理空间的各个部分的对象。AR 内容222可以被渲染为平面图像或三维(3D)对象。3D对象可以包括表示为多边形网格的一个或多个对象。多边形网格可以与各种表面纹理(诸如颜色和图像)相关联。可以基于由AR内容源206和/或光照引擎228生成的各种光照参数来对多边形网格进行着色。

AR应用220可以使用图像缓冲器224、图像分析器226、光照引擎228和渲染引擎230以基于AR内容222生成图像以用于经由HMD 204显示。例如,相机组件236所捕获的一个或多个图像可以存储在图像缓冲器224中。AR应用220可以确定插入内容的位置。例如,AR 应用220可以提示用户识别用于插入内容的位置,然后可以接收指示该内容在屏幕上的位置的用户输入。AR应用220可以基于该用户输入来确定插入的内容的位置。例如,要插入的内容的位置可以是访问AR 体验的用户所指示的位置。在一些实施方式中,位置通过将用户指示的位置映射到与图像中的诸如地板或地面的表面相对应的平面(例如,通过找到在由用户指示的位置以下的平面上的位置)来确定。该位置也可以基于为相机组件捕获的先前图像中的内容确定的位置来确定 (例如,AR应用220可以使内容在图像中捕获的物理空间内识别的表面上移动)。

图像分析器226然后可以基于所确定的位置来识别存储在图像缓冲器224中的图像的区域。图像分析器226可以确定该区域的一个或多个属性,诸如,亮度(或光度)、色调和饱和度。在一些实施方式中,图像分析器226对图像进行滤波以确定此类特性。例如,图像分析器226可以将mipmap滤波器(例如,三线性mipmap滤波器)应用于图像,以生成图像的较低分辨率表示的序列。图像分析器226可以识别其中单个像素或少量像素对应于该区域的图像的较低分辨率表示。然后可以从单个像素或少量像素确定区域的属性。可替代地,可以通过对区域中的一些像素(例如,随机样本)或全部像素求平均来确定区域的属性。然后,光照引擎228可以基于所确定的属性来生成一个或多个光源或环境光图254。渲染引擎230可以使用光源或环境光图来渲染插入的内容或包括插入的内容的增强图像。

在一些实施方式中,图像缓冲器224是存储器210的被配置成存储一个或多个图像的区域。在一些实施方式中,计算设备202将由相机组件236捕获的图像作为纹理存储在图像缓冲器224内。可替代地或附加地,图像缓冲器224还可包括与处理器组件212集成的存储器位置,诸如,GPU上的专用随机存取存储器(RAM)。

在一些实施方式中,图像分析器226、光照引擎228和渲染引擎 230可包括存储在存储器210中的指令,该指令在由处理器组件212执行时使处理器组件212执行本文所述的操作以生成(例如,经由HMD 204)显示给用户并利用使用本文中描述的神经网络256计算的光照特性照亮的图像或系列图像。

系统200可以包括(或可以访问)一个或多个神经网络256。神经网络256可以是有限脉冲递归网络或无限脉冲递归网络。在一些实施方式中,神经网络256可以是具有多层的深度递归神经网络。神经网络256可以包括LSMT架构或GRU架构中的一个或多个。

神经网络256可以包括检测器,例如,当显示场景的设备在世界空间中移动时,该检测器在图像上进行操作以计算例如设备位置和光照变量以对场景的预测光照进行建模。另外,神经网络256可以操作以计算到未来几个时间步的HDR光照估计。

神经网络256可以利用从先前成像获得的全向光或光照探针图像 (light probeimage),并且可以使用这样的内容来从神经网络生成特定的环境光图(或其他输出图像和光照)。

在一些实施方式中,其中神经网络256可以是光估计网络(也称为深度神经网络、卷积神经网络等)的两步法直接预测(裁剪的)光照探针图像(损失函数可以是裁剪的输入探测器图像与净输出之间的平方差或绝对差),然后通过利用约束最小二乘求解线性方程组来获得方向性光值。

在一些实施方式中,神经网络存储若干系列的浮点数和2D和/或 3D图像卷积,随后进行激活(例如,将输入映射到被编号的输出)。在一些实施方式中,神经网络可以预测每秒12-20个光照环境。

捕获的图像和相关联的光照可以用于训练神经网络256。例如,这包括如何在不捕获任何HDR心像的情况下获得HDR格式的全向光照。训练数据(例如,捕获的图像)可以包括在各种(例如,不同的) 光照条件下具有测量的或已知的双向反射分布函数(BRDF)的一个或多个光照探针(未示出)的LDR图像。灰色球体(充当光照探针的灰色球体)的外观是环境光照的卷积版本。通过求解线性方程组,可以将探测器图像进一步处理为HDR光照系数。在一些实施方式中,可以使用的训练数据的类型是一般LDR全景,其中还有更多是可用的。

通常,任何数量的光照表示可以用于实时图形应用。在一些实施方式中,例如,周围光照可以被用于渲染并且AR应用应支持环境周围光估计。在一些实施方式中,例如,一个或多个方向性光可用于渲染并且用于经由阴影映射生成逼真的阴影,或用于近似场景中的主要光源和遥远光源(例如,太阳)。在一些实施方式中,例如,可以使用环境光映射。这存储直接的360度光照信息。可以使用包括立方体映射、六面体、等角映射或正交投影的几种典型的参数化。在一些实施方式中,球谐函数可以用于例如对低频照明进行建模并且用作用于快速积分的预先计算的辐射传输。

设备202可以使用光照引擎228来为AR、VR和/或MR环境生成一个或多个光源。光照引擎228包括可以利用和/或生成HDR光照估计器252、环境光图254和神经网络256的光照估计软件250。光照估计软件250可以在计算设备202上本地执行,在一个或多个远程计算机系统(例如,可经由网络208访问的第三方提供商服务器系统)中的计算机、云网络或前述每个中的一个或多个的组合上远程执行。光照估计软件250可以呈现例如用于在计算设备202的显示设备218上显示诸如控件、计算和图像的相关信息的用户界面(UI)。光照估计软件250被配置成分析、处理和操纵由本文描述的光照估计技术生成的数据。光照估计软件250可以被实现为自动计算、选择、估计或控制所公开的光照估计方法的各个方面,诸如用于拍摄颜色图表和/或处置或生成环境光图254的功能。

神经网络256可以表示光估计网络,其被训练以使用HDR光照估计器252从至少一个LDR背景图像(未示出)估计HDR光照。例如,背景图像可以来自计算设备202的相机视图。在一些实施方式中,如下文详细描述的,训练示例可包括背景图像、相同环境中的光照探针(例如,球形)的图像以及光照探针的双向反射分布函数(BRDF)。

图2中示出的框架支持使用不同材料(例如,光亮的、暗淡的等光照探针材料)的多个光照探针(未示出)来训练神经网络256中的一个或多个。光亮的光照探针材料捕获高频信息,该信息可以包括图像中的裁剪的像素值。较暗淡的光照探针材料捕获低信息而无需任何裁剪。在一些实施方式中,这两个数据集可以彼此互补,使得神经网络256可以估计HDR光照而无需HDR训练数据。

在光照引擎228的操作中,到光估计网络104的LDR背景图像可以来自计算设备202的相机。在一些实施方式中,AR框架(例如,AR 软件开发套件)可以支持来自于设备202的相机的两个不同的图像。例如,用于视觉跟踪的4:3YUV格式帧数据和RGB格式通过视频。在一些实施方式中,可以将通过视频的RGB格式用作诸如神经网络256 的光估计网络的输入。在一些实施方式中,可以将4:3YUV格式的帧数据用作网络256的输入。

使用神经网络256的HDR光照估计器252(例如,HDR光照估计) 的输出可以是基于输入图像的估计的光(例如,HDR环境光照)。在一些实施方式中,网络256可最初从给定输入产生约208个方向性光 (例如,基于16×16=256的输出探针分辨率,输出环境光图254 中的像素数目并减去每个角的12个无效像素,因此256-48=208)。在一些实施方式中,输出探针分辨率可以是32×32。

在一些实施方式中,计算设备202可以基于考虑相机状态258、光照状态260和会话状态262的线程模型来生成场景的HDR光照,如下面详细描述的。在一些实施方式中,计算设备202可以基于考虑时间选通264、姿势选通266和强度选通268的线程模型生成用于场景的HDR光照,如下面详细描述的。

AR应用220可以基于从相机组件236、IMU 240和/或传感器系统 216的其他部件接收的输入来更新AR环境。例如,IMU 240可以检测计算设备202和/或HMD 204的运动、移动和/或加速度。IMU240可包括各种不同类型的传感器,诸如,例如,加速度计、陀螺仪、磁力计和其他此类传感器。可以基于IMU 240中包括的传感器所提供的数据来检测和跟踪HMD 204的定位和定向。检测到的HMD 204的定位和定向可以允许系统依次检测和跟踪物理空间内的用户的定位和定向。基于检测到的定位和定向,AR应用220可以更新AR环境以反映用户在环境中的改变的定向和/或定位。

尽管在图2中将计算设备202和HMD 204示为单独的设备,但是在一些实施方式中,计算设备202可以包括HMD 204。在一些实施方式中,计算设备202经由有线(例如,电缆)连接和/或经由无线连接与HMD 204通信。例如,计算设备202可以将视频信号和/或音频信号传输到HMD 204以供为用户显示,并且HMD 204可以将运动、定位和/或定向信息传输到计算设备202。

AR内容源206可以生成并输出AR内容,其可以经由网络208被分发或发送到一个或多个计算设备,诸如计算设备202。在一些实施方式中,AR内容222包括三维场景和/或图像。另外,AR内容222可以包括流送或分发到一个或多个计算设备的音频/视频信号。AR内容222还可包括在计算设备202上执行以生成3D场景、音频信号和/或视频信号的AR应用220的全部或一部分。

网络208可以是互联网、局域网(LAN)、无线局域网(WLAN) 和/或任何其他网络。例如,计算设备202可以经由网络208接收音频/ 视频信号,其可以在说明性示例实施方式中作为AR内容的一部分来提供。

本文描述的AR、VR和/或MR系统可以包括将计算机生成的内容插入到用户对用户周围的物理空间的感知中的系统。计算机生成的内容可以包括标签、文本信息、图像、精灵图(sprite)和三维实体。在一些实施方式中,出于娱乐、教育或信息目的而插入内容。

示例AR、VR和/或MR系统是便携式电子设备,诸如,智能手机,其包括相机和显示设备。便携式电子设备可以使用相机捕获图像,并且在显示设备上显示图像,该图像包括叠加在由相机捕获的图像上的计算机生成的内容。

另一示例AR、VR和/或MR系统包括用户佩戴的头戴式显示器 (HMD)。HMD包括位于用户眼前的显示设备。例如,HMD可能会遮挡用户的整个视野,使得用户只能看到显示设备显示的内容。在一些示例中,显示设备被配置成显示两个不同的图像,每个用户的眼睛可以看到一个。例如,一个图像中的至少一些内容可以相对于另一图像中的相同内容稍微偏移,从而由于视差而产生对三维场景的感知。在一些实施方式中,HMD包括腔室,诸如智能电话的便携式电子设备可以放置在该腔室中,以允许通过HMD观看便携式电子设备的显示设备。

另一示例AR、VR和/或MR系统包括HMD,该HMD允许用户在佩戴HMD时看到物理空间。HMD可以包括微型显示设备,该设备可以显示叠加在用户视野上的计算机生成的内容。例如,HMD可以包括至少部分透明的包括组合器的护目镜,该组合器允许来自物理空间的光到达用户的眼睛,同时还向用户的眼睛反射微显示设备显示的图像。

当将计算机生成的内容插入图像中时,可以将光照应用于该内容,使得该内容与图像的其余部分更紧密地匹配。例如,可以使用光源或环境光图来渲染三维模型,该光源图或环境光图近似于在图像中捕获的光照条件。

尽管本文描述的许多示例涉及将视觉内容插入和/或合成到AR环境中的AR系统,但是也可以在其他系统中使用本文描述的技术来插入内容。例如,本文描述的技术可以用于将内容插入图像或视频。

通常,系统和技术可以被承载在诸如计算设备202的移动电子设备上。然而,容纳一个或多个相机和/或图像传感器或与一个或多个相机和/或图像传感器相关联的其他电子设备可以被用于执行本文所述的技术。在一些实施方式中,跟踪传感器和相关联的跟踪栈也可以用作输入以执行光照估计技术。

图3是根据示例实施方式的针对AR体验的至少一个会话生成高动态范围(HDR)光照估计的示例过程300的框图。过程300可以表示用于针对特定AR会话生成具有HDR光照估计的图像的管线。这样的管线可以是包括相机线程(例如,指示相机状态258)、光照估计线程(例如,指示光照状态260)和会话线程(例如,指示会话状态262) 的多线程模型。下面将参考图4详细描述多线程序列。

在过程300的操作中,可以通过用户访问电子设备(例如,移动计算设备202)来实例化AR会话302。AR会话302可以正在提供用于在移动计算设备202上呈现的内容。在某个时刻,移动计算设备202 可以经由AR会话302请求提供图像和运动跟踪状态更新304。

例如,当具有光照引擎228的HDR光照估计器252使用图像请求器308请求图像时,会话302可以提供更新304。接下来,可以执行一个或多个启发法以确定特定变量是否触发新的和/或更新的HDR光照环境计算的执行。启发法可以基于对移动计算设备202跟踪数据(例如,3-DoF/6-DoF姿势)、场景数据、定时数据、图像强度数据、相机设置数据等中的任何一个或全部的评估。例如,启发法可以基于由相机组件236和/或IMU 240捕获的3-DoF和/或6-DoF相机姿势数据的测量。

通常,会话302可以基于对移动计算设备202的评估以及图像、时间、设备状态等的变化,触发执行HDR光照环境计算的请求。如果要执行HDR光照估计310,从会话302检索图像/运动跟踪状态更新 304,并且世界框架光照探针缓冲器312基于更新304和从图像请求或 308检索到的图像来检索世界框架光照。缓冲器312可以被用于将已知的光照估计(例如,训练数据、先前捕获的图像/视频等)转换为世界坐标。过程300可以在当前时间检索312光照,以确保由HDR光照估计器252生成的新光照估计与会话302中的场景的当前光照相兼容。在确定新光照估计可配置有会话302时,可以提供314AR光照估计。

在一些示例中,如果过程300(在移动计算设备202上运行)确定姿势、定向和/或其他设备移动未改变超过阈值水平,则过程300可以指示新的光照估计考虑到可能会影响光照的定位或场景细节的变化程度低而是不必要的。因此,过程300可以等待触发光照估计,直到基于移动的数据达到或升高高于阈值水平为止。在一些实施方式中,可以与光照估计触发同时确定这样的基于移动的数据(例如,跟踪数据、姿势数据、定向数据和/或其他传感器数据等),使得可以感测到的高于预定阈值水平的移动可以瞬间地触发针对AR环境的新光照估计。在一些实施方式中,会话可以被配置有移动设备的会触发要执行的新光照估计的阈值水平(例如,10%、15%、30%、50%、70%等)。低于此阈值水平的任何值都可能不会触发要执行的新光照估计。

在一些示例中,如果过程300(在移动计算设备202上运行)确定车载移动计算设备相机的实时相机馈送的平均图像强度尚未改变超过阈值水平,则过程300可以指示新光照估计是不必要的。例如,大约10%至大约15%的图像强度的平均变化可以是可以触发要执行的新光照估计的阈值水平。低于此类阈值水平的任何值都可能不会触发要执行的新光照估计。在一些实施方式中,例如,过程300可以通过将 AR会话配置有增加到大约50%的阈值水平的平均图像强度来节省额外的电池和/或处理资源。

在一些示例中,如果过程300(在移动计算设备202上运行)确定在会话期间已经流逝特定的时间量,则过程300可以指示将保证进行新光照估计以确保正确显示并照亮内容。例如,可以为会话配置基于时间的阈值,其指示应以每秒一帧的速率而不是每秒24-30个帧的视频帧速率来生成新光照估计。

在一些示例中,如果过程300(在移动计算设备202上运行)确定已经对相机设置(例如,曝光时间)进行了重大变化,则可以触发新光照估计以解释对相机设置的变化。

尽管上面描述了一个会话302,但是任何数量的会话可以由用户实例化或由其他用户共享和/或分离地实例化。根据本文所述的系统和技术,这样的会话可以同时接收相同的光照估计更新。

图4是根据示例实施方式的用于生成用于AR体验的光照环境估计的示例线程模型400的框图。相机线程258被描绘为指示相机的状态或相机的状态随时间的变化(或与相机相关联的属性)。描绘了光照线程260以指示光照条件的状态或光照条件的状态随时间的变化(或与光照条件相关联的属性)。会话线程262被描绘为指示会话的状态或会话的状态随时间的变化(或与会话相关联的属性)。

用户可以开始在计算设备202上操作的AR会话,例如,以开始执行模型400。如图4中所示,多个时间包括时间(t1)402、时间(t2) 404、时间(t3)406和时间(t4)408。尽管描绘了四个时间,但是可以示出任何数量个时间,并且在线程模型400中使用,例如,关于图4 示出和描绘的分析可以继续直到AR会话结束。在任何时间点,相机线程258、光照线程260和会话线程262中的任何一个都可以触发例如由系统200的光照引擎228和/或其他组件计算的光照估计。

在时间t1 402期间,相机线程258可以检索图像。例如,光照引擎228可以获取由计算设备202正在(或已经)捕获的图像和/或视频。计算设备202可以确定410是否触发针对用于在特定AR会话中呈现的该图像和/或视频的HDR光照估计的执行。例如,设备202可以执行与设备202的相机相关联的许多启发法,以便于分摊HDR光照的总体计算费用。例如,可以检索相机状态258并将其与先前的相机状态进行比较,以确定设备202的3-DoF或6-DoF姿势是否已经改变了特定量。特别地,如果确定设备202已经旋转了大约8度到大约10度或更多,则可以触发HDR光照估计以获得用于AR会话中的场景的更新的光照。类似地,例如,如果传感器系统216检测到约0.0005米至约0.0007 米的平移,则可以触发HDR光照估计以获得AR会话中的场景的更新光照。在一些实施方式中,启发法可以包括时间选通、强度选通和/或姿势选通,如下面进一步详细描述的。

上面描述的启发法可以起到参数化光照的作用,使得它可以对应用程序编程接口(API)级别的轻微旋转相机运动不敏感,并计算更新的HDR光照估计(例如,光照探针估计以生成HDR光照估计)。即,如在上面所讨论的,光照探针估计可以存储在世界坐标中,光照引擎 228可以使用该世界坐标来为用户生成世界坐标HDR光照估计。这样的估计可以与设备202使用的跟踪栈同步,以启用更新的世界节点信息和旋转信息以更新照度信息。可以将世界坐标HDR光照估计提供给 API以由渲染引擎230进行渲染。

继续时间t1 402,相机线程258可以触发对更新的HDR光照估计的计算。如果触发了计算,则光照线程260可以在时间t1 402处触发新线程以获取图像并执行光推断412以检索图像的当前光照条件。光推断可以指代神经网络推断调用(例如,执行请求)以获得与在特定时间生成针对场景的HDR光照估计相关联的信息。

在一些实施方式中,光照线程260可以触发这种条件或图像内容到世界坐标的转换,以校正在生成HDR光照估计时原始图像和/或关联神经网络256的任何训练数据中可能存在的定向误差。光推断和/或定向校正的结果可以被存储414为最后已知的光照信息416,并且还可以通过418被承载到附加的时间段(例如,如在最后已知的光照信息420 处通过时间t3 406并且通过时间t4 408所示)。

会话线程262可以起到存储最近已知的光照信息416和420以及其他检索到的最近已知的光照条件的作用。另外,会话线程可以检查是否正确地检索最后已知的光照信息,并且可以在当前实时提供此类信息。当系统202确定触发场景的新的或更新的HDR光照估计的计算时,此信息可以被用于提供相机帧光照。

如在422、424和426处执行的确定所指示的,模型400可以继续检查在每个新时间段是否触发更新的HDR光照估计。如果系统替代地确定不满足触发条件,则不会触发HDR光照估计以进行计算。

图5是根据示例实施方式的用于生成光照环境估计的示例过程 500。过程500可以确保针对特定场景和/或图像的光照估计当保证相对于呈现该场景的AR会话的处理成本和要求时被触发。在一些实施方式中,本文描述的过程(包括过程500)可以改善对周围光照的大变化的快速反应,而不会增加计算成本。周围光照中的大变化的一个示例可以是在室内环境中关闭或打开电灯开关时的光照变化。

在某一时刻,例如,用户可以开始在计算设备202上操作的AR 会话,以开始过程500的执行。如图5中所示,多个时间包括时间(t0) 502、时间(t1)504、时间(t2)506、时间(t3)508和时间(t4)510。尽管描绘了五个时间,但是任何熟练个时间可以在线程模型400中示出并使用,例如,关于图5示出和描绘的分析可以继续直到AR会话结束。

可以执行许多神经网络推断(例如,光预测)以生成场景的HDR 光照估计。此处示出的推断包括(D1)512、(D2)514、(D3)516 和(D4)518。每个相应的推断都发生在特定的时间戳504-510,如在每个相应的时间戳下方所指示的。推断可以包括光照引擎228使用神经网络256估计场景的光照环境(例如,和/或环境光图254)以在利用关于相机状态258、光照状态260、会话状态262、时间状态(例如,时间选通264)、姿势状态(例如,姿势选通266)和/或强度状态(例如,强度选通268)中的任何一个或全部的信息时生成HDR光照估计 (或其他次要和/或部分关照调整)。

在生成每个推断时,可以将预测(例如,推断512、514、516和/ 或518)提供给要使用一阶平滑技术进行线性内插的函数。也就是说,一阶平滑可以被用于在世界空间中线性内插神经网络生成的光照探针,以在各自时间戳504-510处生成平滑的滤波光照表示(F1)520、 (F2)522、(F3)524和(F4)526。平均值灰度探针(W)528可以用作线性插值的初始探针。

如在时间戳(t0)502处所示,探针(W)528是摊销状态下的光照信息,因为在时间(t0)502尚未生成任何光估计。对于时间戳504-510,经由来自AR会话的API调用(例如,客户端应用)在不必执行任何新的或更新的神经网络的情况下返回光照信息。即,计算设备202不触发新的或更新的HDR光照估计,而是可以替代地执行部分光照估计更新。在此示例中,可以通过使用探针(W)值和相对于最大时间步数的时间步数线性内插(F1)520来计算针对(F2)的新值530。例如,可以使用以下等式来计算针对(F2)522的新值530:

F2(新)=W+n(d) [1]

其中d=(F1-W)/k;n=步数计数器;k=最大步数

在另一个示例中,可以通过使用(F1)520和相对于最大时间步数的时间步数进行线性内插(F2)522,来计算针对(F3)524的新值 532。例如,可以使用以下等式计算(F3)524的新值532:

F3(新)=F1+n(d) [2]

其中d=(F2-F1)/k;n=步数计数器;k=最大步数

在另一个示例中,可以通过使用F(2)522和相对于最大时间步数的时间步数进行线性内插(F3)524,来计算针对(F4)526的新值 534。例如,可以使用以下等式计算(F4)526的新值534:

F4(新)=F2+n(d) [3]

其中d=(F3-F2)/k;n=步数计数器;k=最大步数

在以上计算中,为了生成平滑平移,要经由API返回的光照的当前状态在神经网络推断512-518之后可以被计时一秒。例如,在[t3]508 处,经由API返回到AR会话的光照等效于由[F2]522表示的光照。在 [t3]508和[t4]510之间,经由API返回到AR会话的光照等效于在[F2] 522和[F3]524之间的线性插值。

例如,如果设备202确定自从执行光照更新以来已经流逝了少于阈值的时间量(例如,一秒、五秒等),则图5中的在上面描述的部分光照估计更新被执行。类似地,如果设备202检测到图像和/或设备的轻微旋转或平移(例如,大于大约10度旋转或大约0.0007米平移的阈值),则也可以执行部分光照更新。如果测量超过上述阈值,例如,可以触发并执行新的HDR光照估计。

图6是根据示例实施方式的用于生成光照环境估计的另一示例过程600。

过程600可以确保针对特定场景和/或图像的光照估计当保证相对应呈现该场景的AR会话的处理成本和要求时被触发。在一些实施方式中,本文描述的过程(包括过程600)可以允许对图像内的快速强度变化进行快速反应,而不会引入额外的计算开销。在此过程600中,可以在每一帧(或每隔一帧、每五帧等)进行测量。

在一些实施方式中,测量可以与已知场景(或图像)的整体光照强度相关联。整体光照强度可以被用于按比例放大或缩小AR会话所需的最新光照估计。这样的测量可以针对特定图像(或场景)被记录,并且可以被本文描述的神经网络光照推断所使用。一个示例性测量可以包括针对特定帧(或者多个帧)的检索和/或记录的ISO感光度。为了检索ISO感光度测量(例如,与相机状态258相关联),光照引擎 228可以生成针对在AR会话中正在渲染(或将要渲染)的特定图像的 ISO感光度的查询。如果ISO感光度高于预定阈值水平,则可以触发光照计算以获得对光照环境的特定次要(例如,部分)更新。如果ISO 感光度在预定义范围之外,则可以触发新的HDR光照估计以执行针对场景(例如,或图像)的全部的基于神经网络的光照估计。

在一些实施方式中,测量可以与特定帧(或者多个帧)的检索和/ 或记录的曝光时间相关联。为了检索曝光时间测量(例如,与相机状态258相关联),光照引擎228可以生成针对在AR会话中正在渲染(或将要渲染)的特定图像的曝光时间的查询。如果曝光时间高于预定阈值水平,则可以触发光照计算以获得对光照环境的特定次要(例如,部分)更新。如果曝光时间在预定范围之外,则可以触发新的HDR光照估计以执行针对场景(例如,或图像)的全部的基于神经网络的光照估计。

在一些实施方式中,测量可以与通过跟踪栈或其他跟踪或光照监控器或传感器检索和/或记录的环境图像强度测量相关联。如果(例如,由强度选通268访问的)环境图像强度高于预定阈值水平,则可以触发光照计算以获得对光照环境的特定次要(例如,部分)更新。如果周围图像强度在预定范围之外,则可以触发新的HDR光照估计以执行针对场景(例如,或图像)的全部的基于神经网络的光照估计。

例如,与在AR会话中呈现的当前帧相比,设备202可以在全部 HDR光照估计(使用神经网络256)的最后计算时计算线性(或伪线性)平均图像强度的相对变化。这可以表示相对周围强度比。如果相对周围强度比大于50%,则设备202可以触发光照引擎228以执行(例如,计算、确定等)HDR光照估计。在一些实施方式中,如果周围强度比大于10%,则设备202可以触发HDR光照估计(例如,全部光照估计)。降低比率的阈值百分比可以确保比设备202以更高的阈值百分比操作时更频繁地计算(例如,估计)光照。在一些实施方式中,可以随时间在特定的周围光照强度之间进行比较以确定强度之中的差异。这样的差异可以用于触发或抑制特定的光照计算。

在一些实施方式中,测量可以与针对特定帧(或者多个帧)的检索和/或记录的时间测量相关联。如果(例如,由时间选通264访问的) 时间测量高于预定阈值水平,则可以触发光照计算以获得对光照环境的特定次要(例如,部分)更新。如果时间测量在预定范围之外,则可以触发新的和/或更新的HDR光照估计以执行针对场景(例如,或图像)的全部的基于神经网络的光照估计。例如,在AR会话期间,如果设备202确定已经流逝少于1秒,则设备202可以触发光照引擎228 对方向性光和HDR探针图像(与神经网络相关联)执行部分光照更新,但可能无法计算新的和/或更新的全部HDR光照估计。

在一些实施方式中,设备202可以采用姿势选通266来触发一个或多个光照估计。例如,如果传感器系统216丢失针对AR会话的运动跟踪状态,则光照引擎228可以确定放弃(即,不计算)更新的光照环境(包括不执行HDR光照估计)。另外,这种运动跟踪的损失可能不会触发任何值的光照更新,而是可以将时间戳设置为零,如图5和图6中所指示。使得下次运动跟踪被找到(例如,可用),可以计算新的HDR光照估计。

在一些实施方式中,设备202可以检测低于阈值水平的旋转或平移量(例如,将设备202检测为接近静止)。作为响应,光照引擎228 可以确定放弃较次要的照明更新,并且可以放弃新的HDR光照估计的计算,因为设备202在较大的距离和/或旋转范围内没有主动移动。然而,如果设备202检测到轻微的旋转或平移(例如,在大约8度与大约12度之间的旋转或大约0.0005至0.0009米的平移),则光照引擎 228可以触发例如方向性光和/或HDR探针图像的次要(例如,部分) 光照更新,但可能会放弃对新HDR光照估计的新计算。如果替代地确定设备202正在经历较大的旋转或平移(例如,大于12%的旋转和/或 0.0010米的平移),则光照引擎228可以触发新的HDR光照估计的计算。

在一些实施方式中,光照引擎228可以选择特定测量以便于缩放光照估计。例如,在实时AR会话期间,ISO感光度和曝光时间都可能连续变化,这指示成像传感器正在同时使用自动增益和自动曝光操作来尝试将图像像素值保持在特定范围内。光照引擎228使用与曝光时间相关的内部光照表示,因为视频馈送是自动曝光和自动增益。通常,可以使用相同的表示来收集(针对神经网络256的)相关联的训练数据。

在一个非限制性示例中,光照引擎228可以确定在一秒曝光时的图像强度为0.5,并且还可以确定在一秒曝光时相对光强度为1.0。光照引擎228可以在保持相同的曝光时间的同时具有场景中的总光。在一秒曝光时的新图像强度可以计算为0.25,而在一秒时的新相对光强度可以计算为0.5。光照引擎228可以通过自动将曝光时间乘以2来补偿此像素强度差。结果可以包括针对场景中一半的光在两秒钟曝光时的新图像强度为0.5和针对场景中的一半的光在两秒钟的曝光时新相对光强度为1.0。这样的计算可以指示,如果场景中的总光线减半,则相对光强度不应根据曝光时间或ISO而改变。然而,在AR会话期间,在光照引擎228的操作中可能未观察到这种精确的可预测的线性自动曝光行为。例如,当在房间中关掉灯时,ISO感光度和曝光时间都会增加以使图像变亮,但是相对于关闭灯之前的这些操作之后的平均像素强度仍然较低,导致黑暗房间中的更暗、嘈杂的图像。在发起新的全部神经网络计算之前,通常不会在相对光单位中解释此残差图像强度差。因此,光照引擎228可以代替地确定使用一个或多个每帧测量作为周围强度估计-这是足够快以在每一帧执行的操作,以便于使用空间子采样来计算平均图像强度。这可用于直接测量自动曝光后剩余的残差图像强度差。

通常,过程600可以在内部存储两个光照信息结构。第一结构包括具有方向性光的HDR光照估计。第二结构包括第一结构的缩放表示。第二结构可以通过按帧计算的平均线性周围强度来重新偏置。

再次参考图6,在某一时刻,用户可以开始在计算设备202上操作的AR会话,例如,以开始执行过程600。如图6中所示,多个时间包括时间(t0)602、时间(t1)604、时间(t2)606、时间(t3)608 和时间(t4)610。尽管描绘了五个时间,但是任何数量个时间可以在线程模型400中示出并使用,关于图6示出和描述的分析可以继续直到AR会话结束。

光照引擎228可以执行许多神经网络推断(例如,光预测)以生成场景的HDR光照估计。此处所示的推断包括(D1)612、(D2)614、 (D3)616和(D4)618。每个相应推断在特定的时间戳604-610处发生,如在每个相应的时间戳下面所指示的。推断可以包括光照引擎228 使用神经网络256来估计场景的光照环境(例如,和/或环境光图254),以在利用关于相机状态258、光照状态260、会话状态262、时间状态 (例如,时间选通264)、姿势状态(例如,姿势选通266)和/或强度状态(例如,强度选通268)中的任何一个或全部的信息的同时生成 HDR光照估计(或其他次要或部分光照调整)。

在生成每个推断时,可以将预测(例如,推断612、614、616和/ 或618)提供给要使用一阶平滑技术进行线性内插的函数。例如,可以从帧零到帧一等线性地解释推断612-618。在一些实施方式中,一阶平滑可以被用于在世界空间中线性内插神经网络生成的光照探针以在各自时间戳604-610生成平滑的滤波光照表示(F1)620、(F2)622、 (F3)624和(F4)626。平均值灰度探针(W)628可以用作线性内插的初始探针。

接下来,可以对内插的光预测620-626进行线性滤波(例如,平滑)以确定周围强度。在此,每个各自的内插的光预测620-626可以被滤波以输出(A1)630、(A2)632、(A3)634和(A4)636。

如在时间戳(t0)602处所示,探针(W)628是摊销状态的光照信息,因为在时间(t0)602尚未生成任何光估计。对于时间戳604-610,经由来自AR会话的API调用(例如,客户端应用)在无需执行任何新的或更新的神经网络的情况下返回光照信息。也就是说,计算设备202不触发新的或更新的HDR光照估计,而是可以替代地执行次要(例如,部分)光照估计更新或使用最后的已知状态,如通过640所示。

在另一个示例中,可以通过使用(F1)620和相对于最大时间步数的时间步数进行线性内插(F2)624,来计算针对(F3)624的新值 642。例如,可以使用下述等式计算(F3)624的新值642:

F3(新)=F1+n*(d) [4]

其中d=(F2-F1)/k;n=步数计数器;k=最大步数

在另一个示例中,可以通过相对于最大时间步数进行线性内插 (F3)624来计算针对(F4)626的新值644。例如,可以使用以下等式计算(F4)626的新值644:

F4(新)=F2+n*(d) [5]

其中d=(F3-F2)/k;n=步数计数器;k=最大步数

此外,可以执行多个摊销的线性强度更新以调整最后计算的光照探针的线性强度。如图6中所示,在时间t0 602,初始周围强度646被设置和/或确定为(A0)=0.6。类似地,可以在时间(t1)604处确定周围强度648。可以通过使用以下等式更新时间(t2)606的线性强度来生成新的周围强度650:

A2(新)=A1+n*b [6]

其中b=(A2-A1)/k;n=步数计数器;k=最大步数

可以通过使用下述等式更新在时间(t3)608的线性强度来生成新的周围强度652:

A3(新)=A2+n*b [7]

其中b=(A3-A2)/k;n=步数计数器;k=最大步数

接下来,光照引擎228可以将光照的分摊更新返回给设备202。例如,可以使用下述等式确定在时间(t1)的光照估计更新654:

W*(Ac/A0) [8]

其中Ac是(在每帧计算的)针对当前图像测量的线性周围强度。

可以使用下述等式确定在时间(t2)606的光照估计更新656:

F1*(Ac/A1) [9]

其中Ac是(在每帧计算的)针对当前图像测量的线性周围强度可以使用下述等式确定在时间(t3)608的光照估计更新658:

[F1+n*d]*[Ac/A1+n*b)] [10]

其中Ac是(在每帧计算的)针对当前图像测量的线性周围强度; b=(A2-A1)/k;n=步数计数器;k=最大步数;d是(F2-F1)/k

可以使用下述等式确定在时间(t4)610的光照估计更新660:

[F2+n*d)]][[Ac/A2+n*b)] [11]

其中b=(A3-A2)/k;n=步数计数器;k=最大步数;Ac是(在每帧计算的)针对当前图像测量的线性周围强度;d是(F3-F2)/k

在一些实施方式中,过程600可以确保使用平均强度在每个帧处存储HDR光照估计的缩放表示,如上所述。还可以存储HDR光照估计(和方向性光)的未缩放表示。这可以确保内插发生在未缩放的空间而不是缩放的空间上。使用下述等式计算针对每个帧的比例因子:

比例因子=[A/A’] [12]

其中A=当前帧的周围强度;A’=来自于上次HDR光照估计计算的内插的周围强度

例如,如果在时间(t1)以周围强度为0.5计算最后的全部HDR 光照估计计算并且在周围强度为0.25的情况下在时间(t2)处的新图像更暗,则强度比例因子比率被计算为0.25/0.5,则在时间(t2)产出的光照亮度是在时间(t1)的光照亮度的一半。

每次设备202触发测试新帧(例如,对新帧执行新的HDR光照估计)时,光照引擎228计算比例因子,缩放光照估计并将该值复制(例如,存储)到光照向量以供光系统查询。

在一些实施方式中,光照引擎228可以计算线性平均周围强度而不是平均伪线性周围强度或平均线性周围强度。例如,伽玛可以通过下面的等式由2.2表示为三个像素值(x,y,z)的线性化曲线:

((x/255)

因此,系统202实现基于真实线性像素强度子采样的平均功能,该功能将图像和长度为256的LUT向量作为输入,以进行快速查找。基于LUT的技术被用于增加计算速度并节省处理能力。在一些实施方式中,如果接近于饱和图像传感器(或在饱和图像传感器时)的像素表示明亮光源而不是从场景反射照明的表面或物体,则添加移除具有大于250的值(不在255之内)的像素的阈值操作。

图7是根据示例实施方式的用于评估启发法的计算摊销以触发光照环境估计的生成的示例过程700。将关于图2的系统描述过程700,然而,具有相机和特定传感器的任何电子设备都可以采用过程700。

在框702处,过程700可以包括在电子计算设备处针对在增强现实(AR)环境中渲染的场景的至少一个图像获得在第一时间段捕获的场景光照估计。例如,计算设备202可能正在AR会话中渲染场景。设备202可以从AR会话中的较早时间获得场景光照估计。场景光照估计可以至少包括与场景相关联的第一图像测量(例如,图像光测量)。在一些实施方式中,第一图像测量可以包括场景的周围光强度测量。图像测量可以附加地或替代地表示指示每秒由特定光发射的能量的量 (例如,以流明为单位测量)的通量。图像测量可以附加地或替代地表示指示在单位时间内每单位立体角从光源发射的可见光的总量的强度(例如,以坎德拉测量的光强度)。图像测量可以附加地或替代地表示指示每单位面积的光通量的照度(例如,以勒克斯(Lux)为单位测量)。图像测量可以附加地或替代地表示指示在给定方向上每单位面积来自表面的光的强度的灰度(例如,以Nit为单位测量)。

在一些实施方式中,第一图像测量可以包括与描绘场景的电子计算设备相关联的6-DoF姿势测量。例如,设备202可以确定(例如,测量)板载在设备上的相机的3-DoF姿势或6-DoF姿势。如果姿势指示设备202尚未移动或已移动小于阈值量,则全部(例如,新的)光照估计可能不会为用户提供额外的兴趣或光照变化,并且因此,设备 202可能会确定无法执行全部光照估计。

在框704处,过程700可以包括在电子计算设备(例如,计算设备202)处确定在第二时间段的与场景相关联的第二图像测量,其中第二时间段在第一时间段之后发生。例如,第二图像测量可以包括当前时间(即,实时)的针对场景的周围光强度测量。在一些实施方式中,第二图像测量可以包括与电子设备相关联的描绘场景并且在当前时间 (即,实时)的6-DoF姿势测量。实时可以在渲染当前访问的帧、场景和/或图像时指示。

在框706处,过程700可以包括在电子计算设备处确定与第二图像测量相关联的第一图像测量的比率(或其他函数)。例如,光照引擎228可以计算在第一时间段的周围光强度测量与在第二时间段的周围光强度测量的比率(或其他函数)。比率(或其他函数)计算中的任何一个或全部都可以利用相机状态258、光照状态260和/或会话状态262。

在框708处,该过程可以触发设备202基于所确定的比率来计算部分光照估计更新或者触发全部光照估计更新的计算。例如,确定要触发哪个计算可以至少部分基于与和图像测量相关联的预定阈值(例如,水平)相比的比率(或其他函数)。

在一些实施方式中,如果确定的比率(或其他函数)高于预定阈值,则触发全部光照估计更新的计算。在一些实施方式中,如果比率 (或其他函数高于预定阈值并且第一时间段与第二时间段之间的流逝时间低于阈值流逝的时间,则触发全部光照估计更新。也就是说,如果在第一时间段和第二时间段之间已经流逝足够的时间,则光照引擎 228可以触发新的(例如,更新的)全部光照估计更新,其可以包括针对在即将到来的时间段的场景的HDR光照估计的计算。

在一些实施方式中,如果确定的比率(或其他函数)高于预定阈值并且第一时间段和第二时间段之间的流逝的时间高于阈值流逝时间,则触发全部光照估计更新的计算,全部光照估计更新包括计算即将到来的时间段内的场景的高动态范围(HDR)光照估计。例如,如果光照引擎228确定在时间段之间已经流逝更大量的时间,则可以触发全部光照估计的计算,因为针对场景的光照可以随着更长的流逝时间急剧地改变。在一些实施方式中,如在上面详细地描述的,全部光照估计更新使用至少一个神经网络来计算场景的HDR光照估计。在一些实施方式中,全光照估计更新表示两个或更多个光源的照明配置。例如,全部光照估计更新可能包括太阳、月亮、聚光灯、面朝上的光、面朝下的光、或者光效果的任何组合的配置、配置以及照亮场景和/或图像的组合。

在一些实施方式中,部分光照估计更新表示线性插值的光照估计,该线性插值的光照估计根据该比率生成对场景的逐渐的照明变化,如上所述。在一些实施方式中,部分光照估计更新估计至少一个图像的平均光强度。

在其中第一图像测量和第二图像测量包括与电子计算设备相关联的描绘场景的相应的6-DoF姿势测量的示例中,如果确定的比率为低于预定阈值并且第一时间段和第二时间段之间的流逝时间低于阈值流逝时间,则可以触发部分光照估计更新的计算。部分光照估计更新可以例如至少包括用于在场景中显示的方向性光配置修改。在框710处,可以在电子计算设备的屏幕上针对场景呈现部分光照估计更新或全部光照估计更新。

在上述实施方式中,可以基于(在第一时间获得的)图像的第一图像测量与(在第二时间获得的)图像的第二图像测量之间的比率来执行触发部分光照估计更新或全部光照估计更新的触发。然而,在其他实施方式中,代替比率或除了比率之外,可以基于第一图像测量和第二图像测量的不同函数来执行对部分光照估计更新或全部光照估计更新的计算的触发。这样的函数可以包括但不限于确定周围光强度、针对框架的辐射通量、针对框架的辐射强度、框架的辐照度和/或框架的辐射率的测量值当中的比率和/或差。

在一些实施方式中,过程700可以包括确定从第一时间段到第二时间段的与场景相关联的姿势改变的发生。例如,传感器系统216可以确定计算设备202是否已经改变姿势。响应于确定姿势变化高于旋转阈值水平或高于平移阈值水平,设备202可以触发HDR光照估计的计算(例如,全部光照估计更新)。另外,设备202可以生成用于场景的更新的光照协议并且根据更新的光照协议来渲染场景。在一些实施方式中,旋转阈值水平和平移阈值水平为计算设备202配置生成用于以至少一个光源照亮场景的更新的HDR光照估计的计算频率。

在一些实施方式中,过程700可以由包括相机、至少一个处理器以及存储指令的存储器的系统执行,所述指令在由至少一个处理器执行时,使系统从表示在增强现实(AR)环境中渲染的场景的多个帧中获得针对第一帧捕获的场景光照估计。场景光照估计可以至少包括场景的第一周围光强度测量。该系统还可以生成针对第二帧的场景的第二周围光强度测量。第二帧可以在AR会话中发生在多个帧中的第一帧之后。该系统可以确定第一周围光强度测量与第二周围光强度测量的比率,并且基于所确定的比率可以触发针对场景的包括至少方向性光配置修改的部分光照估计更新的计算,或者触发针对场景的全部光照估计更新的计算。然后,系统可以针对场景渲染使用第一周围光强度测量的部分光照估计更新或者所述渲染全部光照估计更新。在一些实施方式中,在AR环境中为AR会话渲染场景。在一些实施方式中,随着场景在整个AR会话中改变,连续生成多个附加的周围光强度测量,并且将其用于确定是否触发针对该场景的附加的部分光照估计更新或全部光照估计更新的计算。在一些实施方式中,第一周围光强度测量和第二周围光强度测量是平均线性周围强度值。

在一些实施方式中,如果确定的比率高于预定阈值并且第一帧和第二帧之间的流逝时间高于阈值流逝时间,则触发全部光照估计更新的计算。全部光照估计更新可以包括针对即将到来的时间段的场景的 HDR光照估计的计算。在一些实施方式中,全部光照估计更新使用至少一个神经网络来计算针对场景的HDR光照估计。可以使用的其他图像测量可以包括光传感器阈值,诸如闪光灯亮度、虚拟内容或对象的添加、计算设备的移动的加速度和/或其他平移检测。

图8示出示例计算机设备800和示例移动计算机设备850,其可以与这里描述的技术一起使用。通常,本文描述的设备可以生成和/或提供虚拟现实、增强现实或混合现实环境中的任何一个或所有方面。关于计算机设备800和/或移动计算机设备850描述的特征可以包括在上述便携式计算设备100中。计算设备800旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备850旨在表示各种形式的移动设备,诸如,个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处所示的部件、它们的连接和关系以及它们的功能意味着仅是示例性的,并不意味着限制本文档中要求保护和/或描述的系统和技术的实施方式。

计算设备800包括处理器802、存储器804、存储设备806、连接到存储器804和高速扩展端口810的高速接口808以及连接到低速总线814和存储设备806的低速接口812。组件802、804、806、808、 810和812中的每一个都使用各种总线互连,并且可以安装在通用主板上或视情况以其他方式安装。处理器802可以处理用于在计算设备800 内执行的指令,包括存储在存储器804或存储设备806中的指令,以在外部输入/输出设备(诸如,耦合到高速接口808的显示器816)上显示GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。同样,可以连接多个计算设备800,每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器系统)。

存储器804将信息存储在计算设备800内。在一种实施方式中,存储器804是一个或多个易失性存储单元。在另一实施方式中,存储器804是一个或多个非易失性存储单元。存储器804也可以是另一种形式的计算机可读介质,诸如,磁盘或光盘。

存储设备806能够为计算设备800提供大容量存储。在一种实施方式中,存储设备806可以是或包含计算机可读介质,诸如,软盘设备、硬盘设备、光盘设备、磁带设备、闪存或其他类似的固态存储设备或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地体现在信息载体中。该计算机程序产品还可以包含在被执行时执行一种或多种方法(诸如,上述方法)的指令。信息载体是计算机或机器可读介质,诸如,存储器804、存储设备806或处理器 802上的存储器。

高速控制器808管理计算设备800的带宽密集型操作,而低速控制器812管理较低带宽密集型操作。这种功能分配仅是示例性的。在一种实施方式中,高速控制器808(例如,通过图形处理器或加速器) 耦合至存储器804、显示器816,以及耦合至可以接受各种扩展卡(未示出)的高速扩展端口810。在该实施方式中,低速控制器812耦合到存储设备806和低速扩展端口814。低速扩展端口(其可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网))可以例如通过网络适配器耦合到诸如键盘、指示设备、扫描仪的一个或多个输入/输出设备或诸如交换机或路由器的网络设备。

计算设备800可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器820,或者在一组这样的服务器中被实现多次。它也可以实现为机架服务器系统824的一部分。此外,它还可以实现在诸如膝上型计算机822的个人计算机中。可替代地,来自计算设备800的组件可以与诸如设备850的移动设备(未示出)中的其他组件组合。每个这样的设备可以包含一个或多个计算设备800、850,并且整个系统可以由彼此通信的多个计算设备800、850组成。

除了其他组件之外,计算设备850包括处理器852、存储器864、诸如显示器854的输入/输出设备、通信接口866和收发器868。设备 850还可以配备有存储设备,诸如,微驱动器或其他设备,以提供附加的存储。组件850、852、864、854、866和868中的每一个都使用各种总线互连,并且组件中的若干个可以安装在通用主板上或视情况以其他方式安装。

处理器852可以在计算设备850内执行指令,包括存储在存储器 864中的指令。处理器可以被实现为包括单独的以及多个模拟和数字处理器的芯片的芯片组。处理器可以提供例如用于设备850的其他组件的协调(诸如,对用户接口的控制)、由设备850运行的应用以及由设备850进行的无线通信。

处理器852可以通过控制接口858和耦合到显示器854的显示接口856与用户通信。显示器854可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他合适的显示技术。显示接口856可以包括用于驱动显示器854向用户呈现图形和其他信息的适当电路。控制接口858可以从用户接收命令并且将它们转换以提交给处理器852。另外,可以提供与处理器852通信的外部接口862,以便实现设备850与其他设备的近区域通信。外部接口862可以例如在一些实施方式中提供用于有线通信,或者在其他实施方式中提供用于无线通信,并且也可以使用多个接口。

存储器864将信息存储在计算设备850内。存储器864可以被实现为计算机可读介质、易失性存储单元或一个或多个非易失性存储单元中的一个或多个。还可以提供扩展存储器874,并通过扩展接口872 将其连接到设备850,扩展接口872可以包括例如SIMM(单列存储器模块)卡接口。这样的扩展存储器874可以为设备850提供额外的存储空间,或者还可以为设备850存储应用或其他信息。具体地,扩展存储器874可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器874可以被提供为设备850的安全模块,并且可以用允许安全使用设备850的指令来编程。此外,可以经由SIMM卡以及附加信息(诸如,以不可入侵的方式在SIMM 卡上放置标识信息)来提供安全应用。

存储器可包括例如闪存和/或NVRAM存储器,如下所述。在一种实施方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含在被执行时执行一种或多种方法(诸如,上述方法)的指令。信息载体是计算机或机器可读介质,诸如,存储器864、扩展存储器874或处理器852上的存储器,其可以例如通过收发器868或外部接口862接收。

设备850可以通过通信接口866进行无线通信,该通信接口在必要时可以包括数字信号处理电路。通信接口866可以提供各种模式或协议下(诸如,GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等等)的通信。这样的通信可以例如通过射频收发器868发生。此外,短距离通信可能发生,诸如,使用蓝牙、Wi-Fi或其他这样的收发器(未示出)。此外,GPS (全球定位系统)接收器模块870可以向设备850提供其他与导航和位置相关的无线数据,设备850上运行的应用可以适当地使用上述数据。

设备850还可以使用音频编解码器860以听觉方式进行通信,该音频编解码器可以从用户接收语音信息并将其转换为可用的数字信息。音频编解码器860可以类似地诸如通过扬声器在设备850的听筒中为用户生成可听见的声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备850上运行的应用生成的声音。

如图所示,可以以多种不同形式来实现计算设备850。例如,它可以被实现为蜂窝电话880。它也可以被实现为智能电话882、个人数字助理或其他类似的移动设备的一部分。

本文描述的各种技术的实施方式可以以数字电子电路、或以计算机硬件、固件、软件或它们的组合来实现。可以将实施方式实现为计算机程序产品,即,有形地体现在例如机器可读存储设备或传播的信号的信息载体中的计算机程序,以由数据处理装置(例如,可编程处理器、计算机或多台计算机)执行或控制数据处理装置的操作。可以以任何形式的编程语言(包括编译或解释语言)编写诸如上述计算机程序之类的计算机程序,并且可以以任何形式(包括作为独立程序或作为模块、组件、子例程或其他适合在计算环境中使用的单元)来部署该计算机程序。可以将计算机程序部署为在一个站点处的一台计算机或多台计算机上执行,或分布在多个站点上并通过通信网络互连。

方法步骤可以由执行计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。方法步骤也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置可以实现为上述专用逻辑电路。

适合于执行计算机程序的处理器包括例如通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括至少一个用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。通常,计算机还可包括一个或多个用于存储数据的大容量存储设备,例如,磁、磁光盘或光盘,或计算机可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,或两者都有。适合于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,阴极射线管(CRT)或液晶显示器(LCD)或者发光二极管(LED)监视器)和用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现实施方式。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。

可以在包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户通过其可与实施方式进行交互的图形用户界面或Web浏览器的客户端计算机),或者包括这样的后端、中间件或前端组件的组合的计算系统中实现实施方式。组件可以通过数字数据通信的任何形式或媒介(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网 (WAN),例如,互联网。

可使用配置用于与包括用户设备、用户界面(UI)设备、用户终端、客户端设备或定制设备的用户接口的硬件和/或软件的任何适当组合来实现基于本文所述的示例实施例的计算设备。该计算设备可以被实现为便携式计算设备,诸如,例如膝上型计算机。该计算设备可以被实现为适于与用户接口的某种其他类型的便携式计算设备,例如, PDA、笔记本计算机或平板计算机。可以将计算设备实现为适于与用户接口的某种其他类型的计算设备,例如,PC。该计算设备可以被实现为适于与用户接口并且适于通过包括移动通信网络的网络进行无线通信的便携式通信设备(例如,移动电话、智能电话、无线蜂窝电话等)。

计算机系统(例如,计算设备)可以被配置为使用任何已知的无线通信技术和协议(包括适用于通过网络进行通信的射频(RF)、微波频率(MWF)和/或红外频率(IRF)无线通信技术和协议),经由与网络服务器建立的通信链路,通过网络与网络服务器无线地通信。

根据本公开的各个方面,可以在数字电子电路中,或在计算机硬件、固件、软件或它们的组合中实现本文描述的各种技术的实施方式。可以将实施方式实现为计算机程序产品(例如,有形地体现在信息载体、机器可读存储设备、计算机可读介质、有形计算机可读介质中的计算机程序),以用于通过数据处理装置(例如,可编程处理器、计算机或多台计算机)进行处理,或控制上述数据处理装置的操作。在一些实施方式中,有形的计算机可读存储介质可以被配置为存储指令,该指令在被执行时使处理器执行过程。可以以任何形式的编程语言(包括编译或解释的语言)编写诸如上述计算机程序之类的计算机程序,并且可以以包括作为独立程序或作为模块、组件、子例程或其他适合在计算环境中使用的单元的任何形式来部署该计算机程序。可以将计算机程序部署为在一个站点处的一台计算机或多台计算机上进行处理,或者分布在多个站点上并通过通信网络互连。

本文公开的特定结构和功能细节仅出于描述示例实施例的目的而具有代表性。然而,示例实施例可以以许多替代形式来体现,并且不应被解释为仅限于在此阐述的实施例。

本文所使用的术语仅出于描述特定实施例的目的,并且不旨在限制实施例。如本文所使用的,单数形式“一”,“一个”和“该”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本说明书中使用时,术语“包括(comprise)”,“包括(comprising)”,“包含(include)”和/或“包含(including)”规定了所述特征、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、步骤、操作、元件、组件和/或其组的存在或添加。

将理解的是,当一个元件被称为“耦合”、“连接”或“响应”于另一个元件或在另一个元件“上”时,它可以直接被耦合、连接或响应,或者直接位于其上,也可以存在其他元件或中间元件。相比之下,当一个元件被称为“直接耦合”,“直接连接”或“直接响应”于另一个元件或“直接在”另一个元件“上”时,不存在中间元件。如本文所使用的,术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。

为了便于描述,在本文中可以使用空间相对术语,诸如“在...下方”,“在...之下”,“在...下部”,“在...之上”,“在...上部”等,以描述如图所示的一个元件或特征与另一个元件或特征的关系。将理解的是,除了附图中描绘的定向之外,空间相对术语还意图涵盖设备在使用或操作中的不同方向。例如,如果图中的设备被翻转,则被描述为在其他元件或特征“之下”或“下方”的元件将被定向为在其他元件或特征“之上”。因此,术语“在……之下”可以涵盖上和下两个定向。可以以其他方式定向设备(旋转80度或在其他定向),并且可以相应地解释本文中使用的空间相对描述符。

本文中参考截面图描述了概念的示例性实施例,该截面图是示例性实施例的理想化的实施例(和中间结构)的示意图。这样,例如由于制造技术和/或公差导致的图示形状的变化是可以预期的。因此,所描述概念的示例实施例不应被解释为限于本文所示的区域的特定形状,而应包括例如由制造引起的形状偏差。因此,图中示出的区域本质上是示意性的,并且它们的形状不旨在示出设备的区域的实际形状,也不旨在限制示例实施例的范围。

将理解,尽管在本文中可以使用术语“第一”,“第二”等来描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元素和另一个元素。因此,在不脱离本实施例的教导的情况下,“第一”元件可以被称为“第二”元件。

除非另有定义,否则本文中使用的所有术语(包括技术和科学术语)具有与这些概念所属领域的普通技术人员通常所理解的相同的含义。还将理解的是,诸如在常用词典中定义的那些术语应被解释为具有与它们在相关领域和/或本说明书的上下文中的含义一致的含义,并且将不会以理想化或过于正式的意义来解释,除非在此明确定义。

尽管已经如本文中所描述的那样说明了所描述的实施方式的某些特征,但是本领域技术人员现在将想到许多修改、替换、改变和等同物。因此,将理解,所附权利要求旨在覆盖落入实施方式的范围内的所有此类修改和改变。应当理解,它们仅以示例而非限制的方式给出,并且可以进行形式和细节上的各种改变。除相互排斥的组合之外,本文描述的装置和/或方法的任何部分可以以任何组合进行组合。本文描述的实施方式可以包括所描述的不同实施方式的功能、组件和/或特征的各种组合和/或子组合。

相关技术
  • 用于增强现实的光照估计
  • 一种适用于增强现实应用的视觉惯导融合位姿估计方法
技术分类

06120113250335