文献标识码:A
DOI:10.16157/j.issn.0258-7998.175084
中文引用格式:刘艳萍,李杰,金菲. 基于RNN的脉搏波血压计的研究与实现[J].电子技术应用,2018,44(6):76-79,84.
英文引用格式:Liu Yanping,Li Jie,Jin Fei. Research and design of pulse wave sphygmomanometer based on RNN[J]. Application of Electronic Technique,2018,44(6):76-79,84.
0 引言
便携式可穿戴医疗电子产品可以随时随地监控人们自身的健康状况。但是目前常用的充气式血压计不方便携带,同时其袖带测量会让人产生束缚感,所以设计一款便携式无束缚的血压计是目前急需解决的问题。
本文采用光电容积描记法采集人体的脉搏波信号。利用光电技术检测血液容积的变化,通过分析容积变化的脉动性,进行血压的计算。光电法采集到的脉搏波数据具有较强的随机性和复杂性,是一种非线性、非稳定的时间序列,对其很难用一种简单的非线性模型来完整描述并准确预测血压。文献[1]采用LSTM神经网络模型,通过脉搏波传导时间来预测血压,需要采用心电和脉搏波两路信号共同计算出脉搏波传导时间,对心电和脉搏波数据进行特征点的提取,同时训练的年龄段比较集中。文献[2]采用410个人的脉搏波(PPG)信号进行机器学习模型的训练,得到预测血压的预测模型,输入的训练参数较少,容易降低训练模型的普遍适应性。
本文基于循环神经网络,设计了一个3层的循环神经网络血压预测模型,根据容积脉搏血流量信息与人体血压的关系预测人体的收缩压和舒张压。循环神经网络能够在当前时刻训练时添加上一时刻的特征参数,体现出脉搏波信号时序的连续性; RNN(Recurrent Neuron Network)单元层会自动提取需要的特征信息。所以建立的脉搏波血压预测模型的预测效果会大大提高。
1 基本原理
血压是血管内血液对血管壁的压力。人们通常说的血压指的是动脉血压,是推动血液在血管内流动的动力,心脏在周期收缩和舒张的同时,血管里的血液体积会发生脉动性变化[3]。
1.1 血压跟脉搏波关系
根据Lambert-Beer定律和光的散射理论,由于指端组织对光源的吸收程度不一样,心脏收缩射血前后光学传感器接收到的透射光的光强存在一定的变化量ΔI,其中忽略了毛细血管的形状对光强吸收的影响。心脏收缩向血管内射血,动脉血管内半径为d,血管内血液量增加后血管的内半径增加Δd,血管内的血量发生变化会导致动脉血压也随之发生变化[4]。血管内血液容积的变化量和压力的变化量之间的关系如下:
由式(4)可见,血压变化量ΔP和透射光的光强变化量ΔI之间存在一定的关系。因此可以采用透射光照射手指指端血管,由光接收器接收到透过血管的光强度,将此光强度变化信号转换成电信号,便可获得容积脉搏波的变化,脉动的脉搏波电信号能够表征血压的变化,能够通过脉搏波波形变化来预测血压。
1.2 循环神经网络的基本原理
RNN是一种对序列数据建模的神经网络,即一个序列当前的输出与前面的输出也有关[5]。具体的表现形式为,网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再是无连接而是有连接,并且隐藏层的输入不仅包含输入层的输出还包括上一时刻隐藏层的输出,图1为RNN模型的示例图。
图1中xt是t时刻的输入,St是t时刻的隐状态(memory),基于上一时刻的隐状态和当前输入得到:St=f(Uxt+WSt-1),其中f一般是非线性的激活函数,在计算S0时,即第一个血压值的隐藏层状态,需要用到St-1,但是并不存在,在现实中一般置为0。Ot表示t时刻的输出,表达式为Ot=softmax(VSt)。在传统神经网络中,每个网络层的参数是不能共享的;而在RNN模型中,所有层次均共享同样的参数。说明RNN中的每一步都在做相同的事,只是输入不同,大大降低了网络的参数。
2 循环神经网络预测算法的实现
2.1 循环神经网络模型的建立
2.1.1 数据的准备
通过本文设计的血压计采集模块,在医院、学校等场所对采集对象进行脉搏波数据的采集,同时用欧姆龙血压仪对血压测量标定。采集过程中要求被采集者静坐,保证采集到的脉搏波数据和血压值的准确性。
每个采集对象的采集时间是30 s,因为采集模块的采样频率是100 Hz,每10 ms采集一个脉搏波数据,所以每个对象采集的数据是3 000个点,也就是每组数据包含3 000个点。在采集数据的同时用欧姆龙血压仪测量人体的收缩压和舒张压。
2.1.2 数据的预处理
脉搏波信号频率比较低,采集到的原始的脉搏波会存在很多噪声,所以在计算血压之前要先进行脉搏波数据的预处理。脉搏波原始数据中存在的主要噪声有工频噪声、呼吸产生的噪声、采集过程中抖动产生的噪声以及外界光干扰产生的噪声等。针对外界光干扰和采集过程中抖动产生的噪声,硬件系统设计添加了滤波器,同时外壳也做了遮光,减少外界光的干扰。
脉搏波信号是人体的生理信号,频率较低,主要集中在0.1~10 Hz,针对脉搏波信号10 Hz以上的都是要滤除的高频噪声,本文采用椭圆低通滤波器[6]对脉搏波信号进行高频噪声的去除。原始脉搏波数据经过椭圆低通滤波前后对比图如图2所示,可以看出高频毛刺已经被滤除,波形比较光滑,同时保留了原始脉搏波的波形特征。
2.1.3 模型的建立
由于人体心率的正常范围为60~100次/min,128个点就基本包含了一个心率周期,本文从一组脉搏波数据中挑选完整脉搏波数据的128个点用作预测模型的输入。每一组输入的数据包含红光的128个预处理后的脉搏波数据,输出数据包含二维特征(收缩压和舒张压),如表1所示。
本文设计了一个含有3个网络层的循环神经网络模型,输入特征点的个数选择128个点。为了防止因为样本数据有限出现严重的过拟合的现象,在训练模型隐藏层没有选择更深的网络。本文循环神经网络模型包含1个输入层、3个RNN单元层和1个输出层。输入层用于输入与血压有相关性的脉搏波数据;3个RNN单元层用于信息特征的提取;1个输出层采用均方差损失函数作为输出,均方差的表达式如(5)所示,输出层用于最后对收缩压和舒张压数值的预测。
式中,n表示测试样本的数目,pred(i)表示当前第i测试样本输出的概率,y(i)表示真实样本的概率分布值。
2.2 循环神经网络的训练及测试结果分析
网络训练时,设初始学习率lr为0.01,动量项系数为0.9,即每训练2 000次学习率降低10倍;由于数据量并不大而3层网络较深,故加入Dropout来防止训练时出现过拟合的现象[7],值设为0.7;训练的迭代次数选择10 000次。对于每一组数据训练损失曲线在训练次数达到2 000次时,损失曲线就基本不变,损失也不会下降,预测模型基本稳定。
对采集模块采集到的脉搏波数据,分别用6 000组、7 000组和8 000组进行训练,2 000组进行预测验证。不同训练集预测误差均值和RMSE如表2所示。经实验证明采用8 000组数据时,网络能够得到充分训练。
其中用8 000组数据进行训练得到的预测误差分布柱状图如图3所示。SBP的预测误差均值为3.45 mmHg,RMSE为2.51 mmHg;DBP的预测误差均值为2.73 mmHg,RMSE为3.68 mmHg。文献[8]采用循环神经网络预测血压值,通过脉搏波传导时间和一些脉搏波特征参数预测血压,SBP的预测误差均值为4.13 mmHg,DBP的预测误差均值为2.8 mmHg。通过对比分析发现,本研究采用脉搏波数据进行血压的预测,预测效果有明显的提升。
3 系统设计
3.1 硬件系统设计
硬件系统主要包括光电采集模块、主控模块、显示模块3部分。其中光电采集模块完成信号的采集及前端信号预处理;主控模块完成信号滤波及算法的实现,并将结果送显示模块的OLED进行实时显示。
3.1.1 光电采集模块
信号采集模块框图如图4所示,本系统采集部位在手指指端,采用透射式测量法。信号采集模块由光电采集和模拟前端处理两部分组成。光电采集包含LED光源及光电传感器,模拟前端处理由TI公司的AFE4400芯片实现。
模拟前端AFE4400集成了LED驱动电路、放大电路、数字转换器和数字滤波器。AFE4400的LED驱动电路驱动LED红光光源闪烁,并且控制LED的闪烁周期[9-10]。光电传感器将光信号转换成电信号,经AFE4400的放大转换及滤波处理后,得到有效稳定的脉搏波信号。
3.1.2 主控模块
本血压检测系统芯片选择超小型、超低功耗MSP430[11]单片机。本文通过SPI总线将光电采集模块输出的数字脉搏波信号传递给微处理器MSP430进行血压的计算。
3.1.3 显示模块
本系统使用中景园0.96英寸的OLED显示屏,OLED显示屏的接口电路如图5所示,单片机通过I2C接口将血压值传给OLED显示屏,SCLK为I2C通信时钟管脚,SDIC为I2C通信数据接口。
3.2 系统软件设计
本系统的软件部分完成系统信号的采集、处理和显示。
数据采集流程图如图6所示。先对AFE4400进行初始化,然后驱动LED红外光闪烁,当采集到的数据个数到达128时,停止循环完成一个数据包的采集。将一个包的脉搏波数据经SPI传给主控制模块,进行数据的预处理以及血压的计算,最后传给OLED显示屏。
数据处理和显示模块对主控制模块接收的一个包的脉搏波数据采用椭圆低通滤波器进行预处理,然后将预处理后的脉搏波数据输入到循环神经网络模型中进行血压的计算,并将计算出来的收缩压和舒张压发送给OLED显示屏进行显示。
4 测试结果
为验证设计的合理性,挑选年龄不同的50人作为测试样本,并将其与符合国家标准的欧姆龙血压计进行对比。
本研究采用Bland-Altman法对基于RNN的脉搏波血压计测得的血压值和欧姆龙电子血压仪测得的血压值进行一致性分析。在所有测试样本的对比中挑选其中代表样本15组,两种测量方法所测血压的一致性分析图如图7所示。
采用欧姆龙电子血压仪的测试结果与本系统测量结果进行分析,本系统测量血压的SBP误差均值为2.73 mmHg,RMSE为3.39 mmHg,DBP误差均值为3 mmHg,RMSE为3.46 mmHg。测试的血压值均在一致性界限以内,可知本文设计的便携式脉搏波血压计和欧姆龙电子血压仪所测得的血压值有较高的一致性,能保证血压监测的精准度。
5 结论
基于RNN的脉搏波血压计采用光电描记法采集人体的脉搏波信号,根据脉搏波信号与血压的关系,建立循环神经网络的预测模型,将脉搏波数据输入预测模型计算出血压值,OLED显示屏上进行实时的显示。本文研究设计的血压计体积小巧、方便携带、操作简单、功耗和成本比较低、预测血压的精准度高、稳定性好,能够实现血压的实时监测,减少因为病情发现不及时而延误病情的现象。
参考文献
[1] LO P W,LI X T,WANG J,et al.Continuous systolic and diastolic blood pressure estimation utilizing long short-term memory network[C].International Conference of the IEEE Engineering in Medicine and Biology Society.IEEE,2017:1853-1856.
[2] MONTE-MORENO E.Non-invasive estimate of blood glucose and blood pressure from a photoplethysmograph by means of machine learning techniques[J].Artificial Intelligence In Medicine,2011,53(2):127-128.
[3] RUIZ-RODR?魱GUEZ J C,RUIZ-SANMART?魱N A,RIBAS V,et al.Innovativecontinuous non-invasive cufflessblood pressure monitoring based on photoplethysmography technology[J].Intensive Care Medicine,2013,39(9):1618-1625.
[4] 殷广亮.用红外脉搏传感器实现连续血压测量的研究[D].上海:东华大学,2016.
[5] 范竣翔,李琦,朱亚杰,等.基于RNN的空气污染时空预报模型研究[J].测绘科学,2017,42(7):76-83,120.
[6] 刘文远,张静远,蒋贤芬.一种新型椭圆低通滤波器的设计与实现[J].电子器件,2008(4):1265-1267,1272.
[7] ZOLNA K,ARPIT D,SUHUBDY D,et al.Fraternal dropout[J].arXiv Preprint arXiv:1711.00066,2017.
[8] SU P,DING X,ZHANG Y,et al.Learning to predict blood pressure with deep bidirectional LSTM Network[J].arXiv Preprint arXiv:1705.04524,2017.
[9] 石龙飞,赵珂,李烨,等.基于AFE4400的无创血氧饱和度测量系统设计[J].集成技术,2015,4(2):75-85.
[10] 黎圣峰,庞宇,高小鹏,等.便携式血氧信号检测装置设计[J].传感器与微系统,2017,36(3):110-112.
[11] 闫庆广,尹军,何庆华,等.基于MSP430单片机的无线光电容积脉搏波检测模块[J].开云棋牌官网在线客服光电,2012,33(2):299-302.
作者信息:
刘艳萍,李 杰,金 菲
(河北工业大学 电子信息工程学院,天津300401)