本公开一般涉及影像捕捉和处理,更具体涉及使用捕捉的影像的机器视觉。
背景技术:
机器视觉技术,诸如同时定位和映射(slam)、增强现实(ar)以及虚拟现实(vr),通常依赖于通过对设备所捕捉的本地环境的影像的分析而进行的对设备本地环境内的对象的识别。这样的技术的效率可以通过识别设备的位置而得到增强。但是,用于定位设备的传统技术通常不具有足够的分辨率来增强对象识别。进一步,用来识别设备的位置的时间量限制了位置信息的效用。
附图说明
通过参考附图,本领域技术人员可以更好地理解本公开并使得许多特征和优点变得显然。不同图中相同附图标记的使用指示相似或相同的项目。
图1是根据本公开的至少一个实施例的图示说明被配置用于通过使用非图像传感器数据来估计姿态并使用图像传感器数据来改善姿态而确定电子设备在本地环境中的相对姿态的电子设备的图。
图2是根据本公开的至少一个实施例的图示说明在自由参照架构中基于对图1的电子设备的姿态跟踪来进行改善姿态的调整的图。
图3是根据本公开的至少一个实施例的图示说明用于识别图1的电子设备的姿态的系统的图。
图4是根据本公开的至少一个实施例的图示说明用于从捕捉的本地环境的影像来确定空间特征数据的电子设备的处理系统的框图。
图5是根据本公开的至少一个实施例的图示说明基于图像传感器数据和非图像传感器数据来确定电子设备在本地环境中的姿态的电子设备的操作的流程图。
图6是根据本公开的至少一个实施例的图示说明平衡在图1的电子设备处的定位和运动估计的资源指派的图。
图7是根据本公开的至少一个实施例的图示说明平衡用于在图1的电子设备处的定位和运动估计的资源指派的方法的流程图。
图8是根据本公开的至少一个实施例的图示说明具有隐私设定信息以限制对该特征描述符的访问的特征描述符的框图。
图9是根据本公开的至少一个实施例的图示说明基于隐私设定而限制对特征描述符的访问的方法的流程图。
具体实施方式
下面的描述旨在通过提供涉及基于电子设备的本地环境中的对象的基于图像的识别来进行电子设备的相对方位或相对取向的确定的多个具体实施例以及细节来传递对本公开的透彻的理解。但是,要理解的是,本公开不限于这些仅仅为示例的具体实施例和细节,本公开的范围因此旨在仅由所附权利要求书及其等价物来限定。进一步要理解的是,普通技术人员根据已知系统和方法将认识到本公开的使用,在任意数量的实施例中用于其想要的目的和利益,取决于具体设计及其他需求。
图1-9图示说明了各种技术用于确定电子设备在本地环境内的姿态,由此支持基于位置的功能,诸如增强现实(ar)功能、视觉测程或其他同时定位和映射(slam)功能等。术语“姿态”这里用来指代方位(也被称为位置)和取向(也被称为视点)之一或二者。在一些实施例中,电子设备包括一个或多个成像相机。在设备处的重置事件之后,电子设备基于诸如全球定位系统(gps)数据、蜂窝塔三角测量信息、无线网络地址位置数据等的非视觉位置数据(也就是,以非视觉的方式指示位置的数据)来识别设备的姿态的估计。如这里所使用的,重置事件是在设备处使得设备放置或返回到指定初始起动状态的事件,且可以包括设备的启动、设备的硬重置、设备的软重置等。电子设备的一个或多个成像相机可以被用于捕捉电子设备的本地环境的影像,且该影像被用于改善估计的姿态以识别电子设备的改善的姿态。因为改善的姿态是基于非视觉和视觉位置数据来识别的,改善的姿态可以相对快速地被识别。进一步,改善的姿态可以被用于识别附加的影像信息,诸如环境特征,其可以被用于增强电子设备的基于位置的功能。例如,改善的姿态可以被用于识别电子设备的所在位置的已知特征,电子设备所使用的这些已知特征可被用于生成模拟已知特征的视觉网。视觉网可以被用于创建对电子设备的本地环境的模拟,允许用户与模拟的本地环境交互。
在至少一个实施例中,为了改善估计的姿态,电子设备可以使用捕捉的影像来识别表示本地环境中的对象以及它们与电子设备的距离的空间特征。电子设备生成特征描述符集合来描述空间特征,且将所生成的集合与识别已知(例如,之前识别的)空间特征及其对应位置的所存储的特征描述符的子集进行比较。响应于将所生成的特征描述符的集合与一个或多个所存储的特征描述符相匹配,电子设备基于在相匹配的所存储的描述符中识别的位置信息来改善其估计的位置。在至少一个实施例中,所存储的描述符的子集基于估计的位置而被识别,由此加速匹配过程。
与匹配所生成的描述符的集合同时,电子设备可以在任意或“自由”参照架构(有时这里被称为“自由空间”)中跟踪其姿态的变化(例如,其位置、视点或二者的变化)。一旦电子设备已经基于生成的描述符的集合而识别出改善的姿态,其可以基于自由参照架构中的姿态变化而调整改善的方位以便识别电子设备的当前的改善姿态。电子设备由此本地化其参照架构,允许增强的基于位置的功能,诸如基于电子设备的姿态,电子设备所捕捉的影像的显示中的附加信息的图形覆盖。
图1根据本公开的至少一个实施例图示说明了电子设备100,被配置用于使用图像和非图像传感器数据来支持基于位置的功能,诸如slam或ar。电子设备100可以包括用户便携移动设备,诸如平板计算机、具有计算能力的蜂窝电话(例如,“智能电话”)、笔记本计算机、个人数字助理(pda)、游戏系统遥控器、电视遥控器等。在其他实施例中,电子设备100可以包括另一类型的移动设备,诸如汽车、遥控无人机、或其他空运设备等。为了易于说明,电子设备100通常在此以移动设备的示例场境来描述,诸如平板计算机或智能电话;但是,电子设备100不限于这些示例实施方式。
在描绘的示例中,电子设备100包括壳体102,壳体102具有表面104,与另一表面106相对。在示例的所描绘的薄矩形方块形状因数中,表面104和106大致平行且壳体102进一步包括在表面104和表面106之间的四个侧表面(顶、底、左、和右)。壳体102可以用许多其他形状因数来实现,且表面104和106可以具有非平行的取向。对于图示的平板实施方式,电子设备100包括设置在表面106处的显示器108,用于呈现可视信息给用户110。因此,为了易于参考,表面106在此被称为“面向前”表面,而表面104在此被称为“面向用户”表面,作为电子设备100相对于用户110的这个示例取向的反射,尽管这些表面的取向不受这些相对名称的限制。
电子设备100包括多个传感器以获得关于电子设备100的本地环境112的信息。电子设备100经由设置在面向前的表面106的成像相机114和116和深度传感器120以及设置在面向用户表面104的成像相机118获得用于本地环境112的视觉信息(影像)。在一个实施例中,成像相机114被实现为具有鱼眼镜头或其他广角镜头的广角成像相机以提供面向表面106的本地环境112的更宽视角。成像相机116被实现为具有典型视角镜头的窄角成像相机以提供面向表面106的本地环境112的更窄视角。因此,成像相机114和成像相机116在此也被分别称为“广角成像相机114”和“窄角成像相机116”。如下面更详细所述,广角成像相机114和窄角成像相机116可以在面向前的表面106上定位和取向,使得它们的视野重叠开始于与电子设备100的指定距离,由此经由图像分析能够进行在重叠视野的区域中定位的本地环境112中对象的深度感测。成像相机118可以被用于捕捉用于面向表面104的本地环境112的图像数据。进一步,在一些实施例中,成像相机118被配置用于跟踪头部122的移动或面部识别,并由此提供头部跟踪信息,其可被用于调整经由显示器108呈现的影像的视图。
成像相机114、116和118中的一个或多个可以服务电子设备100除了支持方位和取向检测之外的其他成像功能。为了说明,窄角成像相机116可以被配置或优化用于用户发起的图像捕捉,诸如用于在智能电话和平板计算机中常见的消费者水平的照片和视频的捕捉,且成像相机118可以被配置或优化用于也在智能电话和平板计算机中常见的视频会议或视频电话,而广角成像相机114可以主要配置用于位置检测用途的机器视觉图像捕捉。该特定于机器视觉的配置可以针对光敏感度、镜头失真、帧率、全局快门性能、以及在关注例如像素分辨率的以用户为中心的相机配置上从图像传感器更快数据读出,来排列优先级。
在一个实施例中,深度传感器120使用调制光投影仪119来将调制光图案从面向前的表面106投射到本地环境中,并且使用成像相机114和116之一或二者来在调制光图案从本地环境112中的对象反射回时捕捉调制光图案的反射。这些调制光图案可以是空间调制的光图案或时间调制的光图案。所捕捉的调制光图案的反射在此被称为“深度影像”。深度传感器120随后可以基于对深度影像的分析而计算对象的深度,也就是,对象与电子设备100的距离。从深度传感器120获得的所产生的深度数据可以被用于校准或以其他方式增强从对由成像相机114和116捕捉的图像数据的图像分析(例如,立体分析)而获得的深度信息。替选地,来自深度传感器120的深度数据可以代替从图像分析而获得的深度信息而使用。为了说明,多视图分析通常更适合用于明亮照明条件以及对象相对远时,而基于调制光的深度感测更好地适用于较低照明条件或者当观测的对象相对接近(例如,在4-5米内)时。因此,当电子设备100感测到其在户外或者以其他方式处于相对较好照明条件时,电子设备100可以选择使用多视图分析来确定对象深度。相反地,当电子设备100感测到其在室内或以其他方式处于相对较差照明条件时,电子设备100可以切换到经由深度传感器120使用基于调制光的深度感测。
电子设备100还可以依赖于非图像信息进行姿态检测。这个非图像信息可以由电子设备100经由诸如陀螺仪或环境光传感器的一个或多个非图像传感器(图1中未示出)来获得。在至少一个实施例中,非图像传感器可以被用于识别用于所捕捉的影像的重力方向(即,重力相对于所捕捉的影像牵引的方向)。非图像传感器还可以包括位置传感器,诸如gps传感器或者能够用于识别电子设备100的位置的其他传感器,诸如一个或多个无线无线电、蜂窝无线电等。
非图像传感器还可以包括用户接口部件,诸如小键盘(例如触摸屏或键盘)、麦克风、鼠标等。表示电子设备100在给定时间点的状态的非图像传感器信息被称为电子设备用于该时间点的“当前场境”。这个当前场境可以包括显式场境,诸如电子设备100的相对旋转取向或在电子设备100上入射的来自本地环境112的环境光。当前场境还可以包括隐式场境信息,诸如从日历信息或时钟信息推断的信息,或者从用户与电子设备100的交互推断的信息。用户的交互可以包括用户观测的过去行为(例如,用户工作日通勤路径和时间的确定)、用户所进行的近来的搜索查询、对电子邮件、文本消息或其他用户通信或用户发起的操作的关键术语搜索或其他分析等。
操作中,电子设备100使用图像传感器数据和非图像传感器数据来确定电子设备100的姿态(例如位置)。在至少一个实施例中,电子设备100基于非图像位置传感器和信息(诸如gps信息、蜂窝塔三角测量等),来识别估计的姿态。可以基于从非图像传感器接收到的位置信息以及从与电子设备100相关联的服务提供商接收到的信息的组合来识别估计的姿态。例如,非图像传感器数据可以记录位置数据,诸如gps数据、无线网络地址数据、一个或多个蜂窝塔的信号强度数据、以及指示电子设备100的方位的其他数据。经由网络接口(未示出)或其他接口,电子设备100可以将位置数据传送到服务提供商。作为响应,服务提供商识别电子设备的估计位置并且将指示该位置的位置数据经由网络接口提供给电子设备100。根据这个位置数据,电子设备100识别估计的姿态。估计的姿态可以在电子设备100上以多种格式中的任何一种来表示,诸如经纬度、任意地图系统中的坐标等。
电子设备100基于在由成像相机114、116和118中的一个或多个捕捉的图像数据中的空间特征的检测来改善估计的姿态。为了图示说明,在图1的描绘示例中,本地环境112包括办公楼的门厅,其包括三个拐角124、126和128、踢脚板130和电插座132。用户110使设备100定位和取向以使得前向成像相机114和116分别捕捉广角成像相机图像数据134和窄角成像相机图像数据136,包括门厅的这些空间特征。在这个示例中,深度传感器120还捕捉深度数据138,其反映这些空间特征相对于电子设备100的当前姿态的相对距离。进而,面向用户的成像相机118捕捉表示用于用户110的头部122的当前姿态的头部跟踪数据140的图像数据。非图像传感器数据142,诸如来自陀螺仪、磁力计、环境光传感器、键盘、麦克风等的读数,也被电子设备100在其当前姿态收集。
根据这个输入数据,电子设备100可以确定其相对姿态而不用来自外部源的明确绝对定位信息。为了图示说明,电子设备100可以执行广角成像相机图像数据134和窄角成像相机图像数据136的分析以确定电子设备100与拐角124、126、128之间的距离。替选地,从深度传感器120获得的深度数据138可以用来确定空间特征的距离。根据这些距离,电子设备100可以三角测量或以其他方式推断其在由本地环境112所表示的办公室中的相对方位。作为另一示例,电子设备100可以识别在图像数据134和136的所捕捉的图像的一个集合中呈现的空间特征、确定到这些空间特征的初始距离、然后跟踪这些空间特征在后续所捕捉的影像中的方位变化和距离变化以确定电子设备100在自由参照架构中的姿态变化。在这个方法中,诸如陀螺仪数据或加速度计数据的某些非图像传感器数据可以用来将一个图像中观察到的空间特征与后续图像中观察到的空间特征进行相关。此外,如这里进一步描述的,自由参照架构中姿态的变化可以被用来调整电子设备100的改善姿态,由此识别设备的定位姿态。
电子设备100为在所捕捉的影像中识别的空间特征生成特征描述符。每个生成的特征描述符描述了取向、重力方向、规模、以及一个或多个所识别空间特征的其他方面。将所生成的特征描述符与所存储的描述符(出于描述的目的而被称为“已知特征描述符”)集合进行比较,每个已知特征描述符都识别了之前识别的空间特征及其对应姿态。在至少一个实施例中,已知特征描述符中的每一个是之前已经生成的描述符,且其姿态已被电子设备100或另一电子设备确定性地建立。已知特征描述符可以存储在电子设备100上、远程服务器或其他存储设备上、或者上述组合中。因此,所生成的特征描述符的比较可以在电子设备100上、在远程服务器或其他设备上、或在上述组合中执行。
在至少一个实施例中,通过比较所生成特征描述符的每个方面(例如,对应特征的取向、对应特征的规模等)与已知特征描述符的对应方面进行比较并且确定指示比较特征之间的差异的误差值而将生成的特征描述符与已知特征描述符进行比较。因此,例如,如果所生成特征描述符中的特征的取向由矢量a识别,而已知特征描述符中的特征的取向由矢量b识别,则电子设备100可以通过计算矢量a和b之间的差来识别特征描述符的取向方面的误差值。根据诸如最小平方技术的指定的统计技术,误差值可以被组合,以识别正在被比较的每个已知描述描述符的组合误差值,且匹配的已知特征描述符识别为具有最小组合误差值的已知特征描述符。
已知特征描述符中的每一个包括一个或多个字段,用于识别对应空间特征的姿态(例如,取向或视点)。因此,已知特征描述符可以包括姿态信息,所述姿态信息在指定分辨率(例如1cm)内指示空间特征在指定坐标系(例如表示地球的地理坐标系)内的位置、空间特征的视点的取向、视点与特征的距离等。所生成的特征描述符与已知特征描述符进行比较以识别一个或多个匹配的已知特征描述符。匹配的已知特征描述符随后用于识别电子设备100的姿态。
在一些场景中,匹配过程将识别出多个已知特征描述符,其匹配对应的所生成的特征描述符,从而指示在电子设备100的本地环境中存在多个之前已被识别出的特征。匹配已知特征描述符的对应姿态可能变化,指示电子设备不处于匹配已知特征描述符所指示的特定的一个姿态。因此,电子设备100可通过使用常规内插技术在由匹配已知特征描述符所指示的姿态之间插入其姿态以改善其估计姿态。
在至少一个实施例中,所生成的特征描述符不与所有可用已知特征描述符进行比较,而是与基于电子设备100的估计的姿态而识别的可用已知特征描述的一个子集进行比较。例如,该已知特征描述符的子集可以被识别为在与所生成的特征描述符之一的姿态的指定距离内。这限制了用于匹配的已知特征描述符的数量,由此加速了匹配过程。
电子设备100接收基于匹配的已知特征描述符而识别的改善姿态,并且使用该姿态来启用或增强其基于位置的功能。例如,姿态可以被用来识别表示已知接近改善姿态的空间特征的简化表示的网或图像。网或图像可以被馈送到在电子设备100上执行的应用以启用增强现实或其他基于位置的功能。
在至少一个实施例中,与将所生成的特征描述符匹配到一个或多个已知特征描述符以识别改善姿态同时,电子设备可以跟踪其自身姿态在自由参照架构中的变化。一旦改善姿态被识别,电子设备100可以将跟踪到的自由参照架构中的变化变换为用于改善姿态的参照架构。电子设备100可以由此在用于改善姿态的参照架构中识别其当前姿态,并且使用当前姿态来启用或增强其基于位置的功能。
图2是根据本公开的至少一个实施例的图示说明基于对电子设备100在自由参照架构中的姿态跟踪而调整改善的姿态的图。特别是,图2图示说明了对应于重置事件的电子设备100的姿态201,进一步图示说明了对应于在姿态201之后的电子设备100的姿态序列的姿态202-205。还图示说明了电子设备100所建模的自由参照架构220和表示用于建立电子设备100的改善方位的已知特征描述符的集合中的姿态的参照架构的被称为“地理参照架构”的参照架构230。在至少一个实施例中,地理参照架构是用于地球地理的参照架构。为了简化描述,参照架构220和230都被图示说明和描述为二维参照架构。但是,将理解,在其他实施例中,参照架构220和230可以是三维参照架构,或者更高维度的参照架构,从而指示方位和取向二者,诸如6个自由度(dof)的参照架构。
在所描绘的示例中,响应于重置事件,电子设备100在自由参照架构220的原点放置点221,使得点221与电子设备100的姿态201相对应。如这里所使用的,参照架构的原点指的是周边空间几何的参考点,且由参照架构的轴的相交而建立。随着电子设备100移动通过姿态202-205,电子设备100跟踪方位的变化且基于这些变化来建立点222-225来分别与姿态202-205(即姿态202对应于点222、姿态203对应于点223、姿态204对应于点224以及姿态205对应于点225)相对应。
与跟踪变化和建立点201-205同时,电子设备100利用诸如gps数据的位置数据,来估计电子设备在全局参照架构230中的姿态。估计的姿态由点238来表示。使用所捕捉的影像,电子设备100改善之前所描述的估计的姿态。改善的姿态对应于全局参照架构230中的点231。由此,因为改善的姿态对应于电子设备100的姿态,点231对应于自由参照架构220中的点221。因此,一旦电子设备100识别了点231,其使用常规变换技术将自由参照架构220中的点221-225变换为全局参照架构220中的点231-235。电子设备100因此识别全局参照架构220中对应于点232-235的姿态,而不需要对于每个姿态的影像特征进行匹配。这允许电子设备100的当前姿态以及重置事件和当前姿态之间的任何中间姿态,被更快速地识别,由此提高基于位置的功能。
图3是根据本公开的至少一个实施例图示说明用于识别图1的电子设备100的姿态(例如位置或视点)的系统300的图。系统300包括电子设备100、网络310、和影像服务器315。网络310可以是局域网、诸如蜂窝网络或互联网的广域网、或者其任意组合。
影像服务器315包括一个或多个服务器设备和对应的存储设备,其一起被配置为存储和搜索已知特征描述符325。已知特征描述符325中的每一个识别至少一个空间特征和相对于该至少一个空间特征的视点的对应姿态。例如,在图示说明的实施例中,已知特征描述符325包括已知特征描述符360,其包括识别对应特征的规模、取向、重力方向、和其他描述性信息的特征描述符361,以及指示当相机捕捉用来生成特征描述符361的影像时相机的方位和取向的相机姿态362。已知特征描述符325存储在数据库中且由空间特征和由姿态二者进行索引,以便基于包括空间特征类型、姿态、及其任意组合的多个标准中的任何一个来相对快速搜索。
操作中,响应于重置事件,电子设备100基于诸如gps数据、无线或有线网络地址、蜂窝塔三角测量等位置数据来估计其姿态,并且将估计的姿态经由网络310传送到影像服务器315。基于估计的姿态,影像服务器315从已知特征描述符325识别特征描述符子集327。例如,在一个实施例中,影像服务器315选择在估计姿态的阈值距离内的已知特征描述符325的所有描述符以包括在特征描述符子集327中。
影像服务器315提供特征描述符子集327给电子设备100,其比较特征描述符子集327与基于在电子设备100的一个或多个相机处捕捉的影像而生成的特征描述符。响应于定位与特征描述符子集中一个或多个的匹配,电子设备100基于这一个或多个匹配而识别其姿态。例如,电子设备100可以在与特征描述符子集327中和基于捕捉的影像而生成的一个或多个特征描述符相匹配的那些特征描述符相对应的姿态之间进行内插。电子设备100由此生成改善的姿态。在至少一个实施例中,电子设备100根据自从重置事件以来跟踪的姿态的变化来调整改善的姿态,如关于图2所述。
电子设备100将改善的姿态传送到影像服务器315。作为响应,影像服务器315在特征描述符子集327中搜索特征描述符328,特征描述符328表示用于在改善姿态的指定距离和取向内的空间特征的特征描述符。影像服务器315将特征描述符328传送到电子设备100,其在其基于位置的功能中利用特征描述符328。例如,在一个实施例中,电子设备100使用特征描述符328来生成与接近电子设备100的姿态的空间特征相对应的虚拟网。虚拟网可以被在电子设备100上执行的应用所利用来向用户提供与其直接环境的虚拟表现相交互的体验。
在至少一个实施例中,电子设备100可以保持阈值数量的其最近姿态的特征历史以及在全局参照架构中的对应特征描述符。响应于导致电子设备100失去其在全局参照架构中的姿态的事件(例如电子设备100被放在口袋中以及从口袋中取出或者快速被摇动),电子设备100可以捕捉影像、生成对应描述符、以及使用所生成的特征描述符来搜索特征历史。响应于匹配,电子设备100可以基于与特征历史中的匹配描述符相对应的姿态而识别其当前姿态。特征历史由此允许电子设备100相对快速地再次建立其方位。如果特征历史不包括匹配描述符,则电子设备可以生成估计的姿态并使用已知特征描述符325来改善该姿态,如上所述。
图4根据本公开的至少一个实施例图示说明由电子设备100实现的示例处理系统400。处理系统400包括广角成像相机114、窄角成像相机116、面向用户的成像相机118、和深度传感器120。处理系统400进一步包括2d处理器402、应用处理器404、显示器控制器406、电源408、非图像传感器集合410和用户接口412。
在诸如平板计算机或智能电话实施方式的便携用户设备实施方式中,电源408可以包括电池、太阳能阵列、或者用于向电子设备的电组件供电的其他便携电源。在非便携设备实施方式中,电源408可以包括电转换器,用于将外部电压供应转换为适合于电子设备100的组件的电压水平。用户接口412包括一个或多个组件,由用户操作来提供对电子设备100的用户输入,诸如触摸屏414、鼠标、键盘、麦克风416、各种按钮或开关、以及各种触觉致动器418。非图像传感器的集合410可以包括用于提供电子设备100的非图像场境或状态的各种传感器中的任何一个。这样的传感器的示例包括陀螺仪420、磁力计422、加速度计424、以及环境光传感器426。非图像传感器进一步可以包括各种基于无线接收或发射的传感器(诸如gps接收机428)、无线局域网(wlan)接口430、蜂窝接口432、点对点(p2p)无线接口434、以及近场通信(nfc)接口436。非图像传感器还可以包括用户接口412的用户输入组件,诸如触摸屏414或麦克风416。
电子设备100进一步可以访问存储结合其图像处理、位置映射和位置利用处理而使用的信息或元数据的各种数据储存器。这些数据储存器可以包括2d特征数据库438以存储用于从由电子设备100的成像相机捕捉的影像中识别的2d空间特征的元数据,并且包括3d空间特征数据440以存储用于从使用分析或基于调制光的深度感测对2d空间特征的深度感测中识别的3d特征的元数据。为2d和3d特征所存储的元数据可以包括,例如,用于同步目的的时间戳、识别空间特征的图像的图像标识符、使用的捕捉设备标识符、校准信息等。这些元数据进一步可以包括与包含所识别空间特征的图像同期的非图像传感器数据,诸如gps、wifi、或者其他无线电信息、日时间信息、天气状况信息(其影响照明)等。数据储存器进一步可以包括slam/ar数据储存器442,其存储基于slam的信息,诸如用于已经由电子设备100开拓的本地环境112(图1)的区域的映射信息,或者ar信息,诸如本地环境112中感兴趣的对象的相对位置的基于cad的表示。数据储存器438和440还可以存储已知特征描述符和基于在电子设备100上捕捉的影像而生成的特征描述符。数据储存器可以对于电子设备100而言是本地的,诸如在硬盘驱动、固态存储器、或可移动存储介质(未示出)上,数据储存器可以远程定位以及可以经由例如电子设备100的一个或多个无线接口来访问,或者数据储存器可以实现为本地和远程数据储存器的组合。
在描绘的实施方式中,处理系统400利用两个处理器:2d处理器402,被配置为从由电子设备100的成像相机所捕捉的可见光影像和深度传感器影像中有效识别2d空间特征;以及应用处理器404,被配置为从2d空间特征中有效识别3d空间特征并且有效提供基于位置的功能,诸如视觉测距或其他slam功能、ar功能等。但是,在其他实施例中,所描述的2d处理器402和应用处理器404的功能可以在单一处理器中实现,或者多于两个的处理器一起可以实现所述的功能。2d处理器402可以被实现为例如单核或多核图形处理单元(gpu)且应用处理器404可以被实现为例如gpu或单核或多核中央处理单元(cpu)。
2d处理器402耦合到广角成像相机114、窄角成像相机116和面向用户的成像相机118,以便在一个或多个像素行缓冲区444中接收由成像相机所捕捉的图像数据。在一个实施例中,2d处理器402包括用于每个成像相机的接口和像素行缓冲区444以便能够并行地从每个成像相机接收图像数据。在另一实施例中,2d处理器402包括单个接口和像素行缓冲区444,且因此2d处理器402在成像相机之间多路复用。像素行缓冲区444可以包括足够来自由对应成像相机捕捉的图像的一行或多行像素(直到全帧缓冲区)的存储。为了图示说明,一个或多个成像相机可以包括卷帘快门成像相机,由此成像相机的图像传感器一次扫描一行,或一次扫描几行。当扫描每行或几行时,其像素数据被临时缓冲到像素行缓冲区444。缓冲的像素行随后可以转移到更大的存储区域,诸如用于全帧处理的独立帧缓冲区(未示出)。
2d处理器402被配置为处理来自成像相机的所捕捉的图像数据以识别在图像数据中存在的2d空间特征。在一些实施例中,2d处理器402实现具体为此任务所设计的硬件配置。在其他实施例中,2d处理器402包括更一般的处理器构造,其通过执行被配置为实现2d空间特征检测过程的软件程序而提供2d空间特征检测。2d处理器402还可以实现为此目的的专用硬件和专用软件的组合。如上所述,各种公知2d空间特征检测或提取算法中的任何一个可以由2d处理器402来实现。2d处理器402存储属于所识别的2d空间特征的元数据和其他信息到2d特征数据库438。
在一个实施例中,2d处理器402被配置为分析由面向用户的成像相机118捕捉的影像以使用各种公知头部跟踪算法中的任何一个来跟踪用户头部的当前姿态(例如当前位置)。在所描绘的示例中,2d处理器402提供头部跟踪信息给显示器控制器406,其进而被配置为调整显示的影像以对用户头部姿态的变化所反映出来的用户视角的变化做出反应。在另一实施例中,2d处理器402提供头部跟踪信息给应用处理器404,其进而在将显示器数据提供到显示器控制器406之前修改显示器数据以反映更新的视角。
2d处理器402还充当控制器来操作调制光投影仪119将其用于确定在本地环境112的所捕捉的影像中识别的空间特征的深度数据。在特定条件下,诸如相对明亮设定(使用环境光传感器426所感测到的),2d处理器402可以使用由广角成像相机114和窄角成像相机116同时捕捉的影像的图像分析以确定在所捕捉的影像中呈现的空间特征的深度数据。在其他条件下,诸如相对低照明条件下,2d处理器402可以切换到使用深度传感器120(图1)来确定该深度数据。在其他实施例中,处理系统400与2d处理器402相独立地实现控制器(未示出)来控制调制光投影仪119的操作。
如上所述,深度传感器120依赖于调制光投影仪119在本地环境中的调制光图案的投影以及一个或多个成像相机对调制光图案的反射的捕捉。因此,2d处理器402可以使用一个或两个前向成像相机114和116来捕捉调制光图案的投影的反射并且处理反射的调制光图案的得到的影像以确定在反射的调制光图案中表现的对应空间特征的深度。为了使深度读数与对应2d空间特征匹配,2d处理器402可以针对深度影像执行2d空间特征分析以确定2d空间特征及其相对深度,然后试图将2d空间特征与在与捕捉反射的调制光影像相同或接近时间捕捉的可见光影像中识别的对应空间特征相匹配。在另一实施例中,2d处理器402可以捕捉可见光图像,并且此后快速控制调制光投影仪119以投射调制光图案并捕捉反射的调制光图像。2d处理器402随后可以从反射的调制光图像发展用于可见光图像的深度映射,这是因为,由于可见光图像和反射的调制光图像的同期捕捉,它们有效表现了具有处于相同坐标的相同空间特征的相同场景。
应用处理器404被配置为使用在2d特征数据储存器438中表示的2d空间特征和使用来自非图像传感器集合410的非图像传感器信息来识别在所捕捉的影像中表示的空间特征。与2d处理器402一样,应用处理器404可以被配置为通过专用硬件配置、通过执行配置用于该过程的软件、或者专用硬件和软件的组合来执行该过程。用于所识别的3d空间特征的元数据和其他信息被存储在3d特征数据储存器440中。
应用处理器404进一步被配置为使用在3d特征数据储存器440中表示的3d空间特征以及使用由非图像传感器数据所表示的电子设备100的当前场境来提供slam、ar、vr以及其他基于位置的功能。当前场境可以包括例如从用户接口412或经由用户交互分析而获得的明显或隐含的用户输入。该功能可以包括基于使用3d空间特征和诸如来自陀螺仪420的3dof读数、使用加速度计424保持的推测航行法历史、使用gps接收机428确定或使用无线电遥测经由蜂窝接口432确定的粗略绝对方位指示符等的各种位置相关非图像传感器数据的视觉测距过程而确定电子设备100的当前相对姿态。类似地,应用处理器404可以使用电子设备100的方位/取向的历史和在这些方位/取向中观察到的空间特征的历史来创建本地环境112的映射。
应用处理器404所提供的基于位置的功能进一步可以包括ar相关或vr相关的功能,包括基于由应用处理器404所确定的当前姿态来识别和访问来自slam/ar数据储存器442的要被提供作为显示器108上的图形覆盖的图形信息。该图形覆盖可以与由成像相机在用于经由显示器控制器406而在显示器108上显示的当前姿态所捕捉的影像相关联地提供。显示器控制器406操作为控制显示器108(图1)以显示由从应用处理器404接收到的显示器数据所表示的影像。进一步,在一些实施例中,显示器控制器406可以从2d处理器402接收头部跟踪信息并且基于在接收到的头部跟踪信息中所表示的用户头部方位或眼睛方位来调整正在显示的影像的视角。
在常规2d空间特征检测应用中,整个图像被捕捉,并且随后在gpu或其他处理器开始对图像的空间特征提取之前在帧缓冲区中被缓冲。这个方法可以引入空间特征检测的显著延时或延迟,且因此引入了姿态检测的显著延时或延迟,其原因在于转移图像数据到帧缓冲区以准备其被gpu访问所招致的延迟。为了减小或消除该延迟,在一些实施例中,2d处理器402被配置为当所捕捉的图像数据从对应成像相机被流送到2d处理器时执行2d空间特征提取。当像素行缓冲区444从成像相机接收一个或多个像素行的子集时,2d处理器402处理由缓冲的像素的子集所表示的图像部分以识别在图像部分中存在的2d空间特征。随着被从图像部分中识别出来,2d处理器402随后可以将2d空间特征流送到2d特征数据储存器438,或者直接流送到应用处理器404的输入。随着图像数据被流送进来2d空间特征被识别,且随着所识别的2d空间特征被识别而被流送到应用处理器404,2d空间特征检测过程和3d空间特征检测过程可以相比于依赖于整个图像分析的常规图像处理技术,以更快速率进行。
在至少一个实施例中,2d处理器402或应用处理器404中的任何一个,或者两个处理器相结合,可以根据这里描述的技术来识别电子设备的位置。例如,2d处理器402可以基于从非图像传感器410接收到的非可视位置数据来识别电子设备100的估计的姿态。进一步,2d处理器402可以经由成像相机114和116捕捉对于电子设备100而言是本地的影像,并且生成特征描述符集合,识别在影像中捕捉的本地特征。生成的特征描述符集合可以存储在2d特征数据储存器438中、3d特征数据储存器440中、或者其组合中。2d处理器402可以比较生成的特征描述符集合与存储在数据储存器438和440中的已知特征描述符集合,并且基于描述符之间的任何识别的匹配,识别电子设备100的改善的姿态。基于改善的姿态,应用处理器404可以在slam/ar数据储存器442上存储表示电子设备100的本地环境的特征的数据,由此增强任何执行应用的基于位置的特征。
图5图示根据本公开的至少一个实施例的用于基于图像传感器数据和非图像传感器数据来确定电子设备在本地环境中的姿态的示例方法500。为了描述的目的,方法500被关于在图1的电子设备100上的示例实施方式来描述。在块502,电子设备100重置,通过循环电子设备100上的电力、经由软件重置等。在块504,响应于重置,电子设备100基于诸如gps数据、蜂窝塔三角测量等的位置数据来估计其姿态。在块506,电子设备在其定位使用其成像相机中的一个或多个来捕捉影像。在块508,电子设备100识别捕捉的影像中的特征,诸如通过像素颜色变化所识别的拐角,并且生成用于识别的特征的描述符。
在块510,电子设备100基于在块504从位置数据中估计的姿态来识别描述从之前捕捉的影像(由电子设备100或其他成像捕捉设备所捕捉的)中识别出的特征的已知特征描述符的子集。在块512,电子设备100将描述来自本地捕捉的影像的特征的特征描述符与在块510中识别的已知特征描述符的子集中的描述符进行比较,由此从子集中识别一个或多个匹配的描述符。在块514,电子设备100基于匹配描述符的姿态信息来识别改善的姿态。
在块516,电子设备100在自由空间中将其原点设置为在响应于设备重置而被置于指定状态之后的设备重置时设备的方位。在块518,与识别其估计姿态和基于捕捉的影像改善估计姿态同时,电子设备跟踪其姿态相对于自由空间中的原点的变化。在块520,响应于识别其改善的姿态,电子设备100基于自由空间中的方位变化而变换改善的姿态,以识别电子设备100的当前姿态。当前姿态可以用来启用或增强电子设备100的基于位置的功能。
在一些场景中,与识别其姿态(定位)以及识别其姿态的变化(运动估计)同时,电子设备100通过执行软件而被指派了其他任务。为了避免对用户体验的不利影响,这些任务中的一些,诸如针对显示器108(图1)进行图像的渲染可能需要在指定时间量内完成。因此,在至少一个实施例中,单子设备100可以选择性指派其资源给不同任务以便确保时间敏感的任务在指定时间量内完成。进一步,电子设备100可以基于对特定类型的一个或多个任务将置于电子设备100上的预测负担、或负载的预测而继续或间歇重新指派资源给不同任务。这个资源平衡的示例在图6图示说明,其描绘了图600,示出电子设备100的资源被指派给两个不同任务类型中的每个:定位/运动估计和针对显示器108的图像渲染(由于描述目的被简单称为“渲染”)。图600包括表示时间的x轴602和表示电子设备100的资源的y轴601。y轴601所表示的资源可以是处理器循环、高速缓存空间、存储器空间、缓冲区空间、处理器执行单元、或者上述任意组合。
图600图示说明基于预测任务负载的变化而对电子设备100上的资源进行重新指派。在时间610,电子设备100已经预测出相对小渲染负载(例如,已经预测出将相对少的渲染任务或者渲染任务将需要相对少量资源)且预测出相对大的定位/运动估计负载。因此,在时间610,电子设备100指派相对较高量的资源给运动估计/定位而指派较低量的资源给渲染。在时间610之后,电子设备100预测渲染负载增加,使得用户体验可能受到指派给渲染任务的相对小量的资源的影响。作为响应,在时间611,电子设备100减少了指派给运动估计/定位的资源的量而增加了指派给渲染的资源的量,且由此确保存在额外的资源来处置增加的渲染负载。
电子设备100可以以各种方式中的任意一种来预测对各种任务类型的负载。在至少一个实施例中,电子设备100执行跟踪来自同时在电子设备100上执行的应用、线程或进程的任务请求的操作系统,并且基于任务请求来预测每种类型任务的负载。在另一实施例中,操作系统基于指示电子设备100怎样被使用以及其被请求执行的任务类型的历史数据来预测每种任务类型的负载。在又一实施例中,操作系统使用启发方式来预测每种类型任务的负载。例如,操作系统可以响应于电子设备100的重置而预测特定任务负载,并且随后响应于执行特定类型应用的请求而改变预测的任务负载。
图7图示说明根据本公开的至少一个实施例的在电子设备100上平衡用于定位和运动估计的资源指派的方法700的流程图。在块702,在电子设备100上执行的操作系统预测指示预测在指定时间量中要请求的大量渲染任务的渲染负载。作为响应,在块704,电子设备100基于预测负载而指派资源给渲染任务。在块706,电子设备100指派其剩余资源给运动估计和定位。在块708,电子设备100使用指派给每个任务的资源来分别执行渲染与运动估计和定位。在块710,电子设备100识别预测渲染负载是否存在变化。如果不存在,则方法流程返回到块708且电子设备100根据其指派的资源继续执行渲染与运动估计和定位。如果预测渲染负载存在变化,则方法流程返回到块704且电子设备100基于新预测的渲染负载来重新指派资源给渲染以及给运动估计和定位。
在至少一个实施例中,已知特征描述符,及其对应图像,可以基于隐私数据而限制其访问权限。这允许用户或系统管理员制定对已知特征描述符的基于许可的访问系统,由此,未授权人员不能访问所选择的已知特征描述符的子集。因此,例如,用户可以限制对与她公寓的图像相关联的已知特征描述符的访问以便防止未知人员使用这些特征描述符进行基于位置的功能。在至少一个实施例中,特征描述符被配置为使得难以从其对应的描述符集合而重新构建图像。描述符的集合由此作用为图像数据的单向散列。这保护了图像数据,即使特征描述符可被访问。
图8图示说明根据本公开的一个实施例的已知特征描述符860的示例。特征描述符860包括描述在对应图像中识别出的特征的描述符861以及指示捕捉到该图像的相机的姿态的相机姿态信息862。此外,特征描述符860包括隐私设定863,其指示对特征描述符860的隐私设定。隐私设定863可以是密码、散列、隐私级信息、请求设备的位置信息、或者可以被用来限制对特征描述符860的访问的其他信息。
操作中,响应于电子设备100、影像服务器315(图1)或其他设备识别对访问特征描述符860的请求,对应设备识别请求中的认证信息,诸如密码、访问代码等,并且将认证信息与隐私设定863进行比较。响应于匹配,设备提供对特征描述符860的访问。响应于认证信息不匹配隐私设定863,设备否定对特征描述符860的访问,并且可以采取其他行动,诸如警告用户或系统管理员。
在至少一个实施例中,在特征描述符860被生成时基于用户提供的信息而识别隐私设定863。例如,电子设备100的用户可以与图形用户界面交互以设置用于通过设备捕捉的影像的隐私设定。隐私设定可以基于电子设备100的位置、日时间、在电子设备上输入的访问代码或密码等而变化。当电子设备100捕捉影像时,其访问隐私设定。在为捕捉的影像生成特征描述符860的过程中,电子设备100基于用户所输入的隐私设定而指派值给隐私设定863。
图9图示说明根据本公开的至少一个实施例的基于隐私设定来限制对特征描述符的访问的方法900的流程图。为了描述的目的,方法900关于电子设备100上的示例实施方式而被描述。在块902,电子设备100接收指示电子设备100的姿态的信息。作为响应,在块904,电子设备100从已知特征描述符集合中识别出姿态在接近接收到的姿态的阈值内的特征描述符的子集。在块906,电子设备100接收认证信息,诸如密码或用于电子设备100的设备标识符。在块908,电子设备100基于认证信息来过滤在块904识别的特征描述符的子集。例如,电子设备100将认证信息与特征描述符子集中每个特征描述符的对应的隐私设定进行比较,并且移除认证信息不匹配隐私设定的那些特征描述符。电子设备100由此识别了特征描述符的过滤子集。在块910,电子设备100提供过滤子集给例如具有基于位置的特征的应用。
上述的许多发明功能与许多发明原理很好地适用于通过或用软件程序或指令和诸如专用集成电路(asic)的集成电路(ic)来实现。期望的是,本领域普通技术人员,尽管可能经过显著努力且由例如可用时间、当前技术和经济考量激励的许多设计选择,当受到这里所公开的概念和原理的指导时,将易于能够以最少的实验而产生这样的软件指令和程序和ic。因此,就简化和最小化使根据本公开的原理和概念模糊的任何风险而言,对这样的软件和ic的进一步讨论,如果有的话,将被限制于关于优选实施例内的原理和概念的必要内容。
在本文档中,关系术语,诸如第一和第二等,可以仅用来区分一个实体或动作与另一实体或动作,而不必要求或暗示这样的实体或动作之间的任何实际这样的关系或次序。术语“包括”或任何其他其变化形式,都旨在涵盖非排他的包含,因此,包括一个要素列表的过程、方法、物品或装置不仅仅包括这些要素,而且还可以包括未明确列出的或这样的过程、方法、物品或装置所固有的其他要素。“包括……”之后的要素,没有更多限制,不排除包括该要素的过程、方法、物品或装置中的额外相同要素的存在。术语“另一”,如这里所使用的,被定义为至少第二或更多。术语“包括”和/或“具有”,如这里使用的,被定义为包括。术语“耦合”,如这里结合光电技术所使用的,被定义为连接,尽管不必直接地连接,也不必机械地连接。术语“程序”,如这里使用的,被定义为设计用于在计算机系统上执行的指令序列。“程序”、或“计算机程序”,可以包括子例程、函数、流程、对象方法、对象事项、可执行应用、小应用、小服务程序、源代码、对象代码、共享库/动态负载库和/或设计用于在计算机系统上执行的其他指令序列。
说明书和附图应该仅仅被视作示例,公开的范围因此旨在仅由所附权利要求及其等价物来限定。注意,一般描述中的上述的所有活动或要素并非都是需要的,具体活动或设备的一部分可能不被需要,且除了这些被描述的以外,一个或多个进一步的活动可能被执行,或者一个或多个进一步的要素可能被包括。而且,所列活动的次序不必须是它们执行的次序。上面描绘的流程图的步骤可以是任何次序,除非指定,且步骤可以被消除、重复和/或添加,取决于实施方式。而且,概念是结合特定实施例来描述的。但是,本领域普通技术人员认识到,可以进行各种修改和变化,而不背离本公开如权利要求书中所阐述的范围。因此,说明书和附图应该被视为说明性的而非限制意味的,且所有这样的修改都想要被包括在本公开的范围之内。
上面已经关于特定实施例描述了益处、其他优点、和问题的解决方案。但是,益处、优点、问题的解决方案、以及可能使得任何益处、优点、或解决方案出现或变得更加显著的任何特征都不应被解释为任何或所有权利要求的关键、所需或必要特征。