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

重力对准影像的机器学习推断

文献发布时间:2023-06-19 11:32:36


重力对准影像的机器学习推断

技术领域

本公开涉及虚拟现实(VR)和/或增强现实(AR)体验以及确定由移动设备捕获的图像的对准方面。

背景技术

增强现实(AR)设备被配置为在物理空间上显示一个或多个图像和/或对象,以向用户提供物理空间的增强视图。可以通过跟踪系统来跟踪增强视图中的对象,该跟踪系统检测并测量移动对象的坐标变化。机器学习技术还可用于跟踪AR中的移动对象并预测对象在整个AR场景中可能移动的位置。

发明内容

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

在第一总体方面,描述一种计算机程序产品,该计算机程序产品包括:在处理器处从计算设备上的图像捕获设备获得第一图像;使用处理器和至少一个传感器来检测与第一图像的捕获相关联的计算设备的设备定向;基于设备定向和与计算设备相关联的跟踪栈,确定旋转第一图像的旋转角度;将第一图像旋转到该旋转角度以生成第二图像;并将第二图像作为重力对准内容提供给与计算设备相关联的至少一个机器学习模型,以触发与第一图像相关联的至少一个增强现实(AR)特征。

计算机程序产品的特定实施方式可以包括以下特征中的任何一个或全部。例如,至少一个传感器可以包括或可以访问与在第一图像中捕获的可跟踪特征相对应的跟踪栈。在一些实施方式中,至少一个传感器是计算设备的惯性测量单元(IMU),并且跟踪栈与在计算设备处检测到的变化相关联。在一些实施方式中,生成第二图像以匹配与先前捕获的训练数据相关联的捕获定向。在一些实施方式中,第一图像是生成多个图像的实时相机图像馈送,并且基于与跟踪栈相关联的检测到的移动来连续对准该多个图像。在一些实施方式中,计算机程序产品可以包括以下步骤:使用多个图像来生成用于神经网络的输入,该输入包括基于捕获的纵向定向图像的生成的横向图像。

在第二总体方面,描述一种计算机实现的方法。该方法可以包括在处理器处从包括在计算设备上的图像捕获设备获得第一图像;使用处理器和至少一个传感器来检测计算设备的并且与第一图像的捕获相关联的设备定向;基于该定向,确定旋转第一图像的旋转角度;将第一图像旋转到该旋转角度以生成第二图像;并使用处理器将第二图像提供给至少一个神经网络,以基于第二图像生成第一图像的光照估计。

该计算机实现的方法的特定实施方式可以包括以下特征中的任何一个或全部。例如,检测到的设备定向可以在计算设备上操作的增强现实(AR)会话期间发生。在一些实施方式中,光照估计以旋转角的反向被旋转。在一些实施方式中,第一图像在计算设备上的AR会话中并且使用所旋转的光照估计被渲染。在一些实施方式中,AR内容使用所旋转的光照估计被生成并被渲染为第一图像上的叠加。

在一些实施方式中,第二图像被生成以匹配与先前捕获的训练数据相关联的捕获定向,并且其中,第二图像用于生成横向定向的光照估计。在一些实施方式中,旋转角用于对准第一图像以生成重力对准的第二图像。在一些实施方式中,至少一个传感器包括与在实时相机图像馈送中捕获的跟踪特征相关联的跟踪栈。在一些实施方式中,至少一个传感器是计算设备的惯性测量单元(IMU),并且移动变化表示与IMU和计算设备相关联的跟踪栈。

在一些实施方式中,第一图像是生成多个图像的实时相机图像馈送,并且该多个图像是基于与计算设备相关联的所检测的移动变化被连续对准。

在第三总体方面中,描述一种系统,该系统包括与计算设备、至少一个处理器以及存储指令的存储器相关联的图像捕获设备,所述指令在由至少一个处理器执行时,使系统:在处理器处从图像捕获设备获得第一图像;使用处理器和至少一个传感器来检测计算设备的并且与第一图像的捕获相关联的设备定向;使用处理器和至少一个传感器来检测与计算设备相关联的移动变化;基于定向和移动变化,确定旋转第一图像的旋转角度,并将第一图像旋转至该旋转角度以生成第二图像。指令还可以基于第二图像并根据移动变化来生成第一图像的面部跟踪估计。

系统的特定实施方式可以包括以下特征中的任何一个或全部。例如,图像捕获设备可以是计算设备的前置图像捕获设备或后置图像捕获设备。在一些实施方式中,使用前置图像捕获设备捕获第一图像,并且第一图像包括以旋转角度旋转的至少一个面部以生成第二图像,第二图像和与面部相关联的眼睛对准,该眼睛位于与所述面部相关联的嘴上方。在一些实施方式中,移动变化与在计算设备上操作的增强现实(AR)会话相关联,面部跟踪估计以旋转角的反向旋转,并且第一图像在计算设备上的AR会话中被渲染,并且将第二图像作为重力对准的内容提供给与计算设备关联的至少一个机器学习模型,以触发与第一图像和所旋转的面部跟踪估计相关联的增强现实(AR)体验。

在一些实施方式中,第二图像被用作对神经网络的输入,以生成横向定向内容,在该内容中具有至少一个重力对准面部。在一些实施方式中,第一图像是生成多个图像的实时相机图像馈送,并且该多个图像基于与计算设备相关联的所检测的移动变化被连续对准。在一些实施方式中,第二图像被生成以匹配与先前捕获的训练数据相关联的捕获定向,并且第二图像用于生成横向定向的面部跟踪估计。在一些实施方式中,至少一个传感器是计算设备的惯性测量单元(IMU),并且移动变化表示与IMU和计算设备相关联的跟踪栈。

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

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

附图说明

图1示出根据示例实施方式的利用各种光照特性捕获的示例增强现实(AR)场景。

图2是根据示例实施方式的具有框架的示例计算设备的框图,该框架用于确定什么数据用于估计AR体验中呈现的图像的屏幕定向。

图3A至图3B示出根据示例实施方式的从捕获的图像内容生成横向图像内容的示例。

图4是示出根据示例实现方式的计算设备定向图和用于执行基于重力的对准的此类定向的转换的示例。

图5A-5D示出根据示例实施方式的提供用于AR体验中的面部跟踪的基于重力的对准的示例。

图6是根据示例实施方式的推断图像内容的重力对准的示例过程。

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

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

具体实施方式

利用神经网络的机器学习模型可以接收图像作为输入,以便提供任何数量的输出类型。一个这样的示例输出包括图像分类,其中机器学习模型被训练为指示与图像中的对象相关联的类别。另一示例包括对象检测,其中训练机器学习模型以输出图像中对象的特定位置。又一示例包括图像到图像的类别转换,其中输入是图像,而输出是原始输入图像的风格化版本。其他示例可以包括但不限于针对增强现实(AR)的面部特征跟踪(例如,从输入图像或视频中定位2D面部特征),针对AR的面部网格生成(例如,从输入图像或视频推断3D面部网格),手、身体和/或姿势跟踪以及AR的光照估计(例如,从输入图像估计场景照明以用于将虚拟资源真实地渲染到图像或视频馈送中)。

一般而言,本文所述的机器学习模型(例如,使用神经网络)可以被配置为接收被重力对准(例如,被标准化以指示向上对准)的图像,其中预期在捕获的图像的顶部附近的图像内容实际上在图像的顶部附近。例如,如果使用相机设备以直立定向配置和/或捕获图像,则通常期望图像中的天空或天花板在图像的顶部附近。使用重力对准的图像和/或对象作为神经网络的输入可以确保将方向性内容(例如,头部、面部、天空、天花板等)视为与其他图像标准化(例如,与地面(地板)正交)。如果例如在使用神经网络生成之前特定元素被校正和/或确认为是直立的(例如,相对于图像的地面/底部以直立定位被重力对准的),则可以使用神经网络正确估计与此类基于重力的对准相关联的任何光照和/或跟踪。

本文所述的系统和技术可提供校正处于非重力对准的定向的图像内容的优点。例如,本文描述的系统可以检测到用户正在计算设备上以横向定向访问AR会话。如下面进一步详细描述的,这样的检测可以触发对特定图像内容的修改,以避免向配置为估计图像内容的光照(例如,照明)的神经网络提供不准确(例如,不正确)的对准内容。

本文描述的技术可以用于对准用于估计和/或计算在AR会话中的AR场景的光照方面的图像,以确保在将渲染的虚拟内容合成到场景中时的真实的光照估计。本文所述的技术可包括使用算法和神经网络,这些算法和神经网络用于确定何时以及如何重力对准图像(例如,倾斜图像以确保用于跟踪和/或光照目的的正确定向),以便重力对准的图像在针对图像的估计光照和/或跟踪时被使用。可以将基于重力对准的图像提供给神经网络,例如,以生成光照估计和/或对横向定向的AR会话执行面部跟踪。

如果检测到计算设备处于除纵向定向之外的定向,则本文所述的系统和技术可以基于设备定向和设备跟踪指标使用机器学习模型(例如,神经网络)来为AR会话生成真实的光照以推断场景(例如,图像)的特定方面。另外,本文描述的系统和技术可以生成用于神经网络的附加训练数据。例如,本文描述的系统和技术可以使用在纵向模式下捕获的一个或多个图像来生成用于估计在横向模式下显示的图像的光照的数据。另外,当使用这样的图像作为神经网络的输入时,可以使用基于重力的对准来生成缺失和/或校正的图像数据以推断特定图像的直立定位。基于重力的对准可用于确保特定图像在作为输入提供给神经网络时其为直立定向,例如,无论计算设备在捕获图像期间(使用机载相机)所保持的角度如何。例如,可以基于与计算设备的移动相对应的移动变化,对来自存储或实时相机图像馈送的图像(例如,视频)连续地执行基于重力的对准。

本文所述的系统和技术可通过在将这样的图像提供给一个或多个神经网络之前计算输入图像的基于重力的对准来为AR,VR和/或MR提供改进的光照解决方案。输入图像的基于重力的对准可以确保在为图像或对象和/或包含图像或对象的场景生成真实的光照时,考虑图像中的方向性内容。

本文描述的系统和技术可以提供使用传感器测量的图像定向的优点,例如,以在计算设备上执行机器学习模型来学习修改图像内容的方式。例如,包含至少一个图像传感器(例如,相机、惯性测量单元(IMU)、跟踪栈等)和同时用于跟踪的其他传感器的计算设备可以被测量并被提供给机器学习模型(例如,神经网络)以为设备捕获的图像产生正确定向(例如,直立的)且真实的光照。除了减少每个机器学习问题的难度之外,确定如何旋转特定图像以实现对神经网络的直立输入还可以使该技术能够在已获取仅纵向定向的训练影像进行训练时模拟横向定向的训练影像。

在一些实施方式中,本文描述的系统和技术可以并入确定的定向知识,该定向知识指示给定输入图像的直立定位,以供跟踪图像中捕获的面部并跟踪面部周围的内容时使用。例如,对于面部特征跟踪器,该技术可以确定在模型(例如,神经网络模型/机器学习模型)处接收到的输入图像中的面部是否被适当地旋转,使得在图像中眼睛在用户的鼻子和嘴上方。该模型可以了解面部不同部分之间的空间关系,并且可以配置为不太可能提供眼睛位于嘴下方的预测。

类似地,在AR光照估计示例中,如果对模型的输入图像在输入图像的上部通常具有天空(例如,在室外图像中)或天花板(例如,在室内图像中),则可以将模型配置为不太可能阳光来自较低区域(例如,下半球,下半部分等),这可以表示现实世界中的阳光的自然发生和/或来源。

在一些实施方式中,本文描述的系统可以跟踪二维图像中的近似关节坐标(例如,在手或身体中)。近似关节坐标可用于正确对准图像中的特定身体部位。例如,本文所述的系统可以确保提供给神经网络的图像包括直立图像(例如,手在脚上方,肩膀在头下方,膝盖在脚上方等)。

在一些实施方式中,本文描述的系统可以对图像执行重力对准以确保每个图像以直立定位提供给神经网络。影像的重力对准可以使用与计算设备相关联的跟踪栈来辅助利用神经网络的计算机视觉任务,从而使用直立图像来训练网络。可以执行重力对准,以使应用的计算机视觉任务受益,这些应用受益于以统一定义的图像的向上、向下或其他方向性评估来接收输入图像。例如,重力对准可为包括下述的任何一个或全部的任务提供计算机视觉益处:面部特征跟踪(例如,在图像中定位面部特征)、面部检测(例如,在图像中定位面部)、身体检测(例如,在图像中定位身体)、身体姿势估计(例如,定位图像中的关节位置)、手姿势估计和/或手跟踪(例如,在图像中定位手关节位置)、光照估计、表面法线估计(例如,估计图像中每个点的表面法线)、常规对象检测(即,图像中位置特定的对象,例如“findthe chair(找到椅子)”)、对象分类(例如,确定此对象是否为椅子等)、语义分割(例如,确定图像像素是否表示表格的一部分等)、身体分割(例如,确定图像像素是否表示人的一部分)、头部分割(例如,确定图像像素是否表示人的头部的一部分)、手分割(例如,确定图像像素是否表示人的手的一部分)、单眼3D深度估计(例如,确定像素的深度而不直接测量等)。

图1示出根据示例实施方式的利用各种光照特性捕获的示例增强现实(AR)场景100。场景100可以由计算设备102的后置相机捕获并且由AR应用104提供。在该示例中,用户106可能正在访问相机模式,该相机模式提供能够使用户106能够生成AR内容并将其放置在捕获的图像周围(例如,即时和实时)的软件和算法。计算设备102可以利用跟踪系统108、训练数据110、神经网络112、光照引擎114和面部跟踪软件116来访问AR环境并放置AR内容。例如,计算设备102可以使用跟踪系统108在捕获场景100期间检测设备定向。例如,检测到的设备102定向可以用于改善使用光照引擎114、训练数据110和神经网络112生成的光照估计。另外,检测到的设备102定向可以用于改善使用面部跟踪软件116生成的面部跟踪估计。

如图1所示,以特定角度(旋转、定向等)保持计算设备102的用户106捕获了场景100。角度可用于确定在将特定图像提供给神经网络112时如何旋转特定图像,例如,以确定光照估计、移动估计、面部跟踪估计等。在此示例中,用户106可以通过以下方式捕获内容:从垂直y轴向右(或向左)扭转设备102,如箭头120所示。本文所述的系统可以确定与用户和/或设备202相关联的相机姿势变化和/或设备姿势变化,以便正确捕获并渲染用户(在前置相机视图中)以及相机馈送(来自前置相机视图和/或后置相机视图)中与用户相关联的任何VR和/或AR内容。类似地,本文所述的系统可以确定姿势变化,该姿势变化与用户或移动设备在与z轴122和/或x轴124相关的方向上的移动相关联。

在一些实施方式中,例如,在捕获场景100期间检测到的设备定向可以与面部跟踪软件116一起使用,以针对计算设备102上的前向相机检测直立面部。跟踪系统108可以确定设备102的移动(即,定位变化)以查明设备定向变化,以便确定捕获图像中描绘的面部的直立方向(例如,重力对准的)。

在一些实施方式中,本文描述的系统和技术提供一种使用运动跟踪栈(例如,表示设备随时间的移动变化)和执行AR会话的计算设备(例如,移动电话)的惯性测量单元(IMU)传感器来照亮AR图像和场景的解决方案。例如,系统和技术可以通过使用这样的传感器和运动跟踪来确定图像和场景的真实光照,以在将图像馈送到神经网络之前检测如何(或是否)旋转由计算设备上的一个或多个图像感测设备捕获的图像。例如,这可以在实时相机馈送上执行,以确保输入图像与检测到的图像中向上的天花板/天空重力对准。

为了训练神经网络112,可以捕获多个计算设备(例如,移动电话)视频以提供训练数据。通常,以纵向定向捕获视频和/或图像,其中以与地面平行的底边保持计算设备,该地面与捕获视频和/或图像的用户相关联。当使用计算设备在AR会话期间触发实时机器学习推断以进行光照估计时,将计算设备保持在横向定向(例如,计算设备的底边垂直于地面)时,估计的光照结果可能对场景中的内容不准确或真实。光照引擎114、面部跟踪软件116和跟踪系统108可以通过从基于纵向的影像推断基于横向的影像来校正这种估计的光照。另外,计算设备102可以触发针对捕获的内容的基于重力的对准,以确保在被提供给神经网络112之前正确地定向内容。例如,计算设备102可以确定内容的旋转是否要被执行,并且如果要执行,将内容旋转到什么程度,以确保在设备102上渲染内容时保持适当的光照和/或跟踪。

因此,本文描述的系统可以使用这样的确定和旋转来确保精确的训练数据110用于训练神经网络112。在一些实施方式中,可以将精确的训练数据110定义为与特定的设备定向、传感器定向和/或图像定向匹配的数据。例如,本文描述的系统可以依赖于基于纵向的影像被正确地指示为直立。另外,本文描述的系统可以模拟基于横向的影像并且配置要以系统预期的直立定向提供给神经网络112的这样的影像。

在AR会话期间,AR感测栈可用于确定何时以及如何旋转来自实时相机馈送的当前图像,以确保将此类图像作为直立图像提供给神经网络112。然后,系统可以对预测的光照施加反向旋转,以使估计的光照与捕获图像的物理相机坐标对准地输出。

图2是根据示例实施方式的具有框架的示例计算设备202的框图,该框架用于确定什么数据用于估计AR体验中呈现的图像的屏幕定向。在一些实施方式中,框架可以用于确定使用什么数据来估计屏幕定向以用于检测面部和/或生成用于AR体验的光照估计。

在操作中,本文所述的系统和技术可以提供一种机制,该机制用于使用机器学习来估计高动态范围(HDR)全向(360度)光照/照明,以照亮并将虚拟内容渲染到真实场景中,以用于AR环境和/或其他合成应用。本文描述的系统和技术还可以在图像的捕获期间确定特定的设备定向,然后可以根据确定的设备定向来生成光照估计和面部跟踪方面以使用该光照估计和面部跟踪方面来渲染场景。

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

计算设备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还可以包括跟踪栈245。跟踪栈可以表示计算设备和/或AR会话随时间的移动变化。在一些实施方式中,跟踪栈245可以包括IMU传感器240(例如,陀螺仪、加速度计、磁力计)。在一些实施方式中,跟踪栈245可以执行图像特征移动检测。例如,跟踪栈245可以用于通过跟踪图像中的特征来检测运动。例如,图像可以包括多个可跟踪特征或与之相关联,例如,可跟踪特征可以在包括该图像的视频中逐帧地进行跟踪。相机校准参数(例如,投影矩阵)通常已知作为机载设备相机的一部分,并且因此,跟踪栈245可以将图像特征移动与其他传感器一起使用以检测运动。所检测到的运动可以用于生成重力对准的图像以提供给神经网络256,该神经网络256可以使用这样的图像来进一步学习并提供光照、附加跟踪或其他图像变化。

计算设备202还可以包括面部跟踪软件260。面部跟踪软件260可以包括(或可以访问)一个或多个面部线索检测器(未示出)、平滑算法、姿势检测算法和/或神经网络256。面部线索检测器可以在一个或多个相机组件236上或与之一起操作,以确定用户的特定面部特征或头部的定位的移动。例如,面部跟踪软件260可以关于由一个或多个相机组件236捕获的面部特征(例如,图像特征)检测或获得计算设备202的初始三维(3D)定位。例如,一个或多个相机组件236可以与软件260一起使用,以相对于相机组件236捕获的面部特征检索计算设备202的特定定位。此外,跟踪系统238可以访问机载IMU传感器240以检测或获取与计算设备202相关联的初始定向。

面部跟踪软件260可以在图像捕获期间检测和/或估计设备202的特定计算设备定向262(例如屏幕定向),例如,以便检测场景中的直立面部。计算设备定向262可以用于确定是否以检测到的和/或估计的屏幕定向来旋转捕获的图像以及将这些图像旋转多少。

在一些实施方式中,传感器系统216可以在图像的捕获期间检测计算设备202(例如,移动电话设备)定向。可以将检测到的计算设备定向262用作输入,以便修改捕获的图像内容,例如,以确保在将捕获的图像内容提供给神经网络256以进行光照估计(利用光照重现软件250)和/或面部跟踪(利用面部跟踪软件260)之前,将捕获的图像内容向上对准(例如,基于重力的对准)。重力对准过程可以检测计算设备的特定度数的旋转,并可以校正图像以便提供具有真实和准确的照明和跟踪的基于纵向和基于横向的图像。

在一些实施方式中,计算设备定向262可以用于生成由光照引擎228使用的神经网络256的横向训练数据264。横向训练数据264可以是原始捕获的基于纵向的图像的裁切和填充版本。

在一些实施方式中,计算设备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的定位和定向。检测到的HMD204的定位和定向可以允许系统依次检测和跟踪用户的注视方向和头部移动。可以将这样的跟踪添加到可以由光照引擎228轮询的跟踪栈,以确定设备和/或用户移动的变化并将相关联的时间与这种移动的变化相关。在一些实施方式中,AR应用220可以使用传感器系统216来确定在物理空间内的用户的位置和定向和/或辨识物理空间内的特征或对象。

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

AR应用220可以经由HMD 204和/或计算设备202的一个或多个输出设备234(诸如显示设备218、扬声器(例如,使用音频传感器242)和/或其他输出设备(未示出))向用户呈现AR内容222或向用户提供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(例如,神经网络112)。神经网络256可以利用内部状态(例如,存储器)来处理输入序列,诸如,当处于AR体验中时用户移动和改变位置的序列。在一些实施方式中,神经网络256可以利用存储器来处理光照方面并且生成用于AR体验的光照估计。

在一些实施方式中,神经网络256可以是递归神经网络(RNN)。在一些实施方式中,RNN可以是具有多层的深度RNN。例如,RNN可以包括长短期存储器(LSTM)架构或门控递归单元(GRU)架构。在一些实施方式中,系统200可以基于确定哪个架构减少了错误和/或时延来使用LSTM和GRU架构。在一些实施方式中,神经网络256可以是卷积神经网络(CNN)。在一些实施方式中,神经网络可以是深度神经网络。如本文所使用的,可以使用任何数量或类型的神经网络来实现场景的特定光照估计和/或面部位置。

神经网络256可以包括检测器,该检测器对图像进行操作以计算例如光照估计和/或面部位置,以在面部/用户在世界空间中移动时对预测的光照和/或面部位置进行建模。另外,神经网络256可以操作以计算未来的几个时间步长的光照估计和/或面部位置。神经网络256可包括检测器,该检测器对图像进行操作以计算例如设备位置和光照变量,以例如基于设备定向来对场景的预测光照进行建模。

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

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

捕获的图像和相关联的光照可以用于训练神经网络256。训练数据(例如,捕获的图像)可以包括在各种(例如,不同的)光照条件下具有测量的或已知的双向反射分布函数(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训练数据。

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之类的移动电子设备上。然而,容纳一个或多个相机和/或图像传感器或与一个或多个相机和/或图像传感器相关联的其他电子设备可以被用于执行本文所述的技术。在一些实施方式中,跟踪传感器和相关联的跟踪栈也可以用作输入以执行光照估计技术。

图3A至图3B示出根据示例实施方式的从捕获的图像内容生成横向图像内容的示例。例如,可以将所生成的横向图像内容作为横向训练数据264提供给神经网络256。

图3A示出以基于纵向的定向捕获的图像302A。图像302A可以是单个图像/场景,或者可以是视频。在图像302A的捕获期间可以使用多个不同的反射球体304、306和308。图像302A可以由计算设备202处理,以确定设备定向,确定图像定向以及生成具有针对此类定向上的差异的调整的输出。可以将结果输出提供给神经网络以生成光照估计和/或面部跟踪任务。在一些实施方式中,例如,这样的输出可以用作神经网络256的横向训练数据264。通常,神经网络256的训练数据可以包括捕获的内容(以纵向模式)和使用基于纵向的捕获内容生成的横向内容,如下面详细描述的。

横向训练数据264可包括使用放置在相机视场内的各种反射球体(例如,球体304、306和308)捕获的视频和/或图像的修改版本。此类捕获的内容可以使背景影像不被遮挡,同时利用具有多种反射功能的材料在一次曝光中显示出不同的光照线索。横向训练数据264可用于训练深度卷积神经网络(例如,神经网络256),以通过将LDR地面真实球体图像与利用使用横向内容的基于图像的重新光照的预测照明渲染的那些图像进行匹配来从LDR背景图像的未遮挡部分回归为HDR光照。

例如,如果要照亮图像302A并将其渲染以显示给计算设备202的用户,则系统可以使用捕获的内容310A来训练神经网络256以生成光照和/或其他跟踪,以用于在设备202上真实地光照和渲染场景中的内容。如果系统216检测到计算设备202定向与用于捕获内容310A的基于纵向的捕获模式重力对准,则可以使用这种方法。在这样的示例中,系统可以访问图像302A并且裁切图像以去除球体304、306和308。剩余内容310A可以用于生成用户通过设备202可以访问的场景的光照估计。

因为光照引擎228和面部跟踪软件260期望接收重力对准的图像内容(例如,在天空和/或天花板位于图像内容上半部分的直立定位,或者面部跟踪情况下眼睛位于图像中的嘴唇上方),所以系统可以确定基于纵向的捕获是重力对准的,因此,内容310A可以用于生成光照估计或跟踪的面部特征,而无需进行旋转修改。

然而,如果系统确定特定设备定向与特定图像内容定向不匹配,则系统可以校正失配。例如,如果系统检测到横向模式(或在横向模式的阈值角度之内)中正为AR会话访问图像内容,则系统可以调整图像内容以确保为AR会话(例如,AR会话中的图像或场景)真实地渲染AR环境内的光照估计、跟踪和内容放置。

例如,如果用户以横向定向使用计算设备来访问AR会话,则传感器系统216和光照引擎228可以一起起作用以生成基于横向的内容,以适当地照亮在AR会话中访问的内容。设备202可以修改基于纵向的捕获内容以生成基于横向的内容。例如,计算设备202可以通过将相同的球体304、306和308来裁切出去来使用内容310A生成横向训练数据264,但是可以另外裁切(例如,并且掩模)内容的上部312以生成内容310B。然后可以用白色、灰色、黑色或其他颜色的像素填充上部312。这样的掩模可以确保对于捕获的纵向图像和所生成的横向图像两者都保持图像纵横比。

推断时,设备202可以检索横向图像302B并生成用于训练的新图像。例如,设备202可以检索横向(例如,从纵向旋转而来)图像302B,裁切内部部分(例如310B),用像素312填充部分310B,然后可以将所生成的图像(以与纵向图像310A相同的分辨率)发送给神经网络256。

另外,跟踪系统238可能已经在推断时检测到设备202处于横向定向,因此,当从引擎228预测光照估计时,设备202可以提供从实际图像传感器244(例如,相机传感器)对准的位置旋转了大约90度的光照预测。因此,传感器输出用于预旋转输入图像,将图像内容302B的左部分和右部分裁切出去,并使预测的光照估计不旋转回设备202的图像传感器244的定向。在操作中,设备202可以利用作为跟踪栈的一部分的传感器栈,使得在生成可以在渲染场景中表示的光照和/或跟踪更新时也可以考虑设备移动和用户移动。

在一些实施方式中,诸如图像302A之类的输入图像可用于生成四个裁切版本,其表示相机可被移动以使用前置或后置相机捕获内容的四个不同旋转。在这样的示例中,可以不使用跟踪栈。

在一些实施方式中,例如,如果系统确定设备尚未移动超过阈值水平,则可以不执行本文所述的旋转和校正。类似地,如果设备202确定设备和/或图像的先前状态足够,则可以不修改特定图像。因此,可以不执行任何旋转图像、移动内容和/或更新光照的变化。

然而,如果替代地设备202确定从横向模式到纵向模式的移动或相反,则设备202可以触发设备的最后状态的重置以基于检测到的设备定向的变化或其他移动来触发跟踪和/或光照的新更新。

图4是示出根据示例实施方式的计算设备定向图和用于执行基于重力的对准的此类定向的转换的示例。设备定向图包括检测到的电话(例如,计算设备202)定向栏402、VGA图像栏404、重力对准角度栏406、旋转之后的VGA图像栏408和显示器旋转栏410。

通常,系统200(例如,在计算设备202上)可以使用传感器(例如,IMU 240、图像传感器244、相机组件236等)和/或传感器系统216来检测电话定向。可以在内容捕获期间检测设备定向。例如,在捕获图像内容期间,跟踪系统238可以检测到3-DoF和/或6-DoF设备姿势。设备姿势和/或相机姿势可以用于触发定向旋转,以改善用于渲染以设备202的检测到的定向捕获的图像的输出。改善的输出可以涉及提高的准确性和对捕获的内容的光照估计的渲染。

在操作中,传感器系统216可以在图像捕获期间检测计算设备(例如,移动电话设备)定向262。检测到的计算设备定向262可以用于修改捕获的图像内容,以确保在将捕获的图像内容提供给神经网络256以进行例如光照估计(使用光照重新软件250)和/或面部跟踪(使用面部跟踪软件260)之前,将捕获的图像内容向上对准(基于重力的对准)。

传感器系统216可以检测计算设备202的度数的特定旋转。例如,系统216可以检测计算设备202是否从地平面(例如,平行于z轴122)以0度、90度、180度和270度倾斜和/或旋转。在一些实施方式中,系统216可以检测从x轴、y轴或z轴以大约十度的增量并且围绕任何一个这样的轴从零至360度的倾斜和/或旋转的变化度数。例如,系统216可以检测到设备202从地平面(例如,平行于z轴122)从0度、90度、180度和270度以大约正或负十度旋转。在一些实施方式中,系统216还可以确定俯仰,偏航和滚转以合并设备202的倾斜方面。

如图4所示,系统216可以检测到零度的设备定向,如重力对准元素414所示的,其中设备202以零(或小于10度)的倾斜或旋转被保持在的直立垂直定位。在此,系统216可以确定正在捕获的内容可以用于生成横向训练数据和/或基于横向的内容。因为图像传感器244和相机组件236可能无法辨识设备定向变化,所以IMU 240和/或其他跟踪传感器可以确定设备和/或相机姿势,以便将图像内容校正到直立和重力对准的定位,如通过例如重力对准元素414、418和420所指示的。因此,无论如何保持计算设备202,系统216都可以确定生成用于神经网络256的图像(例如,场景)的直立且重力对准的方式,以确保准确地执行光照估计,这提供了渲染图像(例如,场景)时生成和渲染真实光照的优点。

通常,如果设备在捕获期间被保持为使机载相机403定位平行于计算设备202的底边205并在其上方,则设备定向可以为处于零度。在一些实施方式中,在这样定位的顺时针方向(从法线到边205顺时针旋转)、逆时针方向(从法线到边205逆时针旋转)、向前(从法线到边205旋转)或向后(从法线到边205旋转)十度内,设备定向仍然可以视为零度。

类似地,如果设备在捕获期间被保持为使机载相机403定位平行于计算设备202的底边205并在该定位的左侧,则可以将设备定向检测为大约270度。在一些实施方式中,在这样的定位的顺时针方向(从法线到边205顺时针旋转)、逆时针方向(从法线到边205逆时针旋转)、向前(从法线到边205旋转)或向后(从法线到边205旋转)十度内,设备定向仍然可以被视为是270度。

类似地,如果设备在捕获期间被保持为使机载相机403定位平行于计算设备102的底边205并在其下方,则可以将设备定向检测为大约180度。在一些实施方式中,在这样的定位的顺时针方向(从法线到边205顺时针旋转)、逆时针方向(从法线到边205逆时针旋转)、向前(从法线到边205边缘旋转)或向后(从法线到边205旋转)十度内,设备定向仍然可以被视为是180度。

类似地,如果设备在捕获期间被保持为使机载相机403定位平行于计算设备102的底边205并在该定位的右侧,则可以将设备定向检测为大约90度。在一些实施方式中,在这样的定位的顺时针方向(从法线到边205顺时针旋转)、逆时针方向(从法线到边205逆时针旋转)、向前(从法线到边205旋转)或向后(从法线到边205旋转)十度内,设备定向仍可以被视为是90度。

如果系统216确定设备202定向处于纵向定位,但是确定捕获的内容可以用于生成基于横向的训练影像,则系统可以确定捕获的图像401要重新对准(例如,逆时针旋转)大约90度。例如,如果系统216指示可以生成基于横向的图像内容,则系统216可以触发捕获的图像401逆时针旋转大约90度,如重力对准元素418所指示的,以生成旋转图像416。

当将图像内容提供给神经网络256进行光照估计时,可以根据电话定向提供图像416,如重力对准元素420所指示的。例如,可以将图像416逆时针旋转大约270度,并且/或者对其进行裁切,并将其作为输入提供给神经网络256,以用于生成光照估计。在完成光照估计之后,光照引擎228可以使用光照估计来触发图像内容420的渲染,并且可以触发重新对准回物理相机空间坐标(如电话定向402所示)。在这样的示例中,当被渲染用于显示时,来自神经网络的输出图像可以以重力对准角406的反向旋转。

在另一个示例中,如果系统216确定设备202定向为横向定向,如重力对准元素422所指示的,并且正在捕获的内容为横向(例如,零度并且未从相机传感器旋转,如重力对准元素424所指示的),则系统216可以确定捕获的图像426将不会从旋转/重新对准中受益。例如,如果系统216指示正在捕获基于横向的图像内容,并且设备202处于横向定位,其中天空/天花板在捕获中被指示为直立,则系统可以保留原始捕获和捕获期间使用的对准,如重力对准元素428所指示的。相反,系统216可以裁切(未示出)捕获的内容的中心部分(例如,感兴趣区域),并且可以零填充(以黑色像素、白色像素、灰色像素等)顶部的基于横向的图像,以确保图像内容与使用基于纵向的定向捕获的图像大小相同。如上所述,当将图像内容提供给神经网络256以进行光照估计时,可以以捕获、裁切和填充的定向来提供图像。

如果系统216确定设备202定向从直立反转(例如,相机在设备202的底部),如重力对准元素430所指示的,但是内容可以用于生成横向训练数据,则系统216可以将内容旋转90度,如图像426和重力对准元素434所指示的。当将图像内容提供给神经网络256进行光照估计时,可以根据设备定向提供图像426,如由重力对准元素436所指示的,其指示从内容432到内容433逆时针旋转90度。完成光照估算后,光照引擎228可以使用光照估计触发图像内容的渲染,并可以触发重新对准回物理相机空间坐标(如手机定向402所示)。在这样的示例中,来自神经网络256的输出图像可以以重力对准角406的反向旋转。

在另一个示例中,如果系统216确定设备202定向是从直立的纵向定向顺时针旋转的横向定向,如重力对准元素382所指示的,并且正在捕获的内容440处于横向(例如,180度并从相机传感器旋转,如由重力对准元素442所指示的),则系统可以确定捕获的图像440可以用于生成神经网络256的基于横向的训练数据。因此,图像440可以旋转(例如,重新对准)大约180度以确保天花板或天空朝上,例如,如图像443和重力对准元素444所指示的。

另外,系统216可以裁切(未示出)捕获的内容440的中心部分(例如,感兴趣区域),并且可以零填充(以黑色像素、白色像素、灰色像素等)顶部的基于横向的图像440,以确保图像内容与使用基于纵向的定向捕获的图像大小相同。如上所述,当将图像内容提供给神经网络256以进行光照估计时,可以以旋转的定向提供图像并对其进行裁切和填充。当要渲染图像内容时,可以执行对重力对准的旋转(例如180度)的反向旋转(例如-180度),以提供与物理相机空间对准的光照和/或面部跟踪。

尽管在上面的示例中描述了后置相机403,但是可以在本文所述的系统和技术中替代并使用前置相机450,以应用于利用前置相机捕获的包括用户的内容。

图5A-5D示出根据示例实施方式的提供用于AR体验中的面部跟踪的基于重力的对准的示例。基于重力的对准可以确保提供给面部跟踪中使用的神经网络的输入图像是直立的。例如,面部跟踪软件260可以用于确定使用哪些数据来估计屏幕定向并且因此设备定向,以便检测例如由设备202上的前置相机捕获的直立面部。

在一些实施方式中,例如,可以执行用于面部跟踪的基于重力的对准以确保提供给神经网络256的图像以直立的方式被提供,在该直立的方式中眼睛位于嘴上方。在这样的确定中,可以考虑屏幕定向和/或图像内容。例如,跟踪系统238可以确定3-DoF和/或6-DoF设备或相机姿势。姿势可用于估计当前屏幕定向,以便确定将训练图像提供给神经网络256的定向。

例如,传感器系统216可以确定设备202的3-DoF姿势。如果该姿势处于根据表面定义的预定义法线向量的阈值水平之内,则可能无法计算新的屏幕定向。例如,如果计算设备以相对于表面大约8度至大约12度的倾斜在表面上朝上或朝下,则系统216可以维持当前的屏幕定向。例如,如果检测到额外的倾斜或额外的方向性旋转,则系统216可以生成在对表面的法线向量和从3-DoF姿势计算出的相机向量之间的量化的旋转。

参照图5A,在由计算设备506A上的前置相机504捕获的图像502中示出了用户。以围绕y-z轴(由y轴120和z轴122示出)对准的纵向定向示出了设备506A。设备506A的定向可以由跟踪系统238确定。面部跟踪软件260可以使用设备202的计算设备定向262来确保所捕获的图像502是直立的(即,具有在其中眼睛在嘴上方的直立的面部)。

如果系统216确定设备202定向为零度,但是内容可以用于生成横向影像,则系统可以确定图像502将重新对准大约270度,以确保使用图像的神经网络可以适当地跟踪要在AR会话中与图像一起显示的内容,并例如在与用户的直立面部相关联的位置中提供要显示的内容。系统可以触发逆时针旋转捕获的图像大约270度,从而生成图像508。当将图像内容提供给神经网络256以进行光照估计和/或面部跟踪时,虚线内的旋转图像508可能被裁切并直立旋转,如在将图像510提供给神经网络256之前的图像510所示。完成面部跟踪任务后,面部跟踪软件260可以使用面部跟踪触发图像内容的渲染,并且可以触发重新对准回物理相机空间坐标(如设备506A的设备定向所示)。在这样的示例中,来自神经网络的输出图像可以以270度的重力对准角度的反向旋转。

如图5B所示,用户可能正在访问设备506B上的AR体验并且使用相机来捕获图像内容512。系统216可以确定设备506B正在以横向模式捕获内容。在这样的示例中,内容可能不会被旋转。相反,系统216可以裁切所捕获的内容512的中心部分514(例如,感兴趣区域),并且可以零填充(以黑色像素、白色像素、灰色像素等)顶部516中的基于横向的图像,以确保图像内容与使用基于纵向的定向捕获的图像的大小相同。如上所述,当将图像内容提供给神经网络256以进行面部跟踪时,可以以捕获、裁切和填充的定向来提供图像518。

如图5C所示,系统216可以确定设备506C正在以纵向模式捕获内容,但是相机设备处于直立的反转定位。例如,相机504位于设备506C的下部,而不是如设备506A所示的直立定位。如果系统216要使用利用处于反转定位的设备506C捕获的内容520生成横向定向的内容,则系统216可能必须将内容520顺时针旋转90度,如内容522所示。在将图像内容提供给神经网络256以进行面部跟踪估计时,图像522可以被裁切和填充,如区域524所示,并且可以逆时针旋转90度重新定向,如图像526所示。在完成面部跟踪任务后,面部跟踪软件260可以使用面部跟踪来触发图像内容526的渲染,并且可以触发重新对准回设备506C所示的物理相机空间坐标。在这样的示例中,来自神经网络的输出图像可以以旋转的图像526所示的重力对准角度的反向来旋转。

如图5D所示,如果系统216确定设备506D处于横向定向(如由设备506A指示的从直立纵向定向顺时针旋转)并且正在捕获的内容530处于横向定位(例如,从相机传感器旋转180度),则系统216可以确定要将捕获的图像530旋转(例如,重新对准)约180度,以确保天花板或天空向上,例如,如旋转的图像532所示。为了使用图像532生成额外的横向训练数据,系统216可以裁切捕获的内容530的中心部分532(例如,感兴趣区域),并且可以零填充(以黑色像素、白色像素、灰色像素等)侧面部分534和侧面部分536中的基于横向的图像532,以确保图像内容538在被提供给神经网络256时与使用基于纵向的定向捕获的图像大小相同。如上所述,当将图像内容提供给神经网络256以进行面部跟踪时,可以以旋转的定向提供图像532,并对其进行裁切和填充以生成图像538。当要渲染图像内容时,可以执行重力对准的旋转(例如,180度)的反向旋转(例如,从法线到地平面的-180度)以提供与物理相机空间对准的面部跟踪。

图6是根据示例实施方式的推断图像内容的重力对准的示例过程600。关于图2中描述的电子设备的示例实施方式描述了过程600,但是应当理解,过程600可以由具有其他配置的设备和系统来实现。

简而言之,计算设备202可以并入确定的定向知识,该定向知识指示给定输入图像的直立定位,以供跟踪图像中捕获的内容(例如,面部、对象等)以及跟踪面部、对象等的周围的其他内容时使用。例如,对于面部特征跟踪器,设备202可以确定在模型(例如,神经网络256)处接收的输入图像中的面部是否被预先旋转,使得眼睛在用户的嘴和鼻子的上方,该模型可以了解面部的不同部分之间的空间关系,并且可以配置为不太可能提供眼睛位于嘴下方的预测。类似地,在AR光照估计示例中,如果对模型的输入图像通常在输入图像的上部具有天空(例如,在室外图像中)或天花板(例如,在室内图像中),则模型可以配置为不太可能产生来自较低区域(例如,下半球、下半部分等)的阳光,这可能表示自然发生和/或现实世界中的阳光的来源。

在框602处,过程600可以包括在处理器处从计算设备上的图像捕获设备获得第一图像。例如,相机组件236可以使用图像传感器244来捕获用于计算设备202的任何数量的图像。此外,来自处理器组件212或计算设备202中的另一机载设备的任何数量的处理器可以在整个过程600中充当处理器。在一些实施方式中,至少一个图像包括实时相机图像馈送,其功能是生成多个图像。在一些实施方式中,至少一个传感器包括与在实时相机图像馈送中捕获的跟踪特征相关联的跟踪栈。例如,当相机组件236正在捕获视频时,传感器系统216可以捕获并评估考虑到跟踪栈245的一个或多个图像,以便生成重力对准的图像以呈现给神经网络256。

在框604处,过程600包括使用处理器和至少一个传感器检测执行AR会话并与第一图像的捕获相关联的计算设备的设备定向。例如,IMU 240可以确定设备定向,诸如纵向、横向、反向纵向或反向横向和/或纵向、横向、反向纵向和/或反向横向之间的另一角度。设备202的定向可以基于指示设备202设备姿势或在空间中的位置的3-DoF传感器数据。在一些实施方式中,在AR会话在计算设备202上操作期间,获得检测到的设备定向。在一些实施方式中,可以生成和/或旋转图像以匹配与先前捕获的训练数据相关联的捕获定向。例如,如果先前捕获的训练数据被检测为纵向定向,则可以旋转以不同方式定向的内容,以匹配纵向定向的先前捕获的训练数据。

在框606处,过程600包括使用处理器和至少一个传感器检测与计算设备相关联的移动变化。例如,移动变化可以与由设备202使用IMU测量和/或其他传感器系统216跟踪和/或测量所生成的跟踪栈相关联。在一些实施方式中,在图像捕获期间,当用户移动或旋转/倾斜设备202时,实时检测移动变化。在一些实施方式中,第一图像包括(或表示)实时相机图像馈送,该实时相机图像馈例如生成将被重力对准的多个图像。例如,可以基于检测到的与计算设备202相关联的移动变化(在跟踪栈中)连续地对准多个图像。例如,至少一个传感器可以是计算设备202的IMU传感器,并且移动变化可以表示与IMU 240和计算设备202相关联的跟踪栈。

在一些实施方式中,框606可以是可选的。例如,设备移动(即,设备202的移动变化)可能没有被检测到,但是设备202仍可以确定定向并评估或访问与设备202相关联的跟踪栈245,如上面关于图2所描述的。

在框608处,过程600包括基于定位和移动变化来确定旋转第一图像的旋转角度。例如,计算设备202可以确定如何旋转特定图像以实现对神经网络256的直立输入,以执行面部跟踪估计和/或光照估计和/或重力对准的内容(例如,对象、元素等)用于在AR环境中呈现内容。另外,当已经获取了仅纵向定向的训练影像以进行训练时,可以确定旋转角度以使得能够实现模拟横向定向的训练影像。

在框610处,过程600包括将第一图像旋转到旋转角度以生成第二图像。例如,所确定的设备202的定向可以用于例如旋转第一图像310A以生成第二图像310B。在一些实施方式中,旋转角度用于对准第一图像以生成重力对准的第二图像。例如,当第二图像被提供给神经网络256时,旋转角度可以被选择为使得天空或天花板位于第二图像的上部。在一些实施方式中,第二图像310B被神经网络256用作训练数据以生成横向定向的光照估计,如图3A-5D所示。

在框612处,过程600包括使用处理器将第二图像提供给至少一个神经网络,以基于将第二图像提供给神经网络来为第一图像生成光照估计。例如,如上所述,可以对第二图像(或者在实时图像馈送的情况下的任何数量的图像)执行光照估计,并且这样的光照估计可以是准确的,因为过程600确保了提供给神经网络256的图像处于直立定位,其中例如基于天空/天花板的图像内容在图像的上部。

在一些实施方式中,生成第二图像以匹配与先前捕获的训练数据相关联的捕获定向。例如,为了确保提供给神经网络256的图像是重力对准的,过程600可以对被确定为不匹配与用作训练数据的图像相关联的定向的图像执行旋转。在一些实施方式中,第二图像用于生成横向定向的光照估计,其包括重力对准的光照。在一些实施方式中,第二图像被用作对神经网络的输入,以生成在内容中具有至少一个重力对准的面部的横向定向的内容。

在一些实施方式中,第一图像在计算设备202上的AR会话中被渲染,并且第二图像作为重力对准的内容提供给至少一个机器学习模型(例如,与计算设备202相关联的神经网络256)以触发增强现实(AR)体验和/或一个或多个与第一图像相关联的AR特征和光照估计和/或面部跟踪估计。例如,第一图像可以被渲染为实时相机馈送,并且对第二(重力对准的/旋转的)图像执行机器学习推断,其可以用于将AR内容的叠加添加到第一图像。在另一示例中,可以利用旋转的面部跟踪估计在AR会话期间渲染第一图像。在一些实施方式中,可以不渲染面部跟踪估计,但是可以替代地将其用于渲染其他内容或实现特定的AR体验和/或特征。例如,第二图像可以被提供给神经网络256以生成面部跟踪估计,该面部跟踪估计可以用于将虚拟化妆品渲染到被跟踪的面部并且将化妆品(作为AR内容)叠加到被跟踪面部的实时相机馈送上。在另一个示例中,神经网络可以使用第一图像、第二图像和检测何时跟踪的面部特征形成微笑的神经网络,并在检测到微笑的精确时间期间触发静止图像捕获。

在一些实施方式中,移动变化与在计算设备202上操作的增强现实(AR)会话相关联,并且光照估计以旋转角的反向旋转,并且第一图像在计算设备上的AR会话中并使用旋转的光照估计来渲染。在一些实施方式中,使用旋转的光照估计来生成AR内容并将其渲染为在第一图像上的叠加。例如,第一图像可以在计算设备202上的AR会话中被渲染为背景图像,并且光照估计可以用于将特定内容渲染到图像上或围绕、部分叠加或部分遮挡第一图像。

在一些实施方式中,过程600还可包括使用多个图像来生成用于神经网络256的训练数据。训练数据可包括基于捕获的纵向定向图像生成的(例如,创建的、产生的等)横向定向图像

在一些实施方式中,设备202可以利用处理器组件212、计算设备定向262和面部跟踪软件260来跟踪图像中的捕获的面部(或头部),以便在AR环境中生成例如根据使用神经网络256生成的面部跟踪估计来正确地跟踪和放置的内容。例如,代替使用第一图像到第二图像的旋转来提供光照估计,计算设备202可以代替地使用处理器将第二图像提供给至少一个神经网络以生成针对第一图像的面部跟踪估计。可以将第二图像作为重力对准的内容提供给至少一个机器学习模型(例如,神经网络256),以触发与第一图像相关联的至少一个增强现实(AR)特征。这样的特征可以包括音频内容、视觉内容和/或触觉内容,以在AR环境中提供AR体验。

在一些实施方式中,图像捕获设备是计算设备202的前置图像捕获设备,其中用户的面部与背景内容一起被捕获。在一些实施方式中,使用前置图像捕获设备捕获第一图像,并且第一图像包括以旋转角度旋转的至少一个面部以生成第二图像。第二图像可以和与面部相关联的眼睛对准,该眼睛位于与面部相关联的嘴上方。

在一些实施方式中,移动变化与在计算设备上操作的增强现实(AR)会话相关联,并且面部跟踪估计以旋转角的反向旋转。例如,如果旋转角指示90度的顺时针旋转,则旋转角的反向将是逆时针旋转90度(例如,-90度)。可以使用旋转的面部跟踪估计在计算设备202上的AR会话中渲染第一图像。

在一些实施方式中,可以生成面部跟踪示例中的第二图像以匹配与先前捕获的训练数据相关联的捕获定向。此类数据可用于生成具有正确对准的面部的横向定向内容。例如,计算设备202可以使用面部跟踪软件260、计算设备定向和神经网络256来生成横向定向内容,在该内容中具有至少一个重力对准的面部。在一些实施方式中,第一图像在计算设备上的AR会话中被渲染为背景,并且面部跟踪被用于将其他内容(例如,音频内容、VR内容、视频内容、AR内容、光照等)渲染到第一图像上。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关技术
  • 重力对准影像的机器学习推断
  • 一种基于机器学习成员推断攻击的数据集认证方法及系统
技术分类

06120112960442