5.2 基于深度学习和先验状态的实时指纹室内定位
文献来源
Nabati M, Ghorashi S A. A real-time fingerprint-based indoor positioning using deep learning and preceding states[J]. Expert Systems with Applications, 2023, 213: 118889.(5.2_基于指纹的实时室内定位,使用深度学习和前一状态)
摘要
在基于指纹的定位方法中,接入点的接收信号强度(received signal strength, RSS)向量在参考点处测量并保存在数据库中。然后,将该数据集用于模式识别算法的训练阶段。几种类型的噪声会影响无线电信道中的信号,RSS值会相应被破坏。这些噪声可以通过RSS样本的平均来缓解。在实时应用中,用户在定位过程的在线阶段急于收集不相关的RSS样本来计算自己的平均值。针对这一问题,本文提出了一种解决方案,即利用离线阶段的RSS样本分布和在线阶段的用户先前状态。
在第一步中,提出了一种使用深度神经网络(DNN)的快速准确定位算法,以学习可用RSS样本的分布,而不是在离线阶段平均它们。然后,通过在线RSS样本与RPs指纹的相似度来估计用户的位置。接着,将深度神经网络模型与一种新的基于状态的定位方法相结合,以更准确地估计用户的位置。在基准数据集和自己收集的数据集上进行了大量的实验,在两种不同的场景下(在线阶段为每个用户提供单个RSS样本和多个RSS样本),验证了所提算法与深度神经网络回归、高斯过程回归、随机森林和加权KNN等传统回归算法相比的优越性。
1.前言
智能手机实时定位是一种新兴的基于位置服务技术。全球定位系统通过利用地球周围的卫星信号在满足人类需求的实时定位中起着决定性的作用(Khalajmehrabadi, Gatsis, & Akopian, 2017)。然而,这些信号无法穿透到室内环境。此外,它们还存在非视距(NLOS)误差,不适用于室内或恶劣的室外地区(Khalajmehrabadi, Gatsis, & Akopian, 2017; Nabati, Navidan, Shahbazian, Ghorashi和Windridge, 2020)。基于卫星的定位方法定期提取一些发射器和用户接收器之间的距离。然后,使用三角测量或三边测量方法估计用户的位置(Thomas & Ros, 2005;杨旭,赵玉田,刘悦,王海燕,2013)。发射器和接收器之间的距离可以通过到达角度、到达时间、到达时间差、到达相位或接收信号强度(RSS)获得(Zafari, Gkelias, & Leung, 2019)。这些方法也被称为基于测距的定位技术(Ghari, Shahbazian, & Ghorashi, 2019 ),可以在具有一些基站(BSs)的室内环境中就地实现。在这些方法中,RSS很容易捕获,因为它不需要发射器和接收器之间的同步时钟。然而,由于NLOS误差,所有这些基于测距的定位技术在室内区域都不能提供有希望的精度,即使它们是在本地实现的(Nabati, Ghorashi,& Shahbazian, 2021)。
针对基于测距的定位方法的不足,提出了基于指纹的定位方法。在该方法中,一些BSs部署在室内区域并共享无线电信号,其形式可以是Wi-Fi (Du, Yang, & Zhou, 2018)、蓝牙(Aranda, Parralejo, Álvarez, & Paredes, 2022)、ZigBee (Zheng et al., 2017)和射频识别(Ma, Tian, & Jiang, 2019)。在这些通信技术中,Wi-Fi BS(称为Wi-Fi接入点(AP))是最突出的一种,因为它在室内环境中无处不在(Hernández et al., 2021)。在部署ap后,需要执行两个不同的阶段来建立基于指纹的定位方法:离线(或训练)和在线(或测试)阶段(Bai, Luo, Yan, & Wan, 2021)。首先,在已知的参考点(reference point, RPs)位置获取多个ap的RSS或信道状态信息(channel state information, CSI),并将其存储在数据库中。通常,模式识别算法(PRA)在离线阶段进行训练,将输入信号的属性(CSI和/或RSS)转换到相应的位置。训练好的PRA算法在在线阶段利用接收到的信号属性估计用户的位置。
在第一步中,提出了一种使用深度神经网络(DNN)的快速准确定位算法,以学习可用RSS样本的分布,而不是在离线阶段平均它们。然后,通过在线RSS样本与RPs指纹的相似度来估计用户的位置。接着,将深度神经网络模型与一种新的基于状态的定位方法相结合,以更准确地估计用户的位置。在基准数据集和自己收集的数据集上进行了大量的实验,在两种不同的场景下(在线阶段为每个用户提供单个RSS样本和多个RSS样本),验证了所提算法与深度神经网络回归、高斯过程回归、随机森林和加权KNN等传统回归算法相比的优越性。
CSI作为指纹比RSS更稳定(王、高、毛,& Pandey,2017)。然而,它不能用典型的AP模式捕获,需要在发射机和接收机端使用特定的硬件和软件工具(Zafari等人,2019),而RSS即使使用现成的智能手机也可以轻松捕获。因此,RSS可以用于流行的实际应用和工业应用。然而,大尺度衰落(称为阴影)和小尺度衰落等多路径效应会深刻影响RSS (Zanella, 2016),并相应地影响基于RSS的定位精度(Prasad, Hossain, & Bhargava, 2018)。
CSI作为指纹比RSS更稳定(王、高、毛,& Pandey,2017)。然而,它不能用典型的AP模式捕获,需要在发射机和接收机端使用特定的硬件和软件工具(Zafari等人,2019),而RSS即使使用现成的智能手机也可以轻松捕获。因此,RSS可以用于流行的实际应用和工业应用。然而,大尺度衰落(称为阴影)和小尺度衰落等多路径效应会深刻影响RSS (Zanella, 2016),并相应地影响基于RSS的定位精度(Prasad, Hossain, & Bhargava, 2018)。
虽然在在线阶段无法使用现有的智能手机获取足够的RSS样本,但离线阶段的RSS样本可以帮助识别RSS观察的统计行为。本文提出了一种新的基于指纹的定位算法,该算法在训练过程中捕获RPs的RSS分布。同时,假设用户在在线阶段在区域内进行移动,利用基于状态的定位方法考虑用户先前的状态信息。首先使用深度神经网络(DNN)来学习RSS样本的分布,而不是直接将RSS空间转换到坐标空间。该DNN的输出是RSS样本与每个RP的相似度。换句话说,所提方法中的每个RP是一个类,其RSS样本是类观察。在线阶段,训练后的DNN估计用户RSS样本与每个RP的相似度。然后,通过不同RPs位置的加权平均来估计用户的位置,其中权值为训练后的DNN (similarity)的输出。该方法还被扩展用于在线阶段有足够RSS样本的情况。在考虑两种情况(单个RSS样本和在线阶段RSS样本充足)时,与两个不同数据集(一个开源数据集和一个我们自己收集的数据集)中的对应算法相比,该算法提高了定位的准确性。受此启发,本文将基于深度神经网络的定位方法与一种新的基于状态的定位算法相结合,以解决在线相位定位的局限性。
综上所述,本文的主要贡献如下:
•我们提出了一种基于DNN的定位算法,该算法考虑了离线阶段RSS样本在RP上的统计行为,并为我们提出的DNN模型提出了一个成本函数,以优化层的权重,尽可能地给予最近的RP更高的权重。
•提出了一种新的基于状态的定位方法,该方法利用用户之前的状态来提高位置估计精度。
•对所提出的定位算法进行了复杂度分析,并通过大量实验验证了所提出方法的鲁棒性。
本文的其余部分组织如下:第二节介绍了本文的相关工作。第3节对基于指纹的定位方法进行了初步介绍,并对传统的基于深度神经网络的定位模型进行了描述。在第4节中,我们解释了所提出的DNN,其中学习了每个RP处RSS样本的分布,然后将其与所提出的基于状态的定位方法相结合。第5节给出了实验结果,将提出的方法与同类方法进行比较。最后,第六部分对本文工作进行了总结。
在本文中,我们使用粗体大写字母表示矩阵或数组(如A),粗体小写字母表示向量(如a),使用小写字母表示标量(如a)
3.Preliminaries |准备工作
在本节中,我们介绍了离线和在线两个阶段基于RSS指纹定位的基本概念。然后,描述了传统的基于DNN的回归(DNNR)定位算法。这是必需的,因为我们稍后将把我们提出的DNN与该算法进行比较。
图1。整个基于指纹的RSS定位过程可分为①、②、③、④四个步骤。在①中,RSS样品是在几个ap的rp处采集的。然后,得到一个三维RSS数据集和两个位置向量,如式所示(1)、(2)所示。②将数据集交付给PRA进行训练。③,将在线RSS样本传递给训练后的PRA输入。最后,在④中,经过训练的PRA将接收到的RSS样本转换为位置。
3.1. 基于指纹的定位
地图构建是基于指纹定位方法的初始步骤,需要为环境的起源考虑一个参考位置,如图1所示。然后,在确定的坐标(称为RPs)上记录ap的RSS值。此外,在环境中不需要知道ap的位置,因为我们假设ap不移动,并且它们的RSS值是RPs的唯一指纹。RSS值和RPs位置分别作为PRAs的输入和输出。RSS通常在一个固定的点上测量几次。所有RPs的原始RSS数据集的结构可以用3D矩阵表示,如式(1)所示
3.2. 传统的基于DNN的定位
图3. 该模型的整体架构。训练DNN,为基于状态的定位找到最佳值,然后将其输入所提出方法的整个架构的步骤如数字1、2、3和4所示。队列结构缓冲区用于按先进先出的顺序馈送数据。
图4。两种不同ap的75个RSS样本在同一点连续100秒的典型波动。“平均RSS”是在𝑛th样本之前RSS样本的平均值,称为累积移动平均。
个样本之前RSS样本的平均值,称为累积移动平均值。
6 结论
提出了一种新的基于指纹的室内定位算法,该算法同时考虑了RSS样本数量单一和RSS样本数量充足两种情况,提高了定位精度。由于智能手机通常无法在短时间内捕获大量样本,因此有必要通过考虑每个用户的单个RSS样本来评估模型。然而,现有的工作大多没有考虑智能手机提供高采样率扫描Wi-Fi ap接收到的RSS值的局限性。
该方法将深度神经网络与基于状态的定位方法相结合,充分考虑了用户先前的状态。传统的基于深度神经网络的定位算法没有考虑RSS样本在每个RP点的统计行为,由两个输出节点直接估计用户的位置。所提DNN模型取得较高准确率的原因在于,在输出层考虑了每个RP的一个节点,并在优化过程中获得了每个RP处RSS样本的模式变化。
另一方面,基于状态的定位方法利用深度神经网络模型的RSS值和估计位置等先验状态信息,可以处理在线阶段限制。与其他贝叶斯方法(如卡尔曼滤波和粒子滤波)的主要区别在于它不需要额外的信息和硬件工具。在典型场景下,对所提定位方法的组合没有任何限制或限制。此外,该方法不需要额外的硬件或软件工具,具有通用性。在未来的工作中,假设移动设备可以在没有额外硬件需求的情况下捕获CSI数据,所提方法可以在CSI数据的基础上建立。
相关文章:

5.2 基于深度学习和先验状态的实时指纹室内定位
文献来源 Nabati M, Ghorashi S A. A real-time fingerprint-based indoor positioning using deep learning and preceding states[J]. Expert Systems with Applications, 2023, 213: 118889.(5.2_基于指纹的实时室内定位,使用深度学习和前一状态&…...
AIGC时代高效阅读论文实操
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

对网站进行打点(不要有主动扫描行为)
什么是打点? 简单来说就是获取一个演习方服务器的控制权限。 目的: 1. 上传一个一句话木马 2. 挖到命令执行 3. 挖到反序列化漏洞 4. 钓鱼 假设对“千峰”网站进行打点: 1. 利用平台 1. 利用各类平台: 天眼查-商业查询平…...
502. IPO(贪心算法+优先队列/堆)
整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到k个业务为止,注意k可能比n大。 每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在…...

设计模式篇---中介者模式
文章目录 概念结构实例总结 概念 中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 就好比世界各个国家之间可能会产生冲突,但是当产…...

双端Diff算法
双端Diff算法 双端Diff算法指的是,在新旧两组子节点的四个端点之间分别进行比较,并试图找到可复用的节点。相比简单Diff算法,双端Diff算法的优势在于,对于同样的更新场景,执行的DOM移动操作次数更少。 简单 Diff 算法…...
react+antd,Table表头文字颜色设置
1、创建一个自定义的TableHeaderCell组件,并设置其样式为红色 const CustomTableHeaderCell ({ children }) > (<th style{{ color: "red" }}>{children}</th> ); 2、将CustomTableHeaderCell组件传递到Table组件的columns属性中的titl…...
2024年1月18日Arxiv最热NLP大模型论文:Large Language Models Are Neurosymbolic Reasoners
大语言模型化身符号逻辑大师,AAAI 2024见证文本游戏新纪元 引言:文本游戏中的符号推理挑战 在人工智能的众多应用场景中,符号推理能力的重要性不言而喻。符号推理涉及对符号和逻辑规则的理解与应用,这对于处理现实世界中的符号性…...
服务限流实现方案
服务限流怎么做 限流算法 计数器 每个单位时间能通过的请求数固定,超过阈值直接拒绝。 通过维护一个单位时间内的计数器,每次请求计数器加1,当单位时间内计数器累加到大于设定的阈值,则之后的请求都被绝,直到单位时…...

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建
目录 一、工程创建1.1 新建工程1.2 配置RCC1.3 配置SYS1.4 配置外设1)配置 LED PC132)配置 串口 UART13)配置 OLED I2C1 1.5 配置FreeRTOS1.6 工程设置1.7 生成代码1.8 keil设置下载&复位1.9 添加用户代码 快速体验FreeRTOS所有常用API&a…...

Red Hat Enterprise Linux 8.9 安装图解
风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…...

vcruntime140.dll文件修复的几种常见解决办法,vcruntime140.dll丢失的原因
vcruntime140.dll文件是Windows操作系统中的一个重要动态链接库(DLL)文件,它是Microsoft Visual C Redistributable的一部分。当出现vcruntime140.dll文件丢失的情况时,可能会导致一些程序无法正常运行或出现错误提示。为了电脑能…...

SpringCloud Alibaba 深入源码 - Nacos 分级存储模型、支撑百万服务注册压力、解决并发读写问题(CopyOnWrite)
目录 一、SpringCloudAlibaba 源码分析 1.1、SpringCloud & SpringCloudAlibaba 常用组件 1.2、Nacos的服务注册表结构是怎样的? 1.2.1、Nacos的分级存储模型(理论层) 1.2.2、Nacos 源码启动(准备工作) 1.2.…...

算法训练营Day45
#Java #动态规划 Feeling and experiences: 最长公共子序列:力扣题目链接 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新…...

【Redis漏洞利用总结】
前言 redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis默认使用 6379 端口。 一、redis未授权访问漏洞 0x01 漏洞描述 描述: Redis是一套开源的使用ANSI C编写、支持网络、可基于内存…...

SPI 动态服务发现机制
SPI(Service Provier Interface)是一种服务发现机制,通过ClassPath下的META—INF/services文件查找文件,自动加载文件中定义的类,再调用forName加载; spi可以很灵活的让接口和实现分离, 让API提…...

【C++进阶07】哈希表and哈希桶
一、哈希概念 顺序结构以及平衡树中 元素关键码与存储位置没有对应关系 因此查找一个元素 必须经过关键码的多次比较 顺序查找时间复杂度为O(N) 平衡树中为树的高度,即O( l o g 2 N log_2 N log2N) 搜索效率 搜索过程中元素的比较次数 理想的搜索方法:…...
Go 语言实现冒泡排序算法的简单示例
以下是使用 Go 语言实现冒泡排序算法的简单示例: package mainimport "fmt"func bubbleSort(arr []int) {n : len(arr)for i : 0; i < n-1; i {for j : 0; j < n-i-1; j {if arr[j] > arr[j1] {// 交换元素arr[j], arr[j1] arr[j1], arr[j]}}}…...

JAVA 学习 面试(五)IO篇
BIO是阻塞I/O,NIO是非阻塞I/O,AIO是异步I/O。BIO每个连接对应一个线程,NIO多个连接共享少量线程,AIO允许应用程序异步地处理多个操作。NIO,通过Selector,只需要一个线程便可以管理多个客户端连接࿰…...

vue3相比vue2的效率提升
1、静态提升 2、预字符串化 3、缓存事件处理函数 4、Block Tree 5、PatchFlag 一、静态提升 在vue3中的app.vue文件如下: 在服务器中,template中的内容会变异成render渲染函数。 最终编译后的文件: 1.静态节点优化 那么这里为什么是两部分…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...