发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种基于WiFi经纬度的室内定位方法及装置,旨在解决现有技术中WiFi室内定位花费过多人力物力导致成本较高的问题。
本发明的技术方案如下:
一种基于WiFi经纬度的室内定位方法,其包括如下步骤:
在接收到移动终端的WiFi扫描请求时,记录当前室内空间中检测到的WiFi信号的信号参数以及移动终端的经纬度信息形成数据库;
根据数据库中的信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定;
当进行室内定位时,扫描已标定的WiFi信号获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标以及移动终端接收到的信号强度计算当前移动终端的经纬度。
所述的基于WiFi经纬度的室内定位方法中,所述根据数据库中的信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定,包括:
根据数据库中的信号参数,将同一个WiFi信号按信号强度划分为若干个强度区间,对各个强度区间内的经纬度信息进行聚类;
根据各个强度区间内的经纬度信息对相应强度区间的经纬度进行标定。
所述的基于WiFi经纬度的室内定位方法中,所述根据各个强度区间内的经纬度信息对相应强度区间的经纬度进行标定,具体包括:
将各个强度区间内的经纬度信息经预设算法优化后获取对应强度区间的经纬度坐标,完成经纬度标定。
所述的基于WiFi经纬度的室内定位方法中,所述根据所述信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定之后,包括:
每间隔预设时间获取新检测到的WiFi信号的信号参数以及移动终端的经纬度信息,对数据库进行更新;
根据更新后的数据库中的信号参数以及移动终端经纬度信息,对各个WiFi信号的经纬度重新进行标定。
所述的基于WiFi经纬度的室内定位方法中,所述当进行室内定位时,扫描已标定的WiFi信号获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标以及移动终端接收到的信号强度计算当前移动终端的经纬度,包括:
扫描已标定的WiFi信号获取其经纬度坐标;
根据移动终端接收到的信号强度计算当前移动终端与所述已标定的WiFi信号的距离;
通过已标定的WiFi信号的经纬度坐标以及当前移动终端与所述已标定的WiFi信号的距离计算当前移动终端的经纬度。
所述的基于WiFi经纬度的室内定位方法中,所述根据移动终端接收到的信号强度计算当前移动终端与所述已标定的WiFi信号的距离,具体包括:
根据如下公式计算当前移动终端与所述已标定的WiFi信号的距离d,d=10^(abs(rssi)-A)/(10×n)),其中rssi为信号强度,A为距离信号发射端1米处的信号衰减值,n为环境衰减因子。
所述的基于WiFi经纬度的室内定位方法中,所述预设算法为最小二乘法。
本发明又一实施例还提供了一种基于WiFi经纬度的室内定位装置,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述基于WiFi经纬度的室内定位方法。
本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于WiFi经纬度的室内定位方法。
本发明的另一实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的基于WiFi经纬度的室内定位方法。
有益效果:本发明公开了一种基于WiFi经纬度的室内定位方法及装置,相比于现有技术,本发明实施例通过在移动终端扫描WiFi时记录WiFi信息以及经纬度信息形成数据库,根据获得的WiFi信息和经纬度信息对WiFi经纬度进行标定,进而根据WiFi经纬度实现室内定位,无需人为预先采集WiFi指纹库数据,节省了大量的人力物力,相比传统的WiFi指纹库定位成本更低且数据库采集方式更灵活。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
请参阅图1,图1为本发明提供的基于WiFi经纬度的室内定位方法较佳实施例的流程图。如图1所示,其包括如下步骤:
S100、在接收到移动终端的WiFi扫描请求时,记录当前室内空间中检测到的WiFi信号的信号参数以及移动终端的经纬度信息形成数据库;
S200、根据数据库中的信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定;
S300、当进行室内定位时,扫描已标定的WiFi信号获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标以及移动终端接收到的信号强度计算当前移动终端的经纬度。
本实施例中,在进行室内定位前,需要先对WiFi信号的经纬度进行标定,由于目前移动终端用户在室内空间中经常发起WiFi连接请求,此时移动终端GPS定位可获取到当前移动终端的经纬度信息,根据移动终端的经纬度信息来推算WiFi的经纬度,因此本实施例通过移动终端用户在扫描WiFi时获取到WiFi列表,记录当前室内空间中检测到的WiFi信号的信号参数,包括WiFi的MAC地址以及接收到的WiFi信号强度等等,同时记录下当前移动终端的经纬度信息形成数据库,根据该数据库中的信号参数以及移动终端经纬度信息对WiFi信号的经纬度进行标定,得到各个WiFi信号的经纬度坐标,之后在进行室内定位时,若移动终端用户无法通过GPS定位,则可通过扫描WiFi,扫描到已标定的WiFi信号时获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标,以及移动终端接收到的WiFi信号强度计算得出当前移动终端的经纬度,从而实现WiFi经纬度的标定以及基于WiFi经纬度的室内定位。本发明在采集数据库时,由于无需人为的预先采集WiFi指纹库数据,在用户主动发起WiFi扫描请求时即可获得大量的WiFi数据形成数据库,节省了大量的人力物力,因此降低了WiFi信号室内定位的成本。
进一步地,所述根据数据库中的信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定,包括:
根据数据库中的信号参数,将同一个WiFi信号按信号强度划分为若干个强度区间,对各个强度区间内的经纬度信息进行聚类;
根据各个强度区间内的经纬度信息对相应强度区间的经纬度进行标定。
本实施例中,在进行WiFi信号经纬度标定时,由于室内的移动终端GPS定位结果不精确,因此本实施例通过WiFi的信号强度和多个移动终端的经纬度信息的统计值来校准优化进而完成WiFi信号的经纬度标定,先根据数据库中的信号参数,将同一个WiFi信号按信号强度划分为若干个强度区间,对各个强度区间内的经纬度信息进行聚类,具体实施时,数据库中不同移动终端会扫描到多个WiFi信号且信号强度均不相同,因此根据数据库中WiFi信号的MAC地址,对于同一个MAC地址按信号强度大小划分为若干个强度区间,例如以固定强度步长划分多个强度区间[-10,-20),[-20,-30),…),对各个区间内的经纬度信息进行聚类,将各个强度区间中远离聚类中心的离散点剔除,提高标定准确度,之后再根据各个强度区间内的经纬度信息对相应强度区间的经纬度进行标定,获取到各个WiFi信号不同强度区间的经纬度坐标,通过区间划分更加便于寻找WiFi信号的中心以及覆盖范围,配合信号强度标定获取到各个强度区间的经纬度坐标也有利于提高后续室内地位的准确性。
进一步地,所述根据各个强度区间内的经纬度信息对相应强度区间的经纬度进行标定,具体包括:
将各个强度区间内的经纬度信息经预设算法优化后获取对应强度区间的经纬度坐标,完成经纬度标定。
本实施例中,同一个MAC地址的各个强度区间内均有多个经纬度信息,根据各个强度区间内的经纬度信息的统计值进行误差优化,具体实施时,通过最小二乘法进行优化后得到该区间的估计经纬度坐标,从而完成对各个强度区间的经纬度标定。
更进一步地,所述根据所述信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定之后,包括:
每间隔预设时间获取新检测到的WiFi信号的信号参数以及移动终端的经纬度信息,对数据库进行更新;
根据更新后的数据库中的信号参数以及移动终端经纬度信息,对各个WiFi信号的经纬度重新进行标定。
本实施例中,由于室内空间发起WiFi扫描请求的移动终端是时刻变化的,因此在对WiFi信号的经纬度进行标定后会出现新的WiFi信号参数以及相应移动终端的经纬度信息,为提高本发明提供的室内定位的自适应性,在WiFi经纬度标定结束之后,每隔预设时间(例如每隔一周)获取新检测到的WiFi信号的信号参数以及移动终端经纬度信息,将新获得的数据加入数据库中,对数据库进行更新,根据更新后的数据库中信号参数以及经纬度信息,对WiFi信号的经纬度重新进行标定,具体则为重复上述标定过程,对同一个MAC地址的WiFi信号按强度进行区间划分,对每个区间内的数据进行聚类优化后获得区间内新的标定的经纬度坐标,实现WiFi信号的经纬度坐标的自适应调整,使得WiFi经纬度会根据最新WiFi信息地变动而更新,使标定结果更具有鲁棒性,进一步提高后续室内定位的准确性。
进一步优选地,可根据数据库中数据的获取时间定期过滤筛选,例如定期筛选出半年前获取到的WiFi信息和移动终端经纬度信息,将这部分数据滤除数据库中,保证当前数据库中数据的实时性,避免由于WiFi信号发射端更换等原因导致之前的陈旧数据可靠性降低的现象。
进一步地,所述当进行室内定位时,扫描已标定的WiFi信号获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标以及移动终端接收到的信号强度计算当前移动终端的经纬度,包括:
扫描已标定的WiFi信号获取其经纬度坐标;
根据移动终端接收到的信号强度计算当前移动终端与所述已标定的WiFi信号的距离;
通过已标定的WiFi信号的经纬度坐标以及当前移动终端与所述已标定的WiFi信号的距离计算当前移动终端的经纬度。
进一步地,当用户在室内无法通过GPS定位时,可通过移动终端扫描室内的WiFi信号,当扫描到已标定的WiFi信号时获取该WiFi信号的经纬度坐标,之后根据移动终端接收到的该WiFi信号的信号强度计算移动终端与该WiFi信号之间的距离,具体实施时,可根据WiFi信号强度和距离的转换公式计算得到移动终端与WiFi信号之间的距离d,具体d=10^(abs(rssi)-A)/(10×n)),其中rssi为信号强度,A为距离信号发射端1米处的信号衰减值,n为环境衰减因子;此时已知了WiFi信号的经纬度坐标以及移动终端与WiFi信号之间的距离,因此可通过已标定的WiFi信号的经纬度坐标以及当前移动终端与WiFi信号之间的距离计算当前移动终端的经纬度,进而实现基于WiFi经纬度的室内定位过程,具体在计算移动终端的经纬度时,已标定的WiFi信号的经纬度坐标为(lon,lat),且此时已知移动终端与WiFi信号之间的距离d,则可根据两点间的距离以及一个点的经纬度坐标计算另一个点的经纬度,即获得移动终端的经纬度(lon’,lat’),实现定位,此计算方法为现有技术,此处不做详述。因此,本发明通过用户扫描请求获取WiFi强度信息、MAC地址以及移动终端经纬度信息,通过这些信息达到WiFi经纬度标定的目的,进而实现基于WiFi经纬度的室内定位,不需要人为提前进行离线指纹库数据采集,获取用户在发起WiFi扫描时的上述数据即可,在节约了WiFi信号室内定位的同时,由于本发明基于自生成数据进行WiFi经纬度标定且定期更新数据库,使得WiFi标定过程更加具有自适应性,室内定位结果也更加的准确。
本发明另一实施例提供一种基于WiFi经纬度的室内定位装置,如图2所示,装置10包括:
一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。
处理器110用于完成装置10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于WiFi经纬度的室内定位方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行装置10的各种功能应用以及数据处理,即实现上述方法实施例中的基于WiFi经纬度的室内定位方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据装置10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的基于WiFi经纬度的室内定位方法,例如,执行以上描述的图1中的方法步骤S100至步骤S300。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S300。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明丽非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的基于WiFi经纬度的室内定位方法。例如,执行以上描述的图1中的方法步骤S100至步骤S300。
综上所述,本发明公开的基于WiFi经纬度的室内定位方法及装置中,所述方法包括:在接收到移动终端的WiFi扫描请求时,记录当前室内空间中检测到的WiFi信号的信号参数以及移动终端的经纬度信息形成数据库;根据数据库中的信号参数以及移动终端的经纬度信息对各个WiFi信号的经纬度进行标定;当进行室内定位时,扫描已标定的WiFi信号获取其经纬度坐标,根据已标定的WiFi信号的经纬度坐标以及移动终端接收到的信号强度计算当前移动终端的经纬度。本发明实施例通过在移动终端扫描WiFi时记录WiFi信息以及经纬度信息形成数据库实现室内定位,无需人为预先采集WiFi指纹库数据,节省了大量的人力物力,相比传统的WiFi指纹库定位成本更低且数据库采集方式更灵活。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供基于WiFi经纬度的室内定位方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。