发明内容
本发明解决的技术问题是提供一种无线移动终端的定位方法及系统,在保证定位精度的情况下尽可能降低功耗。
为解决上述技术问题,本发明提供了一种无线移动终端的定位方法,
按照设定的序列长度,将用户依次经过的多个小区(Cell)的小区标识符(Cell-ID)存储为Cell-ID历史序列;
根据所述用户的当前Cell-ID序列,从存储的Cell-ID历史序列中选择与所述当前Cell-ID序列最匹配的Cell-ID历史序列,并估算出所述用户的当前估计位置;
采用全球定位系统(GPS)对估算出的所述当前估计位置进行修正,得到所述用户当前的精确位置。
进一步地,所述按照设定的序列长度,将用户依次经过的多个小区的Cell-ID记录为Cell-ID历史序列,具体包括:
记录用户依次经过的小区的Cell-ID,当记录的Cell-ID的个数到达设定的所述序列长度时,将当前记录的所述多个Cell-ID存储为所述Cell-ID历史序列,并开始记录下一个新的Cell-ID历史序列。
进一步地,当满足以下条件时,开始记录新的Cell-ID历史序列:
用户首次进入一个小区,且存储的Cell-ID历史序列中不存在该小区的Cell-ID;
或者,用户在当前的小区中停留的时间超出预定的时限。
进一步地,开始记录一个新的Cell-ID历史序列时,打开GPS,记录GPS位置数据;同时记录当前小区的Cell-ID、以及当前的时间戳;并将所述GPS位置数据以及当前的时间戳记录到当前Cell-ID对应的位置与时间戳列表中;
选择出与用户当前Cell-ID序列最匹配的Cell-ID历史序列后,根据所述位置与时间戳列表得出所述用户在当前小区下停留的时间,并采用插值算法估算所述用户的当前估计位置。
进一步地,通过以下方式选择与所述当前Cell-ID序列最匹配的Cell-ID历史序列:
将当前Cell-ID序列与存储的Cell-ID历史序列逐个进行比较,计算各Cell-ID历史序列的权值,并选择其中权值最大的作为最匹配的Cell-ID历史序列;
其中,在计算各Cell-ID历史序列的权值时,匹配的Cell-ID的权值大于不匹配的Cell-ID的权值。
进一步地,当权值最大的Cell-ID历史序列不止一个时,采用如下规则进行筛选最匹配的Cell-ID序列:
选择时间与当前Cell-ID序列最相近的Cell-ID历史序列;
选择长度最长的序列;
将当前序列的尾部与Cell-ID历史序列的头部进行匹配,预测下一个Cell-ID。
进一步地,所述设定的序列长度大于5;
且所述当前Cell-ID序列的长度为5。
进一步地,在开始记录一个新的Cell-ID历史序列时,将上一个Cell-ID历史序列中的最后一个或多个Cell-ID插入到该新的Cell-ID历史序列的起始处。
本发明还提供了一种无线移动终端的定位系统,所述系统包括序列学习模块,序列匹配选择模块,位置估计模块,其中
所述序列学习模块,用于按照设定的序列长度,将用户依次经过的多个小区的Cell-ID存储为Cell-ID历史序列;
所述序列匹配选择模块,用于根据所述用户的当前Cell-ID序列,从存储的Cell-ID历史序列中选择与所述当前Cell-ID序列最匹配的Cell-ID历史序列;
所述位置估计模块,用于根据最匹配的Cell-ID历史序列,估算出所述用户的当前估计位置;并采用GPS对估算出的所述当前估计位置进行修正,得到所述用户当前的精确位置。
进一步地,所述序列学习模块用于,按照所述设定的序列长度,采用以下方式将用户依次经过的多个小区的Cell-ID记录为Cell-ID历史序列:
记录用户依次经过的小区的Cell-ID,当记录的Cell-ID的个数到达设定的所述序列长度时,将当前记录的所述多个Cell-ID存储为所述Cell-ID历史序列,并开始记录下一个新的Cell-ID历史序列。
进一步地,所述序列学习模块用于,当满足以下条件时,开始记录新的Cell-ID历史序列:
用户首次进入一个小区,且存储的Cell-ID历史序列中不存在该小区的Cell-ID;
或者,用户在当前的小区中停留的时间超出预定的时限。
进一步地,所述序列学习模块用于,
开始记录一个新的Cell-ID历史序列时,打开GPS,记录GPS位置数据;同时记录当前Cell-ID、以及当前的时间戳;并将所述GPS位置数据以及当前的时间戳记录到当前Cell-ID对应的位置与时间戳列表中;
选择出与用户当前Cell-ID序列最匹配的Cell-ID历史序列后,根据所述位置与时间戳列表得出所述用户在当前小区下停留的时间,并采用插值算法估算所述用户的当前估计位置。
进一步地,所述序列匹配选择模块用于,通过以下方式选择与所述当前Cell-ID序列最匹配的Cell-ID历史序列:
将当前Cell-ID序列与存储的Cell-ID历史序列逐个进行比较,计算各Cell-ID历史序列的权值,并选择其中权值最大的作为最匹配的Cell-ID历史序列;
其中,在计算各Ce1l-ID历史序列的权值时,匹配的Cell-ID的权值大于不匹配的Cell-ID的权值。
进一步地,所述序列匹配选择模块用于,当权值最大的Cell-ID历史序列不止一个时,采用如下规则进行筛选最匹配的Cell-ID序列:
选择时间与当前Cell-ID序列最相近的Cell-ID历史序列;
选择长度最长的序列;
将当前序列的尾部与Cell-ID历史序列的头部进行匹配,预测下一个Cell-ID。
本发明提出一种综合GPS和Cell-ID(小区识别码)定位技术的Cell-ID辅助定位系统,该系统采用基站定位技术进行粗略的定位,并辅以GPS进行位置修正,其最大的创新之处在于,系统会记录走过的路径信息,即Cell-ID序列,并在下次出现相同序列段时进行匹配,以便能够预测行走路线,从而节约能耗。
具体实施方式
本实施方式提供一种无线移动终端的定位方法,采用如下方案:
依次将用户经过的小区的Cell-ID记录为Cell-ID历史序列并存储;
根据用户当前的Cell-ID序列,从存储的Cell-ID历史序列中选择最匹配的Cell-ID历史序列,并估算出所述用户的当前位置;
采用GPS对估算出的当前位置进行修正,得到用户的精确位置。
进一步地,当满足以下条件之一时,记录Cell-ID:
用户进入一个数据库中不存在的Cell-ID时;
或者,用户在当前的Cell中停留的时间超出预定的时限时。
进一步地,在记录Cell-ID时,打开GPS,记录GPS数据和Cell-ID数据。
进一步地,对于Cell-ID历史序列中的每个Cell-ID,分别维护一个位置与时间戳列表。
进一步地,将当前Cell-ID序列与存储的Cell-ID历史序列逐个进行比较,计算各Cell-ID序列的权值,并选择权值最大的序列作为最匹配的Cell-ID序列。
进一步地,当权值最大的Cell-ID历史序列不止一个时,采用如下规则进行筛选最匹配的Cell-ID序列:
选择时间与当前Cell-ID序列最相近的Cell-ID历史序列;
选择长度最长的序列;
将当前序列的尾部与数据库中序列的头部匹配,预测下一个Cell-ID。
进一步地,存储Cell-ID历史序列时,每个Cell-ID历史序列的长度阈值优选为大于等于5;且当前Cell-ID序列的长度优选为5。
进一步地,选择最匹配的Cell-ID历史序列后,采用插值算法估算所述用户的当前位置。
通过分析可知,上述方案主要有以下几个突出特点:
1)利用路径的重复性:每个人每天行走的路线基本上是相同的,因此经过的一些Cell-ID转换点(从一个Cell-ID的覆盖区域进入到另一个Cell-ID的覆盖区域的位置点)也是基本不变的。这些Cell-ID转换点就可以被用来唯一地表示在那些路线上的用户位置。基于这一包含GPS信息的路线历史,系统可以粗略地估算出用户的位置。
2)采用Cell-ID序列匹配:通过序列匹配技术来决定用户的位置,具体来说,是从用户历史记录中识别出与当前Cell-ID序列最匹配的历史序列。这个就需要将用户的位置固定在他以往所走的路线上,从而避免使用耗能的GPS。
3)利用GPS修正位置:系统通过学习和建立用户路线的历史记录为将来的应用打下基础。利用很少的资源系统就可以维护用户以往所走的路线数据库并在必要的时候触发GPS。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,Cell-ID辅助定位系统主要包含如下几个核心模块:序列学习模块,序列匹配选择模块,位置估计模块。
当探测到存取序列的数据库中没有关于用户当前所处Cell的足够多的信息时,序列学习模块将会启动,并利用检测到的Cell-ID序列填充本地数据库。
序列匹配选择模块将当前Cell-ID序列与数据库中的Cell-ID历史序列进行比对,计算数据库中各个Cell-ID历史序列的权值。权值的计算方法具体可以采用多种,只需匹配到的Cell-ID的权值大于不匹配的Cell-ID的权值即可。
例如,每个匹配的Cell-ID记权值1,每个没匹配到的Cell-ID记权值-0.5,假定匹配到的Cell-ID历史序列【1-2-3-4-5】,当前序列为【6-2-3-4-5】,则【2-3-4-5】匹配记4,6不匹配记-0.5,最终权值为3.5。
从匹配的序列中挑选出权值最大的序列,当权值最大的序列不只一个时,可依据时空一致性的原则选择最符合用户当前行进路线的序列。
位置估计模块,主要用于结合最匹配的Cell-ID序列采用插值算法估算用户的当前位置。
结合图1所示,本发明实施例的无线移动终端的定位流程包括如下主要步骤:
一)序列学习
Cell-ID辅助定位系统学习Cell-ID序列并将其储存至用于存放序列的数据库中,每一个Cell-ID序列实际代表用户的一条路线,如图2所示。对于序列中的每一个Cell-ID,系统维护一个<位置,时间戳>的列表,其中位置代表一个GPS数据,时间戳表示获取GPS读数的时间点。时间戳用于估计过去用户在当前Cell中经历的时间,同时也为位置插入做准备。
序列学习的触发条件有两个:当用户进入一个在数据库中不存在的Cell-ID的时候,或者当用户在当前的Cell中停留的时间远远超过以往访问时间时。如果两个条件中任意一个满足时,系统会打开GPS,记录GPS数据和Cell-ID数据。特别地,不论何时得到一个GPS读数,都将GPS读数记录到与当前Cell-ID对应的<位置,时间戳>元组到列表中,从而能够实现在一个Cell内精确定位。并且,为了增加Cell-Id序列的连贯性,不论何时Cell-ID发生变化,系统都将插入先前的Cell-ID到一个学习的Cell-ID序列,因为新的序列可能与原来序列存在重合的部分。
此外,当学习Cell-ID序列的长度超过了一个确定的阈值时,将这个序列插入到数据库中并开始一个新的学习Cell-ID序列。优选地,新的学习序列将前一个学习序列的最后4个Cell-ID提前装载进去,这样就保证了序列匹配的连续性。
举例来说,假定长度的阈值为10,而当前的学习序列为[1-2-3-4-5-6-7-8-9-10],则当遇到第11个Cell-ID时,系统将序列[1-2-3-4-5-6-7-8-9-10]插入到数据库中,同时开始一个新的序列[7-8-9-10-11]。如此以来,任一长度为5的[1-2-3-4-5-6-7-8-9-10]的子序列都可以不失连续性地与数据库进行完全地匹配。该算法具备很好的响应性,即当前历史可以被很快地记录到数据库中,因而可以很快地被使用。
在进行序列学习的过程中,系统采用与GPS关闭时相同的算法来估计用户的当前位置。当发现一个好的位置估计时,系统关闭GPS并终止序列学习。当手机或者GPS关闭了很长时间(例如20分钟),学习过程将以一个空的学习序列重新开始。
二)序列匹配
本实施例中,优选采用修正的Smith-Waterman算法进行序列匹配,但本发明方案并不局限于该算法。Smith-Waterman算法是一种成熟的算法,在生物信息中常用以决定两个核苷酸或者蛋白质序列之间相似的区域。采用该算法比对局部序列,不需要观察整个序列,通过比较所有可能序列片段,优化相似性度量。其运用动态规划保证局部最优化,提出一个得分系统计算匹配,不匹配,间隙的权重。Smith-Waterman算法的具体操作步骤可查阅http:∥www.ibm.com/developerworks/cn/java/j-seqalign/等相关资料。
本发明的优选方案中,对Smith-Waterman算法进行如下适应性修改:增加了一个限制来保证当前Cell-ID序列的最后一个Cell-ID必须在匹配的子集中,以保证匹配的语义正确性。具体地,有两个参数对于匹配算法是至关重要的,一个参数是当前序列的长度,经实验验证,序列长度为5时是一个较好的值;另一个参数是不匹配和间隙的权值,优选将其设为-0.5。图3示出了关于匹配序列权值计算的一个具体示例。
如图4所示,将不匹配和间隙的权值设置的低于匹配所贡献的正权值会得到较小的误差和GPS使用率。例如:当前序列为[1-2-3-4-5],与之匹配的序列[1-2-9-4-5]的得分为4-0.5=3.5,另一个序列[3-4-5]的得分为3,然后系统会选择前一个序列,这和我们预期的结果是吻合的,因为一般而言匹配的Cell-ID个数越多的序列应该是最优的序列。然而,当权值在-0.1和-0.9之间变化时结果是相近的,在这里我们使用-0.5不同于原始Smith-Waterman算法的-1。
三)序列选择
当序列匹配算法遍历了数据库中所有的序列后,系统会获得得分为正的多个匹配序列,接着选择得分最高的序列即可。
如果得分最高的序列不止一个,则可以采用下面的规则进一步筛选:
首先,基于用户的时间连续性,选择时间与当前序列相近的序列;
如果失败了,则选择最长的序列;
如果又失败了,则将当前序列的尾部与数据库中序列的头部匹配,由此系统可以预测下个Cell-ID;
例如,假设当前序列为[1-2-3-4-5],与之匹配的两条序列分别为[4-5-6-7-8],[6-7-2-3-8],通过计算它们的得分都为2。根据此条规则,系统将选择序列[4-5-6-7-8],而用户当前所在小区的Cell-ID为5,系统就预测用户将进入Cell-ID为6的小区。
其中最后一个规则可用于寻找在当前序列长度很短的情况下与之匹配的序列,这样的情况通常产生于下面的场景中,例如手机在关闭后刚刚打开、用户刚刚走出一个GPS信号不可达的区域。此时,如果上述的规则都不适用,则系统优优先选择较新的序列;如果没有匹配的序列,系统无法估计位置,则可以打开GPS获取当前位置。
四)位置估计
在选择了最匹配的序列后,Cell-ID辅助定位系统使用时间插值方法估计位置。特别地,给定选择的序列和用户在当前Cell-ID停留的时间,系统利用相关GPS点的历史记录估计当前的位置。
图5所示为位置估计流程的一个具体示例。在图5中,六边形表示Cell-ID的边界,实心圆表示序列[3-1-2-4]中Cell-ID转换点,以Cell-ID转换点为时间基准开始间歇读取GPS数据,空心圆表示与其所在Cell有关的附加的GPS点。假定用户当前的位置(用交叉标记)在2号Cell-ID中,他当前的序列为[3-1-2]。同样假定系统从数据库中选择的序列为[3-1-2-4]。现在,如果经过了Δt时间,用户进入当前Cell-ID的时间在两个测量点t2,3,t2,4之间即(t2,3-t2,1)≥Δt≥(t2,4-t2,1),然后系统进行插值运算:
其中,如果停留在当前Cell-ID的时间远远超过了历史记录中离开此Cell-ID经过的时间,系统会打开GPS。用户的行为偏离了历史,系统就可以通过这种操作学习新行为来找到更好的匹配序列。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。