田沐鑫,何 极,陈邦亮,赵 萌,陈 芬
(宁波大学 信息科学与工程学院,浙江 宁波 315211)
随着酒店、公寓等应用市场中智能门锁的普及,传统插卡取电模式逐渐被淘汰,取而代之的是利用室内人体感应设备判断房间是否有人存在[1],从而实现自动通断电功能。现市场已有的传统人体感应器如红外人体感应器、多普勒感应器、超声波感应器等,在精确度、灵敏度和适应性等方面存在不足,容易受到光线的干扰,并且用于设计人体感应系统时,不能做到低成本判断静止人体存在,故无法满足产业需求。而利用市面已存在的新型产品(诸如iHUAGAO智能传感器、安锐通智能感应器)设计人体感应系统,也存在待机电流大、探测角度窄等问题。因此,急需一款高灵敏度、高适应性的室内人体感应设备。
而在无线传感网络中,对室内目标定位追踪可分为两类:主动定位追踪技术和被动定位追踪技术。较之主动定位追踪,被动定位追踪不需自身携带终端设备,因此能更为有效地感知位置,追踪移动轨迹。目前无线传感网络中对室内目标定位追踪多采用这种方法,如刘建华[1-2]等基于射频信号设计实现定位算法,利用马尔科夫链模型对每个对应于信号连线的子向量进行优化;丁根明[3]等仿射传播聚类算法、接入点选择算法优化指纹定位系统性能。这些已有方法虽然在精度方面较为理想,但其数据量大,计算复杂度较高,功耗大,不能低功耗简单快速获得人体是否存在的判断,也未能直接将判断信息处理上传云端。
本文设计了基于ZigBee背景噪声的高灵敏度被动室内人体感应系统,不需携带任何装备,仅通过噪声信号变化就能判断人体存在。系统包含三种工作模式,并可进行误触判断,采用了SVM算法[4],能够可视化分析,整体提高了感应人体的准确度。系统不止局限于感知人体状况,还能无缝接入各大云平台,实现数据共享,为其他智能家具提供了底层服务,利于智能家居一体化的实现,减少了人力成本,给用户生活带来极大便利。
系统由NB-IoT模块、ZigBee模块和热释电红外模块共三部分构成。系统整体架构如图1所示,包含了休眠、通信和探测三种工作模式。初始状态下,N个探测节点(N为自然数)均处于休眠模式,仅在红外传感器检测人体存在时发出高电平唤醒ZigBee[5]进入通信模式,以低速发包。当热释电红外感应不到人体存在时持续发出低电平,ZigBee进入探测模式。产品共使用(N+1)个ZigBee模块,包括N个探测节点和1个计算节点,可实现误触判断、SVM定位及状态判断功能。计算结果由NB-IoT无缝接入云平台或由计算节点直接传至已有网关,实现数据共享[6]。
图1 基于ZigBee背景噪声的人体感应系统架构图
系统设计了两类节点:探测节点和计算节点。两类节点均包括ZigBee模块、热释电红外预留接口、充电模块和电源开关。ZigBee模块是指能够发射2.4 G频段的电磁波并且能按照ZigBee无线通信协议进行通信,并且进行数据处理和运算的模块,本系统采用型号为CC2530的ZigBee模块。计算节点还包括NB-IoT模块,该模块与计算用无线通信模块相连,可将计算用无线通信模块输出的室内是否有人信号发送给远程接收端。
本系统是在IAR开发环境中实现的,依靠无线通信模块中的通信协议建立ZigBee节点、热释电红外传感器和NB-IoT的连接。通过模式判别算法,实现最佳探测模式选择,很大程度上降低了系统功耗。采用SVM算法,对采集数据进行分类,将低维空间投射到高维空间进行判别,可实现精确感知人体存在,判断人体位置的功能。探测数据由NB-IoT上传云平台,可在系统设计网页端显示。系统SVM算法的具体流程图如图2所示。
图2 SVM算法的程序流程图
SVM算法主要分为离线训练阶段和识别阶段,这两个阶段可以实现记录背景噪声和计算位置信息的功能。背景噪声作为一种自适应混合高斯模型,一般是三维或四维高斯函数。高斯模型的所有点都符合n-ε分布,如果新的信号特征偏离高斯分布若干个ε区间,就认为是前景信号,把这些信号特征提取出来,利用SVM算法计算,即可得到具体位置信息。
系统选用热释电红外传感器和ZigBee模块的探测节点作为感知人体的工具。
(1)利用热释电红外传感器感知人体存在
红外传感器通过感知人体运动时释放的红外光线可判断人体的存在,市面上已有的人体感应器多半由红外传感器改进而来。系统应用热释电红外人体感应模块在无人时持续输出低电平,在有人时输出方波的特点,实现了室内人体存在的探测,并将其作为ZigBee模块是否被唤醒的判断依据。
(2)利用ZigBee模块的探测节点感知人体存在
本系统将ZigBee模块作为发射源,利用电磁波的多径效应收集室内信息,再将信息传至ZigBee模块的计算节点进行数据处理[7]。多径效应是一种由电波传播信道中的径传输现象所引起的干涉效应。在实际的无线电波传播信道中(包括所有波段),常有许多时延不同的传输路径,因此利用多径效应,哪怕人体不处于节点与节点之间“视距链路”上,也会对链路的信号强度产生影响,从而能够检测人体位置。
为提高探测的精确性,系统设置了误判模式。当热释电红外人体感应模块发出持续低电平使ZigBee探测节点进入探测模式时,节点将以广播的形式向外发送自身到其他探测节点的信号强度和红外传感器的电平高低。如果被唤醒的探测节点数量过少,则认为该探测节点的热释电红外人体感应模块被误判,计算节点将发出信号,使被唤醒的探测节点重新休眠。
本系统选用ZigBee作为判断和计算人体状态及位置的工具。在室内无人的情况下,系统记录ZigBee模块发射电磁波的信号强度。当有物体或人体进入室内,计算节点收到的信号强度会发生改变,通过SVM算法,即可判断静止人体存在并计算得到室内人体的位置。
SVM算法主要分为离线训练阶段和识别阶段。计算节点的离线训练阶段是室内人体感应装置安装使用前的准备阶段,其具体包含以下几个步骤:
(1)在室内无人状态下,计算节点向所有探测节点发送探测控制指令,使所有探测节点都进入探测模式。
(1)
(2)
(3)
(4)
(3)重复步骤(1)和步骤(2)x次,x为自然数,从而得到x组室内无人状态的特征矩阵组{Ex,Fx}。
(4)在室内有人状态下,计算节点向所有探测节点发送探测控制指令,使所有探测节点都进入探测模式。
(5)计算节点解析每一个探测节点中探测用无线通信模块发送的,其余探测节点相对于该探测节点的信号强度Rijn并持续一个采样周期,然后根据式(5)和式(6)计算在一个采样周期内的第三特征值Hij和第四特征值Kij,然后最后根据式(7)和式(8)得到室内有人状态下的特征矩阵组{O,P},并存储在计算用无线通信模块内部。
(5)
(6)
(7)
(8)
(6)重复步骤(4)和步骤(5)y次,y为自然数,从而得到y组室内有人状态的特征矩阵组{Oy,Py}
计算节点的识别阶段分为以下几个步骤。
(1)发送休眠控制指令,使得所有探测节点均处于休眠状态。
(2)不断侦听是否有探测节点转发了热释电红外传感器的电压信号,当发现任意一个探测节点转发了热释电红外传感器的电压信号以后,则给所有探测节点发送进入通信模式的通信控制指令。
(3)不断判断是否所有探测节点转发的热释电红外传感器的电压信号都是第一电压信号;如果是并且持续了预设的第四时间间隔,则给所有探测节点发送进入探测模式的探测控制指令,并进入步骤(4);反之,持续不断的重复步骤(2),并直接输出当前状态为室内有人状态。
(4)解析每一个探测节点发送的,其余节点相对于本探测节点的信号强度Rijn并持续一个采样周期,根据式(9)和式(10)计算在一个采样周期内的第五特征值Wij和第六特征值Uij,然后依照式(11)和式(12)得到一组未知类别特征矩阵{S,T};
(9)
(10)
(11)
(12)
(5)依照公式(13),计算未知类别特征矩阵{S,T}与x组室内无人状态的特征矩阵组{Ex,Fx}的距离Lx,其中a和b为预设调节系数;只要未知类别特征矩阵{S,T}与任意一组室内无人状态的特征矩阵组{Ex,Fx}的距离Lx小于预设阈值T1,则输出当前状态为室内无人状态,否则进入步骤(6)。
(13)
(14)
V=ρ×Lx
(15)
V′=σ×Ly′
(16)
(8)当计算节点判定当前状态为有人状态时,等待预设的第五个时间间隔后,跳转至步骤(4);当计算节点判定当前状态为无人状态时,跳转至步骤(1)。
整个训练过程可用单片机完成,不需手动进行。因每个房间都具有各自的特点和布局,故离线训练阶段必不可少。系统具有易于使用和易于调试的优点,有着较强的适应性。
本系统选用NB-IoT[8]作为实现数据共享的工具。
每套设备在ZigBee计算节点配备一个NB-IoT模块。NB-IoT模块构建于蜂窝网络,能提供非常全面的室内蜂窝数据连接覆盖,可以将数据无缝接入各大云平台,实现数据共享。同时该模块消耗带宽低,其发射电流仅为μA级别,功耗小,可用电池供电,能够实现产品的低功耗。
NB-IoT通过coap和UDP协议将数据从传至云平台,由HTML5和Bootstrap共同实现云平台管理系统前端制作,node.jd操作数据库MySQL,实现了云平台后端数据的提供与获取。
为了方便用户对自己的房间情况了解以及进行管理,系统设计客房人体感应系统管理平台,其构架如图3所示。
图3 客房人体感应系统管理平台构架
该平台具备注册登录功能,用户可以选择记住用户名及密码,方便下次登录,用户成功登录后可以进行相关信息的查询,主要包括以下两个方面。
(1)房间情况。可以查看自己的房间里面是否有人,并知道房间的温度、湿度等数据。
(2)ZigBee节点情况。可以查看硬件是否正常工作、节点温度、硬件电量情况。同时异常管理界面可以提示用户硬件的故障问题。
对系统整体进行测试,当热释电红外感知到室内有人时,发出0和3.3 V高低跳变的电平,ZigBee进入通信模式。当热释电红外感知不到人存在时,持续发出低电平,使ZigBee探测节点进入探测模式,由各个探测节点反馈到计算节点的信息确定是否发生误触。确定是误触情况,则探测节点回到休眠模式。未发生误触,则在此模式下采集噪声信息,与背景噪声相比对,根据雷达图的面积变化可判断有人,并能得到人的一些位置信息。初步测试,系统各部分功能正常,对有无人的判断正确率较高,且具有一定的定位辅助功能。
本文的实验环境如图4所示,4个ZigBee节点放置在测试房间(1.5 m×3.5 m)的四个角落,在宽的中位线上每隔0.5 m作为一个测试点,本次测试共有8个测试点。基于ZigBee节点的接收发信号强度(RSSI)[9],研发了一套基于SVM的室内定位系统。实验主要测试人处于不同位置时,系统采集的信号强度的变化。
图4 信号强度变化测试实验环境图
先在无人的情况下采集背景噪声,对四个节点形成的12条链路进行循环发包,得到12条通信链路的RSSI值,根据高斯分布的理论,剔除距离均值3倍标准差以外的异常数据后得到各链路信号强度的均值,如表1所示。
用余下有效数据绘制背景噪声雷达图,见图5。
有人的情况下,分别测试人在①~⑧八个位置的强度变化,剔除距离均值3倍标准差以外的异常数据后,同样绘制雷达图,结果如图6所示,图中灰色区域面积相对于背景噪声雷达图发生了变化,由此可以判断信号强度发生改变,即室内有人。
表1 各位置上各链路信号强度均值统计表
图5 背景噪声雷达图
本文的实验环境如图7所示,4个ZigBee节点放置在测试房间的四个角落,同时将测试空间划分为4×4 的16个块,每个块的的长度和宽度都为0.7 m。基于ZigBee节点的接收发信号强度(RSSI),研发了一套基于SVM的室内定位系统。
实验主要测试人处于不同区域时系统定位的识别准确率和是否有人的判断准确率。设计了三种实验方案,如图8所示。
图8(a)主要测试系统对于人处于中心区域的定位精度;图8(b)主要测试系统对于人处于对角线的定位精度;图8(c)主要测试系统对于人处于分散状态的定位精度。
实验离散训练阶段,对四个节点形成的12条链路进行循环发包,得到12条通信链路的RSSI值,剔除异常数据。变换位置依次收集不同站位的RSSI值。将得到数据的80%作为训练数据,用SVM进行训练,作为背景信号的模型。将图8(a)得到的数据80%作为训练数据,用SVM进行训练,作为中心区域站位的模型。然后将图7和图8 (a)得到的剩余20%混合作为测试数据,以此模拟离线状态,得到本文系统的识别结果。同理,图7和图8(b)、图7和图8(c)也同样进行实验测试,得到识别的结果。
图6 八个位置雷达图
图7 判断准确率测试实验环境图
根据计算,本文方法的定位准确率如表2所示。
图8 实验室站位图
表2 不同站位的判断准确率
由于无人时的背景信号与有人时的信号在某些通信链路会有明显区别,基于12条链路特征的SVM模型可以有效分离出无人和有人两种情况,本文对在中心区域、对角线和分散状态三种站位的是否有人判断准确率分别为95.7%、95%和97.3%,平均判断人体是否存在的准确率可达96%。此外,系统设置了室内定位的辅助功能。按图8(a)站位由于(6)、(7)、(10)、(11)的位置过于靠近,当人处于这些位置时RSSI的信号变化不是十分明显,所以按图8(a)站位进行实验得到的定位准确率比较低。而图8(b)和(c)由于站位相对都比较分散,特别是图8(b)以对角线站位进行实验,当人处于不同位置时四个节点接收到的RSSI都会有一定变化,因此图8(b)的定位准确率最高,图8(c)次之。很明显,本文系统的定位效果受所需定位的位置有关,进行对角线定位准确率较高,分散定位相对一般,对中心区域进行精准定位效果较差。综上,本文系统能够以较高的准确性完成空间内有无人员的判断,并带有较为准确的定位辅助功能。
本文以热释电红外、ZigBee和NB-IoT三大技术成功设计了基于ZigBee背景噪声的高灵敏度、低功耗的新型人体感应系统,能够实现对室内人体存在的准确侦测。系统通过设置探测用无线通信模块和计算用无线通信模块,配合热释电红外传感器一起工作,一旦热释电红外传感器误判,就采用电磁波强度对比进行二次判断,在提高检测灵敏度的同时,通过设置探测用无线通信模块的不同工作模式,降低探测节点的功耗。本系统不仅平均判断人体是否存在的准确率可达96%,而且还创造性地实现了定位功能。系统不易受光照、温度和水汽等外在条件的影响,有较好的稳定性。系统目前主要适用于酒店中,未来将推广应用于普通居民楼、办公场所及连锁公寓等领域。系统有待进一步完善,实现识别人体动作功能,以适应更复杂的环境。