15.3 基于深度学习的WiFi指纹低成本地点识别

文献来源:Nowicki M, Wietrzykowski J. Low-effort place recognition with WiFi fingerprints using deep learning[C]//Automation 2017: Innovations in Automation, Robotics and Measurement Techniques 1. Springer International Publishing, 2017: 575-584.

摘要

使用WiFi信号进行室内定位是现有个人室内定位系统在移动设备上运行的主要定位方式。WiFi指纹识别也用于移动机器人,因为WiFi信号通常在室内可用,可以提供粗略的初始位置估计,也可以与其他定位系统一起使用。目前,最好的解决方案依赖于过滤、手动数据分析和耗时的参数调优来实现可靠和准确的定位。

在这项工作中,我们提出使用深度神经网络来显著降低定位系统设计的人力负担,同时仍然取得令人满意的结果。假设采用最先进的分层方法,我们采用深度神经网络系统进行建筑/楼层分类

我们证明了堆叠自编码器可以有效地减少特征空间,以实现鲁棒和精确的分类。在公开可用的UJIIndoorLoc数据集上验证了所提出的架构,并将结果与其他解决方案进行了比较。

1 Introduction

室内定位是一项具有挑战性的任务,目前还没有适用于所有可能应用的通用解决方案。外部基础设施,如网络摄像机,在有限的区域内是有效的定位[1]。在大型建筑物中,最精确的agent姿态估计是通过激光扫描仪[2]、被动摄像机[3]或主动RGB-D传感器[4]获得的。使用这些传感器可以同时定位智能体和构建环境地图,从而解决同步定位和地图(SLAM)问题。不幸的是,激光扫描仪价格昂贵,而处理相机或RGB-D图像的计算要求很高,需要复杂的处理管道才能达到令人满意的结果[5]。在SLAM中,我们假设没有关于建筑结构的先验信息可用。然而,在实际应用中,通常可以在定位系统运行之前收集建筑物平面图。有了先验地图,我们就可以利用WiFi信号信息进行室内定位。

如今,WiFi网络在公共建筑、办公室、商场等无处不在。此外,几乎每个移动机器人都配备了WiFi适配器,用于连接互联网或远程操作。这些适配器也常见于手机和平板电脑中,可用于个人室内定位[6]。因此,WiFi信息可以用来提供粗略的全球位置估计,而不需要额外的外感传感器成本。阻碍这种解决方案在室内定位中广泛应用的一个重要问题是,在定位系统运行之前,需要对整个环境进行调查,以获得WiFi信号强度图。因此,在本文中,我们研究深度学习-一种最新且强大的机器学习范式是否可以从稀疏扫描地图上的WiFi数据提供全球位置识别解决方案,并且大大减少了手动调优的工作量。

2 Related Work

移动机器人使用WiFi进行室内定位是一个古老的想法[7],在使用粒子滤波方法并将WiFi定位与里程计读数相结合的系统中被证明是有效的[8]。可能的应用环境包括已有WiFi基础设施的建筑物,而其他解决方案过于昂贵或不够可靠,例如炼油厂检查[9]。虽然最先进的WiFi系统用于移动设备(智能手机)的个人室内定位,以便在建筑物内提供有效的导航,并允许收集有关购物中心,机场等客户活动的统计信息。

使用移动设备或移动机器人中的WiFi适配器进行的典型WiFi扫描包含了观察到的WiFi网络名称、MAC地址和相应的信号强度(以dBm为单位)。位置估计方法可分为WiFi测距[10]和WiFi指纹[11]两大类在WiFi测距中,利用WiFi信号波的特性直接估计到接入点(ap)的距离。这些解决方案适用于清晰的视线,但由于多重信号遮挡、墙壁反射和人的整体影响,在建筑物内不切实际。WiFi指纹识别方法侧重于有效地将已实现的WiFi扫描与预先记录的建筑物内扫描数据库进行比较,因此对局部信号干扰的鲁棒性更强。

基于参加室内定位和室内导航年度会议(indoor Positioning and indoor Navigation conference)智能手机定位挑战赛的系统,提出了使用WiFi指纹识别的室内定位系统(ILS)的处理流程[12]目前最先进的WiFi指纹识别方法采用分层方法进行室内定位,其中捕获的扫描首先用于精确估计用户所在的建筑物。最常见的解决方案是将每个接入点与在记录的数据库中观察到该网络最强信号的建筑物相关联。在定位过程中,对WiFi扫描中的每个网络进行分析,并基于对每个网络的简单投票来定位建筑物。然后提出了类似的程序来估计建筑物内部的适当楼层。建筑物和楼层通常在85% - 95%的情况下正确预测[12]。

估计用户在识别楼层位置的黄金标准是使用kNN (k nearest neighbors)[11]方法,从数据库中查询与分析的WiFi扫描最相似的k个扫描,并对其位置进行平均,从而实现位置估计。一种改进的方法是使用加权kNN[13],其中最终位置的计算与kNN相似,但每次查询的扫描都由与当前扫描的相似度加权。不幸的是,为了实现精确定位,需要在环境中每1 - 1.5 m记录一次密集而精确的WiFi扫描无线电波图。获取过程很耗时,并且kNN或wkNN算法通常在适合所选建筑的网格参数搜索中进行调整[14]。此外,需要一个耗时的数据分析过程来过滤具有挑战性的数据以提高系统精度。

这些解决方案很难在一个较大的建筑物的情况下进行调整,如果有大量的数据可用。如今,越来越多的可用数据是由配备WiFi适配器的移动设备的普及造成的。因此,机器学习方法是一个很有前途的解决方案,因为它在更大的环境中具有更少的参数调优和更好的可扩展性。在最近的研究中,随机森林[15,16]的应用已经取得了一些成功。据作者所知,这篇文章是第一次介绍使用深度神经网络(DNN)进行WiFi指纹识别,而在仔细记录的数据集上使用深度神经网络(DNN)进行超宽带(UWB)数据也是一个非常新的想法[17]。

因此,我们提出使用具有高效堆叠自编码器的深度神经网络[18]来降低特征维数并利用大量收集的数据我们提出了DNN方法用于楼层和建筑分类问题,并在公开可用的数据上对我们的系统进行了评估。我们相信深度神经网络方法可以减少调整WiFi系统所需的必要劳动力,并将鼓励在移动机器人中使用WiFi定位子系统。

18. Lajoie, I., Bengio, Y., Vincent, P., Larochelle, H., Manzagol, P.-A.: Stacked denoising autoencoders: learning useful representations in a deep network with a local denoising criterion. J. Mach. Learn. Res. 11, 3371–3408 (2010)(叠置去噪自编码器:用局部去噪准则在深度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity | 动态读取C#程序集实现热更新

目录 一、动态语言 二、创建C#dll 1.VS中创建一个C#语言的库工程 2.添加UnityEngine.dll的依赖 3.编写代码,生成dll 三、Unity使用dll 一、动态语言 计算机编程语言可以根据它们如何将源代码转换为可以执行的代码来分类为静态语言和动态语言。 静态语言&…

省市区街道/乡镇四级联动vue3

最近优化了一个省.市.区/县、乡镇/街道的四级联动组件,技术栈是element vue3记录一下。 本来是这样的三级联动: 这个三级联动很简单,直接利用el-select组件把地区值带进去就行了,现在要优化成省.市.区/县、乡镇/街道的四级联动&…

HCIE,选安全还是数通?题库怎么找?

HCIE认证是华为认证中含金量非常高的一个认证,其考试难度也比较大,而在诸多方向中,安全和数通是两个比较热门的方向。 接下来就分别以这两个方向为例,讲一讲这个证书的含金量以及考试题库的获取。 此外,在本篇文章中…

提高笔记本电脑使用寿命,这几个技巧很重要!

“我新买了一台笔记本电脑,想问问在平常使用时我应该注意什么才可以更好地提高笔记本电脑的使用寿命呢?” 随着科技的不断发展,笔记本电脑已经成为我们日常生活中不可或缺的一部分。然而,许多人在使用笔记本电脑时,往往…

docker 容器修改端口

一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p 8088:80 [image-name]这里是将容器内的80端口…

平板江湖:华为“行”、苹果“停”、小米“等一等”

配图来自Canva可画 近年来,随着人们对日常生活和办公中的智能电子产品提出了越来越高的要求,智能手机和平板电脑的产品类型便开始变得更加丰富、价位覆盖更为全面、场景应用也更显多样起来。只不过,在进入新的一年后,与智能手机市…

SpringBoot Redis 分布式锁的正确实现方式

一、错误的分布式锁 使用 Redis SET 指令实现加锁, 指令满足了当 key 不存在则设置 value,同时设置超时时间,并且满足原子语意。 SET lockKey 1 NX PX expireTime lockKey 表示锁的资源,value 设置成 1。 NX:表示只有 lockKey 不存在的时候才能 SET 成功,从而保证只有一个…

【PHP】Workerman开源应用容器的GatewayWorker 与 iOS-OC对接

Workerman 开源高性能PHP应用容器 workerman是一款开源高性能PHP应用容器,它大大突破了传统PHP应用范围,被广泛的用于互联网、即时通讯、APP开发、硬件通讯、智能家居、物联网等领域的开发。 PHPSocket.io PHP版本的socket.io,具有良好的客户端兼容性,常用于即时通讯领域…

时间序列分析实战(八):时序的格兰杰因果检验

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

C语言题目练习

目录 前言 1、网购 1.1题目 描述 输入描述: 输出描述: ​编辑 1.1 解题 2、带空格直角三角形图案 2.1题目 描述 输入描述: 输出描述: ​编辑 2.2 解题 3、小乐乐改数字 3.1 题目 描述 输入描述: 输…

编辑距离(Edit Distance)的介绍

编辑距离(Edit Distance),也称为 Levenshtein 距离,是衡量两个字符串之间相似程度的指标。它表示将一个字符串转换成另一个字符串所需的最少编辑操作次数。常见的编辑操作包括插入一个字符、删除一个字符、替换一个字符。 在 C 中…

【自然语言处理三-self attention自注意是什么】

自然语言处理三-自注意力 self attention 自注意力是什么?自注意力模型出现的原因是什么?词性标注问题解决方法1-扩展window,引用上下文解决方法2-运用seq2seq架构新问题来了:参数量增加、无法并行的顽疾 自注意力self attention模…

备战蓝桥杯————k个一组反转单链表

k个反转单链表,顾名思义就是k个节点为一组进行反转,这是一道困难的题目,如何解答,可以在我们前面的反转链表中得到思路。 如何 K 个一组反转单链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转&#xf…

MySQL表分区技术介绍

目录 1. 分区概述 1.1 表分区 1.2 表分区与分表的区别 1.3 表分区的好处 1.4 分区表的限制因素 2. 如何判断当前MySQL是否支持分区? 3. 分区类型详解 3.1 MySQL支持分区类型 3.2 RANGE分区 3.2.1 根据数值范围分区 3.2.2 根据TIMESTAMP范围分区 3.2.3 根…

代码随想录训练营第45天| 70. 爬楼梯、322. 零钱兑换、279.完全平方数

70. 爬楼梯 题目链接&#xff1a;70. 爬楼梯 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int climbStairs(int n) {int[] dp new int[n1];if(n < 2) {return n;}dp[0] 1;for(int i 1; i < n 1; i) {for(int j 1; j < 3; j) {if(i < j)…

MySQL中通用复用字段设计

一、MySQL数据库表设计 DROP TABLE IF EXISTS tb_loan_transfer_record; CREATE TABLE tb_loan_transfer_record (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,loan_rerord_id bigint(20) NOT NULL COMMENT 借款记录id,loan_id bigint(20) NOT NULL COMMEN…

CSS3的颜色函数: hsl() 和 hsla() 函数

1. hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即&#xff1a;色相&#xff08;Hue&#xff09;、饱和度&#xff08;Saturation&#xff09;、亮度&#xff08;Lightness&#xff09;。 hue-色相 定义色相&#xff08;0到360&#xff09;-0&#xff08;或360&#…

视频mov如何转换成mp4?五分钟学会4种方法

在今天的数字时代&#xff0c;我们不可避免地需要处理各种视频文件格式。MOV格式是由苹果公司开发的一种常见视频格式&#xff0c;而MP4格式则是更为通用和广泛支持的视频格式。 因此&#xff0c;当我们需要在不同设备或平台上播放或分享视频时&#xff0c;可能需要将MOV格式的…

Eclipse是如何创建web project项目的?

前面几篇描述先后描述了tomcat的目录结构和访问机制&#xff0c;以及Eclipse的项目类型和怎么调用jar包&#xff0c;还有java的main函数等&#xff0c;这些是一些基础问题&#xff0c;基础高清出来才更容易搞清楚后面要说的东西&#xff0c;也就是需求带动学习&#xff0c;后面…

Unity开发一个FPS游戏

在之前的文章Unity 3D Input System的使用-CSDN博客中,我介绍了如何用Input System来实现一个FPS游戏的移动控制,这里将进一步完善这个游戏。 以下是游戏的演示效果: fps_demo 添加武器模型 首先是增加主角玩家的武器,我们可以在网上搜索到很多免费的3D资源,例如在以下网…