室内定位算法全解析:从 NN 到 WKNN 及其变体

引言

在我们的日常生活中,导航和定位已经成为不可或缺的一部分。例如,在商场里寻找某家餐厅,在停车场找到自己的车,或者在医院里快速找到某个科室,这些都依赖于室内定位技术。然而,GPS 在室内通常无法提供高精度的定位,这就需要使用“基于位置指纹(Location Fingerprinting)”的方法来进行室内定位。

本文将从最简单的 NN(最近邻)算法 开始,逐步讲解 KNN、WKNN 及其不同变体

1. NN(最近邻算法,Nearest Neighbor)

1.1 什么是 NN 算法?

NN(Nearest Neighbor,最近邻)是一种最简单的分类与回归算法。它的基本思想是:

  1. 在定位数据库中,存储每个参考点的 RSSI(接收信号强度指示值),并记录它们的实际位置

  2. 当用户想要确定自己位置时,设备会测量当前的 RSSI 值。

  3. 通过计算当前 RSSI 值与数据库中的指纹数据的相似程度,找到最相似的那个参考点,并把它的坐标作为用户的当前位置。

1.2 在室内定位中的应用

假设你在商场里,你的手机能够接收到来自多个 WiFi 路由器的信号强度(RSSI)。NN 算法的流程如下:

  • 你当前的 RSSI 数据:AP1: -50 dBm  AP2: -60 dBm  AP3: -55 dBm

  • 数据库中某个参考点的 RSSI 数据:AP1: -49 dBm  AP2: -59 dBm  AP3: -56 dBm

  • 计算二者的相似性后发现最接近,于是将该参考点的位置作为你的当前位置

2. KNN(K-近邻算法,K-Nearest Neighbors)

2.1 KNN 的基本思想

KNN(K-近邻算法)是一种基于监督学习的分类和回归算法,在室内定位中,KNN 主要用于 基于位置指纹(Fingerprinting)的定位方法。它通过比较实时测量到的信号特征(如 RSSI、CSI 等)与已构建的指纹数据库中的参考点数据,来确定用户当前的位置。

KNN 是 NN 的改进版本。与 NN 只选择最近的 1 个点 不同,KNN 选择 K 个最近的点,然后计算它们的平均位置 作为用户的位置。

2.2 KNN 在室内定位中的应用

  1. 计算用户当前 RSSI 值与数据库中所有参考点的相似性。

  2. 选择最接近的 K 个参考点。

  3. 计算这 K 个点的坐标平均值,作为最终的定位结果。

KNN 在室内定位中的流程如下:

  1. 构建指纹数据库
    在室内环境中,预先采集多个参考点的信号特征(如 RSSI 值),并存储其对应的物理坐标 (x,y)(x, y)(x,y)。

  2. 实时信号测量
    用户的设备(如手机、UWB 设备、WiFi 设备等)采集 当前时刻的信号信息,如 WiFi RSSI、蓝牙 RSSI、UWB 距离、CSI 等

  3. 计算信号相似性

    • 计算用户当前测量的信号特征与数据库中所有参考点之间的 欧几里得距离余弦相似度
    • 欧几里得距离计算:其中,RSSIj为用户当前测得的 RSSI 值,RSSIi,j为参考点 i 在 AP j 处的 RSSI 值。​
    • 选择最近的 K 个参考点
      按照计算出的距离对所有参考点进行排序,选择 K 个最近的参考点
    • 计算用户位置

      取 K 个参考点的坐标平均值。

2.3 KNN 的优势

  • 由于考虑了多个参考点,对信号波动的适应性更强。

  • 计算简单,适用于大多数室内环境。

2.4 KNN 的缺点

  • 计算量大:需要计算所有参考点的距离,然后排序选取 K 个最接近的点。

  • K 值选择困难:K 过小容易受噪声影响,K 过大可能会降低精度。

3. WKNN(加权 K 近邻算法,Weighted KNN)

为什么需要 WKNN?

KNN 算法在计算目标位置时,只是简单地取了 K 个参考点的平均值,没有考虑它们之间的距离差异。在实际场景中,离目标点更近的参考点应该起更大的作用,这就是 WKNN 提出的原因。

3.1 WKNN 的基本思想

在 KNN 算法中,K 个最近参考点的坐标是 等权平均 计算的:

其中,wi 是第 i 个参考点的 权重,满足:

3.2 计算权重

反比权重(Inverse Distance Weight, IDW)

这种方法可以确保离用户较近的参考点 权重更大,远的点影响较小。

指数权重(Exponential Weight)

该方法可以进一步降低远距离点的影响,使得计算更加稳定。

3.3 WKNN 的优势

  1. 定位精度更高

    相较于 KNN,WKNN 通过加权计算,使得更接近用户的参考点贡献更大,有效减少远距离参考点的影响,提高定位准确性。
  2. 鲁棒性更强

    RSSI 波动、环境变化、噪声干扰 更加稳定。
  3. 适用于多种室内环境

    可用于 WiFi、蓝牙、UWB、5G、CSI 等多种信号源的定位。

3.4 WKNN 的缺点

  1. 计算量比 KNN 略大

    • 需要计算 权重,相较于 KNN 需要更多计算量。
    • 但可以使用 KD-TreeBall-Tree 进行优化,提高查询速度。
  2. 权重函数选择复杂

    • 线性加权指数加权距离倒数加权 等方式在不同环境下表现不同,需 实验调整

4. WKNN 的变体

在 WKNN(加权 K 近邻算法)的基础上,不同研究者针对 不同的室内环境、信号特性、计算效率 进行了改进,提出了多种变体。这些变体主要在 距离计算方法、加权策略、环境适应性 等方面进行了优化,以提高定位精度。

4.1.1 SE-WKNN(标准欧几里得加权 KNN)

SE-WKNN 采用 欧几里得距离(Euclidean Distance) 计算用户与指纹数据库参考点的距离:

其中:

  • RSSIj 是用户当前测得的 RSSI 值;
  • RSSIi,j 是参考点 i 在第 j 个信号源的 RSSI 值。

K 近邻参考点的权重计算方式:

计算用户位置:

4.1.2 适用场景

  • 信号传播均匀的环境,如 开放办公室、大型大厅、展览中心
  • 适用于 WiFi、蓝牙、UWB 等多种室内定位技术。

4.1.3 优势

✅ 计算简单,适用于大规模数据集。
✅ 适用于 信号传播较均匀的环境,定位误差较小。
✅ 在 无明显障碍物的开放环境 下表现较好。

4.1.4 缺点

对障碍物敏感,在有障碍物遮挡的环境下,误差可能较大。
欧几里得距离假设信号传播均匀,但在非均匀环境中,效果可能下降。

4.2.1 ED-WKNN(欧几里得距离加权 KNN)

ED-WKNN 采用欧几里得距离计算,但对距离进行 归一化处理,以适应不同信号衰减特性:

权重计算:

4.2.2 适用场景

  • 较规则的环境,如 商场、超市、会议厅,信号传播相对均匀,但受 物品摆放、墙壁反射影响
  • 适用于 WiFi、蓝牙、UWB 定位,尤其是 RSSI 波动较大的环境。

4.2.3 优势

✅ 归一化处理可以 降低不同环境信号衰减对计算的影响
✅ 在 复杂但规则的环境(如商场) 中,比 SE-WKNN 表现更稳定。
✅ 适用于信号衰减不同的多种场景。

4.2.4 缺点

❌ 计算比 SE-WKNN 略复杂,需要额外的归一化步骤。
❌ 在 非均匀信号环境(如障碍物较多的场景)下,可能需要调整参数。

4.3 MD-WKNN(曼哈顿距离加权 KNN)

MD-WKNN 采用 曼哈顿距离(Manhattan Distance) 计算用户与指纹数据库参考点的距离:

与欧几里得距离不同,曼哈顿距离 仅计算维度方向的绝对差值之和,不考虑对角方向的变化。

权重计算:

4.3.2 适用场景

  • 走廊、网格化建筑、地铁站,即 路径主要沿 X/Y 轴方向延伸的场景
  • 适用于 BLE(蓝牙)、WiFi、RFID 定位,尤其适用于 狭长的通道环境

4.3.3 优势

适用于网格化环境,如 医院、仓库、地铁站
✅ 在 走廊类环境 下,误差比欧几里得距离更小。
✅ 计算更快,不需要平方和开方计算。

4.3.4 缺点

不适用于开放空间,因为曼哈顿距离无法很好地模拟斜向移动。
对障碍物仍然敏感,若信号传播路径复杂,误差可能较大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值