蒋伟斌, 黄春晖,2
(1.福州大学 物理与信息工程学院,福建 福州 350116; 2.阳光学院 人工智能学院,福建 福州 350115)
无线传感器网络(wireless sensor networks,WSNs)定位技术是物联网产业发展的基石[1]。室内定位一直是物联网产业当中一大难点,在室外可采用先进的全球卫星定位系统(global positioning system,GPS)、北斗卫星等进行精准定位,精度可达到1 m级别[2]。但由于卫星信号对城市当中的钢筋混凝结构的穿透力差,因此,在地下或者相对密闭空间中定位能力弱。在室内定位常采用无线传感网络定位技术解决GPS对室内定位应用中的空白,为大型商超或大规模自动化工厂提供必要的位置指示和导航方案[3]。
WSNs当中常用于室内定位的有到达时间(time of arrival,ToA)、到达信号时间差(time difference of arrival,TDoA)、飞行时间(time of flight,ToF)及接收信号强度指示(received signal strength indication,RSSI)等信号进行测距定位。但由于这些方式对两点之间的距离测量存在较大的误差,所以需要更多的滤波算法提高测量的准确度。文献[4]中提到采用三种滤波预处理方式对RSSI数据处理,但实验结果表明采用的滤波算法改善的效果有限。文献[5]对Shadowing模型进行分析,采用贝叶斯处理,在一定程度上提升精度,但算法复杂程度高。除滤波算法外还需要更多的设备[6],增加了定位识别的时间也不易便携化。除了采用双目摄像头极大提高了测量的准确性同时也增加WSNs以外,文献[7]使用了视觉处理的方法进行算的定位,复杂性,对硬件要求也更高。
本文针对目前室内定位算法中WSNs算法精度不高以及视觉类型中算法复杂对硬件要求高的问题,提出RSSI与单目摄像相结合的方式,形成一种融合算法。
系统由蓝牙与单目摄像头结合而成的信标节点和未知节点组成,系统的节点(已知和未知)蓝牙部分都采用CSR的BC417芯片构建,通过指令切换模式,信标节点装备单目摄像头做实时图像采集。未知信号节点配备有红色LED辅助定位。两个节点通过分时检测双方的RSSI信号并对数据传输。系统对Shadowing模型改进,经过高斯和卡尔曼滤波处理并建立离线指纹库等预处理后,信标节点通过改进Shadowing模型得到两点距离值,利用改进K最近邻(K nearest neighbour,KNN)算法预定位空间位置,摄像头采集图像精确定位未知节点的坐标。
采用带误差的Shadowing模型,对模型进行一定的优化和验证,得到改进后模型的正确性和优越性,改进模型为
PL(d)=PL(d0)+10(n+f(n))lg(d/d0)
(1)
由于室内空间的复杂性,导致原始数据不稳定,因此系统采用高斯滤波进行有效值的筛选与卡尔曼的平滑滤波效果配合,使得RSSI数据稳定并接近实际值[8]。原始数据通过高斯滤波选取发生概率高的数据并对选取的值进行加权平均处理,高斯分布函数为
(2)
选取合适的PRSSI概率临界值,对RSSI数据进行有效的筛选,如式(3)~式(5)所示。PRSSI值为[0.72,1.0]时,效果最佳,通过如下公式计算组内加权平均值
(3)
(4)
(5)
式中N为样本容量,ωt为数据标记。
由图1(a)表明,经高斯滤波后数据有明显稳定。为了进一步优化数据,引入卡尔曼滤波算法。卡尔曼算法迭代次数少,输出结果平滑稳定。卡尔曼滤波算法分为两部分:预测和更新。经过卡尔曼滤波后的数据如图1(b)所示。由文献[9]可得卡尔曼滤波方程为
图1 滤波预处理结果
P(t|t-1)=P(t-1|t-1)+Q
(6)
(7)
M(t|t)=M(t|t-1)+KG(t)[y(t)-M(t|t-1)]
(8)
P(t|t-1)=(1-KG(t)×P(t|t-1))
(9)
经过滤波预处理后的数据收敛性和平滑度明显提高。为了使数据更接近真实值,采用差分模型对节点之间的数据进行再次筛选。假设在同一时空中,节点之间的环境因素不变,各自数据相同,差分模型为
PL(Δd)=PL(da)-PL(db)=10nlg(da/db)
(10)
当da与db相同时,认为RSSI数据有效并进行加权平均处理后。经过差分处理筛选结果如图2(a)所示,数据稳定且接近真实值。由图2(b)可得,数据拟合曲线与真实值接近。
图2 处理结果
系统只采用一个信标节点对未知节点定位,所以,需要对所在空间建立有于RSSI信号的指纹库辅助定位,单目摄像头进行图像采集与处理做准备。指纹法分离线和在线两个阶段,前者为指纹库建立,是将N组位置与特征相关联系进行构建成为一个库,后者是在前者的阶段上,进行查询匹配进行空间定位[10]。系统的指纹库采构建一组位置与特征之间的关系,使用时寻找与指纹库中特征相近的值,对未知节点初步定位。
以主设备端为原点,建立空间坐标系xyz,且取y轴的正半轴。各坐标轴的步长为0.5 m,在每个节点从设备接收此时的RSSI信号数值。将接收到的信号强度与各个坐标节点对应,形成一组的离线指纹库,如表1。
表1 RSSI离线指纹库
其中,x∈[-5,5],y∈[0,10],z∈[-1.5,1.5]。信标节点在距离地面1.5 m处,监测范围如图3(a)所示,整个空间当中共有1 617个点并对每个节点进行测量,得到数据录入在指纹库中,完善离线指纹库。指纹库的建立使得定位时间缩短并且提高精度。
指纹库建立完成后,将RSSI信号经过预处理的数据转换为距离值,转换公式为
(11)
KNN算法常用于二维类聚情况下,在三维空间的适用性差,因此,改进KNN算法使得适用三维甚至多维平面,快速定位未知节点的空间范围。改进KNN算法需要先构建一个三维构架空间(K-D树),系统以x轴为父节点,y和z轴作为空间的分隔点。得到RSSI的特征与指纹库中的特征进行x轴的二叉查找,生成搜索的路线,再进行回溯查找。再对y和z轴空间的进行分割平面,最后确定出K个近邻点。文献[11]指出常用的欧几里得距离进行查找,使得公式适用于三维空间,对距离公式进行扩展为
(12)
系统取K的取值为4(经验值),进行运算处理后,确定未知节点初步确定的空间范围之中,这个范围可以为非连续空间,但两两相互对称。值用包含未知节点的空间节点用笛卡尔坐标系表示,空间节点覆盖大小为r=0.5 m的球体。表2为改进KNN实验结果。
表2 数据处理结果
经过改进KNN算法后,得到数据包含实际的点。与穷举法相比,速度快、更精确且结果数量少。
文献[12]简介几种摄像头测距方式[13],系统以单目摄像头三角测距法为基础,结合RSSI转换的距离对未知节点进行精准定位。摄像头以水平方式放置,对未知节点进行拍摄。有文献[14]通过像素法得到焦距,利用式(13)得到物平面与像平面的直线距离
(13)
式中F为相机焦距,W为物体的宽度,L为改变位置后的距离,K为改变位置后同一个物体在图像中所占的像素点。
图3(b)为空间当中物体与摄像头成像平面之间的关系。在焦距与像构成的三角形与物与直线距离构成的三角形呈现相似关系。则可由式 (13)和RSSI转换的距离RSSId按照几何特性得到两个几何图形之间的关系为
图3 空间定位示意
(14)
经过公式推导得到物在实际空间中的X,Y,Z坐标。再通过此时物在成像平面当中的像素宽度K,按照直线三角法方式推导物在轴线的大致距离,再根据像在平面轴线的距离对其进行自适应比例放大得到直线三角法估计的坐标。将直线三角法坐标与改进三角法坐标进行加权融合,如式(15),其中a为经验值,得到最终的空间定位坐标
(15)
系统采用CSR的BC417模组作为RSSI测量及节点之间的通信载体,发射功率4 dBm。未知节点采用STM8,红色LED以及锂电池搭建而成,信标节点则采用STM32,OV5640高清摄像头、屏幕和外部SRAM搭建。信标节点采集的图像为720 P大小空间,控制器在168 MHz驱动下,图像以BMP数据格式保存至外部SRAM当中,原图像也可在屏幕显示。图4为系统实物及框架流程图。
图4 系统实物及框架流程图
在5 m×10 m×3 m的室内空间进行实验,将信标节点固定在高度为1.5 m,在轴线1 m处标定A值,并在轴线上每个0.5 m处确定最后n值,空间中每隔0.5 m为一个间距节点,进行RSSI数据采集,并建立离线指纹库,前期准备工作完成。任意选取空间节点(1.5,4.5,0.5)m放置未知节点设备并通过专业仪器确定该点RSSI信号值为-48 dBm,图5为在该点未处理的信号值与经过预处理后的信号值对比,可以看出,经过预处理后的RSSI信号值更加收敛波定性小,接近真实值。
图5 预处理结果比对
在实验空间中多次测量得到100组数据,将预处理后的结果通过改进KNN算法的构建K-D树后,数据输出后对准确率进行识别,试验点在改进KNN算法输出结果的概率为98 %。结果表明,改进KNN算法的精度高、用时短。分别采用穷举法和改进KNN算法,在MATLAB中,穷举法筛选出来的数量和时间分别为4~58个和20 s以上,采用改进KNN算法筛选出结果为4个和10 ms。由此可见采用改进KNN算法得到的结果优于穷举法。
在测试空间中的节点(-1.5,8,0)m放置直径为10 cm的红色纸片作为对比物,将未知节点放置于空间中任意位置,测试空间如图6(a)所示,采集图像后,将图像针对R阈值进行二值化操作得到如图6(b)情况。在图6(b)中,发射红光的LED可以看到平面位置在对比物的左上角,对其放大后可得光斑的形状为不规则图形,采用四极限法进行中心点确定,如图6(c)所示,确定的坐标点与改进KNN算法中的匹配点进行比对筛选,得到距离最小最小值为初步定位点,将初步定位点作为新的原点,进行精准定位。
图6 采集图像及光斑处理
如图7(a),在像平面中,以初步定位点作为新的坐标原点,根据新的原点出发,根据像与实物之间的关系进行比例平移,经过坐标转换得到精准的定位坐标值。如图7(b)定位完成后在屏幕上显示出定位的笛卡尔坐标,多次试验结果如表3所示,在3 m范围内定位精度为2 %以内,3~10 m之间,定位精度5 %左右,需要的时间和设备比双目摄像头和无线传感网络定位的方式都低。
表3 实验结果
图7 精准定位简化图
本文针对室内空间定位精度低,设备多高精,算法复杂等问题,提出改进Shadowing模型和多种预处理方式对RSSI信号处理,经图像处理后得到定位点。通过对比实验,所提方案与需要20个以上辅助信标的传统RSSI定位方法具有相同的效果,且减少了视觉空间定位的时间和算法的复杂度。最后达到高精度、定位时间短、设备要求低的算法,满足近年来日常和工业当中(如分拣等)精确定位场景。