## 基于室内WIFI位置指纹定位实验—以BUBT-AUTO为例
基于室内WIFI位置指纹定位实验—以BUBT-AUTO为例
一、实验目的
目前全球定位系统(GPS, Global Positioning System)是获取室外环境位置信息通过实施项目的最常用方式。但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS等卫星定位技术并不适用于室内或高楼林立的场合。目前由于室内环境下都普及了WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法。通过手机app来测试室内规定区域内不同位置的WIFI信号强度,建立指纹数据库,最后利用KNN算法来验证室内位置定位的错误率。
二、实验原理
“位置指纹”把实际环境中的位置和某种“指纹”联系起来,一个位置对应一个独特的指纹。这个志文可以是单维或多纹的,比如待定位设备在接收或是发送信息,那么指纹可以是这个信息或信号的一个特征或多个特征(最常见的是信号强度)。位置指纹法可以看作是分类或回归问题,监督式机器学习方法可以从数据中训练出一个从特征到标签的映射关系模型。KNN是一种很简单的监督式机器学习算法,可以用来做分类或回归。
三、实验过程
1.WIFI信号数据的收集
把北京工商大学良乡校区A座艺术楼301教室作为数据区域,该教室较为方正且无墙壁阻隔。将301教室划分为(A-P)16个网格,如下图所示。每个网格通过APP Cellular-Z检测4个特定路由节点的15个ap信号强度。
2.实验程序的编写
此实验采用的是KNN中的K交叉验证,通过使用K交叉验证来测算实验错误率, 此方法用于模型调优,找到使得模型泛化性能最优的超参值。实验中将所有数据集分成K份,每次不重复地取其中一份做测试集,用其他k-1份做训练集训练模型,之后计算模型在测试集上的MSE_i,将K次的MSE_i取平均得到最后的MSE。
首先将测量好的数据集以TXT格式导入,并将按顺序排列好的数据打乱排放;其次设置参数K,K值得选取从0-4依次进行试验,最终选取错误率最低的参数;最后使用欧式距离测量预测点与已知点之间距离:
实验代码如下:
四、实验结果
数据集如下:
-76 -64 -72 -64 -73 -73 0 0 1118
-76 -58 -77 -63 0 -63 -83 0 1113
-42 -48 -69 -70 -73 -74 0 0 1111
-69 -59 0 -64 -52 -66 -85 0 1124
0 -55 -87 -60 0 -58 -87 0 1121
-45 -53 -73 -64 -74 -77 -87 0 1111
-77 -62 -80 -68 -76 -70 -89 -81 1113
-64 -51 -72 -59 -56 -70 0 0 1111
-71 0 0 -58 -71 -63 -86 0 1121
-40 -48 -58 -54 -54 -67 0 -84 1111
-43 -57 -56 -57 -57 -59 0 0 1112
-69 -59 -60 -65 -69 -67 0 0 1117
-82 -61 -67 -46 0 -67 -82 0 1119
-73 -56 -69 -63 0 -53 0 0 1118
-49 -59 -61 -61 -54 -72 0 0 1112
-79 -69 0 -58 -61 -67 -81 -81 1123
-49 -55 -61 -60 0 -57 -81 0 1112
0 -61 0 0 0 -60 -83 0 1115
-63 -55 -63 -55 0 -68 0 0 1112
-78 -59 -80 -67 0 -59 -80 0 1113
-75 -60 -75 -58 0 -59 -84 -87 1114
0 -65 -61 -59 0 -61 0 0 1122
-75 -55 -77 -57 0 -63 -74 -77 1114
-63 -64 0 -65 0 -62 -85 0 1114
-71 -52 -81 -57 -74 -61 -86 0 1116
-56 -53 -72 -53 -55 -68 0 -84 1115
0 -52 -73 -52 -60 -55 0 -83 1122
0 -52 0 -51 0 -62 0 0 1115
-52 -53 -59 -57 -80 -69 0 0 1116
-69 -60 -73 -63 0 -71 0 0 1116
-55 -59 -53 -56 -55 -58 -80 0 1121
-73 -63 -78 -55 0 -63 -87 0 1116
-61 -61 -53 -58 0 -63 -83 0 1123
-61 -60 -63 -60 -59 -63 0 0 1117
-76 -55 -78 -63 0 -56 -83 0 1113
-81 -59 -53 -58 -53 -64 -83 0 1117
-61 -57 -68 -58 0 -61 -82 0 1114
-68 -61 0 -54 0 -59 0 0 1117
-65 -63 -56 -56 -52 -60 0 0 1118
-64 -62 -62 -67 -64 -62 0 0 1118
-66 -63 -62 -45 -50 -63 -83 0 1119
-83 -63 0 -50 -57 -70 0 0 1119
-75 -58 -72 -57 0 -62 -82 0 1120
0 -65 -64 -58 0 -57 0 -83 1124
-63 -66 -63 -54 0 -68 -82 0 1120
-73 -62 0 -53 0 -64 0 0 1120
-67 -67 -79 -50 -56 -70 -83 -92 1115
0 -52 -58 -57 -56 -64 -82 0 1121
-58 -56 0 -55 0 -55 -84 0 1122
-60 -69 -74 -62 -79 -66 -85 0 1122
-56 -53 -61 -54 -57 -58 -82 -79 1125
-81 -66 -59 -46 0 -67 -81 0 1123
0 -68 0 -49 -60 -65 -84 -87 1123
-60 -59 -80 -54 0 -63 0 0 1119
0 -63 -65 -58 0 -70 -85 0 1124
-78 -63 -52 -54 -50 -56 0 -82 1124
-67 -56 0 -53 0 -58 -82 0 1125
-75 -68 -66 -55 -64 -65 -85 -87 1125
-59 -58 0 -53 0 -57 -82 -81 1125
-55 -57 -56 -65 -60 -54 -82 0 1126
0 -56 -73 -62 0 -67 0 -82 1126
-57 -58 -60 -54 -51 -60 -83 0 1120
-57 -54 -66 -58 -59 -63 -82 0 1126
-74 -64 -61 -67 0 -66 -83 0 1126
-76 -64 -72 -64 -73 -73 0 0 1118
-76 -58 -77 -63 0 -63 -83 0 1113
-42 -48 -69 -70 -73 -74 0 0 1111
-69 -59 0 -64 -52 -66 -85 0 1124
0 -55 -87 -60 0 -58 -87 0 1121
-45 -53 -73 -64 -74 -77 -87 0 1111
-77 -62 -80 -68 -76 -70 -89 -81 1113
-64 -51 -72 -59 -56 -70 0 0 1111
-71 0 0 -58 -71 -63 -86 0 1121
-40 -48 -58 -54 -54 -67 0 -84 1111
-43 -57 -56 -57 -57 -59 0 0 1112
-69 -59 -60 -65 -69 -67 0 0 1117
-82 -61 -67 -46 0 -67 -82 0 1119
-73 -56 -69 -63 0 -53 0 0 1118
-49 -59 -61 -61 -54 -72 0 0 1112
-79 -69 0 -58 -61 -67 -81 -81 1123
-49 -55 -61 -60 0 -57 -81 0 1112
0 -61 0 0 0 -60 -83 0 1115
-63 -55 -63 -55 0 -68 0 0 1112
-78 -59 -80 -67 0 -59 -80 0 1113
-75 -60 -75 -58 0 -59 -84 -87 1114
0 -65 -61 -59 0 -61 0 0 1122
-75 -55 -77 -57 0 -63 -74 -77 1114
-63 -64 0 -65 0 -62 -85 0 1114
-71 -52 -81 -57 -74 -61 -86 0 1116
-56 -53 -72 -53 -55 -68 0 -84 1115
0 -52 -73 -52 -60 -55 0 -83 1122
0 -52 0 -51 0 -62 0 0 1115
-52 -53 -59 -57 -80 -69 0 0 1116
-69 -60 -73 -63 0 -71 0 0 1116
-55 -59 -53 -56 -55 -58 -80 0 1121
-73 -63 -78 -55 0 -63 -87 0 1116
-61 -61 -53 -58 0 -63 -83 0 1123
-61 -60 -63 -60 -59 -63 0 0 1117
-76 -55 -78 -63 0 -56 -83 0 1113
-81 -59 -53 -58 -53 -64 -83 0 1117
-61 -57 -68 -58 0 -61 -82 0 1114
-68 -61 0 -54 0 -59 0 0 1117
-65 -63 -56 -56 -52 -60 0 0 1118
-64 -62 -62 -67 -64 -62 0 0 1118
-66 -63 -62 -45 -50 -63 -83 0 1119
-83 -63 0 -50 -57 -70 0 0 1119
-75 -58 -72 -57 0 -62 -82 0 1120
0 -65 -64 -58 0 -57 0 -83 1124
-63 -66 -63 -54 0 -68 -82 0 1120
-73 -62 0 -53 0 -64 0 0 1120
-67 -67 -79 -50 -56 -70 -83 -92 1115
0 -52 -58 -57 -56 -64 -82 0 1121
-58 -56 0 -55 0 -55 -84 0 1122
-60 -69 -74 -62 -79 -66 -85 0 1122
-56 -53 -61 -54 -57 -58 -82 -79 1125
-81 -66 -59 -46 0 -67 -81 0 1123
0 -68 0 -49 -60 -65 -84 -87 1123
-60 -59 -80 -54 0 -63 0 0 1119
0 -63 -65 -58 0 -70 -85 0 1124
-78 -63 -52 -54 -50 -56 0 -82 1124
-67 -56 0 -53 0 -58 -82 0 1125
-75 -68 -66 -55 -64 -65 -85 -87 1125
-59 -58 0 -53 0 -57 -82 -81 1125
-55 -57 -56 -65 -60 -54 -82 0 1126
0 -56 -73 -62 0 -67 0 -82 1126
-57 -58 -60 -54 -51 -60 -83 0 1120
-57 -54 -66 -58 -59 -63 -82 0 1126
-74 -64 -61 -67 0 -66 -83 0 1126
在测量过程中,为了确保数据获取较高的准确性,对每个区域的每个点选取了15个AP,最后通过KNN算法运行不断检验,分别通过选取6-15个AP中测试得出在选取8个AP参数K=3时错误率最低,错误率为23%。
五、总结
本次小组实验的优缺点分析如下:
WiFi无线网络定位指纹匹配方法具有成本低、准确率较高、易学习等优点,实验依托的KNN算法中的K交叉验证,KNN属于监督性的分类算法,适合指纹匹配定位相关数据的使用。
通过小组成员4人的分工协作不断探究,在数据收集,程序代码整理方面均取得了加大进步,在最终的实验过程中准确率从54%上升至77%,并且准确率趋于稳定。起初小组成员选取的测试集为学活一层大厅,收集了约100个数据,但由于AP选取有误问题导致错误率极高。
同时我们的实验还有一些不足。首先,在收集WiFi信号强度、采集数据库信息时,由于使用BTBU-AUTO的WiFi信号存在一些动态变化,导致数据会产生预测误差,同时因为时间空间的限制,导致数据库数据数量较少,这使本组实验存在一定的误差,这也是最终结果准确率在77%就趋于稳定的根本原因。其次,在测试程序代码编写过程中,在小组试样过程中出现的特征性问题没有相应的完善代码修正。
本组成员在实验过程中群策群力,集众人之所长,圆满的完成了本次小组实验。在实验中,我们也学习到了相关知识,增长实践经验。希望在今后的课程实验中我们可以灵活运用所学知识,吸取本次实验的经验教训,获得更加圆满的成果。
小组成员:王玺、岳斯文、张佳、朱桐