基于深度学习的WiFi指纹室内定位系统设计与实现毕业论文
2020-02-17 23:03:07
摘 要
随着科技时代的大爆发,人们在室内的活动时间或工作越来愈多,室内环境复杂度大部分超过人类的瞬时记忆,所以室内定位的要求也变得越来越迫切了。而现在随着智能手机和WIFI的发展,基本上是人手一手机,WIFI到处有的情况,用WIFI和手机的定位的方法似乎显示巨大的优势,包括方便,成本低,操作简单等优点。所以WIFI的指纹算法便应允而生。本文便是对WIFI指纹算法进行探究,选出优势方案,制作一款定位安卓软件。该软件有能与人交互的界面,先进行要定位的目标建筑物WIFI指纹数据的收集,形成数据库,然后采用深度学习进行指纹数据的训练与学习,将得到的新数据存入服务器,然后开启定位,搜索要定位点的WIFI状态数据,从服务器请求数据对比你的位置数据就能知道你在哪个位置了。
关键词:定位技术;指纹法;深度学习;安卓
ABSTRACT
With the explosion of the technology era, people are more and more active in the indoor activities, and the indoor environment complexity is mostly beyond the instantaneous memory of human beings. Therefore, the requirements for indoor positioning have become more and more urgent, and they are at the forefront. The development of indoor positioning technology on the route will inevitably show the unstoppable trend of breaking the bamboo. Most indoor positioning technologies have matured. Although most of them are correct, the required hardware, manpower, material resources and knowledge level are too high, which is not suitable for promotion to ordinary people. Now with the development of smart phones and WIFI, it is basically a mobile phone, WIFI everywhere, the method of positioning with WIFI and mobile phone seems to show great advantages, including convenience, low cost, simple operation and so on. Therefore, the WIFI fingerprint algorithm came into being. This article is to explore the WIFI fingerprint algorithm, select the advantage program, and make a positioning Android software. The software has an interface that can interact with people. Firstly, the WIFI fingerprint data of the target building to be located is collected, a database is formed, and then deep learning is used to train and learn the fingerprint data, and the obtained new data is stored in the server, and then opened. Locate, search for WIFI status data to locate the point, and request data from the server to compare your location data to know where you are.
Key words: location technology; fingerprint method; deep learning;Andriod.
目 录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 研究背景与意义 1
1.2 国内外状况分析 1
1.3 研究内容与本文安排 2
第2章 室内定位和深度学习 4
2.1 室内定位的方法 4
2.2 WIFI指纹定位法 4
2.2.1 指纹法概述 4
2.2.2 几种典型的WIFI指纹法 5
2.3深度学习 6
2.4 工具软件 7
2.4.1 Andriod Studio 7
2.4.2 XAMPPH 7
2.4.3Tensorflow和Anconda3 7
第3章 算法和系统设计 8
3.1指纹搜集数字化 8
3.2指纹匹配算法改进探索 9
3.3深度学习算法训练数据 14
3.4系统整体框图 17
第4章 系统具体实现与各结果演示 18
4.1客户端的实现 18
4.1.1主界面 18
4.1.2采集模块 19
4.1.3定位模块 23
4.3服务器 26
4.3.1服务器 26
4.3.2通信方式 28
4.4自编码的Tensorflow实现 28
4.4.1基于Anaconda平台的Tensorflow安装和环境配置 28
4.4.2用tensorflow写堆砌自编码器 30
4.5 手机真机演示(小米mix 2s) 32
第5章 总结与展望 35
参考文献 36
致谢 37
第1章 绪论
1.1 研究背景与意义
目前,基于人造卫星的室外定位技术早已被很多国家发明和使用,其中最著名的当数美利坚共和国所发明的全球定位系统,以及我国自主研发的北斗定位系统等。这些定位系统已经广泛应用于各个方面,如在军事上可以根据定位准备发射导弹,让武器变得有了“眼睛”;如安在无人飞机上,让无人飞机去探索人类不敢深入的地方;如电子地图的导航,让你出行旅游一路方便。所以才有美国一关GPS系统很多国家就会变成了瞎子。
室外卫星定位技术已经基本完善,能大部分满足人类在室外大多方面上的需求,但是人类其实主要还是生存在室内,在室内的环境进行生活,娱乐,工作,学习,而卫星定位技术是利用卫星与基站和设备之间发送无线电波的时间来计算距离用三角法进行的室外定位,而室内却是许多的大型建筑群,无线电波本身遇到阻碍物时会产生反射,折射和漫射,导致穿过厚厚建筑物的墙体以后变得十分的微弱,所判断的位置地点可能就不是那么的正确,甚至有些差点的设备对于这种微小信号根本无法检测出来,就更别说去判断他的位置,人类都是追求精准的生物,所以这根本无法满足人类对室内定位的需求,于是对室内定位的研究迫在眉睫,成为了研究定位领域里面的重点。
目前研究出来的室内定位方法有很多。这些技术虽然都有他独特的优点但是也有让人无法去普遍推广的缺点。而随着移动设备,智能手机和WLAN的飞跃发展,到处都能看见每个人拿着手机玩,人类经常聚集活动的地方基本已全面被WIFI所覆盖完了,其普及程度和人类手机的持有度之高让人感到惊叹用一句无处不在感觉也不算太夸张。WIFI拥有着其他技术所难以拥有的优点:发射电波功率小容易接收,不用布线只需要几个路由器就行所成本低廉,传播距离远和速度快。因此,WIFI指纹技术应运而生。与户外定位不同,例如具有视距(LOS)传输路径的全球定位系统(GPS),室内定位面临挑战性的无线电传播环境。另外,除了高精度要求外,室内定位系统还应具有移动设备的低复杂性和短的在线处理时间以及推广开来的可能性。而指纹识别的室内定位成为满足这些要求的有效方法,研究WIFI指纹定位方法并将其实践在移动设备上已成为一个十分重要的话题,使得众多研究者们趋之若胡。
而指纹定位就必须采集很多数据,但是这些数据只是多维浅层死板的数据,并不能有效表现定位的特性所以研究者开始向数据分类处理的研究,便引入了Deep Learing这一具有重要价值的机器AI学习工具,其具有对动态数据进行学习和训练,使数据指纹更具实用性。
1.2 国内外状况分析
在最近这些年以来,世界上大多国家已经研究出许多比较好的室内定位方法,他们能在各个领域的学习工作研究中满足人们对自身室内定位的需要。本段简单说一下国内外研究人员在室内定位上的研究状况。
Rui Zhang用了一种特殊的方式。该方法利用设备加速度计和陀螺仪传感器基于加速度和角速率(行人航位推算)递归地计算位置。在计算之前校准传感器可以大大提高精度。
Trehard等人提出了另一种方法,利用智能手机中存在的风速计来估算设备速度。该数据与从局部磁场读数获得的装置的方向相结合,增加了定位的准确性。
Kim和Kim使用地磁场来获取位置信息。这需要预先构建一个桌子,将每个位置与其地磁场读数连接起来。协同定位使用设备之间的消息来提高准确性。这种方法可以作为行人航位推算的扩展,可以减少每个设备相互纠正的累积误差。这些设备首先使用PDR独立工作。
Bahl和VN Padmanabhan提出了开创性的基于指纹的定位系统,该系统依赖于K个最近邻(KNN)。
IndoorAtlas所提出的磁场室内也比较简单,他认为每个地点的位置所具有的地磁场波动不一样的,可以检测每个位置的地磁场来进行定位,但是这种方法中由于室内定位本身范围比较小,地磁场的变化差异并不是很大,在临近的地理位置可能就检测不出其中的差别,另外这种技术所需要的设施比较 复杂也难以安装。
另外,崔惠,媚杨帆,等人也利用WIFI指纹技术进行其中精确度降低和实施方法的变简,然后完后了算法设计和系统构建。
而由于室内环境的复杂性,开放性问题(Opening question)为数据改造等,试着用机器人定位技术在室内环境中已经取得了良好的效果。期望学习和泛化能力允许估计定位以尽管噪声具有良好的准确性。尽管如Carvalho及其同事的工作中,在使用机器学习技术之前使用过滤步骤(移动平均值)可以改善数据以及系统的准确性但是增加了系统的复杂性。
浅显的机器方法所下的WIFI指纹定位方法对于但是大数据下并不能很好的获取数据特性。但是随着机器学习另一个领域深度学习的发展,从世界机器棋手战胜棋王震惊全世界以来,深度学习的重要价值进入了人们的视野,已经被众多研究者研究开来,其对数据特性的挖掘与探索,使得系统能像人类一样学习数据的特征,从而智能的从新输入的数据进行表征出结果。
深度学习已经开始被外国科学研究者应用在指纹定位的指纹数据处理分类学习上,相信对定位的结果会有着更智能的表现。
1.3 研究内容与本文安排
本论文是从室外定位成熟的研究引申到室内定位,知道了室内定位中的多种方法,并从中找出了最优的方法为WIFI指纹定位,对比几个指纹定位方法,选择精度,定位范围,设备安装工作,稳定度,最适用于的推广的K最近邻的这种方法进行研究。进在其基础上改进,形成加权的K最近邻的方法,然后研究用深度学习训练指纹数据重新组建数据库相结合的方法,最后搭建客户端,与服务器设计出完整的安卓软件,并进行安装下载检测结果。其各部分如下:
- ,分析基于卫星定位的室外定位的成熟结果并了解由于遮挡原因无法应用于室内定位,由此引出室内定位的方法的探索然后对科学家研究研究的情况进行概述
- ,对各种定位方法简单分析,然后比较他们的优缺点,最后大多数人选择了WIFI指纹定位,阐诉这种技术的原因。然后介绍几种WIFI定位方法和深度学习的框架,并对本文要利用到的工具Andriod Studio(设计客户端),Anconda下的tensorflow(深度学习算法的工具),PHP服务器的介绍。
第三章,对算法进行研究,对基于深度学习的加权K最近邻方法进入深入的探索研究,追寻其他人的足迹找到其中的不足,加入改进思想,完善核心的算法
第四章,完成整个APP的设计开发,最终演示结果。
第五章,总结整个设计系统的相关工作,展望后续可以的进步,以及提出这套系统的适用范围和示例。
第2章 室内定位和深度学习
2.1 室内定位的方法
(1)红外定位的技术话:主要有两种实施的具体方法,一种是将定位对象(也就是人的手机上)安装一个会发射红外线的设施,然后在建筑物内部的多个红外线传感器设备,采用测量信号源到达多个传感器的时间,距离或角度,得到所在位置。一种是根据时间的遮挡来比较的。
(2)UWB定位技术:这种定位方法用的是时间到达的不同来给两个物体进行标记, 运用UWB 设备测得定位标记上的带宽扩展到两个不同AP之间无线电信号传播的时间之差,然后根据简单的距离算法公式就可以知道定位物体标价相对于四组AP的距离之差。
(3)WIFI技术:WiFi覆盖了办公室,学校,购物中心和家庭等几乎所有室内场所,基于WiFi的室内定位技术比携带设备所需的本地化技术更为方便且操作也比较容易。因为指纹识别从环境中收集特征具有比前面描述的方法更好的定位性能,基本上WIFI定位技术都是选择指纹识别。
还有其他几种技术等等。
性能比较:
表2.1 室内定位技术性能比较表
定位技术 | 定位精度 | 可靠性 | 成本 | 安全性 |
蓝牙 | 5m | 中 | 高 | 中 |
红外线 | 5m | 低 | 高 | 高 |
射频 | 2m | 中 | 高 | 中 |
WIFI | 1.5m | 中 | 低 | 中 |
ZigBee | 3m | 高 | 低 | 中 |
UWB | 0.5m | 高 | 中 | 高 |
综合上表各种室内定位方法进行比较我们可以知道WIFI定位技术是其中性价比最好的,所以大多数研究者包括我才会这个方向进行探索。
2.2 WIFI指纹定位法
2.2.1 指纹法概述
指纹定位法,顾名思义,就是像用指纹一样的方法定位,就像每个人都是独特的,人们手上的指纹都是独一无二的,没有重复的,一个指纹对应一个人,同样,每一个室内的位置也是唯一的,他们也都有着独一无二的指纹,蕴含着他们的位置信息,这个指纹就是WIFI的信息。一个地点对应着一个WIFI信息,我们把一个建筑物里面每个需要定位的地点的WIFI信息全部记录下来然后放进位置指纹数据库,我们随便走进这个建筑物的任意地点,然后扫描这个地点的“指纹”,然后与我们的指纹数据库进行对比,找到最相似的那个就是我们所在的位置了。以下是WIFI指纹法的典型结构:
图2.1 WIFI指纹定位法典型结构
WIFI的信息是位置的指纹,但是WIFI的信息有很多,如到达基站的时间大小,到达基站的长短,到达基站时的信号强度都是可以的。而用于测量WIFI的信号强度(RSSI)比较容易,所以大多数指纹法选择的指纹参数都是WIFI的RSSI。
2.2.2 几种典型的WIFI指纹法
(1)K最近邻法:这种方法是从最近邻算法中演变出来的。在最近邻算法中我们对于一个未知地点,直接搜索其WIFI的RSSI,然后对比每个指纹对应地点距离,距离最小的地点就是这个未知地点的,但是这样实际上在现实中是不准确的,所以进一步改进成K最近邻算法。算法的思想是这样的:采取未知地点的RSSI指纹信息,然后计算这个指纹与所有指纹的距离,从小到大排列,选出前K个数据出来,然后将他们的坐标取平均,就是待定位置的坐标地点,如下:
(2.1)
其中(x,y)就是待定地点的坐标,(xi,yi)是取出的K个数据的坐标,这个Kgt;2,因为不能让已知指纹信息过于单一,但是也不能过大,否则太远的也就没了意义,要根据 实际情况选择最佳的K。
- 概率定位算法
如果简单的用一个的统计量来计算定位,可能对数据的整体把握就不是很好,而每个位置所具有每个基站的RSSI值本身就是一个分布,我们可以算概率的方法来计算定位,其简单思想是:每个基站的RSSI是互不影响的,多个基站的RSSI联合起来就有联合概率密度,当我们已知观测点的各个基站的RSSI值得多维向量,可以表示R0=(RSSI1,RSSI2......,RSSIn),将室内区间分为很多格子,已知格子在所有位置的概率,我们可以算出这个R0在每个格子上出现的最大概率,反之,我们已R0,就可以反过来用后验概率求出哪个格子出现的概率大,简单的公式如下:
(2.2) 计算每个网格的上述后验概率,概率最大的那个网格点我们就可以认为是待定位置的定位结果。但是上式只是写出来的一个简单式子,实际上的式子是很复杂的。当位置过大,网格点过多的时候,这种计算量就非常的大,只适用于极端精密计算的设备,不适用于推广。
2.3深度学习
深度学习架构能够自动学习具有更高抽象级别的功能以及将输入映射到输出的复杂功能。它们由多层次的非线性操作组成,这些操作受到人类大脑的启发。它能让机器不是死板的记录最浅显的特征,而是从这些浅显特征提炼出深层次的特征,这种深层次的特征更容易表达和理解以及能简单记录。深度学习的理念是这样的:
- 建立多层数据处理层,将数据输入第一层截取数据在一第一层的特征,并输出另外数据。
- 再次去执行(1),但是此时数据发生了变化,第一次的output变成了第二次的input
- 前两个步骤都是在无监督的情况下获得特征,将这些特征总和,然后用监督学习根据获得的特征总和又逐步去调整数据。
由这样所得数据并不会对原始数据的信息有所缺失,它是原始数据堆砌多层所得,通过多层的分级表达获得了更深层更为抽象的高级特征提取,会使得数据流变得更精简。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: