Data-Driven Navigation/Bluetooth Indoor Localization

论文 A Data-Driven Inertial Navigation/Bluetooth Fusion Algorithm for Indoor Localization (IEEE Sensors Journal, 2022) 阅读笔记。

Data-Driven Navigation/Bluetooth Indoor Localization

论文介绍

  • 标题:A Data-Driven Inertial Navigation/Bluetooth Fusion Algorithm for Indoor Localization
  • 作者:Jianfan Chen, Baoding Zhou, Shaoqian Bao, et al.
  • 期刊:IEEE Sensors Journal 2022
  • 源码:未开源

1 Introductio

室内 Location-based Services(LBS)的传统方法存在的问题:

  • 目前手机上都配备了小型、廉价而高效的 IMU,但是这些 IMU 存在着噪声和偏置,使得惯导受到影响。
  • 传感器+相机结合的方法,但是相机会造成额外的计算成本和电池消耗。
  • 基于步数的行人航迹推算(PDR,step-based pedestrian dead reckoning)使用惯性测量进行步长计算、步长分割、步长估计和步向估计。通过步长更新,虽然系统能解决惯性偏移问题,但行走习惯会影响计算结果。此外,步长检测中的周期性假设是不成立的,如果手机放在推车上,则无法检测到步数。

数据驱动的定位方法:

  • 定义:使用短时间内的 IMU 数据和 GT 运动轨迹回归运动参数(如速度和方向),Vicon、Apple ARKit、Google Tango 等用于获取 GT 数据进行训练。
  • 效果较好的方法:Robust IMU double integration(RIDI)[1]、IONet[2]、AI-IMU[3]、Backdrop Kalman Filter[4]。
  • 缺点:
    • 当起点未知时,惯导只能获取全局坐标系的相对坐标而不是绝对坐标;
    • 惯性追踪的不断进行,系统不可避免的会产生漂移。
  • 改进方法:使用 Wi-Fi、BLE 进行定位,BLE 相对更加精准。

BLE-based 定位:

  • ranging-based:三角化。
  • non-ranging-based:指纹算法。
  • 缺点:障碍物会影响定位精度。

融合 sensor-based 和 BLE-based 的解决方法:

  • 可用方法:EKF、UKF、Particle Filter。
  • 对 BLE 的校准:使用 Channel State Information(CSI),但仍然面对着较大的误差。

本文聚焦在探索数据驱动的惯导和 BLE-based 定位融合,使用如下贡献达到更好的室内定位效果:

  • 提出了一种利用粒子滤波融合数据驱动的惯导和 BLE-based 定位进行室内定位的方法。
  • 有效地结合了利用重力稳定 IMU 数据的方法(坐标系对齐),使网络对行人运动特征的回归更具鲁棒性。
  • 给出了基于 GT 和 IMU 传感器测量跨多个设备的视觉惯性里程计数据集。

2 Methodology

如 Fig.1 为本文方法的主要框架,由 3 个关键部分组成:

  • 数据驱动的惯性导航:使用 IMU 和训练好的 DNN 预测行人运动的距离和方向(得到运动向量)。
  • 基于 BLE 的定位:将 RSS(Received Signal Strength)和阈值比较,选择稳定的方法进行 BLE-based 定位。
  • 粒子滤波:融合运动向量和 BLE 定位结果,产生最终定位输出。

2.1 Data-Driven Inertial Navigation

本文提出的数据驱动惯性导航方法包含三个关键步骤:

  1. 获取序列学习所需的训练数据;
  2. 通过坐标对齐方法提取与手机携带方式无关的数据;
  3. 利用深度神经网络学习数据特征与运动特征之间的关系进行距离和航向回归。

2.1.1 Data Acquisition

  • 使用监督学习的方法:利用 GT 运动轨迹和 IMU 数据回归运动参数。

假设用户在平面上运动,则运动参数的回归是在 2D 平面上进行的。文章考虑 4 种用户携带手机的方式:翻看(texting)、手持(swinging)、打电话(calling)、放包中(pocket)。用户一只手持 Tango 拍摄运动轨迹的 GT,另一只手携带 Samsung Galaxy S8 来获取 IMU 数据。

  • 对于 GT 运动轨迹,从 Tango 上的 VIO 利用 RIDI 中的方法[5]得到 3D 相机位姿。Tango 可以提供低漂移的运动轨迹,这可以作为伪 GT。
  • 对于 IMU 数据,实际的数据获取实验发现惯性数据会被附上时间戳。
  • TangoIMURecorder 产生位姿的频率为 200Hz,因此将 IMU 数据通过线性插值与 Tango 位姿进行同步。

2.1.2 Coordinate Frame Alignment

加速度计和陀螺仪数据用于提取运动数据,但是由于携带手机的方式很多样(如 Fig.2),使得手机内部的 IMU 坐标系很不稳定。这种手机携带方法的任意性导致了仅依靠 IMU 难以获取准确的运动向量。因此,RIDI 提出了一种稳定的坐标框架,从 IMU 传感器数据中提取与手机方向无关的数据。

通过 Android API 记录原始加速度计、陀螺仪和重力测量结果。将手机的 y 轴与负重力方向对齐,加速度计和陀螺仪的数据可以在固定的坐标系中表示,如 Fig.3。

为了抑制高频噪声,将对齐的加速度计和陀螺仪数据应用 σ=2.0\sigma = 2.0 的高斯平滑。此外,由于 Tango 从 Android API 中提供全局坐标系下的位姿,因此要将速度矢量转换到稳定的坐标系下:

  • 假设用户和智能手机对齐到同一个坐标系。当用户在平坦的地面上行走,即垂直位移为零时,可以将位姿数据转换为稳定的航向和位移。

这些对准的加速度计和陀螺仪数据与运动特征相结合,构成 DNN 的训练数据。

2.1.3 Distance and Heading Regression

DNN 的结构如下:

网络的输入为数秒内的 IMU 数据特征(对齐后的加速度计和陀螺仪数据),输出为运动特征(距离和方向)。

使用加速度计、陀螺仪、重力和 3D 相机在坐标系对齐模块。在大小为 nn 的时间窗口上执行回归任务,使网络学习定位距离 Δl\Delta l 和方向 Δψ\Delta \psi

(Δl,Δψ)=RNN({(ai,ωi)}i=1n)(\Delta l, \Delta \psi) = RNN (\{ (a_i, \omega_i) \}_{i=1}^n)

使用两层双向 LSTM,每层 LSTM 有 256 个隐藏状态。为避免过拟合,在每个 LSTM 后面接概率为 0.5 的 dropout 层,随机将输入元素变为 0。最后连接一个全连接层,执行对位置距离变化和方向变化的回归。预测和 GT 的均方误差(mean square error)用于作为损失函数。选择 Adam 优化器和 TensorFlow 进行网络搭建。

如 Fig.5,实验室验证了窗口大小为 200、400、600 帧的实验结果,发现窗口大小为 400 时可以快速下降损失(因此选择 n=400n = 400,即向网络输入大小为 2400 的来自加速度计和陀螺仪的特征数据)。在通过网络获得 Δl\Delta lΔψ\Delta \psi 后,运动的下一个位置则可以描述为

{x=x0+Δl×cos(ψ0+Δψ)y=y0+Δl×sin(ψ0+Δψ)\begin{cases} x = x_0 + \Delta l \times \cos (\psi_0 + \Delta \psi) \\ y = y_0 + \Delta l \times \sin (\psi_0 + \Delta \psi) \end{cases}

其中 (x0,y0)(x_0, y_0) 表示前一次的位置,ψ0\psi_0 表示前一次的方向。

2.2 BLE-Based Localization

通过三边测量(trilateration)使用 RSS 进行定位。且离 BLE beacon 越近,RSS 值越大:

RSS(λ)=RSS(λ0)10ηlog(λλ0)+XσRSS(\lambda) = RSS(\lambda_0) - 10 \eta \log (\frac{\lambda}{\lambda_0}) + X_{\sigma}

其中 λ\lambda 为 beacon 到设备的距离,RSS(λ)RSS(\lambda) 为 beacon 的 RSS,RSS(λ0)RSS(\lambda_0) 为在参考距离 λ0\lambda_0 处的 RSS,η\eta 为路径损耗指数,XσX_{\sigma} 为均值为 0,方差为 σ2\sigma^2 的高斯噪声。

通过将数个(三个或以上)的 RSS 转换为设备到 beacon 的距离,三边测量使用圆形几何计算设备的位置,如 Fig.6。具体地,假设已知 BLE beacons 的位置,记设备位置 (x,y)(x,y) 和 beacon 位置 (xi,yi)(x_i, y_i),则可以得到 NN 个等式:

(xxi)2+(yyi)2=λi2, i=1,2,,N(x - x_i)^2 + (y - y_i)^2 = \lambda_i^2,\ i = 1, 2, \dots, N

求解上述 NN 个式子可以得到设备的位置:

  • 理想条件下(Fig.6a),三个圆交于一个公共点,则可以求得唯一解。
  • 现实条件下(Fig.6b 和 Fig.6c),三个圆无公共交点或均不相交。使用 Line Intersection-based Trilateration[6] 来寻找近似解。

对于 Fig.6c 中的情况,三边测量结果并不准确,因此使用 RSS 与 radio map 进行对比,显示地将 RSS 转换为距离,即 location fingerprinting。

BLE fingerprinting-based positioning:

  • offline training phases:选择一系列确定点为参考点 RP,在每个 RP 处手机所有检测到的 BLE beacon 的 RSS。这些在 RP 处收集的 RSS 则称为指纹(fingerprint),这些指纹形成了 radio map。
  • online positioning phases:将采样到的 RSS 与 radio map 中的指纹进行匹配,得到当前位置的估计。

设置 RSS 阈值(-50dBm)来选择 BLE-based 定位的方法:

  • 如果所有观测到的 BLE beacon 的 RSS 小于阈值,则使用基于指纹的定位方法,否则使用三角化的定位方法。

但是仅依靠 BLE 进行定位,精度可能仍然不够,因此本文采用了数据驱动和基于 BLE 的融合方法。

2.3 Particle Filter

使用粒子滤波融合数据驱动的惯导方法和 BLE-based 的定位方法:BLE-based 的定位提供设备位置的观测值,数据驱动的惯导用于建模用户的移动。

2.3.1 Initialization

假设粒子集合为 H={Xii=1,2,...,N}H = \{ X^i | i = 1, 2, ..., N \},每个粒子有 3 维联合概率分布,即 Xi=(xi,yi,θi)X^i = (x^i, y^i, \theta^i)。在时间 t=0t=0,利用高斯分布,随机从 BLE-based 定位得到的初始点 (x0i,y0i)(x_0^i, y_0^i) 周围选取粒子的位置。每个粒子的初始权重为 ω0i=1N\omega_0^i = \frac{1}{N}

2.3.2 Particle Movement

利用数据驱动的惯导来建模用户的移动:

{xti=xt1i+lt×cosψtyti=yt1i+lt×sinψt\begin{cases} x_t^i = x_{t-1}^i + l_t \times \cos \psi_t \\ y_t^i = y_{t-1}^i + l_t \times \sin \psi_t \end{cases}

ltl_tψt\psi_t 为数据驱动的惯导的结果。

2.3.3 Particle Weight Update and Resampling

在时间 tt,当从 BLE-based 定位获得一个新的观测数据(位置),基于粒子的位置相距 BLE 定位的结果的距离,所有粒子的权重发生更新。

同时,采用重采样,保留权重大的粒子,丢弃权重小的粒子。

2.3.4 Target Location Estimation

最终的定位结果为加权和:

\begin{cases} x_t = \sum_{i=0}^N x_t^i \omega_t^i \\\ y_t = \sum_{i=0}^N y_t^i \omega_t^i \end{cases}

3 Experiment and Results

3.1 实验设置

实验环境:所有的 beacon 离地面 2.5m 高且为相同规格,beacon 间的水平距离约为 3m。选择了 Fig.7 中的 3 条行走路径。

数据:使用 Galaxy S8 和 Tango 手机了 116 个数据序列,考虑 Tango 的精度,每个序列长度小于 200m。每 100 个 IMU 采样产生一个训练采样。

3.2 实验结果

数据驱动方法的短距离实验误差:

轨迹重建结果:

粒子数量对算法融合的影响:

融合算法的定位结果:

融合算法的轨迹重建结果:

与现有方法的对比:

参考

  • [1] H. Yan, Q. Shan, and Y. Furukawa, “RIDI: Robust IMU double integra- tion,” in Proc. Eur. Conf. Comput. Vis. (ECCV), Sep. 2018, pp. 621–636.
  • [2] C. Chen, X. Lu, A. Markham, and N. Trigoni, “IONet: Learning to cure the curse of drift in inertial odometry,” in Proc. AAAI Conf. Artif. Intell., Apr. 2018, vol. 32, no. 1, pp. 6468-6476.
  • [3] M. Brossard, A. Barrau, and S. Bonnabel, “AI-IMU dead-reckoning,” IEEE Trans. Intell. Vehicles, vol. 5, no. 4, pp. 585–595, Dec. 2020.
  • [4] T. Haarnoja, A. Ajay, S. Levine, and P. Abbeel, “Backprop KF: Learning discriminative deterministic state estimators,” in Proc. 30th Conf. Neural Inf. Process. Syst., 2016, pp. 1–11. [Online]. Available: http://arxiv.org/abs/1605.07148
  • [5] https://github.com/higerra/TangoIMURecorder
  • [6] S. Pradhan, Y. Bae, J.-Y. Pyun, N. Y. Ko, and S.-S. Hwang, “Hybrid TOA trilateration algorithm based on line intersection and comparison approach of intersection distances,” Energies, vol. 12, no. 9, p. 1668, May 2019.