基于图像的位置确定的制作方法

文档序号:13217723阅读:116来源:国知局
相关申请的交叉引用本申请是2013年11月8日提交的美国专利申请序列号14/075,565、2013年11月8日提交的美国专利申请序列号14/075,621和2013年11月25日提交的美国专利申请序列号14/089,221的继续申请,其全部公开通过引用合并于此。

背景技术:
各种移动设备都可以提供关于它们当前位置的信息。例如,诸如蜂窝电话或平板计算机的典型的移动计算设备可以使用无线网络接入点模型、全球定位系统或各种三角测量方法以确定它们的位置。然而,这些方法在网络覆盖和卫星信息不可用的某些位置处可能会不可用。

技术实现要素:
本公开的方面提供了计算机实现的方法。所述方法包括由一个或多个计算设备接收位置的图像;由所述一个或多个计算设备处理所述图像,以识别所述图像的一个或多个特征;由所述一个或多个计算设备访问识别多个特征以及相关联的位置的所存储的几何结构数据;由所述一个或多个计算设备将所识别的一个或多个特征与所存储的几何结构数据相比较;在比较之后,由所述一个或多个计算设备处理附加图像以识别所述图像的一个或多个附加特征;通过所述一个或多个计算设备将所识别的一个或多个特征和所识别的一个或多个附加特征与所存储的几何结构数据相比较,确定匹配位置。在一个示例中,所述方法还包括提供请求所述附加图像的通知,并且所述通知进一步请求所述附加图像包括特定类型的对象。在另一个示例中,所述方法还包括接收对移动设备的当前位置的请求;以及将所确定的匹配位置发送至所述移动设备以用于显示。在另一个示例中,所述方法还包括接收对移动设备的当前位置的请求;以及在所述移动设备的显示器上显示所确定的匹配位置。在另一个示例中,所述方法还包括在接收对所述移动设备的当前位置的所述请求之前,接收所存储的几何结构数据。在另一个示例中,所述方法还包括,当所述一个或多个计算设备不能基于将所识别的一个或多个特征与所存储的几何结构数据单独比较来确定匹配时,请求所述附加图像。在另一个示例中,所述方法还包括接收视频,其中所述位置的图像是所述视频的图像帧。本公开的另一方面提供了一种系统。所述系统包括一个或多个计算设备。所述一个或多个计算设备被配置为接收位置的图像;处理所述图像,以识别所述图像的一个或多个特征;访问识别多个特征以及相关联的位置的所存储的几何结构数据;将所识别的一个或多个特征与所存储的几何结构数据相比较;在比较之后,处理附加图像以识别所述图像的一个或多个附加特征;以及通过将所识别的一个或多个特征和所识别的一个或多个附加特征与所存储的几何结构数据相比较,确定匹配位置。在一个示例中,所述一个或多个计算设备被进一步配置为提供请求所述附加图像的通知,其中,所述通知进一步请求所述附加图像包括特定类型的对象。在另一个示例中,所述一个或多个计算设备被进一步配置为接收对移动设备的当前位置的请求;以及将所确定的匹配位置发送至所述移动设备以用于显示。在另一个示例中,所述一个或多个计算设备被进一步配置为接收对移动设备的当前位置的请求;以及在所述移动设备的显示器上显示所确定的匹配位置。在另一个示例中,所述一个或多个计算设备被进一步配置为在接收对所述移动设备的当前位置的所述请求之前,接收所存储的几何结构数据。在另一个示例中,所述一个或多个计算设备被进一步配置为当所述一个或多个计算设备不能基于将所识别的一个或多个特征与所存储的几何结构数据单独比较来确定匹配时,请求附加图像。在另一个示例中,所述一个或多个计算设备被进一步配置为接收视频,并且所述位置的图像是所述视频的图像帧。本公开的进一步的方面提供了一种在其上存储程序的计算机可读指令的非暂时性计算机可读存储设备。所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行方法。所述方法包括接收位置的图像;处理所述图像,以识别所述图像的一个或多个特征;访问识别多个特征以及相关联的位置的所存储的几何结构数据;将所识别的一个或多个特征与所存储的几何结构数据相比较;在比较之后,处理附加图像以识别所述图像的一个或多个附加特征;以及通过将所识别的一个或多个特征和所识别的一个或多个附加特征与所存储的几何结构数据相比较,确定匹配位置。在一个示例中,所述方法还包括提供请求所述附加图像的通知,其中所述通知进一步请求所述附加图像包括特定类型的对象。在另一个示例中,所述方法还包括接收对移动设备的当前位置的请求;以及将所确定的匹配位置发送至所述移动设备以用于显示。在另一个示例中,所述方法还包括接收对移动设备的当前位置的请求;以及在所述移动设备的显示器上显示所确定的匹配位置。在另一个示例中,所述方法还包括在接收对所述移动设备的当前位置的所述请求之前,接收所存储的几何结构数据。在另一个示例中,所述方法还包括当所述一个或多个计算设备不能基于将所识别的一个或多个特征与所存储的几何结构数据单独比较来确定匹配时,请求附加图像。本公开的进一步的方面提供了计算机实现的方法。所述方法包括由一个或多个计算设备接收在特定区域处收集的信息;由一个或多个计算设备从所接收到的信息中识别一个或多个特征和相关联的位置;由一个或多个计算设备基于用户的特性选择所识别的一个或多个特征中给定的一些;以及由一个或多个计算设备基于一个或多个特征中所选择的一些和相关联的位置,生成用于特定区域的几何结构数据集。在一个示例中,所述特性包括该用户在特定区域处有可能处于的位置。在另一个示例中,所述特性包括该用户在特定区域处不可能处于的位置。在另一个示例中,所述特性包括该用户在特定区域处有可能迷失的位置。在另一个示例中,所述特性包括用户的类型。在另一个示例中,所述特性包括与用户相关联的活动。在另一个示例中,所述特性包括用户的移动计算设备的存储属性。在另一个示例中,所述特性包括用户的移动计算设备的处理能力属性。本公开的另一个方面提供了一种系统。所述系统包括一个或多个计算设备。所述一个或多个计算设备被配置为接收在特定区域处收集的信息;从所接收到的信息中识别一个或多个特征和相关联的位置;基于用户的特性选择所识别的一个或多个特征中给定的一些;以及基于一个或多个特征中所选择的一些和相关联的位置,生成用于特定区域的几何结构数据集。在一个示例中,所述特性包括该用户在特定区域处有可能处于的位置。在另一个示例中,所述特性包括该用户在特定区域处不可能处于的位置。在另一个示例中,所述特性包括该用户在特定区域处有可能迷失的位置。在另一个示例中,所述特性包括用户的类型。在另一个示例中,所述特性包括与用户相关联的活动。在另一个示例中,所述特性包括用户的移动计算设备的存储属性。在另一个示例中,所述特性包括用户的移动计算设备的处理能力属性。本公开的进一步的方面提供了一种在其上存储程序的计算机可读指令的非暂时性计算机可读存储设备。所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行方法。所述方法包括接收在特定区域处收集的信息;从所接收到的信息中识别一个或多个特征和相关联的位置;基于用户的特性选择所识别的一个或多个特征中给定的一些;以及基于一个或多个特征中所选择的一些和相关联的位置,生成用于特定区域的几何结构数据集。在一个示例中,所述特性包括与用户相关联的活动。在另一个示例中,所述特性包括用户的移动计算设备的存储属性。在另一个示例中,所述特性包括用户的移动计算设备的处理能力属性。本公开的另一个方面提供了计算机实现的方法。所述方法包括由一个或多个计算设备接收在特定区域处收集的信息;由一个或多个计算设备从所接收到的信息中识别一个或多个特征和相关联的位置;由一个或多个计算设备根据所识别的一个或多个特征之间的相对的独特性对所识别的一个或多个特征进行排名;以及由一个或多个计算设备基于经过排名的特征中所选择的一些和相关联的位置,生成用于在特定区域处定位移动设备的几何结构数据集。在一个示例中,进一步基于阈值排名百分比来生成几何结构数据集。在另一个示例中,进一步基于移动计算设备的相机从特定区域处的给定位置中可能会指向的方向的数目来生成几何结构数据集。在另一个示例中,生成几何结构数据集,使得所述几何结构数据集不包括重复的特征。在另一个示例中,进一步基于当几何结构数据被压缩时几何结构数据集的大小来生成几何结构数据集。在另一个示例中,进一步基于期望的特定区域处的人的位置来生成几何结构数据集。在另一个示例中,将几何结构数据集发送至客户端计算设备。在另一个示例中,特定区域是室内空间。本公开的另一个方面提供了一种系统。所述系统包括一个或多个计算设备。所述一个或多个计算设备被配置为接收在特定区域处收集的信息;由一个或多个计算设备从所接收到的信息中识别一个或多个特征和相关联的位置;根据所识别的一个或多个特征之间的相对的独特性对所识别的一个或多个特征进行排名;以及基于经过排名的特征中所选择的一些和相关联的位置,生成用于在特定区域处定位移动设备的几何结构数据集。在一个示例中,所述一个或多个计算设备被进一步配置为基于阈值排名百分比来生成几何结构数据集。在另一个示例中,所述一个或多个计算设备被进一步配置为进一步基于移动计算设备的相机从特定区域处的给定位置中可能会指向的方向的数目来生成几何结构数据集。在另一个示例中,所述一个或多个计算设备被进一步配置为生成几何结构数据集,使得所述几何结构数据集不包括重复的特征。在另一个示例中,所述一个或多个计算设备被进一步配置为,进一步基于当几何结构数据被压缩时几何结构数据集的大小来生成几何结构数据集。在另一个示例中,所述一个或多个计算设备被进一步配置为,进一步基于期望的特定区域处的人的位置来生成几何结构数据集。在另一个示例中,所述一个或多个计算设备被进一步配置为将几何结构数据集发送至客户端计算设备。在另一个示例中,特定区域是室内空间。本公开的进一步的方面提供了一种在其上存储程序的计算机可读指令的非暂时性计算机可读存储设备。所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行方法。所述方法包括接收在特定区域处收集的信息;从所接收到的信息中识别一个或多个特征和相关联的位置;根据所识别的一个或多个特征之间的相对的独特性对识别的一个或多个特征进行排名;以及基于经过排名的特征中所选择的一些和相关联的位置,生成用于在特定区域处定位移动设备的几何结构数据集。在一个示例中,基于阈值排名百分比来生成几何结构数据集。在另一个示例中,进一步基于当几何结构数据被压缩时几何结构数据集的大小来生成几何结构数据集。在另一个示例中,进一步基于期望的特定区域处的人的位置来生成几何结构数据集。附图说明图1是根据本公开的方面的示例系统的功能图。图2是图1的示例系统的示意图。图3是根据本公开的方面的几何结构数据和几何结构数据的表示的示例。图4是根据本公开的方面用户在房间中的示例。图5是根据本公开的方面的示例屏幕截图和客户端计算设备。图6是根据本公开的方面的示例图像和几何结构数据的表示。图7是根据本公开的方面的示例屏幕截图和客户端计算设备。图8是根据本公开的方面的另一个示例屏幕截图和客户端计算设备。图9是根据本公开的方面的流程图。图10是根据本公开的方面的室内空间的地图的示例。图11是根据本公开的方面的流程图。图12是根据本公开的方面的另一个流程图。具体实施方式综述本文中所讨论的技术涉及使移动计算设备通过相机图像来确定其位置,而不依赖除了所述图像自身之外的来自相机或者移动计算设备的信息。例如,在很多情况下,当使用诸如蜂窝电话的移动计算设备时,诸如全球定位系统(GPS)或者本地网络访问(例如,WiFi)的地理定位系统可能会不可用。例如,这些在某些室内空间或诸如山脉的偏远位置可能会不可用。如果用户想要确定他或她在哪里,移动计算设备可以通过使用位置的图像并且将该图像与预存储的室内空间的几何结构相比较来这样做。因此,即使其他地理定位系统不可用,移动计算设备也可以向用户提供位置信息。进一步地,即使地理定位系统可用,用户的移动设备也可能不具有用于确定位置的兼容模块。或者,移动设备上的地理位置模块(如果存在一个的话)可以被关闭或者以别的方式不可用。在一方面,当用户移动通过诸如建筑物或室外空间的区域时,用户可能想知道此处是哪里或她当前位于哪里。例如,为了确定客户端计算设备的当前位置,用户可以启动客户端计算设备的应用或其他特征。作为响应,移动计算设备可以提示用户将移动计算设备在室内空间周围移动以捕捉室内空间的视频或者一系列图像。可替代地,用户可以仅捕捉室内空间的图像。移动计算设备可以访问几何结构数据,所述几何结构数据描述了与移动计算设备接近的领域的几何结构。该数据可以被预存储在移动计算设备上或通过服务器被检索。例如,当用户进入建筑物时,移动计算设备可以在使用已知的最后一个全球定位系统定位、条码、地址信息等等时来请求建筑物的几何结构信息。移动计算设备然后可以将相机图像与几何结构数据相比较,以在没有来自相机或其他位置提示(例如,GPS、WiFi等等)的任何其他信息的情况下识别移动计算设备的位置和方向。一旦已经确定了位置,可以将其显示给用户。在一些实施例中,为了确定设备的位置,移动计算设备可以从所获取的图像中提取特征并将这些特征与几何结构数据相比较。可以在移动计算设备上提取特征和/或可以将图像发送至一个或多个其他计算设备以便提取特征。在一些示例中,如果移动计算设备不能够做出位置确定,则其可以提示用户寻求帮助。例如,移动计算设备可以要求用户遥摄(pan)房间或拍下另一张图片。移动计算设备还可以要求用户拍下该房间中独特的或感兴趣的对象的图片。为了向移动计算设备提供几何结构数据,必须先捕捉到与位置的几何结构有关的信息。在一些示例中,可以使用激光、声纳和/或相机来捕捉建筑物的内部。然后可以处理该数据以识别位置的各种特征以及它们的相对位置。然后可以审查所识别的特征以确定需要什么几何结构(或特征)来进行定位。例如,存在区域的大小和数据量之间的折衷,所述区域的大小能够被特定的几何结构数据的封装所覆盖,所述数据量可以以移动计算设备能够使用的方式被压缩或者被封装。因此,基于移动计算设备的相机在任意给定的位置处可能会指向的方向的数目以及特征自身,可以将特征包括在或排除于特定区域的几何结构数据。此外,如果其对识别位置将没有帮助,则可以排除某些特征或那些特征的几何结构数据。类似地,对区域而言独特的特征(例如,独特的几何结构形状或颜色的布置)应该被包括,因为它们对于定位是有帮助的。在一个示例中,可以通过独特性对特征和特征的几何结构进行排名。例如,在办公楼里,椅子和桌子的布置相对墙上挂饰的位置、大小和/或类型比较不独特。类似地,在室外的情况下,一组同样的建筑物的几何结构和特征可以比较不独特,但是独自站立于另一个位置的相同的建筑物可以特别独特。然后可以选择排名最高的特征和特征的几何结构,以用于移动计算设备将要使用其来确定位置的几何结构数据。就这一点而言,可以将低排名的特征(或者比较不独特的那些)从移动计算设备所使用的几何结构数据中排除。对于一般用户或针对特定用户或该用户的移动计算设备,几何结构数据还可以被筛选或者以别的方式被压缩(或如上所述被排名)。因此,基于几何结构数据是否与用户可能处于的位置或用户可能迷失的位置相对应,可以排除或包括特征和特征的几何结构。还可以基于将需要被定位的用户的类型对几何结构数据进行筛选。例如,如果用户是游客,则与建筑物的标志或形状相关的几何结构可能会更重要,但是如果用户是运动员(例如,跑步者),则与公路、小路或植物(例如,树)相关的几何结构可能会更重要。在另一个示例中,可以基于用户的移动计算设备的限制因素,诸如带宽、存储、处理能力等等,来确定几何结构数据。示例系统图1和图2包括可在其中可实现上述特征的示例系统100。其不应被视为限制本公开的范围或本文中所描述的特征的有用性。在此示例中,系统100可以包括计算设备110、120、130和140以及存储系统150。每个计算设备110可以包含一个或多个处理器112、存储器114和通用计算设备中通常存在的其他组件。计算设备110、120、130和140中每一个的存储器114可以存储可以由一个或多个处理器112可访问的信息,包括可以由一个或多个处理器112执行的指令116。存储器还可以包括可以由处理器检索、操纵或存储的数据118。存储器可以是能够存储处理器可访问的信息的任何非暂时性的类型,诸如硬件驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写和只读存储器。指令116可以是将要由一个或多个处理器直接执行的诸如机器码的任何指令集,或非直接执行的诸如脚本的任何指令集。在这方面,术语“指令”、“应用”、“步骤”和“程序”可以在本文中交换使用。可以将指令以目标代码的格式来存储以便由处理器直接处理,或者以任何其他计算设备语言来存储,包括按需求来解释或提前被编译的脚本或独立源代码模块的集合。下面更详细地解释了指令的功能、方法和例程。可以根据指令116由一个或多个处理器112检索、存储或修改数据118。诸如,尽管本文中所描述的主题不被任何特定的数据结构所限制,但数据可以存储在计算机寄存器中、作为具有许多不同字段和记录的表存储在关系数据库中、或存储在XML文档中。数据还可以以任何计算设备可读格式被格式化,所述计算设备可读格式诸如为但不限于二进制值、ASCII或Unicode。而且,数据可以包括足以识别相关信息的任何信息,诸如数字、描述性文本、专有代码、指针、对存储在诸如其他网络位置处的其他存储器中的数据的引用、或被函数使用以计算相关数据的信息。一个或多个处理器112可以是任何常规处理器,诸如市场上可以获得的CPU。替选地,处理器可以是诸如专用集成电路(\ASIC\)的专用组件或其他基于硬件的处理器。尽管不是必要的,计算设备110中的一个或多个可以包括专门的硬件组件以更快或更有效地执行具体计算过程,诸如解码视频、将视频帧与图像匹配、使视频失真、对失真的视频进行编码等等。尽管图1在功能上将计算设备110的处理器、存储器、和其他元件图示为在相同的块内,但处理器、计算机、计算设备、或存储器实际上可以包括可能会或可能不会存储在相同的物理壳体内的多个处理器、计算机、计算设备、或存储器。例如,存储器可以是位于与计算设备110的壳体不同的壳体中的硬盘驱动或其他存储介质。因此,对处理器、计算机、计算设备、或存储器的引用将被理解为包括对可能或可能不并行操作的处理器、计算机、计算设备、或存储器的集合的引用。例如,计算设备110可以包括操作为负载均衡服务器群的服务器计算设备、分布式系统等等。更进一步地,尽管下面所描述的一些功能被指示为发生在具有单个处理器的单个计算设备上,但可以由多个计算设备实现本文中所描述的主题的各个方面,例如,通过网络160通信信息。计算设备110中的每一个可以在网络160的不同节点处并且能够直接和间接地与网络160的其他节点通信。尽管图1-2中只描绘了一些计算设备,应理解典型的系统可以包括大量的相连的计算设备,其中每个不同计算设备位于网络160的不同节点处。可以使用各种协议和系统互连本文中所描述的网络160和中间节点,使得所述网络可以是互联网、万维网、具体内联网、广域网或本地网络的部分。网络可以利用诸如以太网、WiFi和HTTP的标准通信、协议、一个或多个公司专有的协议、以及前述的各种组合。尽管当如上面所指出的来传送或接收信息时获得了某些优势,但本文中所描述的主题的其他方面不限于信息传输的任何特定方式。例如,计算设备110中的每一个可以包括能够经由网络与存储系统150以及计算设备120、130、和140通信的web服务器。例如,服务器计算设备110中的一个或多个可以使用网络160传送信息并将其在诸如计算设备120、130、或140的显示器122、132、或142的显示器上呈现给诸如用户220、230、或240的用户。就这一点而言,计算设备120、130、和140可被视为客户端计算设备并可以执行本文中所描述的特征的全部或一些。客户端计算设备120、130、或140中的每一个可被类似地配置为如上面所描述的具有一个或多个服务器、存储器和指令的服务器计算设备110。每个客户端计算设备120、130、或140可以是旨在由用户220、230、240使用的个人计算设备,并且具有通常与个人计算设备相连接来使用的所有组件,所述组件诸如为中央处理单元(CPU)、存储数据和指令的存储器(例如,RAM和内部硬盘驱动)、诸如显示器122、132、或142的显示器(例如,具有屏幕或触摸屏幕的监视器、投影仪、电视机、或可操作用于显示信息的其他设备)、以及用户输入设备124(例如,鼠标、键盘、触摸屏或麦克风)。客户端计算设备还可以包括用于录制视频流的相机、扬声器、网络接口设备、以及用于将这些元件相互连接的所有组件。尽管客户端计算设备120、130和140可以各自包括全尺寸的个人计算设备,但它们可以替选地包括能够利用服务器通过诸如互联网的网络来无线地交换数据的移动计算设备。仅通过示例的方式,客户端计算设备120可以是移动电话或诸如能够经由互联网获得信息的无线使能PDA、平板PC、或上网本的设备。在另一个示例中,客户端计算设备130可以是头戴式计算系统。例如,用户可以使用小键盘、小型键盘、麦克风、利用相机使用视觉信号、或使用触摸屏来输入信息。与存储器114相似,存储系统150可以是能够存储服务器计算设备110可访问的信息的任何类型的计算机化的存储,诸如硬盘驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写、和只读存储器。此外,存储系统150可以包括分布式存储系统,其中数据存储在物理上位于相同或不同地理位置处的多个不同的存储设备上。存储系统150可以如图1中所示出的经由网络160连接至计算设备,和/或可以直接连接至计算设备110、120、130至140中的任何一个(未示出)。存储系统150可以存储几何结构数据。如下面所描述的,可以为不同的区域、用户、客户端计算设备等等预定几何结构数据。几何结构数据可以包括定义特征的地理位置以及诸如颜色、特征类型(椅子、窗户等等)、纹理等等的其它信息的多个三维点或向量。图3是几何结构数据的表格和该几何结构数据的三维表示的示例300。在此示例中,几何结构数据与房间相对应并且包括识别各种项目或特征的形状和位置的信息,各种项目或特征包括桌子310、计算机监视器311、键盘312、椅子313、灯314、垃圾桶315和白板316。如示例300中所示出的,几何结构数据自身可以存储为一系列点或向量或各种其他格式。例如,该几何结构数据还可以与地图信息相关联,其可以被显示给用户以便指示位置。尽管示例300中所演示的几何结构似乎被很好地表示,几何结构实际上可以包括通过使用移动(SfM)技术的架构所生成的概率模型以根据二维图像估计三维几何结构。此外,对于不同对象的几何结构可能存在各种模型或不同的“猜想”。示例方法为了利用本文中所描述的技术,用户可以安装应用、选择设置等等。在这之后,客户端计算设备可以从服务器计算设备请求上述几何结构数据。例如,随着用户220进入特定地理位置,例如,当用户进入特定建筑物或室内空间时,可以由客户端计算设备120自动进行该请求。替选地,用户可以在参观特定地理位置前就下载几何结构数据。响应于该请求,服务器计算设备可以从存储系统中检索几何结构数据并将其发送至进行请求的客户端设备。例如,服务器计算设备110可以从存储系统150中检索几何结构数据并将所述几何结构数据发送至客户端计算设备120。然后用户可以将他的或她的计算设备带到特定地理位置,在一些示例中,客户端计算设备可以是移动客户端计算设备,诸如关于客户端计算设备120、130和140所描述的那些,这使得用户的客户端计算设备的当前位置可能会随着用户将客户端计算设备移动到不同位置而改变。图4是用户220正握持着客户端计算设备120站立在其中的房间400的示例。房间400与几何结构数据300的区域相对应并且包括各种对象,诸如桌子410、计算机监视器411、键盘412、椅子413、灯414、垃圾桶415和白板416。在此示例中,存在多个较小的对象,诸如杯子417、橡皮418和马克笔419。用户可以访问应用以便确定用户的客户端计算设备的当前位置。作为响应,客户端计算设备可以提示用户捕捉图像或视频。如果用户选择这样做,他或她可以将移动计算设备在室内空间周围移动以捕捉室内空间的视频或一系列静态图像。替选地,用户可以仅捕捉室内空间的单个图像。图5是捕捉到的图像510在客户端设备120上的屏幕截图的示例500。客户端计算设备可以处理视频的一个或多个帧或图像以识别特征。可以在移动计算设备上提取特征和/或可以将图像或一个或多个视频帧发送至一个或多个其他计算设备以便识别特征和其相对位置。如上面所指出的,该过程可以利用SfM技术。例如,客户端计算设备120可以处理图像以便识别灯520的形状。客户端计算设备120还可以确定灯520相对于图像中诸如计算机监视器530的其他特征的位置。可以将所识别的特征与几何结构数据相比较以便识别匹配特征。再一次,可以通过使用SfM技术实现该比较。例如,如图6的示例600中所示出的,客户端计算设备可以访问几何结构数据并将其与所识别的特征相比较。在该示例中,可以将几何结构数据310-16与从图像510中识别的特征相比较。客户端计算设备可以因此将图像510中的灯520与几何结构数据300中的灯314进行比较以及匹配。类似地,客户端计算设备可以将图像510中的计算机监视器530与几何结构数据300中的计算机监视器311进行比较以及匹配。使用所匹配的特征,当捕捉到视频或图像时,客户端计算设备可以确定客户端计算设备的位置。例如,客户端计算设备可以使用所匹配的特征的位置来确定客户端计算设备的方向和位置,而不要求诸如加速计或陀螺仪数据、GPS、WiFi等等的其他位置提示。就这一点而言,当捕捉到视频或图像时,客户端计算设备可以确定客户端计算设备的位置和方向。一旦已经确定了位置,该信息可以被提供给用户。例如,如图7的屏幕截图中所示出的,识别确定位置的信息可以被显示给用户。在该示例中,客户端计算设备120利用冒出的文本720识别标记710,所述标记710指示客户端计算设备相对于地图730的当前位置。在一些示例中,如果移动计算设备不能做出位置确定,则设备可以提示用户寻求帮助。例如,移动计算设备可以要求用户遥摄房间以捕捉另一个视频,或拍下另一张图片。例如,图8是提示用户拍下另一张图像的客户端计算设备120的屏幕截图。在本示例中,用户可以选择使用选项810拍下图像或使用选项820不拍图像。移动计算设备还可以提示用户拍下该房间中独特对象的图像。例如,客户端计算设备可以提示用户捕捉在其他附近区域中特别发现的或在其中不大可能发现的对象的图像。例如,如果用户正站在酒店的会议室中,这样的房间可能会某种程度上类似地出现在不同的位置中。然而,如果用户捕捉了该位置所独特的标识的图像,诸如指示城市或酒店名称的标志、大厅中的一个艺术作品,则该标志(或艺术作品)可以协助客户端计算设备或其他计算设备来确定用户的位置。虽然上面的示例与室内空间有关,但本文中所讨论的特征还可以被用于发现室外空间的位置,诸如GPS信号弱、太少或不可用的那些情况。例如,用户可以捕捉地平线、天际线等等的图像,并且请求当前位置,因为地平线、天际线等等的几何结构在不同位置中可以是不同的。图9的流程图900是可以由诸如客户端计算设备120、130、和140和/或服务器计算设备110中的一个或多个计算设备来执行的上面的一些方面的示例。在该示例中,在块902处,接收位置的图像。在块904处,处理图像以识别一个或多个特征。在块906处,访问预存储的几何结构数据。该几何结构数据识别多个特征以及相关联的位置。在块908处,通过将所识别的一个或多个特征与预存储的几何结构数据比较来确定匹配位置。如上面所描述的提供给客户端计算设备的几何结构数据可以是预定的。为了这样做,必须捕捉或存储关于区域的几何结构的信息。在一些示例中,可以使用激光和/或相机来捕捉建筑物的内部。然后可以再一次使用SfM技术来处理该数据以识别位置的各种特征以及其相对位置。所识别的特征可以被用来生成例如在存储系统150处所存储的几何结构数据。例如,如上所述,取决于特征在匹配和确定位置方面的价值,特征以及其相对位置可以被包括在或排除于几何结构数据。因此,在给定区域内对于特定位置所独特的特征或特征的位置在确定和匹配位置方面可能会更有用。就这一点而言,具有独特的几何结构形状、颜色的布置或位置的对象可以被包括在几何结构数据中。对象的特定组,它们相对于彼此的放置(或放置的其他模式)也可以被包括在几何结构数据中。此外,可以在用于特定区域的几何结构数据中包括足够的特征和相关联的位置,以便满足客户端计算设备的相机从任何给定的位置中可能会指向的方向的某个最小数目。返回至房间400的示例和几何结构数据的示例300,房间400的某些特征可能不被包括在几何结构数据中。例如,可能会在周围移动或移除的较小的对象,诸如杯子417、橡皮418和马克笔419,不被表示在几何结构数据中。在另一个示例中,如果建筑物中存在像房间400一样包括诸如桌子410和椅子413的特定桌子和特定椅子的多个房间,则可将这些特征从几何结构数据中排除。诸如灯414的更多独特的特征可以被包括在几何结构数据中,因为它们不太可能出现在其他房间中或者被移动至新的位置。此外,灯414的几何结构可以被视为独特的,因为灯414是收集到的数据中所包括的唯一的灯,或者因为其是少量的同样或类似成形或安置的灯中的一个。例如,可能不存在或存在非常少量的像灯414一样的其他灯,或位于距离与桌子410相似成形的桌子x英尺之内的其他灯,或位于距离门或墙x英尺之内的其他灯,等等。类似地,在室外的情况下,一组同样的建筑物的几何结构和特征可以比较不独特,但是独自站立于另一个位置的相同的建筑物可以特别独特。在一个示例中,可以通过独特性对特征和特征的几何结构进行排名或估值。使用上面的示例,杯子417、橡皮418和马克笔419的位置和几何结构的排名可以低于灯414的位置和几何结构的排名。就这一点而言,特征和其几何结构可以相对于彼此被排名,或仅被按比例给出独特性值,例如从0至1。例如,杯子417可以具有值0.01而灯414具有值0.89。然后可以选择排名或估值最高的特征和特征的几何结构,以用于几何结构数据。就这一点而言,可以将低排名的特征(或者比较不独特的那些)从几何结构数据中排除。再一次,可以将诸如杯子417、橡皮418和马克笔419的低排名或估值的特征和特征的几何结构从几何结构数据中排除,而可以包括诸如灯414的高排名特征的数据。该排名的目标是在对于客户端计算设备的有限的存储器中的存储尽可能宽的范围内提供有用的几何结构数据。图10的流程图1000是可以由诸如服务器计算设备110的一个或多个计算设备来执行的上述一些方面的示例流程图。在该示例中,在块1002处,接收在特定区域处所收集的信息。在块1004处,从所接收到的信息中识别一个或多个特征和相关联的位置。在块1006处,根据所识别的一个或多个特征之间的相对的独特性对所识别的一个或多个特征进行排名。在块1008处,基于经过排名的特征中所选择的一些和相关联的位置,生成用于特定区域的几何结构数据集。基于与用户相关联的特性,特征还可以从几何结构数据中被包括或被排除,或以另外的方式被筛选。在一个示例中,基于那些特征是否处于用户可能处于的位置或用户可能迷失的位置,可以包括或排除特征和特征的几何结构。例如,图11的地图1100是办公楼的一层的示例。诸如洗手间、走廊1、大厅、会议室A和会议室B的位置的特征和特征数据可以表示参观用户有可能位于的区域。因此,将与该区域相关联的特征和特征的几何结构包括在几何结构的数据中可能是有帮助的。然而,与诸如仓库、档案室和办公室1至4的私有区域相对应的特征和特征的几何结构可以不被包括在几何结构数据中,如果参观用户不太可能去到这些区域的话。类似地,如果参观用户有可能迷失在走廊2和走廊3中,与这些区域相关联的特征和特征的几何结构也可以被包括在特征数据中。基于需要被定位的用户的类型,还可以筛选几何结构数据。例如,作为应用注册的部分,用户可以提供关于他或她期望何时或为何期望使用应用的信息,或者他或她有什么兴趣或爱好的信息。如果用户是游客,则与建筑物的标识或形状有关的几何结构可能会更重要,而如果用户是运动员(例如,跑步者),则与公路或植物(例如,树)相关的几何结构数据可能会更重要。如上所指出,返回至地图1100的示例,为参观的用户、游客等等所指定的几何结构数据可以包括走廊1至3、洗手间、大厅、会议室A和会议室B中的每一个的特征和特征的几何结构。然而,对于办公楼中的雇员,几何结构数据可以包括走廊1至3、洗手间、办公室1至4、会议室A和会议室B的特征和特征的几何结构,但是不包括档案室或仓库,因为这些仍可以被视作私有区域。在另一个示例中,可以基于用户的客户端计算设备的限制因素来确定几何结构数据。诸如,确定和匹配位置所需的几何结构数据到目前为止只能被压缩。因此,可以向具有较高的带宽、存储、处理能力等等的某些客户端计算设备提供用于较大区域的几何结构数据或提供较多特征和特征的几何结构。类似地,可以向具有较低的带宽、存储、处理能力等等的计算设备提供用于较小区域的几何结构数据或提供较少特征和特征的几何结构。此外,客户端计算设备的显示能力也可以影响发送至客户端计算设备的几何结构数据。图12的流程图1200是可以由诸如计算设备110的一个或多个计算设备来执行的上述一些方面的示例流程图。在该示例中,在块1202处,接收在特定区域处收集的信息。在块1204处,从所接收到的信息中识别一个或多个特征和相关联的位置。在块1206处,基于用户的特性选择所识别的一个或多个特征中给定的一些。在块1208处,基于经过排名的特征中所选择的一些和相关联的位置,生成用于特定区域的几何结构数据集。在块1210处,如上面所描述的,为了确定位置,可以接着将该几何结构数据发送至一个或多个客户端计算设备。在此处所讨论的系统收集关于用户的个人信息或可能利用个人信息的情况下,可以向用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户的偏好或用户的当前位置)的机会,或者提供控制是否和/或如何从可能与用户更为相关的内容服务器接收内容的机会。此外,在某些数据被存储或使用前,可以以一个或多个方式对其进行处理,以便移除个人可识别的信息。例如,可以对用户的身份进行处理,以使得没有个人可识别的信息能够被确定为是用于该用户的,或者在获得位置信息的情况下可以泛化用户的地理位置(诸如到城市、邮编或州级别),以使得不能够确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息以及诸如服务器计算设备110中的一个或多个的内容服务器如何使用信息。上述可替选示例中的大多数都不是相互排斥的,但却可以以各种组合来实现以获得独特的优势。由于在不背离权利要求所定义的主题的情况下能够利用上面所讨论的特征的这些和其他变化以及组合,因此应该通过说明性的方式而不是通过对权利要求所定义的主题的限制性的方式采用对实施例的上述描述。例如,前述操作不是必须按照上面所描述的严格的顺序来执行。相反,能够按照不同顺序或同时处理各种步骤。除非另外规定,还能够省略步骤。此外,本文中所描述的示例的配置,以及措辞为“诸如”“包括”等等的术语,都不应该被解释为将权利要求的主题限制于特定示例;相反,示例旨在仅仅说明许多可能的实施例中的一个。进一步地,不同图中相同的附图标记能够识别相同或类似的元件。工业实用性本发明享有广泛的工业实用性,其包括但不限于确定移动计算设备的位置。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1