用于2D/3D空间特征处理的系统转让专利

申请号 : CN201480024200.9

文献号 : CN105408938B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J.李

申请人 : 谷歌技术控股有限责任公司

摘要 :

一种电子设备(100)包括第一处理器(802)和耦合到第一处理器的第二处理器(804)。第一处理器(802)从第一成像相机(114、116)接收图像数据,并且确定表示从图像数据识别的一个或多个二维(2D)空间特征的2D空间特征数据。第二处理器(804)确定表示基于2D空间特征数据识别的一个或多个三维(3D)空间特征的3D空间特征数据。此外,第一处理器(802)可以在接收到整个图像帧之前,根据图像帧的一部分发起对一个或多个2D空间特征的检测。

权利要求 :

1.一种电子设备,包括:

第一处理器,其从第一成像相机接收表示图像帧的图像数据,并且确定表示从图像数据识别的一个或多个二维空间特征的二维空间特征数据,其中,第一处理器在正从第一成像相机接收图像数据的下一部分的同时,处理图像数据的一部分以进行二维空间特征数据的确定;以及第二处理器,其耦合到第一处理器,以确定表示基于二维空间特征数据识别的一个或多个三维空间特征的三维空间特征数据。

2.如权利要求1所述的电子设备,还包括:第一成像相机,其被布置在电子设备的第一表面并且具有第一视场;以及第二成像相机,其被布置在电子设备的第一表面并且具有比第一视场窄的第二视场。

3.如权利要求2所述的电子设备,还包括:第三成像相机,其被布置在电子设备的第二表面并且具有大于第二视场的第三视场;

并且

其中,第一处理器还基于从由第三成像相机捕捉的图像数据识别的一个或多个二维空间特征来确定二维空间特征数据。

4.如权利要求1所述的电子设备,还包括:深度传感器,其捕捉深度数据;并且

其中,第二处理器还基于深度数据来确定三维空间特征数据。

5.如权利要求4所述的电子设备,其中:所述深度传感器包括:

调制光投影器;并且

所述深度数据包括:

由第一成像相机捕捉并且表示由调制光投影器投射的调制光图案的反射的图像数据。

6.如权利要求1所述的电子设备,还包括:传感器,其耦合到第二处理器,以提供非图像传感器数据;并且其中,第二处理器还基于非图像传感器数据确定三维空间特征数据。

7.如权利要求6所述的电子设备,其中:对于每个图像帧:

第一处理器捕捉传感器的至少一个传感器状态;以及第一处理器确定在图像帧中识别的二维空间特征的二维空间特征列表并且将二维空间特征列表和至少一个传感器状态的表示发送到第二处理器。

8.如权利要求6所述的电子设备,其中,所述传感器包括从包括以下各项的群组中选择的至少一个:加速计;陀螺仪;环境光传感器;磁力计;重力梯度仪;无线蜂窝接口;无线局域网接口;

有线网络接口;近场通信接口;全球定位系统接口;麦克风;以及键区。

9.如权利要求1所述的电子设备,其中,所述第二处理器还在第一处理器从第一成像相机接收图像数据的最后部分之前开始使用三维空间特征数据的至少一部分确定电子设备的位置和取向中的至少一者。

10.一种用于二维/三维空间特征处理的方法,包括:在电子设备的第一处理器从电子设备的第一成像相机接收第一图像数据部分,该第一图像数据部分表示由第一成像相机捕捉的第一图像帧的第一部分;

在接收第一图像数据部分之后,在第一处理器从第一成像相机接收第二图像数据部分,该第二图像数据部分表示第一图像帧的第二部分;

在接收第二图像数据部分的全部之前,在第一处理器开始确定表示从第一图像数据部分识别的一个或多个二维空间特征的第一集合的二维空间特征数据;以及在电子设备的第二处理器使用一个或多个二维空间特征的第一集合来确定一个或多个三维空间特征的集合。

11.如权利要求10所述的方法,还包括:在第一处理器从电子设备的第二成像相机接收第三图像数据部分,第三图像数据部分表示由第二成像相机捕捉的第二图像帧的一部分;

在第一处理器根据第三图像数据部分确定一个或多个二维空间特征的第二集合;并且其中,确定一个或多个三维空间特征的集合包括:基于一个或多个二维空间特征的第一集合和一个或多个二维空间特征的第二集合之间的相关性,确定一个或多个三维空间特征的集合。

12.如权利要求11所述的方法,还包括:对准由第一成像相机捕捉的图像数据和由第二成像相机捕捉的图像数据以生成组合的图像帧;以及在电子设备显示组合的图像帧。

13.如权利要求10所述的方法,还包括:在第一处理器接收由电子设备的深度传感器捕捉的深度数据;并且其中,确定一个或多个三维空间特征的集合包括:还基于深度数据来确定一个或多个三维空间特征的集合。

14.如权利要求10所述的方法,还包括:与捕捉第一图像数据部分同时发生地在第一处理器确定表示电子设备的至少一个非成像传感器的传感器状态的传感器数据;并且其中,确定一个或多个三维空间特征的集合包括:还基于传感器数据来确定一个或多个三维空间特征的集合。

15.一种用于二维/三维空间特征处理的方法,包括:在电子设备的第一处理器接收由电子设备的第一成像相机捕捉的第一图像帧的图像数据部分的序列,每个图像数据部分表示第一图像帧的对应部分;以及在第一处理器针对图像数据部分的序列的每个图像数据部分确定一个或多个二维空间特征的第一集合,并且在继续在第一处理器接收图像数据部分的序列的下一个图像数据部分的同时,将表示一个或多个二维空间特征的集合的第一二维空间特征数据发送到电子设备的第二处理器。

16.如权利要求15所述的方法,还包括:在第二处理器基于第一二维空间特征数据来确定一个或多个三维空间特征的第一集合。

17.如权利要求16所述的方法,还包括:在第一处理器接收由电子设备的深度传感器捕捉的深度数据;并且其中,确定一个或多个三维空间特征的第一集合包括:还基于深度数据来确定一个或多个三维空间特征的第一集合。

18.如权利要求16所述的方法,还包括:与接收图像数据部分的序列同时发生地接收表示电子设备的至少一个非成像传感器的传感器状态的传感器数据;并且其中,确定一个或多个三维空间特征的第一集合包括:还基于传感器数据来确定一个或多个三维空间特征的第一集合。

19.如权利要求18所述的方法,其中:非成像传感器是陀螺仪;并且

其中,确定一个或多个三维空间特征的第一集合包括:基于来自陀螺仪的取向读数来确定一个或多个三维空间特征的第一集合。

20.如权利要求15所述的方法,其中:第一成像相机包括具有多行像素传感器的滚动快门成像相机;并且接收图像数据部分的序列包括:

接收由滚动快门成像相机捕捉的图像数据的逐行的流;并且每个图像数据部分包括滚动快门成像相机的一行或多行的对应集合的图像数据。

21.如权利要求15所述的方法,还包括:在第一处理器接收表示由电子设备的第二成像相机捕捉的第二图像帧的图像数据;以及在第一处理器针对第二图像帧确定一个或多个二维空间特征的第二集合,并且将表示一个或多个二维空间特征的第二集合的第二二维空间特征数据流传输到第二处理器。

22.如权利要求21所述的方法,还包括:在第二处理器基于第二二维空间特征数据来确定一个或多个三维空间特征的第二集合;

在第一处理器接收由电子设备的深度传感器捕捉的深度数据;并且其中,确定一个或多个三维空间特征的第二集合包括:还基于深度数据来确定一个或多个三维空间特征的第二集合。

说明书 :

用于2D/3D空间特征处理的系统

技术领域

[0001] 本公开一般涉及图像捕捉和处理,而且更具体地,涉及使用所捕捉的图像的机器视觉。

背景技术

[0002] 诸如同步定位和地图构建(simultaneous localization and mapping,SLAM)、增强现实(augmented reality,AR)和虚拟现实(virtual reality,VR)的机器视觉技术经常依赖于通过对由设备捕捉的本地环境的图像的分析的对设备的本地环境内的对象的识别。这种分析传统上由图形处理单元(GPU)逐帧地执行,这可导致图像捕捉和特征识别之间的显著滞后,这又会严重影响设备对于设备的位置或取向的改变或本地环境的改变的感知响应度。

附图说明

[0003] 本领域技术人员通过参考附图可以更好地理解本公开,并且本公开的许多特征和优点对于本领域技术人员来说变得清楚。在不同的图中使用相同的参考标记指示相似的或相同的项目。
[0004] 图1是图示出根据本公开的至少一个实施例的被配置为使用图像传感器数据和非图像传感器数据来确定本地环境中的相对位置/取向的电子设备的图。
[0005] 图2是图示出根据本公开的至少一个实施例的实施多个成像相机和深度传感器的电子设备的前平面图的图。
[0006] 图3是图示出根据本公开的至少一个实施例的图2的电子设备的后平面图的图。
[0007] 图4是图示出根据本公开的至少一个实施例的图2的电子设备的截面图的图。
[0008] 图5是图示出根据本公开的至少一个实施例的基于准直镜头的调制光投影器的截面图的图。
[0009] 图6是图示出根据本公开的至少一个实施例的基于垂直腔表面发射激光器(vertical-cavity surface-emitting laser,VCSEL)二极管的调制光投影器的截面图的图。
[0010] 图7是图示出根据本公开的至少一个实施例的基于图像传感器数据和非图像传感器数据来确定电子设备在本地环境中的相对位置/取向的电子设备的操作的流程图。
[0011] 图8是图示出根据本公开的至少一个实施例的用于从捕捉的本地环境的图像确定二维(2D)和三维(3D)空间特征数据的电子设备的处理系统的框图。
[0012] 图9是图示出根据本公开的至少一个实施例的用于2D和3D空间特征提取的图8的处理系统的操作的流程图。
[0013] 图10是图示出根据本公开的至少一个实施例的基于调制光的深度传感器的操作的流程图。
[0014] 图11是图示出根据本公开的至少一个实施例的用于控制基于调制光的深度传感器的激活配置的方法的流程图。
[0015] 图12是图示出根据本公开的至少一个实施例的用于基于调制光投射来控制可见光图像帧的显示的方法的流程图。

具体实施方式

[0016] 以下描述旨在通过提供多个特定实施例和细节来传达对本公开的透彻理解,所述多个特定实施例和细节涉及基于对电子设备的本地环境中的对象的基于图像的识别,来确定电子设备的相对位置或相对取向。然而,要理解,本公开并不限于这些特定实施例和细节,它们仅仅是示例,并且相应地本公开的范围旨在仅由所附权利要求及其等同物来限定。还要理解,本领域普通技术处理人员根据已知的系统和方法取决于特定设计和其它需要将会理解在任何数目的可替换实施例中针对其意图的目的和益处而对本公开的使用。
[0017] 图1至图12图示了用于确定电子设备在本地环境内的相对位置或相对取向从而支持基于位置的功能,诸如增强现实(AR)功能、视觉测程(odometry)或其它同步定位和地图构建(simultaneous localization and mapping,SLAM)功能等等的各种技术。术语“位置/取向”在本文中被用于指位置和取向中的任一个或这两者。在一些实施例中,电子设备包括布置在表面的两个或更多个成像相机以及深度传感器。两个或更多个成像相机可以被用于捕捉电子设备的本地环境的多视图图像,并且根据这个信息,电子设备可以识别表示本地环境中的对象以及它们距电子设备的距离的空间特征。此外,深度传感器可以被用于将所识别的空间特征的距离确定为对根据分析多视图图像而提供的深度计算的替换或者增强。电子设备还可以在面向用户的表面上包括另外的成像相机,从而便利于头部追踪或面部识别或者获得本地环境的附加图像。
[0018] 对于对象在本地环境中的相对位置/取向的识别可以被用来支持电子设备的各种基于位置的功能。为了说明,在一些实施例中,对象在本地环境中的相对位置连同诸如来自陀螺仪的取向读数的非图像传感器数据一起被用来确定电子设备在本地环境中的相对位置/取向。电子设备的相对位置/取向可以被用来便利于视觉测程、室内导航或其它SLAM功能。此外,电子设备的相对位置/取向可以被用来基于电子设备的相对位置和取向,并且还可以基于用户的头部或眼睛相对于电子设备的位置或取向,来支持增强现实(AR)功能,诸如由电子设备所捕捉的图像的显示中的附加信息的图形覆盖。在一些实施例中,电子设备确定其相对于本地环境而非相对于固定的或限定的定位参考的位置/取向,因此不依赖于诸如全球定位系统(GPS)信息、蜂窝三角测量信息等的外部定位信息。因此,该电子设备可以在GPS信令或蜂窝信令较弱或不存在的位置中提供基于位置的功能。
[0019] 在至少一个实施例中,电子设备的深度传感器被实施为调制光投影器以及成像相机中的一个或多个。调制光投影器将经编码的、结构化的或以其它方式调制的光——典型的是红外光——投射到本地环境中,并且一个或多个成像相机捕捉从对象反射的调制光,并且根据该反射光可以确定对象距电子设备的距离。由于调制光投影器可以在投射时消耗显著的电力,因此本公开描述了用于选择性启用和控制深度传感器从而减少电力消耗的各种技术。
[0020] 本文中进一步描述的是用于分析图像传感器数据和非图像传感器数据以有效地识别电子设备的本地环境的图像的2D和3D空间特征、并且用于使用这些识别的空间特征来提供基于位置的功能的处理架构。在至少一个实施例中,处理架构利用至少两个处理器,包括用于从由一个或多个成像相机捕捉的图像数据识别2D空间特征的一个处理器,以及用于所识别的2D空间特征来识别3D空间特征的另一处理器。此外,识别2D空间特征的处理器可以被配置为当从成像相机流传输图像数据时识别2D空间特征并且当识别出2D空间特征时将2D空间特征流传输到其它处理器,从而减少了空间特征检测中的延迟,否则将导致在开始空间特征检测之前等待缓冲整个图像帧。
[0021] 图1图示了根据本公开的至少一个实施例的被配置为使用图像和非图像传感器数据来支持基于位置的功能(诸如SLAM或AR)的电子设备100。电子设备100可以包括便携式用户设备,诸如平板计算机、具备计算功能的蜂窝电话(例如,“智能电话”)、笔记本计算机、个人数字助理(PDA)、游戏系统远程控制、电视远程控制等。在其它实施例中,电子设备100可以包括固定设备,诸如医疗成像设备、安全成像相机系统、工业机器人控制系统、无人机控制系统等等。为了便于说明,电子设备100在本文中一般在诸如平板计算机或智能电话的便携式用户设备的示例场景中描述;然而,电子设备100不限于这些示例实施方式。
[0022] 在所描绘的示例中,电子设备100包括壳体102,其具有与另一表面106相对的表面104。在所描绘的薄矩形框外形因子的示例中,表面104和106基本上平行,并且壳体102还在表面104和表面106之间包括四个侧表面(顶部、底部、左侧和右侧)。壳体102可以以许多其它外形因子来实施,并且表面104和106可以具有非平行的取向。对于所图示的平板实施方式,电子设备100包括布置在表面104的用于向用户110呈现视觉信息的显示器108。因此,为了便于参考,当相对于用户110反映电子设备100的这个示例取向时,表面106在本文中被称为“面向前方的”表面,并且表面104在本文中被称为“面向用户的”表面,尽管这些表面的取向并不受这些关系性名称的限制。
[0023] 电子设备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呈现的图像的视图透视(perspective)的头部追踪信息。
[0024] 除了支持位置和取向检测以外,成像相机114、116和118中的一个或多个还可以为电子设备100提供其它成像功能。为了说明,窄角成像相机116可以被配置或被优化用于由用户发起的图像捕捉,诸如用于捕捉消费级图片和视频,如经常在智能电话和平板计算机中进行的那样,并且成像相机118可以被配置或被优化用于视频会议或视频电话,也如经常在智能电话和平板计算机中进行的那样,而广角成像相机114可以主要被配置用于机器视觉图像捕捉,以用于位置检测。相比于聚焦于例如像素分辨率的用户为中心的相机配置,这种特定于机器视觉的配置可以优化光敏感度、镜头畸变、帧速率、全局快门能力、和从图像传感器更快的数据读取。
[0025] 在一个实施例中,深度传感器120使用调制光投影器119将调制光图案从面向前方的表面106投射到本地环境中,并当调制光图案从本地环境112中的对象反射回来时使用成像相机114和116中的一个或两个来捕捉调制光图案的反射。这些调制光图案可以或者是空间调制光图案或者是时间调制光图案。捕捉的调制光图案的反射在本文中被称为“深度图像”。深度传感器120然后可以基于对深度图像的分析来计算对象的深度,即,对象距电子设备100的距离。可以使用从深度传感器120获得的结果深度数据来校准或以其它方式增强对由成像相机114和116捕捉的图像数据进行多视图分析(例如,立体分析)所获得的深度信息。可替换地,来自深度传感器120的深度数据可以代替从多视图分析所获得的深度信息来使用。为了说明,多视图分析通常更适合于明亮的照明条件以及当对象相对较远时,而基于调制光的深度感测更适合于较低光的条件或者当观察的对象相对较近(例如,在4-5米内)时。因此,当电子设备100感测到其在户外或以其它方式在相对良好的照明条件下时,电子设备100可以选择使用多视图分析来确定对象深度。相反,当电子设备100感测到其在室内或以其它方式在相对较差的照明条件下时,电子设备100可以切换到使用经由深度传感器120的基于调制光的深度感测。
[0026] 电子设备100还可以依赖于用于位置/取向检测的非图像信息。这个非图像信息可以由电子设备100经由一个或多个非图像传感器(在图1中未示出),诸如陀螺仪或环境光传感器来获得。非图像传感器还可以包括用户接口组件,诸如键区(例如,触摸屏或键盘)、麦克风、鼠标等。表示电子设备100在给定的时间点的状态的非图像传感器信息被称为电子设备在该时间点的“当前场景”。这个当前场景可以包括显式场景,诸如电子设备100的相对旋转取向或者从本地环境112入射到电子设备100上的环境光。当前场景还可以包括隐式场景信息,诸如从日历信息或时钟信息推断的信息、或者从用户与电子设备100的交互所推断的信息。用户的交互可以包括用户的被观察到的过去行为(例如,对用户工作日的通勤路径和时间的确定)、用户最近进行的搜索查询、电子邮件的关键词搜索或其它分析、文本消息、或其它用户通信或者用户发起的操作等等。
[0027] 在操作中,电子设备100使用图像传感器数据和非图像传感器数据来确定电子设备100的相对位置/取向,即,相对于本地环境112的位置/取向。在至少一个实施例中,对相对位置/取向的确定基于对由成像相机114、116和118中的一个或多个所捕捉的图像数据中的空间特征的检测,以及对电子设备100相对于检测到的空间特征的位置/取向的确定。为了说明,在图1中所描绘的示例中,本地环境112包括办公楼的走廊,该办公楼包括三个角落124、126和128、底板130和电插座132。用户110已经定位并定向电子设备100,以使得面向前方的成像相机114和116分别捕捉包括走廊的这些空间特征的广角成像相机图像数据134和窄角相机成像图像数据136。在本示例中,深度传感器120还捕捉深度数据138,其反映了这些空间特征相对于电子设备100的当前位置/取向的相对距离。此外,面向用户的成像相机
118针对用户110的头部122的当前位置/取向捕捉表示头部追踪数据140的图像数据。非图像传感器数据142,诸如来自陀螺仪、磁力计、环境光传感器、键区、麦克风的读数,也由电子设备100在其当前位置/取向中收集。
[0028] 在没有来自外部源的显式绝对定位信息的情况下,电子设备100可以根据此输入数据确定其相对位置/取向。为了说明,电子设备100可以执行对广角成像相机图像数据134和窄角成像相机图像数据136的多视图分析,以确定电子设备100和角落124、126、128之间的距离。可替换地,从深度传感器120获得的深度数据138可以被用来确定空间特征的距离。根据这些距离,电子设备100可以以三角测量或以其它方式推断其在由本地环境112所表示的办公室中的相对位置。作为另一示例,电子设备100可以识别在图像数据134和136的一组捕捉的图像帧中存在的空间特征,确定到这些空间特征的初始距离,然后在随后捕捉的图像中追踪这些空间特征的位置和距离的改变以确定电子设备100的位置/取向的改变。在这种方法中,某些非图像传感器数据,诸如陀螺仪数据或加速计数据,可以被用于使在一个图像帧中观察到的空间特征与在随后的图像帧中观察的空间特征相关。
[0029] 电子设备100从由成像相机114、116和118捕捉的图像数据所获得的相对位置/取向信息可以被用于支持多种基于位置的功能中的任何一种。相对位置/取向信息可以被电子设备100用于支持视觉测程或其它SLAM功能。作为示例,电子设备100可以地图构建本地环境112,然后使用这个地图构建来便利于用户导航经过本地环境112,诸如通过向用户显示根据地图构建信息生成的平面图、和根据电子设备100的当前相对位置所确定的用户相对于平面图的当前位置的指示符。
[0030] 另外,通过电子设备100获得的相对位置/取向信息可以与补充信息144组合以经由电子设备100的显示器108向用户110呈现本地环境112的增强现实(AR)视图。这个补充信息144可以包括本地存储在电子设备100的或电子设备100可以经由有线或无线网络远程访问的一个或多个AR数据库。
[0031] 为了说明,在图1所描绘的示例中,本地数据库存储了用于嵌入在由本地环境112所表示的办公室的墙壁内的电气布线的位置/取向计算机辅助绘图(CAD)信息。因此,电子设备100可以经由成像相机116捕捉本地环境112的视图的视频图像,如以上及此处所描述地确定电子设备100的相对取向/位置,并且确定存在于本地环境的视图中的墙壁内的电气布线的位置和取向。电子设备100然后可以生成具有相对于在视频图像中识别的相应空间特征(例如,角落124、126和128)定位和定向的电气布线的视觉表示的图形覆盖(graphical overlay)。如图1中所图示的,图形覆盖可以包括表示当前视图中的电气布线的有色的虚线152和154、以及提供对电气布线的描述(诸如布线类型)、与布线相关联的标识符、和由相应布线供电的建筑组件的描述气球156和158。电子设备100然后在显示器108共同呈现图形覆盖和视频图像,从而向用户110呈现由窄角成像相机116所捕捉的本地环境112的当前视图内的电气布线的位置的图形表示160。当电子设备100相对于先前的视图移动时,电子设备
100更新图形覆盖从而反映改变的透视。此外,头部追踪数据140可以被用于检测用户110的头部122的位置相对于显示器108的改变,电子设备100可以响应于检测到的改变来调整所显示的图形表示160,从而反映用户110相对于显示器108的改变的视角。
[0032] 作为另一示例,可以经由电子设备100使用本地或远程AR数据库来便利于室内导航。为了说明,本地环境112可以表示商场的内部,并且响应于接收到指示希望定位某一商店的用户输入,电子设备100可以访问AR数据库来确定该商店相对于其当前位置的位置。利用这个信息,电子设备100可以在当前由成像相机114、116或118中的一个或多个所捕捉的视频图像的顶部显示标识商店相对于电子设备100所指向的当前方向的方向(例如,经由“右转”、“左转”、“继续直行”或“转身”箭头图形的显示)的图形覆盖。
[0033] 相对位置/取向确定过程的另一示例应用例如可以包括缺失的/新的对象检测,从而新的对象的出现或预先识别的对象的消失可以基于给定的相对位置和取向的电子设备100的预期本地环境视图与在相同的位置/取向中的电子设备100所捕捉的实际本地环境视图的比较来确定。如下所述,由预期环境和实际遇到的环境之间的差异所引入的几何不确定性可以触发各种操作,包括刷新操作,由此电子设备100发起对本地环境112的表现出改变的一部分的重新地图构建。
[0034] 图2和图3图示了根据本公开的至少一个实施例的平板外形因子的电子设备100的示例实施方式的示例前平面图和后平面图。电子设备100可以以其它外形因子来实施,诸如智能电话外形因子、医疗成像设备外形因子等,它们实施类似于所图示的那些的配置。
[0035] 如图2的前平面图200所图示的,电子设备100可以包括布置在面向用户的表面104的显示器108、成像相机118和一个或多个用户接口组件,诸如键区的触摸键202、204和206。此外,显示器108可以被实施为触摸屏显示器,从而便利于经由用户与显示器108交互来进行用户输入和控制。
[0036] 如图3的后平面图300所图示的,电子设备100可以包括布置在面向前方的表面106的广角成像相机114、窄角成像相机116和调制光投影器119。虽然图2和图3图示了沿直线对准的成像相机114、116和118以及调制光投影器119以有益于图4中的示例截面图,但是成像相机114、116和118以及调制光投影器119可以相对于彼此偏移。例如,调制光投影器119可以定位在从成像相机114和116之间延伸的线偏移的位置,或者调制光投影器119和广角成像相机114可以沿着与电子设备100的顶部边缘平行的线布置并且窄角成像相机116可以在从这条线偏移的位置布置。此外,虽然调制光投影器119被图示为定位在成像相机114和116之间,但是在其它实施方式中,调制光投影器119可以被定位在成像相机114和116之一的外侧。
[0037] 图4图示了根据本公开的至少一个实施例的沿着图2和图3的平面图中描绘的线210的电子设备100的示例截面图400。如所图示的,电子设备100包括在面向用户的表面104布置在壳体102中的孔402或其它开口中的面向用户的成像相机118,并且包括在面向前方的表面106分别布置在壳体102的孔404和406或其它开口中的广角成像相机114和窄角成像相机116。广角成像相机114包括图像传感器408和布置在图像传感器408的感测表面上的一个或多个镜头410。窄角成像相机116包括图像传感器412和布置在图像传感器412的感测表面上的一个或多个镜头414。类似地,面向用户的成像相机118包括图像传感器416和布置在图像传感器416的感测表面上的一个或多个镜头418。
[0038] 对于每个成像相机实施的镜头的类型取决于成像相机的意图的功能。在一个实施例中,因为面向前方的成像镜头114意图用于特定于机器视觉的图像以用于分析本地环境112,所以镜头410可以被实施为带有已知的高失真的、具有例如160-180度之间的视角的广角镜头或鱼眼镜头。在一个实施例中,面向前方的成像镜头116支持用户发起的图像捕捉,因此面向前方的成像镜头116的镜头414可以被实施为水平地具有例如80-90之间的视角的窄角镜头。注意,这些视角只是示例性的。除了支持本地环境成像或头部追踪以外,面向用户的成像相机118也可以具有其它用途。例如,面向用户的成像相机118还可以用于支持电子设备100的视频会议功能。因此,取决于应用,面向用户的成像相机118的镜头418可以被实施为窄角镜头、广角镜头或鱼眼镜头。
[0039] 成像相机114、116和118的图像传感器408、412和416可以分别被实施为基于电荷耦合器件(CCD)的传感器、互补金属氧化物半导体(CMOS)有源像素传感器等。在基于CMOS的实施方式中,图像传感器可以包括滚动快门传感器,由此图像传感器的像素传感器的一行或多行的群组被读出,同时传感器上的所有其它行继续被曝光。这种方法的益处在于,由于更长的曝光时间或更多的可用光敏感区域而提供增加的敏感度,但是缺点在于由于正在帧中捕捉的是高速对象而经受失真。失真的效果可以通过在滚动快门中实施全局复位机构以使得传感器上的所有像素同时而非逐行地开始收集电荷来最小化。在基于CCD的实施方式中,图像传感器可以被实施为全局快门传感器,由此传感器的所有像素在相同的时间曝光然后被转移到屏蔽区域,其然后可以在下一图像帧被曝光时被读出。这种方法的益处在于更少经受失真,但是负面在于由于每个像素所需的额外电子而导致普遍下降的敏感度。
[0040] 在一些实施例中,广角成像相机114和窄角成像相机116的视场在区域420中重叠,以使得区域420中的本地环境112(图1)中的对象在由广角成像相机114捕捉的图像帧和同时由窄角成像相机116捕捉的图像帧二者中表示,从而允许由电子设备100通过对两个同时发生的图像帧的多视图分析确定区域420中的对象的深度。因此,面向前方的成像相机114和116被定位在面向前方的表面106,以使得区域420覆盖意图的距离范围并且相对于电子设备100扫描。此外,由于多视图分析依赖于视差现象,因此面向前方的成像相机114和116被充分地分开以便为多视图分析提供足够的视差。
[0041] 在截面图400中还图示了调制光投影器119的各种示例位置。调制光投影器119在总体上垂直于表面106的方向上投射红外调制光图案424,并且面向前方的成像相机114和116中的一个或两个被用来捕捉投射光图案424的反射。在所描绘的示例中,调制光投影器
119在面向前方的表面106被布置在成像相机114和116之间的位置处。在其它实施例中,调制光投影器119可以被布置在成像相机之一与壳体102的边缘之间的位置,诸如被布置在广角成像相机114和壳体102的侧面之间的位置422,或者被布置在窄角成像相机116和壳体
102的侧面之间的位置(未示出)。
[0042] 图5和图6图示了根据本公开的各种实施例的调制光投影器119的示例实施方式。在两种情况下,调制光投影器119进行操作以投射调制光图案500,其包括红外光,或者在某些情况下,包括具有特定颜色或一组颜色或特定频率的可见光。在一些实施例中,调制光图案500包括空间调制光图案,诸如DeBruijn序列的投射、光特征的M-阵列(诸如所图示的点
502的矩阵,由此点502是高光强度的区域)等。可以被实施的其它空间调制光图案例如包括同心环图案或同心矩形图案、平行线、或平行和垂直线(即,网格)等。在其它实施例中,调制光图案500包括时间调制(时间复用)的光图案序列,诸如二进制码图案序列、n元码图案序列等。在时间调制的光应用中,深度传感器120通过分析反射的光图案的相应序列,而不是通过单独分析任意反射的图案,来确定深度数据。
[0043] 将调制光图案500投射到电子设备100的本地环境中导致从本地环境中的对象反射光。因为对象的表面距调制光投影器119的深度或距离影响入射到该表面上的投射光的反射,所以电子设备100可以使用存在于调制光图案500的反射中的图案失真来利用多种公知的调制光深度估计技术中的任何一种确定对象表面的深度。可替换地,可以使用面向前方的成像相机114和116两者来捕捉投射的调制光图案500的反射,并且可以对并行捕捉的深度图像执行多视图图像分析以确定本地环境中的对象的深度。在其它实施例中,电子设备100可以使用面向前方的成像相机114和116中的一个或者两个来作为与调制光图案500的投射同步的飞行时间成像相机,由此电子设备100使用多种公知的飞行时间深度算法中的任何一种计算所捕捉的反射中的对象的深度。作为又一个示例,电子设备100可以采用高速曝光快门成像相机(或者作为面向前方的成像相机114和116之一,或者作为单独的面向前方的成像相机),其从来自调制光投影器119的红外光或近红外光的脉冲捕捉反射光,从而针对传感器的每个像素收集的反射脉冲信号的量对应于深度范围内从其反射脉冲的地方,因此可以被用于计算到主体对象上的相应点的距离。可以从3DV Systems公司获得的ZCam(TM)成像相机是这种类型的基于成像的深度传感器的商业实施方式的示例。
[0044] 在图5的示例中,调制光投影器119被实施为边缘发射激光二极管504,其朝向准直镜头506发射发散的IR激光,准直镜头506准直发散的激光并且将准直的激光导向到衍射光学元件(DOE)508(也经常被称为“相息图(kinoform)”),DOE 508从准直的激光生成调制光图案500。在一个实施例中,DOE 508可以有效地用作光束分离器,以生成图案,诸如图5中所图示的点502的阵列。
[0045] 在图6的示例中,调制光投影器119是使用发射发散的激光的一个或多个垂直腔表面发射激光器(VCSEL)二极管604的阵列来实施的。微镜头的阵列606被布置在一个或多个VCSEL二极管604的发射表面,以用于准直和聚焦来自VCSEL二极管604的激光。DOE 608被布置在微镜头的阵列606上,以将得到的准直激光投射为调制光图案500。与可比较的输出的边缘发射激光二极管实施方式相比,图6的示例实施方式的益处在于,一般更薄并且具有更低的电力消耗。在一些实施例中,调制光投影器119还可以包括布置在DOE 608上的聚焦镜头(未示出)。
[0046] 图7图示了根据本公开的至少一个实施例的用于提供基于位置的功能的电子设备100的操作的示例方法700。为了便于说明,方法700被描绘并且被一般描述为可以重复循环的操作的单个回路。然而,并非所有的操作都必须以相同的速率循环,如在下面详细描述的。要理解,取决于实施方式,图7描绘的流程图的步骤可以以任何顺序来执行,并且某些步骤可以被消除,和/或某些其它步骤可以被添加或重复。
[0047] 方法700的迭代发起于对各个图像传感器数据和非图像传感器数据的捕捉。在一个实施例中,对传感器数据的捕捉是通过由电子设备100的成像相机114、116和118(图1)中的一个或多个对同时发生的图像帧的捕捉来触发的或者以其它方式与之同步的。在其它实施例中,各种传感器数据可以周期性地或以其它方式重复获得,然后使用时间戳或其它同步元数据来同步到捕捉的图像数据。这个对传感器数据的捕捉可以包括在框702经由广角成像相机114(图1)来捕捉本地环境112(图1)的广角视图(WAV)图像数据,并且在框704经由窄角成像相机116来捕捉本地环境112的窄角视图(NAV)图像数据。此外,在深度传感器120被激活的情况下,可以在框706经由深度传感器120捕捉本地环境的深度数据。此外,可以在框708从面向用户的成像相机118获得表示用户的头部122的当前位置的头部追踪数据。
[0048] 在框710,电子设备100从一个或多个非图像传感器捕捉传感器数据。为此,电子设备100可以实施多种非图像传感器中的任何一种,以便利于确定电子设备100的相对位置/取向。这样的非图像传感器可以包括用于提供关于电子设备100的相对位置、取向或速度的显式信息的陀螺仪、加速计、磁力计、高度计和重力梯度仪中的一个或多个。非图像传感器还可以包括用于提供本地环境112的场景的传感器,诸如感测入射到电子设备上的环境光的程度的环境光传感器和感测本地环境的当前温度的温度计。此外,通过电子设备100获得的非图像传感器数据可以包括隐式场景信息,诸如从用户对电子设备100的键盘或触摸屏的操纵分辨的或者从由电子设备的麦克风100捕捉的用户的语音分辨的关键字、搜索词或位置标记。用户的使用历史也可以用作隐式场境信息。
[0049] 应当注意,可以以不同的速率或频率读取不同的传感器。例如,对于成像相机114、116和118的每N个图像帧的捕捉可以仅获取一次环境光读数,而对于每个图像帧捕捉可以获取来自陀螺仪的六自由度(6DoF)读数,以使得能够在捕捉相应图像帧时检测电子设备
100的相对取向。更进一步地,可以以比图像帧捕捉速率高得多的速率来获得加速计读数,从而便利于电子设备100确定更准确的内部导航。
[0050] 在框712,电子设备100使用捕捉的非图像传感器数据来确定电子设备的当前场景100。当前场景统一表示电子设备100的非位置状态信息,其可以便利于确定电子设备100的相对位置或可以便利于基于所确定的电子设备的相对位置来呈现增强信息。这种状态信息可以包括显式状态信息,诸如从各种非图像传感器收集到的状态信息。可以在当前场景中表示的显式状态信息的示例可以包括:电子设备100的当前6DoF取向;电子设备100的当前相对速度;入射到电子设备100上的当前环境光;当前时间、星期几或日历日期;各种无线信令(例如,来自蜂窝基站或无线局域网接入点的信令)的可用性或信号强度等。在当前场景中表示的状态信息还可以包括隐式状态信息;即,从电子设备可用的其它信息意味的信息。
隐式状态信息100的示例可以包括:由用户经由键盘或触摸屏最近输入的文本的关键字搜索或关键词分析;由用户经由电子设备100最近执行的网络搜索;与用户位置相关的习惯的历史(例如,用户通勤上下班的历史);根据对存储在电子设备100或远程位置的电子邮件或其它记录的分析的用户意图的目的地的暗示等等。
[0051] 在框714,电子设备100分析所捕捉的图像传感器数据和深度数据,以识别在所捕捉的图像中表示的本地环境112的空间特征。可以这样识别的空间特征可以包括所捕捉的图像中的简单的结构,诸如边缘和角落或其它兴趣点,或者可以包括更复杂的结构,诸如曲线、平面、斑点或全部对象。电子设备100可以利用多种公知的数字图像处理技术中的任何一种来从所捕捉的图像帧提取空间特征,诸如利用Canny边缘检测器或Sobel运算符来检测边缘,利用FAST角点检测器或Harris和Stephens角点检测器来检测角落,或利用高斯拉普拉斯(Laplacian of Gaussian,LoG)或高斯差分(Difference of Gaussian,DoG)检测器来检测角落或斑点对象。
[0052] 电子设备100可以对于由广角成像相机114捕捉的广角视图(WAV)图像帧、由窄角成像相机捕捉的窄角视图(NAV)图像帧、由面向用户的成像相机118捕捉的图像帧、以及由深度传感器120捕捉的反射调制光图像帧(其可以包括由面向前方的成像相机114和116之一捕捉的图像帧)中的一个或多个执行空间特征检测过程。
[0053] 对图像中的空间特征的识别提供了两维空间中的那些空间特征,即“2D空间特征”的相对位置。为了将2D空间特征映射到第三维(即,距电子设备100的距离或“深度”),也就是说,确定相应的“3D图像特征”,电子设备100使用多视图图像分析或者利用深度传感器数据的分析中的一者或两者来确定2D特征相对于电子设备100的深度。
[0054] 为了多视图图像分析,电子设备100通过使用多种特征匹配技术中的任何一种将在WAV图像帧中识别的空间特征与在相应NAV图像帧中识别的空间特征进行匹配,然后基于两个图像帧之间的空间特征的位置移位以及基于广角成像相机114的光轴与窄角成像相机116的光轴之间的距离来计算每个空间特征的相对深度而依赖于视差现象。为了使用深度传感器数据来识别2D特征的深度,电子设备100将在可见光图像帧中的至少一个(即,NAV图像帧或WAV图像帧中的一个)中识别的空间特征与在深度传感器数据中识别的空间特征进行匹配,并且电子设备100可以将所识别的可见光空间特征确定为具有由从深度传感器数据匹配的空间特征所指示的深度距离。替代地或者除了使用WAV图像帧或NAV图像帧以外,在一些实施例中,电子设备100可以使用从WAV图像帧和NAV图像帧对准和组合(或“缝合”)所生成的对准的(或“缝合的”)图像帧,如在下面参照框720所描述的。
[0055] 利用在本地环境112的当前捕捉的图像中识别的3D空间特征,在框716,电子设备100基于对3D空间特征的分析,确定或更新其当前的相对位置/取向。在一个实施例中,电子设备100实施基于视觉测距的位置/取向检测过程,由此电子设备100在通常被称为“光流估计”的过程中基于在当前捕捉的图像和先前捕捉的图像之间的相同空间特征的位置移位来确定其相对于其先前确定的位置/取向的新的位置/取向。用于光流估计的示例算法包括公知的Lucas–Kanade方法,以及基于模板的方法或基于特征描述符匹配的方法。
[0056] 在一些实施例中,电子设备100利用在框712确定的当前场景来辅助确定当前位置/取向。在一些实施方式中,当前场景被用于验证或改进最初通过图像分析确定的位置/取向读数。为了说明,电子设备100可以确定来自图像分析的取向读数,然后使用来自陀螺仪传感器的最新的6DoF读数来验证基于图像的取向读数的准确性。作为另一示例,电子设备100可以根据图像分析确定当前位置,确定电子设备100从先前确定的位置过渡到当前位置将需要行进的平均速度,然后利用来自加速计的一个或多个读数来验证这个估计的速度,从而验证所估计的当前位置符合所测量的速度读数。在一些实施例中,电子设备100利用在框712确定的当前场景来过滤在执行用于位置/取向检测的图像分析中将被利用的图像数据。作为一个示例,电子设备100可以使用来自陀螺仪的6DoF读数或者来自重力梯度仪的重力取向读数来确定电子设备100的当前重力取向,并且使用此信息来避免对潜在的空间特征匹配的空间特征相关性努力,这将不可能给出电子设备100的重力取向。
[0057] 此外,电子设备100可以使用用户提供的位置场景来更精确地识别电子设备100的大体位置或区域。作为示例,电子设备100可以在用户最近的电子邮件、音频或文本消息通信中检测对于特定商场的提及,因而假定用户位于该商场。据此,电子设备100例如可以访问具有该商场的位置/地图构建信息的数据库,并且基于这个位置/地图构建信息而聚焦基于图像的定位。
[0058] 移动机器人经常实施同步定位和地图构建(SLAM)算法,以在没有对本地环境的先验知识的情况下,既地图构建本地环境又在地图构建的环境内确定其相对位置。电子设备100可以随时间使用框716的位置/取向确定过程的多次迭代来利用这些相同的SLAM技术,以便生成本地环境112的地图,同时在每个适当的时间点确定和更新电子设备100的位置/取向。这个本地地图构建信息可以由电子设备100利用来支持多种基于位置的功能中的任何一种,例如用在确定用户到指定目的地的路径并且根据这个路径向用户提供视觉导航辅助时,如在下面更详细描述的。
[0059] 在一些实施例中,电子设备100可以保持对在本地环境112中识别的空间特征的全局或绝对的位置/取向的估计。为此,在框717,电子设备100可以使用表示全局位置/取向信息的非图像传感器数据,诸如来自GPS接收器、磁力计、陀螺仪等的在框710捕捉的传感器数据,来更新在框714标识的空间特征的全局位置估计。这个全局位置/取向信息可以被用于确定电子设备100的全局位置/取向,并且根据这个信息,电子设备100可以基于识别的空间特征相对于电子设备100的位置/取向来估计其全局位置/取向。电子设备100然后可以将空间特征的这个估计的全局位置/取向存储或更新为与空间特征相关联的元数据。
[0060] 此外,电子设备100可以使用这些对空间特征的全局位置/取向的估计来选择性地放弃获得对在框710的迭代的某些非图像传感器数据的更新的过程。例如,如果电子设备100识别重复的空间特征(即,其是也从框714的先前迭代中识别的空间特征),则电子设备
100可以使用对这个重复的空间特征的全局位置/取向的估计来代替某些其它非图像传感器数据,诸如来自GPS接收器的GPS数据。在类似的方法中,电子设备100也可以使用先前针对一个或多个空间特征确定的估计的全局位置/取向,来基于其相对于先前地图构建的空间特征的估计位置/取向将估计的全局位置/取向分配给新遇到的空间特征。
[0061] 利用电子设备100对当前位置/取向的确定以及从在当前位置/取向捕捉的图像数据识别的各种空间特征,在框718,电子设备100可以基于当前位置/取向来访问网络内容,从而支持电子设备100的某些基于位置的功能,或者支持与电子设备100通信的联网系统的某些基于位置的功能。作为示例,电子设备100可以支持联网的多玩家视频游戏,该游戏提供基于电子设备100的本地区域的虚拟现实。利用当前位置/取向,电子设备100可以访问玩家状态信息,以便显示其他玩家相对于电子设备100的当前位置的位置。作为另一示例,电子设备100可以支持朋友地图构建应用,其地图构建朋友、同事和其他用户感兴趣的人的位置。电子设备100可以将其当前位置提供给中央服务器,中央服务器既更新其他用户的账户以反映当前位置又利用在当前位置的指定距离内的其他用户来更新电子设备100。
[0062] 除了或代替下载网络内容,电子设备100可以在框718上传设备的内容到网络。上传的设备内容例如可以包括图像数据、关于所识别的空间特征及其相应元数据的信息、相对位置/取向信息、估计的绝对位置/取向信息等等。这种上传的设备内容可以被吸收到来自众多类似设备的这样的信息的数据库中,并且这个数据库然后可以被用于提供各种基于位置的服务。例如,来自电子设备100的内容数据可以与相似内容集成以为网络连接的导航/地图构建软件应用提供图像、位置和路由信息。
[0063] 如以上所指出的,电子设备100可以包括显示器108(图1),以显示使用面向前方的成像相机114和116中的一个或两个所捕捉的本地环境112的图像。所显示的图像还可以包括增强现实图形信息,诸如以上参照图1所述的示例,由此办公室的墙壁中的电气布线的位置被标记在与所显示的墙壁图像同步的图形覆盖中。为此,在框720,电子设备100执行图像对准过程以组合在框702和704的一个或多个迭代捕捉的一个或多个WAV图像和一个或多个NAV图像,来形成单个组合的图像帧。图像对准过程可以将来自NAV图像的细节添加到WAV图像以提供WAV图像的更详细的版本,或者反之亦然。可替换地,多个NAV图像可以被对准和组合以形成比任何单个个别NAV图像描绘更大的区域(例如,全景图)的单个图像帧。在其它实施例中,电子设备100可以替代地选择不加修改地呈现或WAV图像或NAV图像。
[0064] 在框722,电子设备100将要以图形呈现给用户的AR信息确定为用于在框720生成或选择的图像帧的图形覆盖,并且在框724提供用于在电子设备100显示的图像帧和图形覆盖。AR信息可以被本地存储在电子设备100,诸如存储在硬盘驱动器或可移除媒体存储设备中。如以上参照框718所讨论的,AR信息可以被远程地存储,诸如存储在由电子设备100经由WLAN或蜂窝数据连接访问的因特网连接的服务器,并且AR信息可以响应于对当前位置/取向的确定而被访问。与图像帧协同呈现给用户的特定AR信息可以基于显式用户信息来选择,诸如由用户选择本地环境112的墙壁、地板和天花板内的加热、通风和空调(HVAC)管道的位置的虚拟显示。为呈现所选择的AR信息也可以基于隐式选择标准来选择。例如,响应于检测到用户正在朝向在用户的文本消息通信中识别的指定目的地行进,电子设备100可以生成呈现关于用户朝向目的地行进的各种度量的AR信息,诸如从用户的当前位置到达目的地所需的估计的时间、目的地相对于用户的当前位置的罗盘方向等等。
[0065] 在图形覆盖中呈现的AR信息的视图透视经常可以取决于在框716确定的电子设备100的特定位置/取向。例如,用户可以与电子设备100的GUI接口,以指引电子设备100辅助用户找到出口门。假设电子设备100在框716通过SLAM过程地图构建了本地环境112并且已经通过这个地图构建识别出出口门,则电子设备100可以使用电子设备100相对于这个地图构建的当前位置来确定经过本地环境到出口门的路线,然后使用电子设备100的取向来指引将用户导航到出口门的导航箭头图形。当用户(和电子设备100)沿着路径向出口门移动时,电子设备100可以更新被呈现以反映在继续将路径导航到出口门所需的方向上的任何变化的导航箭头图形。在更复杂的应用中,办公室的电力布线和HVAC管道的位置信息可以以计算机辅助绘图(CAD)形式存储,从而电子设备100可以以三维形式呈现在面向电子设备
100的后部的办公室的区域的所呈现的图像帧中存在的电力布线和HVAC管道位置的图形表示,所述三维形式与所呈现的图像中存在的相应墙壁、地板和天花板的相对位置/取向相关。当用户的电子设备100在办公室周围移动时,本地环境112所呈现的图像改变,因此电子设备100更新电力布线和HVAC管道覆盖以反映呈现为在显示器108的图像的办公室的区域的改变。
[0066] 由图形覆盖呈现的视图透视也可以基于用户的头部(或用户的眼睛)相对于显示器108的位置的改变而修改。为此,电子设备100可以对于在框708捕捉的头部追踪或眼睛追踪信息中所代表的头部/眼睛位置改变做出反应,以改变在显示器108呈现的图像和图形覆盖的视图透视。
[0067] 如以上所指出的,电子设备100通过方法700的迭代循环以提供实时的、更新的定位、地图构建的和增强的现实显示。然而,这些子过程不一定以相同的速率循环。为了说明,图像对准和AR过程可以以与成像相机114、116和118相同的帧速率来更新/循环,因为这些过程都直接关系到所捕捉的图像。然而,非图像传感器捕捉和当前场景确定可以以不同的循环速率进行。为了说明,以下可能是适当的:与帧速率相比更频繁地捕捉陀螺或惯性传感器状态,以便足够精确地估计惯性导航。相比之下,电子设备100的位置有关的特征可能不要求高的位置分辨率,因此确定电子设备100的当前位置/取向的图像分析过程可以以慢于成像相机的帧速率的循环速率发生。
[0068] 图8图示了根据本公开的至少一个实施例的由电子设备100实施的示例处理系统800。处理系统800包括广角成像相机114、窄角成像相机116、面向用户的成像相机118和深度传感器120。处理系统800还包括2D处理器802、应用处理器804、显示控制器806、电源808、非图像传感器的集合810和用户接口812。
[0069] 在便携式用户设备的实施方式(诸如平板计算机或智能电话的实施方式)中,电源808可以包括用于向电子设备的电气组件供电的电池、太阳能电池阵列或其它便携式电源。
在非便携设备的实施方式中,电源808可以包括将外部电压供应转换成适合于电子设备100的组件的电压电平的电力转换器。用户接口812包括由用户操纵来将用户输入提供到电子设备100的一个或多个组件,诸如触摸屏814、鼠标、键盘、麦克风816、各种按钮或开关和各种触觉致动器818。非图像传感器的集合810可以包括用于提供电子设备100的非图像场景或状态的多种传感器中的任何一种。这样的传感器的示例包括陀螺仪820、磁力计822、加速计824和环境光传感器826。非图像传感器还可以包括各种基于无线接收或发送的传感器,诸如GPS接收器828、无线局域网(WLAN)接口830、蜂窝接口832、对等(P2P)无线接口834和近场通信(NFC)接口836。非图像传感器还可以包括用户接口812的用户输入组件,诸如触摸屏
814或麦克风816。
[0070] 电子设备100还可以访问存储信息或元数据的各种数据存储,所述信息或元数据与其图像处理、位置地图构建和位置利用过程协同使用。这些数据存储可以包括用于存储从由电子设备100的成像相机捕捉的图像所识别的2D空间特征的元数据的2D特征数据存储838,以及用于存储使用多视图分析或基于调制光的深度感测从2D空间特征的深度感测所识别的3D特征的元数据的3D空间特征数据存储840。被存储以用于2D和3D特征的元数据例如可以包括用于同步目的的时间戳、在其中识别出空间特征的图像帧的图像帧标识符、所使用的捕捉设备的标识符、校准信息等。元数据还可以包括与包含所识别的空间特征的图像帧同时发生的非图像传感器数据,诸如GPS、wifi或其它无线电信息、时间日期信息、天气状况信息(其影响照明)等。数据存储还可以包括SLAM/AR数据存储842,其存储基于SLAM的信息,诸如已经由该电子设备100探测过的本地环境112(图1)的区域的地图构建信息,或AR信息,诸如本地环境112中感兴趣的对象的相对位置的基于CAD的表示。数据存储可以位于电子设备100本地,诸如在硬盘驱动器、固态存储器或可移除存储介质(未示出)上,数据存储可以远程定位并可经由例如电子设备100的无线接口中的一个或多个来访问,或者数据存储可以被实施为本地和远程数据存储的组合。
[0071] 在所描绘的实施方式中,处理系统800采用两个处理器:被配置为从由电子设备100的成像相机捕捉的可见光图像和深度传感器图像有效地识别2D空间特征的2D处理器
802;以及应用处理器804,其被配置为从2D空间特征有效地识别3D空间特征并且有效地提供基于位置的功能,诸如视觉测程或其它SLAM功能、AR功能等。然而,在其它实施例中,所描述的2D处理器802和应用处理器804的功能可以在单个处理器中实施,或者两个以上的处理器可以一起实施所描述的功能。2D处理器802例如可以被实施为单核或多核图形处理单元(GPU),并且应用处理器804例如可以被实施为GPU或者单核或多核中央处理单元(CPU)。
[0072] 2D处理器802被耦合到广角成像相机114、窄角成像相机116和面向用户的成像相机118,以便在一个或多个像素行缓冲器844中接收由成像相机捕捉的图像数据。在一个实施例中,2D处理器802针对每个成像相机包括接口和像素行缓冲器844,以便能够并行地从每个成像相机接收图像数据。在另一实施例中,2D处理器802包括单个接口和像素行缓冲器844,因此2D处理器802在成像相机之间多路复用。像素行缓冲器844可以包括足够用于来自由相应的成像相机捕捉的图像帧的一行或多行像素的存储(多达全帧缓冲器)。为了说明,成像相机中的一个或多个可以包括滚动快门成像相机,由此成像相机的图像传感器一次扫描一行,或者一次扫描行的子集。当扫描每行或行的子集时,其像素数据被临时缓冲在像素行缓冲器844。缓冲的像素行然后可以被转移到更大的存储区域,诸如单独的帧缓冲器(未示出)以用于全帧处理。
[0073] 2D处理器802被配置为处理来自成像相机的捕捉的图像数据以识别在图像数据中存在的2D空间特征。在一些实施例中,2D处理器802实施专门为这个任务而设计的硬件配置。在其它实施例中,2D处理器802包括更一般的处理器架构,其通过运行被配置为实施2D空间特征检测过程的软件程序来提供2D空间特征检测。2D处理器802还可以实施用于此目的的专用硬件和专用软件的组合。如上所述,多种公知的2D空间特征检测或提取算法中的任何一种可以由2D处理器802实施。2D处理器802将关于所识别的2D空间特征的元数据和其它信息存储到2D特征数据存储838。
[0074] 在一个实施例中,2D处理器802被配置为分析由面向用户的成像相机118所捕捉的图像,以使用多种公知的头部追踪算法中的任何一种来追踪用户的头部的当前位置/取向。在所描绘的示例中,2D处理器802将头部追踪信息提供给显示控制器806,显示控制器806又被配置为调整所显示的图像,以便如用户的头部的位置/取向的改变所反映的那样对用户的视图透视的改变做出反应。在另一实施例中,2D处理器802将头部追踪信息提供到应用处理器804,应用处理器804又在显示数据被提供到显示控制器806之前修改显示数据以反映更新的视图透视。
[0075] 2D处理器802还用作控制器,其在使用调制光投影器119来确定在捕捉的本地环境112的图像中所识别的空间特征的深度数据时操作调制光投影器119。在某些条件下,诸如相对明亮的背景(如使用环境光传感器826感测到的)下,2D处理器802可以使用对由广角成像相机114和窄角成像照相机116同时捕捉的图像的多视图图像分析,以确定在捕捉的图像中存在的空间特征的深度数据。在其它条件下,诸如相对低的照明条件下,2D处理器802可以切换到使用深度传感器120(图1)来确定深度数据。在其它实施例中,处理系统800实施了与2D处理器802分离的控制器(未示出)以用于控制调制光投影器119的操作。
[0076] 如上所述,深度传感器120依赖于由调制光投影器119到本地环境中的调制光图案的投射,以及由成像相机中的一个或多个对来自那里的调制光图案的反射的捕捉。因此,2D处理器802可以使用面向前方的成像相机114和116中的一个或两个来捕捉调制光图案的投射的反射,并且处理得到的反射的调制光图案的图像以确定在反射的调制光图案中表示的相应空间特征的深度。为了将深度读数与相应的2D空间特征进行匹配,2D处理器802可以对深度图像执行2D空间特征分析以确定2D空间特征和其相对深度,然后尝试将2D空间特征匹配到在与捕捉反射的调制光图案的时间相同或几乎相同的时间捕捉的可视光图像中所识别的相应空间特征。在另一实施例中,2D处理器802可以捕捉可见光图像,并且在其后迅速控制调制光投影器119来投射调制光图案并且捕捉反射的调制光图像。2D处理器802然后可以根据反射的调制光图像来形成用于可见光图像的深度地图,因为由于可见光图像和反射的调制光图像是同时捕捉的,它们有效地表示在相同坐标具有相同空间特征的相同情景。
[0077] 虽然在辅助感测存在于捕捉的图像的空间特征的相对深度方面是有效的,但是调制光图案的投射可能干扰电子设备100的其它操作。例如,当调制光投影器119可以被配置为投射红外或近红外光图案时,当成像相机碰巧在调制光图案被投射时激活其快门时,这种红外或近红外光的反射会引入到由成像相机捕捉的可见光图像中的干扰。这种干扰可能既减损了用户对所捕捉的可见光图像的观看体验,又对由2D处理器802执行的图像处理的精确度或功效造成负面影响。此外,调制光投影器119的激活可以消耗显著的电力量,其会影响电子设备100在电池充电之间的运行时间。下面参照图10至图12描述可由处理系统800实施以用于减少由调制光投影器119造成的干扰和电力消耗的各种技术。
[0078] 应用处理器804被配置为使用在2D特征数据存储838中表示的2D空间特征以及使用来自非图像传感器的集合810的非图像传感器信息,来识别在所捕捉的图像中表示的3D空间特征。如同2D处理器802,应用处理器804可以被配置为通过专用硬件配置、通过运行被配置用于这个过程的软件、或专用硬件和软件的组合来执行这个过程。用于所识别的3D空间特征的元数据和其它信息被存储在3D特征数据存储840中。下面参照图9描述2D到3D空间特征提取过程。
[0079] 应用处理器804还被配置为使用在3D特征数据存储840中表示的3D空间特征以及使用如由非图像传感器数据所表示的电子设备100的当前场景,来提供SLAM、AR、VR和其它基于位置的功能。当前场景可以包括从例如用户接口812或经由对用户交互的分析获得的显式或隐式用户输入。这种功能可以包括基于视觉测程过程确定电子设备100的当前相对位置/取向,所述视觉测程过程使用3D空间特征和各种与位置相关的非图像传感器数据,诸如来自陀螺仪820的6DoF读数、使用加速计824保持的导航推测历史、使用GPS接收器828确定的或经由蜂窝接口832使用无线电遥测确定的粗略绝对位置指示符等。类似地,应用处理器804可以使用电子设备100的位置/取向的历史和在这些位置/取向上观察到的空间特征的历史,来创建本地环境112的地图。
[0080] 由应用处理器804提供的基于位置的功能还可以包括AR相关或VR相关的功能,包括基于由应用处理器804确定的当前位置/取向,从SLAM/AR数据存储842识别和访问将被作为显示器108上的图形覆盖提供的图形信息。这个图形覆盖可以与由成像相机在当前位置/取向中捕捉的图像相关联地提供以用于经由显示控制器806在显示器108显示。显示控制器806进行操作以控制显示器108(图1)来显示由从应用处理器804接收到的显示数据所表示的图像。此外,在一些实施例中,显示控制器806可以从2D处理器802接收头部追踪信息并且调整基于在接收到的头部追踪信息中表示的用户头部位置或眼睛位置所显示的图像的视图透视。
[0081] 在传统的2D空间特征检测应用中,整个图像帧被捕捉,然后在GPU或其它处理器发起对于图像帧的空间特征提取之前被缓冲在帧缓冲器中。这种方法由于在将图像数据传送到帧缓冲器以准备由GPU对其进行访问所发生的延迟而可能在空间特征检测中引入显著延迟或滞后,因此在位置/取向检测中引入显著延迟或滞后。为了减少或消除这种滞后,在一些实施例中,当所捕捉的图像数据从相应的成像相机流传输到2D处理器时,2D处理器802被配置为执行2D空间特征提取。当像素行缓冲器844从成像相机接收到一个或多个像素行的子集时,2D处理器802处理由缓冲的像素的子集所表示的图像部分,以识别在图像部分中存在的2D空间特征。当2D空间特征被从图像部分识别出时,2D处理器802然后可以将2D空间特征流传输到2D特征数据存储838,或者直接将其流传输到应用处理器804的输入。因为在图像数据被流传输的时候2D空间特征被识别,以及因为在2D空间特征被识别出的时候时所识别的2D空间特征被流传输到应用处理器804,所以2D空间特征检测过程和3D空间特征检测过程可以以比依赖于整个图像帧分析的传统图像处理技术更快的速率进行。
[0082] 图9图示了根据至少一个实施例的使用处理系统800的双处理器架构的2D和3D空间特征提取的示例方法900。方法900的迭代开始于在框902发起由面向前方的成像相机114和116中的一个对图像的捕捉。在框904,2D处理器802将在成像相机的图像传感器捕捉的图像的一部分扫描到像素行缓冲器844,并且从像素行缓冲器844分析图像部分以确定在图像部分中存在的任何2D空间特征。响应于检测到2D特征(框906),在框908,2D处理器802提供表示2D特征的2D空间特征数据以供存储在2D特征数据库838中。这个2D空间特征数据例如可以包括空间特征标识符、在其中发现空间特征的图像的指示符或与这样的图像相关联的时间戳、图像内的空间特征的位置的指示符、空间特征的类型的指示符(例如,边缘、角落等)等等。2D处理器802重复框904、906和908的过程,直到对于图像部分的空间特征提取完成(框910),此时,方法900返回到框904,随后将下一图像部分从成像相机的图像传感器扫描到像素行缓冲器844,并且对于这个下一图像部分重复框904至框910的2D空间特征提取过程。当图像帧的最后图像部分的2D空间特征提取完成(框912)时,则方法900返回到框902,并且对于由电子设备100的成像相机捕捉的下一图像重复该过程。
[0083] 与框902至框912的图像捕捉和分析过程同时发生的是,2D处理器802确定将与捕捉的图像相关联的电子设备100的当前场景。为此,在框914,2D处理器802发起对一个或多个非图像传感器的读取,并且使用得到的非图像传感器数据来指定电子设备100的当前场景的一个或多个参数。这例如可以包括在框902捕捉图像之时指定电子设备100的6DoF取向,指定此时入射到电子设备100上的环境光,指定用于蜂窝信令的接收信号强度指示(received signal strength indication,RSSI),指定此时电子设备100的GPS坐标等。在框916,2D处理器802提供这个当前场景信息,以用于作为与在同时捕捉的图像帧中识别的2D空间特征相关联的元数据存储在2D特征数据存储中。然后可以对于下一图像捕捉循环重复框914和框916的当前场景捕捉过程。
[0084] 如所指出的,在一些实施例中,当2D空间特征被识别出时,2D处理器802将2D空间特征和其相关联的场景元数据流传输到应用处理器804。因此,当2D空间特征数据和用于2D空间特征的元数据被接收到时,在框918,应用处理器804通过确定2D空间特征的当前深度将2D空间特征变换为3D空间特征。如所指出的,在两个同时捕捉的图像可用的情况下,空间特征的深度可以通过对两个图像的多视图分析来确定。在这种情况下,应用处理器804使来自两个帧的2D空间特征相关以识别可能表示相同空间特征的2D空间特征的集合,然后基于两个图像之间的空间特征的位置之间表现的视差来确定2D空间特征的深度。在两个同时捕捉的图像不可用的情况下,应用处理器804可以基于由深度传感器120同时捕捉的深度数据来确定接收到的2D空间特征的当前深度。
[0085] 随着3D空间特征的生成,在框920,应用处理器804可以尝试通过将视觉测程算法应用到这个3D空间特征来确定电子设备100的当前位置/取向。在一些情况下,3D空间特征本身可能无法被充分区分以便允许精确确定当前位置/取向。因此,电子设备100可以缓冲表示多个同时发生的3D空间特征的3D空间特征数据,然后尝试从这些多个3D空间特征确定当前位置/取向。
[0086] 在上述方法中,应用处理器804可以能够使用一个或几个3D空间特征以足够的粒度识别当前位置/取向。因为每个3D空间特征可以在识别相应的2D空间特征之后很快被确定,所以应用处理器804甚至可以在2D处理器802完成从成像相机捕捉和处理图像帧之前就开始确定当前位置/取向的过程。这种快速确定当前位置/取向的能力可以转化为改进的基于位置的功能。为了说明,因为当前位置/取向可以比要求首先填充帧缓冲器的传统方法更快地被识别,所以AR图形覆盖信息可以更快地被访问和显示,这可以导致在电子设备100显示的AR增强图像中的更少的抖动和伪影。
[0087] 图10图示了根据本公开的至少一个实施例的深度传感器120的有效操作的示例方法1000。深度传感器120的调制光投影器119的激活可以消耗显著电力。在一些传统的实施方式中,假定基于调制光的深度传感器连续操作并以15至30赫兹(Hz)之间的帧速率或者与典型的视频流类似的速率捕捉深度数据。这可以使得深度传感器成为相对高功率的设备。事实上,在这个传统的方式中由调制光投影器消耗的电力可以显著大于由在平板、智能电话或其它便携式用户设备中使用的典型显示器所消耗的电力。
[0088] 在许多情况下,以这种连续捕捉的方法捕捉的深度数据的量显著大于电子设备100针对精确深度分析所需的深度数据的程度。因此,方法1000图示了用于深度传感器120的选择性激活的技术,以便减少或最小化深度传感器120的总激活时间,同时捕捉足够的深度数据以允许精确确定所捕捉的图像中的所识别的空间特征的深度。在一些实施例中,这种选择性的激活可以包括以突发模式操作深度传感器120,由此响应于一个或多个触发事件类型根据需求捕捉深度图像的单个或小的快速序列。在这种方法下,深度传感器120的总电力损耗可以减小,从而延长电子设备100对于给定电池电量可以操作的时间量,同时也降低了电子设备100的热要求。
[0089] 为了以下目的,“激活配置”通过指定激活调制光投影器119来投射调制光图案的频率以及调制光图案被投射的强度和持续时间来控制深度传感器的操作。这个频率、强度和持续时间一起类似于占空比。当禁用深度传感器120时(例如,当经由多视图图像分析来执行深度感测时),深度传感器120的激活配置可以被解释为为零的频率、强度和持续时间。相反,当启用深度传感器120时(例如,当经由调制光投射来执行深度感测时),深度传感器的激活配置表示非零的频率、强度和持续时间。
[0090] 当执行基于调制光的深度感测时,深度图像捕捉的频率一般对应于电子设备100对正被感测的直接区域的“熟悉度”。如果电子设备100已经静止一段时间,则电子设备100可能有机会获得足够的直接区域的深度数据。因此,电子设备100可以减小深度图像捕捉过程的频率和光强度。然而,如果电子设备100在运动中,则更有可能的是,电子设备100正遇到先前未遇到的环境,因此电子设备100将增加深度图像捕捉的频率,以便更迅速地积累足够的其行进经过的本地环境的深度数据。
[0091] 在一些情况下,电子设备100可以在先前已经形成了足够的深度数据的区域中,但是环境已经发生改变,因此所取得的先前的深度数据不可靠。为了说明,在用户带着电子设备100第一次进入会议室时,电子设备100可以已经形成了会议室中的对象的深度数据。此后,会议室中的家具及固定装置已经重新排列,从而用户下一次进入会议室时,用户进入了先前未遇到的环境,从而会议室的深度数据是过期的。在一些实施例中,可以通过定时器的流逝所触发的自动周期性深度数据重新捕捉来解决给定区域中的对象的排列的潜在改变,以便刷新或更新该区域的深度数据。电子设备100也可以通过评价存在于从当前区域捕捉的图像中的几何不确定性来衡量其对其直接区域的当前熟悉度。例如,这个几何不确定性反映在检测到先前未遇到的对象或几何形状中,诸如在相同或相似的位置/取向捕捉的先前图像中不存在的边缘的集合,或者反映在检测到非预期的几何形状中,诸如角落的集合的空间定位与其在早前从相同或相似的位置/取向捕捉的图像中的先前定位的移位。
[0092] 为此,在一个实施例中,电子设备100对在特定位置/取向检测到的空间特征进行分类。特征的这个分类可以包括空间特征的列表,以及某些特性,诸如它们的相对位置/取向、它们的维度等。由于本地环境可以相对于相同位置改变(例如,对象可以被添加或去除,或者移动到新的位置),因此当电子设备100再次返回到相同位置时,电子设备100可以通过识别当前可从该位置观察到的空间特征并且将所识别的空间特征与先前对于该位置分类的空间特征进行比较,来确定其是否处于预先未遇到的环境中。如果对于相同位置,当前遇到的空间特征和先前遇到的空间特征之间存在足够的不协调,则电子设备100断定其处于先前未遇到的环境中,因此继续配置深度传感器120的激活配置。
[0093] 因此,为了发起对深度传感器120的激活配置的调整,在框1002,2D处理器监视被选择来使得重新评估深度传感器120的当前激活配置的触发事件。这个触发事件可以包括超过阈值的所感测的环境光的改变(框1092),对电子设备的运动的检测(或对不存在运动的检测)(框1094),或者对当前由成像相机114、116和/或118所捕捉的图像中的某些几何不确定性的检测(框1096)。触发事件还可以包括表示周期性刷新触发器的定时器的流逝。
[0094] 响应于检测到触发事件,在框1004,2D处理器802基于触发事件确定用于深度传感器120的适当的修正后的激活配置。作为示例,如果触发事件1002、1092是所感测的环境光超过阈值,则2D处理器802选择从基于多视图的深度感测切换到基于调制光的深度感测,因此激活深度传感器120并将调制光图案的投射的频率、强度和持续时间初始设置为指定的默认值。相反,如果触发事件1002、1092是所感测的环境光降低到阈值以下,则2D处理器802选择切换回基于多视图的深度感测,因此通过将频率、强度和持续时间设置为零来去激活深度传感器120。作为另一示例,如果触发事件1002、1094是电子设备100以超过阈值的速度行进,则2D处理器802增加调制光图案投射以及相应的反射调制光图像捕捉的频率。即,2D处理器802可以进入突发模式,由此实行快速序列的深度图像捕捉。相反,如果触发事件1002、1094是电子设备100以低于阈值的速度行进,则2D处理器802减小调制光图案投影以及相应的反射调制光图像捕捉的频率。作为进一步的示例,2D处理器802可以基于检测到的几何不确定性的指示符与一个或多个阈值的比较,增加或减少调制光图案投射/反射调制光图像捕捉的频率(框1096)。
[0095] 电子设备100的当前场景还可以被用在确定适当的激活配置时。为了说明,如果当前场景指示用户正在使用电子设备100提供假设准确地识别不可见或掩埋的对象的位置的AR图形覆盖,则可能更重要的是,需要电子设备100准确地识别空间特征的相对3D位置,以便准确地在底层的捕捉的图像上定位AR图形覆盖。这样,2D处理器802可以将调制光投射设置为与相应的触发事件相关联的范围的较高端。然而,如果当前场景指示用户正在使用电子设备100来经由所显示的方向性区域提供一般的导航指引,准确识别空间特征的相对3D位置可能没那么重要,因此2D处理器802可以将调制光投射设置为与相应的触发事件相关联的范围的较低端。
[0096] 持续时间或强度也可以基于触发事件类型或电子设备100的当前场景来修正。例如,如果更多环境光存在于本地环境中,因此有更多机会干扰调制光图案,则2D处理器802可以将调制光投影器119配置为以更高的强度和更长的持续时间投射调制光图案,以便利用反射的调制光图案更充分地激励图像传感器。作为另一示例,调制光图案的持续时间或强度也可以基于电子设备100与视场中的对象的接近度,或者存在于视场中的材料的反射率来设置。
[0097] 利用所设置的修正后的激活配置,在框1006,2D处理器802激活调制光投影器119并且以在框1004设置的激活配置所指定的频率捕捉得到的深度图像(即,反射的调制光图像)。并行地,方法1000返回到框1002,由此2D处理器802继续监视另外的触发事件,以便发起由方法1000所表示的深度传感器配置过程的下一次迭代。
[0098] 图11图示了根据本公开的至少一个实施例的表示更一般的方法1000的特定示例实施方式的方法1100。对于方法1100,深度传感器120的激活配置是基于入射到电子设备100上的环境光以及基于电子设备100的运动来控制的。因此,在框1102,2D处理器802对环境光传感器826(图8)进行采样以获得当前环境光读数,并且在框1104,2D处理器802将当前环境光读数与指定的阈值进行比较。如果当前环境光读数大于阈值,则在框1106,2D处理器
802进入立体或其它多视图深度感测模式(或者如果已经在多视图深度感测模式下,则停留在此模式下),并禁用调制光投影器119。
[0099] 如果当前环境光读数小于阈值,则在框1108,2D处理器802进入调制光深度感测模式(或者如果已经在此模式下,则停留在此模式下)并且启用调制光投影器119。此外,如果2D处理器802从调制光深度发送模式切换到此调制光深度感测模式,则2D处理器802将激活配置设置为默认的非零频率、强度和持续时间。当在调光深度感测模式下时,在框1110,2D处理器802监视加速计824以确定电子设备100是否在运动中。如果不在运动中,则在框
1112,2D处理器802可以在自从运动停止起流逝了指定的时间之后,从默认速率减小深度图像捕捉速率(并且相应地减小调制光投射的频率)。如果在运动中,则在框1114,2D处理器
802可以从默认速率增加深度图像捕捉速率(并且相应地增加调制光投射的频率)。同时,方法1100返回到框1102,由此2D处理器802捕捉下一环境光读数并且开始使深度图像捕捉速率与电子设备100所遇到的当前条件协调的下一次迭代。注意,对环境光传感器826的采样(框1104)和对加速计824的采样(框1110),以及响应于得到的样本值而引起的过程可以以相同的速率或以不同的速率发生。
[0100] 图12图示了根据至少一个实施例的在电子设备100的基于调制光的深度感测期间用于可见光图像捕捉的示例方法1200。图像传感器,诸如可以部署在成像相机114、116和118中的图像传感器,对包括可见光和红外光两者的宽范围电磁波谱敏感。因此,由调制光投影器119投射的红外或近红外调制光图案可以同时干扰尝试捕捉可见光的成像相机。通常,这种干扰表现为调制光图案在捕捉的可见光图像中可见。
[0101] 在许多情况下,尝试通过捕捉后的图像处理从可见光图像去除调制光图案是不可行的。因此,方法1200表示依赖于视觉现象的持续性而去除损坏的图像帧的技术,该技术防止观看者容易地检测到去除的损坏的图像帧或在其位置使用替换图像帧。因此,如果成像相机以例如30帧每秒(fps)或者60fps运行,则电子设备100可以每秒对于单个帧闪烁调制光投影器119,然后跳过对在调制光投影器119活跃时捕捉的可见光图像帧的显示或使用。可替换地,替换图像帧可以被插入到视频馈送以代替损坏的图像帧,以便提供稍微更平滑的视频过渡。这个替换图像可以包括视频帧序列中的之前或之后的图像帧的副本。替换图像也可以是内插图像帧,其被内插在前一帧和后一帧之间。在另一种方法中,像素变形技术可以被应用到相关的深度图像以合成丢弃的图像帧的图像内容。在任何情况下,结果将是将有效帧速率稍微降低到可接受的速率29或59fps,这在大部分时间对于大多数观众而言是难以辨别的变化。
[0102] 为此,方法1200的迭代开始于框1202,由此2D处理器802(图8)操作成像相机114和116之一以捕捉可见光图像帧。在框1204,2D处理器802在图像捕捉的时候确定调制光投影器119是否是活跃的,并且因此有可能损坏可见光图像帧。在一个实施例中,2D处理器802可以实施滑动时间窗口,以使得如果它的控制历史表明在滑动时间窗内既发生调制光投影器
119的激活又发生成像相机中快门的操作,则2D处理器802可以断定捕捉的可见光图像帧被损坏。在另一实施例中,2D处理器802可以执行图像分析以检测调制光图案的某些相似之处是否存在于可见光图像帧中,以确定可见光图像帧是否被损坏。
[0103] 如果可见光图像帧被认为未被损坏,则在框1206,2D处理器802准许将捕捉的图像帧包括在呈现给用户的视频流中。否则,如果可见光图像帧被认为被损坏,则在框1208,2D处理器802阻止对损坏的图像帧的显示或其它使用。如以上所指出的,这可以包括简单地完全跳过损坏的帧(框1210),通过复制视频流中的另一图像帧来生成替换图像帧(框1212),或通过在视频流的两个或更多个其它图像之间内插或使用可替换图像内容(诸如由另一成像相机同时捕捉的深度图像)来合成存在于损坏的图像帧中的图像内容以生成替换图像帧(框1214)。
[0104] 根据一个方面,一种电子设备包括:第一成像相机,被布置在第一表面并且具有第一视角;第二成像相机,被布置在第一表面并且具有大于第一视角的第二视角;以及深度传感器,被布置在第一表面。深度传感器可以包括投射调制光图案的调制光投影器,以及捕捉调制光图案的反射的第一成像相机和第二成像相机中的至少一个。调制光投影器可以包括一个或多个垂直腔表面发射激光器(VCSEL)二极管的阵列,覆盖一个或多个VCSEL二极管的阵列的一个或多个镜头的阵列,以及覆盖一个或多个镜头的阵列的衍射光学元件。第二成像相机可以包括鱼眼镜头,并且可以被配置用于机器视觉图像捕捉。第二成像相机可以包括滚动快门成像相机,并且可以被配置用于用户发起的图像捕捉。
[0105] 电子设备还可以包括第三成像相机,其被布置在第二表面并且具有大于第一视角的第三视角。第一成像相机可以被配置用于用户发起的图像捕捉,第二成像相机可以被配置用于机器视觉图像捕捉,并且第三成像相机可以被配置用于面部识别和头部追踪中的至少一个。在一个实施例中,电子设备还包括显示器,其被布置在与第一表面相对的第二表面,并且电子设备可以被配置为经由显示器呈现经由第一成像相机和第二成像相机中的至少一个捕捉的图像。
[0106] 根据本公开的另一方面,一种电子设备可以包括:第一成像相机,被布置在第一表面并且具有第一视角;第二成像相机,被布置在第一表面并且具有大于第一视角的第二视角;以及第三成像相机,被布置在第二表面并且具有大于第一视角的第三视角。第一成像相机可以被配置用于用户发起的图像捕捉,第二成像相机可以被配置用于机器视觉图像捕捉,并且第三成像相机可以被配置用于面部识别和头部追踪中的至少一个。在一个实施例中,电子设备还包括深度传感器,其具有布置在第一表面的投射调制光图案的调制光投影器,并且还包括捕捉调制光图案的反射的成像相机。深度传感器的成像相机可以包括第一成像相机和第二成像相机中的至少一个。调制光投影器可以包括一个或多个垂直腔表面发射激光器(VCSEL)二极管的阵列,覆盖一个或多个VCSEL二极管的阵列的一个或多个镜头的阵列,以及覆盖一个或多个镜头的阵列的衍射光学元件。在一个实施例中,电子设备包括被布置在第二表面的显示器,由此电子设备被配置为经由显示器呈现经由第一成像相机、第二成像相机和第三成像相机中的至少一个捕捉的图像数据。
[0107] 根据又一方面,一种方法包括使用布置在电子设备的第一表面的第一成像相机捕捉第一图像数据,以及使用布置在电子设备的第一表面的第二成像相机捕捉第二图像数据,第二图像数据比第一图像数据表示更宽的视场。该方法还包括使用布置在电子设备的第一表面的深度传感器捕捉深度数据。该方法还可以包括从第一图像数据、第二图像数据和深度数据中的一个或多个确定至少一个空间特征,以及基于至少一个空间特征确定电子设备的相对位置和相对取向中的至少一个。该方法还可以包括使用布置在电子设备的第二表面的第三成像相机捕捉第三图像数据,第三图像数据比第一图像数据表示更宽的视场,由此,其中确定至少一个空间特征包括基于第三图像数据确定至少一个空间特征。
[0108] 在一个实施例中,该方法还包括基于第一图像数据、第二图像数据和深度数据在电子设备显示图像。该方法还可以包括至少部分地基于深度数据确定电子设备的当前场景,基于当前场景确定增强图形覆盖,并且其中,显示图像还包括利用增强图形覆盖来显示图像。该方法可以包括使用布置在电子设备的第二表面的第三成像相机捕捉第三图像数据,以及基于第三图像数据确定用户的头部的位置。为此,显示图像可以包括还基于用户的头部的位置来显示图像。在一个实施例中,使用深度传感器捕捉深度数据包括投射来自电子设备的第一表面的调制光图案,以及使用第一成像相机和第二成像相机中的至少一个捕捉调制光图案的反射。
[0109] 根据本公开的另一方面,一种电子设备包括:第一处理器,其从第一成像相机接收图像数据,并且确定表示从图像数据识别的一个或多个二维(2D)空间特征的2D空间特征数据。电子设备还包括第二处理器,其耦合到第一处理器,以确定表示基于2D空间特征数据识别的一个或多个三维(3D)空间特征的3D空间特征数据。第一处理器可以在接收到整个图像帧之前,根据图像帧的一部分发起对一个或多个2D空间特征的检测。电子设备还可以包括:第一成像相机,其被布置在电子设备的第一表面并且具有第一视场;以及第二成像相机,其被布置在电子设备的第一表面并且具有比第一视场更窄的第二视场。电子设备还可以包括第三成像相机,其被布置在电子设备的第二表面并且具有大于第二视场的第三视场,由此第一处理器还基于从由第三成像相机捕捉的图像数据识别的一个或多个2D空间特征来确定2D空间特征数据。
[0110] 在至少一个实施例中,电子设备还包括捕捉深度数据的深度传感器,由此第二处理器还可以基于深度数据来确定3D空间特征数据。深度传感器可以包括调制光投影器,并且深度数据可以包括由第一成像相机捕捉并且表示由调制光投影器投射的调制光图案的反射的图像数据。
[0111] 在至少一个实施例中,电子设备还可以包括传感器,其耦合到第二处理器以提供非图像传感器数据,由此第二处理器还可以基于非图像传感器数据确定3D空间特征数据。对于每个图像帧,第一处理器捕捉传感器的至少一个传感器状态,并且第一处理器确定在图像帧中识别的2D空间特征的2D空间特征列表并且将2D空间特征列表和至少一个传感器状态的表示发送到第二处理器。传感器可以包括从以下各项选择的至少一个:加速计;陀螺仪;环境光传感器;磁力计;重力梯度仪;无线蜂窝接口;无线局域网接口;有线网络接口;近场通信接口;全球定位系统接口;麦克风;以及键区。
[0112] 根据另一方面,一种方法包括在电子设备的第一处理器接收由电子设备的第一成像相机捕捉的第一图像数据,第一图像数据表示第一图像帧,并且在第一处理器根据第一图像数据确定一个或多个二维(2D)空间特征的第一集合。该方法还包括在电子设备中的第二处理器使用一个或多个2D空间特征的第一集合来确定一个或多个三维(3D)空间特征的集合。该方法还可以包括在第一处理器接收由电子设备的第二成像相机捕捉的第二图像数据,第二图像数据表示第二图像帧,在第一处理器根据第二图像数据确定一个或多个2D空间特征的第二集合。确定一个或多个3D空间特征的集合可以包括基于一个或多个2D空间特征的第一集合和一个或多个2D空间特征的第二集合之间的相关性,确定一个或多个3D空间特征的集合。该方法还可以包括对准由第一成像相机捕捉的图像数据和由第二成像相机捕捉的图像数据以生成组合的图像帧,并且在电子设备显示组合的图像帧。
[0113] 在一个实施例中,该方法包括在第一处理器接收由电子设备的深度传感器捕捉的深度数据,并且由此确定一个或多个3D空间特征的集合可以包括还基于深度数据来确定一个或多个3D空间特征的集合。该方法还可以包括与捕捉第一图像数据同时发生地在第一处理器确定表示电子设备的至少一个非成像传感器的传感器状态的传感器数据,由此确定一个或多个3D空间特征的集合包括还基于传感器数据来确定一个或多个3D空间特征的集合。
[0114] 根据本公开的另一方面,一种方法包括在电子设备的第一处理器接收由电子设备的第一成像相机捕捉的图像数据的第一流,图像数据的第一流表示第一图像帧。该方法还包括在第一处理器针对第一图像帧的一部分确定一个或多个二维(2D)空间特征的第一集合,并且在继续在第一处理器接收表示第一图像帧的下一部分的图像数据的第一流的一部分的同时,将表示一个或多个2D空间特征的第一集合的第一2D空间特征数据发送到电子设备的第二处理器。该方法还可以包括在第二处理器基于第一2D空间特征数据来确定一个或多个三维(3D)空间特征的第一部分集合。该方法还可以包括在第一处理器接收由电子设备的深度传感器捕捉的深度数据。确定一个或多个3D空间特征的第一集合可以包括还基于深度数据来确定一个或多个3D空间特征的第一集合。
[0115] 该方法还可以包括与接收图像数据的第一流同时发生地接收表示电子设备的至少一个非成像传感器的传感器状态的传感器数据。确定一个或多个3D空间特征的第一集合可以包括还基于传感器数据来确定一个或多个3D空间特征的第一集合。非成像传感器可以包括陀螺仪,并且其中,确定一个或多个3D空间特征的第一集合可以包括还基于来自陀螺仪的取向读数来确定一个或多个3D空间特征的第一集合。
[0116] 在一个实施例中,第一成像相机包括滚动快门成像相机,其具有多行像素传感器,接收图像数据的第一流包括接收由滚动快门成像相机捕捉的图像数据的逐行的流,由此第一图像帧的所述部分包括滚动快门成像相机的一行或多行的第一集合的图像数据,并且由此图像帧的下一部分包括滚动快门成像相机的一行或多行的第二集合的图像数据。该方法还可以包括在第一处理器接收由电子设备的第二成像相机捕捉的图像数据的第二流,图像数据的第二流表示第二图像帧。该方法还可以包括在第一处理器针对第二图像帧确定一个或多个2D空间特征的第二集合,并且将表示一个或多个2D空间特征的第二集合的第二2D空间特征数据流传输到第二处理器。
[0117] 根据本公开的又一方面,一种电子设备包括深度传感器,其包括投射调制光图案的调制光投影器和捕捉调制光图案的反射的第一成像相机。电子设备还包括控制器,用于响应于至少一个触发事件,选择性地修改由调制光投影器对调制光图案的投射的频率、强度和持续时间中的至少一个。电子设备还可以包括环境光传感器,其中至少一个触发事件包括由环境光传感器检测到的环境光的改变。控制器可以响应于环境光降低到第一阈值之下而增加投射的调制光图案的频率、强度和持续时间中的至少一个,并且响应于环境光上升到第二阈值之上而减小投射的调制光图案的频率、强度和持续时间中的至少一个。至少一个触发事件可以包括定时器的流逝。
[0118] 至少一个触发事件可以包括电子设备位于先前未遇到的环境中,其中,控制器可以响应于电子设备位于先前未遇到的环境中而增加调制光图案的投射的频率、强度和持续时间中的至少一个。电子设备还可以包括识别电子设备的粗略位置的无线信号接收器,无线信号接收器包括全球定位系统接收器、无线蜂窝接收器和无线局域网接收器中的至少一个。控制器可以基于由无线信号接收器所确定的粗略位置,确定电子设备处于先前未遇到的环境中。电子设备还可以包括捕捉电子设备的本地环境的图像的第二成像相机。控制器可以基于从图像确定的一个或多个空间特征以及由调制光图案的反射所表示的深度数据,来在电子设备对当前环境进行分类。控制器还可以基于分类的当前环境来确定电子设备处于先前未遇到的环境中。
[0119] 在至少一个实施例中,电子设备还包括捕捉电子设备的本地环境的图像的第二成像相机。控制器可以基于本地环境电子设备的图像以及基于由调制光图案的反射所表示的深度数据来确定一个或多个空间特征,并且至少一个触发事件包括对空间特征中的一个或多个是先前未遇到的空间特征的确定。此外,至少一个触发事件可以包括对电子设备的超过阈值的运动的检测,并且控制器可以响应于检测到超过阈值的运动而增加投射的调制光图案的频率、强度和持续时间中的至少一个。
[0120] 在一个实施例中,电子设备还包括捕捉电子设备的环境的图像的第二成像相机,并且至少一个触发事件包括从所捕捉的图像检测到超过阈值的运动。控制器可以响应于检测到超过阈值的运动而增加投射的调制光图案的频率、强度和持续时间中的至少一个。在一个实施例中,第二成像相机捕捉电子设备的环境的图像,并且控制器防止对与由调制光投影器对调制光图案的投射同时的第二成像相机所捕捉的图像的显示。
[0121] 根据本公开的另一方面,一种方法包括使用电子设备的调制光投影器投射调制光图案,使用成像相机捕捉投射的调制光图案的反射,并且响应于至少一个触发事件而控制调制光投影器选择性地修改调制光图案的投射的频率、强度和持续时间中的至少一个。至少一个触发事件可以包括以下各项中的至少一个:环境照明的改变;经由电子设备的第二成像相机检测到超过阈值的运动;以及确定电子设备处于先前未遇到的环境中。该方法还可以包括捕捉电子设备的环境的至少一个图像,并且基于至少一个图像确定至少一个空间特征,其中,至少一个触发事件包括对至少一个空间特征是先前未遇到的空间特征的确定。该方法还可以包括防止在电子设备显示在由调制光投影器投射调制光图案的同时电子设备的成像相机所捕捉的图像。
[0122] 根据本公开的又一方面,一种电子设备包括第一成像相机、投影至少一个调制光图案的调制光投影器和检测电子设备的环境光条件的环境光传感器。该方法还包括控制器,用于响应于环境光条件而控制由调制光投影器对调制光图案的投射的频率、强度和持续时间中的至少一个。在一个实施例中,控制器响应于环境光条件小于第一阈值而增加投射的调制光图案的频率、强度和持续时间中的至少一个,并且响应于环境光条件大于第二阈值而减小投射的调制光图案的频率、强度和持续时间中的至少一个。第一阈值和第二阈值可以包括相同的阈值。控制器可以响应于确定电子设备处于先前未遇到的环境中而减小调制光图案的投射的频率、强度和持续时间中的至少一个。
[0123] 电子设备还可以包括第二成像相机和深度传感器,深度传感器包括调制光投影器以及第一成像相机和第二成像相机中的至少一个。电子设备可以响应于环境光条件大于阈值,使用来自第一成像相机的图像数据和来自第二成像相机的图像数据来确定检测到的空间特征的深度数据。电子设备可以响应于环境光条件小于阈值,使用由第一成像相机或第二成像相机之一捕捉的调制光图案的反射来确定检测到的空间特征的深度数据。
[0124] 以上描述的许多发明功能和许多发明原理非常适合于具有软件程序或指令以及诸如专用集成电路(IC)(ASIC)的IC的实施方式或者所述软件程序或指令以及IC的形式的实施方式。可以预期,尽管有可能需要受到例如可用时间、当前技术和经济上的考虑所促动的显著努力和许多设计选择,但是普通技术人员在受到这里所公开的构思和原理指导时,将能够以最少的实验容易地生成这样的软件指令和程序以及IC。因此,为了简化和最小化使根据本公开的原理和构思变得模糊的任何风险,如果存在对于这样的软件和IC的进一步讨论,则该讨论将被限制为关于优选实施例内的原理和构思是必要的。
[0125] 在本文档中,诸如第一和第二等的关系术语可以单独使用,以便将一个实体或动作与另一实体或动作区分开,但不必要求或暗示在这样的实体或动作之间的任何实际的这样的关系或顺序。术语“包含”或其任何其它变型均旨在涵盖非排他性的包括,以使得包含元素的列表的过程、方法、物品或装置并不只包括那些元素,而是可以包括未明确列出或对于这种过程、方法、物品或装置固有的其它元素。如果没有更多的限制,则前面是“包括”的元素并不排除在包括此元素的过程、方法、物品或装置中存在附加的相同元素。如本文所使用的,术语“另一”被定义为至少第二个或更多个。如本文所使用的,术语“包括”和/或“具有”被定义为包含。如本文参照电光技术所使用的,术语“耦合”被定义为连接,尽管不一定是直接连接,并且不一定是机械连接。如本文所使用的,术语“程序”被定义为被设计用于在计算机系统上运行的指令序列。“程序”或“计算机程序”可以包括子例程、函数、过程、对象方法、对象实施方式、可运行应用、小应用程序(applet)、小服务程序(servlet)、源代码、目标代码、共享库/动态加载库和/或被设计用于在计算机系统上运行的其它指令序列。
[0126] 说明书和图应当被视为仅仅是示例,并且本公开的范围因此旨在仅由权利要求及其等同物来限定。注意,并非所有在上面的一般性描述中所描述的活动(activity)或元素都是必需的,特定活动或设备的一部分可以不被要求,并且除了所描述的那些以外,一个或多个进一步的活动可以被执行,或者元素可以被包括。更进一步地,所列出的活动的顺序不一定是它们被执行的顺序。以上所描绘的流程图的步骤可以按任何顺序进行,除非另有规定,并且步骤可以取决于实施方式而被消除、重复和/或添加。此外,已经参照特定实施例描述了构思。然而,本领域普通技术人员应当理解,可以做出各种修改和改变而不脱离如权利要求所阐明的本公开的范围。因此,说明书和图应被认为是说明性的而不是限制性的,并且所有这些修改旨在被包括在本公开的范围之内。
[0127] 以上已经关于特定实施例描述了益处、其它优点和问题的解决方案。然而,这些益处、优点、问题的解决方案、以及可以使得任何益处、优点或解决方案发生或变得更加明显的(多个)任何特征不应被解释为任意或所有权利要求的关键的、必需的或必要的特征。