基于CNN-seq2seq的运动心率检测系统
2021-10-22覃凯张绪龚佳琪高军峰中南民族大学生物医学工程学院国家民委认知科学实验室武汉430074
覃凯,张绪,龚佳琪,高军峰(中南民族大学 生物医学工程学院&国家民委认知科学实验室,武汉 430074)
现如今,穿戴式心率测量设备作为心率检测的主要设备,越来越受人们的欢迎.随着夜跑、全民健身等概念的兴起,如何预防运动过程中出现健康问题备受人们关注,其中心率被视作最重要的运动健康指标之一.由于运动状态下,容易引起心率异常变化[1],出现危及生命的情况,心率对运动状况也具有重要的监测作用[2].非常适合于辅助武警部队、体育院校训练,对训练人员进行生理指标监控,同时对数据进行后期分析,建立大数据系统,进而将结果用于指导训练,建立科学的训练系统.
当前基于穿戴式设备心率检测的方法[3]有心电图法(electrocardiogram,ECG)、光电容积波描记法(photo plethysmo graphy,PPG)两种方法.其中心电图法是在临床医疗中检测心率的常用方法,心率带便是该技术的可穿戴产品的应用.其优点是心率检测准确,但是其佩戴不便,故应用范围有限[4].
PPG测量心率的方法易受到运动伪影等诸多因素影响,尽管针对受干扰的脉搏波提出了很多算法,例如自适应滤波[5]、卡尔曼滤波和小波变换等算法,但是因为运动伪影等噪声和脉搏波信号频段重合较多,运动过程中光电传感器测量离血管距离随运动改变明显,难以准确测量,故存在当前便携式心率检测设备要想在运动条件下实现心率准确测量可行性低.针对这种情况,我们将光电传感器放在耳垂处采集PPG信号.
深度学习在数字广播[6]、语音识别[7]、图像处理[8]等领域已经取得了重大进展.JINDAL 等[9]提出基于深度信念网络和受限波尔兹曼机器进行人体PPG信号识别,其输入序列具有特定特征,不是一种端对端的网络.REISS等人[10]提出利用卷积神经网络模型,利用加速度信号跟脉搏信号作为输入,以估计的心率作为输出.BISWAS等人[11]使用预处理的时间序列信号作为CNN-LSTM模型的输入,以分类的思想执行基于PPG的心率估计和生物特征识别.荣凡稳等提出SAE[12]基于自编码网络的PPG信号预测.
本文提出利用自己设计的便携式设备采集 PPG信号[13],同步采集心电监护系统的心电信号.采用端到端的CNN-seq2seq[14]加注意力机制[15]神经网络,对PPG信号进行训练,采用CNN网络提取数据特征简化网络训练难度后,送入LSTM网络编码特征数据,同时将预处理的类心电信号作为标签的监督学习模式.模型测试结果证明,在经过大规模数据训练后,本文提出的CNN-seq2seq模型能够准确的捕获运动状态下的心率特征,从而达到在运动条件下准确测量心率的要求.
1 信号采集和处理
1.1 受试者
实验选取本校30名身体健康的本科学生(无任何心脏相关疾病,男生14名女生16名)作为受试者,平均年龄20岁.实验状态分为静止(0 km/h)、行走(4 km/h)、慢跑(8 km/h)和快跑(10 km/h)四个状态(速度为跑步机配速),实验分别采集这些状态下的PPG信号、ECG信号,将它们作为深度学习网络的训练和测试数据.
1.2 PPG信号采集
PPG信号数据采集电路如图1所示,主要包括:nRF52832控制器;PPG信号采集电路(由光电传感器与信号放大芯片结合获取人体的PPG信号);六轴加速度信号采集电路.为方便采集和后续产品化,数据采集采用无线蓝牙传输的形式,选用nRF52832作为MCU,负责数据采集和简单处理以及蓝牙通讯.心率信号采集部分选用低功耗心率传感器SON7015以及搭配信号放大器完成脉搏信号采集功能.采集加速度信号有两个作用,一是去掉不必要的抖动对PPG信号造成干扰,根据加速度信号去掉PPG信号频率外的干扰信号;二是区分不同运动状态下的网络训练结果.nRF52832作为主机将PPG数据和加速度数据打包发送给串口透传设备.
图1 信号采集电路结构图Fig.1 Signal acquisition circuit structure diagram
串口透传设备如图2所示,采用nRF51822作为MCU.利用在线工具生成自定义的UUID,根据我们的需求自定义串口透传服务.将接收的数据进行解析,并利用USB-UART电路把PPG和六轴信号输出给电脑.电路主要包括:nRF51822MCU,USB-UART数据传输电路等.
图2 串口透传设备电路结构图Fig.2 Serial transmission device circuit diagram
1.3 ECG信号采集
因为心脏泵血周期性变化会引起动脉血管周期性变化,所以理论上ECG和PPG信号在周期上存在一致性[16].介于两路信号的一致性,我们选取ECG信号作为神经网络训练的标签.
本文选用抗干扰能力强的无线心电设备(宁波市美灵思医疗科技有限公司)作为心电采集设备,实验采用肢体导联连接法.为达到数据同步的要求,利用空闲的Ⅵ导联作为同步标记信号.通过心电及PPG信号采集的两路信号,调整了两路信号的延迟时间,对齐后,随机截取一部分,如图3所示,很好地显示了两路信号的周期一致性.
图3 ECG与PPG信号对齐图Fig.3 The ECG is aligned with the PPG signal
1.4 数据预处理
心电信号包含P波、QRS波和T波等波.本文目的是通过PPG信号测量心率,为获得受运动伪影等影响较小的PPG预测信号,同时简化模型训练难度,本研究仅关注ECG信号中的R波峰.经研究证明PPG波峰与ECG中的R峰周期一致.
采用db4小波分析算法检测ECG信号中R峰位置,重构ECG信号只关注R峰位置,根据心电周期重构成一个类正弦信号的波形,如图4所示.从而有别于其他研究方法采用的分类的方法.本文采用回归的思想,将重构后的ECG信号作为神经网络的标签.带通滤波后的PPG信号作为输入信号.
图4 原始ECG信号与整形后波形Fig.4 Raw ECG signals and reshaped waveforms
为降低训练难度,提高准确、率.本文把数据剪切成2秒时间大小的样本大小,每个样本数据段长度为600个数据点(PPG、ECG设备采样率均为300 Hz).样本数据采用600的窗,步长100循环迭代产生,这样更有利于网络学习,数据经过归一化处理后再送入神经网络训练.
2 CNN-seq2seq模型
2.1 CNN-seq2seq网络构建
CNN-seq2seq网络模型由CNN+seq2seq组成,如图5所示,其中CNN在模型中起到提取特征的作用,目的是降低seq2seq网络的训练难度.模型使用600个循环输入,一维的CNN设置为16卷积核,卷积核大小为40,默认步长1.
图5 CNN-seq2seq网络模型Fig.5 CNN-seq2seq network model
本文的seq2seq网络encoder、decoder和Attention机制组成[17],如图6所示.本文的Encoder和Decoder基本单元为LSTM.LSTM是一种特殊的RNN模型[18],可以学习长期依赖信息,而不会出现梯度消失和梯度爆炸的问题.LSTM内部模块由4个不同的结构(门控单元)以一种特殊的方式进行交互,encoder对应把输入数据编码成一个包含前后时间序列特征的信息向量,采用双向RNN(Bi-RNN)在前向和后向读取源序列,采用此方法可以避免信号突变对网络的影响.使用LSTM单元作为基本的网络单元,而decoder是解码具有时间序列特征的信息向量.本次seq2seq网络模型,利用Attention机制的decoder过程和原来最大的区别就是,输出不仅基于本时刻编码器的隐藏状态h,还基于上一个解码器的状态dt-1的矩阵.
图6 Seq2seq+Attention模型结构Fig.6 Seq2seq+Attention model structure
CNN-seq2seq网络由CNN+seq2seq组成,整个模型分为两部分.经过CNN网络提取特征得到新的具有心率信息的特征矩阵X.seq2seq中的基本单元LSTM包括遗忘门ff、输入门it、输出门ot、细胞状态ct.在时间步为t时,本次Bi-LSTM的encoder更新过程如下:
ht=f(ht-1,xt),
(1)
ft=σ(Wf[ht-1,xt]+bf),
(2)
it=σ(Wi[ht-1,xt]+bi),
(3)
ot=σ(Wo[ht-1,xt]+bo),
(4)
Ct=ft×Ct-1+it×tanh(WC[ht-1,xt]+bc),
(5)
ht=ot×tanh(Ct)·
(6)
其中各门控单元权重和偏差都是需要学习的参数,σ为sigmoid函数·
因为随着输入序列长度的增加,LSTM的网络性能会变差,为解决这个问题,提出加入注意力机制,本文中在解码时,会根据前一个解码器状态dt-1跟前一个细胞状态ct-1来预测:
kt=vt×tanh(We[dt-1,Ct-1]+Ue×ht),
(7)
(8)
ve、We、Ue和be为需要学习的参数,注意力机制的权重lt在保留了上一个解码器状态跟前一个细胞状态后,对预测起到重要作用·注意力机制将上下文的隐藏状态加权和得到c(解码过程,不能更新c):
(9)
yt(pre)=f(w[yt-1,ct-1]+b.
(10)
解码器状态更新:根据解码器上一个状态dt-1和上一个预测值yt-1(pre)作为LSTM输入得到新的解码器状态.在LSTM单元中的状态更新,类似于编码器更新过程,
dt=f(dt-1,yt-1(pre))·
(11)
整个训练目的是根据整个输入序列编码和上一个时刻的解码器状态,得到当前输出估计值yt(pre)·
2.2 CNN-seq2seq网络训练
网络使用600个点循环输入,数据量为2416个剪切后的耳垂数据样本,将数据按8:1:1的比例分为训练集、验证集、测试集.模型的选择采用5折交叉验证,保存最优模型.
为体现CNN-seq2seq的优异,本文把Seq2seq网络作为对比. 使用Adam优化器,评估模型性能,选择均方误差(MSE)、平均绝对误差(MAE)作为评价标准.表1为模型误差比较.
表1 模型预测结果比较Tab.1 Comparison of model prediction results
2.3 运动心率评价标准
为验证网络输出信号能否预测得到准确的心率,本文采用小波算法分别提取心电设备的ECG信号和网络输出信号中的心率信息(包含静息、行走、慢跑、快跑四个状态的数据信息)计算每分钟心率值.绝对误差AE,真实心率为心电设备计算结果HR,网络计算心率HT.我们认为每分钟心率值相差AE≤5为正确:
AE=|HR-HT|·
(12)
3 CNN-seq2seq网络结果分析
CNN-seq2seq模型具有CNN特征提取,seq2seq包括编码部分和解码部分,编码部分的LSTM网络用于关注CNN提取周期和幅值等特征后的数据,利用LSTM网络在时序信号的优异表现,将提取后的特征进行编码、解码.并在解码部分引入Attention机制进一步提高该网络对周期的敏感性,重构出包含心率信息的网络输出信号.
设置每次输入序列长度为600个点,采样率为300 Hz.这样可以保证每个样本中至少包含了一个完整的PPG信号.使用CNN-seq2seq网络训练PPG信号,结果显示,即使在跑步状态下PPG信号受运动伪影、穿戴不稳、流汗等影响时,会严重影响其幅值和周期.CNN-seq2seq网络也可以准确地捕获PPG信号的周期特征,重构得到平滑的PPG信号.
本文使用耳垂处数据训练CNN-seq2seq网络,采集耳垂位置PPG信号作为网络输入,同步采集心电信号作为标签信号.二者送入到CNN-seq2seq网络进行训练并测试,为让结果图更明显,将输入PPG信号右移0.2 S,结果如图7所示.
图7 静息、行走状态下对比图Fig.7 Contrast diagram of resting and walking state
由图7中网络输出对比图可以看出,CNN-seq2seq网络在静息、行走状态下PPG信号干扰较小.网络输出与心率标签信号拟合程度很高,网络输出信号非常准确的捕捉到了心率标签周期特征.在慢跑、快跑状态下PPG数据受运动伪影等影响较大,PPG信号周期检测会在一个PPG信号周期内检测到多个PPG波峰个数,CNN-seq2seq网络输出能够很好捕捉到ECG周期,从而得到比较准确的预测标签峰值,如图8所示.从图7、图8可以看出CNN-seq2seq网络,在静止和行走状态下网络可以精准地捕获心率周期特征,不会出现相位偏移;在慢跑和快跑下PPG信号受运动伪影等影响很大,峰值和相位均出现较大偏移,但网络依然能学习到运动情况下脉搏的周期规律.体现了该网络明显的稳定性和可靠性.
图8 慢跑、快跑状态下对比图Fig.8 Contrast diagram under jogging and fast running conditions
对比慢跑、快跑运动状态下网络输出波形周期与标签在周期上有一定的差异的问题,主要原因是PPG信号在运动条件下采集到的周期变化受运动伪影等影响严重,会使网络模型学习在一个ECG波峰周期内,捕捉到多个PPG信号波峰,这增加了网络学习难度,对于输出产生一些相位偏差,导致预测结果异常.
网络的针对运动心率测量的结果,我们采用小波db4小波分析算法,计算每分钟的波峰个数,从而得到每分钟心率值.利用公式12得到如下正确率,其中静息、行走状态下正确率为100%、99%,慢跑、快跑状态下正确率为92%、90%.计算CNN-seq2seq网络输出预测值与ECG标准心电设备在分别在四个状态下计算得到每分钟的心率值,如图9所示,能够从心率计算的对比图上看出CNN-seq2seq网络对于心电信号的预计很准确.
图9 CNN-seq2seq模型输出心率与标准心电设备心率对比Fig.9 The output heart rate of CNN-seq2seq model was compared with that of standard ECG devices
其中计算每分钟HR、HT两者的平均误差ū和均方误差s.表2给出了利用CNN-seq2seq网络,心率估计的误差为0.25±1.31.相较于其他动态心率测量方式[19](如多传感融合的运动心率估计误差达到了-16.542±202.6914,SAE自编码的运动心率[20]误差为1.62±18.13),本文提出的算法测试误差小.
表2 运动状态下心率估计误差Tab.2 Estimation error of heart rate under the movement
4 结语
本文采用光电传感器来获取体表PPG信号,利用抗干扰的心电设备采集同步的ECG信号.二者分别作为后续CNN-seq2seq神经网络的训练数据和标签数据.通过CNN-seq2seq网络实现对PPG信号进行心率特征的提取,实验结果说明运用深度学习算法实现对运动心率信号的提取是可行的,并且能取得较为理想的效果,这为后续利用蓝牙耳机加PPG传感器的商业模式传输耳垂部分PPG信号,再通过云计算的基于深度学习穿戴式设备测量运动心率提供了可行的方案.
本研究中,受试者数量和年龄阶段有限,后期需验证各年龄阶段的适用性,为进一步定型产品做基础.神经网络算法调试完成后,需应用于嵌入式平台,以实现具体应用.本研究希望在后续发展中,加入运动手环的形式的数据采集测试工作.