章晓强,钱升港,张 拓,竺超明,何文秀
(1.浙江广播电视大学萧山学院,浙江 杭州 311200;2.浙江工业大学计算机科学与技术学院,浙江 杭州 310023;3.浙江工业大学之江学院,浙江 绍兴 312030)
随着我国工业化以及城市化不断发展,能源消耗、机动车尾气排放等迅速增加,空气污染问题逐渐严重,尤其是在经济发达的长三角、珠三角和京津冀等地区[1]。大量未经处理的气体的排放导致空气中存在大量的PM2.5悬浮颗粒,对人体会造成不可挽回的损害[2]。目前对PM2.5的监测主要是随意将监测仪放置在不同环境下[3],因此很难监测个人周围的环境变化。另一方面,近些年来,随着经济发展与人民生活水平的提高,居住环境和室内空气污染日益受到人们的关注,在房屋装修后,室内存在大量的有毒气体残留,主要为甲醛等[4],长期低剂量接触甲醛会导致人咳嗽、流泪、打喷嚏,长期接触较高浓度甲醛会引起呼吸道损害、呼吸困难,甚至最终导致死亡[5-6]。因此,为了个人的身体健康,对人体周围环境的实时监测并进行示警显得尤为重要[7]。人的活动范围不仅仅局限于室内或者室外,而是会在室内或者室外之间进行切换。如果存在智能的算法识别出当前所处环境,进而对监测内容进行切换,例如在室内对甲醛等污染物进行监测,在室外对PM2.5等污染物进行监测,既可以直接展示用户个体当前环境的局部空气质量状况,又能够降低设备能耗。
在环境监测方面,室内外场景识别技术具有较大的应用场景以及应用价值。室内外场景识别实现的方式多种多样,大致可分为三类:(1)基于预部署设备;(2)基于图像识别;(3)基于环境信息特征。李锦锋等人[8]提出的算法通过小波变换对输入图像执行分解,然后使用LBP算法提取纹理特征,对子图之间的能量方差与均值进行计算,并连接特征向量形成图像特征,以此对室内室外图像的场景进行识别。该方法具有不错的识别效果,但因为设备不具备方便携带的性质,无法直接应用到可移动的环境监测当中。毕京学等人[9]提出的方法基于手机集成的GPS模块得到室内外场景下的卫星高度角和信噪比,通过截止高度角、信噪比临界值和卫星数目对室内外场景进行识别。但文章中所述的实验检验地点太过单调,其可靠性仍需检验。
针对上述问题,本文提出了多元融合的无监督室内外场景识别算法,该方法结合光照强度、湿度、温度以及地磁强度等多种因素,提高了室内外识别的精准度,实现对不同场景进行不同类别监测的实际需求。
太阳作为白天室外的主要光源,其光照强度相对于室内的人造光源(例如日光灯等)的光照强度高出一大截,即便是在阴天、多云或者雨天。主要原因是太阳光由可见光、紫外线以及红外线组成,而人造光源在通常情况下不包含紫外线以及红外线。由于肉眼无法识别出太阳光中的紫外线以及红外线部分,而光传感器除了可以测量到可见光部分外,还可以测量到不可见光部分(紫外线、红外线),所以即使在人体感知光照强度相似的情况下,通过光传感器测量到的室外的太阳光的光照强度也会远远大于室内人造光源的光照强度。因此可以通过光传感器对光照强度进行测量,进而可以准确地区分出室内外场景。如图1所示,在所处环境由室内转换成室外的情况下,室外太阳光的光照强度明显远远高于室内的人造光源的光照强度。
图1 室内外场景转换后光照强度折线图
Li等人[10]提出了一种名为IO Detector的室内外识别算法,该算法主要基于光照强度的下临界值与上临界值对室内外环境进行区分,将下临界值定为200 lx,将上临界值定为2 000 lx。依据原文所述,当光传感器检测出的光照强度超过上临界值时,那么所处环境是室外就存在高置信度,反之,则对当前时间进行分析,判断是否为白昼区间。假设当前时间属于白昼区间,那么所处环境是室内就存在高置信度,否则就判断当前光照强度与下临界值的关系。如果当前光照强度低于下临界值,那么所处环境是室外就存在高置信度,否则所处环境是室内就存在高置信度。
并且文中只是简单的将8:00 am-17:00 pm设定为白天,将20:00 pm-5:00am设定为夜晚。由于地域差异等,不同地区的昼夜长短不同,例如当太阳直射北半球时,北半球昼长夜短,而南半球与之相反。并且即使在相同地区,不同季节也会导致昼夜长短变化,例如北半球夏季昼长夜短,冬季与之相反。因此不能简单地将昼夜时间设定为固定值,如何将昼夜区间准确地区分对提高室内外场景识别准确度有着重要意义。本文改进后通过GPS定位获取当前位置经纬度,结合二十四节气获取当前时间太阳入射角,进而通过计算获取当前位置的昼夜分隔时间点。主要分为三个步骤:
①计算正午时间。地球总共被人为划分为24个时区,其中相邻的两个时区中心之间间隔1小时,每个时区的经度跨度为15°。因此可通过经度计算出当前位置所处的时区,然后通过计算当前经度与当前时区中心的差值计算出当前位置的准确正午时间,如式(1)所示。
式中:N为当前位置的正午时间,l为当前位置的经度,为对x进行向下求整,为对x进行向上求整。
②计算白天时长。太阳入射角随时间的变化在北纬23°26′与南纬23°26′之间呈规律性变化,该变化与农历的二十四节气有关[11],因此可以通过二十四节气对当前时间太阳入射角进行计算,主要为春分、夏至、秋分和冬至。首先判断出当前日期所处的节气区间,根据当前日期距离两个节气的时间比例计算当前日期太阳直射位置,进而计算出太阳入射角大小,如式(2)所示。
式中:β为当前日期的太阳入射角,x为当前日期,day1是当前日期前一个节气的日期,Day2是当前日期后一个节气的日期,α1是当前日期前一个节气的太阳入射角,α2是当前日期后一个节气的太阳入射角,Day(x1,x2)为计算x1与x2间天数之差的函数。
③计算昼夜分割点。如图2所示,当天太阳直射点为A,假设该位置的纬度为λ,该纬度上弧B1AB2所处位置为白昼,弧B1CB2所处位置为黑夜,因此,该维度上白昼时长与弧B1AB2所占的比例相关,如式(3)所示。
图2 太阳直射示意图
式中:D为当前位置的白昼时长。
在得到正午时间点和白昼时长后,通过正午时间点将白昼时长对半分,可计算得到当日昼夜分割时间点,如式(4)所示。
式中:T1为日出时间,T2为日落时间。
另一方面,天气也是影响光照强度的重要因素,例如阴天、多云、雨天等异常天气也会导致光照强度衰弱。因此,若将上临界值设定为动态值,根据天气情况动态地调整上临界值能够提高识别的准确度。天气情况主要通过当前空气中的湿度来判别,如果当前空气中湿度较高,就极有可能是处在异常天气情况下。本文通过在其他算法中需要的湿度传感器监测到的当前环境的湿度数据对上临界值进行动态调整,如式(5)所示。
式中:δ1是上临界值,δ2是下临界值,H是当前所处环境的湿度。
基于光照强度的室内外识别算法的具体流程如图3所示,其室内置信度如式(6)所示。
图3 基于光照强度的室内外识别算法流程图
式中:CL为基于光照强度的识别室内外场景的室内置信度,time为当前时间。
室内环境由于其密闭性,通常会处于一个较为稳定的状态,其温湿度在通常情况下会在一个范围内保持恒定或轻微波动[12]。而室外环境由于季节、天气等因素,处于一个整体不稳定,但局部稳定的情况,例如全年温度起伏较大,但在夏季时室外温度远远高于室内温度,而在冬季时室外温度远远低于室内温度;在阴雨天时室外湿度远远高于室内湿度,而在晴天时室外湿度远远低于室内湿度。如图4所示,在夏季时,场景从室内转换到室外后,温湿度传感器测出温度逐渐上升,最终保持在较大差距。如图5所示,在晴天时,场景从室内转换到室外后,温湿度传感器测出湿度逐渐波动下降,最终保持在较大差距。因此,利用温湿度传感器采集到的数据可以用来区分室内外场景。
图4 夏季室内外场景转换后温度折线图
图5 晴天室内外场景转换后湿度折线图
本文所采用的基于温湿度的室内外场景识别算法通过温湿度传感器实时采集当前环境的温度序列和湿度序列,并通过移动智能设备结合GPS定位采集到的定位数据从气象网站上获取当前位置所在地点的温度以及湿度(即室外温度以及湿度)。该部分算法具体可分为两个部分,基于温度的室内外场景识别算法以及基于湿度的室内外场景识别算法。
1.2.1 基于温度的室内外场景识别算法
基于温度的室内外场景识别算法其流程如图6所示。
图6 基于温度的室内外场景识别算法流程图
具体可分为三个步骤:
①计算所处环境平均温度。通过温湿度传感器测量一段时间内的温度序列([T1,T2,…,Tn],n=20),对温度序列取均值,如式(7)所示。
式中:AvgT是温度序列均值,n是温度序列长度。
②临界值判定。将上一步得到的AvgT与从气象网站上获取的所处地区的温度t进行比较,判断其差值是否大于设定临界值φ1(本文中临界值φ1的值设置为4℃)。如果差值大于φ1,则说明所处环境是室内就存在高置信度,反之则进行步骤(3)。
③计算温度序列方差并计算室内置信度。方差计算如式(8)所示。
式中:D([T1,T2,…,Tn])为温度序列[T1,T2,…,Tn]的方差。
将式(8)计算得到的方差与临界值φ2(本文中临界值φ2的值设置为0.03)进行比较,结合步骤(2)从而得到基于温度的室内置信度,如式(9)所示。
式中:CT为基于温度的室内置信度,D为温度序列的方差D([T1,T2,…,Tn])的缩写。
1.2.2 基于湿度的室内外场景识别算法
基于温度的室内外场景识别算法其流程如图7所示。
图7 基于湿度的室内外场景识别算法流程图
具体可分为三个步骤:
①计算所处环境平均湿度。通过温湿度传感器测量一段时间内的湿度序列([H1,H2,…,Hn],n=20),对湿度序列取均值,如式(10)所示。
式中:AvgH是湿度序列均值,n是湿度序列长度。
②临界值判定。将上一步得到的AvgH与从气象网站上获取的所处地区的湿度h进行比较,判断其差值是否大于设定临界值φ3(本文中临界值φ3的值设置为5)。如果差值大于φ3,则说明所处环境是室内就存在高置信度,反之则进行步骤(3)。
③计算湿度序列方差并计算室内置信度。方差计算如式(11)所示。
式中:D([H1,H2,…,Hn])为湿度序列[H1,H2,…,Hn]的方差。
将式(11)计算得到的方差与临界值φ4(本文中临界值φ4的值设置为1)进行比较,结合步骤(2)从而得到基于湿度的室内置信度,如式(12)所示。
式中:CH为基于湿度的室内置信度,D为湿度序列的方差D([T1,T2,…,Tn])的缩写。
地磁场是地球内部存在的一种天然磁场,可以把地球视作一个磁偶极子,其中一极在北极的附近,另一极在南极的附近,两极之间产生的磁场即为地磁场[13]。两极之间的磁轴与地球的自转轴呈11.3°左右的倾斜角,磁场强度大概为25μT~70μT左右。
由于建筑中的钢筋混凝土结构以及室内的电气设备等均会对地磁场造成干扰[14],如图8所示。在室内时,地磁场强度波动幅度较大,而在室外时,虽然地磁场也存在波动,但是波动幅度较小。具体可从图9中可以看出,可看到在室内时,地磁场强度方差较大,说明地磁场强度波动幅度较大[15],而在室外时,地磁场强度方差较小,说明地磁场强度波动幅度较小。因此,利用磁传感器测得的地磁强度序列进而得到的地磁强度方差可以用来区分室内外场景。
图8 室内外场景转换后地磁场强度折线图
图9 室内外场景转换后地磁场强度方差折线图
基于地磁的室内外场景识别算法其流程如图10所示。
图10 基于地磁的室内外场景识别算法流程图
具体可分为三个步骤:
①计算地磁方差序列。将磁传感器测量得到的地磁强度序列([G1,G2,…,Gn],n=100)通过滑动窗口的方式计算得到地磁强度方差序列([D1,D2,…,Dm],m=5),如式(13)所示。
式中:Du为地磁强度方差序列中的元素,u为地磁方差在地磁方差序列中的索引,k为滑动窗口大小,具体大小为地磁强度序列长度除以地磁强度方差序列长度,即n/m=20,AGu为滑动窗口中的地磁强度序列均值,如式(14)所示。
②计算地磁强度方差序列最大值Dmax,如式(15)所示。
式中:max()是最大值函数。
③计算基于地磁的室内置信度。将地磁强度方差的最大值Dmax与临界值DG(本文中临界值DG的值设置为14)相比较,如果Dmax大于DG,那么所处环境是室内就存在高置信度,反之,则所处环境是室外就存在低置信度,如式(16)所示。
式中:CG为基于地磁的室内置信度。
在上一节中提出的四种基础室内外场景识别算法各有其优缺点,并且所适用的环境也不尽相同。
基于光强度的室内外场景识别算法在白天时能够迅速、准确的识别出室内外场景,但在晚上的时候,如果室内的人造光源的强度较高,可能会被算法识别为室外。并且光传感器存在其局限性,如果光传感器被遮挡,就不能够正常测量当前环境的光照强度。
基于温度的室内外场景识别算法在夏季、冬季等室内外温度区别明显的季节识别的效果较好,但在春季、秋季等室内外温度区别不明显的季节识别的效果可能就不太乐观。
基于湿度的室内外场景识别算法局限和温度差不多,但是不在于季节,而是室内外湿度差别,如果在雨天或者晴天的情况下,室内外湿度差距较大,识别的效果较好,但在室内外湿度差别不大的情况下,识别的效果可能就不太明显。
基于地磁的室内外场景识别算法虽然能够依靠地磁强度方差与临界值对比,较好地识别出室内外场景,但是存在的最大局限性就是用户需要不断地在场景中进行移动,因为如果用户不移动,地磁强度就基本不会发生变化,进而导致地磁强度方差几乎为零,导致该算法无法准确识别室内外场景。
结合上述算法的优点,本文提出了一种基于多元融合的无监督室内外场景识别算法。其具体流程如图11所示。
图11 基于多元融合的无监督室内外场景识别算法流程图
具体可分为三个步骤:
①对各算法室内置信度进行投票。通过上述基础算法计算得到各算法室内置信度,分别为CL、CT、CH和CG,投票过程如式(17)所示。
式中:VOTE(x)为分析基础算法的室内置信度与临界值δVOTE关系的函数(本文中临界值δVOTE的值设置为0.5),如式(18)所示。
②场景识别。比较countin与countout的值,如果countin大于countout,那么说明所处环境是室内;反之,则说明所处环境是室外。若countin的值与countout的值相等,则进入步骤(3)。
③计算多元融合室内置信度。如式(19)所示。
式中:CF为多元融合室内置信度,Ck为基础算法的室内置信度。
将CF与δVOTE进行比较,如果CF大于δVOTE,则说明所处环境是室内;反之,则说明所处环境是室外。若CF和δVOTE相等,则对所处环境类型的识别失败。
通过实验对本文提出的基于多元融合的无监督室内外场景识别算法的性能进行验证。为此选择了多个复杂场景进行数据采集,其中有图书馆、大型商场以及上述地点周围的室外场景,并对每组数据打上相应的标签(室内或室外),共计100组数据,其中室内50组,室外50组。对每组数据均使用基于光照强度的室内外场景识别算法、基于温度的室内外场景识别算法、基于湿度的室内外场景识别算法、基于地磁的室内外场景识别算法和基于多元融合的无监督室内外场景识别算法进行实验对照分析,具体结果如表1所示。
表1 室内外场景识别算法实验结果 单位:%
由实验结果可知,每种基础算法在对室内外场景识别上各有所长,但都有缺点与短板,并且在部分情况下识别率不高,本文提出的基于多元融合的无监督室内外场景识别算法在各类情况下都有较为优异的表现。
本文在介绍并改进多种基础的室内外场景识别算法的基础上,提出了一种基于多元融合的无监督室内外场景识别算法,该算法通过投票机制,将多种改进后的基础算法融合到一起,进而得到了一种精度更高的室内外场景识别算法,该算法能够适应大多数的不利条件因素下的室内外场景识别,用于微型无源移动式环境监测设备动态开启或休眠部分监测传感器,进而降低能耗,延长续航时间。由实验结果可知,基于多元融合的无监督室内外场景识别算法准确率达到了近90%,符合微型无源移动式环境监测设备的使用要求。