用于生成包括稀疏和密集测绘信息的地图的方法和系统的制作方法
【专利摘要】描述了用于地图生成的方法和系统。一种计算设备可以在环境中的该设备的位置处接收来自多个传感器的输出,该输出可以包括对应于在该第一位置处该环境的视觉特征的数据。基于来自多个传感器的输出中的对应性,该计算设备可以生成环境的地图,该地图包括稀疏测绘数据,并且该稀疏测绘数据包括对应于该视觉特征的数据。该设备可以在该环境中的该设备的其它位置处接收附加输出并且可以基于该附加输出对该地图进行修改。此外,该设备可以基于接收到来自传感器的密集测绘信息而对该地图进行修改,该密集测绘信息可以以表示该环境中的物体的结构的方式而包括对应于该环境中的物体的数据。
【专利说明】用于生成包括稀疏和密集测绘信息的地图的方法和系统
[0001]相关申请的交叉引用
[0002]本申请引用于2014年I月3日提交的美国专利申请序列号N0.14/146808、要求其优先权及其权益,其内容通过引用结合于此。
【背景技术】
[0003]除非以其它方式在这里指出,否则在该部分所描述的素材并不是针对本申请的权利要求的现有技术而且也并不因为包括在该部分之中而被认可是现有技术。
[0004]地图可以作为一个区域的视觉表示而存在,其可以对该空间中诸如物体、地区和主题之类的要素之间的关系进行高亮显示。通常,地图可以以静态的二维(2D)格式呈现信息,该2D格式可以是三维(3D)空间在几何上准确的表示。地图可以被配置为图示房间、建筑、邻居等。类似地,地图也可以在该地图内所涵盖的信息量方面变动。
【发明内容】
[0005]本申请公开了涉及到用于生成包括稀疏和密集测绘信息的地图的方法和系统的实施例。
[0006]在一个方面,描述了一种示例方法,其可以由被配置以多个传感器的设备所执行。该方法可以包括在环境中的设备的第一位置处接收多个传感器的一个或多个输出,并且该一个或多个输出包括对应于与该第一位置相关联的该环境的一个或多个视觉特征的第一数据集合。该方法可以进一步包括基于该多个传感器的一个或多个输出中的对应性生成该环境的地图,该地图包括指示该第一数据集合的稀疏测绘数据。该方法还可以包括在该环境中的设备的第二位置处接收该多个传感器的一个或多个附加输出,并且该一个或多个附加输出包括对应于与该第二位置相关联的该环境的一个或多个视觉特征的第二数据集合。该方法可以进一步包括对该环境的地图进行修改以进一步包括指示该第二数据集合的稀疏测绘数据。该方法还可以包括经由该多个传感器中的一个或多个接收密集测绘信息,并且该密集测绘信息以表示在该环境中的物体的相对结构的方式而包括对应于在环境中的物体的数据。该方法还可以包括对该环境的地图进行修改以包括该密集测绘信息。
[0007]在另一个方面,一种具有存储于其中的指令的非暂时性计算机可读存储介质,该指令当被计算设备所执行时,使得该计算设备执行多种功能。该功能可以包括在环境中的设备的第一位置处接收多个传感器的一个或多个输出,并且该一个或多个输出包括对应于与该第一位置相关联的该环境的一个或多个视觉特征的第一数据集合。该功能可以进一步包括基于该多个传感器的一个或多个输出中的对应性生成该环境的地图,该地图包括指示该第一数据集合的稀疏测绘数据。该功能还可以包括在该环境中的设备的第二位置处接收该多个传感器的一个或多个附加输出,并且该一个或多个附加输出包括对应于与该第二位置相关联的该环境的一个或多个视觉特征的第二数据集合。该功能可以进一步包括对该环境的地图进行修改以进一步包括指示该第二数据集合的稀疏测绘数据。该功能还可以包括经由该多个传感器中的一个或多个接收密集测绘信息,并且该密集测绘信息以表示在该环境中的物体的相对结构的方式而包括对应于在环境中的物体的数据。该功能还可以包括对该环境的地图进行修改以包括该密集测绘信息。
[0008]在另外的方面,提供了一种系统,包括至少一个处理器、多个传感器,以及具有存储于其上的指令的存储器,该指令当被该至少一个处理器所执行时,使得该系统执行多种功能。该功能可以包括在环境中的设备的第一位置处接收多个传感器的一个或多个输出,并且该一个或多个输出包括对应于与该第一位置相关联的环境的一个或多个视觉特征的第一数据集合。该功能可以进一步包括基于该多个传感器的一个或多个输出中的对应性生成该环境的地图,该地图包括指示该第一数据集合的稀疏测绘数据。该功能还可以包括在该环境中的设备的第二位置处接收该多个传感器的一个或多个附加输出,并且该一个或多个附加输出包括对应于与该第二位置相关联的环境的一个或多个视觉特征的第二数据集合。该功能可以进一步包括对该环境的地图进行修改以进一步包括指示该第二数据集合的稀疏测绘数据。该功能还可以包括经由该多个传感器中的一个或多个接收密集测绘信息,并且该密集测绘信息以表示在该环境中的物体的相对结构的方式而包括对应于环境中的物体的数据。该功能还可以包括对该环境的地图进行修改以包括该密集测绘信息。
[0009]以上
【发明内容】
仅是说明性的而并非意在以任何方式进行限制。除了以上所描述的多个说明性方面、实施例以及特征之外,另外的方面、实施例和特征将通过参考附图以及随后的【具体实施方式】而变得显而易见。
【附图说明】
[0010]图1是描绘示例计算设备的功能框图。
[0011]图2图示了依据示例实施例的另一种。
[0012I图3A-3B图示了示例计算设备。
[0013]图4是用于生成地图的示例方法的流程图。
[0014]图5是显示示例地图的示例计算设备的概念图示。
[0015]图6是显示另一个示例地图的示例计算设备的概念图示。
[0016]图7是显示另一个示例地图的示例计算设备的另一种概念图示。
[0017]图8是与示例计算设备进行通信的示例云网络的概念图示。
【具体实施方式】
[0018]以下的【具体实施方式】参考附图描述了所公开系统和方法的各种特征和功能。在附图中,除非上下文以其它方式有所指示,否则相似的符号标识相似的组件。这里所描述的说明性系统和方法实施例并非意在作为限制。可以容易理解的是,所公开的系统和方法的某些方面能够以各种不同的配置进行布置和组合,所有这些都在这里得到预期。
[0019]在示例内,诸如移动设备的计算设备可以包括被配置为捕捉对应于设备环境的信息的多个传感器。基于传感器所捕捉到的环境信息,该计算设备可以被配置为形成该环境的地图。特别地,该计算设备可以利用各种方法和/或系统生成地图,这可包括生成地图以涵盖基于环境中的视觉特征的稀疏测绘并且对具有稀疏测绘的所生成的地图进行修改以进一步包括密集测绘信息,该密集测绘信息提供了对应于环境中的物体的结构和/或其它参数的数据。该计算设备可以基于满足对应性阈值的传感器的输出来修改地图,这可以包括使用特征匹配分析和/或其它对应性测量方法。
[0020]在一种示例实施方式中,计算设备可以执行一种方法,该方法包括基于该在环境中的设备的第一或初始位置而接收传感器的输出。所接收到的输出可以提供对应于在该第一位置该环境的视觉特征的数据。视觉特征可以是该计算设备的传感器能够随着该计算设备改变位置和/或取向进行追踪的环境的区别特征。例如,传感器可以检测并追踪墙壁/建筑物的角、物体的边以及环境内的其它区别特征。
[0021]基于多个传感器的输出中的对应性,该计算设备可以生成稀疏测绘,该稀疏测绘可以包括从在该第一位置该环境的视觉特征所获得的数据。该计算设备可以被配置为确定传感器中的输出之间的对应性以确保所捕捉的信息的准确性(例如,验证传感器是经校准的)。同样,该计算设备可以使用传感器之间不同类型的对应性来确定该计算设备是否应当使用传感器的输出。例如,计算设备可以使用一些格式的特征匹配来确定多个传感器的输出是否提供了有关环境中的相同特征的信息。
[0022]此外,该计算设备还可以使用与确定传感器的输出之间的对应性相关联的程度有所变化的阈值。例如,该计算设备可以要求有关传感器所捕捉的图像内的特征匹配的阈值量。同样,该计算设备可以使用与计算机视觉技术相关联的特征追踪来确定在预定阈值以上的匹配,上述阈值在多个示例内可能有所变化。例如,该计算设备可以被配置为基于阈值的类型和/或各种传感器最近多久被校准而要求不同的对应性阈值。
[0023]为了进一步形成稀疏测绘以涵盖更多信息,该设备可以在其位于环境中第二位置时接收附加传感器输出。特别地,该传感器可以在该设备位于新的位置时捕捉新的信息,例如,上述新的位置与第一位置相比可能稍有变化或者可能是更大的变化。同样,该传感器可以在可能与第一位置相同的第二位置处捕捉新的信息。在一些实例中,该计算设备可以随着设备在环境内改变位置和/或取向连续接收传感器输出。
[0024]该附加传感器输出可以为该计算设备提供对应于在第二位置处该环境的视觉特征的数据。在一些实例中,该设备可能在第二位置捕捉到与第一位置相同的视觉特征(例如,如果该设备在位置之间稍有移动)。作为结果,追踪环境内的视觉特征可以使得计算设备能够确定其位置,这还可以有助于形成该计算设备的稀疏测绘数据。例如,该设备可以对稀疏测绘数据进行修改以包括对应于第二位置中的视觉特征的数据。在视觉特征可能重叠的情况下,该计算设备可以对数据进行汇总以形成其地图或者可以以其它方式对数据进行过滤,诸如选择更近期接收的信息以包括在地图之内。
[0025]此外,该计算设备可以通过将稀疏测绘配置为包括密集测绘信息而进一步形成稀疏测绘。为了说明,例如,该计算设备可以从诸如深度相机和结构化光单元的传感器接收密集测绘信息。该密集测绘信息可以包括捕捉并表示环境中的物体的结构的数据。例如,该密集测绘可以捕捉有关稀疏测绘可能并不包括的环境中的物体的细节。该计算设备可以对其地图(例如,稀疏测绘)进行修改以包括该密集测绘信息。
[0026]在示例实施方式中,计算设备可以形成3D环境的多种表示,其可以被配置为地图格式。特别地,该计算设备可以形成由稀疏测绘数据所构成的第一层级,上述稀疏测绘数据可以由设备传感器随着计算设备移动进行捕捉。包括稀疏测绘数据的该第一层级可以作为数据点的架构而存在,但是可能无法被辨认为对应于房间和/或物体。相反,该稀疏测绘数据可以提供对应于对随着计算设备改变位置在环境中追踪的视觉特征的估计的数据点。
[0027]此外,在示例实施方式中,该计算设备可以形成附加层以随稀疏测绘数据所构成的第一层级进行配置。该附加层可以包括提供环境的密集表示的数据点。例如,密集表示的主要源可以对应于深度数据,其可以由计算设备通过使用结构化光传感器进行捕捉。例如,该计算设备可以通过使用深度相机来捕捉深度数据,该深度相机可以向该计算设备提供深度图像。该计算设备可以使用重构软件和/或处理来重构在该深度图像中所捕捉的环境的3D几何形状。
[0028]另外,该计算设备可以进一步使用所估计的轨迹信息来将环境的3D分部配置为例如可以以地图格式存在的全局对象。特别地,该计算设备可以改变位置而使用传感器捕捉环境的各个分部并且可以将该各个分部配置为全局地图。在一些实例中,该计算设备可以被配置为确定从传感器所接收的深度数据是否指示不希望的噪声。该计算设备可以去除对应于噪声的深度数据。同样,该计算设备还可以对来自各个取向和/或位置的多个深度图像进行汇总从而减少对应于噪声的所使用的深度数据的量。
[0029]在另外的方面,该计算设备可以与其它的设备和/或服务器(例如,云网络)发送和/或接收地图数据。在多个示例中,该计算设备可以针对其它实体提供或接收稀疏测绘信息、密集测绘信息和/或其组合。特别地,该计算设备可以接收可能对应于该计算设备并未实际捕捉其中的地图数据的环境的地图数据。云网络和/或其它设备可以提供新的地图数据,其可以被该计算设备用来对其地图进行修改和/或更新。在这样的示例中,该计算设备尽管可能之前没有访问特定环境也能够使用地图数据来确定其位置。为了确定其位置,该计算设备可以使用各种技术和/或数据,诸如来自传感器的输出和/或所生成的地图。
[0030]如之前所指示的,云(例如,服务器)可以从设备接收地图数据,该云可以将其存储在存储器中以便由计算设备进行访问。在示例实施方式中,云可以对来自多个设备的地图数据进行汇总以创建并更新该云可以将其与计算设备进行分享的主要地图或多个地图。云的地图可以包括从任意数量的设备所提供的信息并且可以通过从设备接收新的地图数据而连续更新。
[0031]现在参考附图,图1图示了示例计算设备100。在一些示例中,图1中所示的组件可以跨多个计算设备进行分布。然而,出于示例的目的,组件作为一个示例计算设备100的一部分被示出并描述。计算设备100可以是或者可以包括移动设备(诸如移动电话)、台式计算机、膝上计算机、电子邮件/消息发送设备、平板计算机,或者可以被配置为执行这里所描述的功能的类似设备。总体上,计算设备100可以是被配置为依据这里所描述的方法和功能传送数据或接收数据的任意类型的计算设备或发射器。
[0032]计算设备100可以包括接口 102、无线通信组件104、蜂窝无线电通信组件106、全球定位系统(GPS)接收器108、(一个或多个)传感器110、数据储存器112以及(一个或多个)处理器114。图1所示的组件可以通过通信链路116链接在一起。计算设备100还可以包括用于使得能够在计算设备100之内以及计算设备100和诸如服务器实体的其它计算设备(未示出)之间进行通信的硬件。该硬件例如可以包括发射器、接收器和天线。
[0033]接口102可以被配置为允许计算设备100与诸如服务器的其它计算设备(未示出)进行通信。因此,接口 102可以被配置为从一个或多个计算设备接收输入数据,并且还可以被配置为向一个或多个计算设备发送输出数据。接口 102可以被配置为根据有线或无线通信协议进行工作。在一些示例中,接口 102可以包括按钮、键盘、触摸屏、(一个或多个)扬声器118、(一个或多个)麦克风120,和/或用于接收输入的任意其他部件,以及一个或多个显示器和/或用于传输输出的任意其它部件。
[0034]无线通信组件104可以是被配置为根据一种或多种无线通信标准而促成计算设备100的无线数据通信的通信接口。例如,无线通信组件104可以包括被配置为根据一种或多种IEEE 802.11标准而促成无线数据通信的WiFi通信组件。作为另一个示例,无线通信组件104可以包括被配置为根据一种或多种蓝牙标准而促成无线数据通信的蓝牙通信组件。其它示例也是可能的。
[0035]蜂窝无线电通信组件106可以是被配置为促成与蜂窝无线基站的无线通信(语音和/或数据)以提供到网络的移动连接的通信接口。蜂窝无线电通信组件106例如可以被配置为连接至计算设备100位于其中的小区的基站。
[0036]GPS接收器108可以被配置为通过对GPS卫星所发送的信号进行精确计时来估计计算设备100的位置。
[0037](—个或多个)传感器110可以包括一个或多个传感器,或者可以表示包括在计算设备100内的一个或多个传感器。示例传感器包括加速度计、陀螺仪、计步器、光传感器、麦克风、(一个或多个)相机、红外闪光灯、气压计、磁力计、GPS、WiF1、近场通信(NFC)、蓝牙、投影仪、深度传感器、温度传感器,或者其它位置和/或场境感知传感器。
[0038]数据储存器112可以存储能够被(一个或多个)处理器114所访问并执行的程序逻辑122。数据储存器112还可以存储(一个或多个)传感器110所收集的数据,或者无线通信组件104、蜂窝无线电通信组件106和GPS接收器108中的任何一个所收集的数据。
[0039](一个或多个)处理器114可以被配置为接收任意(一个或多个)传感器110所收集的数据并且基于该数据执行任意数量的功能。作为示例,(一个或多个)处理器114可以被配置为使用一个或多个位置确定组件来确定计算设备100的一个或多个地理位置估计,上述位置确定组件诸如无线通信组件104、蜂窝无线电通信组件106或GPS接收器108。(一个或多个)处理器114可以使用位置确定算法来基于计算设备100的无线范围内的一个或多个已知无线接入点的存在和/或位置来确定计算设备100的位置。在一个示例中,无线位置组件104可以确定一个或多个无线接入点(例如,MAC地址)的身份并且测量从该一个或多个无线接入点中的每一个所接收到的信号的强度(例如,接收信号强度指示)。来自每个唯一无线接入点的接收信号强度指示(RSSI)可以被用来确定距每个无线接入点的距离。该距离随后可以与存储有关每个唯一无线接入点所在之处的信息的数据库进行比较。基于距每个无线接入点的距离以及无线接入点中的每一个的已知位置,可以确定计算设备100的位置估计。
[0040]在另一个实例中,(一个或多个)处理器114可以使用位置确定算法而基于附近蜂窝基站来确定计算设备100的位置。例如,蜂窝无线电通信组件106可以被配置为标识计算设备100从其接收或最后接收到来自蜂窝网络的信号的小区。蜂窝无线电通信组件106还可以被配置为测量到提供该信号的基站的往返时间(RTT),并且将该信息与所标识的小区进行组合来确定位置估计。在另一个示例中,蜂窝通信组件106可以被配置为使用从三个或更多基站所观察的到达时间差(OTDOA)来估计计算设备100的位置。
[0041]在一些实施方式中,计算设备100可以包括设备平台(未示出),其可以被配置为多层Linux平台。该设备平台可以包括不同的应用和应用架构,以及各种内核、库和运行时间实体。在其它示例中,其它格式或操作系统也可以操作计算设备100。
[0042]通信链路116被图示为有线连接;然而,也可以使用无线连接。例如,通信链路116可以是诸如通用串行总线的有线串行总线或并行总线,或者是例如使用短距离无线无线电技术或在IEEE 802.11 (包括任意IEEE 802.11修订)中所描述的通信协议的无线连接等等。
[0043]计算设备100可以包括更多或更少的组件。另外,这里所描述的示例方法可以由计算设备100的组件单独执行,或者由计算设备的一个或全部组件组合执行。
[0044]图2图示了另一种示例计算设备200。图2中的计算设备200可以表示图1所示的计算设备100的一部分。在图2中,计算设备200被示为包括多个传感器,诸如包括陀螺仪204和加速度计206的惯性测量单元(頂1])202、全局快门(GS)相机208、卷帘快门(RS)相机210、面向前方的相机212、红外(IR)闪光灯214、气压计216、磁力计218、GPS接收器220、WiFi/NFC/蓝牙传感器222、投影仪224、深度传感器226和温度传感器228,他们中的每一个都向协同处理器230进行输出。协同处理器230接收来自应用处理器232的输入并且向该应用处理器232进行输出。计算设备200可以进一步包括直接向应用处理器232进行输出的第二頂U 234。
[0045]IMU 202可以被配置为基于陀螺仪204和加速度计206的输出来确定计算设备200的速度、取向和重力。
[0046]GS相机208可以被配置为计算设备200上作为面向后方的相机,从而其背向计算设备200的前方。GS相机208可以被配置为同时读取相机208的所有像素的输出。GS相机208可以被配置为具有大约120-170度的视场,诸如用于广角观看的鱼眼传感器。
[0047]RS相机210可以被配置为从像素显示器的顶端向像素显示器的底部读取像素的输出。作为一个示例,RS相机210可以是红/绿/蓝(RGB)红外(IR)4兆像素的图像传感器,但是也可能是其它的传感器。RS相机210可以具有快速曝光从而以例如大约5.5ms的最小读取时间进行操作。同GS相机208—样,RS相机210可以是面向后方的相机。
[0048]相机212可以是计算设备200中的附加相机,其被配置为面向前方的相机或者在面向与GS相机208和RS相机210相反的方向上。相机212可以被配置为捕捉计算设备200的第一视点的图像,并且GS相机208和RS相机210可以被配置为捕捉该设备的与第一视点相反的第二视点的图像。相机212可以是广角相机,并且例如可以具有用于广角观看的大约120-170度的视场。
[0049]IR闪光灯214可以为计算设备200提供光源,并且例如可以被配置为以朝向计算设备200后方的方向输出光从而为GS相机208和RS相机210提供光。在一些示例中,IR闪光灯214可以被配置为以诸如5Hz的低占空比进行闪光,或者如协同处理器230或应用处理器232所指示的以非连续方式进行闪光。例如,IR闪光灯214可以包括被配置为在移动设备中使用的LED光源。
[0050]图3A-3B是示出图2中的计算设备200的一些传感器的配置的计算设备300的概念图示。在图3A-3B中,计算设备300被示为移动电话。计算设备300可以类似于图1的计算设备100或图2的计算设备200中的任一者。图3A图示了计算设备300的前方,其中提供了显示器302以及面向前方的相机304和P/L传感器开口 306 (例如,接近度或光传感器)。面向前方的相机304可以是如图2中所描述的相机212。
[0051]图3B图示了计算设备300的背面308,其中提供了后方相机310和另一个后方相机314。后方相机310可以是如图2中的计算设备200中所描述的RS相机210,而后方相机312则可以是GS相机208。计算设备300的背面308还包括IR闪光灯314,其可以是如图2中的计算设备200中所描述的IR闪光灯214或投影仪224。在一个示例中,IR闪光灯214和投影仪224可以是同一个。例如,可以使用单个IR闪光灯来执行IR闪光灯214和投影仪224的功能。在另一个示例中,计算设备300可以包括位于后方相机310(未示出)附近的第二闪光灯(例如,LED闪光灯)。例如,传感器的配置和放置可以有助于提供计算设备300的所期望功能,然而其它配置也是可能的。
[0052]返回参考图2,气压计216可以包括压力传感器,并且可以被配置为确定空气压力和海拔变化。
[0053]磁力计218可以被配置为提供计算设备200的滚转、偏转和俯仰测量,并且例如能够被配置为作为内部罗盘进行操作。在一些示例中,磁力计218可以是MU 202的组件(未示出)。
[0054]GPS接收器220可以类似于图1的计算设备100中所描述的GPS接收器108。在另外的示例中,GPS 220还可以输出如从GPS卫星或其它网络实体所接收到的时序信号。这样的时序信号可以被用来对来自跨多个设备的传感器所收集的包括相同卫星时间戳的数据进行同步。
[0055]WiFi/NFC/蓝牙传感器222可以包括被配置为根据如以上随图1的计算设备100所讨论的WiFi和蓝牙标准以及根据NFC标准进行操作以经由接触或与其它设备紧密邻近而与另一个设备建立无线通信的无线通信组件。
[0056]投影仪224可以是或包括结构化光投影仪,其具有带有图案生成器的激光仪以在环境中产生点状图案。投影仪224可以被配置为结合RS相机210进行操作以恢复有关环境中的物体的深度的信息,诸如物体的三维(3D)特性。例如,单独的深度传感器226可以被配置为在周围光照条件下捕捉3D的点状图案的视频数据以感测在环境中的物体的范围。投影仪224和/或深度传感器226可以被配置为基于所投影的点状图案来确定物体的形状。作为示例,深度传感器226可以被配置为使得投影仪224产生点状图案并且使得RS相机210捕捉该点状图案的图像。深度传感器226随后可以处理该点状图案的图像,使用各种算法来三角测量并提取3D数据,并且向协同处理器230输出深度图像。
[0057]温度传感器228可以被配置为测量例如计算设备200的周边环境中的温度或温度梯度,诸如温度的变化。
[0058]协同处理器230可以被配置为控制计算设备200上的所有传感器。在示例中,协同处理器230可以控制任意相机208、210和212的曝光时间以匹配IR闪光灯214,控制投影仪224的脉冲同步、持续时间和强度,并且总体上控制传感器的数据捕捉或收集时间。协同处理器230还可以被配置为将来自任意传感器的数据处理为用于应用处理器232的适当格式。在一些示例中,协同处理器230将来自任意传感器的对应于相同时间戳或数据收集时间(或时间周期)的所有数据融合为要提供至应用处理器232的单个数据结构。
[0059]应用处理器232可以被配置为控制计算设备200的其它功能,诸如控制计算设备200以根据计算设备200上的操作系统或任意数量的软件应用进行操作。应用处理器232可以使用传感器所收集并且从协同处理器所接收到的数据来执行任意数量的类型的功能。应用处理器232可以接收协同处理器230的输出,并且在一些示例中,应用处理器232也可以接收来自包括GS相机208和RS相机210在内的其它传感器的原始数据输出。
[0060]第二IMU234可以将所收集的数据直接输出至应用处理器232,其可以被应用处理器232所接收并且被用来触发其它传感器开始收集数据。作为示例,第二MU 234的输出可以指示计算设备200的运动,并且当计算设备200运动时,可能期望收集图像数据、GPS数据等。因此,应用处理器232能够通过共用总线上的通信信令触发其它传感器以在頂U 234的输出指示运动的时间收集数据。
[0061]图2所示的计算设备200可以包括传感器和处理器中的每一个之间的多个通信总线。例如,协同处理器230可以通过内置集成电路(I2C)总线与頂U 202、GS相机208和RS相机212中的每一个进行通信,上述I2C总线包括用于通信的多主控串行单端总线。协同处理器230可以通过相同的I2C总线或单独的通信总线接收頂U 202、GS相机208和RS相机212中的每一个所收集、测量或检测的原始数据。协同处理器230可以通过多个通信总线与应用处理器232进行通信,上述通信总线包括串行外设接口(SPI)总线,其包括可以以全双工模式进行操作的同步串行数据链路、I2C总线,以及包括被配置为传输相机或像素信息的串行接口的移动行业处理器接口(MIPI)。例如,各种总线的使用可以基于数据的通信速度的需求以及相应通信总线所提供的带宽来确定。
[0062]图4是用于使用传感器所提供的信息生成地图的方法400的流程图。还可能存在用于使用传感器所提供的信息生成地图的其它示例方法。
[0063]方法400可以包括如框402-412中的一个或多个所图示的一个或多个操作、功能或动作。虽然框以连续顺序被图示,但是这些框在一些实例中可以并行执行和/或以不同于这里所描述的顺序来执行。而且,各个框可以被组合为更少的框,被划分为附加框,和/或基于所期望的实施方式而被去除。
[0064]此外,对于方法400以及这里所公开的其它过程和方法而言,流程图示出了本实施例的一种可能实施方式的功能和操作。就此而言,每个框可以表示程序代码的模块、分段或部分,其包括处理器所能够执行以便实施该过程中的具体逻辑功能或步骤的一个或多个指令。该程序代码可以被存储在任意类型的计算机可读介质或存储器上,作为示例,诸如包括盘或硬驱动的存储设备。计算机可读介质可以包括非暂时性计算机可读介质,作为示例,诸如短期存储数据的计算机可读介质,如寄存器存储器、处理器告诉缓存和随机存取存储器(RAM)。该计算机可读介质还可以包括非暂时性介质或存储器,作为示例,诸如次要或持久的长期存储,如只读存储器(R0M)、光盘或磁盘、紧凑盘只读存储器(CD-ROM)。计算机可读介质还可以是任意其它的易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质、有形存储设备或者其它制造品。
[0065]此外,对于方法400以及这里所公开的其它过程和方法,图4中的每个框可以表示被连线以执行过程中的具体逻辑功能的电路。
[0066]在框402,方法400可以包括在环境中的设备的第一位置处接收多个传感器的一个或多个输出。特别地,计算设备可以接收传感器输出,该传感器输出提供对应于与该第一位置相关联的该环境的视觉特征的第一数据集合。
[0067]在示例中,诸如图1-2以及图3A-3B所示的示例设备的任意类型的计算设备可以被配置为接收在可以从各种传感器提供的传感器输出内捕捉的信息。例如,计算设备可以包括系统组件和传感器,诸如陀螺仪、加速度计、相机(GS/RS)、气压计、磁力计、投影仪、深度传感器、温度传感器、全球定位系统(GPS)、WiFi传感器、近场通信(NFC)传感器和蓝牙传感W mm
TlFT,O
[0068]各种传感器可以捕捉对应于环境的不同类型的信息。例如,相机系统可以被配置为捕捉环境的图像,其可以包括含有深度信息的图像。计算设备的相机系统可以被配置为在图像内提供大量信息并且可以以快的获取速率提供该信息。同样,计算设备可以包括MU单元,其捕捉与计算设备的移动相关的测量。另外,计算设备可以利用GPS来基于全局坐标确定计算设备的位置和/或可以使用WiFi传感器、近场通信(NFC)传感器和/或蓝牙传感器接收来自其它设备和/或服务器的其它信息。此外,该计算设备可以包括专用于捕捉其它类型的信息的各种传感器。
[0069]在操作期间,计算设备例如可以基于传感器的类型而对各种传感器所提供的信息进行分析。在一种这样的利用来自多种类型的传感器的输出的说明中,该计算设备可以对相机系统所捕捉的图像连同如IMU单元所提供的该设备的运动信息一起进行评估。将图像内所提供的信息与运动信息进行组合,该计算设备例如可以确定在环境中的计算设备的姿态(例如,位置和取向)。同样,在另一个示例中,该计算设备可以利用深度相机和彩色相机所捕捉的信息来生成涵盖深度以及有关深度的相对应颜色的图像。还可能存在分析和使用设备传感器所提供的输出的其它示例。
[0070]此外,该计算设备可以被配置为随着信息可以被传感器捕捉而将该设备的相对位置和/或取向与该信息进行关联。例如,该计算设备可以从设备传感器接收有关环境的信息并且将该信息与如GPS接收在接收时刻所指示的该设备的全局坐标进行关联。因此,随着计算设备改变位置和/或取向(例如,用户移动该设备),传感器可以持续进行接收以捕捉有关周围环境的信息并且该计算设备可以在逻辑场境中接收环境,该逻辑场境可以使得该计算设备能够对到来的信息加以分析。为了进一步说明,该计算设备可以在该设备被初始开机之后开始捕捉对应于环境的数据点,但是该计算设备可以基于在环境中的设备的位置和/或取向而辨识出到来的数据点可能与之前接收的数据点相关,在环境中的设备的位置和/或取向可以基于如頂U单元所提供的重力方向。
[0071]在示例实施方式中,计算设备可以在环境中的第一(例如,初始)位置接收来自各种传感器的输出(例如,第一数据集合)。例如,该传感器可以以在逻辑上对向该计算设备提供信息的各种传感器进行链接(例如,一些形式的对应性)的方式来接收该信息。作为对比,在另一个示例中,该计算设备可以被配置为对所接收到的信息进行分类以确定可能的链接。此外,出于示例的目的,在第一位置接收信息的计算设备可以包括任意类型的环境,包括但并不局限于室外环境、建筑物内部、车辆内部以及其它场所等。一般而言,只要设备可以访问环境,设备传感器就可以被配置为捕捉对应于该环境的信息。
[0072]为了进一步说明,例如,传感器输出可以为计算设备提供有关处于第一位置该环境内的物体的测量。例如,计算设备可以接收提供对应于环境中的视觉特征的信息。该视觉特征可以表示环境内的区别特征,诸如传感器可以快速且有效地捕捉到与之相关的信息的物体或建筑物的角或者其它部分等。
[0073]在一些方面,传感器可以在传感器对环境进行第一分析的期间捕捉对应于该环境中的视觉特征的信息。传感器可以在捕捉对应于相同环境中的较小、不太有区别的特征的数据点之前获取对应于该环境中更为有区别的特征(例如视觉特征)的数据点。对应于环境中的区别特征的少数数据点可以对应于该环境的稀疏测绘,该稀疏测绘可以涵盖该环境中的区别特征的基本布局。
[0074]此外,不同设备传感器可以随着计算设备改变在环境内的取向和/或位置(例如,姿态)对视觉特征进行追踪。追踪视觉特征可以使得计算设备能够确定其相对于环境的特征和/或其它分部的姿态。另外,追踪环境中的区别特征可以包括传感器向计算设备提供对应于区别特征的至少一些数据点。随着计算设备改变在环境中的位置或取向,传感器仍然可以追踪计算设备在环境内的相对位置和/或取向,这对于确定计算设备的位置会是有用的。追踪在环境中设备的取向可以包括确定计算设备相对于重力方向的取向。例如,计算设备可以从IMU单元接收重力信息并且利用该重力信息来追踪计算设备的位置。同样,传感器可以追踪视觉特征以得出对应于物体和/或环境的更多信息,诸如物体之间、计算设备和物体之间的距尚,等等。
[0075]在一种示例实施方式中,设备可以使用一种类型的传感器追踪环境中的视觉特征并且使用其它类型的传感器来捕捉信息。同样,设备可以利用多个传感器来追踪特征和/或捕捉信息。
[0076]在框404,方法400可以进一步包括基于多个传感器的一个或多个输出中的对应性生成该环境的地图,该地图包括指示第一数据集合的稀疏测绘数据。特别地,计算设备可以生成该环境的地图以包括稀疏测绘数据,该稀疏测绘数据包括传感器所捕捉的对应于与处于第一位置的设备相关联的该环境的视觉特征的第一数据集合。
[0077]基于传感器输出生成包括稀疏测绘数据的环境的地图可以包括该计算设备执行各种地图生成技术和/或软件。例如,计算设备可以从各种传感器(例如,相机)接收对应于3D环境的信息并且可以将该信息转换为2D表示。从3D信息向2D地图的转换例如可以涉及到该计算设备利用投影过程和/或计算机视觉软件。
[0078]在示例实施方式中,该计算设备可以基于稀疏测绘数据来形成地图,该稀疏测绘数据如传感器在该设备最初开始在第一位置接收地图数据时所捕捉的反映相对于计算设备的环境中的区别视觉特征的位置和/或对准。该稀疏测绘数据可以涵盖指示如从设备的传感器的输出所得出的该环境内的视觉特征(例如,物体的区别特征)的数据点。在一个这样的示例中,该计算设备可以被配置为随着该计算设备从传感器接收对应于环境的其它类型的信息(例如,密集测绘信息)基于稀疏测绘数据生成地图。在另一个示例中,该计算设备可以被配置为在使用稀疏测绘生成地图以反映设备环境的一些基本方面之前采集并汇总来自传感器的对应于环境的输出。
[0079]该计算设备可以被配置为基于以一些方式相对应的传感器的输出来生成地图,这可以包括捕捉来自环境中的相同特征的信息。同样,该计算设备可以进一步基于某个阈值而要求传感器的输出进行对应,上述阈值可以在示例中预先定义。例如,该计算设备可以要求输出涉及到超过预先定义的阈值的相同特征。也可能存在其它的对应性示例,包括用于确定传感器之间的对应性的技术。
[0080]在一个示例方面,计算设备可以以建立环境信息的图形表示以便在设备上进行显示的方式使用稀疏测绘来生成环境的地图,这可以包括使用如在稀疏测绘数据内所接收到的空间关系来表示一些关系(例如,房间之间的距离)。例如,该稀疏测绘数据可以示出可能存在于物体和/或计算设备的不同位置之间的关系。
[0081]在一种示例实施方式中,所生成的环境的地图可以包括对应于视觉特征的数据而没有其它特征。在其它实施方式中,该计算设备可以配置地图以包括稀疏测绘,该稀疏测绘除了视觉特征之外还提供对应于环境中的附加要素的地图数据。
[0082]在另外的方面,在基于从传感器所接收到的稀疏测绘数据生成地图之后,该计算设备可以将所生成的地图存储在位于设备上和/或远程位于云(例如,服务器)的存储器内。例如,该计算设备可以将所生成的稀疏测绘存储在应用内,该应用可以被计算设备所关闭和打开。此外,该设备可以将稀疏测绘数据和/或任意所生成的地图发送至其它设备和/或云(例如,服务器)以供其它实体使用。也可能存在稀疏测绘存储的其它示例。
[0083]在框406,方法400可以包括在环境中的该设备的第二位置处接收多个传感器的一个或多个附加输出。为了进一步进行说明,计算设备可以接收对应于与该设备的第二位置相关联的该环境中的视觉特征的第二数据集合。特别地,例如,该计算设备可以接收对应于其它环境的附加稀疏测绘数据。
[0084]捕捉用于生成地图的信息的计算设备可能在通过传感器捕捉环境信息的同时改变取向和/或位置。在一个示例中,该计算设备可以被配置为确定设备何时改变位置和/或取向,这可以包括考虑重力方向的因素。另外,该计算设备可以被配置为在从传感器接收到新的信息集合时对设备的姿态(例如,位置和取向)的任何变化进行追踪。该计算设备可以将任意变化的因素加入到对新信息的接收中,并且可以在分析所接收到的传感器输出时使用设备的姿态。使用设备的位置和/或取向信息(例如,IMU输出)可以进一步允许计算设备对到来的地图数据进行组织。该计算设备可以进一步要求输出中的对应性以确定稀疏测绘数据是否可以准确反映设备的环境。
[0085]特别地,如之前所指出的,计算设备可以接收对应于环境的第一部分的信息,并且随后可以从传感器接收对应于该环境的第二或新的部分的附加信息。该计算设备可以被配置为持续从传感器接收环境信息并且可以将该信息用于地图生成。例如,该计算设备可以在不同的环境接收附加稀疏测绘数据。
[0086]特别地,执行方法400或类似方法的计算设备可以随着该设备在环境中改变取向和/或位置接收来自传感器的输出。如这里所描述的,该计算设备可以在初始位置接收输出之后在第二位置接收来自传感器的输出。在一个示例中,设备可以在第一位置接收对应于环境的输出,并且然后在相同位置接收来自传感器的对应于该环境的输出。差异可能仅是两次采集信息之间的时间变化。
[0087]如所讨论的,该设备可以包括可以被配置为随着设备改变相对于环境的姿态追踪环境中的视觉特征或其它点。在一个示例中,设备可以在第一位置接收输出,并且随后在第二位置接收附加输出。环境中的第一位置和第二位置之间的差异可能是稍有变化至没有差异,或者可能明显变化。设备从传感器接收输出之间的变化范围可以在不同实施方式之间有所变化。
[0088]在框408,方法400可以进一步包括对环境的地图进行修改以进一步包括指示第二数据集合的稀疏测绘数据。在示例中,该计算设备可以基于如设备的传感器所提供的到来地图数据而继续构建和/或细化其所生成的地图。例如,该计算设备可以接收对应于环境的附加稀疏测绘数据并且可以基于所接收到的附加稀疏数据对所生成的地图进行修改。例如,对所生成的地图进行修改可以包括如计算设备所执行的增加、去除和/或组合地图数据。
[0089]在示例实施方式中,计算设备可以从一个或多个设备传感器接收对应于各种环境的输出。在该输出内,计算设备可以接收稀疏测绘数据,其可以包括指示各种环境内的视觉特征的数据点。该计算设备可以随着该设备改变相对于环境的位置和/或取向接收不同的稀疏测绘数据。例如,移动的计算设备的传感器可以接收对应于不同环境的各种地图数据,诸如稀疏测绘数据。即使计算设备的取向和/或位置的轻微变化也会导致传感器接收到不同的地图数据。随着计算设备接收到新的地图数据(例如,稀疏测绘数据),该计算设备可以基于到来的新的地图数据对所存储的已生成的地图进行修改。
[0090]例如,该计算设备可以在该设备可能被定位和/或取向于第一位置时接收对应于环境的视觉特征的稀疏测绘数据,并且还可以在该设备可能被定位和/或取向于不同的位置时接收对应于不同环境的视觉特征的稀疏测绘数据。
[0091]此外,该计算设备可以被配置为基于所接收到的不同稀疏测绘数据集合来生成多个环境的地图。在另一个示例中,该计算设备可以生成多个地图,这可能在环境可能互相不同(例如,远离)时发生。同样,该计算设备可以对所生成的环境的地图进行修改以进一步包括在该设备可能位于新的位置时传感器所获取的稀疏测绘数据。所生成的地图可以包括对应于来自第一环境和新的环境的视觉特征的数据点。基于到来的地图数据对所生成的地图进行修改的这种过程可以通过计算以迭代的方式来执行。换句话说,该计算设备可以持续更新其地图以反映出如设备传感器所提供的到来的地图数据。
[0092]在另一种实施方式中,该计算设备可以使用新接收的稀疏测绘数据来进一步细化所生成的地图。例如,该计算设备可以在传感器输出所提供的信息内确定环境自上一次在那里捕捉稀疏测绘信息起已经有所变化。在这样的情况下,该计算设备可以通过基于先前所获取到的稀疏测绘数据改变地图以反映出在该环境的最新输出中所接收到的信息,来对地图进行修改以包括一些所接收到的稀疏测绘数据。
[0093]在对所生成的地图进行修改的期间,该设备可以使用如稀疏测绘数据所提供的视觉特征。例如,该设备可以追踪环境中和/或稀疏测绘内的视觉特征以确定应当被更新、增加、减去和/或细化的稀疏测绘的部分。
[0094]在框410,方法400还可以包括经由多个传感器中的一个或多个接收密集测绘信息。特别地,计算设备的传感器可以捕捉密集测绘信息,该密集测绘信息以使得密集事项信息表示在环境中的物体的相对结构的方式而提供对应于在环境中的物体的数据。
[0095]类似于稀疏测绘数据,计算设备可以从各种类型的传感器接收密集测绘信息。例如,包括GS相机和/或RS相机的相机系统可以捕捉密集测绘信息以供计算设备利用。不同类型的相机可以使用所捕捉的信息的组合来帮助采集密集测绘信息。
[0096]在一些示例中,捕捉密集测绘信息的传感器可以是捕捉稀疏测绘数据的相同传感器。在其它示例中,与捕捉稀疏测绘信息的传感器相比不同的传感器可以被配置为捕捉密集测绘信息。例如,计算设备可以被配置为确定哪些类型的传感器捕捉密集测绘信息以及捕捉稀疏测绘数据的类型。
[0097]捕捉密集测绘信息的传感器可以被配置为捕捉环境的更多细节。不同于捕捉有关环境中的区别视觉特征的地图数据,传感器可以被配置为捕捉对应于物体的结构的密集测绘信息。此外,密集测绘信息可以捕捉稀疏测绘可能并不包括的物体的数据点。例如,密集测绘信息可以包括对应于较小物体的数据点和/或有关物体的细节。该计算设备可以使用密集测绘信息来配置所生成的地图以包括附加信息,诸如环境内的物体的位置和结构。
[0098]在框412,方法400可以包括对环境的地图进行修改以包括密集测绘信息。特别地,计算设备可以对其所生成的地图进行修改以除了稀疏测绘之外还包括密集测绘信息。对所生成的地图进行修改以包括密集测绘信息可以涉及到该计算设备执行各种技术和/或过程。例如,该计算设备可以基于将稀疏测绘内的视觉特征与如密集测绘信息内所提供的相同视觉特征对准来更新地图。
[0099]在一个方面,计算设备可以基于传感器针对环境所捕捉的密集测绘信息而对所生成的地图和/或稀疏测绘进行修改以进一步提供环境内的物体的结构和位置。例如,该计算设备可以考虑附加信息的因素以对所生成地图进行修改,所述附加信息诸如计算设备的姿态和坐标。
[0100]在一种示例的修改过程中,该计算设备可以在地图生成的期间对地图进行更新以包括密集测绘信息。例如,该计算设备可以利用稀疏测绘和密集测绘信息两者来生成地图。在这样的示例中,计算设备可以随着其同样接收稀疏测绘信息接收密集测绘信息。该计算设备可以使用软件来分析所接收到的信息并且生成反映所接收到的信息的地图。
[0101]在另一个示例中,计算设备可以通过使用能够捕捉深度图像的相机以及一些形式的结构化光来捕捉密集测绘信息。该计算设备可以利用光和相机来捕捉深度图像,该设备可以将该深度图像用来重构对应于如该深度图像所捕捉的该计算设备的环境的3D几何信息。随着计算设备改变位置和/或取向,该计算设备可以持续捕捉深度图像并且可以使用所估计的轨迹因素来将不同的所确定的3D几何信息共同配置为全局格式,该全局格式例如可以作为地图而存在。
[0102]在示例中,该计算设备还可以被配置为标识指示噪声的深度数据。为了减少可能作为噪声的结果而接收的深度数据的数量,该计算设备可以捕捉附加深度图像,这可以包括从不同的位置和/或取向捕捉相同环境空间的深度图像。
[0103]此外,在一些实例中,深度图像可以并不捕捉环境的所有部分。这可能由于一些纹理可能无法使用相机进行测量而发生。然而,计算设备例如可以在当其位于不同的位置和/或取向时捕捉的附加深度图像内捕捉缺失的部分。同样,可以利用其它传感器来捕捉缺失的信息。
[0104]在一些实例中,该计算设备可以基于先前针对相同环境所确定的稀疏测绘数据来确定密集测绘信息。此外,该计算设备可以使用诸如占用数据结构之类的可以将环境细分为规则类型的地区的数据结构,上述地区可以作为被连接以表示该环境的许多小方框而存在。例如,针对计算设备所配置的表示环境的一小部分的每个方框(例如,大小为I英寸),该计算设备可以存储该方框是否被占用的值。该计算设备可以确定各个方框是否应当被填充或清空,这对应于物体是否可以位于环境的该特定地区。在一种这样的说明中,计算设备可以将一行中的多个方框配置为被填充以表示环境中的一个物体。
[0105]此外,该计算设备可以配置环境中相同地区的多个观察以确定可能在不同观察之间发生冲突的方框。该计算设备可以使用各种技术和/或软件以基于冲突的观察来确定方框是否应当被填充。例如,计算设备可以确定提供了相应方框的更多的观察应当是空的而不是满的。在该情况下,计算设备可以被配置为遵循提供该方框的观察应当是空的。
[0106]另外,该计算设备还可以利用从相机和/或其它传感器所捕捉的视觉数据来进一步生成密集测绘信息。例如,与计算设备相关联的深度传感器可以生成数据点,该数据点可以提供具有圆形形状的物体(例如,生成看上去是圆形的物体)。该计算设备可以对来自相机的数据进行融合和/或配置以增强物体的3D结构,其可以包括边信息以利用更为锐利的图像来定义物体。当物体可能在环境中出现时,更为锐利的图像可以更为接近地反映该物体。该计算设备可以使用所采集的信息来检测图像内的线并且还可以检测结构平面的相交(例如,墙壁到地板)以提高所生成的地图的准确性。
[0107]由计算设备所生成的各种环境的地图表示可以为该计算设备提供有关该环境的哪些空间可以被占用或清空的信息。同样,计算设备可以利用所生成的地图提供的信息来确定设备的可能轨迹,这可以为计算设备提供该环境中由开放空间所构成的区域以及可能被物理结构所占用的区域的置信度。例如,计算设备可以使用所生成的地图来确定环境的某个空间可能被墙壁所占用而邻近的空间则可以是开放的走廊,可供计算设备穿行。
[0108]在一种示例实施方式中,设备可以经由有线或无线链路与其它设备进行通信以在其间发送和接收稀疏测绘信息。利用设备的网络,设备可以接收对应于新环境的稀疏测绘,上述新环境可以包括该设备从来没有出现在其中的环境。例如,该设备的网络可以包括通信安全并且要求密码来进入。
[0109]在另一个示例中,设备可以利用以稀疏测绘数据和/或密集测绘信息所更新的所生成的地图来标识相对于环境的设备的位置。该计算设备可以基于稀疏测绘数据分析环境内的视觉特征和/或可以基于如密集测绘信息所提供的物体结构来分析位置。此外,该计算设备还可以进一步使用IMU单元和/或其它传感器所提供的信息来进一步确定设备的位置。来自頂U单元的信息可以为计算设备提供该设备相对于环境中的物体的位置和/或取向信息,并且该计算设备可以连同所生成的地图一起使用该信息来确定设备的位置。
[0110]在另外的示例实施方式中,计算设备可以配备以能够捕捉深度图像的相机以及可以被配置为捕捉彩色图像的另一个相机。这两个相机可以在用于计算设备的相机系统内进行操作,该相机系统可以包括被同步在一起以捕捉对应于相同环境的图像的相机。同样,该相机系统可以包括附加相机。
[0111]在示例实施方式内,该计算设备可以接收来自相机系统的深度图像以及与该深度图像相关联的彩色图像。不同的图像可以以在两个图像之间引起对应性方式被捕捉。此外,该计算设备可以将从深度图像所捕捉的任何几何形状配置为带有来自彩色图像的适当色彩的纹理。在另一个示例中,该计算设备可以包括能够捕捉深度和色彩两者的单个相机。然而,单个相机可能无法同时捕捉深度和色彩,该计算设备可以被配置为使用在对深度图像的捕捉之前或之后所捕捉的色彩信息来向该深度图像提供色彩。此外,该计算设备可以使用其它信息来记录来自一些时间的图像的色彩以在任意时间提供深度图像。
[0112]在另一种示例实施方式中,该计算设备可以利用测距法来确定该计算设备的姿态,该姿态可以在并不参考任何所存储的数据(例如,所生成的地图)的情况下被使用。在计算设备观察到测距信息和/或其它类型的信息时,该计算设备可以将所观察到的信息格式化为一些格式的地图。例如,该计算设备可以使用设备传感器来确定WiFi接入的点并且可以进一步将所确定的WiFi接入的点存储为地图格式。将WiFi接入存储为地图格式例如也可以利用稀疏测绘数据和密集测绘信息来配置。
[0113]在又另一种示例实施方式中,计算设备可以使用传感器信息来生成对应于建筑的地图。该计算设备可以在所生成的地图内存储各种信息,例如,其可以包括有关蓝牙、WiF1、温度、音频和/或声学足印的信息,和/或视觉信息。特别地,视觉信息可以对应于环境内高对比度的点(例如,角)。在一些实施方式中,视觉信息可以与计算设备可以获取的稀疏测绘数据相同或相似,并且可以包括对应于环境的任意数量的数据点。例如,与计算设备相关联的单个相机可以收集对应于环境的数据点并且可以将该数据点中继至计算设备的各个组件。该计算设备可以将所捕捉到的数据点转换为地图内的3D数据,并且各种信息都可以被3D数据所捕捉,诸如对应于局部环境的特征和/或信息。该计算设备可以基于已经在地图内捕捉的3D数据而添加密集测绘信息(例如,深度信息)以构建表面和/或线(例如,墙壁和表面)。
[0114]此外,计算设备可以在该设备下一次可以位于环境之内和/或该计算设备可能首次进入该环境的期间使用所生成的地图而使得该计算设备重新本地化(re-localize)。该重新本地化的过程可以为计算设备提供环境的相对测绘(例如,与物体相对于该计算设备的定位和取向相关的测量)。此外,该计算设备可以使用3D地图数据来得出应用的行为,这可以确定计算设备的路线和/或其它信息。
[0115]在另一种示例实施方式中,计算设备可以使用来自传感器的信息进行重新本地化并且以便对环境中的三维点的特征进行三角测量。计算设备可以使用具有不同分辨率的多个相机(例如,2个相机)并且可以包括深度相机。例如,该计算设备可以使用鱼眼图像和/或镜头参数对完全正方形的图像进行去扭曲。在一些实例中,鱼眼图像可能具有扭曲视图并且可以被计算设备去扭曲为正常图像。同样,计算设备可以基于鱼眼镜头与正常相机的差别度数(例如,170度)对鱼眼图像进行处理。
[0116]图5是显示示例地图的示例计算设备的概念图示。如方法400内所指示的,计算设备可以被配置为从传感器捕捉信息以生成包括环境的稀疏测绘的地图。特别地,图5中所示的计算设备500显示了包括基于如传感器所提供的信息内捕捉到的环境的区别视觉特征的稀疏测绘的地图。计算设备500所显示的稀疏测绘出于图示的目的而用作示例,并且在其它示例中可以包括该环境的更多或更少的特征。
[0117]如图5所示,该计算设备正在显示包括示例稀疏测绘数据的地图,上述示例稀疏测绘数据可以涵盖对应于潜在物体502-506以及角508-510的视觉特征。在示例内,稀疏测绘提供了可以对应于环境中的区别视觉特征的数据点,诸如墙壁的角508-510。在其它示例中,计算设备可以显示所生成的地图,该地图包括涉及到环境的高阶描述的更多或更少的稀疏测绘数据。例如,计算设备500可以包括对应于环境中的更多视觉特征的数据点。
[0118]为了生成包括所示出的稀疏测绘的地图,计算设备500可以接收来自设备传感器的输出。该输出可以捕捉对应于环境的信息,其可以在设备处于不同位置和/或取向时被传感器所捕捉。例如,当传感器在设备改变位置的同时捕捉地图数据时,该传感器可以追踪环境的某些特征,诸如物体的角和/或边界。这些也被称作视觉特征的某些特征可以用作计算设备和/或传感器可以在采集地图数据时加以利用的追踪点。
[0119]特别地,由于视觉特征可能是环境之中的区别要素,所以传感可能需要较少的功率和/或时间来捕捉对应于该特征的信息。换句话说,传感器最初可以捕捉对应于环境中的区别特征的信息以便生成环境的基本地图(例如,稀疏测绘),其可以提供基本信息。计算设备例如可以生成显示取决于视觉特征的基本信息的环境的高阶地图。如这里所描述的,稀疏测绘内的视觉特征可以指示总体上大型物体的定位并且可以提供作为初始的顶层信息以便生成更为详细的地图。
[0120]同样,计算设备500所显示的稀疏测绘可以用作初始地图以供用户、计算设备和/或传感器所利用。例如,计算设备500可以对稀疏测绘内所捕捉的信息、环境中的邻近视觉特征和/或来自MU单元的设备运动信息进行分析以确定设备的位置。计算设备可以被配置为确定设备相对于环境中的视觉特征的姿态和/或使用IMU单元或其它传感器所捕捉的信息来确定设备的姿态。
[0121]如图5所示,与计算设备相关联的传感器可以在计算设备改变相对于环境的取向时追踪物体、书架、墙壁的角和/或环境中的其它区别特征。该计算设备可以从传感器接收指示视觉特征的数据并且可以基于所接收到的数据生成稀疏测绘。
[0122]此外,计算设备可以生成稀疏测绘以提供环境的分界和轮廓。视觉特征可以用作稀疏测绘构建的基础。例如,计算设备可以在建立有关环境内的视觉特征的定位、取向和/或其它因素之后向稀疏测绘添加附加细节。
[0123]图6图示了依据示例实施方式的计算设备上的另一个示例地图。如图6中的计算设备600所显示的,该示例地图包括稀疏测绘数据以及密集测绘数据。类似于图5所示的稀疏测绘,计算设备600所示的地图包括诸如墙壁的角和/或物体边界之类的视觉特征,而且还包括如从传感器所接收的输出内捕捉的密集测绘信息所提供的附加细节。另外,由图6中的设备所示出的所生成的地图所表示的环境是与图5中的设备所示出的所生成的地图的环境相同的环境。然而,在其它示例中,所生成的地图例如可以对应于不同的环境和/或可以包括环境中更多或更少的要素。
[0124]如示例设备所示出的地图所提供的,包括密集测绘信息的地图可以包括附加信息。传感器所捕捉的密集测绘信息可以包括基于环境内的物体的任意数量的数据点。出于说明的目的,计算设备600所显示的地图包括密集测绘信息,其包括紧密对应于环境中的物体的实际分界和定位的大量数据点。然而,在其它示例中,计算设备可以生成包括较少密集测绘信息的地图。例如,除了环境的稀疏测绘内所示出的视觉特征之外,地图可以显示对应于附加物体的数据点。
[0125]特别地,计算设备600显示了包括对应于建筑物内的房间的信息的地图。为了进一步说明,示例地图显示了对应于桌子602、小桌子604、门606和书架608的数据点。该地图包括反映要素的定位和结构的大量数据点。例如,在计算设备600上示出的所生成的地图包括显示桌子602-604的腿的数据点。这不同于图5所示的基于稀疏测绘的地图,该基于稀疏测绘的地图将桌子显示为3D分块而不是显示细节。类似地,图6示出的所生成的地图还包括对应于书架608的密集测绘信息。
[0126]计算设备600可以被配置为捕捉可以对应于环境内的更多物体的附加密集测绘信息。同样,该密集测绘信息可以进一步针对环境内的物体提供深度和纹理。计算设备600可以使用各种技术和/或传感器,诸如使用深度相机以及结构化光,来捕捉密集测绘信息以配置到图6内图示的所生成的地图中。
[0127]此外,作为示例的所生成的地图显示了对应于门606的数据点,其在图5的稀疏测绘内并未被示出。传感器所捕捉的密集测绘信息可以针对环境捕捉附加细节以供计算设备在所生成的地图内加以利用。指示门606的数据点用作密集测绘信息所可以捕捉的可能细节的图示。还可以存在其它的示例。
[0128]在一些实施方式中,地图可以包括附加信息和/或较少的信息。例如,计算设备600所显示的地图可以不包括对应于书架608的信息,因为书架608可能并未被计算设备在传感器数据内追踪到。该计算设备可以对所生成的地图进行配置以包括附加或较少的稀疏测绘数据和/或密集测绘信息从而还包括其它的数据。
[0129]图7图示了依据示例实施方式的示例地图的概况。在图7所示的示例中,计算设备700正在显示所形成的地图702,其示出了环境(例如,房子)的鸟瞰视图。
[0130]如图7的示例中所示出的,所生成的地图可以作为一些格式的语义测绘而存在,其可以包括针对该环境的各个地区(例如,建筑物中的房间)提供标识。
[0131]特别地,计算设备700显示了近似勾勒出房子中的房间的分界的地图。此外,计算设备700所显示的所生成的地图702包括各个房间的标记。计算设备可以被配置为基于房间内的物体检测而标识房间。例如,计算设备可以使用传感器信息来标识房间内的床并且在所生成的地图中将该房间标识为卧室。另外,该计算设备可以使得用户能够进一步标识如在所生成的地图中示出的物体和/或空间。例如,这可以使得用户能够定制基于用户的房子而生成的地图。
[0132]此外,地图702还包括点704,其根据地图702指示出计算设备700的位置。地图702可以使用其它手段来提供计算设备700的位置。例如,该位置可以基于诸如IMU单元的传感器所捕捉的信息和/或基于所生成的地图的物体检测。
[0133]在示例实施方式中,用户可以观看如计算设备700所提供的概览地图702以确定如位置点704所指示的计算设备700的位置。例如,计算设备700可能已经被关闭并且可以被配置为在重新开机之后确定位置。计算设备700可以利用地图702所提供的信息来确定其位置。特别地,计算设备700还可以利用传感器所捕捉的诸如运动信息的信息来确定设备的姿态和位置,并且可以使用所生成的地图702来确定设备的位置和/或用户可能需要行进的方向。该计算设备可以基于使用地图702所提供的信息来确定各种路线。
[0134]此外,计算设备可以存储在3D空间中地区和/或场所和/或在拓扑信息方面的关系。例如,拓扑信息可以涉及到环境内的物体和空间的形状。该拓扑信息还可以包括有关空间属性的信息,诸如连通性、连续性和分界。例如,该计算设备可以使用拓扑信息来确定环境中的某些区域之间的空间关系(例如,连接至走廊的卧室与卫生间相连,等等),这在计算设备可能并不知道实际距离的时候会是有用的。
[0135]图8是与示例计算设备进行通信的示例的云的概念图示。特别地,图8所示的示例包括与多个计算设备802-806进行通信的云800。虽然图8中所示的示例示出了与多个计算设备进行通信的云800,但是其它实体(例如,物理服务器)也可以执行云800的功能。这里所描述的云800是出于说明的目的而并非意在作为限制。
[0136]如图8所示,云800可以被配置为与计算设备发送和接收信息。云800例如可以由服务器或服务器网络所创建并维护。云800可以跨多个计算设备存在并且可以利用各种形式的存储器。此外,云800可以被配置以安全限制,这可以基于各种因素而限制针对计算设备的访问。例如,计算设备可能需要向云800提供密码或者一些其它形式的标识信息以便建立通信链路。在一些实例中,云800可以被配置为提供信息,但是可能并不被配置为接收信息。同样,云800可以被配置为接收信息而并没有向设备传送信息的许可和/或组件。
[0137]除了云800之外,图8还示出了计算设备802-806,它们可以被配置为移动计算设备。在其它示例中,计算设备802-806可以包括能够发送和/或接收信息的任意类型的计算设备,包括图1-2和图3A-3B中所示的示例计算设备。特别地,例如,计算设备802-806可以通过诸如电磁无线电信(例如,无线电)的各种通信手段与其它设备和/或云进行通信。
[0138]在示例实施方式中,相应的计算设备802-806可以使用传感器捕捉有关环境的信息并且基于所捕捉的信息生成测绘数据。如之前所描述的,计算设备可以通过在该计算设备处于各种位置和/或取向时从传感器接收信息而生成地图数据。该计算设备可以构建地图数据,该地图数据可以包括对应于环境中的视觉特征的稀疏测绘信息以及除了视觉特征之外还针对环境中的物体提供细节的密集测绘信息。例如,在计算设备生成地图数据时,该计算设备可以将该数据发送至云800以便进行存储。该计算设备可以传送有关环境的信息,包括但并不局限于环境中的空间的视觉特征、密集测绘信息,以及有关计算设备在捕捉各种信息时相对于环境的姿态的信息。例如,该计算设备除了地图数据之外还可以向云提供其全局坐标以便使得云能够具有参照系(例如,计算设备的位置的知识)。
[0139]云800可以被配置为从如图8所示的多个设备接受地图数据和其它信息。在一个方面,云800可以被配置为充当与云800进行通信的设备中的每个的个体存储单元。特别地,云800可以针对每个相应的计算设备接收并存储地图数据而并不对所接收到的各个地图数据进行混合。在这样的情况下,相应的计算设备802-806可以出于各种原因(例如,计算设备意外擦除了位于设备存储器上的数据)访问存储在云800中的地图数据和/或其它信息。
[0140]在另一个方面,云800可以被配置为对从多个设备所接收到的地图数据进行汇总以便基于从多个设备的传感器所采集的信息生成地图。在一些实例中,由于云800利用了多个设备所提供的信息,所以云800可以生成包括比位于各个计算设备上的地图更多信息的地图。云800可以基于相应设备传感器所捕捉的环境而生成包括对应于任意数量的环境的信息的地图。此外,云可以实时地对来自多个设备的地图数据和/或其它信息进行累积或者可以通过有时序的过程的应用而接收信息。
[0141]此外,云可以存储如连接至具体设备的地图数据或者可以对地图数据进行聚组而不将数据特别链接至相应的设备。因此,从设备所采集的信息可以进行汇总以生成地图计算而并不对如特定设备所收集的地图进行连接。
[0142]在云可以针对设备存储信息和地图数据的情况下,云可以用作该设备可以访问地图和信息而其它设备不能访问的存储器。在另一个示例中,云可以被配置为向所有其它设备提供针对从设备所采集的任意信息的访问。在一些实例中,云可能需要一些标识过程来允许设备访问汇总信息和/或地图。云可能要求密码或者存储并记住链接至设备的标识代码。
[0143]在示例中,云800可以从多个设备接收信息和/或地图数据,所述设备例如包括在各种设备平台上进行操作的大量设备。云可以对信息进行汇总并且生成以逻辑方式对从设备接收的各个地图进行组织的大型地图。云800可以从多个设备接收对环境的观察以更改其所生成的协同地图。
[0144]在一个这样的示例中,云800可能并不立即利用来自设备的新的观察,而是可能要求包含相同信息的重复观察以使得云800在其所生成的地图计算中利用该观察。例如,云800可以接收家具已经在建筑物位置内被重新摆放的信息。云800可能已经具有了对应于该建筑物的地图数据并且可以确定从设备新接收到的观察与现有的地图数据相冲突。在一种情况下,云800可以更新地图数据以反映出示出位于建筑物中的新地点的家具的新接收到的观察。然而,在一些实例中,云800可以被配置为在对其地图数据图进行修改以反映如设备所观察到的新位置中的家具之前接收反映家具定位变化的多个观察。
[0145]在一个示例实施方式中,云800可以以预定义的基础向设备提供对云中所存储的地图数据的更新。例如,云800可以在设备每次接收到利用地图数据的请求时更新该设备的地图。同样,云可以实时地连续更新设备的地图。在另一个实例中,云可以定期或者按照某个其它预先定义的时间安排向设备的地图提供更新。还可能存在其它的更新过程。
[0146]另外,云800可以执行一些形式的语义测绘,其可以包括标识空间。云800和/或计算设备可以基于3D几何形状和/或潜在使用而标识环境的空间和/或地区。例如,计算设备可以确定包括厕所的房间可以被标识为卫生间。计算设备和/或云800可以将标识信息随房间一起在地图数据内进行存储(例如,标记出卫生间)。计算设备可以提供该地图以便确定特定房间相对于该设备的位置(例如,卫生间的位置在哪里)。
[0147]应当理解的是,这里所描述的布置仅是出于示例的目的。因此,本领域技术人员将会意识到,能够另外使用其它的布置或其它元素(例如,机器、接口、功能、顺序和功能群组等),并且一些元素可以根据所期望的结果而一起被省略。另外,所描述的许多元素是可以被实施为离散或分布式组件或者以任意适当组合和位置与其它组件相结合的功能实体。
[0148]虽然这里已经公开了各个方面和实施例,但是其它方面和实施例对于本领域技术人员将是显而易见的。这里所公开的各个方面和实施例是出于说明的目的而并非意在对所附权利要求所指示的实际范围以及这些权利要求所享有的等同形式的完整范围进行限制。还要理解的是,这里所使用的术语仅是出于描述特定实施例的目的而并非意在作为限制。
[0149]由于能够针对所描述的示例进行许多的修改、变化和改变,所以之前描述以及附图中所示出的所有内容都意在被解释为是说明性的而并不具有限制的含义。
【主权项】
1.一种由具有多个传感器的设备所执行的方法,所述方法包括: 在环境中的所述设备的第一位置处接收所述多个传感器的一个或多个输出,其中所述一个或多个输出包括第一数据集合,所述第一数据集合对应于与所述第一位置相关联的所述环境的一个或多个视觉特征; 基于所述多个传感器的所述一个或多个输出中的对应性,生成所述环境的地图,所述环境的所述地图包括指示所述第一数据集合的稀疏测绘数据; 在所述环境中的所述设备的第二位置处接收所述多个传感器的一个或多个附加输出,其中所述一个或多个附加输出包括第二数据集合,所述第二数据集合对应于与所述第二位置相关联的所述环境的一个或多个视觉特征; 对所述环境的所述地图进行修改,以进一步包括指示所述第二数据集合的稀疏测绘数据; 经由所述多个传感器中的一个或多个接收密集测绘信息,其中所述密集测绘信息以表示在所述环境中的物体的相对结构的方式而包括与在所述环境中的所述物体相对应的数据;以及 对所述环境的所述地图进行修改,以包括所述密集测绘信息。2.根据权利要求1所述的方法,进一步包括: 从服务器接收附加数据,其中所述附加数据包括从多个设备汇总的与多个环境相对应的稀疏测绘数据和密集测绘信息;以及 基于所述附加数据,对所述环境的所述地图进行修改,以包括与所述环境相对应的所述稀疏测绘数据和所述密集测绘信息。3.根据权利要求1所述的方法,其中所述多个传感器包括以下中的一个或多个:陀螺仪、加速度计、相机、气压计、磁力计、全球定位系统(GPS)、WiFi传感器、近场通信(NFC)传感器和蓝牙传感器。4.根据权利要求1所述的方法,进一步包括: 基于所述密集测绘信息中的一个或多个物体,确定所述环境中的地区的标识;以及 在所述环境的所述地图内提供所述环境中的所述地区的所述标识。5.根据权利要求1所述的方法,进一步包括: 确定所述环境中的所述第一位置与所述环境中的所述第二位置之间的关系,其中所述关系包括与所述环境相对应的拓扑信息;以及 在所述稀疏测绘内提供与所述关系相关联的信息。6.根据权利要求1所述的方法,其中经由所述多个传感器中的一个或多个接收密集测绘信息包括: 经由相机系统接收所述密集测绘信息,其中所述相机系统被配置为捕捉所述环境的深度图像。7.根据权利要求6所述的方法,进一步包括:基于所述深度图像,生成至少一部分所述环境的三维几何形状。8.根据权利要求1所述的方法,进一步包括: 经由所述多个传感器中的一个或多个,标识与所述环境中的一个或多个移动物体相对应的所述稀疏测绘中的数据;以及 去除与所述一个或多个移动物体相对应的所述稀疏测绘中的所述数据。9.根据权利要求1所述的方法,进一步包括: 经由所述多个传感器中的一个或多个传感器,确定所述设备的姿态,其中所述设备的所述姿态包括所述设备相对于所述环境中的所述一个或多个视觉特征以及重力方向的取向; 标识所述稀疏测绘中的所述一个或多个视觉特征的地理位置;以及至少部分基于所述设备的所述姿态以及所述稀疏测绘中的所述一个或多个视觉特征的所述地理位置,确定所述设备在所述环境中的相对位置。10.根据权利要求1所述的方法,其中经由所述多个传感器中的一个或多个接收密集测绘信息包括: 经由至少一个相机和结构化光传感器,从相对于所述环境和所述设备的一个或多个不同角度捕捉所述密集测绘信息。11.根据权利要求1所述的方法,其中对所述环境的所述地图进行修改以进一步包括指示所述第二数据集合的稀疏测绘数据进一步包括: 确定在与所述第二位置相关联的所述环境的一个或多个视觉特征和与所述第一位置相关联的所述环境的一个或多个视觉特征之间的对应性;以及 基于所述对应性在阈值以上,对包括所述稀疏测绘数据的所述环境的所述地图进行修改,以进一步包括所述第二数据集合。12.—种系统,包括: 多个传感器; 至少一个处理器;和 具有存储于其上的指令的存储器,所述指令当被所述至少一个处理器所执行时,使得所述系统执行功能,所述功能包括: 在环境中的设备的第一位置处接收所述多个传感器的一个或多个输出,其中所述一个或多个输出包括第一数据集合,所述第一数据集合对应于与所述第一位置相关联的所述环境的一个或多个视觉特征; 基于所述多个传感器的所述一个或多个输出中的对应性,生成所述环境的地图,所述环境的所述地图包括指示所述第一数据集合的稀疏测绘数据; 在所述环境中的所述设备的第二位置处接收所述多个传感器的一个或多个附加输出,其中所述一个或多个附加输出包括第二数据集合,所述第二数据集合对应于与所述第二位置相关联的所述环境的一个或多个视觉特征; 对所述环境的所述地图进行修改,以进一步包括指示所述第二数据集合的稀疏测绘数据; 经由所述多个传感器中的一个或多个接收密集测绘信息,其中所述密集测绘信息以表示在所述环境中的物体的相对结构的方式而包括与在所述环境中的所述物体相对应的数据;以及 对所述环境的所述地图进行修改,以包括所述密集测绘信息。13.根据权利要求12所述的系统,其中所述功能进一步包括: 从服务器接收附加数据,其中所述附加数据包括从多个设备汇总的与多个环境相对应的稀疏测绘数据和密集测绘信息;以及 基于所述附加数据,对所述环境的所述地图进行修改,以包括与所述环境相对应的所述稀疏测绘数据和所述密集测绘信息。14.根据权利要求12所述的系统,其中所述功能进一步包括: 经由所述多个传感器中的一个或多个传感器,确定所述设备的姿态,其中所述设备的所述姿态包括所述设备相对于所述环境中的所述一个或多个视觉特征以及重力方向的取向; 标识所述稀疏测绘中的所述一个或多个视觉特征的地理位置;以及至少部分基于所述设备的所述姿态以及所述环境的所述地图中的所述一个或多个视觉特征的所述地理位置,确定所述设备在所述环境中的相对位置。15.—种具有存储于其上的指令的非暂时性计算机可读介质,所述指令当被计算设备所执行时,使得所述计算设备执行多种功能,所述功能包括: 在环境中的所述计算设备的第一位置处接收多个传感器的一个或多个输出,其中所述一个或多个输出包括第一数据集合,所述第一数据集合对应于与所述第一位置相关联的所述环境的一个或多个视觉特征; 基于所述多个传感器的所述一个或多个输出中的对应性,生成所述环境的地图,所述环境的所述地图包括指示所述第一数据集合的稀疏测绘数据; 在所述环境中的所述计算设备的第二位置处接收所述多个传感器的一个或多个附加输出,其中所述一个或多个附加输出包括第二数据集合,所述第二数据集合对应于与所述第二位置相关联的所述环境的一个或多个视觉特征;对所述环境的所述地图进行修改,以进一步包括指示所述第二数据集合的稀疏测绘数据; 经由所述多个传感器中的一个或多个接收密集测绘信息,其中所述密集测绘信息以表示在所述环境中的物体的相对结构的方式而包括与在所述环境中的物体相对应的数据;以及 对所述环境的所述地图进行修改,以包括所述密集测绘信息。16.根据权利要求15所述的非暂时性计算机可读介质,其中经由所述多个传感器中的一个或多个接收密集测绘信息的功能包括:经由相机系统接收所述密集测绘信息,其中所述相机系统被配置为捕捉所述环境的深度图像。17.根据权利要求15所述的非暂时性计算机可读介质,其中所述功能进一步包括:基于从所述多个传感器所接收的附加输出,持续更新所述环境的所述地图。18.根据权利要求15所述的非暂时性计算机可读介质,其中所述环境的所述地图进一步包括语义测绘信息,其中所述语义测绘信息基于在所述环境中的一个或多个地区中的三维几何形状和一个或多个物体,来标识所述环境的所述地图中的所述一个或多个地区。19.根据权利要求15所述的非暂时性计算机可读介质,其中经由所述多个传感器中的一个或多个接收密集测绘信息的功能包括: 经由一个或多个深度传感器接收与所述环境中的一个或多个物体相对应的数据;以及 利用相机所捕捉的图像,对与一个或多个物体相对应的数据进行配置,以生成密集测绘信息。20.根据权利要求15所述的非暂时性计算机可读介质,其中所述功能进一步包括: 接收指示一个或多个WiFi接入点的数据;以及 对所述环境的所述地图进行修改,以进一步包括指示所述一个或多个WiFi接入点的数据。
【文档编号】G06T19/00GK105981077SQ201580007940
【公开日】2016年9月28日
【申请日】2015年1月5日
【发明人】伊万·德亚诺夫斯基, 西蒙·吕嫩, 乔尔·黑施
【申请人】谷歌技术控股有限责任公司