人工智能|深度学习——基于对抗网络的室内定位系统

代码下载:

基于CSI的工业互联网深度学习定位.zip资源-CSDN文库

摘要

室内定位技术是工业互联网相关技术的关键一环。该技术旨在解决于室外定位且取得良好效果的GPS由于建筑物阻挡无法应用于室内的问题。实现室内定位技术,能够在真实工业场景下实时追踪和调配人员并做到对自动化生产各环节的监控,对提升生产效率有积极意义。

现有几乎所有关于室内定位的研究存在抗环境动态性弱的问题,即面对复杂的环境变化时,这些方法呈现出准确性低,鲁棒性差的性质;针对这种情况,研究者提出的方法是不断维护、更新数据库,以符合环境变化。但是这种方法会带来大量的额外成本消耗,包括人力维护的费用,以及存储大量数据的内存消耗等,而且并没有从根本上解决问题。

针对以上问题,我们提出了一种新颖的基于对抗网络思想的室内定位系统。我们的贡献可以总结如下:

1、提出了一种处理高维的WiFi CSI(Channel State Information)信号的方法,该方法可以保证将CSI信号转换为二维可处理图像的同时保证各维度信息的关联性

2、我们应用对抗网络的思想,设计了一个全新的定位框架,这种框架能够分离目标特征和环境特征,具有可以有效降低动态环境带来的影响,且不需要频繁更新

3、在大量数据集上进行了实验,并复现了时下最先进的几种室内定位的方法进行对比,结果表明我们提出的新方法在动态环境下的表现远优于其他几种方法

在设计的思路上,我们沿用了过往研究采用的WiFi指纹使用方法,但是稍有不同不同的是我们选择了CSI这个指标而不是传统的RSS,这一点会在下文中进行分析。我们设计了指纹生成器、特征提取器、位置预测器和域辨别器四个部分,分别对应了数据处理、特征提取、位置预测和去除环境干扰的功能。通过将采集到的CSI信息依次通过这四个部分,我们就可以得到和环境无关的位置预测。

  • 第一章 作品简介

1.1 作品背景

1.1.1 政策导向

省(市)

政策

重要内容

四川省

《四川省“5+1”重点特色园区培育发展三年行动计划(2021—2023年)》

要配套建设为企业服务的标准厂房、孵化器、仓储物流等公共服务平台。聚焦产业应用开展5G、大数据中心、人工智能、工业互联网、物联网、新能源汽车充电桩等新型基础设施建设,搭建信息技术应用场景,促进特色园区数字化、网络化、智能化转型,建设智慧园区。

广州市

《关于推进新一代人工智能产业发展的行动计划(2020-2022年)》

面向5G(第五代移动通信)、物联网、汽车电子、智能终端等领域,引进和培育一批具有自主知识产权、具有行业影响力的集成电路设计企业。

江西省

《江西省数字经济发展三年行动计划(2020-2022年)》

按照核心基地+产业主体区+特色功能区的布局,推动打造移动物联网核心基地,全力推进智联小镇、智慧科技创新小镇等建设,加快建设国家级移动物联网战略性新兴产业集群和新型工业化示范基地;支持围绕物联网传感器、终端研发制造、软件开发等领域培育移动物联网产业集聚区,打造移动物联网产业主体区。鼓励各地建设一批移动物联网特色产业集群和应用功能区。

重庆市

《重庆市新型基础设施重大项目建设行动方案(2020—2022年)》

强化重大项目的牵引与带动作用,积极布局5G、数据中心、人工智能、物联网、工业互联网等新型基础设施建设,有序推进数字设施化、设施数字化进程,为全市经济社会高质量发展注入新动能。

北京市

《北京市加快新型基础设施建设行动方案(2020-2022年)》

传统基础设施赋能。加快公路、铁路、轨道交通、航空、电网、水务等传统基建数字化改造和智慧化升级,助推京津冀基础设施互联互通。开展前瞻性技术研究,加快创新场景应用落地,率先推动移动互联网、物联网、人工智能等新兴技术与传统基建运营实景的跨界融合,形成全智慧型的基建应用生态链,打造传统基建数字化全国标杆示范。

12020年各省市对加快工业互联网建设相关政策

1.1.2 社会需求

工业制造的蓬勃发展不断推动我国制造领域的技术变革,物联网和人工智能技术的出现,使智能化生产和智能工厂等概念成为可能。我国作为全球最大的发展中国家,加速工业发展对推动国家实力增长具有深远的意义。目前,我国工业在产业规模、产业结构和自主创新方面都已经取得了长足发展,但随着人力储备不足问题的日益突出一级国家化竞争的日益激烈,自动化生产、智能化管理、高效成本管理成为提升竞争力的关键。而在智能化改造中,传统工业生产面临许多困难,例如工业场景下的室内定位技术。实现室内定位技术,能够实时追踪和调配人员并做到对自动化生产各环节的监控,对提升生产效率有积极意义。

    在工业场景中,室内定位扮演着重要的角色。通过精度较高的室内定位技术,管理者可以实现对生产人员的实时监控和动态调度,从而杜绝隐患,提高工作效率;同时,工厂可以获取物料和车辆的实时位置,实现物料的自动调拨、周转和货物运输等;此外,高精度的定位技术也是工业机器人等投入自动化生产的前提。

1.1.3 现存问题

(1)原有室外定位技术无法直接应用于室内。

    现有室外定位服务主要通过全球卫星定位系统(即GPS)技术来实现。全球卫星定位系统可以为户外用户提供高精度的定位服务,但其存在局限性:GPS信号公率非常低,信号接受要求较高,在室外天线与卫星之间不存在阻碍,可以达到较好的定位结果。但是涉及到室内定位时,由于受建筑物阻挡,导致卫星信号到达室内后快速衰减,无法满足室内覆盖要求,使用GPS信号来进行室内定位几乎成为不可能。

(2)工业生产中室内环境的复杂性

工业生产中,室内环境远比室外环境复杂,无线电波易受障碍物阻挡,发生反射、折射或散射,形成非视距传播(即NLOS,非视距通信是指接收机、发射机之间非直接的点对点的通信。非视距最直接的解释是通信的两点视线受阻,彼此看不到对方,菲涅尔区大于50%的范围被阻挡 ),严重影响了定位精度。另外,室内生产环境布局和拓扑易受人为因素影响,导致各种信号传播发生变化,从而降低基于特征匹配原理的定位技术性能。

(3)现有室内独立定位系统的缺陷

    目前较为流行的定位系统多为独立定位系统,即他们大都是为一个特殊的应用环境设计的,因此会导致以下问题:

1)目标检测存在缺陷:大多数定位系统依赖标签之间的匹配,因此它们难以检测到与目标标签共存于同意环境中的不同标签的目标。

2)定位鲁棒性和精度低:独立系统在信息获取方面受到限制,难以实现。

3)环境适应性差:在一种实际场景中表现良好的独立定位系统可能在另一种实际场景中表现差。

1.2 现状分析

1.2.1 室内定位信号指标的选用

随着AP (Access Point)技术的成熟和便携式WiFi设备的普及,基于WiFi的室内定位引起了众多研究者的关注。对比蓝牙和UWB等技术需要额外的部署成本,WiFi信号几乎无处不在,这大大降低了信号获取的难度。现有研究通常通过接收信号强度指标(RSSI)来计算位置。针对RSSI在环境变化或存在多路径效应时容易出现波动的问题,提出了基于RSSI指纹的定位方法。数据库要根据环境的变化,所以它不适合不断变化的环境。近年来,随着正交频分复用(OFDM)系统的广泛应用,许多基于信道状态信息(CSI)的解决方案被提出。我们将首先对比RSSI和CSI的特点,并分析CSI应用于室内定位的优势。

在室内环境中由于多径效应,无线信号在发射机和接收机之间通过多条路径传播。

图1 多径效应

由于RSSI信号本身的多径效应的缺点使得基于RSSI指纹的定位系统的应用场景受到了极大的限制,具体而言,作为 MAC 层信息RSSI是无线信号多径信号强度的累加,无法根据RSSI分辨视距径的传输信息也无法分辨各个传输径的传输信息,少数径上信号幅度的波动都可能对RSSI值造成较大的改变。而且RSSI只能提供接收信号传输特征的粗略信息,无法获得更为细致的定位信息。而且很多有用信息如相位都被忽略,因此不能很好地反映信号在链路中的传播特性。此外RSSI很容易受环境变动的影响,即便在静态环境中也会出现一定范围的波动。因此,室内多径效应大大限制了RSSI的感知能力,使其只能用于实现一些粗粒度的室内定位等感知任务。

介绍CSI之前先描述OFDM,在正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)系统中,宽带被分为多个具有不同中心频率且相互正交的子载波窄带信道。传输数据时,OFDM中的高速比特流转换成多个相对低速的并行比特流,其中每个比特流都被传输到特定的子载波上。由于这些子载波相互正交,多个比特流同时在多个子载波上传输不会造成相互干扰。与其他传输方案相比,OFDM对多径干扰具有更好的鲁棒性。图3展示了OFDM子载波:

图2 OFDM子载波

在2009年正式批准的IEEE802.11n标准中,无线网卡支持物理层信息的提取,因此可通过提取无线网卡中的信道响应信息来获取信道状态信息。目前已经实现修改无线网卡驱动和安装CSI Tools来获得CSI数据,其应用范围越来越大,实用性不断提高。相比于单值的RSS,其不仅从频域表征了信道状态并且附加了相位信息。CSI作为一种细粒度的物理层信息,反映了在发送器与接收器之间无线信道的传输特性而且对信道变化具有很高的灵敏度。

(CSI)信道状态信息表示发射机和接收机之间通信链路的信道特性,反映了信号在传播过程中的散射、衰减等效应。IEEE 802.11n使用OFDM技术,将信号通过多个具有不同频率且相互正交的子载波进行传输。

CSI是物理层的一种更细粒度的属性值,不仅描述了频域空间对所对应的每个子载波的幅度和相位,表现了无线信号在不同子信道上的衰减情况,还能将其变换到时域,间接地得到每条径上的传输特征,表现了无线信号在不同传输径的衰减情况。

正交频分复用技术(OFDM)是IEEE802.11n无线局域网标准协议核心部分之一,该技术增强了无线信号抗多径干扰的性能。对基于WiFi信号定位的系统来说,正是由于该技术的出现,可以利用WiFi设备从物理层提取出信道状态信息。不同于RSS值是所有传输径累加的结果,从CSI信号中能获得各个子载波上信号的传输特征,是一种更细粒度的传输特征,因此基于CSI信号定位的系统通常能获得更高的定位精度。

当实际物体出现在不同位置时,由于CSI信号的特点,能够更加细致地展现特征差异。为清晰展示,在两个不同位置的参考点处,取1根发射天线和3根接收天线对之间的30子载波的50个数据包,如图4和图5所示,两个不同位置不同接收天线处的子载波幅度值不相同,可见能将CSI信号反映的各个子信道的传输特性与不同位置分别对应,这也是CSI信号能用于室内定位的原因。

图3 位置1接收天线对子载波幅值

图4 位置2接收天线对子载波幅值

如图6是接收端与发送端在同一环境同一位置时,中间无人、有人以及中间放置纸箱等环境下接收到的CSI信息,可以看出3种情况下接收到的CSI信号具有明显的区分度,综上两种情况显示其室内指纹定位算法技术可行且精度和效果更优。

图5  不同室内环境的CSI差别

表3从多个方面对 RSS和CSI进行了对比。如图7所示,如果把RSS比作一束白光,CSI可以看做是彩虹。通过修改固件,可以在Intel 5300、Atheros等普通商用无线网卡上以CSI的形式获得信道频率响应(Channel Frequency Response, CFR)采样。每一组CSI刻画了正交频分复用子载波的幅度和相位,所以其具有更好的静态稳定性和动态敏感性。

表2  RSS与CSI对比

图6  RSS与OFDM关系

因此,采用CSI进行室内定位具有以下三点优势:

(1)由于室内环境的复杂性高,且环境的变化频率也高,而CSI信息会随着环境的变化呈现出不同的频率和相位特性,因此CSI能够有效监测室内环境的变化;

(2)由于CSI描述的是细粒度的物理信息,所以在定位时不需要很多接入点AP,从而可以降低定位系统的部署成本;

(3)在面对窄带信号时呈现出很好的鲁棒性,并且信号稳定,波动性也不大。

综上所述,基于CSI的定位技术具有较高定位精度,CSI在基于Wi-Fi的室内定位和无线感知技术中具有很好的前景,所以本项目采用基于CSI的定位技术。

1.2.2 室内定位技术现状

室内定位的研究受到全世界研究者的广泛关注,每年无线网络算法的有关会议、期刊都会诞生大量关于室内定位的优秀研究和论文。接下来我们将以与我们设计密切相关的研究,分基于模型的研究和基于深度学习的研究两个方面进行分析。

(1)基于模型的方法

基于模型的方法通常利用细粒度信息来改善传统模型所存在的问题如多径等[8,9]。FILA[3]提出了一种从CSI中选取优势路径构建传播模型的新方法,大大提高了传统模型的精度。PILA[6]提出了一种通过角估计实现路径识别和高精度定位的方法。

基于模型的方法存在主要问题为这些方法大多知识对传统模型的沿用,并没有充分利用CSI携带的大量信息,没有合理利用CSI的有关特性从根本上对室内定位的精确性和鲁棒性做出提升

(2)基于深度学习的方法

随着深度学习的流行,越来越多的研究者将基于学习的方法与室内定位联系起来。Wang等人在传统指纹定位方法的基础上,利用CSI提出了一种基于深度学习的指纹室内定位方法DeepFi和PhaseFi[11-12]。在离线训练阶段后,系统获得深度学习的权值,通过概率法可以准确的估计位置。ConFi[13]是第一个使用CNN的WiFi定位系统。该系统将CSI翻译成RGB图像,并使用CNN提取CSI的特征,类似于计算机视觉(CV)的主题。ConFi通过计算概率来预测目标的位置,就像DeepFi一样。Ayyalasomayajula等人构建了一个系统,利用二维热图对TOF和AOA信息进行编码,然后利用深度神经网络(Deep Neural Network, DNN)获得高精度定位。

这些研究大大拓展了室内定位的研究思路,研究者甚至不需要对CSI的物理特性有足够的了解,也可以通过深度学习的方法提取有关特征并完成特征于目标位置之间的映射。

美中不足的是,上述研究并没有针对CSI对动态环境变化的敏感性提出有效的解决方案。具体来说,环境的微小变化可能会对CSI产生重大的影响,那么我们之前训练的深度学习模型中的参数就需要随之改变。在真实的工业场景中,由于环境时刻都在变化,所以反复重复训练过程显然是不切实际的,也达不到我们所需要的降低维护成本的目标。

1.3 系统应用场景与功能概述

我们提出一个完整的基于WiFi CSI的室内定位系统AEDLoc(Indoor Localization Alleviating Environment Dependence),包括了WiFi CSI测量模块、深度学习神经网络和定位结果可视化展示模块三个部分。该系统旨在于较为复杂且具有动态环境室内的场景中实现精准且不受环境变化影响的定位。

我们首先对之前的研究人员开源的公开数据集进行处理,将其处理为可以用计算机视觉领域技术处理的二维指纹,然后利用对抗网络思想协同训练两个Softmax回归分类器,直到CSI信号中位置特征和环境特征分离位置,然后用python matplot根据目标在二维平面中移动的位置画出其运动轨迹完成可视化。最后我们再测试我们的WiFi CSI测量模块,我们将用Intel 5300网卡和基于Linux的WiFi CSI Tool工具在学生宿舍内布置数个场景进行CSI的采集,并将采集到的结果送入深度学习神经网络并可视化呈现轨迹,通过将真实轨迹与预测轨迹进行对比,来验证我们的研究的正确性。我们的工作将在一定程度上为此领域的后续科研工作、算法校验、模型训练,带来推动作用。本系统实现的功能主要分以下三部分:

(1)在单一复杂环境下实现精确定位:

AEDLoc核心思想在于设计一套能够有效抵抗环境动态性带来的负面影响的室内定位系统,事实上,其对单一复杂场景(反射、折射和衰落等)下的定位也有着不错的性能(我们将在后续的实验即评估部分看到)。AEDLoc同样可以通过不断更新位置指纹库的方法进行更新,这为其在不同需求间的迁移提供接口和可能性。

(2)在多种复杂环境下实现“一次训练,长期精确定位”:

传统定位系统在一种环境中训练之后放到其他环境中会几乎丧失其原本的所有效果,这意味着需要不停采集数据并训练和维护网络来保证定位系统的时效性;然而,在实际工业互联网场景中,环境无时无刻不在发生变化(例如人员和车辆等设备的移动,环境的温湿度等),如果要不断更新数据和网络将付出大量代价。AEDLoc通过对抗网络的思想,可以实现位置信息和环境信息的分离。当我们成功分离出位置信息之后,环境变化便不再与我们的定位系统相关,由此达到“一次训练,长期精确定位”的目标。

(3)提供最先进(state-of-art)算法的复现和可视化功能

我们不仅完成了AEDLoc系统的设计,而且完成了几种最先进算法的复现,提供了定位轨迹的可视化代码、CSI测量的教程手册,以及我们对数据的处理思路代码(全部附有注释),这些代码都开源在我们的github网站中,我们希望通过我们的工作能够进一步推动室内定位领域研究的创新。

第二章 技术方案

2.1系统设计方案

本作品主要分为三个部分,分别是WiFi CSI测量模块、Web交互模块和深度学习神经网络模块,对应的功能分别为数据获取、室内定位实现以及结果的可视化。本系统的总体设计如图所示:

图7 系统设计方案图

本设计应用模块化设计理念,即使用者可以一同使用所有模块,同样也可以使用其中部分模块来实现所需功能,下面我们将分开介绍各个模块的实现及功能。

2.2整体架构设计

(1)整体架构

本系统整体架构由表现层、服务层、后台层,物理层组成,从表现层到物理层,每层依赖于下层的同时也为上层的应用提供有关服务。系统架构图如图所示。

其中,表现层主要为系统的前端界面,负责和系统的用户进行交互,本系统属于B/S架构,因此表现层主要就是位于用户浏览器中的Web页面,主要功能为文件上传,结果展示等。服务层则主要为系统前端提供后端的接口服务,将前端界面提供的有关功能进行实现。后台层则主要由室内定位预测和可视化输出两个模块,其中室内定位预测模块包括系统主要功能所用到的神经网络模型,算法等,该层负责处理接收到的前端文件以及参数和物理层的CSI数据,为接口层提供数据支持。物理层则主要负责传输接收CSI并向后台层提供CSI数据。

图8 系统架构图

(2)各层次作用

  1. 表现层

表现层主要是系统的前端界面,负责与用户交互,接收用户输入,并将用户输入进行校验和处理,防止不合法的输入。同时将用户的输入转化为服务层所适应的表现形式,将其发送给服务层进行进一步处理。也从服务层接收系统的反馈,并将其转达给用户。本系统属于 B/S 架构,因此表现层主要为基于 HTML+JavaScript+CSS 的 Web 界面,运行在用户端浏览器中。

  1. 服务层

服务层主要充当了表现层和后台层中间的中介,能够从表现层接收编码后的用户输入,并根据业务逻辑将用户的请求转达给后台层。这样设计的好处在于表现层设计时只需要关心服务层对外暴露的系统接口,而不需要关心后台层的具体实现。因此纵使后台层出现改动,也不会引起服务层的接口改变,提高了系统的整体可维护性和稳定性。

  1. 后台层

后台层是本系统工作的核心,包含了系统的核心功能与技术。在本系统中,后台层主要由两大模块构成——室内定位预测模块和可视化模块。

室内定位预测模块 模块中的指纹生成器的将物理层提供的原始CSI数据转换为高质量的CSI指纹。CSI指纹被保存并以图像形式使用。当接收到初始的位置指纹时,指纹生成器将其转换成图像,然后提交给位置预测器,位置预测器根据图像计算出位置。

可视化模块 利用可视化技术将用户位置轨迹绘出并在前端页面展示。

  1. 物理层

传输CSI,并将收集的CSI数据向上提供给后台层。

2.3 WiFi CSI测量模块

2.3.1 硬件配置

我们在本设计中选择华为AX3 Pro路由器(支持WiFi 6协议)、Intel 5300网卡和联想ThinkPad作为CSI测量的硬件支持。

图9 路由器和网卡图

我们将网卡及PCI接口安装如下:

图10 网卡安装图

然后需要对网卡进行有关配置并安装相关软件,我们将在附录给出相关教程。

2.3.2 数据集和数据处理

我们的数据来源分为两部分,一部分开源数据集WILD,另一部分是我们在宿舍采集的数据集。

在任何深度学习研究中,数据集的质量是至关重要的。感谢Ayyalasomayajul等人的努力,通过使用无线室内定位数据集(WILD)中的开源数据,我们可以节省大量的时间。该数据集收集CSI数据和位置标签在两个空间的2000平方英尺区域,包括8个不同场景,丰富的多路径(等离子屏、混凝土柱、金属结构等)和非视线场景。通过手动为每个场景添加域标签,我们可以很容易地使数据集满足我们研究的所有需求。我们选择其中的五个场景,对数据分布进行可视化如下:

图11 数据分布可视化

如上图所示,是一个18m*8m的空间内通过自动机器人搭载CSI模块收集到的信息,因为空间内障碍物阻挡等信息,导致有的区域内采集到的样本点较多,有的较少,但是基本所有区域都存在能够满足深度学习算法的样本数量。

CSI的值在各子载波频率上的值是复数,可以分解为幅值和相位两个部分,由于我们的设计仅取幅值作为指标,这大大减少了数据处理的复杂性。幅值的计算方法如下:

Hx=a+bi

H(x)= 2a2+b2

2.4 Web交互模块

    Web交互模块的功能比较简单,提交一个CSI值的文件后,通过调用执行后端生成轨迹图,显示在网页上。

图12 Web界面

2.5 深度学习模块

如图所示,AEDLoc由四个部分组成:指纹生成器,特征提取器,位置预测器和域鉴别器。我们的系统类似于传统的基于指纹的定位方法,可分为两个阶段(离线训练阶段和在线定位阶段)。在离线训练阶段,网络由指纹数据库训练。不同之处在于,我们通过额外的对抗性网络在很大程度上减少了环境对室内定位带来的不利影响,使系统更加准确和稳定。

图13 深度学习模块总体架构图

指纹生成器的任务是将原始的CSI数据转换为高质量的CSI指纹。我们的CSI指纹被保存并以图像形式使用。当接收到原始指纹时,指纹生成器会将其转换为图像。然后特征提取器通过类似于我们熟知的CV的CNN模块从图像中提取信息并提交给位置预测器。然后,位置预测器根据图像计算位置。值得注意的是,位置预测器在离线阶段和在线阶段都有效,而域鉴别器仅在离线阶段有效。有研究提供了一种利用未标记指纹的方法,在在线阶段帮助协同训练位置预测器和域鉴别器,并对模型进行更新,增强模型的鲁棒性和准确性[9]。然而,在利益和风险之间权衡之后,我们放弃了这个想法。首先,与采用该方法的研究不同,AEDLoc不需要考虑样本不足导致网络训练不够的问题,因为AEDLoc有效地利用了大量CSI的室内定位相关信息。相反,引入未标记指纹的协同训练可能会造成不必要的误差,对模型的准确性和鲁棒性有较大的负面影响。

2.5.1 指纹生成器

指纹生成器需要解决的问题是如何在保证相邻点关联度的情况下将WiFi CSI转换成2D图像形式,我们知道在计算机视觉中,如果我们要采用CNN模块提取图像中特征,那么需要保证相邻像素点之间存在关联,但是如果我们需要将CSI的值转换为图像,就会遇到相邻点不相关的问题。

考虑CSI性质,提出一种将CSI转为图像的方法,即将天线数作为通道,并提出一种矩阵变换的方案,使得转换后的图像相邻点相关。

具体如下:

1、将单根天线接收到的CSI信号用一维向量的形式表示[f1,f2,f3,f4….,fn]T

2、用hij=(fi-fj)/fj

将一维向量转化为二维矩阵,即图像

3、将天线数作为通道,即可得到最终的2D图像形式

图14 指纹生成示意图

下图为当天线数为3时,我们将3通道过滤器转换为RGB的效果图。

图15 CSI指纹RGB效果图

2.5.2 特征提取器

我们采用两层CNN来提取指纹图像中的潜在特征Z。设θ为CNN参数的集合。给定输入数据X,我们可以得到如下的特征表示:

                   Z=CNNx;θ (1)

图16 CNN示意图

    CNN在计算机视觉领域的应用已经非常成熟,在此不多赘述,我们需要的是卷积核的通道数必须与过滤器的通道数必须一致,而我们的过滤器通道数应该等于天线数(在指纹生成器中已经叙述),然后我们采用3*3的卷积核对特征进行提取。

2.5.3 位置预测器

我们采用一个全连接层和softplus激活函数,通过基于Zi学习输入数据Xi中的代表特征Vi

                  Vi=Softplus(WzZi+bz)              (2)

其中Wzbz函数是一个激活函数。为了预测标签,我们将特征表示映射到潜在的空间位置,然后位置的概率向量ŷi可以通过softmax层表示:

                   yi=Softmax(WvVi+bv)              (3)

其中WvVi为参数。yi为标记数据的预测概率。我们使用熵来定义位置预测器La的损失,如下:

                    La=1|X|i=1|X|c=1Cyiclog⁡(yic)           (4)

其中,|X|是训练数据集中的CSI指纹的数量。为了满足优化问题的约定,将上述公式从最大化问题转等效转化为最小化问题。因此,位置预测器的目的是通过最小化La来获得最准确的预测。

2.5.4 域鉴别器

在本作品中,我们定义一组环境特征为域。例如,当同一房间是否有椅子时,可以被定义为两个不同的域。我们采用监督域对抗学习方法来降低复杂性,并完全消除特定域的位置特征。我们在训练阶段使用的所有指纹都是带有域标签的。在这里,我们使用一个策略来驱动特征提取器,使其仅学习自动提取我们所需要的有用信息。特别地,我们设计一个基于单层神经网络的域鉴别器。通过网络,域鉴别器学习特定输入指纹(包括环境特征和位置特征)与输入指纹所属的域之间的关系。之后,我们不断使用特征提取器来提取所有特征的可能组合。当一种组合无法分类到正确的域时,我们称该组合成功欺骗了域鉴别器。如果组合可以在几乎所有指纹上欺骗了域鉴别器,我们认为消除了环境特征的干扰,因为域鉴别器的失败表明提取的特征与环境无关。

图17 域辨别器示意图

如图,若CNN提取的指纹通过域辨别器后得到的标签与真实标签相同,说明域辨别器成功识别域(即一个环境),进而说明当前CNN提取到的特征仍然与环境相关。

我们通过连接特征提取器的输出矩阵Z和预测矩阵y得到F

F=Zy                               (5)

域辨别器最需要解决的问题是网络的输入,我们通过连接特征提取器的输出矩阵Z和预测矩阵yF作为输入,即F=Zy,因为Z是一个独立于域和依赖于域的混合特征,为了得到域无关特征,需要重视Z。然而,一些与域相关的特征也会产生影响并且不能忽视,因此Z的连接结果是域鉴别器的最佳输入。

图18 F的计算示意图。

Softmax输出的预测矩阵y代表的是待预测点在每个点的可能性(熵),而Z是CNN提取的特征。与在特征提取器和位置预测器中所做的工作类似,我们设计了一个同样CNN模块,基于Zi来学习输入数据Xi中的代表特征Ui:

Ui=CNN(Zi;θ)                              (6)

然后将Ui映射到域分布di中;

di=softmax(WuUi+bu)                           (7)

其中Wubu是参数。我们使用域分布和真域标签之间的交叉熵作为损失:

Ld=-1Xi=1Xj=1Ddijlog⁡(dij)                   (8)

其中|D|为域的数量,dij为真域标签的一个one-hot向量。我们的最终目标是学习与域无关的特征,但域鉴别器的目标是最小化Ld,从而最大化域预测的性能。为了解决这一矛盾,我们基于等式的损失函数4和等式8得到了一个新的损失函数,如下:

L=LaLd(λ>0)                                  (9)

通过对抗学习过程,特征提取器通过最小化La和最大化Ld来尽力欺骗域鉴别器,最终可以学习得到域无关特征。

2.5.5 空间约束

为了实现更加准确的定位,我们需要增加一个额外的惩罚项来约束那些与实际位置相差很远的点。

第三章 系统实现

3.1 系统部署

3.1.1 深度学习神经网络

硬件要求:具有gpu加速计算的pc或服务器,算力要求在1080ti及以上。可以在windows或者linux操作系统下部署。

软件配置: Python 解释器 3.6 及以上、适合的 Python 集成开发环境(如 PyCharm) , 所使用的深度学习框架为 Pytorch-1.11,需要的其他依赖有torchvision, sklearn, pandas等。

3.1.2 CSI测量

硬件要求:Intel 5300网卡,PCI多天线接口,支持WiFi 6协议路由器。

软件配置:Ubuntu 12.04 LTS Linux系统,CSI Tools软件

3.2 代码运行

由于 python 是脚本语言,且此项目需要深度学习框架和许多依赖库,无法打 包成简单的具有用户界面的可执行文件,直接运行代码或输入 python 指令即可 完成模型训练和使用。

代码运行说明:

我们将数据的处理放在了Dataset.py中,主要功能为读取存放数据的csv文件,并返回pytorch神经网络训练需要的格式。

神经网络部分放在model.py中,我们搭建了三个卷积网络模型,其中,FeatureNet用于提取特征,DomainNet用于域判别,PosNet用于预测位置。

使用以下指令进行简单的训练和测试。

python main.py

自定义运行需要对参数进行一些修改,参数设置将在下一节介绍。

3.3 参数设置

主要参数都在根目录下的param/下,带有解释说明,这里介绍一些关键的参数。

3.3.1 基本参数(train_param.yaml)

train_path: 训练集路径。

test_path: 测试集路径(测试集和训练集应保持以同种方式采集,不然会对效果有较大影响)。

input_channel: 输入通道数,由采集的信号的数据格式确定。

kernel_size: 卷积核的大小

3.3.2 训练参数(train_param.yaml)

lr: 学习率

epoch: 训练轮次

weights: 使用的权重,可以指定之前训练过的权重进行训练。默认为空

save_path: 训练的权重保存的路径

lr_decay: 学习率衰减参数

batch_size: 批量大小

device: 使用的设备,即0,1或cpu.

3.4 CSI Tools安装及配置

    我们将CSI Tools的安装教程放在附录一中,由于网卡白名单的存在,不推荐使用联想电脑进行部署。

第四章 实验与评估

4.1 比较方法介绍

我们将首先介绍两种比较方法来与我们的AEDLoc进行比较,以说明不同的方法之间的优劣。这个两种方法都是如今世界上最先进的室内定位研究之一。

(1)DLoc:Roshan Ayyalasomayajula,et al.,Mobicom 2020(定位方向顶级会议)

他们提出的一种将CSI值按到达时间和到达角转换为2D热图的方法,然后用深度神经网络进行训练。值得一提的是,我们在本阶段使用的数据集WILD同样是由该作者开源,网址为WCSNG - Research。这是目前世界上开源的最大的CSI室内定位数据集。

    我们还对DLoc的算法进行了复现,可以在我们的github网站中找到。

图19 DLoc示意图

(2)ConFi:Hao Chen,et al. 2017

ConFi有一个训练阶段和一个定位阶段。在训练阶段,在多个参考点(RPs)上收集CSI,通过随机梯度下降算法训练CNN。在定位阶段,将目标设备的CSI反馈给CNN,将定位结果作为输出值较高的rp的加权质心计算。作者进行了大量的实验,为CNN选择合适的参数,并证明了ConFi比现有方法的优越性能。ConFi是最早使用卷积神经网络CNN来训练CSI数据实现室内定位的方法,本作品包括如今很多最为先进的作品使用CNN处理CSI图像的思路都受这项研究的启发。

图20 ConFi CNN示意图

4.2 评价指标

我们采用距离级定位这个细粒度的指标作为定位精度的评价指标,将定位结果与真实位置之间的欧式距离定义为定位偏差。

在我们的方法中,计算欧式距离的方法如下:

图21 距离计算

如上图,假设红色点是待预测点的真实位置,现在它被分类到被黄色填充的网格。那么两者之间的距离被定义为两者在网格中距离grid_distance * grid_size。值得一提的是,如果分类完全正确,我们会取一个很小的值而不是0来使结果更符合真实情况。

4.3 实验设置

我们的实验共9个,其中7个是基于WILD数据集进行的,分为对比和自比两种,分别是为了证明我们的设计对比他人的优越性和我们设计各部分的合理性、重要;而剩下的实验是我们在宿舍中开展的,由于样本量优先,只对位置预测的准确度和可视化效果进行了验证。

4.3.1 WILD数据库的有关设置

    我们选用WILD(WCSNG - Research)在UCSD(加利福尼亚大学圣迭戈分校)的jacobs hall测量到的数据,面积为18*8m;其记录了同一个大房间随着环境的变化CSI值不断的变化,每个场景的不同我们已在以下图中标注出来。

(a)

(b)

(c)

(d)

(e)

图22 jacobs hall的几种场景

如上图(a)表明的是jacobs hall在一般状态下布置,图(b)是在图(a)测量后一段时间测量的在房间布置上和图(a)无异,但我们需要注意的是,信号的传播会受温度、湿度等因素的影响,而且WiFi CSI对这些因素十分敏感,所以根据我们的定义,图(a)和图(b)其实属于两个域(及不同的环境);图(c)和图(d)用红色框标出部分代表的是在此处布置家具,这些因素会影响信号的反射、多径干扰等;而图(e)用红色标出家具,用蓝色标出反射器,这些因素会进一步干扰信号的传播。

4.3.2 在学生宿舍有关设置

类似的,我们在学生宿舍的客厅(约为3.8m*4.4m)布置了五种场景进行相关测试,其中图(a)表示的是自然状态下的布局,存在衣架、茶几等家具影响反射等,但所有路由器AP在大多数点不存在NLOS传播。图(b)中我们在茶几上放置一个箱子以此来影响房价内的信号反射等。图(c)中我们将一个箱子挡在AP3前来造成NLOS传播。图(d)中增加一把椅子来使环境进一步复杂化。图(e)中我们让一位同学站在房间来改变环境。

我们通过使用装配有Intel 5300网卡的一台笔记本电脑,在房间内每个环境下收集收集了150个样本,然后对网络进行训练,由于样本数量较少,所以本实验中我们选择了定位准确率和轨迹对比的呈现方式。

(a)

(b)

(c)

(d)

(e)

图23 学生宿舍实验环境布置

4.4 实验结果及分析

    我们将首先在WILD数据集上进行实验一至七。

4.4.1 实验一:在单域下测试定位的准确率(对比)

图24 实验1图

如上图累积分布函数CDF所示,我们取CDF为中值和90百分位时的定位误差值。CDF为中值50%时,AEDLoc、DLoc、ConFi的误差分别为0.33,0.37,0.45; CDF为中值90%时,AEDLoc、DLoc、ConFi的误差分别为0.7,0.9,1.5;

可以看出,在不存在环境因素影响下,AEDLoc的表现略低于DLoc但远强于ConFi。

我们得出结论:在处理无环境影响的定位问题时,AEDLoc没有展现出明显优势。

对实验结果的分析:DLoc同时对CSI的幅值和相位进行特征的转化和提取,实际上是增加了成本来获得了在室内定位的精度,然而事实证明,这样对定位精度的提升微乎其微。而ConFi作为较早的一种利用CNN提取特征的算法,并未对网络进行更多优化,因此效果远不如我们的AEDLoc和DLoc。

4.4.2 实验二:在混合多域下测试定位的准确率(对比)

在本次实验中,我们混合多域数的据进行训练,并随机取出1500个样本作为测试集进行测试。

图25 实验2图

如上图累积分布函数CDF所示,我们取CDF为中值和90百分位时的定位误差值。CDF为中值50%时,AEDLoc、DLoc、ConFi的误差分别为0.33,0.38,1.05; CDF为90%时,AEDLoc、DLoc、ConFi的误差分别为0.9,1.8,2.8;

在混合训练条件下,AEDLoc在中值和90%处较另两种方法误差分别降低了13.1%,68.6%;50%,67.9%。

结论:可以看出在处理动态环境影响的定位问题时,AEDLoc展现出显著优势。

对实验结果的分析:我们的AEDLoc由于引入了域辨别器,有效地分离了位置特征和环境特征,因此对于混合域之后的室内定位任务,AEDLoc可以实现几乎与环境变化无关的定位。DLoc通过一些信号的处理方法,从一定程度上抑制了环境的干扰,而ConFi在没有动态更新的情况下几乎没有任何抗环境干扰的能力。因此最后AEDLoc的在本次实验中的表现远远高于后两者。

4.4.3 实验三:训练域的复杂程度对训练效果的影响(对比和自比)

    该实验我们验证的是训练中环境的复杂程度对提升系统定位准确性和鲁棒性的影响,我们设置了一下三个子实验,都是用三个场景训练,一个场景测试。结果如下:

Trained Setup

Tested Setup

AEDLoc

(Median)

DLoc

(Median)

AEDLoc

(90%)

DLoc

(90%)

a,c,e

b

71

90

171

200

a,c,e

d

82

130

252

300

a,b,c

e

106

134

302

401

表3 实验3表

我们看到对于前两个子实验,训练选用的三个场景是相同的,但是测试场景(d)远比测试场景(b)来的复杂;而第三个子实验中,选用的三个训练场景是布置最简易的(a),(b),(c),而选用的测试场景是最复杂的(e)。最后我们可以通过表中数据比较得出:

  1. 子实验1中AEDLoc表现最好,3中表现最差
  2. 在我们的三个子实验中,AEDLoc的表现都优于DLoc

分析:我们的AEDLoc是通过分离环境特征和位置特征来达到抗环境动态性的目的的;然而,如果训练的域(即环境)本身都不复杂,则AEDLoc在训练时无法学习有关环境特征的知识,自然也无法表现出良好的定位性能。

4.4.4 实验四:训练域的个数对准确性的影响(自比)

在本实验中,我们选取后4个域的数据进行训练,第1个域的数据进行验证;然后选取后3个训练,前2个验证,以此类推。结果如下。

图26 实验4图

如上图累积分布函数CDF所示,我们可以直观地看出参与训练的域越多,定位的效果更准确,当训练的域只有一个时,训练效果退化得非常恶劣。

结论:参与训练的环境越多,我们得到定位效果越好

实验分析:其实这样的结果是显而易见的,因为根据我们对深度学习的直观了解,当样本数量越多(不到达过拟合的情况时),深度学习的拟合效果是随着样本数量的增加而越来越好的。

4.4.5 实验五:使用天线作为通道对准确性的影响(自比)

    在指纹生成器中,我们提到了我们将天线数作为过滤器的通道。在该实验中我们将对比以4通道输入和把所有天线数据转化为1通道时的定位性能。

图27 实验5图

如上图累积分布函数CDF所示,我们看出4通道时定位的效果优于1通道的效果,在90百分位提升为33.4%。

结论:将天线数作为通道的做法是合理的

实验分析:测量CSI时,每根天线上的数据是各自相关的,所以将天线作为通道是合理的。

4.4.6 实验六:有空间约束和无空间约束(自比)

图28 实验6图

如上图累积分布函数CDF所示,我们看出有空间约束是定位的效果优于无空间约束的效果,在90百分位提升约为40%。

结论:增加空间约束可以提升定位的效果

实验分析:增加空间约束是机器学习算法中常用的方法,通过增加额外的惩罚项,可以使得学习的效果更为准确。

4.3.7 实验七:域辨别器的作用(自比)

这一部分我们仍使用实验二的结果进行分析。这样做的原因是因为我们在实验二中对比的ConFi算法本质上就是我们的AEDLoc去除掉域辨别器之后的结果。

图29 实验7图

我们不再进行重复的分析,可以直接得出结论:域辨别器大大提升了动态环境下AEDLoc的鲁棒性和准确性,是不可或缺的。

接下来的两个实验是基于我们在学生宿舍的自测数据完成的。

4.3.8 实验八: AEDLoc在学生宿舍场景中的表现

    我们在学生宿舍布置之前描述的五个场景后,在五个场景中共计采集了500个数据,我们将其中400个作为训练集,100个作为测试集进行实验。因为样本量较少,所以使用CDF图来刻画不是非常合适,我们选择用饼图来刻画数据分布,如下:

图30 实验8图

如图所示,100个测试点中,有22个与实际位置相差在0-0.5m之内,有32个与实际位置相差在0.5-1m之内,有46个在1-3m。

可以明显看出,AEDLoc在自测数据集上的表现远不如在WILD上,这显然因为我们自测的样本太小的原因。

从此实验可以看出,AEDLoc在数据集很小时不能有良好的表现,这与我们上面的实验3,4的结果是一致的。

但是实际上,如果把误差边界定位2m,那么定位准确率可以达到80%以上;这说明即使数据集较小,AEDLoc仍可实现粗略的定位。

4.3.9 实验九:AEDLoc在学生宿舍场景中预测轨迹和真实轨迹的可视化对比

    我们基于沿着一条路径采集到的数据将预测位置的点连成一条轨迹(红色虚线)和实际经过的轨迹(蓝色实线)画在同一坐标系中,同上一实验,由于小数据集下定位偏差较大,所以轨迹偏差自然也比较大。

图31 实验9图

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

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

相关文章

w29pikachu-ssrf实例

实验环境 php:7.3.4nts apache:2.4.39 浏览器:谷歌实验步骤 ssrf(curl) 打开ssrf(curl) 点击文字,跳转404页面,从反馈信息来看是找不到对应的页面。 查看源码,发现有个RD变量影…

【Flink网络通讯(一)】Flink RPC框架的整体设计

文章目录 1. Akka基本概念与Actor模型2. Akka相关demo2.1. 创建Akka系统2.2. 根据path获取Actor并与之通讯 3. Flink RPC框架与Akka的关系4.运行时RPC整体架构设计5. RpcEndpoint的设计与实现 我们从整体的角度看一下Flink RPC通信框架的设计与实现,了解其底层Akka通…

利用nbsp设置空格

想要实现上面效果&#xff0c;一开始直接<el-col :span"8" >{{ item.name }} </el-col> 或者<el-col :span"8" >{{ item.name }}</el-col>或者<el-col :span"8" >{{ item.name }}</el-col> 都无…

深入浅出JVM(三)之HotSpot虚拟机类加载机制

HotSpot虚拟机类加载机制 类的生命周期 什么叫做类加载? 类加载的定义: JVM把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终变成可以被JVM直接使用的Java类型(因为可以动态产生,这里的Class文件并不是具体存在磁盘中的文件,而是二进制数据流) 一个…

善于利用GPT确实可以解决许多难题

当我设计一个导出Word文档的功能时&#xff0c;我面临了一个挑战。在技术选型时&#xff0c;我选择了poi-tl这个模板引擎&#xff0c;因为在网上看到了很多关于它的推荐。poi-tl可以根据模板快速导出Word文档。虽然之前没有做过类似的功能&#xff0c;而且项目中也没有用过&…

开年喜报!Walrus成功入选CNCF云原生全景图

近日&#xff0c;数澈软件 Seal &#xff08;以下简称“Seal”&#xff09;旗下开源应用管理平台 Walrus 成功入选云原生计算基金会全景图&#xff08;CNCF Landscape&#xff09;并收录至 “App Definition and Development - Application Definition & Image Build”板块…

Encoder-decoder 与Decoder-only 模型之间的使用区别

承接上文&#xff1a;Transformer Encoder-Decoer 结构回顾 笔者以huggingface T5 transformer 对encoder-decoder 模型进行了简单的回顾。 由于笔者最近使用decoder-only模型时发现&#xff0c;其使用细节和encoder-decoder有着非常大的区别&#xff1b;而huggingface的借口为…

热阻基础理论 --NMOS温度评估

热阻基础理论 器件 温度差 功率 * 热阻 MOS应用实例 1.假如MOS管悬挂或者外壳贴到散热器上&#xff0c;就意味着用CASE到空气的散热热阻会很大&#xff0c; 如下图中的20。 2. 假如MOS管金属面焊接到PCB上&#xff0c;就意味着用CASE到空气的散热热阻会很校&#xff0c; 如…

计算机设计大赛 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

vmware的ubuntu虚拟机因空间满无法启动

正在虚拟机编译android源代码&#xff0c;没注意空间不足&#xff0c;结果回来发现了 Assuming drive cache: write through 的问题&#xff0c;经查是空间不足的原因 按照这个教程&#xff0c;清除出来部分空间&#xff0c;才能进去系统&#xff0c;并且对系统空间做下优化 …

为什么运维要转行

为什么运维要转行 粉丝提问&#xff1a; 在各种APP里经常看到&#xff0c;趁年轻赶紧远离运维&#xff0c;为什么&#xff1f; 互联网老兵是这样回答的&#xff1a; 运维有很多分类&#xff0c;有干实施运维的&#xff0c;有干交付运维的&#xff0c;也有自动化运维&#xf…

07 Redis之持久化(RDB+AOF)

4 Redis持久化 Redis 是一个内存数据库&#xff0c;然而内存中的数据是不持久的&#xff0c;若主机宕机或 Redis 关机重启&#xff0c;则内存中的数据全部丢失。 当然&#xff0c;这是不允许的。Redis 具有持久化功能&#xff0c;其会按照设置以快照或操作日志的形式将数据持…

Stable Diffusion WebUI 界面介绍

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 大家好&#xff0c;我是水滴~~ 本文主要对 Stable Diffusion WebUI 的界面进行简单的介绍&#xff0c;让你对该 WebUI 有个大致的了解&#xff0c;为后面的深入学习打下一个基础。主要内容包…

《VitePress 简易速速上手小册》第1章:VitePress 入门(2024 最新版)

文章目录 1.1 VitePress 简介与架构1.1.1 基础知识点解析1.1.2 重点案例&#xff1a;企业文档站点1.1.3 拓展案例 1&#xff1a;个人博客1.1.4 拓展案例 2&#xff1a;产品展示网站 1.2 安装与初次运行1.2.1 基础知识点解析1.2.2 重点案例&#xff1a;公司内部知识分享平台1.2.…

ts 枚举类型原理及其应用详解

ts 枚举类型介绍 TypeScript的枚举类型是一种特殊的数据类型&#xff0c;它允许开发者为一组相关值定义一个共同的名称&#xff0c;使我们可以更清晰、更一致地使用这些值。 枚举类型在TypeScript中用enum关键字定义&#xff0c;每个枚举值默认都是数字类型&#xff0c;从0开…

前端 webSocket 的使用

webSocket使用 注意要去监听websocket 对象事件&#xff0c;处理我们需要的数据 我是放在了最外层的index 内&#xff0c;监听编辑状态&#xff0c;去触发定义的方法。因为我这个项目是组件化开发&#xff0c;全部只有一个总编辑按钮&#xff0c;我只需监听是否触发了编辑即可…

为什么2023年是AI视频的突破年,以及对2024年的预期#a16z

2023年所暴露的AI生成视频的各种问题&#xff0c;大部分被OpenAI发布的Sora解决了吗&#xff1f;以下为a16z发布的总结&#xff0c;在关键之处&#xff0c;我做了OpenAI Sora的对照备注。 推荐阅读&#xff0c;了解视频生成技术进展。 Why 2023 Was AI Video’s Breakout Year,…

Qt|大小端数据转换(补充)

Qt|大小端数据转换-CSDN博客 之前这篇文章大小端数据转换如果是小数就会有问题。 第一个方法&#xff1a; template <typename T> static QByteArray toData(const T &value, bool isLittle) {QByteArray data;for (int i 0; i < sizeof(T); i) {int bitOffset…

vue3 用xlsx 解决 excel 低版本office无法打开问题

需求背景解决思路解决效果将json导出为excel将table导为excel导出样式 需求背景 原使用 vue3-json-excel &#xff0c;导致在笔记本office环境下&#xff0c;出现兼容性问题 <vue3-json-excel class"export-btn" :fetch"excelGetList" :fields"js…

【Python程序开发系列】利用git实现协同开发做开源贡献(完整过程)

一、问题 假如我在gitee或者github上看到了一个优质的项目&#xff0c;我想对这个项目做一些深入的研究&#xff0c;并对其进行优化&#xff0c;并最终提交PR做出贡献。但是这个项目需要或者最好在虚拟机上或服务器上运行&#xff0c;虚拟机或服务器没有IDE这种代码编辑器&…