WIFI定位算法在智能体育场馆中的研究与应用
1 引言
2014年10月,国务院发布了《国务院关于加快发展体育产业促进体育消费的若干意见》文件46,提出将全民健身上升为国家战略,到2025年体育产业总规模超过5万亿元,成为推动经济社会可持续发展的重要力量。届时人均体育场地将达到2平方米,经常参加体育锻炼的人数将达到5亿,体育公共服务基本覆盖全民。
基于智能体育场的应用场景,人员或设备在室内环境中的定位尤为重要。全球定位系统(GPS)和辅助全球定位系统(A-GPS)已将室外定位推向极致,但许多类似大型体育场等室内场所的应用必须具备在任何环境中实现无缝定位的能力。尽管室内定位系统在过去几十年中取得了一些进展,但仍是全球研究的焦点。因此,近年来涌现出大量基于位置服务(Location Based Services, LBSs)的移动应用,其中基于智能体育场的定位系统亟需深入研究。
基于WIFI指纹的室内定位技术是一种流行的定位方法。国内外研究表明,其定位精度和鲁棒性优于基于射频传输延迟的三角测量及其他方法[1]。在本项目中,我们首先研究WIFI指纹定位的定位模型,然后研究提高WIFI指纹定位精度的方法,主要目的是降低设备异构性对定位精度的影响。同时,我们利用智能手机内置的位移传感器来减小指纹匹配的搜索空间,并提高位置信息的可靠性[2–6](图 1)。
指纹定位技术的关键在于建立指纹数据与地理位置之间的关系。而通过终端设备获取的无线网络RSSI信号强度是建立指纹数据的关键。各种障碍物对无线网络信号影响最为重要,其次多径传播是影响无线网络信号的另一主要因素。
匹配 算法 估计位置
位置指纹数据库
训练阶段
定位阶段
此外,环境因素(温度、湿度、风速)、无线网络设备以及各种其他电子产品产生的电磁波都会对无线网络信号强度产生较大影响,从而影响定位系统的定位精度。
尽管由于上述因素,无线网络指纹定位存在诸多问题和不足。然而,当测量点能够接收到五个以上接入点的接收信号强度指示信号强度时,无线网络指纹定位系统可以实现较高的定位精度,能够满足大多数定位需求[7]。此外,该方法可以利用已广泛布置的接入点,且无需已知接入点的位置信息,因此仅通过WiFi信息即可实现定位。因此,对于当前已布置无线网络节点的区域,无线网络指纹定位相较于基于距离测量的定位算法具有显著优势[8]。
2 无线网络指纹室内定位算法
2.1 无线网络指纹定位原理
基于无线网络指纹定位的技术利用空间信息与无线信号接收信号强度指示之间的相关特性,将测量位置处收集的无线网络无线信息与地理信息进行匹配。
在实际定位环境中,测量点接收到的n个接入点的RSSI值形成一组n维向量,并与二维地理位置构成映射关系。不同的n维接收信号强度指示向量对应不同的地理位置,然后将这些n维接收信号强度指示向量汇总构成指纹数据库。数据库中的每组数据称为一个位置指纹[9]。最后,根据接入点的接收信号强度指示信号强度的变化,将当时测得的接收信号强度指示值集合上传至定位服务器。通过与指纹数据库中的位置指纹进行匹配,选择相似度最大的位置指纹所对应的地理位置作为估计位置。基于无线网络指纹的定位算法包括两个阶段:离线训练阶段和实时定位阶段[10]。
离线训练过程 :该阶段的主要工作是工作人员在待测区域内选择若干参考点,并采集每个参考点处来自不同接入点的信号强度值。从每个参考点接收到的接入点的RSSI值、MAC地址以及参考点的地理位置信息构成一组相关的三元数据集,存储在数据库中,其中数据库中的每组数据即为一个位置指纹[11]。
实时定位过程 :在定位区域,我们通过终端设备收集所有接入点的无线网络信息,并结合将AP的MAC地址和RSSI值转换为二进制组。该二进制组作为指纹定位算法的输入,通过逐一比较找到最近条目。最后,利用与该条目对应的一个或多个位置指纹的地理坐标进行相关计算,以估计待测点的位置。
2.2 无线网络指纹定位算法
典型的无线网络位置指纹定位算法分为两类:确定性定位算法和概率定位算法[12]。确定性定位算法主要包括:最近邻方法、人工神经网络和SVM算法。概率定位算法主要包括朴素贝叶斯。最近邻方法包括:最近邻、k最近邻、加权k最近邻。本文采用基于加权k最近邻的无线网络位置指纹定位算法。针对所提出算法存在的问题与不足,本文提出了一种对WKNN的改进方案,旨在通过指纹数据库处理实现更优的定位效果。
2.2.1 K均值聚类方法
聚类是将数据对象分类到一个类别中的过程。目前,已有大量算法被提出用于解决此类问题。其中,k-均值算法是一种将数据集划分为k个类别的分析方法,是最流行的聚类方法之一。本文将K均值应用于指纹数据库的分类,并提出了改进方法以提高定位效率。
K均值算法的核心思想可解释如下:首先,从n个数据中随机选择k个中心点,然后计算其余数据到每个聚类中心的距离。根据计算出的距离值,选择最近的聚类中心,并将该数据对象归入其所代表的簇中。之后,计算每个簇中所有数据对象的平均值,并将其作为每个簇的新中心。通过迭代方法重复上述过程,直到聚类中心点与上一次完全相同,或收敛于给定的聚类准则函数,此时聚类结果最优,算法结束。
在离线阶段,无线网络位置指纹定位利用聚类算法对数据库进行分类。在在线定位时,首先计算采样点处测得的接收信号强度指示信号强度值与K个聚类中心之间的欧氏距离,找到距离最近的聚类中心,并将该点匹配到对应子区域的样本对象。
通过确定聚类中心的位置来计算位置坐标,可大大提高三月的效率。
步骤 :
(1) 从数据集X中任意选择K个聚类中心。M = {m^(1)_1, m^(1)_2, …, m^(1)_k}
(2) 计算剩余每个数据xi(i = 1, 2, …, N − K)到K个聚类中心M的欧氏距离,记为D(i, r)。假设定位区域中的接入点数量为n,xi(RSSIj)表示第i个数据对象接收到的第j个接入点的信号强度值,m^(1)_r(RSSIj)表示第r个聚类中心接收到的第j个接入点的信号强度值。如果数据对象xi未接收到第j个接入点的信号,则用一个无穷小数值代替。如公式1所示。
$$
D(i, r) = \sqrt{(xi(RSSI_1) - m^{(1)}_r(RSSI_1))^2 + \cdots + (xi(RSSI_n) - m^{(1)}_r(RSSI_n))^2}
$$
(3) 将x分配给具有最短欧几里得距离的聚类中心
(4) 计算每个簇中所有对象的平均值,并将其作为新的聚类中心点,如公式2所示。
$$
m^{(2)}
r = \frac{1}{N_r} \sum
{t=1}^{N_r} x_t \quad x_t \in C_r, r = 1, 2, …, K
$$
在公式2中,Cr表示第j类包含的数据,而Nr表示第j类数据的数量。
(5) 重复上述三个步骤,对剩余的 xi 进行分类,当 M^(p)_r 的波动小于给定聚类准则的阈值或聚类中心不再变化时,输出K类中心,算法结束。
尽管K均值是一种经典的聚类算法,当类间差异较大时,其聚类效果非常显著。然而,该算法的最终聚类结果对初始聚类中心非常敏感,选择不同的初始聚类中心会导致不同的聚类结果。如果聚类中心选择不当,算法可能陷入局部最优解,从而导致聚类失败。通常的做法是将空间K进行划分,然后在每个区域中选择初始聚类中心。尽管某些空间中的地理位置相似,但由于布局和分隔因素的影响,接收到的RSSI信号强度值可能差异很大,从而导致聚类效果不佳。
因此,本文提出根据实际待测区域的空间和布局位置,选择更合适的 K值和聚类中心。可将区域划分为若干个具有明显空间特征的子区域,从而提高匹配效率,改善实时定位效果。本文对Wi-Fi位置指纹定位的处理流程算法如下:在离线阶段,通过测量待测接入点的RSSI信号值建立位置指纹数据库,并根据上述方法将指纹数据库划分为K类。在在线定位阶段,将从采样点接收到的接入点信号强度值作为采样值。我们首先计算该采样值与K聚类中心的欧氏距离,将其划分到最近的子类中,然后使用加权K近邻方法进行位置匹配并计算位置坐标。
3 仿真结果分析
本文利用系统测量实际环境中接收的RSSI信号强度。使用同一设备在实验环境中测试了20个点,将改进算法与未改进的WKNN算法进行了比较。通过定位结果误差表可得到定位误差对比图,如图2所示。
测试结果分析:在20个测试点中,传统WKNN的最大误差为6.85米,最小定位误差为0.56米,而改进的WKNN最大定位误差为5.83米,最小定位误差为0.50米。尽管第11组数据的测量误差相同,且第4组和第8组的测量误差大于传统WKNN,其余17组数据明显降低了。结果表明,改进算法提高了传统WKNN的准确性。
此外,我们还测试了20组测试数据的定位时间,包括整个系统耗时以及每组的平均耗时数据,以比较两种算法的算法复杂度。在同一台计算机上,我们多次运行上述两种算法以完成这20组测试数据,并对多次测量时间取平均值,得到两种算法的定位时间。如表1所示,需要注意的是,定位时间与计算机性能和软件效率相关,测试结果仅供参考。
表1 时间表的位置
| 加权K近邻定位的测试时间 算法单元:毫秒(ms) | 改进后的测试时间 算法单元:毫秒(ms) | |
|---|---|---|
| 20组测试数据 总时间 | 400 | 340 |
| 平均单个定位时间 | 20 | 17 |
测试结果分析:传统WKNN的总测试时间为400毫秒,平均单个点的定位时间为20毫秒。改进算法由于选择了接入点,减少了总数据库中的数据量。在算法的后半部分还加入了聚类,使得匹配速度明显提升,系统性能得到优化。最终,总测试时间减少了60毫秒,平均单个点的定位时间减少了3毫秒。
4 Wi-Fi定位系统在智能体育场馆中的应用
本文中,智慧体育场馆内Wi-Fi定位系统的定位算法基于上述优化的 Wi-Fi指纹算法和C/S(客户端/服务器)架构。服务器端采用Java作为开发语言,指纹数据库使用MySQL数据库,客户端通过套接字进行通信。
Wi-Fi信息处理、定位算法实现和Wi-Fi信号信息存储均在服务器端完成,因此服务器必须实现数据库存储、套接字通信和算法定位三大功能。通过上述系统架构,可实现对人员和物体的定位,使终端能够智能跟踪目标,从而完成识别与分析无人直播的多个点以及运动员动作。服务器软件架构如图3所示。
数据库仅设计了一个表Finger_Print,用于存储位置信息、节点信息及其对应的WiFi信息。表2显示了该表的结构。
表2 数据库仅设计了一个名为Finger_Print的表,用于存储位置信息、节点信息及其对应的 WiFi信息
| 列名 | 描述 | Type | 限制 |
|---|---|---|---|
| uuid | 系统分配的id号 | varchar(255) | 主键 |
| apid | 待测点的 id | int(11) | 非空 |
| 位置x | X坐标 | 浮点数 | 非空 |
| 位置y | Y坐标 | 浮点数 | 非空 |
| WiFi信息 | longtext | longtext | 非空 |
5 总结
基于无线网络技术规范及其设备,本文提出了一种基于加权K近邻的改进的指纹定位算法。实验表明,本文提出的算法相比加权K近邻具有更高的定位精度和更快的运算速度。基于该算法,本文提出了智能体育场馆位置服务的解决方案。在智能体育场中,定位精度和数据采集是实现各项功能的基础。
在未来研究中,我们将创新更多方法以简化指纹采集流程,加快数据采集与数据清洗速度。同时,将利用体育场的内部结构,结合机器学习方法及其他信息技术研究成果,进一步提升定位精度与导航的实用性。我们将持续迭代体育场系统智能化,更智能、更精准地实现运动员动作的实时分析以及体育场的动态管理,解决更为复杂的问题,这是一项有意义的研究工作。
4736

被折叠的 条评论
为什么被折叠?



