掌桥专利:专业的专利平台
掌桥专利
首页

定位方法、电子设备和计算机可读存储介质

文献发布时间:2024-04-18 20:01:30


定位方法、电子设备和计算机可读存储介质

技术领域

本申请涉及终端技术领域,尤其涉及一种定位方法、电子设备和计算机可读存储介质。

背景技术

传统的室外定位技术例如全球定位系统(Global Positioning System,GPS)和北斗,由于受到建筑物等设施的屏蔽,难以在室内实现精确定位。为了在室内实现精确定位,室内定位技术应运而生。

目前的室内定位方式可以包括基于无线信号的定位、行人航位推算(PedestrianDead Reckoning,PDR)定位和融合定位等多种方式。其中,可用于室内定位的无线信号包括无线保真(wireless fidelity,Wi-Fi)、蓝牙、射频识别(Radio FrequencyIdentification,RFID)以及超宽带(Ultra Wide Band,UWB)等。

在室内融合定位方式中,可以将基于无线信号的定位和PDR定位融合,以得到融合定位结果。目前通常是将Wi-Fi定位结果和PDR定位结果进行融合。但是,无线信号的传播模型在空间上是不断波动变化的,且现有基于无线信号的定位精度往往取决于无线接入点(Access Point,AP)的密度,导致基于无线信号(例如Wi-Fi信号)的定位精度较低,进而影响融合定位的精度。也就是说,现有定位方式的定位精度较低。

发明内容

本申请实施例提供一种定位方法、电子设备和计算机可读存储介质,可以解决现有定位精度较低的问题。

第一方面,本申请实施例提供一种定位方法,应用于电子设备,该方法包括:获取目标无线信号数据,目标无线信号数据为通过扫描无线接入点发射的无线信号获得的数据;获取POI位置融合结果,该POI位置融合结果为根据每个目标POI关联的POI信息和目标无线信号数据,将各个目标POI的位置进行融合,获得的位置融合结果,其中,目标POI集合包括至少一个目标POI,目标POI集合为从预先建立的POI数据库中筛选出的与第一定位结果对应的POI的集合,第一定位结果为根据目标无线信号数据进行定位得到的定位结果;若POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,将POI位置融合结果和第一定位结果进行滤波融合,得到第二定位结果。

由上可见,本申请实施例根据第一定位结果查询到目标POI集合后,将各个目标POI的位置进行融合,获得POI位置融合结果,再在POI位置融合结果和第一定位结果之间的距离小于预设距离阈值时,将POI位置融合结果和第一定位结果进行融合,得到修正后的定位结果,即在第一定位结果靠近POI位置时,使用POI位置对第一定位结果进行修正,减少了定位错误,提高了定位精度。

在第一方面的一种可能的实现方式中,根据每个目标POI关联的POI信息和目标无线信号数据,将各个目标POI的位置进行融合,获得POI位置融合结果,包括:

针对每个目标POI,确定目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度;

使用每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果,融合权重是根据第一相似度得到的;

其中,目标POI关联的POI信息包括目标POI关联的无线信号数据和目标POI的位置信息。

在该实现方式中,根据在目标POI扫描到的无线信号数据集合和实际位置扫描到的目标无线信号数据集合之间的相似度,确定融合权重。两个无线信号数据集合的相似度越高,则表示目标POI离实际位置越近,融合权重则越高,反之,相似度越低,则表示目标POI离实际位置越远,融合权重则越低。这样,可以提高POI位置融合权重的准确性,进一步提高通过POI位置修正后的定位结果的精度。

在第一方面的一种可能的实现方式中,目标POI关联的无线信号数据包括至少一个第一无线接入点的物理地址和接收信号强度指示,目标无线信号数据包括至少一个第二无线接入点的物理地址和接收信号强度指示;

确定目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度,包括:

通过比对第一无线接入点的物理地址和第二无线接入点的物理地址,获得物理地址重合度,物理地址重合度用于表征目标POI关联的无线信号数据和目标无线信号数据中物理地址相同的无线接入点个数;

确定第一无线接入点的接收信号强度指示和第二无线接入点的接收信号强度指示之间的欧式距离;

根据物理地址重合度和欧式距离,得到目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度。

在该实现方式中,通过两个位置扫描到的无线信号数据的物理地址重合度和信号强度欧式距离,计算两个无线信号数据的相似度,以准确地表征两个物理位置的远近程度,使得POI位置融合的权重更准确。

在第一方面的一种可能的实现方式中,从POI数据库中筛选出与第一定位结果对应的目标POI集合,包括:

根据每个POI的位置信息,筛选出在目标范围内的待选POI,目标范围为根据第一定位结果确定的位置范围;

确定每个待选POI关联的无线信号数据和目标无线信号数据之间的第二相似度;示例性地,第二相似度可以根据两个无线信号数据的物理地址重合度和RSSI欧式距离确定。

根据第二相似度从待选POI集合中选取目标POI,并组成目标POI集合,待选POI集合包括待选POI;

其中,POI数据库包括POI关联的POI信息,POI关联的POI信息包括POI的位置信息和POI关联的无线信号数据。

在该实现方式中,两个位置的无线信号数据的相似度越高,表示两个位置的距离越近,而基于相似度高低可以更准确地筛选出离实际位置近的目标POI,提高了后续通过筛选出的目标POI的位置修正融合定位结果的精度。

在第一方面的一种可能的实现方式中,将POI位置融合结果和第一定位结果进行滤波融合,得到第二定位结果,包括:

根据第一权重和第二权重,将POI位置融合结果和第一定位结果进行滤波融合,得到第二定位结果;

第一权重是预先为POI位置融合结果设置的权重,第二权重是预先为第一定位结果设置的权重。

在第一方面的一种可能的实现方式中,该方法还包括:获取目标应用的定位请求,响应于定位请求,进入获取目标无线信号数据的步骤;

在获得第二定位结果之后,该方法还包括:向目标应用上报第二定位结果。

在第一方面的一种可能的实现方式中,第一定位结果为无线定位结果或融合定位结果;

根据目标无线信号数据进行定位得到第一定位结果,包括:

根据目标无线信号数据进行无线信号定位,得到无线定位结果;

或者,获取惯性传感器数据,并对惯性传感器数据进行处理,获得行人航位推算PDR数据;根据目标无线信号数据进行无线信号定位,得到无线定位结果;根据无线定位结果和PDR数据进行融合定位,获得融合定位结果。也就是说,本申请实施例可以通过POI修正单纯基于目标无线信号数据得到无线定位结果,也可以修正基于无线定位结果和PDR数据得到的融合定位结果。

在第一方面的一种可能的实现方式中,该方法还包括:根据PDR数据,确定用户是否处于静止状态;若处于静止状态,则向目标应用上报缓存的历史第一定位结果;若处于非静止状态,且POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,则向目标应用上报第二定位结果;若处于非静止状态,且POI位置融合结果与第一定位结果之间的距离大于或等于预设距离阈值,则向目标应用上报第一定位结果。

在该实现方式中,增加静止检测,并在检测到用户处于静止时,上报缓存的历史第一定位结果,不再上报实时的第一定位结果,而在用户处于非静止时,才上报第一定位结果或通过POI位置修正后的定位结果,这样可以有效抑制定位跳点,进一步提高了融合定位精度。

在第一方面的一种可能的实现方式中,根据PDR数据,确定用户是否处于静止状态,包括:根据缓存窗口内的PDR数据,确定在缓存窗口的时间内用户的行走速度;若行走速度大于预设速度阈值,则确定用户处于非静止状态;若行走速度小于或等于预设速度阈值,则确定用户处于静止状态。

在第一方面的一种可能的实现方式中,该方法还包括:获得室内外识别结果,室内外识别结果用于表征电子设备处于室内还是室外;

在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报室内外识别结果;其中,定位接口包括室内外识别结果字段。

在该实现方式中,当第一定位结果为室内定位结果。在室内定位场景下,定位接口增加了室内外识别结果字段,使得在向上层应用上报定位结果时,还一并上报室内外识别结果。上层应用可以根据上报的室内外识别结果,确定是否使用上报的定位结果。这样,可以使得用户实际处于室外时,上层应用不会使用上报的室内定位结果,进一步减少了定位错误,提高了定位精度。

在第一方面的一种可能的实现方式中,在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报目标POI关联的POI信息;其中,定位接口包括POI信息字段。

在该实现方式中,定位接口增加了POI信息字段,在向上层应用上报定位结果时,还一并上报该定位结果周围的POI信息,使得上层应用可以使用上报的POI信息实现PO定位和推荐等功能,还可以更新自身老化的POI数据库,或者存储上报的POI信息,减少了POI信息的采集成本。

在第一方面的一种可能的实现方式中,目标无线信号数据为Wi-Fi信号数据,融合定位结果为EKF融合定位结果。

第二方面,本申请实施例提供一种电子设备,包括目标应用、定位接口和定位模块;

目标应用用于通过调用定位接口下发定位请求;

定位模块用于获取定位请求,响应于定位请求,获取目标无线信号数据,目标无线信号数据为通过扫描无线接入点发射的无线信号获得的数据;获取POI位置融合结果,该POI位置融合结果为根据每个目标POI关联的POI信息和目标无线信号数据,将各个目标POI的位置进行融合,获得的位置融合结果,其中,目标POI集合包括至少一个目标POI,目标POI集合为从预先建立的POI数据库中筛选出的与第一定位结果对应的POI集合,第一定位结果为根据目标无线信号数据进行定位得到的定位结果;若POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,将POI位置融合结果和第一定位结果进行滤波融合,得到第二定位结果;通过定位接口,向目标应用上报第二定位结果。

在第二方面的一种可能的实现方式中,定位模块具体用于:

针对每个目标POI,确定目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度;

使用每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果,融合权重是根据第一相似度得到的;

其中,目标POI关联的POI信息包括目标POI关联的无线信号数据和目标POI的位置信息。

在第二方面的一种可能的实现方式中,目标POI关联的无线信号数据包括至少一个第一无线接入点的物理地址和接收信号强度指示,目标无线信号数据包括至少一个第二无线接入点的物理地址和接收信号强度指示;

定位模块具体用于:

通过比对第一无线接入点的物理地址和第二无线接入点的物理地址,获得物理地址重合度,物理地址重合度用于表征目标POI关联的无线信号数据和目标无线信号数据中物理地址相同的无线接入点个数;

确定第一无线接入点的接收信号强度指示和第二无线接入点的接收信号强度指示之间的欧式距离;

根据物理地址重合度和欧式距离,得到目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度。

在第二方面的一种可能的实现方式中,第一定位结果为无线定位结果或融合定位结果;

若第一定位结果为融合定位结果,该设备还包括:

设备还包括PDR模块、无线定位模块和融合定位模块,或者无线定位模块:

其中,PDR模块用于获取惯性传感器数据,并对惯性传感器数据进行处理,获得PDR数据;

无线定位模块用于根据目标无线信号数据进行无线信号定位,得到无线定位结果;

融合定位模块用于根据第一定位结果和PDR数据进行融合定位,获得融合定位结果。

在第二方面的一种可能的实现方式中,还包括静止检测模块,用于根据PDR数据,确定用户是否处于静止状态;

定位模块还用于:若处于静止状态,则向目标应用上报缓存的历史第一定位结果;若处于非静止状态,且POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,则向目标应用上报第二定位结果;若处于非静止状态,且POI位置融合结果与第一定位结果之间的距离大于或等于预设距离阈值,则向目标应用上报第一定位结果。

在第二方面的一种可能的实现方式中,还包括室内外识别模块,用于获得室内外识别结果,室内外识别结果用于表征电子设备处于室内还是室外;

定位接口还包括室内外识别结果字段;

定位模块还用于:在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报室内外识别结果。

在第二方面的一种可能的实现方式中,定位接口还包括POI信息字段;

定位模块还用于:在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报目标POI关联的POI信息。

在第二方面的一种可能的实现方式中,目标无线信号数据为Wi-Fi信号数据,无线定位模块为Wi-Fi定位模块,融合定位结果为EKF融合定位结果。

第三方面,本申请实施例提供一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面任一项所述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面任一项的所述方法。

第五方面,本申请实施例提供一种芯片系统,该芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现如上述第一方面任一项所述的方法。该芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。

第六方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面任一项所述的方法。可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

图1为本申请实施例提供的室内定位场景的一种示意框图;

图2为本申请实施例提供的定位方案的一种流程示意图;

图3为本申请实施例提供的定位方案的另一种流程示意图;

图4为本申请实施例提供的地理围栏示意图;

图5为本申请实施例提供的室内外识别过程示意图;

图6为本申请实施例提供的定位方案的另一种过程示意图;

图7为本申请实施例提供的电子设备的结构示意框图;

图8为本申请实施例提供的电子设备700的软件结构示意框图;

图9为本申请实施例提供的定位方法的一种流程示意框图;

图10为本申请实施例提供的定位系统架构示意框图;

图11为本申请实施例提供的电子设备的一种示意框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。

下面示例性介绍本申请实施例可能涉及的相关内容。

1)基于无线信号数据的定位。

在室外时,电子设备通常可以接收到GPS信号或北斗卫星信号等,并且可以通过这些信号进行定位。但是,在GPS信号较弱,甚至接收不到GPS信号的地方,例如,室内或者室外的某些特殊地方,电子设备无法通过GPS等信号进行定位。

而在电子设备接收不到GPS信号的地方,通常都有无线信号覆盖。例如,在大型商场内通常有Wi-Fi信号覆盖。此时,电子设备可以通过扫描周围无线接入点发射出的无线信号,并基于扫描到的无线信号数据进行定位。无线信号数据可以包括但不限于:Wi-Fi、低功耗蓝牙、RFID、UWB以及可见光等。

以Wi-Fi信号数据为例,目前主要包括三角定位和Wi-Fi指纹数据库两种定位方式。其中,三角定位的过程可以如下所示:利用Wi-Fi接收信号强度随着无线传播距离增加而衰减的特性,电子设备基于扫描到的接收信号强度指示(Received Signal StrengthIndication,RSSI)计算传播距离,即计算电子设备到各个无线AP之间的距离;基于电子设备与三个或三个以上的无线AP之间的距离,利用圆周定位即可确定电子设备所处的位置。该定位方式需要提前获知每个无线AP的准确位置。

基于Wi-Fi指纹数据库的定位过程包括两个主要阶段:离线阶段和在线阶段。在离线阶段,先在定位区域划分网格,并基于划分的网格建立采样点;再在各个采样点,使用Wi-Fi接收设备进行逐个采样,记录每个采样点的位置、扫描到的RSSI和无线AP地址等信息;最后基于所记录的每个采样点的数据,构建每个位置的位置指纹,以建立Wi-Fi指纹数据库。处于在线阶段时,电子设备在定位区域内移动,并实时扫描获取周围的Wi-Fi信号数据,并基于Wi-Fi指纹数据库,确定当前扫描到的Wi-Fi信号数据对应的位置,以确定电子设备所处的位置。

基于其它类型的无线信号数据的定位过程在此不再赘述。

2)行人航位推算PDR定位。PDR定位通常是根据用户行走的步数、步幅和方向等,推算出用户的行走轨迹和位置。一般情况下,PDR定位是基于惯性传感器实现的,且通常是应用于室内定位场景。惯性传感器示例性包括加速度传感器和陀螺仪等。

示例性地,用户携带电子设备在室内行走时,电子设备获取自身集成的惯性传感器反馈的惯性传感器数据,并基于给定的初始航向和初始位置,通过惯性传感器数据计算得到行走距离和行走方向,进而推算出下一时刻电子设备所在的位置。

3)融合定位。每种定位方式都有自身的局限性,为了尽可能地提高定位精度,通常可以通过融合多种定位方式进行定位。

示例性地,在室内定位场景下,将Wi-Fi定位和PDR数据进行融合,获得室内融合定位结果。具体过程可以如下:电子设备基于扫描到的Wi-Fi信号数据进行定位,获得Wi-Fi定位结果;对获取的惯性传感器数据进行处理,获得PDR数据;最后将PDR数据和Wi-Fi定位结果进行扩展卡尔曼滤波(ExtendedKalmanFilter,EKF)融合,获得室内融合定位结果。

在示例性介绍了本申请实施例可能涉及的相关内容后,下面对本申请实施例提供的定位方案进行详细介绍。

本申请实施例提供的定位方案可以应用于室外定位场景。例如,室外某地方的GPS信号较弱,且覆盖有无线信号数据,则可以应用本申请实施例提供的定位方案进行定位;也可以应用于室内定位场景,例如,室内定位导航场景以及室内定位推荐场景等。为了描述简便,下文将以室内定位场景作为示例进行介绍。

示例性地,参见图1示出的本申请实施例提供的室内定位场景的一种示意框图,图1为室内商场某一楼层的店铺分布平面示意图,该楼层包括店铺1~店铺6,并且该楼层的相应位置设置有无线AP,分布位置如图1中的AP1~AP5所示,AP1~AP5均发射出Wi-Fi信号,并且AP1~AP5发射的Wi-Fi信号可以覆盖图1所示的楼层。携带有电子设备的用户在图1所示的楼层行走时,该电子设备通过本申请实施例提供的定位方案,定位出此时处于图1的A点。进一步地,电子设备还可以根据定位结果实现室内导航或店铺推荐等服务。

本申请实施例提供的定位方案中,电子设备先通过无线信号扫描,扫描获取周围无线AP发射的无线信号数据。可选地,电子设备还可以获取自身所集成的惯性传感器反馈的传感器数据。

通常情况下,电子设备可以扫描到至少一个无线AP发射的无线信号,该无线AP可以是Wi-Fi接入点或蓝牙接入点,在此不对无线AP的具体类型作限定。

为了表述方便,将电子设备在某个位置所扫描到的无线信号数据集合定义为目标无线信号数据。也就是说,目标无线信号数据包括至少一个无线AP发射的无线信号数据。每个无线AP的无线信号数据示例性包括服务集标识(Service Set Identifier,SSID)、RSSI和物理地址(Media Access Control Address,MAC)等信息。

惯性传感器集成在电子设备上,在用户携带该电子设备行走时,惯性传感器数会产生并上报相应的传感器数据。示例性地,惯性传感器包括但不限于加速度计和陀螺仪等,惯性传感器反馈的惯性传感器数据则可以包括加速度、角速度和角度等数据。

电子设备在获得目标无线信号数据和惯性传感器数据后,再根据目标无线信号数据,获得无线定位结果,并对惯性传感器数据进行处理获得PDR数据。

具体应用中,可以基于无线信号数据的定位方式,获得无线定位结果。示例性地,以Wi-Fi信号数据为例,可以通过三角定位和Wi-Fi指纹数据库两种定位方式,获得上述无线定位结果。

在一些实施例中,Wi-Fi指纹数据库的数据规模通常较大,需要占用较大的存储资源,为了节省电子设备的存储资源,或者电子设备的存储资源有限的情况下,可以将预先建立的Wi-Fi指纹数据库存储在云端服务器。此时,电子设备在扫描获得目标无线信号数据后,则可以向云端服务器发送目标无线信号数据,并接收云端服务器返回的无线定位结果。

云端服务器在接收到目标无线信号数据后,则从预先建立的Wi-Fi指纹数据库中查询该目标无线信号数据对应的所有可能位置数据,再调用定位算法模块计算出对应的位置,然后将该位置结果作为无线定位结果返回给电子设备。

当然,也可以将Wi-Fi指纹数据库存储在电子设备,此时电子设备则从本地存储的Wi-Fi指纹数据库查询并计算出上述无线定位结果。

同理,电子设备可以根据目标无线信号数据,通过三角定位方式获得上述无线定位结果;也可以将目标无线信号数据发送至云端服务器,由云端服务器根据目标无线信号数据进行三角定位,获得无线定位结果,并向电子设备返回无线定位结果。

另外,除了三角定位和Wi-Fi指纹数据库两种方式,电子设备还可以使用其它定位方式获得无线定位结果,本申请实施例对如何获得无线定位结果的方式不作限定。

当无线信号数据为其它类型的无线信号时,则可以采用相应的定位方式获得上述无线定位结果,在此不作限定。

上述无线定位结果可以包括但不限于位置信息和楼层信息,位置信息通常表现为经纬度信息,楼层信息用于表征具体楼层信息。可以理解的是,如果电子设备所在的建筑物只有一层,无线定位结果可以只包括位置信息。

上述PDR数据可以包括但不限于步长、步幅和航向角等数据。

电子设备获得无线定位结果后,则可以使用基于第一定位结果筛选出的目标POI,对第一定位结果进行修正。

该第一定位结果是指需要修正的定位结果,其可以是上述无线定位结果,可以是融合定位结果。无线定位结果是指单纯基于目标无线信号数据进行无线信号定位获得的定位结果,例如,目标无线信号数据为Wi-Fi数据,无线定位结果为Wi-Fi定位结果。融合定位结果是指根据无线定位结果和PDR数据进行融合定位得到的定位结果。也就是说,本申请实施例可以通过POI位置对无线定位结果或者融合定位结果进行定位修正,获得修正后的定位结果。

可选地,当第一定位结果为融合定位结果时,电子设备在获得无线定位结果和PDR数据后,将无线定位结果和PDR数据进行融合定位,获得融合定位结果。示例性地,融合定位结果为EKF融合定位结果,此时,基于无线定位结果和PDR数据,通过EKF滤波融合,得到EKF融合定位结果。

值得指出的是,无线信号的传播模型在空间上是不断波动变化,因此基于目标无线信号数据得到的无线定位结果,定位精度偏低,且在部分场景下定位误差较大。进一步地,也影响融合了无线定位结果的融合定位结果的精度。例如,以Wi-Fi定位为例,前后几次的Wi-Fi定位结果可能会发生回跳,使得定位结果的方向发生错误,即Wi-Fi定位结果精度较低。进一步地,Wi-Fi定位结果精度偏低,也会导致融合了Wi-Fi定位结果的融合定位结果出现回跳或跳点,出现定位错误。而为了提高无线定位结果或融合定位结果的精度,本申请实施例可以利用第一定位结果周围的POI位置,对无线定位结果或融合定位结果进行修正。

具体来说,电子设备在获得目标无线信号数据后,还可以根据目标无线信号数据对应的第一定位结果,获取目标POI集合。目标POI集合包括至少一个目标兴趣点(Point ofInterest,POI)。目标POI是指与第一定位结果对应的POI,具体可以通过目标范围和相似度高低筛选得到。目标范围是根据第一定位结果确定的位置范围。例如,第一定位结果为某个建筑物的第六层的B点,将以B点作为圆心,预设长度作为半径的范围作为上述目标范围。相似度是指POI关联的无线信号数据和目标无线信号数据之间的相似度。

在一些实施例中,预先建立的POI数据库的数据规模较大,故可以存放在云端服务器,以减少电子设备一侧的存储资源开销。此时,电子设备在获得第一定位结果后,可以向云端服务器发送查询请求,并获取云端服务器返回的目标POI集合和每个目标POI关联的POI信息。查询请求可以包括但不限于第一定位结果和目标无线信号数据。

其中,POI数据库是通过预先在相应区域进行POI信息采集建立的数据库,其可以包括但不限于至少一个POI,以及每个POI关联的POI信息。POI信息包括但不限于位置信息、该POI关联的无线信号数据、该POI的类型信息、名称信息和标注信息等。

POI的位置信息具体可以包括POI的经纬度、位置误差范围以及楼层信息。POI关联的无线信号数据是指在该POI位置处接收到的无线信号数据。在POI信息采集阶段,可以在每个POI位置处放置无线信号接收设备,并记录该无线信号接收设备扫描到的无线信号数据,将该无线信号数据和POI位置关联。可以理解的是,在每个POI位置处,可能会扫描到一个或多个无线AP发射的无线信号,故POI关联的无线信号数据可以包括一个或多个无线AP的无线信号数据。

POI的类型信息用于表征该POI的类型。示例性地,POI的类型可以包括店铺、入口、过道拐弯、电梯以及扶梯等。

POI的名称信息用于表征POI的名称。例如,针对店铺类型的POI,该POI的名称信息则是店铺名称,比如,xx炸鸡店。

标注信息是指POI的其它相关信息。例如,POI类型为过道拐弯时,标注信息则可以包括拐角角度信息,该角度信息用于表征拐角的大小。

将预先建立的POI数据库存储在云端服务器,云端服务器在接收到来自电子设备的查询请求后,则可以响应于该查询请求,从POI数据库筛选出与第一定位结果对应的目标POI集合。示例性地,云端服务器首先根据每个POI的位置信息,筛选出位于目标范围内的待选POI。例如,第一定位结果为某建筑物的第六层的B点,目标范围则为以B点作为圆心,预设长度作为半径的圆。云端服务器先根据POI位置信息中的楼层信息,筛选出位于同一建筑物同一楼层(即第六层)的待选POI,并将多个待选POI组成待选POI集合。可以理解的是,如果第一定位结果为无线定位结果,则基于无线定位结果确定目标范围,如果第一定位结果为融合定位结果,则基于融合定位结果确定目标范围;然后,计算每个待选POI关联的无线信号数据和目标无线信号数据之间的相似度;最后,根据相似度的大小,从待选POI集合中筛选出目标POI,并将多个目标POI组成目标POI集合。

其中,两个无线信号数据之间的相似度用于表征两个扫描点的物理位置的远近关系。通常情况下,相似度越高,则表明两个扫描点的物理位置越接近,反之,相似度越低,则表明两个扫描点的物理位置相距越远。

在一些实施例中,根据两个无线信号数据的MAC地址重合度和RSSI欧式距离,计算两个无线信号数据之间的相似度。MAC地址重合度用于表征两个无线信号数据中物理地址相同的无线AP的个数。例如,某个POI关联的无线信号数据包括MAC1、MAC2、MAC3、MAC7和MAC8,电子设备在某个位置扫描到的目标无线信号数据包括MAC1、MAC3、MAC7、MAC8和MAC9,此时,由于两个无线信号数据中MAC地址相同的个数为4,则这两个无线信号数据的物理地址重合度则为4。

RSSI欧式距离是指RSSI差值的平方。例如,某个POI关联的无线信号数据包括RSSI1、RSSI2和RSSI3,电子设备扫描到的目标无线信号数据包括RSSI4、RSSI5和RSSI6,这两个无线信号数据的RSSI欧式距离为:Sqrt((RSSI1-RSSI4)

通常情况下,物理地址重合度越高,且RSSI欧式距离越小,则表明两个无线信号数据越相似,两个无线信号数据的扫描点越接近;反之,则表明两个无线信号数据越不相似,两个无线信号数据的扫描点相距越远。基于此,示例性地,将物理地址重合度和RSSI欧式距离的比值作为相似度,其中,物理地址重合度作为分子,RSSI欧式距离作为分母,这样,当分子越大,分母越小时,相似度就越大,当分子越小;分母越大,相似度就越小。

在分别计算出每个待选POI关联的无线信号数据与目标无线信号数据之间的相似度后,云端服务器则可以根据相似度高低筛选出目标POI。例如,按照相似度的高低,将待选POI从高至低地排序后,筛选出前K个待选POI组成目标POI集合,K是正整数,其数值大小可以是预先设置的。又例如,将相似度大于预设相似度阈值的待选POI作为目标POI,预设相似度阈值可以是预先设置的。

云端服务器获得目标POI集合后,将目标POI集合和每个目标POI关联的POI信息一并返回至电子设备。此时,云端服务器还可以将每个目标POI的相似度一并返回至电子设备。

值得指出的是,基于两个位置的无线信号数据的相似度高低,可以更准确地筛选出离实际扫描位置近的目标POI,提高了后续通过筛选出的目标POI的位置修正融合定位结果的精度。进一步地,通过物理地址重合度和RSSI欧式距离可以准确地表征两个扫描点的物理位置的远近程度,使得POI位置融合的权重更准确。

需要指出的是,当第一定位结果为无线定位结果时,如果电子设备是通过云端服务器获得第一定位结果,即电子设备向云端服务器发送定位请求,该定位请求携带有目标无线信号数据,用于指示云端服务器根据目标无线信号数据进行定位,云端服务器则可以存储有第一定位结果和目标无线信号数据,此时,电子设备可以只向云端服务器发送查询请求,该查询请求不用携带第一定位结果和目标无线信号数据。云端服务器则响应于查询请求,从POI数据库中筛选出与第一定位结果对应的目标POI集合。当然,电子设备也可以在发送查询请求时,携带上第一定位结果和目标无线信号数据。

在另一些实施例中,POI数据库也可以存储在电子设备一侧。此时,电子设备在获得第一定位结果后,则从本地存储的POI数据库中筛选出与第一定位结果对应的目标POI集合。示例性地,电子设备先根据每个POI的位置信息,筛选出位于目标范围的待选POI;再分别计算每个待选POI关联的无线信号数据和目标无线信号数据之间的相似度;最后根据相似度高低筛选出目标POI集合。具体过程可以参见上文云端服务器的筛选过程,在此不再赘述。

在获得目标POI集合后,则可以将各个目标POI的位置进行融合,获得POI位置融合结果。POI位置融合过程可以由电子设备一侧执行,也可以由云端服务器一侧执行。

当在云端服务器一侧执行时,云端服务器在筛选出目标POI之后,则根据每个目标POI的相似度,确定每个目标POI的融合权重。示例性地,云端服务器可以根据每个目标POI的相似度进行归一化操作,得到每个目标POI的融合权重。具体地,将每个目标POI的相似度相加,得到累加和;再将每个目标POI的相似度与累加和的比值作为融合权重。获得每个目标POI的融合权重后,云端服务器则可以使用每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果。此时,云端服务器向电子设备返回POI位置融合结果。

示例性地,通过公式

当在电子设备一侧执行时,如果POI数据库存储在电子设备一侧,电子设备则根据每个目标POI的相似度进行归一化操作,获得每个目标POI的融合权重;再根据每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果。如果POI数据存储在云端服务器,电子设备则可以根据云端服务器返回的信息,获得POI位置融合结果。此时,电子设备在筛选目标POI的过程中,也可以将所计算的每个POI的相似度存储在本地,在POI位置融合阶段,可以读取存储在本地的相似度。

如果云端服务器返回的信息包括每个目标POI的相似度和POI信息,电子设备则根据每个目标POI的相似度,获得每个目标POI的融合权重,再根据每个目标POI的POI信息,使用每个目标POI的融合权重进行POI位置加权融合,获得POI位置融合结果。此时,云端服务器在筛选出目标POI的过程中,也需要计算POI关联的无线信号数据和目标无线信号数据之间的相似度,故在向电子设备返回目标POI集合和每个目标POI关联的POI信息时,也可以一并携带上将每个目标POI关联的无线信号数据和目标无线信号数据之间的相似度,这样电子设备可以不用再次进行相似度计算,而是可以直接使用云端服务器返回的相似度。

如果云端服务器返回的信息包括每个目标POI的融合权重和POI信息,电子设备则根据每个目标POI的POI信息,使用每个目标POI的融合权重进行POI位置加权融合,获得POI位置融合结果。此时,云端服务器在获得每个目标POI的相似度后,还进一步根据每个目标POI的相似度进行归一化操作,获得每个目标POI的融合权重,这样电子设备可以直接使用云端服务器返回的融合权重进行POI位置融合。

如果云端服务器返回的信息包括每个目标POI的POI信息,电子设备则可以基于POI信息,确定每个目标POI关联的无线信号数据和目标无线信号数据之间的相似度,再根据每个目标POI的相似度,获得每个目标POI的融合权重,最后使用每个目标POI的融合权重进行POI位置加权融合,获得POI位置融合结果。

示例性地,电子设备可以根据两个无线信号数据的物理重合度和RSSI欧式距离,计算出目标POI关联的无线信号数据和目标无线信号数据之间的相似度,具体计算过程可以参见上文的相应内容,在此不再赘述。

需要指出的是,本申请实施例根据目标POI关联的无线信号数据和目标无线信号数据之间的相似度,确定POI位置融合权重,可以提高POI位置融合权重的准确性,进一步提高通过POI位置修正后的融合定位结果的精度。

电子设备在获得POI位置融合结果后,则可以使用POI位置融合结果对第一定位结果进行位置修正,以获得修正后的定位结果。

其中,如果目标POI集合包括至少两个目标POI,则先将多个目标POI的位置进行融合,得到POI位置融合结果,再使用POI位置融合结果对第一定位结果进行修正。如果目标POI集合只包括一个目标POI,则该目标POI的位置可以作为POI位置融合结果。

具体来说,电子设备计算POI位置融合结果和第一定位结果之间的距离;如果距离小于预设距离阈值,则表明POI位置和第一定位结果比较接近,则可以进一步使用POI位置融合结果修正第一定位结果。此时,电子设备可以按照预先设置的权重,将POI位置融合结果和第一定位结果进行滤波加权融合,获得第二定位结果,该第二定位结果则为修正后的定位结果。

示例性地,电子设备依据公式pos=pos_ekf*α+pos_poi*(1-α),获得第二定位结果。其中,pos表示第二定位结果,pos_ekf表示EKF融合定位结果,pos_poi表示POI位置融合结果,α表示预先设置的权重。此时,第一定位结果为EKF融合定位结果。

可以理解的是,如果第一定位结果为第一定位结果,则可以将第一定位结果和POI位置融合结果进行滤波融合;如果第一定位结果为融合定位结果,例如EKF融合定位结果,则可以将融合定位结果和POI位置融合结果进行滤波融合。

如果POI位置融合结果和第一定位结果之间的距离大于或等于预设距离阈值,则表面POI位置与电子设备实际所处位置相距较远,电子设备则可以将第一定位结果或者缓存的历史第一定位结果作为最终的定位结果,不再使用POI位置修正融合定位结果。

值得指出的是,在实际定位时,携带电子设备的用户在行走时,通常会靠近店铺、电梯、扶梯和拐角等POI,此时使用这些POI的位置对第一定位结果作进一步修正,可以提高定位精度。特别地,在拐角等角落区域,部署的无线AP通常较少,并且角落区域的无线信号容易受到墙壁等物体的干扰,无线信号质量较差,因此会使得在这些区域的无线信号定位效果较差,进而影响这些区域的无线定位结果或融合定位结果的精度。而本申请实施例使用POI位置作进一步修正,可以提高这些区域的定位精度。也就是说,POI位置融合结果与第一定位结果之间的距离小于预设距离阈值时,则表明携带电子设备的用户靠近目标POI,此时在第一定位结果的基础上,增加POI位置修正,减少回跳和跳点等定位错误,提高定位精度。

例如,以图1示出的室内定位场景为例,预先设置的POI包括店铺、电梯、扶梯和拐角等。携带电子设备的用户行走到店铺6和店铺5之间的通道时,电子设备可以将店铺6和店铺5的位置进行位置融合,得到POI位置融合结果,再将POI位置融合结果和EKF融合结果进行滤波融合,获得修正后的定位结果。

为了更好地介绍通过POI位置修正定位结果的过程,下面将Wi-Fi定位和PDR定位融合为例进行介绍。

参见图2示出的本申请实施例提供的定位方案的一种流程示意图,电子设备获取到Wi-Fi信号数据和惯性传感器数据后,分别根据Wi-Fi信号数据进行Wi-Fi定位,获得Wi-Fi定位结果,对惯性传感器数据进行处理,获得PDR数据;再将Wi-Fi定位结果和PDR数据进行EKF融合,获得EKF融合定位结果。

此外,电子设备还根据Wi-Fi信号数据和Wi-Fi定位结果,筛选获得目标POI信息列表,该目标POI信息列表包括目标POI和每个目标POI关联的POI信息,还可以包括LandMark数据,LandMark数据示例性包括电梯、扶梯和转弯拐角等。其中,LandMark数据可以作为POI的一部分存储在POI数据库中。具体地,电子设备可以基于POI数据库,筛选出位于目标范围的待选POI,该目标范围是根据Wi-Fi定位结果确定的位置范围;再计算每个待选POI关联的Wi-Fi信号数据和电子设备扫描到的Wi-Fi信号数据之间的相似度;最后根据相似度高低,筛选出目标POI。

可以理解的是,EKF融合定位过程和目标POI筛选、POI位置融合等过程,可以并行执行,也可以先后执行,对执行顺序不作限定。

电子设备在获得POI位置融合结果和EKF融合结果后,进一步判断这两个位置之间的距离是否小于预设距离阈值,如果小于,则表明用户在行走过程中的实际位置靠近POI,则可以将这两个位置进行融合,获得修正后的融合定位结果;如果大于或等于,则表明用户在行走过程中的实际位置离POI较远,则不使用POI位置作进一步修正,而是可以将EKF融合定位结果或者历史缓存的EKF融合定位结果作为最终的定位结果。

由于Wi-Fi定位精度偏低,导致EKF融合定位结果容易出现回跳和跳点等定位错误,图2所示的定位方案中,通过在用户靠近POI时,则使用POI位置进一步修正EKF融合定位结果,提高了EKF融合定位精度。

如上文所述,本申请实施例提供的定位方案可以通过POI位置修正定位结果,以提高定位结果精度。在另一些实施例中,还可以通过增加静止状态检测,以抑制定位跳点问题,以提高定位精度。

需要说明的是,当携带电子设备的用户静止不动,由于基于无线信号数据的定位精度较低,使得每次融合定位结果都不一致,进而容易产生定位跳点问题。

示例性地,以Wi-Fi定位和PDR数据融合定位为例。当前时刻携带电子设备的用户静止不动,此时,电子设备先根据扫描到的Wi-Fi信号数据进行Wi-Fi定位,获得第一Wi-Fi定位结果,并根据惯性传感器数据获得PDR数据;根据第一Wi-Fi定位结果和PDR数据进行EKF融合,获得第一EKF融合定位结果,并将第一EKF融合定位结果上报给上层应用,例如,导航应用程序。

在下一时刻,携带电子设备的用户仍然静止不动。此时,电子设备根据扫描到的Wi-Fi信号数据进行Wi-Fi定位,获得第二Wi-Fi定位结果,并根据惯性传感器数据获得PDR数据;根据第一Wi-Fi定位结果和PDR数据进行EKF融合,获得第二EKF融合定位结果,并将第二EKF融合定位结果上报给上层应用。

由于Wi-Fi定位精度问题,导致第一Wi-Fi定位结果和第二Wi-Fi定位结果不一致,且两个位置相差较大,进而导致第一EKF融合定位结果和第二EKF融合定位结果也不一致,且相差较大,产生定位跳点问题。

也就是说,用户在一段时间内静止不动,电子设备还持续根据获取到的Wi-Fi信号数据和PDR数据,获得EKF融合定位结果。但是,由于定位精度和定位误差问题,导致在这一段时间内每次获得的EKF融合定位结果均不相同,甚至有可能出现前后两次的EKF融合定位结果相差较大的情况,进而产生定位跳点问题。

用户静止不动的情况有很多,例如,用户静止站在商场的扶梯上,或者用户位于电梯内。如果在用户静止不动时,电子设备的上层应用显示的定位结果出现定位跳点,会影响用户体验。示例性地,当用户相对静止在运动的扶梯上时,由于扶梯的运动,用户的绝对位置是发生变化的。在扶梯运动过程中,用户携带的电子设备在位置A扫描到1楼的Wi-Fi信号,并根据1楼的Wi-Fi信号和PDR数据,得到第一EKF融合定位结果,此时该第一EKF融合定位结果表征用户处于1楼;在位置点B扫描到2楼的Wi-Fi信号,并根据2楼的Wi-Fi信号和PDR数据,得到第二EKF融合定位结果,此时该第二EKF融合定位结果表征用户处于2楼;在位置点C又扫描到1楼的Wi-Fi信号,进而得到表征用户处于1楼的EKF融合定位结果。由此可见,扶梯在运动过程中,上层应用显示的定位结果在1楼和2楼之间跳动,影响用户体验。为了抑制定位跳点问题,提高定位精度和用户体验,本申请实施例可以根据PDR数据,检测用户是否处于静止状态,如果处于静止状态,则向上层应用上报缓存的历史第一定位结果,如果处于非静止状态,才向上层应用上报当前的第一定位结果。

具体来说,电子设备获取目标无线信号数据和惯性传感器数据,根据无线信号数据,获得第一定位结果,并对惯性传感器数据进行处理,获得PDR数据,并将处理得到的PDR数据添加至缓存窗口;再实时根据缓存窗口内的PDR数据,检测用户是否处于静止状态。缓存窗口的窗口时长示例性为1.2s。此时,第一定位结果可以是根据目标无线信号数据获得的无线定位结果,也可以是根据目标无线信号数据和PDR数据获得的融合定位结果。

PDR数据包括步长、步幅和航向角等数据,电子设备可以根据缓存窗口内的PDR数据,计算用户在窗口时长内行走距离和行走速度;再判断行走距离是否超过阈值,和/或行走速度是否超过阈值;如果行走距离和行走速度中的至少一种超过阈值,则确定用户当前处于非静止状态,反之,如果行走距离和行走速度均没有超过阈值,则确定用户当前处于静止状态。

需要指出的是,电子设备还可以只计算行走距离和行走速度中的一种,并判断行走距离或行走速度是否超过阈值,如果超过,则确定用户处于非静止状态,如果没有超过,则确定用户处于静止状态。

电子设备如果确定出用户当前处于静止状态,则向上层应用上报缓存的历史第一定位结果。历史第一定位结果是离当前时间最近的第一定位结果,如果在初始过程中,还没有缓存的历史第一定位结果,则可以向上层应用上报第一定位结果。

电子设备按照时间先后,缓存有多个第一定位结果。例如,第一定位结果为EKF融合定位结果。在T时刻,电子设备获得T时刻的EKF融合定位结果,并缓存T时刻的融合定位结果;在T+1时刻,电子设备获得T+1时刻的EKF融合定位结果后,并缓存该融合定位结果。在T时刻和T+1时刻,电子设备均检测出用户处于非静止状态,故在T时刻时,向上层应用上报T时刻的EKF融合定位结果,在T+1时刻,向上层应用上报T+1时刻的EKF融合定位结果。但是,在T+2时刻,电子设备检测出用户处于静止状态,故不再向上层应用上报T+2的融合定位结果,而是上报离当前时刻最近的历史EKF融合定位结果。此时,离当前时刻最近的历史融合定位结果为T+1时刻的EKF融合定位结果。

示例性地,一个缓存窗口的窗口时长为1.2s,在每个缓存窗口内,电子设备可以根据PDR数据和第一定位结果,获得一个EKF融合定位结果。但实际应用中,电子设备也可以每秒获取一次EKF融合定位结果。电子设备可以每1.2s则启动一次静止状态检测。

需要说明的是,用户实际行走过程中,可能会出现静止状态。在用户静止状态下,电子设备如果还持续上报当前时刻的定位结果,会产生定位跳点问题。而本申请实施例增加了静止状态检测,并在检测到用户处于静止状态时,不再上报当前时刻获得第一定位结果,而是上报缓存的历史第一定位结果,使得上层应用在当前时刻显示的定位和上一时刻显示的定位是一致的,即用户在处于静止状态的一段时间内,上层应用显示的定位结果均是一致的,抑制了定位跳点问题,提高了定位精度。

以上文提及的用户站在扶梯的场景为例,如果没有增加静止状态检测,在扶梯运动过程中,电子设备会持续上报当前时刻获得的EKF融合定位结果,导致上层应用显示的定位结果在1楼和2楼之间跳动。而本申请实施例在用户静止在扶梯上时,通过PDR数据检测出用户的行走速度小于预设速度阈值,故认为此时用户处于静止状态,向上层应用上报缓存的历史EKF融合定位结果,使得上层应用显示的定位结果在这段时间内保持一致。直到用户上到2楼,并开始走动时,电子设备根据PDR数据检测到用户处于非静止状态,则向上层应用上报根据2楼的Wi-Fi信号获得的EKF融合定位结果。

上层应用是指需要定位的应用,其可以是导航类应用程序,也可以是短视频类应用程序,在此不对具体应用类型作限定。

为了更好地介绍通过静止状态检测抑制定位跳点问题的过程,下面将Wi-Fi定位和PDR数据融合定位为例进行介绍。此时,第一定位结果为EKF融合定位结果。

参见图3示出的本申请实施例提供的定位方案的另一种流程示意图,电子设备获取到Wi-Fi信号数据和惯性传感器数据后,分别根据Wi-Fi信号数据进行Wi-Fi定位,获得Wi-Fi定位结果,对惯性传感器数据进行处理,获得PDR数据;再将Wi-Fi定位结果和PDR数据进行EKF融合,获得EKF融合定位结果。

此外,电子设备还根据PDR数据进行静止状态检测,判断用户是否处于静止状态。如果用户处于静止状态,则向上层应用上报缓存的历史EKF融合定位结果,如果用户处于非静止状态,则向上层应用上报当前时刻获得的EKF融合定位结果。

可以理解的是,EKF融合定位过程和静止状态检测等过程,可以并行执行,也可以先后执行,对执行顺序不作限定。

在一些实施例中,在室内定位场景下,本申请实施例还可以通过增加室内外识别,并将室内外识别结果和室内定位结果一并上报给上层应用,以让上层应用根据室内外识别结果,确定是否使用所上报的室内定位结果,或者是否需要重新发起定位,以减少定位错误,提高定位准确性。室内外识别结果可以表征电子设备是处于室内还是室外。

通常情况下,电子设备通过判断网络位置是否落入地理围栏,以确定是否发起室内定位请求。但是,地理围栏往往比实际建筑物的地理边界要大。这样,电子设备可能在建筑物外围发起室内定位,获得室内定位结果,即电子设备实际处于建筑物外,但获得室内定位结果,如果上层应用直接使用上报的室内定位结果,则会导致定位错误。

例如,参见图4示出的本申请实施例提供的地理围栏示意图,图中的虚线框则为地理围栏,实线框为建筑物的实际地理边界。地理围栏比建筑物的实际地理边界要大。假如电子设备处于图4中的C点,即此时电子设备没有处于建筑物内,而是处于建筑物外。电子设备判断出已落入地理围栏,则发起室内定位请求。此时,电子设备虽然在建筑物外,但却能扫描接收到建筑物内的无线AP发射出的Wi-Fi信号数据,根据扫描到的Wi-Fi信号数据和PDR数据进行EKF融合定位,获得EKF融合定位结果,并将EKF融合定位结果上报给上层应用。上层应用在获取到EKF融合定位结果后,则直接使用该室内融合定位结果,导致定位错误。

在一些可能的实现方式中,在发起室内定位请求后,电子设备获取目标无线信号数据和惯性传感器数据,根据目标无线信号数据,获得第一定位结果,并对惯性传感器数据进行处理,获得PDR数据;再根据第一定位结果和PDR数据进行融合定位,获得融合定位结果。该融合定位结果为室内定位结果。

需要说明的是,本申请实施例对获得室内定位结果的定位方式不作限定,其可以是融合定位,可以是PDR定位,可以是基于Wi-Fi等无线信号数据的定位,也可以是上文提及的通过POI位置修正定位结果的方式。例如,电子设备通过Wi-Fi定位获得室内Wi-Fi定位结果,还通过室内外识别过程获得室内外识别结果,并将室内外识别结果和室内Wi-Fi定位结果一并上报至上层应用。

此外,电子设备还在发起室内定位过程后,还进行室内外识别过程,获得室内外识别结果。

示例性地,参见图5示出的本申请实施例提供的室内外识别过程示意图,本申请实施例通过全球导航卫星系统(Global Navigation Satellite System,GNSS)卫星状态信息和可见光进行室内外识别。

如图5所示,电子设备启动GNSS室内外检测(Indoor-Outdoor Detection,IOD)后,判断是否监听到卫星状态信息,如果监听到,则从卫星状态信息中获取GPS信息,并进行GNSS IOD识别,获得第一室内外识别结果。同时,电子设备还通过传感器获取环境光信息,并根据环境光信息进行环境光IOD识别,获得第二室内外识别结果。然后,电子设备再根据第一室内外识别结果和第二室内外识别结果进行IOD融合,获得IOD融合结果。其中,IOD融合是指选取第一室内外识别结果,还是选取第二室内外识别结果作为IOD融合结果。

可以理解的是,IOD识别方式还可以为其它方式,例如,只通过GNSS IOD识别方式或者环境光IOD识别方式获得最终的IOD识别结果,在此不对IOD识别方式作限定。

电子设备在获得室内定位结果和室内外识别结果后,可以通过定位接口向上层应用上报室内定位结果和室内外识别结果。为了实现通过定位接口上报室内外识别结果,则需要在定位接口增加室内外识别结果的字段。示例性地,定位接口的字段信息可以如下表1所示。

表1

其中,表1中的定位模式用于表征当前的定位模式,其示例性可以包括网络定位模式和GPS定位模式。网络定位模式示例性包括基于Wi-Fi等无线网络的定位。

经度、纬度和高度是指上报的定位结果的位置信息。方向角是指用户行走过程中,当前位置与上一位置所成的角度。位置误差范围是指当前的定位结果和用户真实所在位置点之间可能存在的误差范围,通常情况下,以当前时刻的定位结果为圆心,acc作为半径的圆,作为位置误差范围。在网络定位模式下,一般不输出高度、速度和方向角等信息,高度、速度和方向角等信息一般在GPS定位模式下才输出。

需要指出的是,上表1中除了位置对象的扩展信息即extras,其他信息均是安卓系统原生的定位接口自带的信息字段。另外,在extras里面还可以包括楼层信息字段和建筑物信息字段,表1中未示出。也就是说,基于安卓系统的原生定位接口,为了将楼层信息和建筑物信息上报至上层应用,可以在原生定位接口增加楼层和建筑物的字段,建筑物信息字段用于表征所在建筑物的名称和类型等信息。

其中,上述表1示出的扩展字段后的定位结果的相关信息。表1中的最后一行为定位结果扩展的字段,除了扩展室内外识别结果的字段以外,还扩展了POI信息字段。可以理解的是,可以只扩展室内外识别结果字段,也可以只扩展POI信息字段,为了描述方便,则将两个扩展字段均在表1体现。

扩展的室内外识别结果字段和POI信息字段的具体内容可以下表2所示。

表2

/>

其中,上述表2中的iodResult和poiInfo为键,其对应的具体参数属性为值,通过键可以查找到值。

如果筛选出多个目标POI,可以只上报相似度最高的目标POI,此时,将相似度最高的目标POI的类型、名称、经度、纬度和位置误差范围等信息依次填入至poiInfo对应的属性中。当然,也可以把筛选出的多个目标POI均上报至上层应用,此时,poiInfo对应一个POI信息列表,该POI信息列表包括多个目标POI的信息字段,每个目标POI的信息字段均包括上表2示出的POI类型、名称、经纬度和位置误差范围等。

电子设备通过扩展了室内识别结果字段的定位接口,向上层应用上报室内定位结果和室内外识别结果。此时,在获得室内定位结果之后,将室内定位结果的经纬度、位置误差范围依次写入上述表1中的经度、纬度和位置误差范围等属性字段内,还将楼层信息和建筑物信息写入extra字段内楼层属性和建筑物属性,以将经纬度、楼层和建筑物等信息通过定位接口上报至上层应用。上层应用根据室内外识别结果,确定是处于室内还是室外,进而确定是否使用上报的室内融合结果。例如,用户携带电子设备进入支持室内定位的地理围栏后,上层应用发起了室内定位请求,但是此时用户真实位于建筑物外围,上层应用则可以根据上报的室内外识别结果,确定是否使用上报的室内定位结果,这样减少了定位错误,提供了定位准确性。或者,上层应用也可以根据上报的室内外识别结果,确定是否发起室内定位,例如,携带电子设备的用户进入支持室内定位的地理围栏内后,再根据室内外识别结果确定是否发起室内定位请求。或者,上层应用在根据上报的室内外识别结果确定处于室外时,则可以发起室外定位请求。

需要指出的是,上层应用也可以不用区分发起的定位请求是室内定位请求,还是室外定位请求。此时,上层应用在需要获取当前位置时,则发起定位请求;电子设备在上层应用发起定位请求后,响应于该定位请求,执行室内外识别过程,获得室内外识别结果;如果室内外识别结果表征当前处于室外,电子设备则通过室外定位方式获得室外定位结果,并将该室外定位结果和室内外识别结果通过定位接口上报给上层应用,上层应用可以直接使用上报的室外定位结果,不用根据室内外识别结果决策是否使用上报的定位结果;如果室内外识别结果表征当前处于室内,电子设备则执行室内定位过程,获得室内定位结果,并将该室内定位结果和室内外识别结果上报给上层应用,上层应用可以直接使用上报的室内定位结果,不用根据室内外识别结果决策是否使用上报的定位结果。当然,电子设备也可以在根据室内外识别结果,通过定位接口上报定位结果时,只上报室内定位结果或室外定位结果,不用上报室内外识别结果,此时,定位接口可以不包括室内外识别结果字段。

在一些实施例中,基于上文提及的通过POI位置修正定位结果的实施例,本申请实施例还可以在通过定位接口向上层应用上报第一定位结果时,一并上报POI信息。此时,在定位接口中增加POI信息字段,扩展的POI信息字段可以参见上表1和表2。通过定位接口上报的POI信息可以如上表2中的poiInfo所示。

通过定位接口扩展的POI信息字段上报的POI信息可以是指筛选出的目标POI关联的POI信息。这样,在上层应用发起定位请求后,除了上报定位结果,还主动上报当前位置周围的POI的信息,减少了上层应用的POI信息采集成本。如果上层应用没有POI数据库,上层应用则可以将上报的POI信息存储;如果上层应用已经有POI数据库,则可以使用上报的POI信息更新老化的POI数据库,这样均可以减少上层应用的POI信息采集成本。此外,上层应用获取到POI信息后,还可以将POI信息显示在室内地图导航界面,丰富了室内导航,提高了用户体验。

在通过定位接口上报POI信息时,通过定位接口上报的定位结果可以是融合定位结果,可以是通过POI位置修正后的融合定位结果,还可以是单独基于Wi-Fi等无线信号获得的定位结果,在此不对此时上报的定位结果作限定。

如果上报的定位结果是上文提及的第一定位结果或通过POI位置修正后的第二定位结果,电子设备在判断出处于静止状态,或者POI位置融合结果和第一定位结果之间的距离大于或等于预设距离阈值时,电子设备可以选择不上报POI信息。

由上文提及的各个实施例可以看出,本申请实施例提供的定位方案中,可以通过POI位置修正定位结果,以提高融合定位精度;可以通过增加静止状态检测,抑制定位跳点;可以增加室内外识别,并在定位接口中增加室内外识别结果字段,以向上层应用上报室内定位结果时,一并上报室内外识别结果,进而减少定位错误;还可以在定位接口中增加POI信息字段,以减少POI信息采集成本。

上文各个实施例虽然分别介绍了通过POI位置修正定位结果、增加静止状态检测、增加室内外识别和定位接口扩展室内识别结果字段、以及定位接口扩展POI信息字段,但这些实施例可以相互结合,进而得到新的定位方案。

例如,将通过POI位置修正定位结果和增加静止状态检测结合,以第一定位结果为融合定位结果为例。此时,电子设备可以获取目标无线信号数据和惯性传感器数据后,根据目标无线信号数据,获得无线定位结果,对惯性传感器数据进行处理,获得PDR数据;将PDR数据和无线定位结果进行融合定位,获得融合定位结果。此外,电子设备还根据目标无线信号数据和第一定位结果,或者,根据目标无线信号数据和无线定位结果,获得目标POI集合,并将各个目标POI的位置进行融合,获得POI位置融合结果,并判断POI位置融合结果和融合定位结果之间的距离是否小于预设距离阈值;还根据PDR数据检测用户是否处于静止状态;如果用户处于静止状态,且POI位置融合结果和融合定位结果之间的距离小于预设距离阈值,则将POI位置融合结果和融合定位结果进行滤波融合,获得第二定位结果,并向上层应用上报第二定位结果;如果用户处于非静止状态,且POI位置融合结果和融合定位结果之间的距离大于或等于预设距离阈值,则向上层应用上报融合定位结果;如果用户处于静止状态,则向用户上报缓存的历史融合定位结果。进一步地,如果还与增加POI信息字段结合,则在定位接口增加POI信息字段后,电子设备通过定位接口向上层应用上报第二定位结果、融合定位结果或历史融合定位结果时,一并上报筛选出的目标POI关联的POI信息。

更进一步地,如果还与增加室内外识别,并增加室内外识别结果字段结合,电子设备的上层应用发起室内定位请求后,响应于该室内定位请求,根据目标无线信号数据和PDR数据,得到POI位置融合结果和融合定位结果,并根据PDR数据进行静止状态,基于静止状态检测结果,以及POI位置融合结果和融合定位结果之间的距离,确定是上报第二定位结果,还是上报融合定位结果或者历史融合定位结果;此外,还响应于该室内定位请求,进行室内外检测,获得室内外识别结果;最后,在通过定位接口向上层应用上报第二定位结果、融合定位结果或历史融合定位结果时,一并上报筛选出的目标POI关联的POI信息和室内外识别结果。

示例性地,下面以Wi-Fi定位和PDR数据融合定位为例,对结合了通过POI位置修正定位结果、增加静止状态检测、增加室内外识别和定位接口扩展室内识别结果字段、以及定位接口扩展POI信息字段的定位方案进行介绍说明。此时,第一定位结果为EKF融合定位结果。

参见图6示出的本申请实施例提供的定位方案的另一种过程示意图,电子设备的上层应用发起室内定位请求后,响应于该室内定位请求,获取到Wi-Fi信号数据和惯性传感器数据,根据Wi-Fi信号数据进行Wi-Fi定位,获得Wi-Fi定位结果,并对惯性传感器数据进行处理,获得PDR数据;再将Wi-Fi定位结果和PDR数据进行EKF融合,获得EKF融合定位结果。

此外,电子设备还响应于该室内定位请求,根据Wi-Fi信号数据和Wi-Fi定位结果,获得目标POI信息列表。具体地,电子设备可以基于POI数据库,筛选出位于目标范围的待选POI,该目标范围是根据Wi-Fi定位结果确定的位置范围;再计算每个待选POI关联的Wi-Fi信号数据和电子设备扫描到的Wi-Fi信号数据之间的相似度;最后根据相似度高低,从待选POI集合中筛选出目标POI。目标POI信息列表包括目标POI关联的POI信息。此时,定位接口扩展了POI信息字段。

电子设备还响应于该室内定位请求,根据PDR数据进行静止状态检测,判断用户是否处于静止状态。如果用户处于静止状态,则将缓存的历史EKF融合定位结果作为向上层应用上报的定位结果;如果用户处于非静止状态,则进入根据POI位置融合结果和EKF融合定位结果之间的距离,判断是上报修正后的融合定位结果,还是上报EKF融合定位结果的步骤。

电子设备还响应于该室内定位请求,执行室内外识别过程,获得室内外识别结果。此时,定位接口扩展了POI信息字段。

电子设备在获得POI位置融合结果和EKF融合结果后,进一步判断这两个位置之间的距离是否小于预设距离阈值,如果小于,则表明用户在行走过程中的实际位置靠近POI,则可以将这两个位置进行融合,获得修正后的融合定位结果,并将修正后的融合定位结果作为向上层应用上报的定位结果;如果大于或等于,则表明用户在行走过程中的实际位置离POI较远,则不使用POI位置作进一步修正,将EKF融合定位结果作为向上层应用上报的定位结果。

由于定位接口扩展了POI信息字段和室内外识别结果字段,故电子设备通过定位结果向上层应用上报定位结果时,还一并上报目标POI的POI信息和室内外识别结果。向上层应用上报的定位结果为EKF融合定位结果、修正后的融合定位结果或缓存的历史EKF融合定位结果。

可以理解的是,EKF融合定位过程、目标POI筛选、POI位置融合、静止状态检测以及室内外识别等过程,可以并行执行,也可以先后执行,对执行顺序不作限定。

本申请实施例提供的定位方案由电子设备执行,该电子设备示例性为手机、平板电脑和智能穿戴设备等终端设备,也可以为云端服务器,在此不对电子设备的具体类型作限定。

示例性地,下面结合图7示出的本申请实施例提供的电子设备的结构示意框图进行介绍说明。

如图7所示,电子设备700可以包括处理器710,存储器720,天线1,天线2,移动通信模730,无线通信模块740,以及传感器模块750等。其中传感器模块750可以包括陀螺仪传感器751,加速度传感器752,以及环境光传感器753等。

可以理解的是,本申请实施例示意的结构并不构成对电子设备700的具体限定。在本申请另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器710可以包括一个或多个处理单元,例如:处理器710可以包括应用处理器(application processor,AP),调制解调处理器,控制器,以及基带处理器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

在一些实施例中,处理器710可以包括一个或多个接口。接口可以包括通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,通用输入输出(general-purpose input/output,GPIO)接口等。

UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器710与无线通信模块740。例如:处理器710通过UART接口与无线通信模块740中的蓝牙模块或Wi-Fi模块通信,实现蓝牙功能或Wi-Fi功能。

GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器710与无线通信模块740,以及传感器模块750等。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备700的结构限定。在本申请另一些实施例中,电子设备700也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

电子设备700的无线通信功能可以通过天线1,天线2,移动通信模块730,无线通信模块740,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。

移动通信模块730可以提供应用在电子设备700上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块730可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块730可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块730还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块730的至少部分功能模块可以被设置于处理器710中。在一些实施例中,移动通信模块730的至少部分功能模块可以与处理器710的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。

本申请实施例的定位方案中,如果POI数据库存储在云端服务器,电子设备700可以通过移动通信模块730和天线1,向云端服务器发送查询请求,以及接收云端服务器返回信息,云端服务器返回的信息示例性包括目标POI和目标POI关联的POI信息。另外,如果是通过云端服务器获得无线定位结果,电子设备700也可以通过移动通信模块730和天线1向云端服务器发送定位请求,以及接收云端服务器返回的无线定位结果。例如,Wi-Fi指纹数据库存储在云端服务器,电子设备700扫描到Wi-Fi信号数据后,通过移动通信模块730和天线1,向云端服务器发送携带有Wi-Fi信号数据的定位请求;在云端服务器基于Wi-Fi指纹数据库获得无线定位结果后,电子设备700还可以通过移动通信模块730和天线1接收来自云端服务器的无线定位结果。

无线通信模块740可以提供应用在电子设备700上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。在本申请实施例中,无线通信模块740还可以包括UWB、RFID和低功耗蓝牙等无线通信的解决方案。

无线通信模块740可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块740经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器710。无线通信模块740还可以从处理器710接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,电子设备700的天线1和移动通信模块730耦合,天线2和无线通信模块740耦合,使得电子设备700可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。

本申请实施例中,电子设备700可以基于无线通信模块740和天线2,扫描获取周围无线AP发射的无线信号数据。例如,电子设备700通过无线通信模块740中的Wi-Fi模块和天线2,扫描获取周围Wi-Fi接入点发射的Wi-Fi信号数据。

电子设备700还可以通过无线通信模块740中的GNSS模块和天线2,监听卫星状态信息,并根据获取到的GPS信息,进行GNSS IOD识别,获得室内外识别结果。

存储器720可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。存储器720可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如地图导航应用等)等。存储数据区可存储电子设备700使用过程中所创建的数据(比如PDR数据以及EKF融合定位结果等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器710通过运行存储在存储器720的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备700的各种功能应用以及数据处理。

示例性地,处理器710运行存储在存储器720中的EKF融合定位程序,对通过无线通信模块740中的Wi-Fi模块和天线2扫描获取到的Wi-Fi信号数据进行Wi-Fi定位,获得Wi-Fi定位结果,并对通过传感器模块750获取的惯性传感器数据进行处理,获得PDR数据,再根据PDR数据和Wi-Fi定位结果进行EKF融合,得到EFK融合定位结果,并将该EKF融合定位结果和PDR数据缓存在存储器720中。

陀螺仪传感器751可以用于确定电子设备700的运动姿态。在一些实施例中,可以通过陀螺仪传感器751确定电子设备700围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器751可以用于导航,体感游戏场景。

加速度传感器752可检测电子设备700在各个方向上(一般为三轴)加速度的大小。当电子设备700静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用,还应用于定位和导航等应用。

示例性地,在定位过程中,电子设备700获取陀螺仪传感器751和加速度传感器752反馈的传感器数据,并对这些传感器数据进行处理,获得步长、步幅和航向角等PDR数据。该PDR数据可以用于EKF融合定位过程,以获得EKF融合定位结果,还可以用于静止状态检测,以确定用户是否处于静止状态。

可以理解的是,本申请实施例涉及的惯性传感器除了陀螺仪传感器751和加速度传感器752,还可以包括其它类型的惯性传感器。

环境光传感器753用于感知环境光亮度。电子设备700可以根据感知的环境光亮度,进行环境光IOD检测,获得室内外识别结果。

在示例性介绍了电子设备700的结构后,下面对电子设备700的软件结构进行示例性介绍。

电子设备700的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备700的软件结构。

参见图8示出的本申请实施例提供的电子设备700的软件结构示意框图,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层(Framework层),安卓运行时(Android runtime)和系统库,以及内核层。

应用程序层可以包括一系列应用程序包。如图8所示,应用程序包可以包括地图,导航,WLAN,以及蓝牙等应用程序。

应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。

如图7所示,应用程序框架层可以包括定位服务,定位服务包括网络定位接口、室内融合定位模块、POI修正模块、PDR模块、无线定位模块、静止状态检测模块和室内外识别模块。

其中,网络定位接口扩展了POI信息字段和室内外识别结果字段。应用程序层的应用程序可以通过调用定位服务,通过网络定位接口下发定位请求。

PDR模块用于获取惯性传感器反馈的惯性传感器数据,并对惯性传感器数据进行处理,输出PDR数据。

无线定位模块用于根据扫描到的无线信号数据进行定位,获得无线定位结果。

静止状态检测模块用于根据PDR模块输出的PDR数据进行静止状态检测,以确定用户是否处于静止状态。

融合定位模块用于根据PDR模块输出的PDR数据和无线定位模块输出的无线定位结果进行融合定位,获得融合定位结果。

POI修正模块用于根据无线定位结果和扫描到的无线信号数据,或者第一定位结果和扫描到的无线信号数据,从POI数据库中筛选出目标POI集合;将各个目标POI的位置进行融合,获得POI位置融合结果;当POI位置融合结果和融合定位结果之间的距离小于预设距离阈值时,将POI位置融合结果和融合定位模块输出的融合定位结果进行滤波融合,获得第二定位结果,以实现通过POI位置修正融合定位结果。

室内外识别模块用于执行室内外识别流程,以获得室内外识别结果。

本申请实施例中,如果静止状态检测模块输出的检测结果为静止状态,则将缓存的融合定位结果通过网络定位接口上报至应用程序层的应用;如果检测结果为非静止状态,则将融合定位模块输出的融合定位结果,或者POI位置模块输出的第二定位结果,通过网络定位接口上报至应用程序层的应用。在通过网络定位接口上报定位结果时,同时上报室内外识别模块输出的室内外识别结果以及POI信息。

安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。

核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。

应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。

内核层是硬件和软件之间的层。内核层至少包含Wi-Fi驱动,摄像头驱动,蓝牙驱动,传感器驱动。例如,应用程序层的导航应用发起定位请求后,则通过Wi-Fi驱动启动Wi-Fi模块,扫描获取到Wi-Fi信号数据。

在示例性介绍完本申请实施例提供的电子设备700的结构之后,下面以电子设备700为例介绍本申请实施例提供的定位方案。

参见图9示出的本申请实施例提供的定位方法的一种流程示意框图,该方法可以包括以下步骤:

步骤S901、电子设备700获取目标无线信号数据,目标无线信号数据为通过扫描无线接入点发射的无线信号获得的数据。

示例性地,目标无线信号数据为Wi-Fi信号数据。在一些实施例中,电子设备700包括目标应用,该目标应用是指需要定位的应用,例如,导航类应用。在目标应用通过调用定位接口发起定位请求后,响应于该定位请求,电子设备700则启动无线通信模块进行无线信号扫描,获取扫描到的目标无线信号数据,可选地,还可以接收惯性传感器反馈的传感器数据。其中,当应用于室内定位场景时,电子设备700的目标应用发起的是室内定位请求,定位接口为网络定位接口。

步骤S902、电子设备700获取POI位置融合结果,POI位置融合结果为根据每个目标POI关联的POI信息和目标无线信号数据,将各个目标POI的位置进行融合,获得的位置融合结果,其中,目标POI集合包括至少一个目标POI,目标POI集合为从预先建立的POI数据库中筛选出的与第一定位结果对应的POI的集合,第一定位结果为根据目标无线信号数据进行定位得到的定位结果。第一定位结果为无线定位结果或融合定位结果。

如果是基于预先建立的指纹数据库获得无线定位结果的,指纹数据库可以存储在电子设备700一侧,也可以存储在云端服务器或者其它终端设备。示例性地,指纹数据库存储在云端服务器,电子设备700获取到目标无线信号数据后,则可以通过无线通信模块或移动通信模块,向云端服务器发送定位请求,该定位请求携带有目标无线信号数据。云端服务器响应于电子设备700的定位请求,查询指纹数据库,以获取目标无线信号数据对应的无线定位结果,并将无线定位结果返回至电子设备700。指纹数据库例如为Wi-Fi指纹数据库。

POI数据库可以存储在云端服务器,也可以存储在电子设备700一侧。POI数据库包括POI关联的POI信息,POI关联的POI信息包括POI的位置信息和POI关联的无线信号数据。

当POI数据库存储在电子设备700一侧时,电子设备700可以从POI数据库中筛选出与第一定位结果对应的目标POI集合。示例性地,电子设备700根据每个POI的位置信息,筛选出在目标范围内的待选POI,该目标范围是根据第一定位结果确定的位置范围;再确定每个待选POI关联的无线信号数据和目标无线信号数据之间的相似度;根据相似度高低从待选POI集合中选取目标POI,并组成目标POI集合,待选POI集合包括待选POI。筛选出了目标POI,则可以获得目标POI关联的POI信息。

进一步地,可以根据两个无线信号数据的物理地址重合度和RSSI欧式距离,计算两个无线信号数据之间的相似度。

示例性地,目标POI关联的无线信号数据包括至少一个第一无线接入点的物理地址和接收信号强度指示。目标无线信号数据包括至少一个第二无线接入点的物理地址和接收信号强度指示。此时,电子设备700首先通过比对第一无线接入点的物理地址和第二无线接入点的物理地址,获得物理地址重合度,物理地址重合度用于表征目标POI关联的无线信号数据和目标无线信号数据中物理地址相同的无线接入点个数。再确定第一无线接入点的接收信号强度指示和第二无线接入点的接收信号强度指示之间的欧式距离。最后,根据物理地址重合度和欧式距离,得到目标POI关联的无线信号数据和目标无线信号数据之间的相似度。

当POI数据库存储在云端服务器时,电子设备700向云端服务器发送查询请求,该查询请求可以携带有目标无线信号数据和第一定位结果。云端服务器可以先根据每个POI的位置信息,筛选出位于目标范围的待选POI;再计算每个待选POI关联的无线信号数据和目标无线信号数据之间的相似度;根据相似度高低,从待选POI集合中筛选出目标POI集合;最后将目标POI集合和每个目标POI关联的POI信息返回至电子设备700。

获得目标POI集合和每个目标POI关联的POI信息后,则将各个目标POI的位置进行融合,得到POI位置融合结果,该POI位置融合过程可以在云端服务器一侧执行,也可以电子设备700一侧执行。

示例性地,电子设备700或云端服务器可以将每个目标POI关联的无线信号数据和目标无线信号数据之间的相似度进行归一化操作,获得每个目标POI的位置融合权重。两个无线信号数据之间的相似度计算过程具体可以参见上文,在此不再赘述。确定每个目标POI的位置融合权重后,则使用每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果。

如果POI位置融合过程在云端服务器执行,此时,云端服务器向电子设备700返回的是POI位置融合结果,而不是返回目标POI集合和每个目标POI关联的POI信息,这样,电子设备700则可以不用进行POI位置融合。此时,上述步骤S902可以适应性为:接收云端服务器返回的POI位置融合结果。

如果POI位置融合过程在电子设备700一侧执行,云端服务器可以计算每个目标POI关联的无线信号数据和目标无线信号数据之间的相似度,将该每个目标POI的相似度或融合权重、目标POI和目标POI关联的POI信息一并返回至电子设备700,这样,电子设备700可以不用再计算目标无线信号数据和目标POI关联的无线信号数据之间的相似度或融合权重。此时,上述步骤S902可以适应性为:接收云端服务器返回的每个POI的相似度或融合权重、目标POI和目标POI关联的POI信息,根据相似度或融合权重,将每个目标POI的位置进行融合,获得POI位置融合结果。或者,接收云端服务器返回的目标POI和目标POI关联的POI信息,计算每个目标POI的相似度,再根据相似度获得每个目标POI的融合权重,最后根据融合权重将各个目标POI的位置融合,获得POI位置融合结果。

也就是说,电子设备700获取POI位置融合结果的方式可以包括如下方式:接收云端服务器返回的POI位置融合结果,此时,云端服务器在筛选出目标POI集合后,再将目标POI的位置进行融合,获得POI位置融合结果,并将该结果返回至电子设备700;电子设备700根据云端服务器返回的目标POI的相似度或融合权重,将目标POI的位置进行融合,获得POI位置融合结果;电子设备700根据云端服务器返回的目标POI和目标POI关联的POI信息,先计算出目标POI关联的无线信号数据和目标无线信号数据之间的相似度,再根据相似度确定融合权重,最后根据融合权重将目标POI的位置进行融合,获得POI位置融合结果。

值得指出的是,根据在目标POI扫描到的无线信号数据和实际位置扫描到的目标无线信号数据集合之间的相似度确定融合权重,可以提高POI位置融合权重的准确性,进一步提高通过POI位置修正后的融合定位结果的精度。另外,通过两个无线信号数据的物理地址重合度和信号强度欧式距离,计算两个无线信号数据的相似度,以准确地表征两个物理位置的远近程度,使得POI位置融合的权重更准确。并且,在POI筛选时,通过两个位置的无线信号数据的相似度高低进行筛选,这样可以更准确地筛选出离实际位置近的目标POI,提高了后续通过筛选出的目标POI的位置修正融合定位结果的精度。

步骤S903、若POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,电子设备700将POI位置融合结果和第一定位结果进行滤波融合,得到第二定位结果。

示例性地,预先为POI位置融合结果设置第一权重,为第一定位结果设置的第二权重。此时,根据第一权重和第二权重,将POI位置融合结果和第一定位结果进行加权滤波融合,得到第二定位结果。

当第一定位结果为融合定位结果时,电子设备700还可以根据第一定位结果和PDR数据进行融合定位,获得融合定位结果。

在一些实施例中,如果电子设备700包括目标应用,且目标应用发起的是室内定位请求,上述第二定位结果则为室内定位结果。电子设备700在获取到第二定位结果后,可以通过定位接口向目标应用上报第二定位结果。

由上可见,在融合定位结果靠近POI位置时,使用POI位置对融合定位结果进行修正,减少了融合定位错误,提高了融合定位精度。

在一些可能的实现方式中,电子设备700在获得PDR数据后,还可以根据PDR数据,确定用户是否处于静止状态;如果处于静止状态,则向目标应用上报缓存的历史第一定位结果;如果处于非静止状态,且POI位置融合结果与第一定位结果之间的距离小于预设距离阈值,则向目标应用上报第二定位结果;如果处于非静止状态,且POI位置融合结果与第一定位结果之间的距离大于或等于预设距离阈值,则向目标应用上报第一定位结果。这样,增加静止检测步骤,并在检测到用户处于静止时,上报缓存的历史第一定位结果,不再上报实时的第一定位结果,这样可以有效抑制定位跳点,进一步提高了融合定位精度。

进一步地,电子设备700可以根据缓存窗口内的PDR数据,确定在缓存窗口的时间内用户的行走速度;若行走速度大于预设速度阈值,则确定用户处于非静止状态;若行走速度小于或等于预设速度阈值,则确定用户处于静止状态。

在一些可能的实现方式中,电子设备700还可以执行室内外识别过程,获得室内外识别结果,室内外识别结果用于表征电子设备处于室内还是室外。并且,在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报室内外识别结果;其中,定位接口包括室内外识别结果字段,即在定位接口中扩展了室内外室内结果字段。这样,在室内定位场景下,定位接口增加了室内外识别结果字段,使得在向上层应用上报定位结果时,还一并上报室内外识别结果。上层应用可以根据上报的室内外识别结果,确定是否使用上报的定位结果。这样,可以使得用户实际处于室外时,上层应用不会使用上报的室内定位结果,进一步减少了定位错误,提高了定位精度。

在一些可能的实现方式中,电子设备700在通过定位接口,向目标应用上报第二定位结果、历史第一定位结果或第一定位结果时,还通过定位接口向目标应用上报目标POI关联的POI信息;其中,定位接口扩展了POI信息字段。这样,通过定位接口增加了POI信息字段,在向上层应用上报定位结果时,还一并上报该定位结果周围的POI信息,使得上层应用可以使用上报的POI信息实现PO定位和推荐等功能,还可以更新自身老化的POI数据库,或者存储上报的POI信息,减少了POI信息的采集成本。

为了更好地介绍本申请实施例提供的定位方案,下面结合图10示出的本申请实施例提供的定位系统架构示意框图进行介绍说明。图10中以第一定位结果为融合定位结果为例。

如图10所示,该系统架构可以包括惯性传感器、无线通信模块、无线定位模块、PDR模块、融合定位模块、静止状态检测模块、POI修正模块、POI数据、定位接口、室内外识别模块和目标应用。可选地,如果无线定位过程是基于指纹数据库的,则还可以包括指纹数据库。

目标应用用于通过调用定位接口,发起定位请求。在发起定位请求后,PDR模块用于获取惯性传感器输出的惯性传感器数据,并根据惯性传感器数据,向融合定位模块和静止状态检测模块输出PDR数据;无线通信模块用于扫描获取无线信号数据,并输出至无线定位模块;无线定位模块用于根据无线信号数据进行定位,向融合定位模块输出第一定位结果。

静止状态检测模块用于根据PDR数据进行静止状态检测,输出检测结果。

融合定位模块用于根据PDR数据和第一定位结果进行融合定位,输出融合定位结果。

POI修正模块用于根据无线定位模块输出的第一定位结果,以及扫描到的无线信号数据,从POI数据库中筛选出目标POI集合,并将目标POI的位置进行融合,获得POI位置融合结果;在POI位置融合结果和融合定位结果之间的距离小于预设距离阈值时,将POI位置融合结果和融合定位结果进行融合,获得第二定位结果,以对融合定位结果进行修正;还用于向定位接口输出POI信息。

室内外识别模块用于获得室内外识别结果,并向定位接口输出室内外识别结果。

定位接口用于向目标应用上报定位结果、室内外识别结果和POI信息。其中,定位结果可以为第二定位结果,融合定位结果或者缓存的历史融合定位结果。

需要指出的是,图10的POI数据库和指纹数据库可以在云侧,即云端服务器一侧,也可以在端侧,即终端设备一侧。如果在云侧,电子设备700则需要和云端服务器进行通信,以获取到相关信息。

参见图11示出的本申请实施例提供的电子设备的一种示意框图,电子设备110包括目标应用111、定位接口112和定位模块113。可选地,还可以包括室内外识别模块114、静止状态检测模块115、PDR模块116、无线定位模块117和融合定位模块118。图11中以第一定位结果为融合定位结果为例。

目标应用111用于通过调用定位接口112下发定位请求。

定位模块113用于获取定位请求,响应于定位请求,获取目标无线信号数据和惯性传感器数据,目标无线信号数据为通过扫描无线接入点发射的无线信号获得的数据;根据每个目标POI关联的POI信息和目标无线信号数据,将各个目标POI的位置进行融合,获得POI位置融合结果,其中,目标POI集合包括至少一个目标POI,目标POI集合为从预先建立的POI数据库中筛选出的与第一定位结果对应的POI集合,第一定位结果为根据目标无线信号数据进行定位得到的定位结果;根据目标无线信号数据和PDR数据进行融合定位,获得融合定位结果,PDR数据为根据惯性传感器数据得到的数据;若POI位置融合结果与融合定位结果之间的距离小于预设距离阈值,将POI位置融合结果和融合定位结果进行滤波融合,得到第二定位结果;通过定位接口,向目标应用上报第二定位结果。

在一些可能的实现方式中,定位模块113具体用于:针对每个目标POI,确定目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度;根据每个目标POI的第一相似度进行归一化操作,获得每个目标POI的融合权重;使用每个目标POI的融合权重,对各个目标POI的位置进行加权融合,获得POI位置融合结果;其中,目标POI关联的POI信息包括目标POI关联的无线信号数据和目标POI的位置信息。

在一些可能的实现方式中,目标POI关联的无线信号数据包括至少一个第一无线接入点的物理地址和接收信号强度指示,目标无线信号数据包括至少一个第二无线接入点的物理地址和接收信号强度指示。

定位模块113具体用于:通过比对第一无线接入点的物理地址和第二无线接入点的物理地址,获得物理地址重合度,物理地址重合度用于表征目标POI关联的无线信号数据和目标无线信号数据中物理地址相同的无线接入点个数;确定第一无线接入点的接收信号强度指示和第二无线接入点的接收信号强度指示之间的欧式距离;根据物理地址重合度和欧式距离,得到目标POI关联的无线信号数据和目标无线信号数据之间的第一相似度。

在一些可能的实现方式中,还包括静止状态检测模块115,用于根据PDR数据,确定用户是否处于静止状态。

定位模块113还用于:若处于静止状态,则向目标应用上报缓存的历史融合定位结果;若处于非静止状态,且POI位置融合结果与融合定位结果之间的距离小于预设距离阈值,则向目标应用上报第二定位结果;若处于非静止状态,且POI位置融合结果与融合定位结果之间的距离大于或等于预设距离阈值,则向目标应用上报融合定位结果。

在一些可能的实现方式中,还包括室内外识别模块114,用于获得室内外识别结果,室内外识别结果用于表征电子设备处于室内还是室外。定位接口还包括室内外识别结果字段;

定位模块113还用于:在通过定位接口,向目标应用上报第二定位结果、历史融合定位结果或融合定位结果时,还通过定位接口向目标应用上报室内外识别结果。

在一些可能的实现方式中,定位接口112还包括POI信息字段。定位模块113还用于:在通过定位接口,向目标应用上报第二定位结果、历史融合定位结果或融合定位结果时,还通过定位接口向目标应用上报目标POI关联的POI信息。

在第一些可能的实现方式中,包括:PDR模块116、无线定位模块117和EKF融合定位模块118。无线定位模块117具体为Wi-Fi定位模块。

PDR模块116用于获取惯性传感器反馈的惯性传感器数据,电子设备110包括惯性传感器;对惯性传感器数据进行处理,获得PDR数据。

无线定位模块117用于根据目标无线信号数据进行Wi-Fi定位,获得第一定位结果,目标无线信号数据为Wi-Fi信号数据。

EKF融合定位模块118用于根据第一定位结果和PDR数据进行融合定位,获得融合定位结果,此时,该融合定位结果为EKF融合定位结果。

本申请实施例还提供一种定位系统,该定位系统包括电子设备和云端服务器。云端服务器上存储有POI数据库,可选地,还可以存储有指纹数据库,例如,Wi-Fi指纹数据库。电子设备上安装有目标应用,还包括定位接口、无线通信模块和惯性传感器。

云端服务器可以用于接收电子设备的定位请求,该定位请求携带有目标无线信号数据;根据目标无线信号和指纹数据库,获得第一定位结果;向电子设备发送该第一定位结果。

云端服务器还可以用于接收电子设备的查询请求;响应于该查询请求,从POI数据库中筛选出目标POI集合;将每个目标POI的位置进行融合,获得POI位置融合结果;向电子设备发送该POI位置融合结果。

云端服务器还可以用于根据POI的位置信息,筛选出位于目标范围内的待选POI,目标范围是根据第一定位结果确定的位置范围;计算每个待选POI关联的无线信号数据和目标无线信号数据之间的相似性;根据相似性,从待选POI集合中筛选出目标POI;向电子设备返回目标POI,以及每个目标POI关联的POI信息和相似度或融合权重。或者,也可以向电子设备返回目标POI,以及每个目标POI关联的POI信息。

电子设备用于在目标应用通过定位接口发起定位请求后,响应于该定位请求,执行定位过程,获得定位结果,并通过定位结果向目标应用上报定位结果。定位过程可以如下:获取目标无线信号数据和惯性传感器数据;向云端服务器发送携带目标无线信号数据的定位请求,接收云端服务器针对该定位请求返回的第一定位结果;对惯性传感器数据进行处理,获得PDR数据;将第一定位结果和PDR数据进行融合定位,获得融合定位结果;向云端服务器发送查询请求,接收云端服务器针对该查询请求返回的POI位置融合结果,目标POI关联的POI信息和相似度,或者目标POI关联的POI信息,或者目标POI关联的POI信息和融合权重。

如果电子设备获取到目标POI关联的POI信息和相似度或融合权重,如果获取到相似度,则可以根据每个目标POI的相似度获得融合权重;根据融合权重,将每个目标POI的位置进行融合,获得POI位置融合结果。

如果电子设备获取到目标POI关联的POI信息,则计算目标POI关联的无线信号数据和目标无线信号数据之间的相似度,并根据该相似度将每个目标POI的位置进行融合,获得POI位置融合结果。

电子设备在获得POI位置融合结果后,还用于判断POI位置融合结果和融合定位结果之间的距离是否小于预设距离阈值;如果小于,则将POI位置融合结果和融合定位结果进行融合,获得第二定位结果;并通过定位接口向目标应用上报第二定位结果;如果大于或等于,则通过定位接口向目标应用上报融合定位结果或缓存的历史融合定位结果。其中,当电子设备根据PDR数据确定用户处于静止状态时,则上报缓存的历史融合定位结果;确定用户处于非静止状态时,则上报融合定位结果。

可选地,电子设备还用于响应于该定位请求,执行室内外识别过程,获得识别外识别结果,在通过定位结果上报融合定位结果、第二定位结果或缓存的历史融合定位结果时,一并通过定位接口扩展的室内外识别结果字段,上报室内外识别结果。

可选地,电子设备还用于在通过定位结果上报融合定位结果、第二定位结果或缓存的历史融合定位结果时,一并通过定位接口扩展的POI信息字段,上报目标POI关联的POI信息。

如果第一定位结果为无线定位结果,此时,电子设备110不用包括融合定位模块118。此时,无线定位模块根据获取到的目标无线信号数据,获得第一定位结果后,则判断POI位置融合结果和第一定位结果之间的距离是否小于预设距离阈值,如果小于,则将第一定位结果和POI位置融合结果进行融合,得到第二定位结果。POI位置融合结果的获取过程可以参见上文,在此不再赘述。PDR模块输出的PDR数据只用于静止状态检测,其他过程与融合定位结果时的过程类似,在此不再赘述。

可以理解的是,在另一些实施例中,可以把所有运算过程均放在云端服务器执行。此时,电子设备向云端服务器发送相关信息,云端服务器则根据相关信息进行运算,获得定位结果,并将相应的定位结果返回给电子设备,电子设备再通过定位结果上报接收到的定位结果。该相关信息可以包括扫描到的目标无线信号数据、惯性传感器数据、环境光信息和GNSS卫星信号等。

例如,电子设备可以向云端服务器发送扫描到的目标无线信号数据。云端服务器接收到目标无线信号数据之后,根据目标无线信号数据,获得无线定位结果;根据目标无线信号数据和每个POI关联的无线信号数据之间的相似度,从POI数据库中筛选出目标POI,并根据目标POI的相似度,获得融合权重,再使用每个目标POI的融合权重进行位置加权融合,获得POI位置融合结果;判断无线定位结果和POI位置融合结果之间的距离是否小于预设距离阈值,如果小于,则将无线定位结果和POI位置融合结果进行融合,获得第二定位结果,并向电子设备返回第二定位结果,如果大于或等于,则向电子设备返回无线定位结果。电子设备可以将接收到的无线定位结果或第二定位结果,通过定位接口上报至上层应用。

又例如,电子设备可以向云端服务器发送惯性传感器数据和目标无线信号数据,此时,云端服务器除了根据目标无线信号数据,获得无线定位结果和POI位置融合结果之外,还将PDR数据和无线定位结果进行融合,获得融合定位结果;判断融合定位结果和POI位置融合结果之间的距离是否小于预设距离阈值,如果小于,则将融合定位结果和POI位置融合结果进行融合,获得第二定位结果,并向电子设备返回第二定位结果,如果大于或等于,则向电子设备返回融合定位结果。电子设备可以将接收到的融合定位结果或第二定位结果,通过定位接口上报至上层应用。

进一步地,云端服务器还可以根据PDR数据判断用户是否静止;如果静止,则向电子设备返回缓存的历史第一定位结果;如果非静止,且第一定位结果和POI位置融合结果之间的距离小于预设距离阈值,则向电子设备返回第二定位结果,如果距离大于或等于预设距离阈值,则向电子设备返回第一定位结果。第一定位结果为第一定位结果或融合定位结果。

进一步地,电子设备还可以将环境光信息和GNSS卫星信号发送至云端服务器,云端服务器根据这些信息进行室内外识别,获得室内外识别结果,并向电子设备返回室内外识别结果。

本申请实施例提供的电子设备,可以包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述方法实施例中任一项的方法。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例还提供一种芯片系统,所述芯片系统包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现如上述各个方法实施例所述的方法。所述芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。

最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116556408