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

一种室内指纹地图的构建方法及相关装置

文献发布时间:2023-06-19 18:32:25


一种室内指纹地图的构建方法及相关装置

技术领域

本申请涉及定位导航技术领域,尤其涉及一种室内指纹地图的构建方法及相关装置。

背景技术

目前,以卫星为基础的室外定位系统,例如北斗系统和全球定位系统(GlobalPositioning System,GPS),能够覆盖大部分室外定位需求。但是,由于卫星信号无法穿透建筑外墙,因此室外定位系统无法有效地在室内实现定位。

现有的室内定位系统主要是依赖于室内部署的无线接入点(Access Point,AP),例如WIFI设备或蓝牙低功耗(Bluetooth Low Energy,BLE)设备等设备。基于室内定位系统实现室内定位的过程如下:首先,在室内不同的位置预先采集大量的无线信号,构成包括多组信号指纹的信号指纹库,信号指纹库中的每组信号指纹包括了采集无线信号的位置以及无线信号的信号强度;然后,获取用户上报的信号指纹,将用户上报的信号指纹与信号指纹库内的信号指纹逐一进行比对,从而实现室内定位。

对于具有多个楼层的室内建筑而言,室内建筑内不同楼层的信号指纹是基于不同的坐标系得到的。因此,在实际应用中,往往需要将不同楼层的信号指纹转换为同一地理坐标系下的信号指纹。

然而,目前主要是基于室内建筑的电梯、楼梯或者出入口等地标来将不同楼层的信号指纹转换为同一地理坐标系下的信号指纹,信号指纹的转换可靠性较低,导致基于信号指纹所构建的室内指纹地图的精度较低。

发明内容

本申请提供了一种室内指纹地图的构建方法,能够提高信号指纹转换至地理坐标系的可靠性,保证基于信号指纹所构建的指纹地图的精度。

本申请第一方面提供一种室内指纹地图的构建方法,该方法应用于服务器中。该方法包括:服务器获取多个楼层的每个楼层中的多个信号指纹,所述多个信号指纹中的每个信号指纹包括位置信息和无线信号源的信号强度,所述多个楼层包括多个无线信号源。在服务器所获取到的同一个室内建筑内的信号指纹中,每一个楼层的信号指纹均包括有多个,且每一个楼层的信号指纹均是在该楼层的不同位置采集的。其中,每个信号指纹都包括位置信息和无线信号源的信号强度。其中,信号指纹中的位置信息是指采集无线信号的位置,无线信号源的信号强度则是采集到的无线信号源所发射的无线信号的信号强度。无线信号源例如可以为AP、移动通信基站或者蓝牙基站(例如iBeacon设备)。

服务器基于无线信号传播模型,根据所述多个信号指纹确定所述多个无线信号源中的每个无线信号源在每个楼层的投影位置。即,服务器可以获取每一个无线信号源在每个楼层中的信号强度,基于无线信号源在该楼层中的信号强度,服务器可以拟合得到无线信号源在该楼层中的中心位置,即无线信号源在该楼层中的投影位置。

服务器根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,以更新所述多个楼层的信号指纹中的位置信息,得到多个更新后的信号指纹,所述多个更新后的信号指纹中的位置信息均属于目标坐标系中的位置,所述目标坐标系为所述多个楼层的坐标系中的一个。由于不同楼层内的信号指纹的位置信息是基于不同的坐标系,因此在确定多组同一个无线信号源在不同楼层的投影位置时,即可确定不同楼层的坐标系之间位置对应的坐标点,基于这些坐标点可以实现坐标系的对齐。

服务器根据多个目标无线信号源在地理坐标系中的地理位置以及所述多个目标无线信号源在所述目标坐标系中的位置,更新所述多个更新后的信号指纹中的位置信息,得到多个二次更新后的信号指纹,所述多个目标无线信号源均为所述多个无线信号源中的无线信号源,所述多个二次更新后的信号指纹中的位置信息均属于所述地理坐标系中的位置,所述多个二次更新后的信号指纹用于构建室内指纹地图。

由于无线信号具有穿墙的特性,某一个楼层的无线信号源所发射的无线信号能够在多个楼层接收到。因此,本申请中基于无线信号的传播衰减特性,分别求取无线信号源在多个楼层中的投影位置,该无线信号源在多个楼层中的投影位置位于同一垂直线上。基于无线信号源在多个楼层中的投影位置,可以对多个楼层的信号指纹的坐标系进行对齐,实现将不同坐标系下的信号指纹统一到同一个坐标系下。最后,基于特定无线信号源在地理坐标系中的真实地理位置以及这些特定的无线信号源在统一后的坐标系中的位置,将多个楼层的信号指纹转换至地理坐标系下。

本方案中,通过求取无线信号源在不同楼层中的投影位置,来实现多个楼层的坐标系对齐,能够将多个楼层的信号指纹统一到一个坐标系下,坐标系的对齐精度高,信号指纹的转换可靠性高。并且,基于特定无线信号源在不同坐标系下的位置,来实现将信号指纹转换至地理坐标系下,能够有效提高信号指纹转换至地理坐标系的可靠性,保证基于信号指纹所构建的指纹地图的精度。

在一种可能的实现方式中,所述基于无线信号传播模型,根据所述多个信号指纹确定所述多个无线信号源中的每个无线信号源在每个楼层的投影位置,包括:根据所述多个信号指纹,获取每个无线信号源在每个楼层的不同位置的信号强度;根据每个无线信号源在每个楼层的不同位置的信号强度,以及所述无线信号传播模型,确定每个无线信号源在每个楼层的投影位置。

其中,无线信号源在实际所处楼层的投影位置即为该无线信号源实际所处的位置。例如,假设无线信号源位于2楼,那么无线信号源在2楼的投影位置即为无线信号源在2楼中实际所处的位置。无线信号传播模型例如可以为对数距离路径损耗(Log-normalDistance Path Loss,LDPL)模型、自由空间传播模型或对数-常态分布模型等模型。

在一种可能的实现方式中,所述方法还包括:获取位于所述多个楼层中的多个对象的名称,以及所述多个无线信号源的名称;对所述多个对象的名称和所述多个无线信号源的名称进行语义匹配,得到匹配的多个目标对象和所述多个目标无线信号源,所述多个目标对象和所述多个目标无线信号源一一对应。其中,所述多个楼层中的多个对象可以是指分布于所述多个楼层中的特定区域。例如,所述多个楼层中的对象可以为商场内的店铺、办公园区的办公空间、博物馆中特定的参观区域、医院中的科室等区域。

一般来说,在室内建筑建成的时候或者室内建筑内部分布有所变动的时候,相关人员通常会建立该室内建筑对应的室内地图,该室内地图可以标识室内建筑中的各个对象的信息,例如室内建筑内的对象的名称、地理位置以及联系电话等信息。因此,服务器可以通过获取该室内建筑的室内地图来获取多个楼层中的多个对象的名称。例如,在所述多个楼层为商场内的楼层时,服务器可以通过获取该商场的室内地图来获取所述多个楼层中的多个店铺的名称。

在一种可能的实现方式中,所述方法还包括:获取所述多个目标对象在地理坐标系中的地理位置;将多个目标对象在地理坐标系中的地理位置作为所述多个目标无线信号源在地理坐标系中的地理位置。

本方案中,通过获取无线信号源的名称与室内建筑中的对象的名称之间的匹配关系,来确定无线信号源在室内建筑的地理位置,从而实现基于无线信号源的地理位置将信号指纹的位置信息转换至地理坐标系下。相较于人工标定来实现坐标系转换的方式,本申请的方案能够通过语义匹配的方式自动获取无线信号源对应的地理位置,从而实现坐标系的转换,免却了人工手动标定的过程,节省了人力物力。

在一种可能的实现方式中,所述根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,包括:从所述多个楼层中选择基准楼层,所述基准楼层为所述多个楼层中具有最高的第一投影位置匹配数的楼层,所述第一投影位置匹配数为所述多个楼层中任意一个楼层中的投影位置与其他楼层的投影位置相匹配的数量,其中相匹配的两个投影位置为同一个无线信号源在不同楼层的投影位置;将所述基准楼层加入已对齐楼层集合中;从未对齐的楼层中依次选出候选楼层,并在将所述候选楼层的坐标系与所述基准楼层的坐标系进行对齐后,将所述候选楼层加入所述已对齐楼层集合,直至所有楼层均加入至所述已对齐楼层集合。

本方案中,服务器通过按照各个楼层在坐标系对齐过程中可能产生的误差大小,对楼层进行排序,按照误差大小从小到大的顺序依次选择楼层来执行坐标系的对齐,最终实现多个楼层的坐标系对齐,避免了多楼层对齐过程中的误差累积,有效提高了楼层的坐标系对齐精度。

在一种可能的实现方式中,所述从未对齐的楼层中依次选出候选楼层,包括:按照所述第一投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层;或,按照第二投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层,所述第二投影位置匹配数为所述未对齐的楼层中任意一个楼层中的投影位置与已对齐楼层集合中的投影位置相匹配的数量。

本方案中,通过比对未对齐楼层的第一投影匹配数或第二投影匹配数来确定需要优先选择的候选楼层,能够优先实现对齐误差较小的楼层的坐标系的对齐,有效避免了多楼层对齐过程中的误差累积,提高了楼层的坐标系对齐精度。

在一种可能的实现方式中,所述方法还包括:基于预设条件对所述多个无线信号源进行筛选,得到无线信号源集合,所述无线信号源集合包括多个筛选后的无线信号源;根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,包括:根据所述无线信号源集合中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐。

在本方案中,由于无线信号在传播过程中会受到室内复杂环境的影响,从而导致计算得到的无线信号源的投影位置存在误差,因此通过采用预设条件来对无线信号源进行筛选,可以筛选掉部分影响后续坐标系对齐精度的无线信号源,从而保证坐标系的对齐精度。

在一种可能的实现方式中,所述预设条件为以下条件中的一个或多个:筛选后的无线信号源在对应的投影位置的信号强度位于第一预设范围内;筛选后的无线信号源的信号在对应的投影位置的第二预设范围内的覆盖率大于或等于第一预设阈值;筛选后的无线信号源的拟合残差小于第二预设阈值,所述拟合残差为通过所述无线信号传播模型确定投影位置时所得到的残差。

在一种可能的实现方式中,所述方法还包括:获取所述多个楼层中的道路区域,并对所述多个楼层中的道路区域栅格化,得到多个道路点,所述多个道路点用于表示所述道路区域;根据所述多个道路点,对多个二次更新后的信号指纹中的位置信息进行修正,得到多个修正后的信号指纹,所述多个修正后的信号指纹用于构建室内指纹地图。

在本方案中,由于服务器所得到的二次更新后的信号指纹实际上是利用众包数据中的传感器数据和无线信号数据对室内建筑的道路区域的重构,因此信号指纹与室内地图中的道路区域存在本质上的相似特性。因此,基于室内地图所提供的道路区域数据,通过ICP算法对二次更新后的信号指纹中的位置信息进行修正,能够有效地修正信号指纹的位置信息,从而保证修正后的信号指纹的精度。

在一种可能的实现方式中,所述方法还包括:对所述多个楼层中的每个楼层进行区域划分,以使得所述每个楼层均划分有多个区域,且所述多个区域中的每个区域与所述多个区域中的其他区域具有重叠的部分;根据所述多个道路点以及所述多个修正后的信号指纹,计算所述每个区域内的变换矩阵以及变换残差,所述变换矩阵用于对所述多个修正后的信号指纹进行修正;根据所述每个楼层中的多个区域的变换残差,计算所述每个楼层中的每个区域的变换权重;根据所述每个楼层中的每个区域的变换矩阵以及变换权重,对所述多个修正后的信号指纹进行修正,得到多个二次修正后的信号指纹,所述多个二次修正后的信号用于构建室内指纹地图。

本方案中,对楼层进行多区域划分本质上是为了约束信号指纹所构成的指纹地图的形状特性,及保证局部形状的不变性,修复的是局部形状之间连接的形变。因此,楼层所划分的区域的大小决定了最终修复局部形变的区域。同时,由于所划分的区域之间存在一定的重叠区域,重叠区域能够尽可能保证不同区域在变换之后融合成整体的指纹地图时,尽可能的平滑,消除区域断裂效应,保证修正后的指纹地图的精度。

本申请第二方面提供一种服务器,包括获取单元和处理单元;所述获取单元,用于获取多个楼层的每个楼层中的多个信号指纹,所述多个信号指纹中的每个信号指纹包括位置信息和无线接入点无线信号源的信号强度,所述多个楼层包括多个无线信号源;所述处理单元,用于基于无线信号传播模型,根据所述多个信号指纹确定所述多个无线信号源中的每个无线信号源在每个楼层的投影位置;所述处理单元,还用于根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,以更新所述多个楼层的信号指纹中的位置信息,得到多个更新后的信号指纹,所述多个更新后的信号指纹中的位置信息均属于目标坐标系中的位置,所述目标坐标系为所述多个楼层的坐标系中的一个;所述处理单元,还用于根据多个目标无线信号源在地理坐标系中的地理位置以及所述多个目标无线信号源在所述目标坐标系中的位置,更新所述多个更新后的信号指纹中的位置信息,得到多个二次更新后的信号指纹,所述多个目标无线信号源均为所述多个无线信号源中的无线信号源,所述多个二次更新后的信号指纹中的位置信息均属于所述地理坐标系中的位置,所述多个二次更新后的信号指纹用于构建室内指纹地图。

在一种可能的实现方式中,所述处理单元,还用于根据所述多个信号指纹,获取每个无线信号源在每个楼层的不同位置的信号强度;所述处理单元,还用于根据每个无线信号源在每个楼层的不同位置的信号强度,以及所述无线信号传播模型,确定每个无线信号源在每个楼层的投影位置。

在一种可能的实现方式中,所述获取单元,还用于获取位于所述多个楼层中的多个对象的名称,以及所述多个无线信号源的名称;所述处理单元,还用于对所述多个对象的名称和所述多个无线信号源的名称进行语义匹配,得到匹配的多个目标对象和所述多个目标无线信号源,所述多个目标对象和所述多个目标无线信号源一一对应。

在一种可能的实现方式中,所述获取单元,还用于获取所述多个目标对象在地理坐标系中的地理位置;所述处理单元,还用于将多个目标对象在地理坐标系中的地理位置作为所述多个目标无线信号源在地理坐标系中的地理位置。

在一种可能的实现方式中,所述处理单元,还用于从所述多个楼层中选择基准楼层,所述基准楼层为所述多个楼层中具有最高的第一投影位置匹配数的楼层,所述第一投影位置匹配数为所述多个楼层中任意一个楼层中的投影位置与其他楼层的投影位置相匹配的数量,其中相匹配的两个投影位置为同一个无线信号源在不同楼层的投影位置;所述处理单元,还用于将所述基准楼层加入已对齐楼层集合中;所述处理单元,还用于从未对齐的楼层中依次选出候选楼层,并在将所述候选楼层的坐标系与所述基准楼层的坐标系进行对齐后,将所述候选楼层加入所述已对齐楼层集合,直至所有楼层均加入至所述已对齐楼层集合。

在一种可能的实现方式中,所述处理单元,还用于按照所述第一投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层;或,所述处理单元,还用于按照第二投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层,所述第二投影位置匹配数为所述未对齐的楼层中任意一个楼层中的投影位置与已对齐楼层集合中的投影位置相匹配的数量。

在一种可能的实现方式中,所述处理单元,还用于基于预设条件对所述多个无线信号源进行筛选,得到无线信号源集合,所述无线信号源集合包括多个筛选后的无线信号源;所述处理单元,还用于根据所述无线信号源集合中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐。

在一种可能的实现方式中,所述预设条件为以下条件中的一个或多个:筛选后的无线信号源在对应的投影位置的信号强度位于第一预设范围内;筛选后的无线信号源的信号在对应的投影位置的第二预设范围内的覆盖率大于或等于第一预设阈值;筛选后的无线信号源的拟合残差小于第二预设阈值,所述拟合残差为通过所述无线信号传播模型确定投影位置时所得到的残差。

在一种可能的实现方式中,所述获取单元,还用于获取所述多个楼层中的道路区域,并对所述多个楼层中的道路区域栅格化,得到多个道路点,所述多个道路点用于表示所述道路区域;所述处理单元,还用于根据所述多个道路点,对多个二次更新后的信号指纹中的位置信息进行修正,得到多个修正后的信号指纹,所述多个修正后的信号指纹用于构建室内指纹地图。

在一种可能的实现方式中,所述处理单元,还用于对所述多个楼层中的每个楼层进行区域划分,以使得所述每个楼层均划分有多个区域,且所述多个区域中的每个区域与所述多个区域中的其他区域具有重叠的部分;所述处理单元,还用于根据所述多个道路点以及所述多个修正后的信号指纹,计算所述每个区域内的变换矩阵以及变换残差,所述变换矩阵用于对所述多个修正后的信号指纹进行修正;所述处理单元,还用于根据所述每个楼层中的多个区域的变换残差,计算所述每个楼层中的每个区域的变换权重;所述处理单元,还用于根据所述每个楼层中的每个区域的变换矩阵以及变换权重,对所述多个修正后的信号指纹进行修正,得到多个二次修正后的信号指纹,所述多个二次修正后的信号用于构建室内指纹地图。

本申请第三方面提供了一种服务器,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面所述的方法。对于处理器执行第一方面的各个可能实现方式中的步骤,具体均可以参阅第一方面,此处不再赘述。

本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一实现方式所述的方法。

本申请第五方面提供了一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行上述第一方面或第一方面中任一实现方式所述的方法。

本申请第六方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一实现方式所述的方法。

本申请第七方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或门限值获取装置实现上述第一方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

附图说明

图1为本申请实施例提供的室内场景以及应用需求的示意图;

图2为本申请实施例提供的一种轻部署室内定位的技术流程;

图3为本申请实施例提供的一种应用场景的架构示意图;

图4为本申请实施例提供的一种电子设备101的结构示意图;

图5为本申请实施例提供的一种室内指纹地图的构建方法500的流程示意图;

图6为本申请实施例提供的一种不同楼层下的信号指纹所在的坐标系的示意图;

图7为本申请实施例提供的一种无线信号源信号在多楼层传输的示意图;

图8为本申请实施例提供的一种不同楼层的坐标系中的坐标点的示意图;

图9为本申请实施例提供的一种多楼层的坐标系对齐的流程示意图;

图10为本申请实施例提供的一种筛选无线信号源的示意图;

图11为本申请实施例提供的一种网格划分的示意图;

图12为本申请实施例提供的一种信号指纹的修正过程的示意图;

图13为本申请实施例提供的一种系统架构示意图;

图14a为本申请实施例提供的一种室内指纹地图构建的核心流程示意图;

图14b为本申请实施例提供的另一种室内指纹地图构建的核心流程示意图;

图15为本申请实施例提供的一种基于ASP的3D骨架构建的流程示意图;

图16为本申请实施例提供的一种ASP地标数据的组织格式示意图;

图17为本申请实施例提供的一种地图匹配的流程示意图;

图18为本申请实施例提供的一种地图POI的格式示意图;

图19为本申请实施例提供的一种室内地图的POI的示意图;

图20a为本申请实施例提供的基于POI初始对齐指纹地图的结果示意图;

图20b为本申请实施例提供的基于全局ICP修正指纹地图的结果示意图;

图20c为本申请实施例提供的基于局部ICP修正指纹地图的结果示意图;

图21为本申请实施例提供的一种服务器2100的结构示意图;

图22为本申请实施例提供的执行设备的一种结构示意图;

图23为本申请实施例提供的芯片的一种结构示意图。

具体实施方式

下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。

为便于理解,以下先介绍本申请实施例所涉及的技术术语。

无线接入点(Access Point,AP):移动设备经过无线网络进入有线网络的接入点,主要用于宽带家庭、大楼内部以及园区内部,可以覆盖几十米至上百米。常见的无线接入点包括有具备无线保真(wireless fidelity,wifi)功能的路由器、BLE设备等设备。

接收信号强度指示(Received Signal Strength Index,RSSI):终端接收信号的强度指示,用于表示终端所接收到的信号的信号强度。

指纹地图:将室内特定位置上接收到的无线信号特征序列定义为指纹,指纹地图指的是具有绝对位置信息的指纹信息数据集,可用于室内定位。

众包:众包是指通过一定的触发机制,在用户无感知的情况下,收集用户智能终端的传感器数据、射频信号及网络定位数据等可用的数据。

地理坐标系(Geographic Coordinate System):地理坐标系是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。

世界大地测量系统1984(World Geodetic System 1984,WGS84):WGS84是一种地理坐标系,是为GPS全球定位系统使用而建立的坐标系统。

随着社会的进步,人们所涉及的大部分活动,例如饮食就医、商业交易及公共娱乐等活动,均发生在室内。随着人们在室内活动的增加,室内建筑的面积也越来越大,人们往往难以在室内建筑找到需要前往的位置。随着智能终端及无线网络通信的大规模普及,面向商场、办公园区、机场车站、地下车库或医院等室内环境下的定位服务及应用需求愈加迫切。例如,室内地图导航,商铺级广告推送及增值服务,火灾救援等。

可以参阅图1,图1为本申请实施例提供的室内场景以及应用需求的示意图。如图1所示,对于商场、地下车库、医院、办公园区、机场车站以及博物馆等室内场景,大多需要提供定位服务及应用需求。这些应用需求例如可以包括室内导航、火灾救援以及广告推送应用等。

目前,以卫星为基础的定位系统,例如GPS和北斗系统能够覆盖大部分的室外定位需求。但是,由于卫星信号无法穿透建筑外墙,室内定位无法直接利用GPS和北斗系统等卫星信号,因此目前没有能够普适应用的室内定位系统。

一般来说,为了实现室内定位技术,业界目前普遍采用的室内定位方案包括重部署室内定位、轻部署室内定位和零部署室内定位。以下将分别介绍上述的多种室内方位方案。

重部署室内定位:通过在室内环境中部署特定的定位基站及通讯服务器实现室内定位。在重部署室内定位中,常用的定位技术方案包括超宽带(Ultra-Wideband,UWB)定位技术、蓝牙低能耗-到达角度(Bluetooth Low Energy Angle of Arrive,BLE-AOA)定位技术和接收强度(Received Signal Strength,RSS)定位技术。

(1)UWB定位技术。

UWB定位技术是一种全新的、与传统通信定位技术有极大差异的新技术。它利用事先布置好的且已知位置的锚节点和桥节点,与新加入的盲节点进行通讯。并且,利用到达时间(Time of Arrival,TOA)定位算法和/或到达时间差(Time Difference of Arrival,TDOA)定位算法,通过测量出不同基站与移动终端的距离或传输时延差来进行定位。超宽带系统与传统的窄带系统相比,具有穿透力强、功耗低、抗干扰效果好、安全性高、系统复杂度低以及定位精度高等优点。但是,UWB定位技术的缺点是部署成本高,且受限于发射功率,其覆盖范围小,通常应用于简单空旷的场景。

(2)BLE-AOA定位技术。

BLE-AOA定位系统通常由标签端及定位器组成,其中定位器包含天线阵列及高速定位引擎。BLE-AOA定位技术的工作原理是:标签端发射无线信号到定位器,定位器中的天线阵列从不同时间点收到同一信号源发出的无线信号。定位器通过分析无线信号的到达时间差,并借助定位器中嵌入的定位算法,可以计算出标签端相对于定位器的方位角和俯仰角;再配合对信号强度的估计,可以精确地对目标进行二维平面定位。BLE-AOA定位技术具有兼容性好、功耗小及标签成本低等优势,但是BLE-AOA定位技术需要特定的芯片支持,因此应用场景较为受限。

(3)RSS定位技术。

RSS定位技术按照定位原理可分为三边测量方法和指纹定位方法。对于三边测量方法,首先测量终端接收到的蓝牙基站的RSSI,然后根据RSSI和距离关系公式来估算终端与蓝牙基站之间的距离,最后通过三角测量的方法计算终端的位置。对于指纹定位方法,通常需要离线采集室内环境的蓝牙指纹信息,通过终端扫描的蓝牙RSSI与采集的指纹数据库进行匹配来实现定位。

轻部署室内定位:轻部署室内定位主要包括两个步骤,即离线采集和在线定位。离线采集是通过人工采集的方式构建室内多楼层的指纹数据库。在线定位是指用户向云端发起定位请求,云端通过匹配用户当前所获取的信号指纹和指纹数据库实现定位。

可以参阅图2,图2为本申请实施例提供的一种轻部署室内定位的技术流程。如图2所示,在离线指纹地图采集阶段,通过人工携带终端来按照设定的采集路径采集信号指纹,从而生成单层楼层的指纹地图,该指纹地图中包括一个楼层中所有采集到的信号指纹。然后,通过叠加多个楼层的指纹地图,得到所有楼层的指纹地图。在在线定位阶段,位于室内的用户通过终端发起定位请求,由服务器通过对终端当前所采集的信号指纹与指纹地图中的信号指纹进行匹配,从而实现定位。

一般来说,轻部署室内定位通常需要由专门的人员来按照设定的采集路径进行信号指纹的采集,需要耗费较多的人力物力,且信号指纹的采集效率低。

零部署室内定位:零部署室内定位主要包括两个步骤,即指纹地图生成和在线定位。指纹地图生成是指云端通过众包的方式收集用户在特定触发条件下的所采集的传感器数据、wifi数据、BLE数据以及GPS数据等数据,然后云端通过算法处理收集到的数据,得到用于后续室内定位的指纹地图。在线定位是指用户向云端发起定位请求,云端通过匹配用户所获取的信号指纹和指纹地图来实现定位。

其中,轻部署室内定位与零部署室内定位所构建的指纹地图都是相对坐标系下的指纹地图。通常需要将指纹地图从相对坐标系转换到采用经纬度来表示位置的地理坐标系,转换坐标系后的指纹地图才能用于后续的导航。

此外,对于零部署室内定位而言,由于每一个楼层的指纹地图的坐标系都是不一样的,因此在生成每一层的指纹地图之后需要将各个楼层的指纹地图的坐标系进行对齐。目前,相关技术中通常是利用跨层地标来实现各个楼层的坐标系对齐。具体地,相关技术中利用电梯、楼梯、扶梯等跨层地标来定位上下两个楼层的指纹地图中对应的位置,从而实现各个楼层的对齐。在将指纹地图的坐标系转换到地理坐标系的阶段,相关技术则通常采用是出入口的GPS进行粗对齐或者在存在地图时采用人工标定的方式来进行对齐。

然而,在大部分室内建筑中,跨层地标的特异性差,相邻的两个楼层之间可能分布有多个结构对称的跨层地标,从而会造成楼层对齐存在较大偏移。并且,除电梯外的楼梯和扶梯并非竖直对齐,存在水平偏移,基于楼梯和扶梯等跨层地标进行楼层对齐会造成对齐精度差。此外,楼层对齐往往需要多个相隔较远的跨层地标才能实现,这对于室内跨层地标的类型和分布要求较高,部分室内建筑难以满足该条件。并且,楼层的对齐精度极大依赖于跨层事件的起点和终点的位置精度,而这一点在众包数据中是很难得以保证的。

在将指纹地图的坐标系转换到地理坐标系的阶段,由于建筑物附近的GPS精度通常比较差,并且需要多个分布较为分散的出入口才能准确地实现坐标系的转换,因此在大部分情况下指纹地图的坐标系转换可靠性较低,导致最终所构建的室内指纹地图的精度低。此外,在基于出入口GPS对指纹地图执行坐标系转换时,基本只会对一楼这样存在较多出入口的楼层有效,其他楼层的对齐则依赖于整体楼层的对齐精度,最终会导致整体的室内指纹地图的精度较低,难以实现较高精度的定位效果。

有鉴于此,本申请中基于无线信号的传播衰减特性,分别求取无线信号源在多个楼层中的投影位置,该无线信号源在多个楼层中的投影位置位于同一垂直线上。基于无线信号源在多个楼层中的投影位置,可以对多个楼层的信号指纹的坐标系进行对齐,实现将不同坐标系下的信号指纹统一到同一个坐标系下。最后,基于特定无线信号源在地理坐标系中的真实地理位置以及这些特定无线信号源在统一后的坐标系中的位置,将多个楼层的信号指纹转换至地理坐标系下。

通过求取无线信号源在不同楼层中的投影位置,来实现多个楼层的坐标系对齐,能够将多个楼层的信号指纹统一到一个坐标系下,坐标系的对齐精度高,信号指纹的转换可靠性高。并且,基于特定无线信号源在不同坐标系下的位置,来实现将信号指纹转换至地理坐标系下,能够有效提高信号指纹转换至地理坐标系的可靠性,保证基于信号指纹所构建的指纹地图的精度。

为了便于理解,以下先介绍本申请实施例提供的室内指纹地图的构建方法的应用场景。

可以参阅图3,图3为本申请实施例提供的一种应用场景的架构示意图。如图3所示,该应用场景的架构包括云侧和端侧,云侧包括服务器,端侧包括终端。云侧中的服务器与端侧中的终端建立有无线连接。

在一个可能的场景中,云侧的服务器基于获取通过众包的方式采集的信号指纹,并基于信号指纹构建室内指纹地图。然后,云侧的服务器获取端侧的终端所上报的信号指纹,并基于指纹地图对信号指纹进行定位,再将定位结果下发给端侧的终端。

在另一个可能的场景中,云侧的服务器基于获取通过众包的方式采集的信号指纹,并基于信号指纹构建室内指纹地图。然后,服务器将室内指纹地图下发给端侧的终端。端侧的终端则基于获取到的室内指纹地图,对采集到的信号指纹进行定位,得到定位结果。

示例性地,本申请实施例所涉及的终端例如可以是手机(mobile phone)、平板电脑、个人电脑(personal computer,PC)、笔记本电脑、移动互联网设备(mobile internetdevice,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmentedreality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。该终端可以是运行安卓系统、IOS系统、windows系统以及其他系统的设备。

可以参阅图4,图4为本申请实施例提供的一种电子设备101的结构示意图。该电子设备101例如可以为上述的服务器或终端。如图4所示,电子设备101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:触摸屏等),外存储器121,(例如,硬盘、软盘、光盘或优盘),多媒体接口等)。收发器123(可以发送和/或接收无线电通信信号),摄像头155(可以捕捉静态和动态数字视频图像)和外部USB端口125。其中,可选地,和I/O接口115相连接的接口可以是USB接口。

其中,处理器103可以是任何传统处理器,包括精简指令集计算(reducedinstruction set Computing,RISC)处理器、复杂指令集计算(complex instruction setcomputing,CISC)处理器或上述的组合。可选地,处理器可以是诸如ASIC的专用装置。

终端101可以通过网络接口129和软件部署服务器149通信。示例性的,网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。

硬盘驱动器接口131和系统总线105耦合。硬件驱动接口和硬盘驱动器133相连接。内存135和系统总线105耦合。运行在内存135的数据可以包括电子设备101的操作系统(OS)137、应用程序143和调度表。

操作系统包括Shell 139和内核(kernel)141。Shell 139是介于使用者和操作系统的内核间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。

内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。内核141直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理和IO管理等等。

示例性地,在电子设备101为智能手机的情况下,应用程序143包括即时通讯相关的程序。在一个实施例中,在需要执行应用程序143时,电子设备101可以从软件部署服务器149下载应用程序143。

可以参阅图5,图5为本申请实施例提供的一种室内指纹地图的构建方法500的流程示意图。该室内指纹地图的构建方法500可以应用于服务器,该室内指纹地图的构建方法500包括以下的步骤501-504。

步骤501,获取多个楼层的每个楼层中的多个信号指纹,所述多个信号指纹中的每个信号指纹包括位置信息和无线信号源的信号强度,所述多个楼层包括多个无线信号源。

本实施例中,服务器所获取到的信号指纹可以是通过众包的方式采集得到的,并且经由用户的终端上传至服务器。通过收集不同用户在同一个室内建筑内所采集的信号指纹,服务器可以获取同一个室内建筑内的多个楼层的每个楼层中的多个信号指纹。在服务器所获取到的同一个室内建筑内的信号指纹中,每一个楼层的信号指纹均包括有多个,且每一个楼层的信号指纹均是在该楼层的不同位置采集的。

示例性地,对于一栋包括有3个楼层的室内建筑,服务器获取到该室内建筑对应的3000个信号指纹。其中,在该3000个信号指纹中,在该室内建筑的1楼所采集的信号指纹有1000个,在该室内建筑的2楼所采集的信号指纹有1200个,在该室内建筑所采集的信号指纹则有800个。

对于服务器获取到的多个信号指纹而言,每个信号指纹都包括位置信息和无线信号源的信号强度。其中,信号指纹中的位置信息是指采集无线信号的位置,无线信号源的信号强度则是采集到的无线信号源所发射的无线信号的信号强度。无线信号源例如可以为AP、移动通信基站或者蓝牙基站(例如iBeacon设备)。

可以理解的是,由于无线信号源具有穿墙的特性,因此某一个楼层中所采集到的信号指纹中可能包括位于其他楼层的无线信号源的信号强度。例如,假设在室内建筑的1楼部署有无线信号源1,该室内建筑的2楼部署有无线信号源2,该室内建筑的3楼部署有无线信号源3;那么,在2楼所采集到的信号指纹中可能同时包括有无线信号源1的信号强度、无线信号源2的信号强度以及无线信号源3的信号强度,即在2楼可以同时收到1楼至3楼的无线信号源所发射的无线信号。

示例性地,信号指纹中的信号强度可以是通过接收信号强度指示(ReceivedSignal Strength Index,RSSI)、精细时间测量(fine time measurement,FTM)或者是信道状态信息(Channel state information,CSI)来表示,本申请实施例并不限定信号强度的具体表示方式。

对于服务器所获取到的任意一个信号指纹,均可以采用(x,y,RSSI)来表示。其中,x表示信号指纹在二维空间的x轴上的坐标,y表示信号指纹在二维空间的y轴上的坐标,即x和y共同表示了信号指纹的位置坐标;RSSI则表示了信号指纹的信号强度。此外,信号指纹也可以是采用(p,RSSI)来表示,p则表示了信号指纹的位置坐标。

一般来说,服务器所获取到的信号指纹通常是基于用户在楼层内的行走轨迹得到的。即,用户在楼层中行走时,通过终端不断地采集行走轨迹上不同位置的无线信号的强度,并将在不同位置所采集到的无线信号的强度上传至服务器。这样一来,服务器可以基于用户所上传的数据,以用户的行走轨迹中的一个点为原点来构建坐标系,从而得到该楼层内不同位置相对于该原点的位置,即得到该楼层内的多个信号指纹。

由于用户在不同楼层内的行走轨迹往往是不一样的,并且不同楼层内的数据可能是由不同的用户所上传的,因此服务器所获取到的多个楼层内的信号指纹所对应的坐标系是不一样的。即,不同楼层内的信号指纹所对应的坐标系中的原点的位置并非是位于同一条垂直线上,该垂直线为垂直于地平面的直线。

示例性地,可以参阅图6,图6为本申请实施例提供的一种不同楼层下的信号指纹所在的坐标系的示意图。如图6所示,1楼中的信号指纹所在的坐标系的原点是在1楼的左侧位置;2楼中的信号指纹所在的坐标系的原点是在2楼的中心位置;3楼中的信号指纹所在的坐标系的原点是在3楼的右侧位置。很显然,1楼、2楼和3楼中的信号指纹分别位于不同坐标系下,在实际应用中,需要对齐不同楼层的坐标系,即将不同楼层的信号指纹转换至相同的坐标系下。

简单来说,对于不同楼层中的信号指纹,假设两个信号指纹所指示的位置坐标是相同的,但是由于这两个信号指纹位于不同的坐标系下,因此这两个信号指纹实际所指示的位置是不同的。

步骤502,基于无线信号传播模型,根据所述多个信号指纹确定所述多个无线信号源中的每个无线信号源在每个楼层的投影位置。

可以理解的是,在无线信号的传播特性中,无线信号传播近似于三维球面向外发射;并且,随着传输距离的增加,无线信号的信号强度逐渐降低。因此,对于某一个楼层的无线信号源而言,在该楼层的上下楼层都有可能会接收到该无线信号源发射的无线信号。并且,由于楼层之间的墙壁的遮挡,无线信号源所发射的信号穿过楼层之间的遮挡后,其信号强度会衰减一定的值。如果将楼层之间的遮挡近似为信号的均匀衰减,那么在同一楼层不同位置接收到的无线信号源信号则近似于该无线信号源在楼层切面处的信号分布。其中,楼层切面是指楼层表面上方一定高度的切面,该楼层切面平行于地平面。

示例性地,可以参阅图7,图7为本申请实施例提供的一种无线信号源信号在多楼层传输的示意图。如图7中的(a)所示,无线信号源位于1楼中,在垂直于地平面的多楼层切面上,无线信号源信号近似于三维球面向外发射,其中该多楼层切平面可以理解为竖切面。如图7中的(b)所示,在1楼的楼层切面中,该1楼的楼层切面可以理解为1楼的横切面,无线信号源信号从无线信号源所在的中心位置向外发射,且无线信号源信号的信号强度随着向外发射距离的增加而逐渐降低。如图7中的(c)所示,在2楼的楼层切面中,该2楼的楼层切面可以理解为2楼的横切面,无线信号源信号从无线信号源在2楼的投影位置向外发射,且无线信号源信号的信号强度随着向外发射距离的增加而逐渐降低。其中,无线信号源在2楼的投影位置与无线信号源在1楼的实际位置位于同一条垂直于地平面的垂直线上,即无线信号源在2楼的投影位置与无线信号源在1楼的实际位置是相对应的。

简单来说,由于无线信号源信号近似为三维球面向外发射,无线信号源信号在不同楼层的分布则可以近似为无线信号源信号在不同楼层的切面处的分布。因此,不同的楼层切面可以看做是同一球体内平行的切面,基于平行的切面之间的垂直关系,同一个无线信号源在不同楼层的投影位置会呈现垂直对齐。这样一来,基于无线信号源在不同楼层的投影位置,即可实现不同楼层的坐标系对齐。

本实施例中,基于无线信号的传播特性,采用无线信号传播模型以及不同楼层内的信号指纹,服务器可以确定各个无线信号源在每个楼层的投影位置。简单来说,服务器可以获取每一个无线信号源在每个楼层中的信号强度,基于无线信号源在该楼层中的信号强度,服务器可以拟合得到无线信号源在该楼层中的中心位置,即无线信号源在该楼层中的投影位置。

其中,无线信号源在实际所处楼层的投影位置即为该无线信号源实际所处的位置。例如,假设无线信号源位于2楼,那么无线信号源在2楼的投影位置即为无线信号源在2楼中实际所处的位置。

无线信号传播模型例如可以为对数距离路径损耗(Log-normal Distance PathLoss,LDPL)模型、自由空间传播模型或对数-常态分布模型等模型。本实施例并不对无线信号传播模型做具体限定。

具体地,服务器确定各个无线信号源在每个楼层的投影位置可以包括以下的过程:服务器根据所述多个信号指纹,获取每个无线信号源在每个楼层的不同位置的信号强度;服务器根据每个无线信号源在每个楼层的不同位置的信号强度,以及所述无线信号传播模型,确定每个无线信号源在每个楼层的投影位置。

由于在服务器所获取到的多个信号指纹中,每个信号指纹可能同时包括多个无线信号源的信号强度,因此服务器可以从多个信号指纹中选择出每个无线信号源在各个楼层的信号强度。即,服务器对多个信号指纹中不同无线信号源的信号强度进行梳理,将同一个无线信号源在各个楼层的信号强度聚合起来,以便于后续使用。服务器根据每个无线信号源在每个楼层的不同位置的信号强度,通过无线信号传播模型,拟合得到每个无线信号源在每个楼层的投影位置。

示例性地,以无线信号传播模型为LDPL模型为例,无线信号源在空间中的信号传播呈现3D球状形态,每一楼层切面上无线信号源信号的传播近似于LDPL模型。具体地,假设无线信号源信号的信号强度用RSSI来表示,无线信号源信号的传播如以下的公式一所示。

其中,P

在服务器确定每个无线信号源在各个楼层的信号强度之后,服务器可以获取到同一个无线信号源在某一个楼层中不同位置的信号强度,即服务器可以获取到大量(x,y)位置处对应的RSSI值。服务器通过将同一个无线信号源在某一个楼层中不同位置的信号强度分别代入公式一中,可以构建得到多个方程组,通过求解方程组即可求出公式一中对应的参数(x

步骤503,根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,以更新所述多个楼层的信号指纹中的位置信息,得到多个更新后的信号指纹,所述多个更新后的信号指纹中的位置信息均属于目标坐标系中的位置,所述目标坐标系为所述多个楼层的坐标系中的一个。

由于不同楼层内的信号指纹的位置信息是基于不同的坐标系,因此在确定多组同一个无线信号源在不同楼层的投影位置时,即可确定不同楼层的坐标系之间位置对应的坐标点,基于这些坐标点可以实现坐标系的对齐。

示例性地,对于任意两个楼层,在确定了多组无线信号源分别在这两个楼层中的投影位置之后,即可计算出这两个楼层的坐标系之间的变换矩阵。基于求得的变换矩阵,对其中一个楼层的信号指纹的位置信息进行变换,即可将该楼层中的信号指纹的位置信息转变为另一个楼层的坐标系下。

可以参阅图8,图8为本申请实施例提供的一种不同楼层的坐标系中的坐标点的示意图。如图8所示,1楼和2楼的楼层切面均为长方形切面,且1楼的楼层切面与2楼的楼层切面对称。在1楼中,1楼的坐标系的原点为左下角端点,在1楼的坐标系中,1楼的左下角端点、右下角端点、左上角端点、右上角端点以及中心点的坐标分别为(0,0)、(1000,0)、(0,2000)、(1000,2000)和(500,1000)。

在2楼中,2楼的坐标系的原点为中心点,在2楼的坐标系中,2楼的左下角端点、右下角端点、左上角端点、右上角端点以及中心点的坐标分别为(-500,-1000)、(500,-1000)、(-500,1000)、(500,1000)和(0,0)。显然,在不同的坐标下,1楼和2楼对应的位置上的坐标均不相同。通过坐标系变换,可以实现将2楼中的位置的坐标转换至1楼的坐标系下,从而使得2楼与1楼中对应的位置的坐标点相同。

具体地,服务器可以通过随机抽样一致性(Random Sample Consensus,RANSAC)算法来计算不同楼层的坐标之间的刚体变换关系,从而得到不同楼层的坐标系之间的变换矩阵。其中,任意两个楼层的坐标系之间的变换矩阵可以如以下的公式二所示。

其中,Rt为坐标点的变换矩阵;θ为坐标点的旋转角度;t

然后,基于求得的变换矩阵,服务器对其中一个楼层的信号指纹的位置信息进行变换,从而实现两个楼层之间的坐标系对齐。其中,服务器对信号指纹的位置信息进行变换的过程可以如以下的公式三所示。

P′=Rt*P 公式三

其中,P′为变换后的信号指纹的位置坐标;Rt为坐标点的变换矩阵;P为变换前的信号指纹的位置坐标。

此外,由于通过众包所获取的信号指纹本身存在一定的误差,在基于信号指纹数据拟合无线信号源在各个楼层的投影位置时同样会产生误差。因此,在存在大量的无线信号源的投影位置时,可以采用RANSAC算法进行外点剔除,即将大量的无线信号源的投影位置中误差较大的数据剔除。

本实施例中,服务器可以选择多个楼层中的一个楼层作为基准楼层,然后根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,将其他楼层的信号指纹的坐标系与基准楼层的信号指纹的坐标系进行对齐。也就是说,服务器可以将其他楼层的信号指纹变换至基准楼层的信号指纹所处的坐标系。

例如,假设服务器选择1楼作为基准楼层,则服务器可以基于无线信号源在1楼和2楼的投影位置,计算2楼的信号指纹变换至1楼的坐标系的变换矩阵1,并基于该变换矩阵1对2楼的信号指纹的位置信息进行变换,从而实现1楼和2楼之间的坐标系对齐。类似地,服务器可以基于无线信号源在1楼和3楼的投影位置,计算3楼的信号指纹变换至1楼的坐标系的变换矩阵2,并基于该变换矩阵2对3楼的信号指纹的位置信息进行变换,从而实现1楼和3楼之间的坐标系对齐。此外,在2楼对应的坐标系已与1楼对应的坐标系对齐时,服务器也可以是通过对齐3楼与2楼的坐标系,来实现将3楼与1楼的坐标系对齐。

总的来说,服务器在对齐多个楼层的坐标系的过程中,服务器更新所述多个楼层的信号指纹中的位置信息,得到多个更新后的信号指纹。所述多个更新后的信号指纹中的位置信息均属于目标坐标系中的位置,即所述多个更新后的信号指纹中的位置信息均处于同一个坐标系下。所述目标坐标系为所述多个楼层的坐标系中的一个,即所述目标坐标系为多个楼层中的基准楼层的坐标系。

步骤504,根据多个目标无线信号源在地理坐标系中的地理位置以及所述多个目标无线信号源在所述目标坐标系中的位置,更新所述多个更新后的信号指纹中的位置信息,得到多个二次更新后的信号指纹,所述多个目标无线信号源均为所述多个无线信号源中的无线信号源,所述多个二次更新后的信号指纹中的位置信息均属于所述地理坐标系中的位置,所述多个二次更新后的信号指纹用于构建室内指纹地图。

可以理解的是,在步骤503中,服务器是将多个楼层的信号指纹的位置信息统一到基准楼层的坐标系下,即统一对齐后的坐标系是基准楼层本身的坐标系,而基准楼层本身的坐标系也是以基准楼层中的一个位置为原点来构建的。为了将多个楼层的信号指纹的位置信息转换为地球中真实的地理位置,以便于后续的定位,服务器还需要将多个楼层的信号指纹转换至地理坐标系下。

其中,地理坐标系是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。示例性地,地理坐标系例如可以为WGS84坐标系、1954北京坐标系或1980西安坐标系。在将所述多个楼层的信号指纹的位置信息转换至地理坐标系下之后,所述多个楼层的信号指纹的位置信息则可以由经纬度来表示。

具体地,服务器可以在所述多个楼层的多个无线信号源中选择多个目标无线信号源,所述多个目标无线信号源为服务器能够获得准确的地理位置的无线信号源。即,服务器能够获得多个目标无线信号源在地理坐标系中准确的地理位置。然后,由于服务器已经实现多个楼层的坐标系的对齐,因此服务器可以获取到所述多个目标无线信号源在目标坐标系中的位置。

基于所述多个目标无线信号源分别在地理坐标系以及目标坐标系中的位置,服务器可以求取得到目标坐标系中的坐标转换至地理坐标系的变换矩阵。这样一来,服务器可以基于求得的变换矩阵,将信号指纹中的位置信息从目标坐标系转换至地理坐标系,得到多个二次更新后的信号指纹,所述多个二次更新后的信号指纹中的位置信息均属于所述地理坐标系中的位置,类似地,服务器可以是基于上述的公式二来求取目标坐标系中的坐标转换至地理坐标系的变换矩阵,并基于公式三来将信号指纹中的位置信息从目标坐标系转换至地理坐标系。

最后,在得到所述多个二次更新后的信号指纹之后,服务器则可以基于所述多个二次更新后的信号指纹构建室内指纹地图。具体地,服务器可以是将相同楼层中的二次更新后的信号指纹聚合起来,得到每个楼层中的二次更新后的信号指纹,从而形成每个楼层的指纹地图。室内指纹地图则是由多个楼层中的每个楼层的指纹地图构成。

本申请实施例中,通过求取无线信号源在不同楼层中的投影位置,来实现多个楼层的坐标系对齐,能够将多个楼层的信号指纹统一到一个坐标系下,坐标系的对齐精度高,信号指纹的转换可靠性高。并且,基于特定无线信号源在不同坐标系下的位置,来实现将信号指纹转换至地理坐标系下,能够有效提高信号指纹转换至地理坐标系的可靠性,保证基于信号指纹所构建的指纹地图的精度。

为了便于理解,以下将介绍服务器在多个楼层的多个无线信号源中确定目标无线信号源,并且获取目标无线信号源在地理坐标系中的地理位置的过程。

可以理解的是,通常在大部分需要定位的室内建筑内,均会部署有发射wifi信号的路由器作为无线信号源,而这些无线信号源的名称通常又会与室内建筑的对象具有强相关的关系。例如,在某一个具有多个楼层的商场内,商场内的店铺均会装有wifi,以供员工办公或者顾客使用。并且,wifi名称的设置通常会与该店铺的名字强绑定,一方面是便于顾客识别使用,另一方面也可以达到广告宣传的作用。

在本申请实施例中,服务器所获取到的信号指纹通常会包含无线信号源的名称属性,这一名称属性也即是某一wifi热点的名称,即wifi的服务设备标识符(Service SetIdentifier,SSID)。这样一来,当信号指纹所指示的某一个无线信号源恰好是某一商铺的wifi热点时,就可以构建无线信号源的名称与该商铺的名称之间的联系。例如,对于一个名称为“华为旗舰店”的店铺来说,该店铺内的wifi热点的名称可能设置为“huawei”(即“华为旗舰店”的部分拼音),这样即可确定名称为“huawei”的无线信号源位于该店铺内,从而确定该无线信号源的地理位置。

示例性地,服务器可以获取位于所述多个楼层中的多个对象的名称,以及所述多个无线信号源的名称,其中所述多个楼层中的多个对象可以是指分布于所述多个楼层中的特定区域。例如,所述多个楼层中的对象可以为商场内的店铺、办公园区的办公空间、博物馆中特定的参观区域、医院中的科室等区域。

一般来说,在室内建筑建成的时候或者室内建筑内部分布有所变动的时候,相关人员通常会建立该室内建筑对应的室内地图,该室内地图可以标识室内建筑中的各个对象的信息,例如室内建筑内的对象的名称、地理位置以及联系电话等信息。因此,服务器可以通过获取该室内建筑的室内地图来获取多个楼层中的多个对象的名称。例如,在所述多个楼层为商场内的楼层时,服务器可以通过获取该商场的室内地图来获取所述多个楼层中的多个店铺的名称。

此外,由于服务器所获取到的信号指纹中包含了无线信号源的名称,因此服务器可以从信号指纹中提取到多个无线信号源的名称。

然后,服务器对所述多个对象的名称和所述多个无线信号源的名称进行语义匹配,得到匹配的多个目标对象和所述多个目标无线信号源,所述多个目标对象和所述多个目标无线信号源一一对应。

示例性地,以商场内的店铺为对象为例,商场内的店铺的名称与无线信号源的名称包含特定的语义关系时,即可实现商场内的店铺的名称与无线信号源的名称之间的语义匹配。具体地,商场内的店铺的名称与无线信号源的名称的语义关系如下所示。

1.当店铺的名称为英文时,无线信号源的名称中包含完整的英文名(不区分大小写)。例如,当店铺的名称为“Panasonic”时,无线信号源的名称则可能为“Panasonic”。

2.当店铺的名称为中文时,无线信号源的名称中会包含中文翻译而来的完整英文名(不区分大小写)。例如,当店铺的名称“钻石小店”时,无线信号源的名称则可能为“diamond”。

3.当店铺的名称为中文时,无线信号源的名称中会包含中文转换的完整拼音名(不区分大小写)。例如,当店铺的名称为“华为”时,无线信号源的名称则可能为“huawei”。

4.当店铺的名称为中文时,无线信号源的名称中会包含完整中文名。例如,当店铺的名称为“华为旗舰店”时,无线信号源的名称则可能为“华为旗舰店”。

5.当店铺的名称为英文时,无线信号源的名称中会包含完整由英文翻译而来的中文名。例如,当店铺的名称为“diamond”时,无线信号源的名称则可能为“钻石店”。

以上5种情况均是完整的名称对应关系,符合以上5种情况的店铺和无线信号源均可以认为是匹配的。在一些情况下,为了方便输入和记忆,无线信号源的名称可能会采用简写的方式,例如用单词的首字母组成简写形式。这种情况下,无线信号源的名称会存在较大的歧义,在名称匹配时会有较多的匹配情况,因此对无线信号源的名称是简写的情况不做考虑。

在确定了与室内建筑的目标对象匹配的目标无线信号源之后,服务器可以基于目标对象的地理位置来确定目标无线信号源在地理坐标系中的地理位置。

具体地,服务器可以获取所述多个目标对象在地理坐标系中的地理位置,并将多个目标对象在地理坐标系中的地理位置作为所述多个目标无线信号源在地理坐标系中的地理位置。例如,在所述多个目标对象所对应的室内地图标识室内建筑中的各个对象的地理位置等信息时,服务器可以通过检索所述多个目标对象的室内地图来获取所述多个目标对象在地理坐标系中的地理位置。

本申请实施例中,通过获取无线信号源的名称与室内建筑中的对象的名称之间的匹配关系,来确定无线信号源在室内建筑的地理位置,从而实现基于无线信号源的地理位置将信号指纹的位置信息转换至地理坐标系下。相较于人工标定来实现坐标系转换的方式,本申请的方案能够通过语义匹配的方式自动获取无线信号源对应的地理位置,从而实现坐标系的转换,免却了人工手动标定的过程,节省了人力物力。

此外,相较于基于出入口GPS定位位置来实现坐标系转换的方式,本申请的方案将室内特定对象已标定的地理位置作为目标无线信号源的地理位置,来执行坐标系的转换,由于目标无线信号源的地理位置比出入口GPS定位位置更为精准,因此能够有效提高信号指纹转换至地理坐标系的可靠性,保证基于信号指纹所构建的指纹地图的精度。

在一个可能的实施例中,在执行多个楼层的坐标系的对齐过程中,为了避免多楼层对齐过程中的误差累积,服务器可以是优先对齐误差较小的楼层的坐标系。即,服务器可以是按照各个楼层在坐标系对齐过程中可能产生的误差大小,对楼层进行排序,按照误差大小从小到大的顺序依次选择楼层来执行坐标系的对齐,最终实现多个楼层的坐标系对齐。

具体地,上述的步骤503可以包括以下的步骤5031-5033。

步骤5031,从所述多个楼层中选择基准楼层,所述基准楼层为所述多个楼层中具有最高的第一投影位置匹配数的楼层,所述第一投影位置匹配数为所述多个楼层中任意一个楼层中的投影位置与其他楼层的投影位置相匹配的数量,其中相匹配的两个投影位置为同一个无线信号源在不同楼层的投影位置。

本实施例中,服务器可以先计算多个楼层中每个楼层的第一投影位置匹配数。对于任意一个楼层而言,如果该楼层中存在有某一个无线信号源的投影位置,且该无线信号源在另一个楼层中同样存在投影位置,则可以认为该楼层中具有1个与其他楼层相匹配的投影位置。因此,服务器通过计算每个楼层中的投影位置与其他楼层的投影位置相匹配的数量,即可确定每个楼层的第一投影位置匹配数。

示例性地,对于一栋具有3个楼层的室内建筑而言,假设1楼中包括10个投影位置,2楼中包括20个投影位置,3楼中包括15个投影位置。并且,1楼中存在5个与2楼的投影位置相匹配的投影位置,即1楼的第一投影位置匹配数为5。2楼中存在5个与1楼的投影位置相匹配的投影位置以及10个与3楼的投影位置相匹配的投影位置,即2楼的第一投影位置匹配数为15。3楼中存在10个与2楼的投影位置相匹配的投影位置,即3楼的第一投影位置匹配数为10。显然,在1楼至3楼这三个楼层中,2楼为第一投影位置匹配数最高的楼层。

步骤5032,将所述基准楼层加入已对齐楼层集合中。

本实施例中,服务器在确定第一投影位置匹配数最高的基准楼层之后,可以将所述基准楼层加入已对齐楼层集合中。即,服务器以基准楼层的坐标系为基准坐标系,对其他楼层的坐标系执行对齐操作。由于基准楼层加入已对齐楼层集合中,因此服务器无需对基准楼层的信号指纹的位置信息进行更新。

步骤5033,从未对齐的楼层中依次选出候选楼层,并在将所述候选楼层的坐标系与所述基准楼层的坐标系进行对齐后,将所述候选楼层加入所述已对齐楼层集合,直至所有楼层均加入至所述已对齐楼层集合。

本实施例中,服务器可以从剩下未对齐的楼层中逐个选出候选楼层,并且将选出的候选楼层的坐标系与基准楼层的坐标系进行对齐。在候选楼层的坐标系对齐之后,将该候选楼层加入至已对齐楼层集合中,并从剩余的未对齐的楼层中继续选出下一个候选楼层,以执行坐标系对齐操作,直至所有的楼层均加入至所述已对齐楼层集合。

可以理解的是,在已对齐楼层集合中的楼层数量大于或等于2个时,由于已对齐楼层集合中的楼层的坐标系都是已经对齐了的,因此服务器在对候选楼层的坐标系时,可以是选择已对齐楼层集合中的任意一个楼层来对齐候选楼层的坐标系。例如,在已对齐楼层集合中包括楼层A和楼层B,且楼层A为基准楼层的情况下,对于作为候选楼层的楼层C,由于楼层C与楼层B之间相匹配的投影位置数要大于楼层C与楼层A之间相匹配的投影位置数,因此服务器可以选择楼层B来对齐候选楼层的坐标系。也就是说,服务器可以基于楼层B与楼层C中无线信号源的投影位置,计算楼层B与楼层C之间的变换矩阵,并且基于该变换矩阵对楼层C的信号指纹的位置信息进行坐标变换,从而实现楼层C的坐标系对齐。

本方案中,服务器通过按照各个楼层在坐标系对齐过程中可能产生的误差大小,对楼层进行排序,按照误差大小从小到大的顺序依次选择楼层来执行坐标系的对齐,最终实现多个楼层的坐标系对齐,避免了多楼层对齐过程中的误差累积,有效提高了楼层的坐标系对齐精度。

具体地,服务器从未对齐的楼层中依次选出候选楼层的方式具体可以包括:服务器按照所述第一投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层;或,服务器按照第二投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层,所述第二投影位置匹配数为所述未对齐的楼层中任意一个楼层中的投影位置与已对齐楼层集合中的投影位置相匹配的数量。

简单来说,第一投影位置匹配数为所述多个楼层中任意一个楼层中的投影位置与其他所有楼层的投影位置相匹配的数量;第二投影位置匹配数则是候选楼层与已对齐楼层集合中的所有楼层的投影位置相匹配的数量。

在本实施例中,对于候选楼层而言,可以认为候选楼层的第一投影位置数或第二投影位置数越高,则候选楼层的对齐误差越小,因此服务器可以优先对齐第一投影位置数或第二投影位置数较高的候选楼层。

示例性地,可以参阅图9,图9为本申请实施例提供的一种多楼层的坐标系对齐的流程示意图。如图9所示,服务器可以先将所有的楼层加入至未对齐楼层集合中。然后,服务器选择第一投影匹配数最高的楼层(即基准楼层)加入已对齐楼层集合中。服务器再从未对齐楼层集合中选择第一投影匹配数或第二投影匹配数最高的楼层的作为候选楼层,并通过RANSAN算法计算候选楼层的变换矩阵。在得到候选楼层的变换矩阵之后,服务器更新候选楼层的信号指纹的位置信息。在更新完毕候选楼层的信号指纹之后,服务器再将更新了信号指纹的候选楼层加入已对齐楼层集合,并从未对齐楼层集合中删除该候选楼层。接下来,服务器循环上述从未对齐楼层集合中选择候选楼层,并更新候选楼层的信号指纹的过程,直至未对齐楼层集合中不再存在楼层,即所有的楼层均已实现信号指纹的更新。此外,如果未对齐楼层集合中第一投影匹配数或第二投影匹配数最高的楼层所对应的第一投影匹配数或第二投影匹配数仍小于特定阈值,则服务器也可以是停止执行楼层的坐标系对齐操作。其中,该特定阈值可以为20,即如果未对齐楼层集合中第一投影匹配数或第二投影匹配数最高的楼层所对应的第一投影匹配数或第二投影匹配数仍小于20,则服务器也可以是停止执行楼层的坐标系对齐操作。

本方案中,通过比对未对齐楼层的第一投影匹配数或第二投影匹配数来确定需要优先选择的候选楼层,能够优先实现对齐误差较小的楼层的坐标系的对齐,有效避免了多楼层对齐过程中的误差累积,提高了楼层的坐标系对齐精度。

可以理解的是,服务器获取到的信号指纹数据是通过众包的方式采集的,而众包采集的数据通常具有多样性和复杂性的特点,即众包数据中存在部分误差较大的信号指纹数据。此外,无线信号在传播过程中会受到室内复杂环境的影响,从而导致计算得到的无线信号源的投影位置存在误差。为了尽可能减少计算得到的无线信号源的投影位置的误差对坐标系对齐的影响,本申请实施例可以对无线信号源进行筛选,从而将信号指纹中误差较大的部分无线信号源对应的数据删除。

在一个可能的实施例中,服务器基于预设条件对所述多个无线信号源进行筛选,得到无线信号源集合,所述无线信号源集合包括多个筛选后的无线信号源。并且,服务器根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,具体可以包括:服务器根据所述无线信号源集合中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐。

也就是说,服务器在对所述多个楼层中的多个无线信号源进行筛选之后,得到多个筛选后的无线信号源,并且服务器可以是基于筛选后的无线信号源的投影位置来对多个楼层的信号指纹的坐标系进行对齐。

示例性地,服务器用于筛选无线信号源的所述预设条件可以为以下三个条件中的一个或多个。

条件1,筛选后的无线信号源在对应的投影位置的信号强度位于第一预设范围内。

也就是说,在无线信号源的筛选过程中,服务器将投影位置的信号强度在第一预设范围之外的无线信号源筛选掉。其中,第一预设范围可以是根据实际应用来确定或调整,本实施例并不做具体限定。例如,第一预设范围例如可以为(-90db,-30db)。即,对于无线信号源在对应的投影位置的信号强度P

条件2,筛选后的无线信号源的信号在对应的投影位置的第二预设范围内的覆盖率大于或等于第一预设阈值。

简单来说,对于满足条件2的无线信号源,该无线信号源的信号在其投影位置的一定范围内均有覆盖,且无线信号源的信号的覆盖率大于或等于第一预设阈值。其中,无线信号源的信号的覆盖率可以基于服务器获取到的信号指纹来求取。

具体地,服务器可以获取采集位置在该无线信号源对应的投影位置的第二范围内的信号指纹,从而确定该无线信号源对应的投影位置的第二范围内的信号指纹总数量。然后,服务器确定这些信号指纹中包括该无线信号源的信号指纹的数量,通过将包括该无线信号源的信号指纹的数量除以信号指纹总数量,即可得到无线信号源的信号在对应的投影位置的第二预设范围内的覆盖率。

示例性地,所述第二预设范围例如可以为15m、20m或者25m等范围值,所述第一预设阈值则可以是40%、50%或60%等数值,本申请实施例并不对此做具体限定。

例如,对于某一个无线信号源而言,服务器在确定该无线信号源在某一楼层的投影位置之后,服务器获取该楼层中距离该无线信号源的投影位置20m以内的信号指纹,并将这些信号指纹的数量记为S1。然后,服务器确定这些信号指纹中包括该无线信号源的目标信号指纹,即目标信号指纹中指示了该无线信号源的信号强度,并将目标信号指纹的数量记为S2。最后,服务器求取得到该无线信号源在对应的投影位置的20m范围内的覆盖率为S2/S1。如果覆盖率S2/S1大于或等于50%,服务器则可以确定该无线信号源满足条件2。

条件3,筛选后的无线信号源的拟合残差小于第二预设阈值,所述拟合残差为通过所述无线信号传播模型确定投影位置时所得到的残差。

具体地,由于服务器是基于上述的公式一来拟合得到无线信号源的投影位置,因此在服务器基于公式一拟合得到无线信号源的投影位置时,服务器可以确定拟合得到无线信号源的投影位置的过程中的残差。其中,服务器在基于信号指纹以及公式一求取得到公式一的参数之后,服务器可以将该信号指纹中的位置信息代入确定参数后的公式一中,从而得到各个位置上拟合后的无线信号源的信号强度。基于信号指纹中实际所指示的无线信号源的信号强度,以及拟合后的无线信号源的信号强度,服务器可以确定所述拟合残差。

本实施例中,上述的第二预设阈值例如可以为8m或10m等数值,本实施例对此并不做具体限定。

可以参阅图10,图10为本申请实施例提供的一种筛选无线信号源的示意图。如图10所示,通过上述的条件1进行无线信号源的筛选,能够筛选掉信号较弱的无线信号源以及透射距离过长的无线信号源。其中,透射距离过长是指无线信号源穿过较长距离的遮挡物,例如无线信号源信号从一楼穿墙到五楼。

通过上述的条件2进行无线信号源的筛选,能够筛选掉分布较为分散的无线信号源。一般来说,在室内建筑场景内,可能会有部分用户携带有两个或两个以上的移动终端,用户采用其中的一个移动终端作为移动热点来发射无线信号,从而为其他的移动终端提供无线服务。在这种情况下,由于用户在室内建筑内不断移动,即用户所携带的移动终端可以认为是一个移动的无线信号源,那么服务器计算得到的该无线信号源的投影位置必然是不准确的。在这种情况下,往往需要将这些无线信号源筛选掉,以免影响后续的坐标系对齐过程。因此,通过上述的条件2即可筛选掉这些分布较为分散的无线信号源,从而保证后续的坐标系对齐精度。

通过上述的条件3进行无线信号源的筛选,能够将部分受遮挡严重而导致在两个不同的区域地方出现聚集性的信号分布的无线信号源。简单来说,对于受遮挡严重而导致在两个不同的区域地方出现聚集性的信号分布的无线信号源,这部分无线信号源的无线信号分布已经不符合三维球面向外发射,即不符合上述的无线信号传播模型,因此需要将这部分无线信号源筛选掉。

在本方案中,通过采用预设条件来对无线信号源进行筛选,可以筛选掉部分影响后续坐标系对齐精度的无线信号源,从而保证坐标系的对齐精度。

本实施例中,在基于室内建筑的目标对象确定目标无线信号源的地理位置,并基于目标无线信号源的地理位置以及目标无线信号源在目标坐标系中的位置来更新信号指纹的情况下,由于无线信号源的地理位置以及目标无线信号源在目标坐标系中的位置本身存在一定的误差,因此容易到最终更新得到的信号指纹的位置信息存在一定的误差。

具体地,由于室内建筑的目标对象通常为一个区域,例如目标对象为一个面积为30平方米的店铺,而目标对象在室内地图中的位置通常是以所述目标对象的中心点的位置来表示。也就是说,目标对象的地理位置通常是指所述目标对象的中心点的地理位置,该地理位置与目标对象外的道路区域通常具有一定的距离。

此外,目标无线信号源在目标坐标系中的位置是通过众包采集得到的信号指纹数据拟合得到的,由于在众包采集的过程中,用户通常是在室内建筑的道路区域,因此通过众包采集得到的信号指纹的位置信息往往是位于室内建筑的道路区域,而非室内建筑的目标对象内。那么,基于大部分的位置信息均是位于室内建筑的道路区域的信号指纹来拟合目标无线信号源的位置时,所拟合得到的目标无线信号源的位置通常也是偏向于位于道路区域上,而非目标对象的内部。

这样一来,由于目标对象的地理位置是在目标对象的中心点,该中心点距离道路区域具有一定的距离,而服务器求得的目标无线信号源在目标坐标系中的位置则是偏向于位于道路区域,那么在将目标对象的地理位置作为目标无线信号源的地理位置时,则会产生一定的误差。也就是说,基于目标对象来实现将信号指纹的坐标系从目标坐标系转换至地理坐标系会不可避免地存在一定的偏移,因此服务器可以对转换至地理坐标系的信号指纹进行修正。

在一个可能的实施例中,服务器可以获取所述多个楼层中的道路区域,并对所述多个楼层中的道路区域栅格化,得到多个道路点,所述多个道路点用于表示所述道路区域。其中,服务器对道路区域栅格化是指服务器将实际空间中的道路区域以图像中的多个像素点来表示,每个像素点具有与道路区域对应的位置信息。

然后,服务器根据所述多个道路点,对多个二次更新后的信号指纹中的位置信息进行修正,得到多个修正后的信号指纹,所述多个修正后的信号指纹用于构建室内指纹地图。例如,服务器可以是通过迭代最近邻(Iterative Closest Point,ICP)算法对多个二次更新后的信号指纹中的位置信息进行修正。

由于道路区域栅格化之后所得到的多个道路点均具有对应的位置信息,且所述多个二次更新后的信号指纹中也包括位置信息,因此服务器可以基于ICP算法,选择信号指纹所对应的采集位置与道路点之间的最近邻点,来计算信号指纹的位置信息的变换矩阵,并且计算信号指纹基于该变换矩阵执行位置变换后的变换误差。通过基于ICP算法不断地迭代执行前述计算变换矩阵以及变换误差的过程,直至最终的变换误差收敛位置。通过ICP算法,服务器可以对信号指纹的位置信息进行修正,从而得到多个修正后的信号指纹。

在本方案中,由于服务器所得到的二次更新后的信号指纹实际上是利用众包数据中的传感器数据和无线信号数据对室内建筑的道路区域的重构,因此信号指纹与室内地图中的道路区域存在本质上的相似特性。因此,基于室内地图所提供的道路区域数据,通过ICP算法对二次更新后的信号指纹中的位置信息进行修正,能够有效地修正信号指纹的位置信息,从而保证修正后的信号指纹的精度。

可以理解的是,在基于道路区域对二次更新后的信号指纹执行整体对齐之后,受限于众包采集得到的数据的准确性,信号指纹所构成的指纹地图中的局部位置与道路区域的贴合程度不够,需要进一步进行局部精细化修正。因此,本实施例中,可以采用网格化局部加权融合的思路对整体的对齐结果(即二次更新后的信号指纹)进行进一步的局部精细化修正。即,对整体的对齐结果进行网格划分,同时保证相邻网格之间足够的重叠度,在每个网格内对道路区域与信号指纹的位置信息进行修正,同时保存变换残差。最后,根据变换残差,计算各个网格的变换矩阵的权重,在将各个网格中求解的变换矩阵乘上对应的权重后,对整体的对齐结果进行变换并求和获得最终的对齐结果。

可选的,所述方法500还包括以下的步骤505-508。

步骤505,对所述多个楼层中的每个楼层进行区域划分,以使得所述每个楼层均划分有多个区域,且所述多个区域中的每个区域与所述多个区域中的其他区域具有重叠的部分。

其中,服务器所划分得到的同一楼层中的每个区域的面积相同,且每个区域都与其他区域中的部分区域具有重叠的部分。

示例性地,服务器可以对每个楼层都进行网格划分,从而将每个楼层都划分得到多个网格,且每个网格的面积均为该网格所在楼层的面积的1/N,N为大于1的数。例如,每个网格的长为该网格所在楼层的长的1/2,每个网格的宽为该网格所在楼层的宽的1/2,因此每个网格的面积为该网格所在楼层的面积的1/4。在划分网格的过程中,服务器可以依次将当前的网格往右或者往下移动一定距离,从而得到下一个网格。

可以参阅11,图11为本申请实施例提供的一种网格划分的示意图。如图11所示,服务器为该楼层划分为网格的大小为该楼层的面积的1/4。服务器所划分得到的网格1位于楼层的左上方,在划分网格的过程中,服务器可将网格1往右移动2.5m得到网格2,服务器可将网格1往下移动2.5m得到网格3。依次类推,服务器继续对网格2和网格3进行移动,得到其他的网格,最终实现整个楼层的网格划分。

步骤506,根据所述多个道路点以及所述多个修正后的信号指纹,计算所述每个区域内的变换矩阵以及变换残差,所述变换矩阵用于对所述多个修正后的信号指纹进行修正。

本实施例中,服务器在划分得到每个楼层的多个区域之后,服务器例如可以是通过所述ICP算法在每个区域内单独计算该区域内的变换矩阵以及变换残差。其中,所述变换矩阵用于对所述多个修正后的信号指纹进行修正。所述变换残差则是基于所述多个修正后的信号指纹本身的位置信息以及基于所述变换矩阵对所述多个修正后的信号指纹进行修正后的位置信息得到的。

步骤507,根据所述每个楼层中的多个区域的变换残差,计算所述每个楼层中的每个区域的变换权重。

在得到每个楼层中的多个区域的变换残差之后,服务器可以计算每个楼层中的每个区域的变换权重。示例性地,服务器可以基于以下的公式四和公式五计算得到每个区域的变换权重。

w

其中,w

步骤508,根据所述每个楼层中的每个区域的变换矩阵以及变换权重,对所述多个修正后的信号指纹进行修正,得到多个二次修正后的信号指纹,所述多个二次修正后的信号用于构建室内指纹地图。

在得到同一个楼层内的每个区域的变换矩阵以及变换权重之后,服务器可以将每个区域的变换矩阵与该区域的变换权重相乘,得到每个区域对应的实际变换矩阵。然后,服务器基于每个区域对应的实际变换矩阵对该楼层中的信号指纹的位置信息进行修正,得到多个变换结果,最后,服务器对所述多个变换结果求和后得到多个二次修正后的信号指纹。

示例性地,可以参阅图12,图12为本申请实施例提供的一种信号指纹的修正过程的示意图。如图12所示,变换至地理坐标系下的二次更新后的信号指纹存在一定的偏移,通过采用ICP进行全局修正(即第一次修正)之后,修正后的信号指纹与道路区域整体对齐。在对楼层进行多区域划分,并且基于各个区域的变换矩阵对信号指纹进行第二次修正之后,信号指纹的位置点基本上能够变换到道路区域上,保证了信号指纹的精度。

在本方案中,对楼层进行多区域划分本质上是为了约束信号指纹所构成的指纹地图的形状特性,及保证局部形状的不变性,修复的是局部形状之间连接的形变。因此,楼层所划分的区域的大小决定了最终修复局部形变的区域。同时,由于所划分的区域之间存在一定的重叠区域,重叠区域能够尽可能保证不同区域在变换之后融合成整体的指纹地图时,尽可能的平滑,消除区域断裂效应,保证修正后的指纹地图的精度。

以上介绍了本申请实施例提供的室内指纹地图的构建方法,为便于理解,以下将结合具体例子详细介绍室内指纹地图的构建过程。此外,为便于叙述,以下将以无线信号源为AP为例,介绍室内指纹地图的构建过程。

首先,介绍本申请实施例提供的室内指纹地图的构建方法所应用的系统架构。

可以参阅图13,图13为本申请实施例提供的一种系统架构示意图。如图13所示,云端收集用户通过手机端上传的众包数据,并对众包数据进行规整化处理。然后,云端通过指纹地图构建算法构建多楼层指纹地图,通过定位服务模块为手机端提供室内全楼层的定位服务。以下将分别对云端和手机端中的模块以及处理过程进行详细介绍。

众包数据:云端从手机端所接收的传感器数据。众包数据例如可以包括GPS数据、速度计数据、陀螺仪数据、磁力计数据、气压计数据及扫描到的无线信号信息如WiFi信息、蓝牙信息等射频信息。

众包数据规整化:云端对原始由不同的手机端所上传的众包数据,先通过数据标准进行校验,识别有效的众包数据;然后,再根据GPS信息和无线信号信息,按照国家、城市等信息进行进行粗粒度的分类存储。其中,由于手机端所上传的众包数据中可能会丢失部分数据或者是时序不对齐,因此云端可以按照预先设定的数据标准对众包数据进行校验,以使得用于构建指纹地图的众包数据符合数据的输入标准。

指纹地图构建算法包括:平层骨架聚合,3D骨架构建和地图匹配。

平层骨架聚合:基于众包数据,获取基于传感器数据获取的步行者航位推算(Pedestrian Dead Reckoning,PDR)数据和wifi信息。然后,利用聚合算法,获得每个楼层的指纹地图,每个楼层的指纹地图则由大量的信号指纹构成。其中,PDR数据对步行者行走的步数、步长、方向进行测量和统计,推算出步行者的行走轨迹和位置等信息。PDR数据可以是基于众包数据中的加速度数据、陀螺仪数据以及地磁数据等数据,通过分析加速度信号来实现步频探测和步长估计。

3D骨架构建:根据各个楼层的指纹地图中提取的无线信号的位置信息,对每个楼层的指纹地图进行坐标对齐,获得相对坐标系下的多楼层3D指纹地图。其中,3D骨架构建主要包括两个关键模块:无线访问接入点切面投影(Access point Section Projection,ASP)地标提取和3D楼层对齐。

a.ASP地标提取:根据各个楼层的指纹地图中AP信号的空间分布数据,拟合AP在楼层切面的投影位置和信号强度,并将多个楼层相同AP的投影信息组合起来,构建特异性的3D ASP地标。

b.3D楼层对齐:根据ASP地标的3D特征的空间属性,即同一个AP在不同楼层切面的投影位置垂直对齐,可根据同一个AP在不同楼层切面的投影位置计算不同楼层的坐标系之间的转换关系,实现不同楼层坐标系的对齐。

地图匹配:根据ASP地标与室内地图中兴趣点(Point Of Interest,POI)的关联关系,获得楼层的相对坐标系与地理坐标系之间的初始变换关系。其中,室内地图中的POI即为上述的目标对象。然后,根据地图上道路区域的信息与指纹地图,通过ICP算法进行指纹地图的精细修正。其中,地图匹配主要包括两个关键模块:基于POI的初始对齐和基于ICP的地图优化。

a.基于POI的初始对齐:根据指纹地图中ASP地标的语义属性,即信号指纹中AP的名称(例如wifi热点的ssid),与室内地图提供的POI的名称之间存在的潜在语义关系进行索引匹配,并根据索引到的POI的绝对位置信息与ASP的坐标进行初始变换计算。

b.基于ICP的地图优化:根据地图的道路区域数据以及POI初始对齐的结果,通过ICP算法实现指纹地图与室内地图的整体对齐。然后,采用局部ICP算法,进行局部形变的修正,最终融合生成优化后的结果。

多楼层指纹地图:是云端通过众包数据生成的不同建筑物的指纹地图数据库。

云端定位服务:云端向手机端提供定位服务接口,并根据接收到的定位请求及指纹数据,通过定位算法以及指纹地图对手机端进行定位,并将定位结果返回给手机端。此外,云端也可以将该建筑物的指纹地图推送至用户的手机端,以支撑用户在无网络或者网络信号较差运行离线定位功能。

本地定位模块:手机端根据传感器获取的指纹信息,对云端发送定位请求,接收云端定位结果。在无网络信号或者网络信号较差的情况下,手机端可以利用事先缓存的指纹地图进行离线定位,并结合运动传感器、GPS等的数据进行融合定位;

离线指纹地图:手机事先从云端服务器上下载的指纹地图数据,以支撑无网络信号或者网络信号较差时的离线定位。

传感器数据:手机端利用自身传感器数据可实现一定程度的定位功能,并且需要将自身的传感器数据上传至云端服务器,以支撑众包数据采集。

可以参阅图14a和图14b,图14a为本申请实施例提供的一种室内指纹地图构建的核心流程示意图;图14b为本申请实施例提供的另一种室内指纹地图构建的核心流程示意图。如图14a所示,本申请实施例提供的室内指纹地图的构建方法的核心流程包括上述基于ASP的3D骨架构建步骤以及地图匹配步骤。其中,基于ASP的3D骨架构建步骤对应于上述图5对应的实施例中的步骤501-503,地图匹配步骤对应于上述图5对应的实施例中的步骤504。

可以参阅图15,图15为本申请实施例提供的一种基于ASP的3D骨架构建的流程示意图。如图15所示,基于ASP的3D骨架构建主要包括两个步骤:ASP地标提取步骤和3D楼层对齐步骤。

步骤一:ASP地标提取。

ASP地标提取包括两个步骤,分别为AP位置拟合和ASP地标生成。

(1)AP位置拟合。

在AP位置拟合的过程中,由于AP在空间中的信号传播呈现3D球状形态,每一楼层切面上AP信号的传播近似于LDPL模型,因此可以基于上述的公式一来拟合求取AP在每个楼层上的投影位置。

(2)ASP地标生成。

在获得每个楼层中包含的各个AP的投影位置之后,可以根据AP的媒体存取控制(Media Access Control,MAC)地址来合并同一个AP在多个楼层的信息,从而构建出多楼层的ASP地标数据。其中,MAC地址能够唯一标识一个AP,因此基于AP的MAC地址能够实现同一个AP的数据的聚合。

可以参阅图16,图16为本申请实施例提供的一种ASP地标数据的组织格式示意图。如图16所示,ASP地标数据包括:MAC地址、AP名称、楼层信息、楼层编号、AP在楼层中的投影位置、投影位置的RSSI值、投影位置(即图16中的中心位置)20m以内的覆盖率以及拟合误差。

由于ASP地标数据是通过众包数据获取的,而众包数据多样性和复杂性较大,获得的ASP地标数据会存在误差,并且无线信号在传播过程中会受到室内复杂环境的影响,导致AP的投影位置拟合存在误差。为了尽可能减低这种误差对提取ASP地标的影响,需要对原始的ASP地标质量进行筛选。具体地,本实施例中可以是基于上述实施例所述的三个条件中的一个或多个来对ASP地标进行筛选。

步骤二:3D楼层对齐。

在获得楼层的ASP地标之后,云端可以根据同一个ASP地标的“floor_info”属性下的多条楼层信息,以及所述多条楼层信息中各个楼层信息中的“location”信息来确定不同楼层之间的匹配点对关系。其中,“floor_info”属性用于表示ASP具有投影位置的楼层的信息,“location”信息用于表示某一个楼层中的投影位置具体的位置信息。根据多个ASP地标提供的多对匹配点对的信息,云端可以计算出不同楼层骨架之间的变换矩阵,从而实现多路层的3D骨架对齐。

由于指纹地图在聚合过程中会存在误差,且拟合ASP地标的投影位置时也会存在误差,因此在存在大量的ASP地标时,云端可以采用RANSAC算法进行外点剔除。此外,RANSAC算法还用于计算信号指纹的坐标间的刚体变换关系,从而实现不同楼层间的坐标系对齐。具体地,云端可以基于上述实施例中的公式二和公式三来实现不同楼层间的坐标系对齐。

可以参阅图17,图17为本申请实施例提供的一种地图匹配的流程示意图。如图17所示,地图匹配主要包括两个步骤:基于POI的初始对齐步骤和基于ICP的地图修正步骤。

步骤三:基于POI的初始对齐。

基于ASP地标的语义信息(即AP的名称)与地图中POI数据潜在的语义联系,可以获得AP名称与POI名称之间的匹配关系,进而实现将ASP地标与地图POI之间关联,利用多个ASP与POI之间的匹配关系,即可获得多对ASP的相对坐标与POI附带的WGS84坐标之间的对应关系,从而获得指纹地图到WGS84坐标系下的转换关系,实现多楼层的初始变换。

示例性地,可以参阅图18,图18为本申请实施例提供的一种地图POI的格式示意图。云端通过检索室内地图,可以获取室内地图中POI的相关信息。其中,POI的相关信息包括:POI的名称、POI的位置(其中lat表示维度,lng表示经度)、POI的类型、POI所在楼层的编号、POI的入口位置、POI出口位置、POI联系电话以及POI几何信息。

步骤四:基于ICP的地图修正。

由于POI在地图中会表示成一个区域,也即是“geometry”属性表示的内容,且POI通常是通过多边形来表示,而POI的“location”通常会选择为多边形的中心点,如图19所示。图19为本申请实施例提供的一种室内地图的POI的示意图。然而,指纹地图上的ASP地标采用的是众包的行人行走的轨迹拟合出来的位置,这些ASP地标的位置反映的只能是近似的真实AP的位置,并非准确的AP实际位置。并且,这些ASP地标的位置通常会比较偏向于在骨架上,也即是道路区域。因此采用POI进行初始对齐不可避免的会存在偏移,需要进一步对初始结果进行修正。

由于道路区域栅格化之后所得到的多个道路点均具有对应的位置信息,且所述多个二次更新后的信号指纹中也包括位置信息,因此服务器可以基于ICP算法,选择信号指纹所对应的采集位置与道路点之间的最近邻点,来计算信号指纹的位置信息的变换矩阵,并且计算信号指纹基于该变换矩阵执行位置变换后的变换误差。通过基于ICP算法不断地迭代执行前述计算变换矩阵以及变换误差的过程,直至最终的变换误差收敛位置。通过ICP算法,服务器可以对信号指纹的位置信息进行修正,从而得到多个修正后的信号指纹。

在基于道路区域对二次更新后的信号指纹执行整体对齐之后,受限于众包采集得到的数据的准确性,信号指纹所构成的指纹地图中的局部位置与道路区域的贴合程度不够,需要进一步进行局部精细化修正。因此,本实施例中,可以采用网格化局部加权融合的思路对整体的对齐结果(即二次更新后的信号指纹)进行进一步的局部精细化修正。即,对整体的对齐结果进行网格划分,同时保证相邻网格之间足够的重叠度,在每个网格内对道路区域与信号指纹的位置信息进行ICP修正,同时保存变换残差。最后,根据变换残差,计算各个网格的变换矩阵的权重,在将各个网格中求解的变换矩阵乘上对应的权重后,对整体的对齐结果进行变换并求和获得最终的对齐结果。

本方案中,通过在众包数据中所挖掘的ASP地标,能够实现自动化、高精度的指纹地图构建,同时自动化索引地图数据中包含的POI数据,实现绝对坐标的初始映射,最后之后基于地图中的道路数据,自动化完成基于道路区域的地图修正,无需人工干预,自动化程度高且指纹地图的生成效率高。此外,基于本方案构建的多楼层3D指纹地图,平均定位精度可达到5-10m,定位精度高。

为了验证本方案的有益效果,本申请实施例基于众包数据,对某一个室内商场的多个楼层进行了指纹地图的构建。

可以参阅图20a-20c,图20a为本申请实施例提供的基于POI初始对齐指纹地图的结果示意图;图20b为本申请实施例提供的基于全局ICP修正指纹地图的结果示意图;图20c为本申请实施例提供的基于局部ICP修正指纹地图的结果示意图。其中,B2、B1、F1-F10分别为该室内商场内的楼层。

由图20a-20c可以看出,基于POI初始对齐的指纹地图存在一定的偏移,通过采用ICP进行全局修正(即第一次修正)之后,修正后的指纹地图与道路区域整体对齐。在对楼层进行多区域划分,并且基于各个区域的变换矩阵对信号指纹进行第二次修正之后(即基于局部ICP修正指纹地图),指纹地图的位置点基本上能够变换到道路区域上,保证了指纹地图的精度。

在图1至图20c所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。

可以参阅图21,图21为本申请实施例提供的一种服务器的结构示意图。如图21所示,该服务器包括获取单元2101和处理单元2102;所述获取单元2101,用于获取多个楼层的每个楼层中的多个信号指纹,所述多个信号指纹中的每个信号指纹包括位置信息和无线信号源的信号强度,所述多个楼层包括多个无线信号源;所述处理单元2102,用于基于无线信号传播模型,根据所述多个信号指纹确定所述多个无线信号源中的每个无线信号源在每个楼层的投影位置;所述处理单元2102,还用于根据所述多个无线信号源中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐,以更新所述多个楼层的信号指纹中的位置信息,得到多个更新后的信号指纹,所述多个更新后的信号指纹中的位置信息均属于目标坐标系中的位置,所述目标坐标系为所述多个楼层的坐标系中的一个;所述处理单元2102,还用于根据多个目标无线信号源在地理坐标系中的地理位置以及所述多个目标无线信号源在所述目标坐标系中的位置,更新所述多个更新后的信号指纹中的位置信息,得到多个二次更新后的信号指纹,所述多个目标无线信号源均为所述多个无线信号源中的无线信号源,所述多个二次更新后的信号指纹中的位置信息均属于所述地理坐标系中的位置,所述多个二次更新后的信号指纹用于构建室内指纹地图。

在一种可能的实现方式中,所述处理单元2102,还用于根据所述多个信号指纹,获取每个无线信号源在每个楼层的不同位置的信号强度;所述处理单元2102,还用于根据每个无线信号源在每个楼层的不同位置的信号强度,以及所述无线信号传播模型,确定每个无线信号源在每个楼层的投影位置。

在一种可能的实现方式中,所述获取单元2101,还用于获取位于所述多个楼层中的多个对象的名称,以及所述多个无线信号源的名称;所述处理单元2102,还用于对所述多个对象的名称和所述多个无线信号源的名称进行语义匹配,得到匹配的多个目标对象和所述多个目标无线信号源,所述多个目标对象和所述多个目标无线信号源一一对应。

在一种可能的实现方式中,所述获取单元2101,还用于获取所述多个目标对象在地理坐标系中的地理位置;所述处理单元2102,还用于将多个目标对象在地理坐标系中的地理位置作为所述多个目标无线信号源在地理坐标系中的地理位置。

在一种可能的实现方式中,所述处理单元2102,还用于从所述多个楼层中选择基准楼层,所述基准楼层为所述多个楼层中具有最高的第一投影位置匹配数的楼层,所述第一投影位置匹配数为所述多个楼层中任意一个楼层中的投影位置与其他楼层的投影位置相匹配的数量,其中相匹配的两个投影位置为同一个无线信号源在不同楼层的投影位置;所述处理单元2102,还用于将所述基准楼层加入已对齐楼层集合中;所述处理单元2102,还用于从未对齐的楼层中依次选出候选楼层,并在将所述候选楼层的坐标系与所述基准楼层的坐标系进行对齐后,将所述候选楼层加入所述已对齐楼层集合,直至所有楼层均加入至所述已对齐楼层集合。

在一种可能的实现方式中,所述处理单元2102,还用于按照所述第一投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层;或,所述处理单元2102,还用于按照第二投影位置匹配数从高到低的顺序,从所述未对齐的楼层中依次选出候选楼层,所述第二投影位置匹配数为所述未对齐的楼层中任意一个楼层中的投影位置与已对齐楼层集合中的投影位置相匹配的数量。

在一种可能的实现方式中,所述处理单元2102,还用于基于预设条件对所述多个无线信号源进行筛选,得到无线信号源集合,所述无线信号源集合包括多个筛选后的无线信号源;所述处理单元2102,还用于根据所述无线信号源集合中的每个无线信号源在不同楼层的投影位置,对所述多个楼层的信号指纹的坐标系进行对齐。

在一种可能的实现方式中,所述预设条件为以下条件中的一个或多个:筛选后的无线信号源在对应的投影位置的信号强度位于第一预设范围内;筛选后的无线信号源的信号在对应的投影位置的第二预设范围内的覆盖率大于或等于第一预设阈值;筛选后的无线信号源的拟合残差小于第二预设阈值,所述拟合残差为通过所述无线信号传播模型确定投影位置时所得到的残差。

在一种可能的实现方式中,所述获取单元2101,还用于获取所述多个楼层中的道路区域,并对所述多个楼层中的道路区域栅格化,得到多个道路点,所述多个道路点用于表示所述道路区域;所述处理单元2102,还用于根据所述多个道路点,对多个二次更新后的信号指纹中的位置信息进行修正,得到多个修正后的信号指纹,所述多个修正后的信号指纹用于构建室内指纹地图。

在一种可能的实现方式中,所述处理单元2102,还用于对所述多个楼层中的每个楼层进行区域划分,以使得所述每个楼层均划分有多个区域,且所述多个区域中的每个区域与所述多个区域中的其他区域具有重叠的部分;所述处理单元2102,还用于根据所述多个道路点以及所述多个修正后的信号指纹,计算所述每个区域内的变换矩阵以及变换残差,所述变换矩阵用于对所述多个修正后的信号指纹进行修正;所述处理单元2102,还用于根据所述每个楼层中的多个区域的变换残差,计算所述每个楼层中的每个区域的变换权重;所述处理单元2102,还用于根据所述每个楼层中的每个区域的变换矩阵以及变换权重,对所述多个修正后的信号指纹进行修正,得到多个二次修正后的信号指纹,所述多个二次修正后的信号用于构建室内指纹地图。

接下来介绍本申请实施例提供的一种执行设备,请参阅图22,图22为本申请实施例提供的执行设备的一种结构示意图,执行设备2200具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备2200上可以部署有图22对应实施例中所描述的数据处理装置,用于实现图22对应实施例中数据处理的功能。具体的,执行设备2200包括:接收器2201、发射器2202、处理器2203和存储器2204(其中执行设备2200中的处理器2203的数量可以一个或多个,图22中以一个处理器为例),其中,处理器2203可以包括应用处理器22031和通信处理器22032。在本申请的一些实施例中,接收器2201、发射器2202、处理器2203和存储器2204可通过总线或其它方式连接。

存储器2204可以包括只读存储器和随机存取存储器,并向处理器2203提供指令和数据。存储器2204的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器2204存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。

处理器2203控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器2203中,或者由处理器2203实现。处理器2203可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2203中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2203可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器2203可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2204,处理器2203读取存储器2204中的信息,结合其硬件完成上述方法的步骤。

接收器2201可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器2202可用于通过第一接口输出数字或字符信息;发射器2202还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器2202还可以包括显示屏等显示设备。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。

本申请实施例提供的执行设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的编译方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体的,请参阅图23,图23为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为处理器2300,NPU 2300作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2303,通过控制器2304控制运算电路2303提取存储器中的矩阵数据并进行乘法运算。

在一些实现中,运算电路2303内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路2303是二维脉动阵列。运算电路2303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2303是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2308中。

统一存储器2306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)2305,DMAC被搬运到权重存储器2302中。输入数据也通过DMAC被搬运到统一存储器2306中。

BIU为Bus Interface Unit即,总线接口单元2323,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2309的交互。

总线接口单元2323(Bus Interface Unit,简称BIU),用于取指存储器2309从外部存储器获取指令,还用于存储单元访问控制器2305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2306或将权重数据搬运到权重存储器2302中或将输入数据数据搬运到输入存储器2301中。

向量计算单元2307包括多个运算处理单元,在需要的情况下,对运算电路2303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元2307能将经处理的输出的向量存储到统一存储器2306。例如,向量计算单元2307可以将线性函数;或,非线性函数应用到运算电路2303的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2307生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2303的激活输入,例如用于在神经网络中的后续层中的使用。

控制器2304连接的取指存储器(instruction fetch buffer)2309,用于存储控制器2304使用的指令;

统一存储器2306,输入存储器2301,权重存储器2302以及取指存储器2309均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

技术分类

06120115603790