叶 贵,杨 洋,张林静,朱 敏
(安徽警官职业学院 信息管理系,合肥 230031 )
根据第七次全国人口普查的数据可以发现,我国60岁及以上的老年人口为26 402万人,占18.70%,且65岁及以上老年人口为19 064万人,占总人口的13.50%。应对我国老年化程度进一步加深,养老问题成为社会研究的热点[1]。当前养老院的老人体征健康信息通过传统的方式进行测量,如血压,心率等。为解决养老院的老年人体征监测问题,实现一个便携式、实时性的体征健康监测系统是有必要的[2-4]。国内外也有相当多的测试系统,例如飞利浦公司对老年人的心血管慢病管理提供一套便携式移动医疗设备,可以在家检测到血压、心律等身体体征。美国的霍尼韦尔提出的ILSA(Independent Lifestyle Assistant)系统,采用无线传感器技术可以帮助老年人的日常生活。
为了监测和预防老年人的身体健康,设计一种可以实时监测和算法预测的便携式的无线网络传感智能系统。该系统是基于ZigBee无线传感器网络技术采集和传输老年人的体征数据,同时将数据传送到云端服务器进行算法分析和预测[5-7]。从而实现对养老院的老年人的日常体征数据的全程监测和处理分析,为保障老年人的突发性疾病的发生和预防提供了一种解决思路。
对养老院的老年人进行数据采集、传输、分析需要一个可靠性好、携带便捷、实时性高以及网络传输可靠的完整系统。该系统针对主要是进行终端传感器的数据采集、无线网络节点的数据传输和云端的算法分析3个部分组成。如图1是系统的结构示意图。
图1 系统结构示意图
老年人需要携带便携式的终端设备以及各类传感器进行其体征数据的采集,将采集得到的体征数据通过无线网络通信技术将体征数据传输到服务器端,并在云端服务器进行相关算法分析和监测,最终得到相应的分析结果及时反馈给用户。通过该系统可以实现对养老院的老年人的体征健康状况进行实时监测,有效地预防突发疾病的发生,保证了老年人的身体健康。
本系统是采用ZigBee技术进行无线网络构建,其具有的特点如下。
网络的可靠性:ZigBee的无线通信技术是采用了IEEE802.15.4 的通信协议,使用2.4 G频率,该网络通信技术具备高可靠性[8-10]。
传输距离:相对于常用的无线通信技术蓝牙和wifi,其具备更远的通信距离,并且还具备多个节点之间进行路由传输功能,可以使得传输距离更远。
低功耗:无线节点会每隔一段时间自动监测收发状态,如果监测没有收发请求任务,就会进入休眠状态。
组网方式灵活:在组网过程中,ZigBee无线通信技术的组网方式具有多样形式,其具备树状拓扑结构、星状拓扑结构以及网状拓扑结构。
网络鲁棒性高:整个自组网络中,如果某一个节点损坏或者断电,其网络会具备自动修复功能,与损坏节点连接的路有节点会与其它的路有节点进行组网连接。
为满足基于ZigBee的养老院老人体征监测系统的软硬件测试需求,系统设计需实现以下几点目标:
1)实时性:监测老年人的身体体征信息,需要被实时的采集数据并处理,并通过算法分析对以往的数据和当前的数据进行疾病的预测,从而推断出当前发生疾病的概率。
2)实用性:本系体征数据的实时采集,为了获取数据需要设计一套便于携带的采集设备。同时为了监测养老院所有病人的信息,需要一套可靠性高、稳定性好的无线传感器网络系统。并且可以对数据进行算法分析,得到老年人的健康状况。
3)鲁棒性:由于需要实时采集大规模的数据,因此对整个无线通信网络的鲁棒性要求极高。因此,对采集到的数据,在终端设备通过基本的数据处理和分析采集一部分数据进行传输到云端服务器进行分析。既保证了网络传输的压力,又对数据进行了预处理,保证了数据的有效性。
为了在养老院监测到老年人的体征信息,需要通过各种体征传感器对数据的采集、传输、算法分析预测。
1)实时体征数据的采集,这里主要是采集心电传感器ECG、呼吸频率传感器、体温传感器和心率传感器。
2)数据传输,通过对采集到的数据进行处理得到有效的数据通过ZigBee无线通信技术将数据进行上传到云端服务器中。
3)算法分析与预测,通过对采集到的数据进行算法设计,这里主要采用了人工神经网络Transformer为基础的算法模型,对数据进行预测[11-13]。
该系统将采用模块化的设计思路进行设计,从功能上分主要包括3个模块,分别是传感器的数据采集模块、数据的无线网络传输模块以及数据处理算法模块,每一种模块的介绍如下。
1)数据采集模块:数据采集通过老年人穿戴各种体征传感器,心电和呼吸频率传感器每一个传感器都与无线终端节点连接和控制,从而实现数据采集、处理和传输的功能。
2)无线网络传输模块:数据采集后需要将数据数据传输到云端服务器,因此采用ZigBee无线通信技术,使用德州仪器生产的CC2530芯片作为微控制器,并采用S-tack通信协议进行管理和控制[14-15],进行网络的构建和传输。
3)算法分析模块:算法分析是对采集到的数据进行监测的同时,并对当前的数据进行预测潜在的突发疾病的发生。这里的算法采用了人工神经网络的transformer为算法模型基础来对时间序列的数据进行有效的预测。
该系统采用的是ZigBee无线通信技术能够保证系统的低功耗、可靠性高、组网方式灵活等。目前,物联网领域中ZigBee技术被广泛应用,因此技术成熟,稳定性好。 该系统使用的是美国TI公司的CC2530F256类型的芯片作为该系统的微控制器和通信功能的芯片。并且该芯片使用Z-Stack的通信协议栈为基础进行有效的开发[16-17]。
从芯片开发手册可以看到CC2530F256是8-bit微控制器,其内核是采用8051类型微控制器的单片机,并且拥有RAM存储为8 kB和Flash存储为256 kB的容量。同时还配合CC2592的射频芯片的使用,可以使得具有更远的传输距离,具备功率放大的作用[18]。在该芯片的基础上对外围应用电路进行设计和开发。
如图2所示,在CC2530芯片周围设计的无线网络节点的硬件示意图,其中包括了微控制器芯片单元CC2530F256、电源电路、功率放大模块的CC2592芯片模块、时钟电路、外围扩展输入输出引脚连接到传感器等。
图2 硬件设计示意图
该硬件设计的设计是以CC2530作为微控制器,其进行程序运行、控制、组网等功能。JTAG接口模块是用于开发过程中代码的debug调试过程。
图3是硬件设计中各模块的电路设计原理图,分别是电源模块、JTAG接口以及时钟电路。
图3 各模块的硬件设计电路原理图
电源电路是采用了稳压芯片HT7322芯片,并采用了两个10 μF的电容进行电源滤波。该稳压芯片的输入是电源,将电压稳压到系统需要的稳定电压3.3 V,其输出电流可以高达300 mA,能够满足整个系统负载的正常使用。
对于JTAG接口是电路设计,参考CC2530芯片手册,该芯片的GPIO端口P2.1与P2.2端口和复位端口以及电源端口组成的调试接口,方便开发人员在开发过程中debug使用。
时钟电路的设计是微控制器CC2530芯片的外围电路的重要组成部分,根据该芯片的手册需要两个不同的晶振频率的时钟电路,分别是32 MHz和32.768 KHz两种类型的晶振,两种晶振分别使用两个12 pF和22 pF的电容,从而构成振荡电路。
传感器模型是心电传感器、呼吸传感器、体温传感器和心率传感器。电源电路是提供给微控制器,以及功率放大心率和各种传感器使用,不同的传感器其工作电压有所区别,因此电源电路设计过程中需要通过不同的稳压芯片对电压进行稳压到能够正常使用的电压。时钟电路是通过晶振和电容的配合使用,给芯片按照某一频率工作。
功率放大芯片的CC2592芯片是增加射频链路的输出功率,并且还可以低噪声放大器来实现接收机的灵敏度。
图2的硬件设计示意图是终端设备的原理图,整个网络还包括中间的无线网络节点和协调器节点。其中无线网络节点和协调器节点原理图是一样的,不一样的是不需要传感器模块。
在终端设备中,其需要连接各种传感器模块。该系统的体征数据包括了心电数据、呼吸频率数据、体温数据和心率数据。
因此每一种数据采集都需要对应的传感器。每一种传感器的型号、正常工作电压及特点如表1所示。
表1 各类传感器信息
接下来对本系统所用到的数各类传感器进行具体介绍。
心电传感器采用型号为AD8232,该传感器对心脏生物电信号的采集,并采用双极高通滤波器对噪声消除,其工作的电压为2.0~3.5 V之间。在系统中,其工作频率为500 Hz的采样频率。
心率传感器采用的型号为MAX30100,可以便携式佩戴在手腕进行心率测量,其工作电压是3.0~5.0 V之间。在系统中,其工作采样频率为10 kHz。
测量体温传感器采用AD8494CRMZ型号,其可以测量温度范围是0~50 ℃,并且该传感器精度高、引脚输出灵活和对电压过压保护的功能,从而保障了安全性。在系统中,其工作是200 Hz的采样频率。
呼吸传感器的型号为HKH-11B,其采用的是压电式敏感器件可以采集人体呼吸时腹部产生的变化情况,经过滤波、信号放大可以得到模拟信号的输出,其输出的电压范围是0.2~1.0 V。在系统中,其工作是50 kHz的采样频率。
整个无线通信网络是通过各个节点构建的,每一个节点都扮演着信息传输和数据采集的功能。数据传输是由终端节点,经过路由器节点,最终都传输给协调器节点,有协调器接收到的数据传到云端服务器。如图4是整个网络的拓扑结构。
图4 系统网络的拓扑结构示意图
系统使用无线通信技术ZigBee作为无线通信基础,再使用各类传感器,对养老院老年人的体征信息进行数据采集,并将获取的数据通过无线传感网传送到云端服务器进行数据的算法分析。系统的软件设计主要包括两部分,一部分是利用Z-stack协议栈完成数据传输,系统组网等功能。另一部分就是系统的应用软件,主要包括在机遇Z-Stack协议栈进行应用软件开发[19-20],包括数据采集处理分析,以及包括服务器端的数据的算法分析。软件的整个伪代码算法如下所示。
PROCEDUER
Begin
Osal_init_system();
HW_INIT();
Sensor_API_Init();
While(true) do
Sample_APP_Func();
AF_DataRequest();
zb_SendDataRequest ();
End while;
End;
系统的无线同学与数据采集的软件代码的实现,是采用Z-Stack协议栈的基础上进行开发实现各种功能。对协议栈的软件硬件层、网络层、任务管理层等各部分进行初始化软件的操作。
对每个传感器的数据采集和数据处理等应用程序的软件设计部分是在Sample_APP_Func()函数中被调用和实现的应用函数。将得到的数据进行数据格式封装,不同字段打包不同的数据类型,通过协议栈中AF_DataRequest()函数将封装好的数据发送消息,并把将需要传输的数据报文发送出去,对于AF_DataRequest()函数在使用的时候是被zb_SendDataRequest()函数调用,将数据发送给指定目的地址的路由器节点,从而可以实现数据在整个多跳自组网络中一跳一跳的传输数据报文。在该过程中,可以通过系统的定时器定时发送数据。这样就可以实现从终端节点的各个传感器采集数据,并通过协议栈控制和管理数据的格式和发送到云端服务器中。
通过传感器采集到的数据进行数据分析和算法模型的构建,通过模型对输入的数据进行数据预测。本文的算法模型是基于人工神经网络Transformer的结构对时间序列的对元数据的融合,从而对数据进行预测,可以预防和监测老年人突发疾病。
人工神经网络技术的不断发展,对时间序列的数据进行预测,其中最为重要的一种神经网络结构是Transformer结构[21],如图5是其结构示意图。其中transformer的编码器和解码器的网络组成如图6所示。
图5 Transformer网络结构示意图
图6 Encoder与Decoder的网络结构
在编码器和解码器中,其中使用的多头注意力机制模块、Add与normalize(Layer Normalization)操作以及FFN(feed forward neural network)组成,对于解码器还包括Masked多头注意力模块,是将掩盖某些值,使其在更新参数时不产生影响。
每一个编码器和解码器中都包含多头自注意力模块。假设输入信息为X=[x1,x2,…,xN]表示N个时间序列信息。则可以得到注意力的输出如下式:
(1)
其中,输入特征会生产3个向量,分别是查询向量Q,键向量K,值向量V,防止通过点积过大添加一个尺度因子dk,其是矩阵QKT的维度。再通过多头注意力机制,就是即将上式通过多个模块组合而成,其计算公式如下式:
MultiHead(Q,K,V)=Concat(head1,head2,…,headi)WO
(2)
模型的输入数据需要进行embedding的操作,对采集得到的四类体征信息数据进行预处理,得到输入维度为16的embedding数据,分别是四类传感器采集的平均值、方差、最大值和最小值,且以均值为预测值,进行模型预测。对输入数据进行归一化操作,并对数据进行Positional Encoding处理[25],使得模型可以利用序列特征,其中采用正余弦函数编码,即保留了相对位置信息,又保留了绝对位置信息。
将embedding数据与位置编码数据进行相加,得到了一个维度为[batch,L,D]的三维向量,其中batch是batch size大小,L为序列长度这里是120,这里的120长度是每一天的采样次数,D是特征的维度这里是16,因此其输入维[batch,120,16]这样的特征向量,并送入到编码器进行编码,经过多头注意力模型。由于Multi-Head Attention是3个输入分别是Query、Key以及Value,都是由上述的特征向量,分别送到全连接层,其中这里的全连接层是有96个神经元组成,因此每一个输出向量维度为[batch,120,96],然后需要得到自注意力通过softmax计算,并对Value的输出进行点积运算,这样就得到了自注意力的输出。网络模型通过多个这样的操作再经过concat操作,然后经过全连接就可以得到多头注意力的输出,然后经过droput层、Layer Normalization、FFN层以及对Query输入加进去,形成残差连接,这里的FFN是两层全连接层,其中第一层有激活函数ReLu,第二层没有,再经过层归一化操作,上述过程是编码过程。
对于解码过程,也是类似于编码的过程,其多加入了掩码多头注意力,其分别对Key、Query以及多头注意力进行mask操作。这样操作有助于网络在学习过程中,训练在预测当前信息时候不会注意到之后的信息。
系统的实验结果与分析,主要介绍本实验平台和数据采集处理,并对该系统的有效性和可靠性进行相关实验,得出本系统是可靠的,且功能满足需求。同时通过系统的算法设计训练和测试模型,得到较好的模型,并在测试集测试该算法的有效性,能够被应用在该系统中。
实验平台是如表2所示,涉及到实验的软件、硬件设备信息、操作系统、开发环境等信息。
表2 实验平台
数据采集是在30位老年人佩戴传感器进行体征信息监测采集,并通过ZigBee无线传感网络进行数据传输,并在服务器端进行算法分析。每一位老年人采集了两个月的数据,每隔2分钟采集一次,并上传体征信息数据。分别得到心率数据、心电数据、呼吸数据以及体温数据。
本系统利用无线传感器网络技术为基础平台,通过ZigBee通信技术作为系统的数据传输基础。本系统的样例示意图如图7所示。从左到右分别是终端设备与传感器采集、路由器、协调器传输到协调器和系统在设计调试现场过程。终端设备是携带在人体,采集收集心率、心电、呼吸频率和温度,其也具备和路由器一样的功能,与路由器进行组网通信,并传输采样的数据。
图7 系统设计的硬件和调试过程
系统的功能验证和可靠性验证是查看系统是否具备完整的功能,且系统运行时是否稳定。系统的功能性与可靠性测试用例如表3所示。
表3 系统功能与可靠性测试用例
通过测试集的数据,输入到算法模型中进行测试,并使用均方根误差(RMSE)的指标来衡量模型的好坏[26]。首先,通过采集得到的数据进行Transformer模型的训练,从而得到训练好的模型,进行部署到云端服务器中,对数据进行推理预测[27]。本实验的训练数据集和测试数据集都是从30位老年人佩戴的传感器采集得到的体征信息数据。按照9∶1的数据随机划分成训练集和测试集。
网络训练伪代码如表4所示。
表4 算法模型的训练与测试接口
表4主要是Transformer算法模型的训练的应用API(Application Programming Interface)接口。从数据的加载,数据embedding的操作、模型构建、损失函数的设计、优化器设计到每一个epoch训练的,最后验证测试。如图8所示是算法模型在训练过程中的每一次迭代对应损失函数值的曲线图。
图8 训练过程中损失函数变化曲线图
如图9是得到的模型在测试集中推理预测得到的结果,与真实结果的曲线图。其中的值是一天内体征信息变化情况,纵坐标四类传感器数据做了embedding操作后的数据的均值,横坐标是时间单位是分钟并以12分钟一次间隔采样得到的。
图9 在测试集中模型预测值与真实值比较
通过训练得到的算法模型,部署在该系统中。对采集得到的体征数据进行预测,可以得到预测的结果与真实采集的数值较为一致,其在测试集中的RMSE指标为0.037 1,因此该算法模型可以较好地对体征信息的预测。
对养老院老人体征信息的监测与管理,并利用无线传感器网络节点对心率、心电、体温以及呼吸信息采集,并将数据传输到云端服务器,并采用人工神经网络Transformer算法对数据进行分析训练并预测。该系统是基于ZigBee无线通信技术,其具有自组网、传输距离远、低功耗以及组网灵活的特点,保证了系统的稳定性和可靠性。
通过在测试集中,对训练好的神经网络模型Transformer进行测试,得到的评价指标RMSE为0.037 1。因此,采用该算法能够满足对体质信息的预测。