专利名称:内部位置识别方法和装置的制作方法
技术领域:
这里公开的主题涉及位置识别,更具体地说,涉及内部位置识别。
背景技术:
全球定位系统(GPS)设备经常用于在外部空间中确定方位和/或支持导航。然而,在内部空间,比如建筑物内,通常不能收到GPS信号。结果,用户不能确定位置、使用导航程序、或者使用电子设备的其它位置相关功能。
发明内容
根据上面所述,显然需要识别内部位置的方法和装置。有益地,这种方法和装置会确定诸如建筑物或地铁站的内部场所内的位置。 响应于现有技术的当前状态,尤其是响应于现有技术的一直未被目前可用的内部位置识别方法完全解决的问题和需要,提出了本发明。因而,为了提供一种克服现有技术中的许多或者所有上述缺陷的内部位置识别方法而开发了本发明。本发明的方法用于内部位置识别。所述方法从内部空间的第一图像中解析至少一个对象,并且比较每个解析的对象和多个保存的对象。所述方法进一步选择与保存的对象相区别的解析的对象作为第一对象,并在位置记录中利用第一对象来索引内部空间的位置描述。内部位置识别装置配备有被配置成在功能上执行所述方法的多个模块。说明的实施例中的这些模块包括计算机可读存储介质和解析模块。计算机可读存储介质存储可由处理器执行的计算机可读程序代码。解析模块从内部空间的第一图像中解析至少一个对象,并比较每个解析的对象和多个保存的对象。解析模块进一步选择与保存的对象相区别的解析的对象作为第一对象,并且在位置记录中利用第一对象来索引内部空间的位置描述。本说明书内各处对特征、优点或类似语言的引用并不意味着在任何单个实施例中实现所有特征和优点。相反,涉及特征和优点的语言应理解成意味着特定特征、优点或特性包含在至少一个实施例中。从而,本说明书内各个地方的特征和优点的讨论以及类似语言可以(但未必)指的是相同实施例。此外,可以按照任何适当方式来组合说明的实施例的特征、优点和特性。本领域的技术人员会认识到,可以在没有特定实施例的一个或多个具体特征或优点的情况下,实践各个实施例。在其它情况下,在某些实施例中可能认识到并不存在于所有实施例中的另外的特征和优点。根据以下说明和附加的权利要求,实施例的这些特征和优点将更加明显,或者通过如下陈述的实施例的实践,可以了解实施例的这些特征和优点。
为了易于理解本发明的实施例的优点,将参考在附图中图解说明的具体实施例,更详细地说明上面简要说明的实施例。这些附图仅仅描述了一些实施例,于是不应被视为对本发明范围的限制,通过利用附图,更专一和详细地说明和解释各个实施例,其中图I是图解说明内部空间的一个实施例的立体图;图2是图解说明图像的一个实施例的示图;图3是图解说明位置记录的一个实施例的示意方框图;图4是图解说明数据仓库的一个实施例的示意方框图;图5是图解说明计算机的一个实施例的示意方框图;
图6是图解说明内部位置识别装置的一个实施例的示意方框图;图7是图解说明内部位置存储方法的一个实施例的示意流程图;以及图8是图解说明内部位置识别方法的一个实施例的示意流程图。
具体实施例方式本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法和/或计算机程序产品。因而,本发明的各个方面可以采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。本说明书中说明的许多功能单元被标记为模块,以便更加特别强调其实现的独立性。例如,模块可被实现成包括定制的VLSI电路或门阵列,诸如逻辑芯片之类的成品半导体,晶体管,或者其它离散组件的硬件电路。模块也可以用可编程硬件器件,比如现场可编程门阵列,可编程阵列逻辑,可编程逻辑器件等实现。模块也可以用供各种处理器执行的软件实现。例如,计算机可读程序代码的识别模块可包括可被组织成对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,识别模块的可执行指令不必物理地位于一起,相反可以包含保存在不同位置的根本不同的指令,当被逻辑地结合在一起时,所述这些指令构成所述模块,并实现所述模块的规定用途。事实上,计算机可读程序代码的模块可以是单个指令,或者许多指令,甚至可以分布在几个不同的代码段内,不同的程序中,和几个存储设备之间。类似地,这里可以在模块内识别和例示操作数据,操作数据可以按任何适当的形式来体现,和在任何适当种类的数据结构内组织。操作数据可以单个数据集的形式被集中,或者可以分布在不同的位置,包括分布在不同的存储设备上,并且可以至少部分仅仅作为电信号存在于系统或网络上。在用软件实现模块或模块的多个部分的情况下,计算机可读程序代码可被保存在一个或多个计算机可读介质上,和/或用一个或多个计算机可读介质传播。计算机可读介质可以是保存计算机可读程序代码的有形计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、磁、光、电磁、红外、全息、微机械或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体例子可包括(但不限于)便携式计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦可编程只读存储器(EPR0M或闪速存储器),便携式光盘只读存储器(CD-ROM),数字通用光盘(DVD),光存储装置,磁存储装置,全息存储装置,微机械存储装置,或者它们的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含和/或保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的计算机可读程序代码的任何有形介质。计算机可读介质也可以是计算机可读信号介质。计算机可读信号介质可包括计算机可读程序代码包含在其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以米取任意各种形式,包括(但不限于)电,电磁,磁,光信号,或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,并且能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的计算机可读程序代码的任何计算机可读介质。包含在计算机可读信号介质上的计算机可读程序代码可利用任何适当的媒体传送,包括(但不限于)有线线路、光纤、射频(RF)等,或者它们的任意适当组合。
在一个实施例中,计算机可读介质可包含一个或多个计算机可读存储介质和一个或多个计算机可读信号介质的组合。例如,计算机可读程序代码可以通过光缆以电磁信号的形式传播,从而供处理器执行,并保存在RAM存储装置上供处理器执行。可用一种或多种编程语言,包括诸如Java、Smalltalk、C++、PHP之类的面向对象的编程语言,和诸如“C ”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机可读程序代码。计算机可读程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。计算机程序产品可被共享,以灵活、自动的方式同时服务多个客户。计算机程序产品可以是标准化的,几乎不需要定制并可缩放,以即付即用模型应请求提供容量。计算机程序产品可被保存在可从一个或多个服务器访问的共享文件系统上。可以借助包含数据的事务,和利用被访问服务器上的中央处理器(CPU)单位的服务器处理请求,执行计算机程序产品。CPU单位可以是服务器的中央处理器上的诸如分、秒、小时之类的时间单位。另外,被访问的服务器可以产生要求CPU单位的其它服务器的请求。CPU单位是代表仅仅一个使用度量的例子。其它的使用度量包括(但不限于)网络带宽、内存使用、存储器使用、分组传送、完成事务等等。当多个客户利用相同的计算机程序产品时,通过包含在事务中的识别唯一客户和该客户的服务种类的参数来区分事务。记录用于每个客户的服务的所有CPU单位和其它使用度量。当相对于任何一个服务器的事务的数目达到开始影响该服务器的性能的数目时,访问其它服务器,以增大容量和分担工作负荷。同样地,当诸如网络带宽、内存使用、存储器使用之类的其它使用度量逼近影响性能的容量时,增加额外的网络带宽、内存使用、存储器等,以分担工作负荷。用于每个服务和客户的使用度量被发送给收集服务器,所述收集服务器计算在提供计算机程序产品的共享执行的服务器网络中的任何地方处理的每种服务的每个用户的使用度量的总和。总计的使用度量单位被定期乘以单位成本,最后得到的总的计算机程序产品服务成本被发送给客户和/或显示在客户访问的网站上,所述客户随后向服务提供者汇款支付。在另一个实施例中,服务提供者请求直接从银行或金融机构的客户账户支付。在另一个实施例中,如果服务提供者也是利用计算机程序产品的客户的客户,那么用欠服务提供者的付款冲抵服务提供者所欠的付款,以使付款的传送降至最少。说明书内对“一个实施例”,“实施例”或类似语言的引用意味着关于该实施例说明的特定特征、结构或特性包含在至少一个实施例中。从而,出现在说明书中各个地方的短语“在一个实施例中”,“在实施例中”和类似语言可以(但未必)都指的是相同实施例,而是意味着“一个或多个但不是所有的实施例”,除非明确地另有所示。术语“包括”、“包含”、“具有”和它们的变形意味“包括但不限于”,除非明确地另有所示。项目的枚举不意味着任何或者所有项目互相排斥,和/或互相包含,除非明确地另有所示。单数形式还涉及“一个或 多个”,除非明确地另有所示。此外,说明的实施例的特征、结构和特性可以按照任何适当的方式组合。在下面的说明中,提供了众多的具体细节,比如编程、软件模块、用户选择、网络事务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的例子,以透彻理解实施例。然而,本领域的技术人员会认识到,可以在没有一个或多个具体细节的情况下,或者可以在具有其它模块、组件、材料等的情况下,实践实施例。在其它情况下,未详细表示或说明公知的结构、材料或操作,以避免模糊实施例的各个方面。下面参考按照本发明的各个实施例的方法、设备、系统和计算机程序产品的示意流程图和/或示意方框图,说明实施例的各个方面。要明白示意流程图和/或示意方框图的每个方框,以及示意流程图和/或示意方框图中的各个方框的组合可用计算机可读程序代码实现。计算机可读程序代码可被提供给通用计算机,专用计算机,定序器或者其它可编程数据处理设备的处理器,从而产生机器,使得借助计算机或其它可编程数据处理设备的处理器执行的指令产生实现在示意流程图和/或示意方框图的一个或多个方框中指定的功能/动作的装置。计算机可读程序代码也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,使得保存在计算机可读介质中的指令产生制品,所述制品包括实现在示意流程图和/或示意方框图的一个或多个方框中指定的功能/动作的指令。计算机可读程序代码也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机,其它可编程数据处理设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,使得在计算机或其它可编程设备上执行的程序代码提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。附图中的示意流程图和/或示意方框解说明了按照本发明的各个实施例的设备、系统、方法和计算机程序产品的各种可能实现的体系结构、功能和操作。在这方面,示意流程图和/或示意方框图中的每个方框可代表包含实现指定逻辑功能的程序代码的一个或多个可执行指令的模块、程序段或一部分代码。
另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个块有时可按照相反的顺序执行,取决于所涉及的功能。可以设想在功能、逻辑或效果方面与图解说明的各个附图的一个或多个方框,或其多个部分等同的其它步骤和方法。尽管在流程图和/或方框图中采用了各种箭头和线条,然而它们显然并不限制对应实施例的范围。事实上,一些箭头或其它连接符可用于仅仅指示所述实施例的逻辑流。例如,箭头可以指示所述实施例的枚举步骤之间的未指定持续时间的等待或监控时期。另外注意,方框图和/或流程图中的每个方框,以及方框图和/或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机可读程序代码的组合来实现。图I是图解说明内部空间100的一个实施例的立体图。内部空间100可以是建筑物中的房间。内部空间100是其它内部空间,包括购物区、交通运输设施、娱乐地点、饭店、公寓、住宅等的内部的示例。为了简简起见,这里把内部空间100描述成在建筑物内。描述的内部空间100包括门105、信号箱110、一个或多个插画115、120、矮柜130、 140可以是数字静态照相机、数字摄像机等等。照相机140可以包含在诸如蜂窝电话机、平板电脑、笔记本计算机之类的设备中。在一个实施例中,第一图像包含多个图像。所述多个图像可被数字结合成单个图像。图像可以是运动图像专家组(MPEG)-I文件,MPEG-2文件,MEPG-3文件,MPEG-4文件,MPEG-7文件,MPEG-21文件,可移植网络图形(PNG)文件,联合图像专家组(JPEG)文件,图形交换格式(GIF)文件等等。图2是图解说明图像200的一个实施例的正视图。图像200可以是用如图I中所述的照相机140拍摄的第一图像。在备选实施例中,图像200可以是如后所述随后拍摄的第二图像。图像200的描述涉及图I的要素,相同的附图标记指的是相同的要素。图像200包括插画120,花瓶125,矮柜130和墙壁135。在所述的实施例中,插画120包括文本205。在一个实施例中,从图像200中解析一个或多个对象。例如,如后所述,插画120,文本205,花瓶125,矮柜130和墙壁135都可被解析成对象。图3是图解说明位置记录300的一个实施例的示意方框图。位置记录300可以把从图2的图像200中解析出的对象保存为第一对象305。位置记录300的描述涉及图1_2的要素,相同的附图标记指的是相同的要素。位置记录300包括第一对象305,房间号310,地址315,导航方向320,建筑物地图325,坐标345,辅助位置指示330,最后的GPS坐标335,和绝对方位340。对象305,房间号310,地址315,导航方向320,建筑物地图325,坐标345,辅助位置指示330,最后的GPS坐标335,和绝对方位340可被保存在位置记录300的数据结构中。第一对象305可以包括保存一个或多个第一对象305的一个或多个文件。另外,第一对象305可以保存第一对象305的一个或多个解析的特性。所述解析的特性可以包括(但不限于)颜色、形状、色相、图像的散列,图像的傅里叶变换,一条或多条线的向量,和反射率值。所述解析的特性还可包括多个第一对象305之间的空间关系。例如,空间关系可以包括每个第一对象305的三维方位。另一方面,空间关系可以包括每个第一对象305在图像200上的二维方位。
房间号310,地址315,导航方向320,建筑物地图325,坐标345,辅助位置指示330,最后的GPS坐标335和绝对方位340可以包含在位置描述350中。房间号310可包括房间号,房间描述。坐标345可包含建筑物地图的两个以上的坐标,建筑物模型内的坐标,地点网格内的坐标,全球坐标等。地址315可以包括内部空间100的街道地址。导航方向320可以包括从建筑物的一个或多个入口到内部 空间100的一个或多个方向。建筑物地图325可以保存建筑物地图。建筑物地图325可以是建筑物的二维地图,建筑物的每一个楼层的一个或多个二维地图,建筑物的三维模型等等。在一个实施例中,保存在房间号310中的房间坐标指的是在建筑物地图325上的位置。坐标345可指示在建筑物地图325上的方位。辅助位置指示330可以是无线网络标识,蜂窝网络标识,红外导航信标中的至少一个。无线网络标记可以是WiFi网络,蓝牙网络等的标识。例如,信号箱110可以是WiFi网络和/或蓝牙网络的收发器。无线网络也可是包括无线电台、电视台等的多个广播台,WiFi网络,蓝牙网络,指定射频频带中的通信,等等。蜂窝电话网络标识可以包括出自一个或多个基站收发器标识,一个或多个信号强度,和/或一个或多个信号方向的标识。红外导航信标可以是信号箱110广播的红外信号。最后的GPS坐标335可以是在建筑物内失去GPS信号之前记录的GPS坐标。例如,最后的GPS坐标可以是在失去GPS信号之前,由带入建筑物中的蜂窝电话机记录的方位。绝对方位340可以是坐标,街道地址等。在创建位置记录300之后,绝对方位340可被添加到位置记录300中。利用第一对象305来索引位置记录300,使得可通过识别第一对象305来检索位置描述350。房间号310,地址315,导航方向320,建筑物地图325,坐标345,辅助位置指示330,最后的GPS坐标335,绝对方位340也是可搜索的,从而允许利用保存在位置记录300中的任意数据来识别位置记录300。图4是图解说明数据仓库400的一个实施例的示意方框图。数据仓库400可保存多个在图3中描述的位置记录300。数据仓库400可以保存在诸如计算机可读存储介质之类的计算机可读介质上。图5是图解说明计算机500的一个实施例的示意方框图。计算机500可保存和处理图4的数据仓库400。计算机500包括处理器505,内存510,通信硬件515和存储设备520。内存510可保存计算机可读程序代码。处理器505可执行计算机可读程序代码。计算机500可通过通信硬件515进行通信。存储设备520也可保存计算机可读程序代码。图6是图解说明内部位置识别装置600的一个实施例的示意方框图。装置600可以执行内部位置识别的功能。装置600的说明涉及图1-5的要素,相同的附图标记指的是相同的要素。装置600包括解析模块605,搜索模块610,第一图像615,第二图像620,保存的对象625,解析的对象630,以及第二对象635。解析模块605,搜索模块610,第一图像615,第二图像620,保存的对象625,解析的对象630,以及第二对象635可以用保存在内存510和/或存储设备520中并由处理器505执行的计算机可读程序代码来体现。在一个实施例中,解析模块605和搜索模块610可以包含在分离的计算机500中。另一方面,解析模块605和搜索模块610可以包含在单个计算机500中。
解析模块605从内部空间100的第一图像615中解析至少一个对象630。另外,解析模块比较每个解析的对象630和多个保存的对象625。保存的对象625可以是保存在数据仓库400中的第一对象305。另一方面,保存的对象625可保存在单独的数据结构中。解析模块605选择从保存的对象625中辨别出的解析的对象630作为第一对象305。另外,解析模块605利用位置记录300中的第一对象305来索引内部空间100的位置描述350。搜索模块610从内部空间100的第二图像620中识别第一对象305。第二图像620可以是图像200。响应于识别出第一对象305,搜索模块610从数据仓库400中检索位置描述 350。图7是图解说明内部位置存储方法700的一个实施例的示意流程图。方法700可执行图6的内部位置识别装置600的功能。方法700的说明涉及图1-6的要素,相同的附图标记指的是相同的要素。 方法700开始,在一个实施例中,照相机140扫描705第一图像615。照相机140可扫描705第一图像615作为建筑物的图像和位置描述的系统编目的一部分。另一方面,照相机140可扫描705第一图像615作为关于内部空间100的信息的主动提交的一部分。例如,内部空间100的占有者可提交第一图像615,以识别内部空间100的位置。解析模块605可从内部空间100的第一图像615中解析710 —个或多个对象630。在一个实施例中,解析模块605采用图案识别算法来解析710对象630。解析模块605可识别解析对象630的边界、从解析的对象630中除去背景像素、以及把解析的对象630记录成不同的数据文件。解析模块605可确定解析的对象630的特性。例如,解析模块605可以执行散列算法,以生成解析的对象630的散列。另一方面,解析模块605可对解析的对象630进行傅里叶变换,以生成解析的对象630的变换。另外,解析模块605可以确定解析的对象630的其它特性,包括(但不限于)解析的对象630的一个或多个颜色,一个或多个平均颜色,一个或多个形状,一个或多个色调,一个或多个色相,一条或多条线的向量,以及一个或多个反射率值。在一个实施例中,解析模块605比较715出自第一图像615的解析的对象630和一个或多个保存的对象625。保存的对象625可以是保存在数据仓库400的位置记录300中的第一对象305。另一方面,保存的对象625可包含在常见对象的数据库中。例如,计算机监视器对象可包括在保存的对象630中,并被归类成不太可能提供位置线索的常见对象。其它保存的对象可被识别成可能提供位置线索。解析模块605可比较715解析的对象630的特性和保存的对象625的特性。解析模块605可根据每个解析的对象630的特性来计算多个特性分数。解析模块605还可比较715解析的对象的特性分数和保存的对象625的特性分数。解析模块605可以作为解析的对象630的特性和保存的对象625的相同特性之间的差来计算每个特性的相似性分数。另外,解析模块605可以作为相似性分数和权重的乘积之和来计算特性差异分数。等式I举例说明了计算特性差异分数C的一个实施例,其中,h是大于O的权重,以及Si是相似性分数。C= Σ I^si 等式 I
在备选实施例中,解析模块605根据解析的对象630和保存的对象625之间的空间关系,比较715解析的对象630和保存的对象625。例如,第一对象305中的3个计算机监视器的空间关系可以唯一地识别内部空间100的位置,尽管计算机监视器在个体上并不是唯一的。为了确定空间关系是否可以识别内部空间100,解析模块605可以使第一解析的对象630和第一保存的对象625共同位于ー个空间系统内。解析模块605还可以作为每个其它解析的对象630和在空间上与第一保存的对象625相关的相应保存的对象625之间的差异之和,来计算空间差异分数。在一个实施例中,解析模块605把被识别为移动的解析的对象排除在考虑之外。例如,通过比较解析的对象和多个钱包保存对象625,解析模块605可把解析的对象630识别成钱包。解析模块605可排除钱包解析对象630。在一个实施例中,解析模块605选择720 —个或多个解析的对象630作为第一对象305。解析模块605可以选择720最能从保存的对象625中辨别出的解析的对象630。例如,解析模块605可选择720具有最低特性差异分数,最低空间差异分数,和/或它们的组 合的解析的对象。解析模块605还利用选择的第一对象305来索引725内部空间100的位置描述350,以形成位置记录300。在一个实施例中,位置描述350可由自动化设备,从入口或者它们的组合,记录在位置记录300中。因此,可以检索位置描述350,以便识别内部空间100的位置,如后所述。在一个实施例中,解析模块605把最后的GPS坐标335附加730到位置记录300上。最后的GPS坐标335可以是由诸如照相机140的设备记录的最新的GPS坐标。最后的GPS坐标335可能并不精确地指示内部空间100的位置。然而,最后的GPS坐标335可能在内部空间100附近。解析模块605还可把绝对方位740附加735到位置记录300。绝对方位740可以在稍后的日子输入。另外,解析模块605可把位置记录300保存740在数据仓库400中,然后方法700结束。方法700扫描705、解析710和选择720第一对象305,所述第一对象305可随后被用于恢复位置记录300和位置信息350,以便识别内部空间100。图8是图解说明内部位置识别方法800的一个实施例的示意流程图。方法800可执行图6的内部位置识别装置600的功能。方法800的说明涉及图1-7的要素,相同的附图标记指的是相同的要素。方法800开始,在一个实施例中,照相机140从内部空间100扫描805第二图像620。在一个实施例中,第二图像620可以包含多个图像200。所述多个图像200可被数字结合成单个图像。图像可以是运动图像专家组(MPEG)-I文件,MPEG-2文件,MEPG-3文件,MPEG-4文件,MPEG-7文件,MPEG-21文件,可移植网络图形(PNG)文件,联合图像专家组(JPEG)文件,图形交換格式(GIF)文件等等。照相机140可以包含在诸如蜂窝电话机,平板电脑,笔记本计算机,便携式电子设备之类的设备中。照相机140可以扫描805第二图像620,以识别内部空间100的位置。在一个实施例中,搜索模块610缩小810搜索的范围。搜索模块610可以把搜索的范围缩小810到具有最后的GPS坐标335和/或在设备所测量的最后的GPS坐标的指定半径内的绝对方位340的位置记录300。所述指定半径可以在25-200米的范围内。例如,设备可以记录当前的最后GPS坐标。捜索模块610可以只考虑其中最后的GPS坐标335和/或绝对方位340在当前的最后GPS坐标的100米以内的位置记录300。在一个实施例中,搜索模块通过三角測量包括(但不限干)蜂窝电话信号、广播信号和/或无线网络信号的ー个或多个信号,来确定估计的位置。捜索模块610可以通过只考虑其中最后的GPS坐标335和/或绝对方位340在估计的位置的100米以内的位置记录300,来缩小搜索范围。另ー方面,搜索模块610可以把搜索的范围缩小810到具有与识别当前位置的辅助位置指示330相符的辅助位置指示330的位置记录300。例如,如果搜索模块610检测到名为“plazaonenet”的WiFi网络,那么搜索模块610可以把搜索的范围缩小810到具有包含名为“plazaonenet”的WiFi网络的至少ー个辅助位置指示330的位置记录300。搜索模块610从第二图像615中识别815位置记录300的第一对象305。在ー个·实施例中,捜索模块610采用图案识别算法,从第二图像中解析第二对象635。解析模块605可识别第二对象635的边界、从第二对象635中去除背景像素、以及把第二对象635记录成不同的数据文件。捜索模块610可确定第二对象635的特性。例如,捜索模块610可以执行散列算法,以生成第二对象635的散列。另ー方面,捜索模块610可对第二对象635进行傅里叶变换,以生成第二对象635的变换。另外,捜索模块610可以确定第二对象635的其它特性,包括(但不限干)ー个或多个颜色,ー个或多个平均顔色,ー个或多个色相,ー个或多个形状,一条或多条线的向量,ー个或多个色调值,以及ー个或多个反射率值。捜索模块610可以根据每个解析的第二对象635的特性来计算多个特性分数。搜索模块610还可比较解析的第二对象特性分数和第一对象305的特性分数。在一个实施例中,捜索模块610计算每个解析的第二对象635和每个第一对象305的特性差异分数、最低空间差异分数和/或它们的组合,并从数据仓库400中识别815在特性差异分数和/或空间差异分数方面差异最小的第一对象305。在备选实施例中,捜索模块610识别815均超过匹配阈值的多个第一对象305。在一个实施例中,搜索模块610从识别的第一对象305的位置记录300中检索820位置描述350,随后方法800结束。搜索模块610还可检索820超过匹配阈值的第一对象305的多个位置描述350。搜索模块610可把位置描述350呈现在显示器上、提供可听表现、把位置描述传送给另ー个设备,等等。因此,即使不能获得GPS信号,也使采用实施例的设备能够识别内部空间100的位置。可以用其它具体形式来实践实施例。说明的实施例在各个方面都只应被认为是例证性的,而不是对本发明的限制。因此,本发明的范围由附加的权利要求限定,而不是上述说明限定。在权利要求的等同物的含意和范围内的所有变化都包含在权利要求的范围之内。
权利要求
1.一种内部位置识别方法,包括 从内部空间的第一图像中解析至少一个对象; 比较每个解析的对象和多个保存的对象; 选择从保存的对象中辨别出的解析的对象,作为第一对象;和 在位置记录中利用第一对象来索引内部空间的位置描述。
2.按照权利要求I所述的方法,进一步包括 扫描第一图像;和 把辅助位置指示附加到所述位置记录上。
3.按照权利要求2所述的方法,其中,所述辅助位置指示选自包含无线网络标识和蜂窝电话网络标识的组。
4.按照权利要求I所述的方法,所述方法进一步包括 从内部空间的第二图像中识别第一对象;和 响应于识别出第一对象,检索所述位置描述。
5.按照权利要求4所述的方法,所述方法进一步包括 扫描第二图像;和 利用辅助位置指示来缩小识别第一对象的范围。
6.按照权利要求I所述的方法,其中,第一对象是文本,以及光学字符识别(OCR)处理解析所述文本。
7.按照权利要求I所述的方法,其中,所述位置描述包括房间号、地址、导航方向、建筑物地图和坐标中的至少一个。
8.一种装置,包括 解析模块,所述解析模块从内部空间的第一图像中解析至少一个对象,比较每个解析的对象和多个保存的对象,选择从保存的对象中辨别出的解析的对象作为第一对象,以及在位置记录中利用第一对象来索引内部空间的位置描述。
9.按照权利要求8所述的装置,所述解析模块进一步扫描第一图像,以及把辅助位置指示附加到所述位置记录上。
10.按照权利要求9所述的装置,其中,所述辅助位置指示选自包含无线网络标识和蜂窝电话网络标识的组。
11.按照权利要求8所述的装置,所述装置进一步包括搜索模块,所述搜索模块从内部空间的第二图像中识别第一对象,以及响应于识别出第一对象,检索所述位置描述。
12.按照权利要求11所述的装置,所述搜索模块进一步扫描第二图像,以及利用辅助位置指示来缩小识别第一对象的范围。
13.一种部署计算机程序产品的方法,包括把计算机可读程序代码集成到计算系统中,其中,计算机可读程序代码与计算系统相结合执行以下操作 从内部空间的第一图像中解析至少一个对象; 比较每个解析的对象和多个保存的对象; 选择从保存的对象中辨别出的解析的对象作为第一对象;和 在位置记录中利用第一对象来索引内部空间的位置描述。
14.按照权利要求13所述的方法,进一步包括扫描所述第一图像;和 把辅助位置指示附加到所述位置记录上。
15.按照权利要求14所述的方法,其中,所述辅助位置指示选自包含无线网络标识和蜂窝电话网络标识的组。
16.按照权利要求13所述的方法,所述方法进一步包括 从内部空间的第二图像中识别第一对象;和 响应于识别出第一对象,检索所述位置描述。
17.按照权利要求16所述的方法,所述方法进一步包括 扫描所述第二图像;和 利用辅助位置指示来缩小识别第一对象的范围。
18.按照权利要求14所述的方法,其中,第一对象是文本,以及光学字符识别(OCR)处理解析所述文本。
全文摘要
解析模块通过解析场景的图像当中的对象和文本,并比较每个解析的对象和多个保存的对象,来校准内部空间。解析模块进一步选择从保存的对象辨别出的解析的对象作为第一对象,并利用位置描述来保存第一对象。搜索模块可从相同场景中检测相同对象,并利用它们来确定场景的位置。
文档编号G06K9/62GK102842041SQ201210144918
公开日2012年12月26日 申请日期2012年5月11日 优先权日2011年5月13日
发明者J·布灵翰, H·鲍尔, K·布朗, E·杰拉德, G·怀特 申请人:国际商业机器公司