本发明属于生物医学信息处理技术领域,涉及一种心冲击图信号心率估计方法,具体涉及一种心冲击图信号的深度回归心率估计方法。
背景技术:
近些年来,随着科技和经济水平的提升,人们越来越关注自身的健康问题。心跳节奏超出正常范围的变化通常预示着某种疾病的发生,比如心脏性猝死,窒息,心律不齐等。因此,日常生活中的心率监测对于人们自身疾病的早期发现与治疗有着重要的意义。
由于目前在临床上,心电图(ecg)在心率监测方面被广泛应用,但是这种需要将电极或者心脏探头与人体紧密接触,这给受监测者带来极大不便和心理压力。并且由于电极对人体皮肤的刺激作用,长时间的粘贴电极,会使受试者患上皮肤疾病。在非临床上,心率监测的设备主要是手环,心率带等可穿戴设备。虽然这类设备在监测心率方面相比心电图要更加方便,但是它们同样会给受监测者带来束缚感,并且心率估计的误差较大,甚至对于一些患有疾病的老年人而言,他们可能并没有使用这种设备的能力。因此,寻找一种更加适合日常监测、简单方便、误差小的心率监测技术对我们,尤其是老年人来说有着重要的意义。
目前,根据使用信号类型的不同,心率估计方法可分为基于侵入式监测信号的心率估计方法和基于非侵入式监测信号的心率估计方法两类,其中,基于非侵入式监测信号的心率估计方法,典型的为基于心冲击图信号的心率估计方法,该方法无需传感器直接贴附人体,非专业人员也可以操作。
基于心冲击图信号的心率估计方法分为基于心跳检测的心冲击图信号心率估计方法和基于心跳信号周期性的心冲击图信号心率估计方法两类,第二类方法先利用信号处理中的方法估计心冲击图信号中心跳信号的频率分量,然后根据该频率分量对应的频率值来估计心率,该方法的抗噪声干扰能力和鲁棒性更强,具有心率估计误差方差较小的优点,例如,申请公布号为cn107913060a的专利申请,名称为“用于监测心跳的方法和装置”,提出了一种用于监测测试对象的心率的方法。该方法首先通过分析信号与时间的函数关系,确定心率的主导性周期信号分量的基本特征,然后利用傅里叶变换将信号变换至频域,其目的是为了对以规则的时间间隔出现的信号峰进行计数,并且使得在时域中难以检测的微弱但有周期性的信号分量变得突出,最后通过寻找、最大的频率分量对应的频率值计算心率。又如,licetrosales等人在“journalofambientintelligenceandsmartenvironments(2017)”发表的文章“heartratemonitoringusinghydraulicbedsensorballistocardiogram”,提出了一种基于希尔伯特变换的心冲击图信号心率估计方法。该方法首先采用截止频率为0.7hz-10hz的巴特沃斯带通滤波器滤除信号中的低频呼吸分量与高频噪声,然后将信号通过窗函数切分成长度相等的信号片段,接着对每一个信号片段进行希尔伯特变换并使用快速傅里叶变换求得每一个经希尔伯特变换后的信号片段的频谱,最后通过寻找能量最大的频谱分量对应的频率值计算心率。
以上两种方法存在的缺陷在于估计误差较大,其原因在于:第一,虽然利用了心冲击图信号的周期性特征克服了非周期噪声信号的干扰,但无法解决心冲击图信号中的周期性噪声对心率估计的影响,并且以上两个方法均未使用更多额外的信息指导心率的估计,因此估计误差较大。第二,先计算频谱分量,再估计心率的方法步骤较为繁琐,并且在获得心跳信号频率时的四舍五入操作会增加估计误差。
技术实现要素:
本发明的目的在于针对上述现有技术的不足,提出一种心冲击图信号的深度回归心率估计方法,用于解决现有技术中存在的估计误差较大的技术问题。
为实现上述目的,本发明采用的技术方案包括步骤如下:
(1)采集心冲击图信号和心脏脉冲信号:
使用n个液压传感器以采样频率fs采集受试者长度为t的n个心冲击图信号,同时使用与该液压传感器相同采样频率的指夹式脉冲传感器采集受试者长度为t的心脏脉冲信号,n≥2,t≥60000,fs≥100hz;
(2)对n个心冲击图信号进行滤波:
采用截断频率下限为f1、上限为f2的带通滤波器分别对n个心冲击图信号进行滤波,得到滤波后的n个心冲击图信号,0.3hz≤f1≤0.8hz,8hz≤f2≤12hz;
(3)利用心冲击图信号的周期性先验知识获取训练样本集和测试样本集:
(3a)以w为长度,以s为步长,并按采集顺序将滤波后的每个心冲击图信号截取为n个信号段后顺次进行排列,得到每组包含n个信号段的n组信号段,
(3b)以q为间隔对每组信号段中的每个信号段进行下采样,得到n组下采样信号段,
(3c)对n组相同位置的下采样信号段进行融合,得到由n个心冲击图信号向量组成的心冲击图信号样本集,每个心冲击信号向量长度为l,
(3d)对心冲击图信号样本集中的每个心冲击图信号向量进行标准化处理,并根据每个标准化处理后的心冲击图信号向量中数据元素从前到后的排序,参考心冲击图信号的周期性先验知识,按照行优先的原则重构成行数为m,列数为k的数据矩阵,得到n个心冲击图信号向量对应的n个数据矩阵,m×k=l;
(3e)以w为长度,以s为步长,并按采集顺序将心脏脉冲信号截取为n个信号段后顺次进行排列,得到与n个数据矩阵对应的n个心脏脉冲信号段,并使用峰值检测算法计算每个心脏脉冲信号片段的心跳脉冲个数与心跳脉冲的位置,
(3f)使用平均心率法通过心跳脉冲个数与心跳脉冲的位置计算与n个数据矩阵对应的n个真实心率;
(3g)将每个数据矩阵与相对应的真实心率构成的样本-标签对作为一个样本,所有的样本组成样本集,样本集容量为n,将样本集中前50%的样本作为训练样本集,剔除与训练样本部分重复的
(4)构建基于心冲击图信号周期性和幅值特性的心率回归估计网络模型:
(4a)构建包括双向循环神经网络和与其串联的回归网络的心率回归估计网络模型,其中,双向循环神经网络包括相互层叠的由多个神经元组成的前向循环神经网络和反向循环神经网络,双向循环神经网络的输入包含m个时间步,其中每个时间步的输入长度为k,用于提取心冲击图信号的周期性与幅值特征;回归网络包括依次层叠的由多个神经元组成的全连接网络层、第一激励层、回归估计层和第二激励层,用于通过双向循环神经网络输出的心冲击图信号的周期性特征和幅值特征获取心率估计结果;
(4b)使用huber函数作为心率回归估计网络模型的损失函数loss,用于衡量真实心率与估计心率的差异;
(5)对心率回归估计网络模型进行训练:
(5a)初始化训练参数:设定心率回归估计网络模型中神经元间的连接权值取值为范围[-1,1]内的随机数,设定迭代次数为k,最大迭代次数为k,k≥200000,学习率为γ,γ≤0.1,并令k=0;
(5b)将从训练样本集中顺序选取的q个样本作为心率回归估计网络模型的输入,通过心率回归估计网络模型计算每个训练样本对应的训练估计心率,共得到q个训练估计心率;
(5c)将q个训练估计心率和q个训练样本的真实心率作为心率回归估计网络模型的损失函数loss的输入变量,并采用梯度下降法,通过心率回归估计网络模型的损失函数loss对心率回归估计网络模型中神经元间的连接权值与偏置进行更新,得到更新后的心率回归估计网络模型;
(5d)判断k=k是否成立,若是,得到训练好的心率回归估计网络模型;否则,令k=k+1,并执行步骤(5b);
(6)获取心冲击图信号的心率估计值:
将测试样本集输入训练好的心率估计网络模型中,估计测试样本集中每个样本对应的心率值,得到受试者的心率估计结果。
本发明与现有技术相比,具有以下优点:
1、本发明的心率回归估计网络模型包括双向循环神经网络和回归网络,采用有监督学习的方式为心率回归估计网络模型的训练提供了更多的指导信息,利用循环神经网络获取心冲击图信号的周期性特征与幅值特征,通过回归网络同时利用心冲击图信号的周期性特征和幅值特征估计心率值,克服了心冲击图信号中的周期性噪声对心率估计的影响,有效地降低了了心率估计误差。
2、本发明通过构建包括双向循环神经网络和回归网络的心率回归估计网络模型可以实现端到端的心冲击图信号的心率估计,简化了通过心冲击图信号估计心率的步骤,避免了在心率估计步骤中估计精度的损失,降低了心率估计误差。
附图说明
图1是本发明的实现步骤图;
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细说明。
参照图1,一种心冲击图信号的深度回归心率估计方法,包括步骤如下:
步骤1)采集心冲击图信号和心脏脉冲信号:
使用n个液压传感器以采样频率fs采集受试者长度为t的n个心冲击图信号,同时使用与该液压传感器相同采样频率的指夹式脉冲传感器采集受试者长度为t的心脏脉冲信号,其中n=4,t=60000,fs=100hz;n与t过小时会导致心率估计精度大幅降低,n、t和fs过大时不仅对于心率估计精度提升不明显而且会导致算法的复杂度大大升高;使用与该液压传感器相同采样频率的指夹式脉冲传感器是为了获取与心冲击图信号同步且长度相等的心脏脉冲信号;
步骤2)对n个心冲击图信号进行滤波:
为了减弱心冲击图信号中的呼吸分量和高频噪声对心率估计性能的影响,采用截断频率下限为f1、上限为f2的六阶巴特沃斯带通滤波器分别对n个心冲击图信号进行滤波,得到滤波后的n个心冲击图信号,其中f1=0.4hz,f2=10hz;f1的取值范围的依据为心冲击图信号中呼吸分量的频率上限约为0.3hz~0.8hz,f2的取值范围的依据为心冲击图信号中高频噪声分量的频率下限约为8hz~12hz;
步骤3)利用心冲击图信号的周期性先验知识获取训练样本集和测试样本集:
步骤3a)以w为长度,以s为步长,并按采集顺序将滤波后的每个心冲击图信号截取为n个信号段后顺次进行排列,得到每组包含n个信号段的n组信号段,其中w=6000,s=1,
步骤3b)以q为间隔对每组信号段中的每个信号段进行下采样,得到n组下采样信号段,其中q=4;
步骤3c)对n组相同位置的下采样信号段进行融合,得到由n个心冲击图信号向量组成的心冲击图信号样本集,每个心冲击信号向量长度为l,其中,n=4,
步骤3d)对心冲击图信号样本集中的每个心冲击图信号向量进行标准化处理,并根据每个标准化处理后的心冲击图信号向量中数据元素从前到后的排序,参考心冲击图信号的周期性先验知识,按照行优先的原则重构成行数为m,列数为k的数据矩阵,得到n个心冲击图信号向量对应的n个数据矩阵,其中m=60,k=100;因为在采样频率为fs=100hz的心冲击图信号中心跳信号的大致周期为100个数据长度,因此取k=100,
心冲击图信号样本集中第i个心冲击图信号向量标准化处理的计算公式为:
其中,vi为第i个心冲击图信号向量,i=1,2,...,n,
步骤3e)以w为长度,以s为步长,并按采集顺序将心脏脉冲信号截取为n个信号段后顺次进行排列,得到与n个数据矩阵对应的n个心脏脉冲信号段,并使用峰值检测算法计算每个心脏脉冲信号片段的心跳脉冲个数与心跳脉冲的位置,
步骤3f)使用平均心率法通过心跳脉冲个数与心跳脉冲的位置计算与n个数据矩阵对应的n个真实心率;
其中与第i个数据矩阵对应的第i个真实心率的计算公式为:
其中,ci为第i个心脏脉冲信号片段的心跳个数,pi为第i个心脏脉冲信号片段第一个心跳脉冲与最后一个心跳脉冲的时间间隔,i=1,2,...,n,
步骤3g)将每个数据矩阵与相对应的真实心率构成的样本-标签对作为一个样本,所有的样本组成样本集,样本集容量为n,将样本集中前50%的样本作为训练样本集,训练集的样本数量为30000个,剔除与训练样本部分重复的6000个样本,剩余的样本组成测试样本集,测试集的样本数量为24000个,
步骤4)构建基于心冲击图信号周期性和幅值特性的心率回归估计网络模型:
步骤4a)构建包括双向循环神经网络和与其串联的回归网络的心率回归估计网络模型,其中,双向循环神经网络包括相互层叠的由多个神经元组成的前向循环神经网络和反向循环神经网络,双向循环神经网络的输入包含m个时间步,其中每个时间步的输入长度为k,用于提取心冲击图信号的周期性与幅值特征;回归网络包括依次层叠的由多个神经元组成的全连接网络层、第一激励层、回归估计层和第二激励层,用于通过双向循环神经网络输出的心冲击图信号的周期性特征和幅值特征获取心率估计结果;双向循环神经网络中的双向长短时记忆网络和双向门控循环单元网络可以获取较长周期的信号特征,本方法中采用双向循环神经网络中的双向长短时记忆网络以获取较准确的心跳信号的周期性特征;
心率回归估计网络模型的结构为:双向长短时记忆网络->全连接网络层->第一激励层->回归估计层->第二激励层;
心率回归估计网络模型的参数设置:
双向长短时记忆网络:前向和反向长短时记忆网络的长短时记忆单元个数均为320个,其目的是为了较高效率并且较完整的获取心跳信号的周期性特征;
全连接网络层:为了抑制心冲击图信号中的噪声干扰,全连接网络层的神经元的个数设置为1024;
第一激励层:为了防止训练过程中出现梯度消失现象,设置第一激励层激励函数为relu激励函数;
回归估计层:神经元的个数设置为1;
第二激励层:为了加速网络收敛,设置第二激励层的激励函数为relu激励函数;
relu激励函数的表达式为:
relu(x)=max(x,0);
步骤4b)当估计心率与真实心率在相差较大时,huber函数的梯度较大,当估计心率与真实心率在相差较小时,huber函数的梯度较小,在训练过程中使用huber函数作为心率回归估计网络模型的损失函数loss可以加速网络的训练过程;
心率回归估计网络模型的损失函数loss的表达式为:
其中,
步骤5)对心率回归估计网络模型进行训练:
步骤5a)初始化训练参数:设定心率回归估计网络模型中神经元间的连接权值取值为范围[-1,1]内的随机数,设定迭代次数为k,设置最大迭代次数为k为400000,为了使心率回归估计网络模型的训练过程较为稳定,学习率γ设置为0.0005,并令k=0;
步骤5b)将从训练样本集中顺序选取的128个的样本作为心率回归估计网络模型的输入,通过心率回归估计网络模型计算每个训练样本对应的训练估计心率,共得到128个训练估计心率;
步骤5c)将128个训练估计心率和128个训练样本的真实心率作为心率回归估计网络模型的损失函数loss的输入变量,并采用梯度下降法,通过心率回归估计网络模型的损失函数loss对心率回归估计网络模型中神经元间的连接权值与偏置进行更新,得到更新后的心率回归估计网络模型;
对心率回归估计网络模型中神经元间的连接权值与偏置进行更新,实现过程为:
设w和b分别为心率回归估计网络模型中神经元间的连接权值和偏置,
w和b的更新公式如下:
其中,γ为学习率,y为训练样本的真实心率,
步骤5d)判断k=400000是否成立,若是,得到训练好的心率回归估计网络模型;
否则,令k=k+1,并执行步骤(5b);
步骤6)获取心冲击图信号的心率估计值:
将测试样本集输入训练好的心率估计网络模型中,估计测试样本集中每个样本对应的心率值,得到受试者的心率估计结果。
以下结合仿真实验,对本发明的技术效果作进一步说明:
1.仿真条件和内容
本实验采用的数据包括十个受试者的采集数据,每个受试者有四个心冲击图信号和一个心脏脉冲信号。仿真平台为主频为4.60ghz的inter酷睿i7-9700kcpu,英伟达gtx1070ti的显卡,64.0gb的内存,ubuntu14.04操作系统,1.40版本的tensorflow深度学习平台,matlab2018a开发平台,python3.6版本开发平台。
利用本方法分别为每个受试者训练心率估计网络模型,并获取每个受试者测试集样本的估计心率;利用基于希尔伯特变换的心冲击图信号心率估计方法(ht),分别获取每个受试者测试集样本的估计心率,并分别计算两种方法的心率估计误差。
心率估计误差的计算公式为:
其中,p为受试者测试集的样本总数,yi和
2.仿真结果分析
下表为本方法和基于希尔伯特变换的心冲击图信号心率估计方法(以下简称为ht方法)在上述10位受试者测试集上的心率估计误差(次数/分钟)。
表1本方法和ht算法的心率估计误差对比
从表1中可以看出,本方法在十位受试者的测试集样本上的平均心率估计误差为0.49,而ht方法在十位受试者的测试集样本上的平均心率估计误差为0.85,显然与ht方法相比,本方法的估计误差较小。并且从上表中可以看出本方法的心率估计误差的方差更小,说明本方法的鲁棒性更强。
以上的实验结果与实验分析可以表明,以有监督学习的方式,使用双向循环神经网络提取心跳信号的周期性特征,并通过回归网络同时利用心跳信号的周期性特征与心跳信号幅值特征,可以有效降低心率估计误差。