一种WiFi指纹定位的方法及装置制造方法及图纸

技术编号:36647340 阅读:9 留言:0更新日期:2023-02-18 13:08
本发明专利技术提供一种WiFi指纹定位的方法及装置,该方法包括:获取指纹库,指纹库包含采集点,每个采集点包括k个WiFi信息,WiFi信息包括:无线接入点的mac信息对应的rssi信息;根据WIFI信息构造由多个链表组成的二维数组;获取待定位设备的第一WIFI信息;计算第一哈希值,并根据第一哈希值在所述二维数组的列元素中查找与第一哈希值相同的目标链表;将k个mac信息的2r个rssi值的下标h组成一个k

【技术实现步骤摘要】
一种WiFi指纹定位的方法及装置


[0001]本专利技术涉及高精度定位和模式识别领域,尤其涉及一种WiFi指纹定位的方法及装置。

技术介绍

[0002]高精度定位领域中WiFi指纹定位是通过采集实际环境中WiFi信息作为指纹库,用指纹库来实现定位的方法。不同位置接收到的WiFi信息不一样,因此这些采集到的信息可以与实际环境中的位置一一对应。不过在实际运用中,WiFi信号会受诸多环境因素的影响,同一个位置采集到的WiFi信息很大程度上不完全一样。
[0003]如何在庞大的WiFi指纹库中最快找到观测值的准确位置,是目前WiFi指纹定位的主要问题之一。针对上述问题,现有技术中主流的匹配算法有欧氏距离算法,KNN匹配算法,随机森林以及在这些基础上改进的算法,改进算法中大多是通过减少匹配次数,或者将指纹库划分为多个子区域,在子区域中匹配,来提高定位效率,但是在子区域中找最优解是一个局部最优解,不是全局的最优解。

技术实现思路

[0004]本专利技术实施例提供一种WiFi指纹定位的方法及装置,用于解决现有技术中通过减少匹配次数,或者将指纹库划分为多个子区域,来提高定位效率,但无法定位到全局最优解的问题。
[0005]为了解决上述技术问题,本专利技术是这样实现的:
[0006]第一方面,本专利技术提供了一种WiFi指纹定位的方法,包括:
[0007]获取指纹库,所述指纹库包含m
×
n个采集点,每个所述采集点包括k个WiFi信息,所述WiFi信息包括:无线接入点的mac信息对应的rssi信息;
[0008]根据所述m
×
n个采集点的WIFI信息构造由多个链表组成的二维数组,其中,每个所述链表的表头为一无线接入点的mac信息的哈希值,链表元素包括:所述m
×
n个采集点的WIFI信息中的所有与所述mac信息对应的rssi信息以及对应的所述采集点的下标;每个所述链表中的所述mac信息不同;
[0009]获取待定位设备的第一WIFI信息,所述第一WIFI信息包括:k个第一mac信息和对应的第一rssi信息;
[0010]针对每个所述第一mac信息,计算所述第一mac信息的第一哈希值,并根据所述第一哈希值在所述二维数组的列元素中查找与所述第一哈希值相同的目标链表;并在所述目标链表的链表元素中查找所述第一rssi信息所在的预设rssi区间,从所述预设rssi区间选取所述第一rssi信息前后各r个元素的rssi值,得到2r个rssi值,并确定所述2r个rssi值的下标h;将所述k个第一mac信息的2r个rssi值的下标h组成一个k
×
2r的矩阵向量;
[0011]在所述k
×
2r的矩阵向量中找到出现次数最多的目标下标h,通过所述目标下标h在所述指纹库中找到对应的采集点,完成WiFi指纹定位。
[0012]可选的,所述在所述目标链表的链表元素中查找所述第一rssi信息所在的预设rssi区间包括:
[0013]在所述目标链表的链表元素中采用二分法查找所述第一rssi信息所在的预设rssi区间;
[0014]将所述预设rssi区间与预设权值相乘得到修正后的预设rssi区间;
[0015]所述预设rssi区间为根据所述第一rssi信息确定的由rssi值组成的2
×
k的单位矩阵,所述权值为一个2
×
k的单位矩阵。
[0016]可选的,训练权值的步骤,训练权值的步骤包括:
[0017]选取至少一个已知实际位置的采集点作为测试采集点;每个所述测试采集点包括k个WiFi信息,所述WiFi信息包括:无线接入点的第二mac信息和对应的第二rssi信息;
[0018]针对每一测试采集点,执行以下步骤:
[0019]针对所述测试采集点的每个第二mac信息,计算所述第二mac信息的第二哈希值,并根据所述第二哈希值在所述二维数组的列元素中查找与所述第二哈希值相同的目标链表;并在所述目标链表的链表元素中采用二分法查找所述第二rssi信息所在的预设rssi区间,从所述预设rssi区间选取所述第二rssi信息前后各r个元素的rssi值,得到2r个rssi值,并确定所述2r个rssi值的下标h;将所述k个第二mac信息的2r个rssi值的下标h组成一个k
×
2r的矩阵向量;所述预设rssi区间为根据所述第二rssi信息确定的由rssi值组成的2
×
k的单位矩阵;
[0020]在所述k
×
2r的矩阵向量中找到出现次数最多的目标下标h,通过所述目标下标h在所述指纹库中找到对应的采集点,得到所述测试采集点的预估位置;
[0021]采用权值调整修正后的第二rssi信息所在的预设rssi区间,使得实际位置的采集点的rssi值位于所述预设rssi区间内;
[0022]遍历所有测试采集点,得到训练后的权值。
[0023]可选的,在所述预设rssi区间选取大于预设阈值的q个采集点;
[0024]获取所述q个采集点在预设坐标系中的中心点,所述预设坐标系的横轴是所述指纹库中m
×
n个采集点形成的m
×
n网格点中的第n行,纵轴是所述指纹库中m
×
n个采集点形成的m
×
n网格点中的第1列;
[0025]排除所述q个采集点中与所述中心点的欧氏距离超过预设范围的采集点;
[0026]将剩下的采集点组合一起,并对剩下的采集点进行中心点的计算,作为所述待定位设备的预估位置。
[0027]可选的,所述中心点的计算包括:
[0028]根据所述采集点的横坐标和纵坐标按照公式计算所述中心点;
[0029]其中,x为所述中心点的横坐标;y为所述中心点的纵坐标;q为所述q个采集点;x
i
为第i个采集点的横坐标;y
i
为第i个采集点的纵坐标。
[0030]可选的,若计算剩下的采集点的中心点时,所述剩下的采集点中存在边缘点,则对所述边缘点进行翻转处理;所述边缘点为位于所述横轴与所述纵轴上的采集点;
[0031]所述翻转处理包括:
[0032]判断是否有位于横轴上的边缘点,若有位于横轴上的边缘点,则以进行翻转处理前的中心点为中心且平行于所述横轴的线为轴线,将所述边缘点坐标以轴线为中心轴翻转180度;
[0033]判断是否有位于纵轴上的边缘点,若有位于纵轴上的边缘点,则以进行翻转处理前的中心点为中心且平行于所述纵轴的线为轴线,将所述边缘点坐标以轴线为中心轴翻转180度;
[0034]若翻转后的边缘点坐标超出横轴或纵轴范围,则按边缘点坐标赋值,得到翻转后的采集点,再计算中心点,完成所述WiFi指纹定位。
[0035]可选的,所述采集点的k个WiFi信息为将采集点的所有WIFI信息按照信号强度由高到低排序后的前k个WiFi信息。...

【技术保护点】

【技术特征摘要】
1.一种WiFi指纹定位的方法,其特征在于,包括:获取指纹库,所述指纹库包含m
×
n个采集点,每个所述采集点包括k个WiFi信息,所述WiFi信息包括:无线接入点的mac信息对应的rssi信息;根据所述m
×
n个采集点的WIFI信息构造由多个链表组成的二维数组,其中,每个所述链表的表头为一无线接入点的mac信息的哈希值,链表元素包括:所述m
×
n个采集点的WIFI信息中的所有与所述mac信息对应的rssi信息以及对应的所述采集点的下标;每个所述链表中的所述mac信息不同;获取待定位设备的第一WIFI信息,所述第一WIFI信息包括:k个第一mac信息和对应的第一rssi信息;针对每个所述第一mac信息,计算所述第一mac信息的第一哈希值,并根据所述第一哈希值在所述二维数组的列元素中查找与所述第一哈希值相同的目标链表;并在所述目标链表的链表元素中查找所述第一rssi信息所在的预设rssi区间,从所述预设rssi区间选取所述第一rssi信息前后各r个元素的rssi值,得到2r个rssi值,并确定所述2r个rssi值的下标h;将所述k个第一mac信息的2r个rssi值的下标h组成一个k
×
2r的矩阵向量;在所述k
×
2r的矩阵向量中找到出现次数最多的目标下标h,通过所述目标下标h在所述指纹库中找到对应的采集点,完成WiFi指纹定位。2.根据权利要求1所述的WiFi指纹定位的方法,其特征在于,所述在所述目标链表的链表元素中查找所述第一rssi信息所在的预设rssi区间包括:在所述目标链表的链表元素中采用二分法查找所述第一rssi信息所在的预设rssi区间;将所述预设rssi区间与预设权值相乘得到修正后的预设rssi区间;所述预设rssi区间为根据所述第一rssi信息确定的由rssi值组成的2
×
k的单位矩阵,所述权值为一个2
×
k的单位矩阵。3.根据权利要求2所述的WiFi指纹定位的方法,其特征在于,还包括:训练权值的步骤,训练权值的步骤包括:选取至少一个已知实际位置的采集点作为测试采集点;每个所述测试采集点包括k个WiFi信息,所述WiFi信息包括:无线接入点的第二mac信息和对应的第二rssi信息;针对每一测试采集点,执行以下步骤:针对所述测试采集点的每个第二mac信息,计算所述第二mac信息的第二哈希值,并根据所述第二哈希值在所述二维数组的列元素中查找与所述第二哈希值相同的目标链表;并在所述目标链表的链表元素中采用二分法查找所述第二rssi信息所在的预设rssi区间,从所述预设rssi区间选取所述第二rssi信息前后各r个元素的rssi值,得到2r个rssi值,并确定所述2r个rssi值的下标h;将所述k个第二mac信息的2r个rssi值的下标h组成一个k
×
2r的矩阵向量;所述预设rssi区间为根据所述第二rssi信息确定的由rssi值组成的2
×
k的单位矩阵;在所述k
×
2r的矩阵向量中找到出现次数最多的目标下标h,通过所述目标下标h在所述指纹库中找到对应的采集点,得到所述测试采集点的预估位置;采用权值调整修正后的第二rssi信息所在的预设rssi区间,使得实际位置的采集点的rssi值位于所述预设rssi区间内;
遍历所有测试采集点,得到训练后的权值。4.根据权利要求2所述的WiFi指纹定位的方法,其特征在于,还包括:在所述预设rssi区间选取大于预设阈值的q个采集点;获取所述q个采集点在预设坐标系中的中心点,所述预设坐标系的横轴是所述指纹库中m
×
n个采集点形成...

【专利技术属性】
技术研发人员:李桃蔡尽忠严镭李蒙
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1