更新指纹库的方法及装置与流程

文档序号:11389174阅读:287来源:国知局
更新指纹库的方法及装置与流程

本申请涉及室内定位技术领域,尤其涉及一种更新指纹库的方法及装置。



背景技术:

指纹定位是目前比较常见的一种室内定位技术,利用指纹库中保存的各指纹点的定位信息(如wifi信息、蓝牙信息、地磁信息等)实现对移动设备的室内定位。该指纹定位依赖于指纹库中稳定的各指纹点的定位信息。而一般商场等室内环境由于各种原因会导致定位信息变化,尤其是wifi信息变化较快wifi信息的变化,例如,商场中某一指纹点对应的位置变换了商家从而导致该指纹点对应的wifi信息发生变化,或者由于商家更换了路由器从而导致该指纹点对应的wifi信息发生变化等。若不及时更新指纹库中指纹点的定位信息将会导致根据该指纹库对移动设备进行室内定位失败或错误的问题。

目前,对于如何更新指纹库,还没有提出一种能够实时准确的方式,因此如何实现实时准确的更新指纹库则成为行业亟待解决问题。



技术实现要素:

本申请解决的技术问题之一是提供一种更新指纹库的方法及装置,实现实时、准确的更新指纹库。

根据本申请一方面的一个实施例,提供了一种更新指纹库的方法,包括:

获取移动设备在各个步点的扫描信息,所述扫描信息包括:步点扫描时间、方向及在步点扫描到的定位信息;

根据各步点的扫描时间及方向将所述步点连接成所述移动设备的移动 轨迹;

对所述移动轨迹进行分割及过滤,得到扫描轨迹;

从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据获取的指纹点生成与所述扫描轨迹匹配的匹配轨迹;

利用所述扫描轨迹上的步点对应的定位信息更新与该扫描轨迹匹配的所述匹配轨迹上相应指纹点的定位信息。

根据本申请另一方面的一个实施例,提供了一种更新指纹库的装置,包括:

获取单元,用于获取移动设备在各个步点的扫描信息,所述扫描信息包括:步点扫描时间、方向及在步点扫描到的定位信息;

移动轨迹确定单元,用于根据各步点的扫描时间及方向将所述步点连接成所述移动设备的移动轨迹;

分割过滤单元,用于对所述移动轨迹进行分割及过滤,得到扫描轨迹;

匹配单元,用于从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据获取的指纹点生成与所述扫描轨迹匹配的匹配轨迹;

更新单元,用于利用所述扫描轨迹上的步点对应的定位信息更新与该扫描轨迹匹配的所述匹配轨迹上相应指纹点的定位信息。

本申请实施例,在获取到移动设备在各个步点的扫描信息之后,并不是孤立的直接根据各个步点的定位信息分别来更新指纹库中与各步点匹配的指纹点的定位信息,因为某些步点可能由于一些环境影响使得该步点的定位信息准确性较差,若直接根据这些步点的定位信息来更新指纹库中相应指纹点的定位信息是不准确的;而是首先根据各步点的扫描时间及方向将各步点连接成移动设备的移动轨迹,并将该移动轨迹分割过滤得到扫描轨迹,再根据扫描轨迹上的步点得到指纹库中与步点匹配的指纹点,并根据与各步点匹配的指纹点生成与扫描轨迹匹配的匹配轨迹,再利用扫描轨迹上的步点的定位信息更新指纹库中与步点相匹配的指纹点的定位信息;即本申请技术方案考虑了相邻步点之间的前后关联关系,并且只有将扫描轨迹上所有步点作为整体来从指纹库中找到各步点对应的指纹点构成的轨迹匹配时,才会根据该扫描轨迹上的步点的定 位信息更新匹配轨迹上相应指纹点的定位信息,因为扫描轨迹作为整体能够从指纹库中找到与其匹配的匹配轨迹说明扫描轨迹上的步点的定位信息是较为准确的,从而使得根据扫描轨迹上的步点的定位信息更新指纹库更准确,解决了单步点确定对应指纹点所存在的不准确的问题,从而提高了根据步点的定位信息更新指纹点的定位信息的准确性。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请一个实施例的更新指纹库的方法的流程图。

图2是根据本申请一个实施例的改变角度示意图。

图3是根据本申请一个实施例的进一步分割折线的示意图。

图4是根据本申请又一个实施例的进一步分割折线的示意图。

图5是根据本申请一个实施例的生成匹配轨迹的方法的流程图。

图6是根据本申请一个实施例的从预置指纹库中获取与扫描轨迹匹配的候选匹配轨迹的示意图。

图7是根据本申请一个实施例的更新指纹库的装置的结构示意图。

本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处 理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元 时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

指纹库中保存有指纹点位置以及指纹点位置对应的定位信息的关联关系。指纹库可以包括wifi指纹库、蓝牙指纹库、基站指纹库、地磁指纹库等,例如:wifi指纹库中存储有指纹点位置以及指纹点位置对应的wifi信息的关联关系;蓝牙指纹库中存储有指纹点位置以及指纹点位置对应的蓝牙信息的关联关系。指纹库还可以是保存有指纹点位置以及指纹点位置对应的以下至少一种定位信息:wifi信息、蓝牙信息、基站信息、地磁信息等。

下面结合附图对本申请的技术方案作进一步详细描述。

图1是根据本申请一个实施例的更新指纹库的方法的流程图,该方法主要包括如下步骤:

s110、获取移动设备在各个步点的扫描信息,所述扫描信息包括:步点扫描时间、方向及在步点扫描到的定位信息;

s120、根据各步点的扫描时间及方向将所述步点连接成所述移动设备的移动轨迹;

s130、对所述移动轨迹进行分割及过滤,得到扫描轨迹;

s140、从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据获取的指纹点生成与所述扫描轨迹匹配的匹配轨迹;

s150、利用所述扫描轨迹上的步点对应的定位信息更新与该扫描轨迹匹配的所述匹配轨迹上相应指纹点的定位信息。

下面对上述各步骤作进一步详细介绍。

步骤s110所述的步点可以是预置的执行扫描定位信息的位置点,也可以是移动设备在预置时间范围内在移动过程中每隔一个预置的时间间隔进行一次定位信息扫描的位置点。移动设备在各个步点进行一次定位信息扫描,将扫描信息按照扫描时间的先后顺序依次存储。

移动设备在各个步点的扫描信息包括:步点扫描时间、方向及在步点扫描到的定位信息,步点扫描时间是指移动设备在步点进行定位信息扫描时的系统时间,方向是指做定位信息扫描时移动设备内置传感器指示的移动方向。

优选地,为进一步提高移动轨迹的准确性,对于不同楼层,将同一楼层的步点构成一条移动设备在该楼层的移动轨迹。因此,本申请实施例还可在前述s110和s120之间执行以下步骤:根据各步点的定位信息确定各步点对应的楼层信息;此时s120中具体为:将位于同一楼层的步点按照扫描时间及方向连接成所述移动设备的移动轨迹。即s120得到至少一条移动轨迹,一条移动轨迹对应一个楼层。本申请实施例中预先存储有各个楼层对应的定位信息,例如:假设定位信息为wifi信息,则预先存储有各楼层对应的ap名称或ap的mac信息;假设定位信息为蓝牙信息,则原先存储有各个楼层对应的蓝牙设备的mac信息。

所述wifi信息包括ap名称,则根据定位信息确定各步点对应的楼层信息可包括如下操作:

首先,将步点对应的定位信息中的ap名称分别与预置的每个楼层包含的ap名称比对。

之后,将包含的ap名称与所述步点对应的ap名称相同数量最多的楼层确定为所述步点所在的楼层。

例如,假设移动设备进行定位信息扫描的建筑物包括两个楼层,其中某一个步点对应的ap名称包括:ap2和ap4,假设一层包含的ap名称为ap1、ap2、ap3、ap4;二层包含的ap名称包括:ap5、ap6、ap7。通过将该步点对应的ap名称分别与两个楼层的ap比对,发现其与一层所包含的ap相同的数量为2个,与二层所包含的ap相同的数量为0,则可确定该步点对应的楼层为一层。按照此方法可确定所有步点所在的楼层,同时也就确定了每个楼层所包含的步点。

步骤s120中在将各步点连接成移动轨迹时,根据各步点的扫描时间可确定扫描各步点的前后顺序,根据各步点的方向可确定各步点之间的相对位置关系,根据预置的步长将所述多个步点连接成所述移动设备的移动轨迹。其中所述相邻步点之间的步长可以是预置的一个固定长度值,即所有相邻步点之间的长度一致;相邻步点之间的步长还可以是根据该相邻步点的扫描时间的时间间隔和预置的移动设备移动速度的乘积,即各相邻步点之间的长度可以一致也可以不一致。

若移动轨迹过长,则很难获得与该移动轨迹匹配的匹配轨迹,因此,通过步骤s130可将移动轨迹分割为多段分割轨迹,以便与指纹库中的轨迹匹配。

本申请实施例提供的对所述移动轨迹进行分割及过滤,得到扫描轨迹的方法包括如下子步骤:

子步骤1301、确定所述移动轨迹的初步分割点;

其中,确定移动轨迹的初步分割点的一种实施例包括:

步骤a1、依次计算移动轨迹上相邻两个步点之间的时间间隔;

步骤a2、将时间间隔大于等于预置时长阈值的相邻步点中的前一个步点作为初步分割点;和/或

步骤a3、依次判断移动轨迹上的步点是否为往返点,将是往返点的步点作为初步分割点。

其中步骤a2和步骤a3的先后执行顺序没有严格要求。

其中步骤a2中,若时间间隔大于等于预置时长阈值的相邻步点中的前一个步点是移动轨迹上的首点,则对该相邻步点不做前述的将时间间隔大于 等于预置时长阈值的相邻步点中的前一个步点作为初步分割点的步骤。

前述步骤a2可以是从移动轨迹的首步点开始依次往后进行初步分割点的判断,也可以是从移动轨迹的尾步点开始依次往前进行初步分割点的判断,本申请不做严格限定。

由于步骤s110中可以获取各步点的扫描时间,从而可确定移动轨迹上相邻两个步点之间的时间间隔,如果相邻两个步点之间的时间间隔大于等于预置时长阈值,例如,达到3秒,则有可能移动设备在两个步点间存在信号中断情况,该相邻的两个步点为非连续的点,因此将该两相邻步点中的前一步点作为初步分割点。

本申请实施例将移动方向发生改变,且改变角度大于等于预设第一角度阈值的点称为往返点。所述改变角度可如图2中所示,当前步点为c,与该步点c相邻的前两个步点为a和b,图2中线段ab及bc之间的箭头表示移动方向,则该步点c的移动方向为步点b指向与步点c的方向,改变角度为∠n。若∠n大于等于预设第一角度阈值,则确定该步点c为往返点。例如,第一角度阈值为120°,若∠n大于等于120°,则步点c即为一个往返点,可将该步点c作为一个初步分割点。

另外,本申请实施例将改变角度大于等于预设第二角度阈值(其中第二角度阈值小于第一角度阈值),而小于所述预设第一角度阈值的步点视为折点,例如,第二角度阈值为60°,第一角度阈值为120°,则若∠n大于等于60°而小于120°,则步点c为一个折点。若∠n小于60°,则认为步点c与步点a和步点b在一条直线上。

子步骤1302、将所述移动轨迹从所述初步分割点进行初步分割,得到初步分割后的直线分割轨迹及折线分割轨迹。

初步分割后可能得到直线分割轨迹和/或包含至少一个折点的折线分割轨迹。移动轨迹经过初步分割得到的直线分割轨迹及折线分割轨迹的长度会更趋向于合理性,因此能够在一定程度上提高了得到匹配轨迹的成功率。

本申请另一实施例为进一步降低得到移动轨迹的匹配轨迹的难度,优选地,本申请实施例在前述子步骤对1302之后,针对初步分割后得到 的直线分割轨迹和/或折线分割轨迹做进一步分割。

其中,针对初步分割后的折线分割轨迹进行如下处理:

判断折线分割轨迹包含的折点数量;

其中,若折线分割轨迹仅包含一个折点,则:判断所述折线分割轨迹在折点之前和之后所包含的步点数量是否均位于预置的数量范围内,例如是否大于5个而小于15个;若是则将该折线分割轨迹作为扫描轨迹,若否则删除该折线分割轨迹;

若所述折线分割轨迹包含至少两个折点,则:将所述折线分割轨迹分割成如下扫描轨迹:包含的步点数量大于等于预置的第一数量阈值的直线分割轨迹,和/或仅包含一个折点且折点前后所包含的步点均位于预置的数量范围内的折线分割轨迹,其中,所述第一数量阈值例如可以为30个。

针对初步分割后的直线分割轨迹进行如下处理:

判断所述直线分割轨迹包含的步点数量是否小于预置的第一数量阈值,若是则删除该直线分割轨迹,若否则将该直线分割轨迹作为扫描轨迹。

下面以图3及图4中所示的两段折线分割轨迹的进一步分割过程为例,介绍下针对初步分割后的、包含至少两个折点的折线分割轨迹的进一步分割过程。

图3中所示为包含两个折点的一段折线分割轨迹abcd,图3中仅示出起点a,折点b,c,以及终点d,中间的步点未示出。对该段折线分割轨迹进行分割的过程为:以步点a为起点,该步点a距离相邻的折点b之间包含的步点个数为20个,由于小于第一数量阈值30个,因此ab段不能作为直线分割轨迹;步点b距离相邻的下一折点间包含的步点个数为10个,大于第二数量阈值5个,而小于第三数量阈值15个,因此,此处可分割得到一折线,由于折点b前到起点a包含的步点个数大于第三个数阈值15,则从折点b向前保留15个步点,从第15个步点a’处分割开。由于折线分割轨迹只能包含一个折点,则将作为下一折点的步点c作为分割点,从步点c处分割开,步点c与步点d间包含的步点个数为25个小于第一数量阈值30个。因此,该段移动轨迹经分割得到直线分割轨迹aa’,折线分割轨迹a’bc,直线分割轨迹cd。由于直线 分割轨迹aa’包含的步点数少于第一数量阈值,因此删除直线分割轨迹aa’;折线a’bc仅包含一个折点b且折点b前后包含的步点数均位于预置的数量范围内,因此保留折线分割轨迹a’bc;直线分割轨迹cd包含的步点数少于第一数量阈值,因此删除直线分割轨迹cd。因此综上所述将图3所示的折现分割轨迹abcd进行二次分割之后得到折线分割轨迹a’bc。

图4中所示为一段包含3个折点的折线分割轨迹abcde,其中a为起点,e为终点,b、c、d为折点,对该段折线分割轨迹作进一步分割过程为:以步点a为起点,步点a距离最近的折点b间包含的步点个数为35大于第一数量阈值30,因此将步点b作为分割点,得到一条直线分割轨迹ab;步点b距离最近的折点c间包含的步点个数为4,小于第二数量阈值5个,bc段不满足折线条件,则将步点c作为一个分割点。步点c距离最近的折点d间包含的步点个数为14,大于第二个数阈值5个,而小于第三个数阈值15个,满足折线条件。步点d距离步点e间包含的步点个数为32,大于第三数量阈值15,则从步点d向后保留15个步点,从第15个步点e’开始分割,得到折线分割轨迹cde’;该段折线分割轨迹经分割后得到:直线分割轨迹ab,直线分割轨迹bc,折线分割轨迹cde’及直线分割轨迹e’e。直线分割轨迹bc包含的步点个数为4个,小于第一数量阈值30个,因此将直线分割轨迹bc删除;折线分割轨迹cde’仅包含一个折点d,且折点d前后包含的步点数量均在数量范围内,因此保留折线分割轨迹cde’;直线分割轨迹e’e包含的步点数为17个小于第一数量阈值30,因此将直线分割轨迹e’e删除。综上所述,将折线分割轨迹进行二次分割后得到直线分割轨迹ab和折线分割轨迹cde’。

另外,需要说明的是,实际轨迹分割过程中也可以不采用上述初步分割及进一步分割的过程,而是从移动轨迹的起点开始,按照移动轨迹中各步点的扫描时间先后顺序将移动轨迹分割为:包含的步点数量大于等于预置的第一数量阈值的直线分割轨迹,和/或仅包含一个折点且折点前后所包含的步点均位于预置的数量范围内的折线分割轨迹。并在分割过程中,将满足上述条件的初步分割点作为一个分割点,同样可将移动 轨迹分割为直线分割轨迹及折线分割轨迹。

通过上述轨迹分割及过滤操作后可得到多条扫描轨迹,针对每条扫描轨迹,从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据该指纹点生成与该扫描轨迹匹配的匹配轨迹。可以理解的是,若获取匹配轨迹失败,则说明指纹库中不存在与该扫描轨迹匹配的匹配轨迹,则可丢弃该扫描轨迹;若能够获取与其匹配的匹配轨迹,则可执行根据扫描轨迹上的步点的定位信息更新匹配轨迹上相应指纹点的定位信息的操作。

步骤s140所述从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据获取的指纹点生成与所述扫描轨迹匹配的匹配轨迹的方法如图5中所示,包括如下子步骤:

子步骤1401、从所述扫描轨迹上选取一个步点作为参考点,根据该参考点的定位信息以及指纹库中的指纹点对应的定位信息,从指纹库中确定出与所述参考点匹配的至少一个指纹点;

其中,从所述扫描轨迹上选取一个步点作为参考点时,可以选择该扫描轨迹上的任意点,例如首点、尾点或中间的任意点。

所述根据该参考点的定位信息以及指纹库中的指纹点对应的定位信息,从指纹库中确定出与所述参考点匹配的至少一个指纹点,具体包括:

将参考点的定位信息分别与指纹库中的各个指纹点对应的定位信息进行相似度计算,将相似度大于等于预置相似度阈值的指纹点确定为与所述参考点匹配的指纹点。以所述定位信息为wifi信息为例,所述相似度计算方法为:在该wifi信息中包含至少一个ap名称,则针对指纹库中的每个指纹点,将所述参考点的ap名称与该指纹点对应的ap名称进行比对,确定出参考点与该指纹点具有相同ap名称的个数;将相同ap名称的个数与参考点包含的ap名称个数的比值确定为参考点的定位信息与该指纹点的定位信息的相似度,将该相似度大于等于预置相似度阈值的指纹点确定为与该参考点匹配的指纹点。所述预置相似度阈值例如可以为0.5。

例如,一条扫描轨迹s,包含i个步点分别为:s0、s1、s2、s3...si。以该扫描轨迹s上的第一步点s0作为参考点,从指纹库的指纹点中确定 出与该参考点s0匹配的所有指纹点。该参考点s0对应的ap包括:ap1、ap2、ap3、ap4、ap5,匹配方法为:在指纹库中确定出每个指纹点对应的ap与s0对应的ap相同的个数,再确定出每个指纹点对应的ap与s0对应的ap相同的个数与s0对应的ap个数的比值,如果该比值大于预设比值阈值0.5,则将该指纹点确定为与该参考点s0匹配的指纹点。例如,指纹库中一个指纹点c0对应的ap包括:ap1、ap2、ap3、ap6、ap7,其与s0对应的ap相同的个数为3,s0对应的ap个数为5,该比值3/5=0.6大于预设比值阈值0.5,则将c0作为与该参考点s0匹配的指纹点,按照此方法可在指纹库中找出与该参考点s0匹配的所有指纹点,假设确定出的与该参考点s0匹配的所有指纹点为:c0、c1、c2、c3、c4、...cm,共m个指纹点。

子步骤1402、针对与所述参考点匹配的每一个指纹点,根据该指纹点的位置、扫描轨迹上相邻步点的扫描时间的时间间隔和方向、指纹库中的指纹点的位置,从指纹库中确定出与扫描轨迹上除参考点之外的其他步点匹配的指纹点,并根据确定出的指纹点以及与所述参考点匹配的指纹点生成候选匹配轨迹;

实现子步骤1402的其中一个具体实施例,可以为:

以与所述参考点匹配的指纹点作为当前指纹点,对当前指纹点执行以下步骤;

以当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向前/后一步点的方向画线段;将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点对应的步点相邻的前/后一步点匹配的指纹点;以与该前/后一步点匹配的指纹点作为当前指纹点重复前述步骤,直到得到与扫描轨迹上所有步点匹配的指纹点。

例如,若当前指纹点对应的步点为扫描轨迹的首点,则执行以下步骤b1:

步骤b1:以该当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向下一步点的方向画线段;将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点匹配的步点相邻的下一步点匹配的指 纹点;且以与该下一步点匹配的指纹点作为当前指纹点重复前述步骤直到得到与扫描轨迹上所有步点匹配的指纹点。

若当前指纹点对应的步点为扫描轨迹的尾点,则执行以下步骤b2:

步骤b2:以该当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向前一步点的方向画线段;将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点匹配的步点相邻的前一步点匹配的指纹点;且以与该前一步点匹配的指纹点作为当前指纹点重复前述步骤直到得到与扫描轨迹上所有步点匹配的指纹点。

若当前指纹点对应的步点为扫描轨迹的非首尾点,则执行以下步骤b3-步骤b4:

步骤b3:以该当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向下一步点的方向画线段,将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点匹配的步点相邻的前一步点匹配的指纹点,且以该与前一步点匹配的指纹点作为当前指纹点重复前述步骤,直到确定出与扫描轨迹上的尾点匹配的指纹点;

步骤b4、以该当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向下一步点的方向画线段,将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点匹配的步点相邻的下一步点匹配的指纹点,且以该与下一步点匹配的指纹点作为当前指纹点重复前述步骤,直到确定出与扫描轨迹上首点匹配的指纹点。

所述预置步长可以为0.6m。如图6中所示,为指纹库中的指纹点,其中,扫描轨迹为s,包含的步点为:s0、s1、s2、s3...si,图中仅示例性的显示部分步点,按照上述方法确定的与该s上的首点s0匹配的指纹点包括:c0、c1、c2、c3、c4、...cm,共m个指纹点。假如以指纹点c0作为当前指纹点,则按照s上s1相对s0的方向,以预置步长0.6m递推,也就是以c0为起点画一条长度为0.6m、与s0s1平行的线段,线段的另一端点c1’即为递推后的点,再从指纹库中获取与递推后的点c1’距离最近的指纹点c1”作为确定出的与s0相邻的步点s1匹配的指纹点。

按照上述逐步递推过程可确定出以c0为当前指纹点时,与扫描轨迹 s上每个步点匹配的指纹点,如图6中的c2”、c3”...ci”,根据确定的所有指纹点生成候选匹配轨迹s1。同理,可确定出分别以c1、c2、c3、c4、...cm为当前指纹点时与扫描轨迹s上每个步点匹配的指纹点。最终可得到m条与s匹配的候选匹配轨迹,包括:s1、s2、s3、...sm,图6中仅示出其中一条。

子步骤1403、分别计算各候选匹配轨迹与所述扫描轨迹的相似度值;

所述定位信息包括信号强度值;所述分别计算各候选匹配轨迹与所述扫描轨迹的相似度值,具体包括步骤c1-步骤c3:

步骤c1、针对每一条候选匹配轨迹,根据候选匹配轨迹中的指纹点的信号强度值和位置信息,利用皮尔森相关系数计算算法,分别计算该候选匹配轨迹与所述扫描轨迹的位移相似度值和信号强度相似度值;

步骤c2、将候选匹配轨迹与所述扫描轨迹的位移相似度值和信号强度相似度值的和值,确定为所述候选匹配轨迹与所述扫描轨迹的相似度。

步骤c1中,可以利用皮尔森相关系数分别计算各候选匹配轨迹与扫描轨迹的位移相似度值,具体计算方法包括:

pearsoncorr=pearsoncorrx+pearsoncorry(1)

前述公式(1)中,pearsoncorr表示候选匹配轨迹与扫描轨迹的位移相似度,pearsoncorrx为候选匹配轨迹与扫描轨迹在x轴上的位移相似度,pearsoncorry为候选匹配轨迹与扫描轨迹在y轴上的位移相似度。

前述公式(2)中,i为扫描轨迹上包含的步点总数量,x1i表示扫描轨迹上第i个相邻步点(即第i-1个步点与第i个步点)之间的步长在x轴方向上的位移,x2i表示候选匹配轨迹上与第一个相邻步点对应的两个相邻指纹点(即第i-1个指纹点与第i个指纹点)之间的步长在x轴方向上的位移;avex1为扫描轨迹包含的所有相邻步点之间的步长在x轴方向上的位移的平均值,avex2为候选匹配轨迹包含的所有相邻指纹点之间的步长在x轴方 向上的位移的平均值;stdx1为扫描轨迹上包含的所有相邻步点之间的步长在x轴方向上的位移的标准差值,stdx2为候选匹配轨迹上包含的所有相邻指纹点之间的步长在x轴方向上的位移的标准差值。

前述公式(3)中,i为扫描轨迹上包含的步点总数量,y1i表示扫描轨迹上第i个相邻步点(即第i-1个步点与第i个步点)之间的步长在y轴方向上的位移,y2i表示候选匹配轨迹上与第一个相邻步点对应的两个相邻指纹点(即第i-1个指纹点与第i个指纹点)之间的步长在y轴方向上的位移;avey1为扫描轨迹包含的所有相邻步点之间的步长在y轴方向上的位移的平均值,avey2为候选匹配轨迹包含的所有相邻指纹点之间的步长在y轴方向上的位移的平均值;stdy1为扫描轨迹上包含的所有相邻步点之间的步长在y轴方向上的位移的标准差值,stdy2为候选匹配轨迹上包含的所有相邻指纹点之间的步长在y轴方向上的位移的标准差值。

步骤c1中,可以利用皮尔森相关系数分别计算各候选匹配轨迹与扫描轨迹的信号强度相似度值,具体计算方法包括:

前述公式(4)中,pearsoncorrk表示候选匹配轨迹与扫描轨迹的信号强度相似度值,i为扫描轨迹上包含的步点总数量,k1i表示扫描轨迹上第i个相邻步点(即第i-1个步点与第i个步点)之间信号强度的差值,k2i表示候选匹配轨迹上与所述相邻步长对应的两个相邻指纹点(即第i-1个指纹点与第i个指纹点)之间的信号强度的差值;avek1为扫描轨迹包含的所有相邻步点之间的信号强度差值的平均值,avek2为候选匹配轨迹包含的所有相邻指纹点之间的信号强度差值的平均值;stdk1为扫描轨迹上包含的所有相邻步点之间的信号强度差值的标准差值,stdk2为候选匹配轨迹上包含的所有相邻指纹点之间的信号强度差值的标准差值。

子步骤1404、选择相似度值最大,且满足预设相似度阈值的候选匹 配轨迹作为与所述扫描轨迹匹配的匹配轨迹。

子步骤1404具体包括:从候选匹配轨迹中选取位移相似度值大于等于位移相似度阈值以及信号强度相似度值大于等于信号强度相似度阈值的候选匹配轨迹作为待定匹配轨迹;将与所述扫描轨迹的相似度最大的待定匹配轨迹作为与所述扫描轨迹匹配的匹配轨迹。

由于候选匹配轨迹可能存在多条,例如上面实例中存在m条,则需要从中选择一条作为最终的匹配轨迹,具体选择方法为:

首先,从所述候选匹配轨迹中提取出位移相似度值达到位移相似度阈值及信号强度相似度值达到信号强度相似度阈值的候选匹配轨迹作为待定匹配轨迹。

也就是,本申请实施例设置有位移相似度阈值及信号强度相似度阈值,针对一条候选匹配轨迹s1,可分别得到位移相似度值和在信号强度相似度值,若位移相似度值和信号强度相似度值中任一个不满足对应的阈值,则可丢弃该s1,从而可从上述得到的候选匹配轨迹中提取出待定匹配轨迹,假如从s1、s2、s3、...及sm中提取的待定匹配轨迹包括:s1、s2、s4、s5。

之后,从所述待定匹配轨迹中选择位移相似度值与信号强度相似度值的和值最大的待定匹配轨迹作为与所述扫描轨迹匹配的匹配轨迹。

假设s1的位移相似度值与信号强度相似度值的和值最大,则将s1作为与s匹配的匹配轨迹。

按照上述操作方法可确定出每条扫描轨迹的匹配轨迹。在确定出与扫描轨迹匹配的匹配轨迹后,即可以该扫描轨迹对指纹库中的匹配轨迹进行更新。

步骤s150即为指纹库的更新操作,即,利用所述扫描轨迹上的步点对应的定位信息更新与该扫描轨迹匹配的匹配轨迹上相应指纹点的定位信息,例如利用扫描轨迹上步点对应的wifi信息更新与该扫描轨迹匹配的述匹配轨迹上对应指纹点的wifi信息。由于所述wifi信息包括ap名称及ap信号强度值,则利用所述扫描轨迹上的步点对应的wifi信息更新所述匹配轨迹上对应指纹点的wifi信息包括:利用扫描轨迹上的步点的ap 名称及ap信号强度值更新所述匹配轨迹上对应指纹点的ap名称及ap信号强度值。其中ap信号强度值的更新具体为:以所述扫描轨迹上的步点对应的ap信号强度值与所述匹配轨迹上对应指纹点的ap信号强度值的平均值作为更新后的所述匹配轨迹上对应指纹点的ap信号强度值。

以扫描轨迹s上的步点的wifi信息更新匹配轨迹s1上对应指纹点的wifi信息为例。s上的s0点与s1上的c0点对应,s0对应的ap包括:ap1、ap2、ap3、ap4、ap5,c0对应的ap包括:ap1、ap2、ap3、ap6、ap7;则以s0点的ap名称更新c0点的ap名称,更新后的c0点的ap为:ap1、ap2、ap3、ap4、ap5。更新后的ap1的信号强度值为s0点扫描的ap1的信号强度值与更新前c0点的ap1信号强度值的平均值,针对ap4及ap5,由于更新前c0点并不包含该两个ap,因此更新后的ap4及ap5的信号强度值即为s0扫描的ap4及ap5的信号强度值。

本申请实施例还提供一种与上述更新指纹库的方法对应的更新指纹库的装置,如图7中所示为所述装置结构示意图,该装置主要包括如下单元:

获取单元710,用于获取移动设备在各个步点的扫描信息,所述扫描信息包括:步点扫描时间、方向及在步点扫描到的定位信息;

移动轨迹确定单元720,用于根据各步点的扫描时间及方向将所述步点连接成所述移动设备的移动轨迹;

分割过滤单元730,用于对所述移动轨迹进行分割及过滤,得到扫描轨迹;

匹配单元740,用于从预置的指纹库中获取与所述扫描轨迹上的步点匹配的指纹点,根据获取的指纹点生成与所述扫描轨迹匹配的匹配轨迹;

更新单元750,用于利用所述扫描轨迹上的步点对应的定位信息更新与该扫描轨迹匹配的所述匹配轨迹上相应指纹点的定位信息。

所述装置还包括:

楼层信息确定单元760,用于根据各步点的定位信息确定各步点对应的 楼层信息;

所述移动轨迹确定单元720被配置为:将位于同一楼层的步点按照扫描时间及方向连接成所述移动设备的移动轨迹。

所述分割过滤单元730被配置为:

分割点确定子单元,用于确定所述移动轨迹的初步分割点;

第一分割子单元,用于将所述移动轨迹从所述初步分割点进行初步分割,得到初步分割后的直线分割轨迹及折线分割轨迹。

针对初步分割后的折线分割轨迹,所述分割过滤单元730还被配置为:

第二分割子单元,用于针对第一分割子单元分割得到的折线分割轨迹:若所述折线分割轨迹仅包含一个折点,则:判断所述折线分割轨迹在折点之前和之后所包含的步点数量是否均位于预置的数量范围内,若是则将该折线分割轨迹作为扫描轨迹,若否则删除该折线分割轨迹;以及若所述折线分割轨迹包含至少两个折点,则:将所述折线分割轨迹分割成如下扫描轨迹:包含的步点数量大于等于预置的第一数量阈值的直线分割轨迹,和/或仅包含一个折点且折点前后所包含的步点均位于预置数量范围内的折线分割轨迹。

针对直线分割轨迹,所述分割过滤单元730还被配置为:

过滤子单元,用于针对直线分割轨迹,判断所述直线分割轨迹包含的步点数量是否小于预置的第一数量阈值,若是则删除该直线分割轨迹,若否则将该直线分割轨迹作为扫描轨迹。

分割点确定子单元被配置为:

依次计算移动轨迹上相邻两个步点之间的时间间隔;

将时间间隔大于等于预置时长阈值的相邻步点中的前一个步点作为初步分割点;和/或,

依次判断移动轨迹上的步点是否为往返点,将是往返点的步点作为初步分割点。

所述匹配单元740被配置为:

从所述扫描轨迹上选取一个步点作为参考点,根据该参考点的定位信息以及指纹库中的指纹点对应的定位信息,从指纹库中确定出与所述参考点匹配的至少一个指纹点;

针对与所述参考点匹配的每一个指纹点,根据该指纹点的位置、扫描轨迹上相邻步点的扫描时间的时间间隔和方向、指纹库中的指纹点的位置,从指纹库中确定出与扫描轨迹上除参考点之外的其他步点匹配的指纹点,并根据确定出的指纹点以及与所述参考点匹配的指纹点生成候选匹配轨迹;

分别计算各候选匹配轨迹与所述扫描轨迹的相似度值;

选择相似度值最大,且满足预设相似度阈值的候选匹配轨迹作为与所述扫描轨迹匹配的匹配轨迹。

匹配单元740根据该参考点的定位信息以及指纹库中的指纹点对应的定位信息,从指纹库中确定出与所述参考点匹配的至少一个指纹点,具体包括:

将参考点的定位信息分别与指纹库中的各个指纹点对应的定位信息进行相似度计算,将相似度大于等于预置相似度阈值的指纹点确定为与所述参考点匹配的指纹点。

所述定位信息为wifi信息,且wifi信息中包含至少一个ap名称;

匹配单元740将参考点的定位信息分别与指纹库中的各个指纹点对应的定位信息进行相似度计算,具体包括:

针对指纹库中的每个指纹点,将所述参考点的ap名称与该指纹点对应的ap名称进行比对,确定出参考点与该指纹点具有相同ap名称的个数;

将相同ap名称的个数与参考点包含的ap名称个数的比值确定为参考点的定位信息与该指纹点的定位信息的相似度。

匹配单元740针对与所述参考点匹配的每一个指纹点,根据该指纹点的位置、扫描轨迹上相邻步点的扫描时间的时间间隔和方向、指纹库中的指纹点的位置,从指纹库中确定出与扫描轨迹上除参考点之外的其他步点匹配的指纹点,具体包括:

以与所述参考点匹配的指纹点作为当前指纹点,对当前指纹点执行以下步骤;

以当前指纹点为起点、以预置步长沿着与当前指纹点匹配的步点指向前/后一步点的方向画线段,将指纹库中与该线段的终点最近的指纹点确定为与所述当前指纹点对应的步点相邻的前/后一步点匹配的指纹点;以与该前/后一步点匹配的指纹点作为当前指纹点重复前述步骤,直到得到与扫描轨迹上 所有步点匹配的指纹点。

所述定位信息包括信号强度值;匹配单元740分别计算各候选匹配轨迹与所述扫描轨迹的相似度值,具体包括:

针对每一条候选匹配轨迹,根据候选匹配轨迹中的指纹点的信号强度值和位置信息,利用皮尔森相关系数计算算法,分别计算该候选匹配轨迹与所述扫描轨迹的位移相似度值和信号强度相似度值;

将候选匹配轨迹与所述扫描轨迹的位移相似度值和信号强度相似度值的和值,确定为所述候选匹配轨迹与所述扫描轨迹的相似度。

匹配单元740选择相似度值最大,且满足预设相似度阈值的候选匹配轨迹作为与所述扫描轨迹匹配的匹配轨迹包括:

从候选匹配轨迹中选取位移相似度值大于等于位移相似度阈值以及信号强度相似度值大于等于信号强度相似度阈值的候选匹配轨迹作为待定匹配轨迹;

将与所述扫描轨迹的相似度最大的待定匹配轨迹作为与所述扫描轨迹匹配的匹配轨迹。

本申请实施例,在获取到移动设备在各个步点的扫描信息之后,并不是孤立的直接根据各个步点的定位信息分别来更新指纹库中与各步点匹配的指纹点的定位信息,因为某些步点可能由于一些环境影响使得该步点的定位信息准确性较差,若直接根据这些步点的定位信息来更新指纹库中相应指纹点的定位信息是不准确的;而是首先根据各步点的扫描时间及方向将各步点连接成移动设备的移动轨迹,并将该移动轨迹分割过滤得到扫描轨迹,再根据扫描轨迹上的步点得到指纹库中与步点匹配的指纹点,并根据与各步点匹配的指纹点生成与扫描轨迹匹配的匹配轨迹,再利用扫描轨迹上的步点的定位信息更新指纹库中与步点相匹配的指纹点的定位信息;即本申请技术方案考虑了相邻步点之间的前后关联关系,并且只有将扫描轨迹上所有步点作为整体来从指纹库中找到各步点对应的指纹点构成的轨迹匹配时,才会根据该扫描轨迹上的步点的定位信息更新匹配轨迹上相应指纹点的定位信息,因为扫描轨迹作为整体能够从指纹库中找到与其匹配的匹配轨迹说明扫描轨迹上的步点的定位 信息是较为准确的,从而使得根据扫描轨迹上的步点的定位信息更新指纹库更准确,解决了单步点确定对应指纹点所存在的不准确的问题,从而提高了根据步点的定位信息更新指纹点的定位信息的准确性。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并 不表示任何特定的顺序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1