基于K-means聚类的蓝牙室内定位算法研究

基于K-means聚类的蓝牙室内定位算法研究
余晔
【期刊名称】《《城市勘测》》
【年(卷),期】2019(000)005
【总页数】5页(P34-38)
【关键词】室内定位; 蓝牙指纹; 聚类; 位置加权
【作 者】余晔
【作者单位】重庆市勘测院 重庆 401121
【正文语种】中 文
【中图分类】TN911.2
1 引 言
随着经济社会的发展,人们对位置信息的需求越来越多。同时,现阶段人们的生产生活大多数都是在室内环境下进行的,因此室内定位技术也越来越重要[1]。相比于室外卫星定位,例如中国的北斗以及美国的GPS,在室内环境下由于建筑物的遮挡,卫星信号衰减严重,因此在室内环境下难以利用卫星信号进行定位[2]。室内定位技术作为卫星定位的补充,旨在解决室内环境下位置信息计算的问题。由于现阶段人们的生产生活主要集中在室内环境下,人们对室内位置信息的需求越来越多,室内定位技术越来越得到人们的重视。与此同时,室内定位技术对智能家居、智慧城市、智慧医疗以及智慧工厂都有着重要的作用[3,4]。
近几年来,室内定位技术得到了快速发展,出现了许多新的定位技术。总的来说,现有的室内定位技术主要包括:①基于信号强度(Received Signal Strength,RSS)的定位技术[5];②基于到达角(Angle of Arrival,AOA)的定位技术[6];③基于到达时间(Time of Arrival,TOA)的定位技术[7]。对于AOA的定位技术而言,需要使用阵列天线对多径信号进行分辨,然后利用直达路径进行定位,同时通道之间的幅度和相位误差需要人工校正,因此基于AOA的室内定位技术有着极大的不便。基于TOA的定位技术则需要精确的时钟同步,对于米级的定位精度则需要纳秒级别的时间同步精度,那么对于现有的商用设
备有着很高的要求。如果使用高精度的时钟,则系统的成本将会很高,因此基于TOA的定位技术很难得到实际应用。相较而言,基于RSS的定位技术则具有成本低、通用性强的优点,RSS不需要特殊的硬件设备且采集较为容易,因此基于RSS的定位技术仍然是较为理想的选择。同时,由于蓝牙信号传输距离短、区域性强,能够获得较好的定位精度。
基于此,本文提出了一种基于K-means聚类的蓝牙指纹定位算法。为减小指纹数据库中奇异数据点,提出了利用聚类算法对指纹数据库进行划分,将每个类的中心点以及对应所属类的指纹数据划分为不同的区域。在线定位时,计算采集的RSS序列与各个类中心的欧式距离,将其划分到距离最近的类中;并在对应的子区域内采用加权k-最邻近(Weight K-Nearest Neighbor,WKNN)对目标进行定位;最后,实验结果表明利用划分区域的方法能够有效地提高定位精度。
2 蓝牙指纹定位原理
由于低功耗蓝牙4.0的广泛使用,使得使用蓝牙信号的指纹定位系统具有成本低、部署方便、操作简单的优点。与此同时,随着智能手机的普及及手机厂商对蓝牙标准的大力支持与推广,使得蓝牙指纹定位技术有着更好的应用前景。指纹定位技术是一种场景匹配技术[
8]。在室内环境下信号传播具有多径效应,因此每个位置点的多径分量不同,由于多径的不同造成了接收节点RSS存在差异,这种差异代表了每个位置的差异性即“指纹特性”。对于目标定位就是要与每个位置的RSS进行匹配,从而将相似度最大的指纹点作为估计的位置。
图1 室内指纹网格示意图
指纹定位方法通常有两个阶段:离线阶段和在线阶段。在离线阶段建立每个位置点与RSS的映射即指纹数据库。在如图1所示的室内环境下,可以对其划分为M个网格点称为参考点,定位区域内使用N个节点。在每个参考点上对来自N个节点的RSS进行采集。从每个参考点上的指纹RSS一个N维向量,同时还包括了对应参考点的坐标,RSS指纹数据库可以利用矩阵来表示为:
(1)
图2为在其中一个测试点采集到的不同的RSS分布,表1为具体的统计数值。从图2可以发现,在同一个测试点上接收到的不同蓝牙的RSS分布状况有着明显的差异;从表
1可以看出,同一物理位置上不同的RSS统计数值也呈现着差异。因此,利用不同位置上的不同蓝牙的RSS的差异来表征不同的物理位置,将信号特性与物理位置进行映射并存储就构成了指纹数据库。
图2 不同蓝牙RSS概率分布
不同的RSS数值统计        表1BLE最小值最大值均值方差1-66-58-60.461.172-78-66-71.601.963-58-52-54.761.114-61-56-58.320.81
实际在数据采集的过程中会引入噪声,这些噪声会使得采集的RSS产生波动,影响最终的定位结果,因此在建立指纹数据库之前需要对采集到的RSS数据进行预处理。RSS预处理主要目的是消除奇异值、噪声等因素对参考点处测试数据的影响,可以采用均值滤波取同一参考点处多次采集数据的平均值作为该参考点信号强度的估计值,计算公式如下:
(2)
其中,K为采样次数。在线阶段,可以对实时采集到的RSS序列与每个指纹点进行相似度计算进而实现定位,相似度常用的就是在RSS信号空间的欧几里得距离,因此相似度越高
RSS空间中的两个向量距离就越近。
3 基于K-means的指纹库划分
在室内环境下由于噪声及环境的影响,会使得指纹库中存在异常指纹点,进而会产生较大的定位误差,因此数据库建立之后可以利用聚类算法对指纹库进行聚类,划分为不同的子区域,然后对每个子区域的异常离点进行剔除。与此同时,对指纹库进行聚类划分以后还可以减小查询计算量,同时减小大的定位误差点。K-means算法通过不断迭代来实现聚类[9],当算法满足收敛条件或者达到最大迭代次数则停止迭代,输出聚类中心以及所属类数据点。对于指纹数据库D={RSSi,i=1,…,N},就是要到D的一个划分使得目标函数最小,目标函数为:
(3)
其中,K为类的个数且需要预先进行指定,Xn为第n个类中心。算法主要工作流程如表2所示。
K-means指纹聚类算法        表2输入:聚类的个数K、最大迭代次数MaxNum和数据集D输出:
类中心及对应类成员数据算法步骤:①初始化类中心;②for i=1 to MaxNum③do④计算每个样本RSSi到最近的类中心距离,并样本标记;⑤更新类中心:Xn=1Nk∑RSSi∈CkRSSi,Nk为类成员数⑥利用式(3)计算目标函数J;⑦if J收敛⑧停止迭代⑨end⑩end for输出类中心及类成员End
然而,聚类算法中类的个数需要预先指点。本文首先在定位区域内间隔采集定位点,然后利用定位点在2~N范围内的整数进行遍历,选取统计误差最小的整数作为类个数。
4 基于位置加权的定位算法
对于相似度计算最为常用的是欧式距离,主要原因是欧式距离计算简单且物理意义明确,采样点i与参考点j在RSS空间的欧式距离为:
(4)
其中,是定位时位置i采集到的第l个节点的是参考点j采集到的第l个节点的RSS。利用欧式距离作为相似度测量,采样点位置i越接近参考点j,就意味着RSS相似度越大,因此对应的欧式距离就越小。因此,定位时遍历整个指纹数据库计算采样点与所有参考点的距离,然
后选取距离最小的参考点对应的坐标作为最终的定位位置,这种方法被称为最邻近算法(Nearest Neighborhood,NN)[10]。然而,由于室内多径影响使用单个参考点的结果会产生较大误差,可以采用最小的k个参考点坐标的平均值作为定位位置,具体如下:
(5)
其中,(xj,yj)中第j个最邻近的参考点坐标,(x,y)为最终定位坐标,该方法为k邻近算法(K-Nearest Neighborhood,KNN)[11]。除此之外,还可以对k个参考点坐标进行加权,称为WKNN。本文提出使用多次定位结果中k个坐标的方差作为权重,具体方法如下:
(6)
其中,wj为第j个最邻近的参考点坐标权重,计算方法为:
(7)
其中,σj为参考点j在同一位置t次定位后坐标方差,该方差为二维位置分量方差和。本文实验定位时数据采集 30 s,然后利用1秒钟的数据进行一次定位,则一次定位可以获得30次定位结果,然后利用多次的定位结果求取WKNN的定位结果。
5 实验结果与分析
在图1所示的室内环境下进行数据采集,本文选用CC2540作为蓝牙芯片。蓝牙作为定位节点主要功能是发送蓝牙广播报文,本文中设置蓝牙广播报文的发送频率为 10 Hz。本文定位终端为智能手机,通过Android操作系统中提供的蓝牙扫描模块进行RSS测量值的获取,Android操作系统在4.3及以后版本开始支持蓝牙4.0。将实验环境中的平面均匀地划分为若干个正方形网格,将参考点选在网格的中心。

本文发布于:2024-09-21 12:25:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/94923.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定位   指纹   蓝牙   进行   位置   参考点   技术
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议