基于Wi-Fi指纹匹配的室内定位方法(附代码)

news/2024/12/29 0:42:37/

引言

室内定位技术已广泛应用于商场导航智能家居人员搜救等领域,具有不可估量的商业价值和非常广阔的应用前景。全球导航卫星系统(GNSS)可以为室外定位提供良好的定位精度,然而在室内环境下卫星信号的衰减使得室内的位置信息获取困难,从而难以满足室内定位的需求。因此,如何实现室内环境下满足需求的定位服务成为了国内外研究的热点。在本文中,将介绍主流的室内定位技术——Wi-Fi指纹匹配定位

Wi-Fi技术概述

Wi Fi即无线保真技术(Wireless Fidelity),其遵循IEEE 802.11系列通信协议。Wi-Fi技术通过提供无线局域网接口解决了移动终端和有线网络的连接,可以极大方便人们的生活。Wi-Fi技术具有覆盖范围广,实现成本低,信息传输快等优点,通过搜索室内环
境中的无线网络节点来进行人员定位、目标监控及跟踪等功能。

在无线局域网络中,部署好的AP能够以固定发射功率发送信号,接收设备可以通过周期性扫描得到射频信号携带的数据信息,数据信息主要包括AP节点的名字,硬件的MAC地址以及信号对应的RSSI(接收信号强度指标,Received Signal Strength Indicator)数据,可以用扫描采集到的这些信息来进行室内定位。

Wi-Fi指纹定位原理

Wi-Fi指纹定位是通过建立空间中Wi-Fi信号的特征与物理位置的映射关系来实现定位。在室内环境下,Wi-Fi信号传播过程经过直射、反射以及折射后形成与环境有关的信号特征,在室内不同的位置信号强度各不相同,如下图所示。每个位置都能接收到来自不同AP的信号RSSI。
在这里插入图片描述

因此,根据Wi-Fi信号强度数值不同的分布情况,通过采集各个位置坐标的信号,经过相应处理并进行特征提取,然后对特征数据进行训练并与其位置坐标之间形成映射以此来构建指纹数据库,在进行位置定位时只需要将实时采集数据和指纹数据库中的指纹特征进行匹配,即可估计出待测点的位置。如下图所示,Wi-Fi指纹定位算法流程包括离线信号采集和在线位置定位两个阶段。
指纹定位原理
(1)离线(Offline)信号采集阶段:首先在定位区域内选取一些固定位置参考点,然后采集固定位置参考点能采集到AP的MAC地址对应的RSSI数据,预处理RSSI数据后,最后利用固定位置参考点的坐标,采集到AP的BSSID以及对应的RSSI数据构建指纹数据库。
(2)在线(Online)位置定位阶段:在相同的室内环境中采集待测点的RSSI数据,形成在线位置指纹,并将该指纹和指纹数据库中的指纹进行对比,通过选择的匹配算法从而得到待测点的位置坐标。

Wi-Fi定位方法

传统的在线匹配算法包括确定性的方法(deterministic)概率性的方法(probabilistic)

(1)确定性的算法使用相似性指标来区分在线信号测量和指纹数据,然后将目标定位在信号空间中最接近的指纹位,。欧氏距离、余弦相似度等指标已被用于信号比较。常用的方法包括:KNN(K近邻)、WKNN(加权K近邻)、SVM(支持向量机)、RF(随机森林)等。
(2)概率算法是基于目标信号测量和存储的指纹之间的统计推理,使用一个训练集,这些算法以最大的可能性找到目标的位置。常用的方法包括:贝叶斯网络、期望最大化、高斯过程等。

(上述方法较多,本文就不在赘述)

定位性能评价指标

评价室内定位算法性能时,常用的指标包括包括定位误差、平均定位误差、累计分布函数(Cumulative Distribution Function CDF)等等。
(1)定位误差
定位误差表示的是待测点实际位置和定位算法预测位置之间的欧式距离,在指纹位置定位中欧式距离公式如下:
在这里插入图片描述
(2)平均定位误差
平均定位误差是对𝑛次定位误差结果求取算术平均值,能够表征定位过程中的准确性。平均定位误差的计算公式如下:
在这里插入图片描述
(3)累积分布函数(CDF)
累积分布函数能够刻画出定位误差分布在某一个范围内的概率大小,公式如下:
在这里插入图片描述
累计分布函数曲线中横坐标代表定位误差,纵坐标表示当前定位误差下定位的准确率。由定义可知当曲线收敛的速度越快,定位算法的性能就越好,同时定位误差也相对较小。

实验代码

附上基于Wi-Fi指纹匹配的室内定位代码,里面已经包含了数据和相关算法,朋友们可以自行尝试哦~
Wi-Fi定位代码

参考文献
[1] S. He and S. . -H. G. Chan, “Wi-Fi Fingerprint-Based Indoor Positioning: Recent Advances and Comparisons,” in IEEE Communications Surveys & Tutorials, vol. 18, no. 1, pp. 466-490, Firstquarter 2016, doi: 10.1109/COMST.2015.2464084.


http://www.ppmy.cn/news/140034.html

相关文章

pwa 让你的网页可以像本地程序一样安装到电脑上,Youtube网站使用的也是当前方法 (chrome版本)

文章目录 关键技术简介pwaservice works (简称sw)看效果 实现方法:创建目录结构如下重点介绍manifest.json内容其他代码 关键技术 - pwa - service works简介 pwa 首先说明我是通过youtube发现的这个东西,上网一搜,居然是14 15年就出现的技…

GIT常用操作

上传到暂存区:git add . git add 文件或目录名 暂存区提交到仓库区:git commit -m “注释” 上传并提交至仓库区(快捷命令):git commit -am ‘注释’ 看文件状态:git status 撤消add全部操作:g…

ChatGPT出来后,为什么老有人想让我们程序员失业?

🐱 个人主页:不叫猫先生,公众号:前端舵手 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步…

如何使用Sentinel的Slot插槽实现限流熔断,看完这篇文章会有新的收获

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍如何使用Sentinel的Slot插槽实现限流熔断,后续文章将详细介绍Sentinel的其他知识。 如果文章有什么需要改进的地方还请大佬不吝赐教&#x…

VP记录:Codeforces Round 599 (Div. 2) A~D

传送门:CF 前提提要:无 A题:A. Maximum Square 刚开始的第一个想法是排序然后二分答案.但是一看范围才1000,果断直接使用暴力枚举. 考虑枚举最终的答案,然后记录有多少个 a i ai ai大于此值,然后判断能否构成一个正方形即可. #include <bits/stdc.h> using namespace…

MacBookPro M1安装 Ubuntu

1&#xff0c;下载软件 首先&#xff0c;到Parallels Desktop for Mac官网下载Parallels Desktop&#xff0c;然后安装即可。 接着&#xff0c;去ubuntu官网下载ubuntu的iso镜像。 2&#xff0c;加载镜像 首先&#xff0c;我们启动Parallels Desktop&#xff0c;然后点击…

[mac] 解决 mac 外接屏幕分辨率过高的问题

解决 mac 外接屏幕分辨率过高的问题 之前 mac 用的外接屏幕的最高分辨率是 1920 x 1080&#xff0c;使用起来很舒服。 最近换了块 2k 屏&#xff0c;默认分辨率为 2560 x 1440&#xff0c;分辨率过高导致字体很小看起来很不舒服 手动调用外接屏幕分辨率 System Preference…

全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)

原文出处 &#xff1a; 全新安装Mac OSX 开发者环境 非常好的文章 赞 用了一年的Mac OS X了&#xff0c;之前不熟悉这个系统&#xff0c;用的是系统自带的PHP 以及DMG包安装的MySQL&#xff0c;时间长了&#xff0c;慢慢觉得MacBook的速度跟不上了&#xff0c;虽然关机次数不…