CN109700450B - 一种心率检测方法及电子设备 - Google Patents
一种心率检测方法及电子设备 Download PDFInfo
- Publication number
- CN109700450B CN109700450B CN201811625813.4A CN201811625813A CN109700450B CN 109700450 B CN109700450 B CN 109700450B CN 201811625813 A CN201811625813 A CN 201811625813A CN 109700450 B CN109700450 B CN 109700450B
- Authority
- CN
- China
- Prior art keywords
- heart rate
- wave
- time window
- current time
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
本申请提供的心率检测方法及电子设备,提出了一种在同一时间窗口内按所划分的不同时间段计算多次心率观测值,并按该时间窗口内不同时间段的先后次序迭代式执行多次卡尔曼滤波以最终获得目标心率的心率检测方案,本申请方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,因此同时保证了心率检测的高实时性。
Description
技术领域
本发明属于信号检测与处理技术领域,尤其涉及一种心率检测方法及电子设备。
背景技术
随着人们生活水平的提高、生活节奏的加快,日常健康监护越来越受到人们的重视,为了及时发现和治疗各类与心脏相关的病变反应或进行日常的运动状态检测,实时监护用户的与心脏相关的健康状况十分必要。
目前,为了实时监护用户的与心脏相关的健康状况,设计了穿戴式动态心电监护设备,该设备通过动态检测被测者的心电信号来计算其心率数值,以此使得为被测者的与心脏相关的健康状况的检测提供数据支持,穿戴式动态心电监护设备在计算被测者的心率时会涉及到实时性及准确性方面的问题,其中,心率计算的实时性及准确性越高则所计算出的心率数值的参考价值相应地也越高。现有的心率检测方法有很多,但这些方法在实时性、准确性方面还存在一些欠缺,因此,如何提供一种在实时性、准确性等方面较优的心率检测方案成为本领域一个亟需解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种心率检测方法及电子设备,以实现高实时性、高准确率地对用户心率进行检测。
为此,本发明公开如下技术方案:
一种心率检测方法,包括:
获取当前时间窗口内待处理的心电数据;
对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息;
基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出;
对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息。
上述方法,优选的,所述获取当前时间窗口内待处理的心电数据,包括:
实时检测被测者的心电信号;
利用预定时长的滑动窗口在所检测的心电信号上进行滑动,得到当前时间窗口内的第一心电信号,所述第一心电信号在各个时序点所对应的心电幅值构成所述当前时间窗口内待处理的各个心电数据。
上述方法,优选的,在所述对所述当前时间窗口内的所述心电数据进行R波识别处理之前,还包括:
利用预先训练的信号质量分类器对所述第一心电信号的信号质量进行分类处理,得到所述第一心电信号的信号质量类别;
若所述第一心电信号的信号质量类别属于预定的信号质量类别,则触发执行对所述当前时间窗口内的所述心电数据进行R波识别处理的操作;
若所述第一心电信号的信号质量类别不属于预定的信号质量类别,则过滤掉所述第一心电信号。
上述方法,优选的,所述信号质量分类器的训练过程包括:
获取训练样本集,所述训练样本集包括多条训练样本,不同的训练样本包括预定时长的不同时间窗口内心电信号的特征数据及信号质量类别;其中,心电信号的特征数据包括如下特征中的至少一种:心电信号的时域特征、频域特征、样本熵、心电信号的R波序列的幅值及RR间隙信息、时频域特征;
利用所述训练样本集对预定的分类器模型进行训练,得到信号质量分类器。
上述方法,优选的,还包括:
将所述第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,将所述第一心电信号的信号质量类别作为所述新的特征数据的标签,并利用所述新的特征数据及其标签构成的样本对所述信号质量分类器进行优化。
上述方法,优选的,所述对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息,包括:
对所述当前时间窗口内待处理的心电数据进行带通滤波处理;
针对带通滤波处理后的每个心电数据,计算该心电数据左侧预定时长的时间段内第一心电信号波形的最大斜率Kl_max与最小斜率Kl_min,以及计算该心电数据右侧预定时长的时间段内第一心电信号波形的最大斜率Kr_max与最小斜率Kr_min;并将所述Kl_max减去所述Kr_min,得到该心电数据的左侧斜率Kl,将所述Kr_max减去所述Kl_min,得到所述心电数据的右侧斜率Kr;
对所述当前时间窗口内各个心电数据的左侧斜率Kl进行积分处理,得到第二心电信号,并对所述第二心电信号进行低通滤波;对所述当前时间窗口内各个心电数据的右侧斜率Kr进行积分处理,得到第三心电信号,并对所述第三心电信号进行低通滤波;
对低通滤波处理后的第二心电信号进行R波识别,得到第一候选R波集合;对低通滤波处理后的第三心电信号进行R波识别,得到第二候选R波集合;
基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
上述方法,优选的,对低通滤波处理后的第二心电信号或者第三心电信号进行R波识别,包括:
基于所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,确定在所述当前时间窗口进行R波检测所需的第一幅值阈值及第二幅值阈值;所述第一幅值阈值高于所述第二幅值阈值;
基于所述第一幅值阈值及所述第二幅值阈值,对当前时间窗口内低通滤波处理后的所述第二心电信号或者第三心电信号进行R波检测;
其中,在每检测出一个R波时,基于所检测出的R波的幅值,更新所述第一幅值阈值及第二幅值阈值,并基于更新后的第一幅值阈值及第二幅值阈值对低通滤波处理后的所述第二心电信号或者第三心电信号继续进行下一个R波检测,直至在所述当前时间窗口内对第二心电信号或者第三心电信号的R波识别完毕时结束。
上述方法,优选的,所述基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波,包括:
识别出同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波,得到第三候选R波集合;
若所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,则调整所述第一幅值阈值和/或所述第二幅值阈值,并基于调整后的第一幅值阈值和/或第二幅值阈值重新触发第一候选R波集合与第二候选R波集合的生成;
若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则针对第三候选R波集合中的每个候选R波,将所述第一心电信号在候选R波对应的时间位置前后预定个数时序点的心电数据中幅值最大的心电数据识别为所述当前时间窗口的一个目标R波。
上述方法,优选的,所述基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,包括:
将所述当前时间窗口按时间顺序划分为第一时间段、第二时间段、第三时间段;其中,所述第二时间段及所述第三时间段处于所述当前时间窗口相比于前一时间窗口所产生的新数据相对应的时间范围内;
基于所述第二时间段内的R波信息,计算第一心率观测值;
基于所述第三时间段内的R波信息,计算第二心率观测值;
所述对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,包括:
利用所述当前时间窗口的上一时间窗口所输出的心率值,计算所述第二时间段对应的第一心率预测值;并基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值;
利用所述第二时间段对应的最优心率值,计算所述第三时间段对应的第二心率预测值;并基于所述第二心率预测值,对所述第二心率观测值进行卡尔曼滤波处理,得到所述第三时间段对应的最优心率值,并将所述第三时间段对应的最优心率值作为所述当前时间窗口对应的目标心率输出。
一种电子设备,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
获取当前时间窗口内待处理的心电数据;
对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息;
基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出;
对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息。
由以上方案可知,本申请提供的心率检测方法及电子设备,提出了一种在同一时间窗口内按所划分的不同时间段计算多次心率观测值,并按该时间窗口内不同时间段的先后次序迭代式执行多次卡尔曼滤波以最终获得目标心率的心率检测方案,本申请方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,因此同时保证了心率检测的高实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的一种心率检测方法实施例一的流程图;
图2是本申请实施例一提供的被测者原始心电信号的波形示意图;
图3是本申请提供的一种心率检测方法实施例二的流程图;
图4是本申请实施例二提供的经过带通滤波后所得的心电信号的波形示意图;
图5是本申请实施例二提供的对心电漂移进行校正的心电信号波形示意图;
图6是本申请实施例二提供的心电信号的左侧斜率信号的波形示意图;
图7是本申请实施例二提供的心电信号的右侧斜率信号的波形示意图;
图8是本申请实施例二提供的对左侧斜率信号进行积分和低通滤波处理后所得的心电信号波形示意图;
图9是本申请提供的一种心率检测方法实施例三的流程图;
图10是本申请实施例三提供的心率检测方法的整体处理逻辑示意图;
图11是本申请实施例三提供的本申请方法与现有技术的两种心率检测方法的心率检测结果的对比效果图;
图12是本申请提供的一种心率检测方法实施例四的流程图;
图13是本申请实施例四提供的心率检测方法的整体处理逻辑示意图;
图14是本申请提供的一种心率检测方法实施例五的流程图;
图15是本申请实施例五提供的离线构建信号质量分类器、基于信号质量分类器对信号质量进行在线分类并基于分类结果情况对分类器进行在线优化的处理逻辑示意图;
图16是本申请提供的一种电子设备实施例六的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
卡尔曼滤波:Kalman filtering,一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现高实时性、高准确率地对用户心率进行检测,本申请提供了一种心率检测方法及电子设备,以下将通过多个实施例对本申请的心率检测方法及电子设备进行详细说明。
实施例一
参考图1,是本申请提供的一种心率检测方法实施例一的流程图,该方法可应用于但不限于心电监护设备中,例如具体可应用于穿戴式心电监护设备中等,所述穿戴式心电监护设备可以是但不限于智能心电衣、智能腕带式/胸戴式心电监护仪等多种形式,本实施例中,如图1所示,所述心率检测方法包括以下步骤:
步骤101、获取当前时间窗口内待处理的心电数据。
本申请基于时间窗口的方式对被测者(如运动员、病患人员或普通用户等)进行心电数据检测及心率计算。
其中,可预先设定一相应时间长度及滑动步长的滑动窗口,示例性而非限定性地,例如可预先设定一时间长度为10s、滑动步长为2s的滑动窗口,在此基础上,可利用该滑动窗口按设定步长在所检测的心电信号上进行滑动来依次获得一个个的时间窗口心电数据,由于心率检测对于准确性及实时性有较高要求,从而,一般来说,每得到一个新的时间窗口的心电数据,均会将其作为当前待处理的心电数据对其进行实时的心率检测。
鉴于此,本步骤中,所述当前时间窗口即为利用所述滑动窗口在所检测的心电信号上进行滑动时所得的最新的时间窗口,所述当前时间窗口内待处理的心电数据具体包括所述当前时间窗口所对应的第一心电信号在各个时序点所对应的心电幅值。
参考图2,为所检测的被测者的原始心电信号示意图,实际应用中具体可采用一定频率(可基于实际采样需求预先设定)对被测者进行心电数据采集,以所采用的采集频率为400Hz为例,则10s的时间窗口可采集4000个按时序分布的心电数据,从而,本步骤中具体可将最近时间窗口的4000个按时序分布的心电数据作为所述当前时间窗口内待处理的心电数据对其进行心率检测处理。
步骤102、对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息。
心电信号中的每一个R波对应一个心动周期,因此,实际应用中,具体可通过对被测者的心电信号进行R波识别,来使得基于所识别出的R波信息进行心率计算。
对于所述当前时间窗口来说,具体可对所述当前时间窗口对应的所述第一心电信号进行R波识别,以此使得为该当前时间窗口的心率计算提供数据依据。
步骤103、基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出。
在对所述当前时间窗口的第一心电信号进行R波检测,获得其R波信息后,可进一步对所述当前时间窗口按时间段进行划分,例如依次将其划分为3个或更多个数的时间段等。
在此基础上,可选取所划分的各个时间段中的至少部分时间段,对其进行心率观测值的计算,例如,优选地可选取所划分的各个时间段中的后两个时间段(时间段越靠后其对应的心电数据及所检测出的R波信息的实时性越高),并可基于所选取的后两个时间段中每个时间段对应的R波信息来计算该时间段的心率观测值。
具体地,假设所选取的某一时间段的时间长度为ts,在该ts的时间段对应检测出n个R波,则该ts的时间段内的心率观测值为:60n/t。
步骤104、对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息。
为了实现高实时性、高准确率地对用户心率进行检测,本申请并不以上述基于R波信息计算出的心率观测值作为最终的目标心率输出,而是继续对其进行卡尔曼滤波处理。
针对上述步骤中所计算出的对应于多个时间段的多个心率观测值,本申请会针对每个心率观测值均执行一次卡尔曼滤波处理,以此使得心率检测更为准确。且具体地,在前的时间段对应的卡尔曼滤波处理所输出的心率进一步作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息,也就是说,多个心率观测值所对应的多个卡尔曼滤波处理过程并不是独立、毫无关联的,而是一个不断迭代的过程,每一个在后的卡尔曼滤波处理过程均使用了在前(临近)的卡尔曼滤波处理过程的输出信息,以此使得在同一个时间窗口内通过多次迭代式的卡尔曼滤波处理过程,使心率检测多次逼近实时数值,从而在保证准确性的同时还确保了心率检测的实时性。
由以上方案可知,本实施例提供的心率检测方法,提出了一种在同一时间窗口内按所划分的不同时间段计算多次心率观测值,并按该时间窗口内不同时间段的先后次序迭代式执行多次卡尔曼滤波以最终获得目标心率的心率检测方案,本申请方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,因此同时保证了心率检测的高实时性。
实施例二
参考图3,是本申请提供的一种心率检测方法实施例二的流程图,本实施例中,如图3所示,所述对所述当前时间窗口内的所述心电数据进行R波识别处理得到所述当前时间窗口内的R波信息(即上述的步骤102),具体可通过以下的处理过程实现:
步骤1021、对所述当前时间窗口内待处理的心电数据进行带通滤波处理。
其中,可以但不限于对所述当前时间窗口内待处理的心电数据进行零相移的带通滤波,示例性地,带通滤波的频率可以为5到15Hz。带通滤波主要是为了去除心电信号中的基线漂移,同时还可以减少心电信号中P波和T波对R波的干扰。
以图2示出的原始心电信号为例,其在0到600个时序点处存在巨大的干扰,经过带通滤波后所得的波形具体可参考图4所示,图4的波形相比于图2的原始信号波形显然滤除了基线漂移。
步骤1022、针对带通滤波处理后的每个心电数据,计算该心电数据左侧预定时长的时间段内第一心电信号波形的最大斜率Kl_max与最小斜率Kl_min,以及计算该心电数据右侧预定时长的时间段内第一心电信号波形的最大斜率Kr_max与最小斜率Kr_min;并将所述Kl_max减去所述Kr_min,得到该心电数据的左侧斜率Kl,将所述Kr_max减去所述Kl_min,得到所述心电数据的右侧斜率Kr。
目前的R波识别方法,如单边斜率算法,能量法等的识别准确率不够高,往往会存在对R波的误识别。发明人经研究发现,前端设备在采集心电信号时,为了防止心电信号的溢出,会不断地对心电漂移进行校正,相应地会产生斜率过大的上拉或者下拉,从而通过单边斜率等方法很难保证R波识别的准确性,如图5所示,图5中圆圈中的下拉点在单边斜率算法中会被误识别为R波。为了改善这一情况,本申请提出一种基于双边斜率进行R波识别的处理过程。
具体地,对于所述当前时间窗口内经过带通滤波处理后所得的每个时序点心电数据,计算该点的左、右两侧预定时长的时间段内(如左侧距该点t2~t1的时间段,右侧距该点t1~t2的时间段等)第一心电信号波形的最大斜率及最小斜率,假设该点的左侧预定时长的时间段内第一心电信号波形的最大斜率为Kl_max、最小斜率为Kl_min,该点的右侧预定时长的时间段内第一心电信号波形的最大斜率为Kr_max、最小斜率为Kr_min,则本实施例继续基于这些斜率数值计算该点的左侧斜率及右侧斜率(也即该点的双边斜率),具体地,该点的左侧斜率Kl=Kl_max-Kr_min,该点的右侧斜率Kr=Kr_max-Kl_min。
上述计算出的时序点心电数据的左侧斜率Kl及右侧斜率Kr即为该时序点心电数据的双边斜率,后续将基于所述当前时间窗口内各个时序点心电数据的双边斜率进一步进行R波识别。
步骤1023、对所述当前时间窗口内各个心电数据的左侧斜率Kl进行积分处理,得到第二心电信号,并对所述第二心电信号进行低通滤波;对所述当前时间窗口内各个心电数据的右侧斜率Kr进行积分处理,得到第三心电信号,并对所述第三心电信号进行低通滤波。
在计算出所述当前时间窗口内各个时序点心电数据的双边斜率Kl及Kr的基础上,可相应得到各个时序点的双边斜率信号:ecg_k_l信号和ecg_k_r信号,参考图6及图7,图6为各个时序点心电数据的左侧斜率Kl对应的ecg_k_l信号波形示意图,图7为各个时序点心电数据的右侧斜率Kr对应的ecg_k_r信号波形示意图。
在得到当前时间窗口内各个时序点的左侧斜率ecg_k_l信号波形及右侧斜率ecg_k_r信号波形后,可通过对所述左侧斜率ecg_k_l信号波形中的各个左侧斜率Kl进行积分,得到所述当前时间窗口对应的第二心电信号,相对应地,可通过对所述右侧斜率ecg_k_r信号波形中的各个右侧斜率Kr进行积分,来得到所述当前时间窗口对应的第三心电信号,该处理可实现将心电信号中的R波进行突出,而其他波形(如心电信号中P波和T波等)的幅值则相应减小。在此基础上,可进一步对所述当前时间窗口的所述第二心电信号以及所述第三心电信号进行低通滤波。
参考图8,为对图6的ecg_k_l信号中的左侧斜率经过积分和低通滤波处理之后所得的第二心电信号的示意图,需要说明的是,所述第二心电信号与所述第三心电信号的信号图基本一致,两者的区别主要包括:在对心电漂移进行校正(采集原始心电信号时,为了防止心电信号的溢出,会不断地对心电漂移进行校正)从而产生斜率过大的上拉或者下拉的时序点位置处两者不一致。
步骤1024、对低通滤波处理后的第二心电信号进行R波识别,得到第一候选R波集合;对低通滤波处理后的第三心电信号进行R波识别,得到第二候选R波集合。
在通过对双边斜率进行积分及低通滤波处理得到当前时间窗口对应的所述第二心电信号及所述第三心电信号的基础上,可继续对所述第二心电信号进行R波识别,以此得到所述当前时间窗口对应的第一候选R波集合;相对应地,可通过对所述第三心电信号进行R波识别,来得到所述当前时间窗口对应的第二候选R波集合。
如上文所述,所述第二心电信号与所述第三心电信号的信号图基本一致,从而,所述第一候选R波集合与所述第二候选R波集合中的各个候选R波基本是相同的,不同之处主要在于针对斜率过大的上拉或者下拉的时序点位置的区分识别,其中,对于斜率过大的上拉或者下拉的时序点位置,可能会在第一候选R波集合中将其误识别为R波,也可能会在第二候选R波集合中将其误识别为R波,但由于上拉或者下拉的双边斜率的特殊属性,不会在左右两个候选集合中均将其识别出来。
以下对所述第二心电信号、第三心电信号的候选R波识别过程进行说明。
本实施例具体提出一种基于动态双阈值的R波识别方法,采用该方法对所述第二心电信号、第三心电信号进行候选R波识别的识别过程如下:
1)基于所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,确定在所述当前时间窗口进行R波检测所需的第一幅值阈值及第二幅值阈值;所述第一幅值阈值高于所述第二幅值阈值。
所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,具体为所述当前时间窗口的前一时间窗口内检测出的R波的平均幅值。
假设所述当前时间窗口的前一时间窗口内检测出的R波的平均幅值为R_amp,同时假设为所述当前时间窗口所设置的一对用于进行R波识别的一高一低的阈值为:第一幅值阈值thr_high、第二幅值阈值thr_low。
则可利用所述平均幅值R_amp,并基于以下的计算式(1)、(2)分别计算所述第一幅值阈值thr_high、第二幅值阈值thr_low的初始化取值:
thr_high初=2·R_amp (1)
thr_low初=0.4·R_amp (2)
该第一幅值阈值thr_high、第二幅值阈值thr_low的初始化取值具体可应用于对所述当前时间窗口的第一个R波的识别中。
2)基于所述第一幅值阈值及所述第二幅值阈值,对当前时间窗口内低通滤波处理后的所述第二心电信号或者第三心电信号进行R波检测;其中,在每检测出一个R波时,基于所检测出的R波的幅值,更新所述第一幅值阈值及第二幅值阈值,并基于更新后的第一幅值阈值及第二幅值阈值对低通滤波处理后的所述第二心电信号或者第三心电信号继续进行下一个R波检测,直至在所述当前时间窗口内对第二心电信号或者第三心电信号的R波识别完毕时结束。
具体地,可首先利用所述第一幅值阈值thr_high、第二幅值阈值thr_low的上述初始化取值thr_high初、thr_low初对所述当前时间窗口所对应的所述第二心电信号或者第三心电信号中的第一个R波进行识别,以对第二心电信号进行R波识别为例,具体可将所述第二心电信号在所述thr_high初、thr_low初之间出现的峰值识别为第二心电信号中的第一个R波。
在此基础上,每识别出一个R波,则基于该新识别出的R波的幅值对识别出该新R波时所采用的第一幅值阈值thr_high、第二幅值阈值thr_low进行动态调整,动态调整所采用的计算式具体如下:
R_amp”=mean(R_amp'+R_new_amp) (3)
其中,R_new_amp表示最新识别出的R波的幅值,所述R_amp’表示识别出该新R波时(即最近一次R波识别)采用的第一幅值阈值thr_high、第二幅值阈值thr_low的阈值计算所基于的幅值均值,R_amp”表示根据所述最新识别出的R波的幅值对所述R_amp’进行调整后所得的幅值均值,mean(.)表示求均值,thr_high”表示接下来的R波识别所基于的第一幅值阈值,thr_low”表示接下来的R波识别所基于的第二幅值阈值。
也就是说,每识别出一个R波,就会基于新识别出的R波的幅值动态调整一次第一幅值阈值thr_high、第二幅值阈值thr_low,直至所述第二心电信号中的R波识别完毕为止,从而,可得到所述第二心电信号对应的第一候选R波集合。
对第三心电信号进行R波识别以得到其所对应的第二候选R波集合的识别过程,与对第二心电信号进行R波识别的过程类似,具体可参考对第二心电信号进行R波识别的上述描述,这里不再赘述。
步骤1025、基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
在分别通过对所述第二心电信号、第三心电信号进行R波识别,得到所述第一候选R波集合、第二候选R波集合的基础上,可基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
该基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波的处理过程如下:
1)识别出同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波,得到第三候选R波集合。
通过将同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波识别出来,可有效滤除第一候选R波集合与所述第二候选R波集合中针对产生斜率过大的上拉或者下拉的信号位置所误识别出的R波。
2)若所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,则调整所述第一幅值阈值和/或所述第二幅值阈值,并基于调整后的第一幅值阈值和/或第二幅值阈值重新触发第一候选R波集合与第二候选R波集合的生成。
由于心率值的正常范围一般为60~100次/分,假设所述时间窗口的时长为10s,则正常情况下一个时间窗口内所识别出的R波数量应处于10~17之间,而如果所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,比如低于6个(当然该个数阈值还可以是其他较低的数值,如5、7等),则表示识别过程存在问题或者被测者存在病患。
此种情况下,本实施例调整所述第一幅值阈值和/或所述第二幅值阈值,如具体将所述R_amp的幅值变化为原来的0.5倍进而进行阈值调整等,然后重新触发对所述第二心电信号、第三心电信号的R波识别,以改善R波识别的有效性。
3)若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则针对第三候选R波集合中的每个候选R波,将所述第一心电信号在候选R波对应的时间位置前后预定个数时序点的心电数据中幅值最大的心电数据识别为所述当前时间窗口的一个目标R波。
若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则可继续对其进行接下来的后续处理。
发明人发现,对所采集的原始心电信号进行的上述一系列的处理(如求双边斜率、积分、候选R波识别等等),会导致所识别出的所述第三候选R波集合中的各个候选R波与真实情况的R波相比在时间角度存在一定的滞后,针对该情况,本实施例采用以下处理过程将上述处理带来的滞后消除:
针对第三候选R波集合中的每个候选R波,将其在所述当前时间窗口所对应的原始心电信号也即所述第一心电信号中进行复查,在第一心电信号中确定该候选R波位置附近前后预定个数(如前后20个等)时序点的心电数据,并将所述前后预定个数时序点的心电数据中幅值最大的心电数据识别为该候选R波对应的目标R波,从而,最终可识别出所述第三候选R波集合中的各个候选R波在所述第一心电信号中对应的各个目标R波,通过该过程可有效消除前述处理对R波识别所带来的滞后影响。
所识别出的各个目标R波即为所述当前时间窗口对应的各个目标R波,至此完成了对所述当前时间窗口的心电数据的R波识别。
本实施例实现了基于双边斜率并利用自适应动态双阈值对心电信号进行R波识别,可有效剔除由于前端采样设备为了避免溢出对心电信号进行上拉或者下拉处理所带来的干扰,提升了R波识别的准确率,且对R波的精确提取不仅体现在可以剔除由于个别信号的噪声易导致的R波误识别,还体现在能够精确的输出R波的位置(时间/时序位置)。
实施例三
参考图9,是本申请提供的一种心率检测方法实施例三的流程图,本实施例中,如图9所示,所述基于所述当前时间窗口内的R波信息计算所述当前时间窗口所对应的多于一个的心率观测值(即上述的步骤103),具体可通过以下的处理过程实现:
步骤1031、将所述当前时间窗口按时间顺序划分为第一时间段、第二时间段、第三时间段;其中,所述第二时间段及所述第三时间段处于所述当前时间窗口相比于前一时间窗口所产生的新数据相对应的时间范围内。
本实施例具体以将当前时间窗口划分为三个时间段,并对后两个时间段进行心率观测值计算及卡尔曼滤波处理为例,对本申请的心率检测方案进行描述。实际应用中,对所述当前时间窗口进行划分时所划分的时间段个数,以及心率观测值的计算个数、卡尔曼滤波处理的次数可基于实际需求进行选择,本实施例并不对其进行限定。
以时间窗口的时长为10s,滑动步长为2s为例,可以但不限于采用ta=7.5s,tb=8.5s作为切割点对时间窗口进行划分。从而对于时长为10s的所述当前时间窗口来说,基于上述的切割点可将所述当前时间窗口划分为三个时间段:0~7.5s、7.5s~8.5s,8.5~10s。
其中,对于时长为10s,滑动步长为2s的时间窗口,在设定将其划分为三个时间段的情况下,优先选取上述的ta=7.5s,tb=8.5s这两个时刻点作为切割点的原因在于:
对于时长为10s,滑动步长为2s的时间窗口来说,窗口内的后2s数据为该窗口相比于上一时间窗口所产生的新的心电数据,对于实时心率检测来说,其(即窗口的后2s数据)是该窗口内进行心率检测处理时所需基于的核心数据,因此会初步确定需尽量将后2s数据与前8s的数据划分开,从而需要一个在8s左右的时刻点作为切割点,在设定将时间窗口划分为三个时间段的情况下,可进一步在9s左右的时刻点设置一个切割点,使得将后2s的窗口数据划分为相对均匀的两个时间段,后续会基于这两个时间段分别进行心率观测值的计算及卡尔曼滤波处理。另外,实际应用中,基于采样波动等考虑,一般会认为时间窗口的最后一较短时段内的心电数据的可信度不高,从而会将该较短时段内的数据舍弃不作处理,本实施例中,将所述预舍弃的较短时间段设定为10s时间窗口内的最后0.5s,从而,结合该0.5s舍弃时长,最终优选地将ta=7.5s,tb=8.5s这两个时刻点所述时间窗口的切割点,相应地,具体会将所述10s的当前时间窗口划分为0~7.5s、7.5s~8.5s,8.5~9.5s这3个时间段。
步骤1032、基于所述第二时间段内的R波信息,计算第一心率观测值。
在对所述当前时间窗口进行上述划分,得到其对应的第一时间段、第二时间段、第三时间段的基础上,可针对后两个时间段进行心率观测值的计算。
其中,可基于所述第二时间段内的R波信息,计算该时间段对应的第一心率观测值。具体地,如针对上述的10s时长的当前时间窗口,可基于7.5s~8.5s这一时间段的所有R波的R波个数或平均RR间隔(RR间隔即指相邻R波间的时间间隔)来计算该时间段对应的第一心率观测值,若该时段内不存在R波,则可从识别出的R波序列中,查找7.5s前的最近一个R波,以及8.5s后的最近一个R波进行RR间隔计算进而计算该第二时间段对应的心率观测值。
步骤1033、基于所述第三时间段内的R波信息,计算第二心率观测值。
相对应地,可基于所述第三时间段内的R波信息,计算该时间段对应的第二心率观测值。计算过程与所述第二时间段对应的心率观测值的计算过程类似,具体可参阅第二时间段对应的心率观测值的计算过程,这里不再赘述。
如图9所示,本实施例中,所述对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理(即上述的步骤104),具体可通过以下的处理过程实现:
步骤1041、利用所述当前时间窗口的上一时间窗口所输出的心率值,计算所述第二时间段对应的第一心率预测值;并基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值。
在计算出所述当前时间窗口的第二时间段对应的第一心率预测值的基础上,继续对所述第一心率预测值进行卡尔曼滤波处理。
首先建立如以下的式(6)所示的一维卡尔曼滤波的预测方程,并利用该方程计算所述第二时间段对应的第一心率预测值:
X=A·opti_HR(2·loop-2)+w_q(2·loop-1) (6)
该式中,A表示预测方程中的转移矩阵,本实施例中假定A=1(当然可以根据需求设定为其他矩阵值),loop为当前的滑窗系数,opti_HR1表示上一个时间窗口计算出的最优心率(即上一个时间窗口的第三个时间段对应输出的心率值),w_q为预测的过程噪声(预测方程不可能完全准确的反映心率的实际变化情况,预测过程中是含有噪声的)。
在此基础上,利用卡尔曼滤波的处理方程,基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值。
其中,卡尔曼滤波的处理方程包括:
卡尔曼滤波的观测方程:
Z=H·measure_HR1(2·loop-1)+w_r(2·loop-1) (7)
其中,measure_HR1为测量的ta到tb的心率值(即上述的第一观测心率值),w_r为观测噪声,H为观测矩阵,假定H=1(当然可以根据需求设定为其他矩阵值)。
预测过程的协方差方程:
P(2·loop-1)=A·P(2·loop-2)·AT+cov(w_q) (8)
其中,所述P表示预测过程的协方差。
卡尔曼增益的方程:
K(2·loop-1)=P(2·loop-1)·HT·(H·P·HT+cov(w_r))-1 (9)
卡尔曼滤波的状态更新方程:
opti_HR(2·loop-1)=(X+K·(Z-(A·H·opti_HR(2·loop-2)))) (10)
P(2·loop-1)=(1-H·K)·P(2·loop-1) (11)
通过上述处理得到的心率值为该第二时间段对应的最优心率值,该第二时间段对应的最优心率值并不作为所述当前时间窗口的目标心率值输出,而是作为后续第三时间段进行心率预测时的输入。
步骤1042、利用所述第二时间段对应的最优心率值,计算所述第三时间段对应的第二心率预测值;并基于所述第二心率预测值,对所述第二心率观测值进行卡尔曼滤波处理,得到所述第三时间段对应的最优心率值,并将所述第三时间段对应的最优心率值作为所述当前时间窗口对应的目标心率输出。
对第三时间段进行卡尔曼滤波处理的过程与上述的对第二时间段进行卡尔曼滤波处理的过程类似,仅需要将所采用的各计算公式中的字符含义适应性替换为第三时间段所对应的相应参数即可,例如,将公式(6)中的opti_HR1的含义替换为表示所述当前时间窗口的第二时间段对应的最优心率值,将公式(7)中的measure_HR1的含义替换为表示测量的第三时间段的心率值(即第二观测心率值)等等,这里,对于第三时间段对应的第二心率观测值的卡尔曼滤波处理过程不再详述。
其中,由于第三时间段的卡尔曼滤波处理过程的心率预测值的计算具体以第二时间段所输出的最优心率值为基础,从而,第二时间段以及第三时间段的两次卡尔曼滤波处理过程为一个迭代式的卡尔曼滤波处理过程,通过在同一时间窗口内以迭代方式连续进行两次(或更多次)卡尔曼滤波处理,实现了将检测出的心率两次(或多次)逼近实时心率数值,在此基础上,最终可将与实时心率数值最为逼近的最后一次卡尔曼滤波处理所得到的心率值(如所述第三时间段对应的卡尔曼滤波处理所得到的心率值)作为所述当前时间窗口的目标心率输出,至此完成了对该当前时间窗口的心率检测。
具体实施中,可通过一帧帧检测并输出各个时间窗口所对应的心率数值,来实现对被测者心率的实时检测。
本申请的心率检测方法的整体处理逻辑具体可参考图10所示。
本实施例方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,从而同时保证了心率检测的高实时性。
以下通过将本申请的心率检测方法与现有技术的两种心率检测方法的检测情况进行比对,来验证本申请的心率检测方法的性能。
本次验证测试以心电模拟仪产生的动态心电数据作为数据基础,并人工设置了不同的心率,在此基础上,利用本申请的心率检测方法对心电模拟仪产生的动态心电数据进行心率检测,同时利用直接根据R波信息(如R波个数或RR间隙)计算心率的方式进行心率检测,以及利用滑窗中R波间隙中值计算心率的方式进行R波检测,三种方法的心率计算结果的对比图具体可参考图11所示。
基于图11的心率计算结果对比图,可知,直接根据R波信息计算心率的方式,其心率曲线变化很快,但波动很频繁,从而其响应较为及时,但准确度不够高;利用滑窗中R波间隙中值计算心率的方式,减少了心率的波动但是对心率的响应不够及时;利用本申请方法经过两次卡尔曼滤波处理后输出的心率结果,在响应速度上要优于利用滑窗中值计算出的心率,同时心率稳定性也是三种方式中最优的。综合对比,可以获知,本申请提出的基于多次卡尔曼率波的心率检测方法在实时性和准确性上都达到了一个较优的水平。
实施例四
在长时间采集用户动态心电数据的过程中,由于用户的运动,或者导联(指测量心电信号时与用户接触的电极)接触不良等原因,难以避免地会采集到一些信号质量不好的动态心电数据,这类心电数据通过滤波处理、特征检测处理等过程很难完全消除,且对于后续的心率检测处理来说意义不大,而且还有可能造成误诊断,为了减少甚至避免这种因信号质量不好所导致的问题,本实施例在对检测的心电信号进行心率检测之前,首先识别所检测的心电信号的质量,并根据所检测的心电信号的质量确定接下来的处理(如舍弃质量差的信号,保留质量好的信号进行心率检测等)。
从而,本实施例中,参考图12示出的心率检测方法的流程图,该方法在所述对当前时间窗口内的心电数据进行R波识别处理之前,还可以包括以下步骤:
步骤105、利用预先训练的信号质量分类器对所述第一心电信号的信号质量进行分类处理,得到所述第一心电信号的信号质量类别。
本实施例具体利用一预先训练的信号质量分类器对所采集的心电信号的质量进行分类预测,以下首先对该信号质量分类器的训练过程进行介绍。
其中,具体可通过以下的处理过程来构建所述信号质量分类器,该过程为一离线的模型训练过程:
(一)获取训练样本集
所述训练样本集包括多条训练样本,不同的训练样本包括预定时长的不同时间窗口内心电信号的特征数据及信号质量类别;其中,心电信号的特征数据包括如下特征中的至少一种:心电信号的时域特征、频域特征、样本熵、心电信号的R波序列的幅值及RR间隙信息、时频域特征。
获取训练样本集的过程具体可以包括:
1)历史心电数据的获取及归一化
具体地,可获取批量的历史心电数据,人体心电信号是由心房和心室的极化和去极化产生的,不同设备采集的相同原始心电信号对应的波形图基本是相同的,因此,可以忽略设备间的差异跨设备获取批量历史数据,但是不同设备可能会因所采用的参数单位不同,而导致所采集的心电数据的参数量度不统一,因此,在获取历史心电数据后,一般需预先对其进行归一化处理,例如,将所获取的历史心电数据都转化为以mv为幅值单位等,以此保证训练出的分类器的泛化性。
2)信号质量类别的人工标注
在获取批量的历史心电数据并执行归一化处理后,可将其按时间窗口随机划分为多个数据段,如将其按10s的时间窗口划分为多个10s的数据段等,并人工标注各个时间窗口的数据段所对应的信号质量,以将信号质量划分为A(表示优)、B(表示良)、C(表示差)为例,可基于每个时间窗口的数据段的实际信号质量优劣程度,人工标注该时间窗口的数据段的信号质量为A、B、C中的相应一种,并将标注结果作为数据的标签,实际应用中,还可以根据需要将信号质量按优劣程度划分为其他数量的类别,如两类,四类等,本实施例对此不作限定。
3)时域特征提取
具体可针对每个时间窗口内的心电数据,对其进行时域特征提取。
心电数据的时域特征可以包括但不限于心电数据的幅值均值、幅值标准差、斜率最大值、峰度kurtosis及斜率较大的非脉冲特征中的任意一种或多种。
具体地,由于心电采集设备接触和噪声过大的影响,心电信号可能会存在突变,且由于心拍的R波类似于脉冲波,因此可把心电信号的斜率值作为一个特征。
心电数据的峰度kurtosis的计算公式如下所示:
在该式中,data表示一维的心电信号,MEAN表示心电信号的幅值均值,std(.)表示求标准差,n表示心电数据的个数,如一个时间窗口内心电数据的个数等。
斜率较大的非脉冲特征的提取过程如下:
假设slop为某时间窗口内心电信号的斜率序列,slop_big为斜率大于阈值的斜率序列,可遍历slop_big序列,并查找出其中的时间间隔大于一时间阈值的各个斜率进行保留,所保留的各个斜率即构成心电信号的斜率较大的非脉冲特征。
其中,由于R波(为脉冲波)的宽度不超过0.15s,从而可将所述时间阈值(用于检测非脉冲特征)设置为不小于0.15s的数值,如具体将其设置为0.15s等。
4)频域特征提取
本实施例将心电信号中的能量集散程度作为心电信号的频域特征。
心电信号的能量集散度的计算方法为:
首先利用pburg算法计算样本的功率谱估计,对频率在一预先设定的有效频段内的信号进行积分得到EN1,对频率在一预先设定的较宽频段(相比于所述有效频段而言频段范围较宽)内的信号进行积分得到EN2,最后用EN1/EN2得到样本的能量集散程度。
发明人由先验知识得出心电信号的频率大致在5~20Hz内,因此样本数据在这个频段内的能量占总能量的比值能够反映样本有效心电信号的占比,从而,可将所述有效频段设置为5~20Hz,所述较宽频段具体可设定为宽于所述5~20Hz的频段,如可以但不限于将其设置为5~100Hz等。
5)样本熵提取
本申请通过快速计算心电信号的样本熵来反映其复杂程度。
为了加快样本熵的运算速度,本实施例首先对心电数据进行重采样(即二次采样),例如,假设在获取历史数据时采用400Hz的频率进行采样,则在10s的时间窗口内可获得4000个时序点的心电数据,在此基础上,本实施例继续利用一较小频率对其进行二次采样,例如采用50Hz的采样频率对400Hz的采样结果进行进一步采样等,从而对于10s的时间窗口,经过二次采样可得到500个时序点的心电数据,有效缩短了心电数据序列的数据长度。
之后,基于重采样结果产生两个维数即m维和m+1维的向量集Xm(i)和Xm+1(i),其中,m为一个随机的数值,示例性而非限定性地,可将所述m设定为2,从而可得到二维和三维的向量集X2(i)和X3(i),其中,假设重采样后每个时间窗口可得到500个心电数据,分别表示为data1,data2…data500,则所述向量集X2(i)共包括499个向量,分别为二元组(data1,data2)、(data2,data3)…(data499,data500),所述向量集X3(i)共包括498个向量,分别为三元组(data1,data2,data3)、(data2,data3、data4)…(data498,data499,data500)。进一步计算这两个向量集中向量的切比雪夫距离(即指两两向量间的距离)得到距离序列chebm和chebm+1,则计算快速样本熵Sample_En的公式如下:
其中,所述N表示重采样后所得的数据序列的长度,r表示相似容限。
6)R波序列的幅值及RR间隙信息提取
具体地,可采用本申请上文所介绍的基于双边斜率的自适应动态双阈值的R波检测过程,来检测出每个时间窗口内心电信号的候选R波序列(对应上文所述的第三候选R波集合),并将该组R波序列的R波幅值及RR间隙作为该时间窗口的心电信号的一组特征。
7)时频域特征提取
为了能够反映一维心电信号不同尺度的特征,本申请引入了小波变换来对心电信号做时频域的变换。
其中,可采用相应小波算法对心电数据进行分解,并在分解基础上取前相应数量的小波系数作为时频域特征。示例性而非限定性地,比如,可以利用db6小波算法对心电数据做5级分解,并取前25个小波系数作为时频域特征。
在对所获得的心电数据进行上述特征提取的基础上,可将每个时间窗口的心电数据的特征数据及其标签(即人工标注的信号质量类别)的对应关系作为一条样本,最终针对所获得的批量历史心电数据,可得到包括一系列“特征-标签”对的训练样本集。
具体实施本申请时,心电数据的特征可以是本实施例所提供的上述特征中的任意一种或多种,本实施例对此不作限定。
(二)模型训练
可利用所述训练样本集对预定的分类器模型进行训练,得到信号质量分类器。所述预定的分类器模型可以是但不限于svm(Support Vector Machine,支持向量机)分类器。
仍以所构建的信号质量分类器能够将心电信号的质量划分为上述的A、B、C三类为例,本实施例具体将所述信号质量分类器设计为包括三个并联的二分类svm分类器的形式,其中,第一个二分类svm分类器用于将心电信号质量分类为A和其他,第二个二分类svm分类器用于将心电信号质量分类为B和其他,第三个二分类svm分类器用于将心电信号质量分类为C和其他,后续在利用该信号质量分类器对心电数据进行信号质量分类时,需将心电数据分别经过三个二分类器的处理后,取概率最大的类别结果(即A、B、C中置信度最大的类别)作为信号质量分类器对该心电数据的质量的最终分类结果。
其中,svm的核函数采用RBF(径向基)核函数,其他的一些超参数则可以根据训练样本集的情况具体去调试,然后将训练样本的特征数据和标签放入分类器中进行训练,最终得到能够有效划分心电信号的信号质量类别的分类器。
需要说明的是,实际实施本申请时,所构建的信号质量分类器不必限定于本实施例所提供的上述形式,例如,还可以根据需要直接将信号质量分类器构建为二分类类别、三分类类别或四分类类别的多分类器(而不再是本申请所提供的由多个二分类器表征多分类器)等,本实施例对信号质量分类器的形式同样不作限定。
上述信号质量分类器的构建过程具体可作为本申请的心率检测方法的预处理过程,在构建完成该信号质量分类器的基础上,在心率检测中,对于所采集的被测者的心率信号,可首先利用该信号质量分类器对其信号质量的类别进行识别,以检测出其信号质量的优劣。
以上述的三分类类别的信号质量分类器为例,对于一个待识别的心电信号,如所采集的当前时间窗口的第一心电信号,可首先提取该第一心电信号的特征数据,所提取的特征数据与进行分类器训练时训练样本的特征数据类型一致,在此基础上,利用信号质量分类器包括的上述三个二分类器分别对该信号的特征数据进行处理,以此实现对该第一心电信号的信号质量进行分类,从而分别得到该第一心电信号属于A类别的概率、属于B类别的概率以及属于C类别的概率,最终,综合三个二分类器的分类结果,选取其中概率最大的类别作为该当前时间窗口的第一心电信号的信号质量类别。
其中,如果该第一心电信号为单导(即单导联)信号,则可直接输出其信号质量的类别结果,如果该第一心电信号为多导(即多导联)信号,可在分类器对每导联心电信号进行分类的基础上,确定出信号质量类别最优的导联的心电信号进行后续的判断。
由于心电信号是一个时序信号,当前时间窗口的数据和前面一段数据往往具备较强的关联,基于心电信号的该时序特性,在实际应用中,还可以利用前一个时间窗口的分类结果和特征去矫正当前时间窗口的分类结果,以使得当前时间窗口的心电信号的信号质量分类结果更加合理。
步骤106、若所述第一心电信号的信号质量类别属于预定的信号质量类别,则触发执行对所述当前时间窗口内的所述心电数据进行R波识别处理的操作。
所述预定的信号质量类别,具体可以为表征心电信号的信号质量较好的类别,例如,该预定的信号质量类别可以仅包括所述A类别(表示信号质量优),或者还可以同时包括所述A(表示信号质量优)、B两种类别(表示信号质量良)。
参考图13所示出的心率检测的处理逻辑示意图,若所述第一心电信号的信号质量类别属于所述预定的信号质量类别,则表示所述第一心电信号的信号质量较优,从而,可继续针对该第一心电信号执行本申请后续的各个心率检测步骤对其进行心率检测。以所述预定的信号质量类别同时包括A、B两种类别为例,若所述第一心电信号的类别为A或B,则可继续对该第一心电信号进行后续的心率检测处理。
步骤107、若所述第一心电信号的信号质量类别不属于预定的信号质量类别,则过滤掉所述第一心电信号。
反之,若所述第一心电信号的信号质量类别不属于所述预定的信号质量类别,比如所述第一心电信号的信号质量类别为C,则表示该信号的信号质量较差,从而可舍弃该信号,不必再对其进行心率检测处理。
本实施例通过在对心电信号进行心率检测之前,首先利用所构建的信号质量分类器对其进行信号质量检测,并滤除掉信号质量较差的心电信号,可以避免对质量较差的心电信号的不必要的心率检测处理,同时还可以有效减少甚至避免因信号质量不好所导致的误诊断等问题;进一步地,本实施例在构建信号质量分类器时,引入了时域、频域、时频域、R波信息等多方面的特征,可使得所构建的分类器在泛化性及分类效果等方面均达到较优的水平;在对心电信号进行分类时,利用前一个时间窗口的分类结果和特征去矫正当前时间窗口的分类结果,充分利用了心电数据是时序信号的特性,会使得分类结果更加合理。
实施例五
参考图14,为本申请提供的一种心率检测方法实施例五的流程图,本实施例中,所述心率检测方法还可以包括以下步骤:
步骤108、将所述第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,将所述第一心电信号的信号质量类别作为所述新的特征数据的标签,并利用所述新的特征数据及其标签构成的样本对所述信号质量分类器进行优化。
在利用预先构建的信号质量分类器对心电信号进行分类的基础上,本实施例继续将心电信号质量类别的在线分类情况信息反馈于所述信号质量分类器,并具体基于心电信号的信号质量类别的在线分类情况,对所述信号质量分类器进行优化。
基于心电信号的时序特性,本实施例具体结合考虑所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行优化,在结合考虑所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行优化时,本实施具体将所述当前时间窗口的第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,并将所述当前时间窗口的第一心电信号的信号质量类别作为所述新的特征数据的标签,来形成新的训练样本,并利用该新的训练样本对所述信号质量分类器进行在线优化,以此使得所述信号质量分类器的分类性能不断得以提升。
参考图15,为本申请提供的离线构建信号质量分类器、基于所构建的分类器对信号质量进行在线分类并基于分类结果情况对分类器进行在线优化的处理逻辑示意图。
本实施例基于心电信号的时序特性,结合利用所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行在线优化,可进一步提升所述信号质量分类器的分类性能,会使得所述信号质量分类器的分类结果更加合理。
以下通过实验数据对本申请提供的上述信号质量分类器的分类性能进行验证,其中,利用人工标记的10000条心电数据样本作为训练集,测试集则为另外的12000条心电数据,这些数据是随机从204名病人产生的动态心电数据中产生的。基于人工标记及分类器标记的分类结果的混淆矩阵具体可参考以下的表1。
表1
基于表1的混淆矩阵数据,可知,本申请所构建的信号质量分类器针对A信号的识别准确率为97.76%,针对B类别信号的识别准确率93.59%,针对C类别信号的识别准确率为95.01%。对比现有技术已有的根据斜率和频率特征的信号类别分类算法,本申请所构建的分类器对信号质量类别的识别准确率有了较大提高。且本申请的信号质量分类器能够在在线的使用过程中不断产生新的带有上一帧特征的样本数据,并将其作为新的训练样本不断对信号质量分类器进行优化。
实施例六
对应于上述的心率检测方法,本申请还公开了一种电子设备,该电子设备可以是但不限于心电监护设备,如穿戴式心电监护设备等,所述穿戴式心电监护设备可以是但不限于智能心电衣、智能腕带式/胸戴式心电监护仪等多种形式。
参考图16,为本申请提供的一种电子设备实施例六的结构示意图,如图16所示,该电子设备包括:
存储器1601,用于至少存储一组指令集。
处理器1602,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
获取当前时间窗口内待处理的心电数据;
对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息;
基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出;
对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息。
本申请基于时间窗口的方式对被测者(如运动员、病患人员或普通用户等)进行心电数据检测及心率计算。
其中,可预先设定一相应时间长度及滑动步长的滑动窗口,示例性而非限定性地,例如可预先设定一时间长度为10s、滑动步长为2s的滑动窗口,在此基础上,可利用该滑动窗口按设定步长在所检测的心电信号上进行滑动来依次获得一个个的时间窗口心电数据,由于心率检测对于准确性及实时性有较高要求,从而,一般来说,每得到一个新的时间窗口的心电数据,均会将其作为当前待处理的心电数据对其进行实时的心率检测。
鉴于此,所述当前时间窗口即为利用所述滑动窗口在所检测的心电信号上进行滑动时所得的最新的时间窗口,所述当前时间窗口内待处理的心电数据具体包括所述当前时间窗口所对应的第一心电信号在各个时序点所对应的心电幅值。
参考图2,为所检测的被测者的原始心电信号示意图,实际应用中具体可采用一定频率(可基于实际采样需求预先设定)对被测者进行心电数据采集,以所采用的采集频率为400Hz为例,则10s的时间窗口可采集4000个按时序分布的心电数据,从而,具体可将最近时间窗口的4000个按时序分布的心电数据作为所述当前时间窗口内待处理的心电数据对其进行心率检测处理。
心电信号中的每一个R波对应一个心动周期,因此,实际应用中,具体可通过对被测者的心电信号进行R波识别,来使得基于所识别出的R波信息进行心率计算。
对于所述当前时间窗口来说,具体可对所述当前时间窗口对应的所述第一心电信号进行R波识别,以此使得为该当前时间窗口的心率计算提供数据依据。
在对所述当前时间窗口的第一心电信号进行R波检测,获得其R波信息后,可进一步对所述当前时间窗口按时间段进行划分,例如依次将其划分为3个或更多个数的时间段等。
在此基础上,可选取所划分的各个时间段中的至少部分时间段,对其进行心率观测值的计算,例如,优选地可选取所划分的各个时间段中的后两个时间段(时间段越靠后其对应的心电数据及所检测出的R波信息的实时性越高),并可基于所选取的后两个时间段中每个时间段对应的R波信息来计算该时间段的心率观测值。
具体地,假设所选取的某一时间段的时间长度为ts,在该ts的时间段对应检测出n个R波,则该ts的时间段内的心率观测值为:60n/t。
为了实现高实时性、高准确率地对用户心率进行检测,本申请并不以上述基于R波信息计算出的心率观测值作为最终的目标心率输出,而是继续对其进行卡尔曼滤波处理。
针对所计算出的对应于多个时间段的多个心率观测值,本申请会针对每个心率观测值均执行一次卡尔曼滤波处理,以此使得心率检测更为准确。且具体地,在前的时间段对应的卡尔曼滤波处理所输出的心率进一步作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息,也就是说,多个心率观测值所对应的多个卡尔曼滤波处理过程并不是独立、毫无关联的,而是一个不断迭代的过程,每一个在后的卡尔曼滤波处理过程均使用了在前(临近)的卡尔曼滤波处理过程的输出信息,以此使得在同一个时间窗口内通过多次迭代式的卡尔曼滤波处理过程,使心率检测多次逼近实时数值,从而在保证准确性的同时还确保了心率检测的实时性。
由以上方案可知,本实施例提供的电子设备,提出了一种在同一时间窗口内按所划分的不同时间段计算多次心率观测值,并按该时间窗口内不同时间段的先后次序迭代式执行多次卡尔曼滤波以最终获得目标心率的心率检测方案,本申请方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,因此同时保证了心率检测的高实时性。
实施例七
本实施例中,所述电子设备处理器1602对所述当前时间窗口内的所述心电数据进行R波识别处理得到所述当前时间窗口内的R波信息,具体可通过以下的处理过程实现:
对所述当前时间窗口内待处理的心电数据进行带通滤波处理;
针对带通滤波处理后的每个心电数据,计算该心电数据左侧预定时长的时间段内第一心电信号波形的最大斜率Kl_max与最小斜率Kl_min,以及计算该心电数据右侧预定时长的时间段内第一心电信号波形的最大斜率Kr_max与最小斜率Kr_min;并将所述Kl_max减去所述Kr_min,得到该心电数据的左侧斜率Kl,将所述Kr_max减去所述Kl_min,得到所述心电数据的右侧斜率Kr;
对所述当前时间窗口内各个心电数据的左侧斜率Kl进行积分处理,得到第二心电信号,并对所述第二心电信号进行低通滤波;对所述当前时间窗口内各个心电数据的右侧斜率Kr进行积分处理,得到第三心电信号,并对所述第三心电信号进行低通滤波;
对低通滤波处理后的第二心电信号进行R波识别,得到第一候选R波集合;对低通滤波处理后的第三心电信号进行R波识别,得到第二候选R波集合;
基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
其中,可以但不限于对所述当前时间窗口内待处理的心电数据进行零相移的带通滤波,示例性地,带通滤波的频率可以为5到15Hz。带通滤波主要是为了去除心电信号中的基线漂移,同时还可以减少心电信号中P波和T波对R波的干扰。
以图2示出的原始心电信号为例,其在0到600个时序点处存在巨大的干扰,经过带通滤波后所得的波形具体可参考图4所示,图4的波形相比于图2的原始信号波形显然滤除了基线漂移。
目前的R波识别方法,如单边斜率算法,能量法等的识别准确率不够高,往往会存在对R波的误识别。发明人经研究发现,前端设备在采集心电信号时,为了防止心电信号的溢出,会不断地对心电漂移进行校正,相应地会产生斜率过大的上拉或者下拉,从而通过单边斜率等方法很难保证R波识别的准确性,如图5所示,图5中圆圈中的下拉点在单边斜率算法中会被误识别为R波。为了改善这一情况,本申请提出一种基于双边斜率进行R波识别的处理过程。
具体地,对于所述当前时间窗口内经过带通滤波处理后所得的每个时序点心电数据,计算该点的左、右两侧预定时长的时间段内(如左侧距该点t2~t1的时间段,右侧距该点t1~t2的时间段等)第一心电信号波形的最大斜率及最小斜率,假设该点的左侧预定时长的时间段内第一心电信号波形的最大斜率为Kl_max、最小斜率为Kl_min,该点的右侧预定时长的时间段内第一心电信号波形的最大斜率为Kr_max、最小斜率为Kr_min,则本实施例继续基于这些斜率数值计算该点的左侧斜率及右侧斜率(也即该点的双边斜率),具体地,该点的左侧斜率Kl=Kl_max-Kr_min,该点的右侧斜率Kr=Kr_max-Kl_min。
上述计算出的时序点心电数据的左侧斜率Kl及右侧斜率Kr即为该时序点心电数据的双边斜率,后续将基于所述当前时间窗口内各个时序点心电数据的双边斜率进一步进行R波识别。
在计算出所述当前时间窗口内各个时序点心电数据的双边斜率Kl及Kr的基础上,可相应得到各个时序点的双边斜率信号:ecg_k_l信号和ecg_k_r信号,参考图6及图7,图6为各个时序点心电数据的左侧斜率Kl对应的ecg_k_l信号波形示意图,图7为各个时序点心电数据的右侧斜率Kr对应的ecg_k_r信号波形示意图。
在得到当前时间窗口内各个时序点的左侧斜率ecg_k_l信号波形及右侧斜率ecg_k_r信号波形后,可通过对所述左侧斜率ecg_k_l信号波形中的各个左侧斜率Kl进行积分,得到所述当前时间窗口对应的第二心电信号,相对应地,可通过对所述右侧斜率ecg_k_r信号波形中的各个右侧斜率Kr进行积分,来得到所述当前时间窗口对应的第三心电信号,该处理可实现将心电信号中的R波进行突出,而其他波形(如心电信号中P波和T波等)的幅值则相应减小。在此基础上,可进一步对所述当前时间窗口的所述第二心电信号以及所述第三心电信号进行低通滤波。
参考图8,为对图6的ecg_k_l信号中的左侧斜率经过积分和低通滤波处理之后所得的第二心电信号的示意图,需要说明的是,所述第二心电信号与所述第三心电信号的信号图基本一致,两者的区别主要包括:在对心电漂移进行校正(采集原始心电信号时,为了防止心电信号的溢出,会不断地对心电漂移进行校正)从而产生斜率过大的上拉或者下拉的时序点位置处两者不一致。
在通过对双边斜率进行积分及低通滤波处理得到当前时间窗口对应的所述第二心电信号及所述第三心电信号的基础上,可继续对所述第二心电信号进行R波识别,以此得到所述当前时间窗口对应的第一候选R波集合;相对应地,可通过对所述第三心电信号进行R波识别,来得到所述当前时间窗口对应的第二候选R波集合。
如上文所述,所述第二心电信号与所述第三心电信号的信号图基本一致,从而,所述第一候选R波集合与所述第二候选R波集合中的各个候选R波基本是相同的,不同之处主要在于针对斜率过大的上拉或者下拉的时序点位置的区分识别,其中,对于斜率过大的上拉或者下拉的时序点位置,可能会在第一候选R波集合中将其误识别为R波,也可能会在第二候选R波集合中将其误识别为R波,但由于上拉或者下拉的双边斜率的特殊属性,不会在左右两个候选集合中均将其识别出来。
以下对所述第二心电信号、第三心电信号的候选R波识别过程进行说明。
本实施例具体提出一种基于动态双阈值的R波识别方法,采用该方法对所述第二心电信号、第三心电信号进行候选R波识别的识别过程如下:
1)基于所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,确定在所述当前时间窗口进行R波检测所需的第一幅值阈值及第二幅值阈值;所述第一幅值阈值高于所述第二幅值阈值。
所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,具体为所述当前时间窗口的前一时间窗口内检测出的R波的平均幅值。
假设所述当前时间窗口的前一时间窗口内检测出的R波的平均幅值为R_amp,同时假设为所述当前时间窗口所设置的一对用于进行R波识别的一高一低的阈值为:第一幅值阈值thr_high、第二幅值阈值thr_low。
则可利用所述平均幅值R_amp,并基于以下的计算式(1)、(2)分别计算所述第一幅值阈值thr_high、第二幅值阈值thr_low的初始化取值:
thr_high初=2·R_amp (1)
thr_low初=0.4·R_amp (2)
该第一幅值阈值thr_high、第二幅值阈值thr_low的初始化取值具体可应用于对所述当前时间窗口的第一个R波的识别中。
2)基于所述第一幅值阈值及所述第二幅值阈值,对当前时间窗口内低通滤波处理后的所述第二心电信号或者第三心电信号进行R波检测;其中,在每检测出一个R波时,基于所检测出的R波的幅值,更新所述第一幅值阈值及第二幅值阈值,并基于更新后的第一幅值阈值及第二幅值阈值对低通滤波处理后的所述第二心电信号或者第三心电信号继续进行下一个R波检测,直至在所述当前时间窗口内对第二心电信号或者第三心电信号的R波识别完毕时结束。
具体地,可首先利用所述第一幅值阈值thr_high、第二幅值阈值thr_low的上述初始化取值thr_high初、thr_low初对所述当前时间窗口所对应的所述第二心电信号或者第三心电信号中的第一个R波进行识别,以对第二心电信号进行R波识别为例,具体可将所述第二心电信号在所述thr_high初、thr_low初之间出现的峰值识别为第二心电信号中的第一个R波。
在此基础上,每识别出一个R波,则基于该新识别出的R波的幅值对识别出该新R波时所采用的第一幅值阈值thr_high、第二幅值阈值thr_low进行动态调整,动态调整所采用的计算式具体如下:
R_amp”=mean(R_amp'+R_new_amp) (3)
其中,R_new_amp表示最新识别出的R波的幅值,所述R_amp’表示识别出该新R波时(即最近一次R波识别)采用的第一幅值阈值thr_high、第二幅值阈值thr_low的阈值计算所基于的幅值均值,R_amp”表示根据所述最新识别出的R波的幅值对所述R_amp’进行调整后所得的幅值均值,mean(.)表示求均值,thr_high”表示接下来的R波识别所基于的第一幅值阈值,thr_low”表示接下来的R波识别所基于的第二幅值阈值。
也就是说,每识别出一个R波,就会基于新识别出的R波的幅值动态调整一次第一幅值阈值thr_high、第二幅值阈值thr_low,直至所述第二心电信号中的R波识别完毕为止,从而,可得到所述第二心电信号对应的第一候选R波集合。
对第三心电信号进行R波识别以得到其所对应的第二候选R波集合的识别过程,与对第二心电信号进行R波识别的过程类似,具体可参考对第二心电信号进行R波识别的上述描述,这里不再赘述。
在分别通过对所述第二心电信号、第三心电信号进行R波识别,得到所述第一候选R波集合、第二候选R波集合的基础上,可基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
该基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波的处理过程如下:
1)识别出同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波,得到第三候选R波集合。
通过将同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波识别出来,可有效滤除第一候选R波集合与所述第二候选R波集合中针对产生斜率过大的上拉或者下拉的信号位置所误识别出的R波。
2)若所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,则调整所述第一幅值阈值和/或所述第二幅值阈值,并基于调整后的第一幅值阈值和/或第二幅值阈值重新触发第一候选R波集合与第二候选R波集合的生成。
由于心率值的正常范围一般为60~100次/分,假设所述时间窗口的时长为10s,则正常情况下一个时间窗口内所识别出的R波数量应处于10~17之间,而如果所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,比如低于6个(当然该个数阈值还可以是其他较低的数值,如5、7等),则表示识别过程存在问题或者被测者存在病患。
此种情况下,本实施例调整所述第一幅值阈值和/或所述第二幅值阈值,如具体将所述R_amp的幅值变化为原来的0.5倍进而进行阈值调整等,然后重新触发对所述第二心电信号、第三心电信号的R波识别,以改善R波识别的有效性。
3)若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则针对第三候选R波集合中的每个候选R波,将所述第一心电信号在候选R波对应的时间位置前后预定个数时序点的心电数据中幅值最大的心电数据识别为所述当前时间窗口的一个目标R波。
若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则可继续对其进行接下来的后续处理。
发明人发现,对所采集的原始心电信号进行的上述一系列的处理(如求双边斜率、积分、候选R波识别等等),会导致所识别出的所述第三候选R波集合中的各个候选R波与真实情况的R波相比在时间角度存在一定的滞后,针对该情况,本实施例采用以下处理过程将上述处理带来的滞后消除:
针对第三候选R波集合中的每个候选R波,将其在所述当前时间窗口所对应的原始心电信号也即所述第一心电信号中进行复查,在第一心电信号中确定该候选R波位置附近前后预定个数(如前后20个等)时序点的心电数据,并将所述前后预定个数时序点的心电数据中幅值最大的心电数据识别为该候选R波对应的目标R波,从而,最终可识别出所述第三候选R波集合中的各个候选R波在所述第一心电信号中对应的各个目标R波,通过该过程可有效消除前述处理对R波识别所带来的滞后影响。
所识别出的各个目标R波即为所述当前时间窗口对应的各个目标R波,至此完成了对所述当前时间窗口的心电数据的R波识别。
本实施例实现了基于双边斜率并利用自适应动态双阈值对心电信号进行R波识别,可有效剔除由于前端采样设备为了避免溢出对心电信号进行上拉或者下拉处理所带来的干扰,提升了R波识别的准确率,且对R波的精确提取不仅体现在可以剔除由于个别信号的噪声易导致的R波误识别,还体现在能够精确的输出R波的位置(时间/时序位置)。
实施例八
本实施例中,所述电子设备处理器1602基于所述当前时间窗口内的R波信息计算所述当前时间窗口所对应的多于一个的心率观测值,具体可通过以下的处理过程实现:
将所述当前时间窗口按时间顺序划分为第一时间段、第二时间段、第三时间段;其中,所述第二时间段及所述第三时间段处于所述当前时间窗口相比于前一时间窗口所产生的新数据相对应的时间范围内;
基于所述第二时间段内的R波信息,计算第一心率观测值;
基于所述第三时间段内的R波信息,计算第二心率观测值。
本实施例具体以将当前时间窗口划分为三个时间段,并对后两个时间段进行心率观测值计算及卡尔曼滤波处理为例,对本申请的心率检测方案进行描述。实际应用中,对所述当前时间窗口进行划分时所划分的时间段个数,以及心率观测值的计算个数、卡尔曼滤波处理的次数可基于实际需求进行选择,本实施例并不对其进行限定。
以时间窗口的时长为10s,滑动步长为2s为例,可以但不限于采用ta=7.5s,tb=8.5s作为切割点对时间窗口进行划分。从而对于时长为10s的所述当前时间窗口来说,基于上述的切割点可将所述当前时间窗口划分为三个时间段:0~7.5s、7.5s~8.5s,8.5~10s。
其中,对于时长为10s,滑动步长为2s的时间窗口,在设定将其划分为三个时间段的情况下,优先选取上述的ta=7.5s,tb=8.5s这两个时刻点作为切割点的原因在于:
对于时长为10s,滑动步长为2s的时间窗口来说,窗口内的后2s数据为该窗口相比于上一时间窗口所产生的新的心电数据,对于实时心率检测来说,其(即窗口的后2s数据)是该窗口内进行心率检测处理时所需基于的核心数据,因此会初步确定需尽量将后2s数据与前8s的数据划分开,从而需要一个在8s左右的时刻点作为切割点,在设定将时间窗口划分为三个时间段的情况下,可进一步在9s左右的时刻点设置一个切割点,使得将后2s的窗口数据划分为相对均匀的两个时间段,后续会基于这两个时间段分别进行心率观测值的计算及卡尔曼滤波处理。另外,实际应用中,基于采样波动等考虑,一般会认为时间窗口的最后一较短时段内的心电数据的可信度不高,从而会将该较短时段内的数据舍弃不作处理,本实施例中,将所述预舍弃的较短时间段设定为10s时间窗口内的最后0.5s,从而,结合该0.5s舍弃时长,最终优选地将ta=7.5s,tb=8.5s这两个时刻点所述时间窗口的切割点,相应地,具体会将所述10s的当前时间窗口划分为0~7.5s、7.5s~8.5s,8.5~9.5s这3个时间段。
在对所述当前时间窗口进行上述划分,得到其对应的第一时间段、第二时间段、第三时间段的基础上,可针对后两个时间段进行心率观测值的计算。
其中,可基于所述第二时间段内的R波信息,计算该时间段对应的第一心率观测值。具体地,如针对上述的10s时长的当前时间窗口,可基于7.5s~8.5s这一时间段的所有R波的R波个数或平均RR间隔(RR间隔即指相邻R波间的时间间隔)来计算该时间段对应的第一心率观测值,若该时段内不存在R波,则可从识别出的R波序列中,查找7.5s前的最近一个R波,以及8.5s后的最近一个R波进行RR间隔计算进而计算该第二时间段对应的心率观测值。
相对应地,可基于所述第三时间段内的R波信息,计算该时间段对应的第二心率观测值。计算过程与所述第二时间段对应的心率观测值的计算过程类似,具体可参阅第二时间段对应的心率观测值的计算过程,这里不再赘述。
在此基础上,所述电子设备的处理器1602对各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,具体可通过以下的处理过程实现:
利用所述当前时间窗口的上一时间窗口所输出的心率值,计算所述第二时间段对应的第一心率预测值;并基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值;
利用所述第二时间段对应的最优心率值,计算所述第三时间段对应的第二心率预测值;并基于所述第二心率预测值,对所述第二心率观测值进行卡尔曼滤波处理,得到所述第三时间段对应的最优心率值,并将所述第三时间段对应的最优心率值作为所述当前时间窗口对应的目标心率输出。
在计算出所述当前时间窗口的第二时间段对应的第一心率预测值的基础上,继续对所述第一心率预测值进行卡尔曼滤波处理。
首先建立如以下的式(6)所示的一维卡尔曼滤波的预测方程,并利用该方程计算所述第二时间段对应的第一心率预测值:
X=A·opti_HR(2·loop-2)+w_q(2·loop-1) (6)
该式中,A表示预测方程中的转移矩阵,本实施例中假定A=1(当然可以根据需求设定为其他矩阵值),loop为当前的滑窗系数,opti_HR1表示上一个时间窗口计算出的最优心率(即上一个时间窗口的第三个时间段对应输出的心率值),w_q为预测的过程噪声(预测方程不可能完全准确的反映心率的实际变化情况,预测过程中是含有噪声的)。
在此基础上,利用卡尔曼滤波的处理方程,基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值。
其中,卡尔曼滤波的处理方程包括:
卡尔曼滤波的观测方程:
Z=H·measure_HR1(2·loop-1)+w_r(2·loop-1) (7)
其中,measure_HR1为测量的ta到tb的心率值(即上述的第一观测心率值),w_r为观测噪声,H为观测矩阵,假定H=1(当然可以根据需求设定为其他矩阵值)。
预测过程的协方差方程:
P(2·loop-1)=A·P(2·loop-2)·AT+cov(w_q) (8)
其中,所述P表示预测过程的协方差。
卡尔曼增益的方程:
K(2·loop-1)=P(2·loop-1)·HT·(H·P·HT+cov(w_r))-1 (9)
卡尔曼滤波的状态更新方程:
opti_HR(2·loop-1)=(X+K·(Z-(A·H·opti_HR(2·loop-2)))) (10)
P(2·loop-1)=(1-H·K)·P(2·loop-1) (11)
通过上述处理得到的心率值为该第二时间段对应的最优心率值,该第二时间段对应的最优心率值并不作为所述当前时间窗口的目标心率值输出,而是作为后续第三时间段进行心率预测时的输入。
对第三时间段进行卡尔曼滤波处理的过程与上述的对第二时间段进行卡尔曼滤波处理的过程类似,仅需要将所采用的各计算公式中的字符含义适应性替换为第三时间段所对应的相应参数即可,例如,将公式(6)中的opti_HR1的含义替换为表示所述当前时间窗口的第二时间段对应的最优心率值,将公式(7)中的measure_HR1的含义替换为表示测量的第三时间段的心率值(即第二观测心率值)等等,这里,对于第三时间段对应的第二心率观测值的卡尔曼滤波处理过程不再详述。
其中,由于第三时间段的卡尔曼滤波处理过程的心率预测值的计算具体以第二时间段所输出的最优心率值为基础,从而,第二时间段以及第三时间段的两次卡尔曼滤波处理过程为一个迭代式的卡尔曼滤波处理过程,通过在同一时间窗口内以迭代方式连续进行两次(或更多次)卡尔曼滤波处理,实现了将检测出的心率两次(或多次)逼近实时心率数值,在此基础上,最终可将与实时心率数值最为逼近的最后一次卡尔曼滤波处理所得到的心率值(如所述第三时间段对应的卡尔曼滤波处理所得到的心率值)作为所述当前时间窗口的目标心率输出,至此完成了对该当前时间窗口的心率检测。
具体实施中,可通过一帧帧检测并输出各个时间窗口所对应的心率数值,来实现对被测者心率的实时检测。
本申请的心率检测方法的整体处理逻辑具体可参考图10所示。
本实施例方案由于通过对心率观测值进行卡尔曼滤波来获得目标心率,从而可有效保证心率检测的准确性,且由于本申请方案在同一时间窗口内按所划分的不同时间段的先后次序迭代式执行了多次卡尔曼滤波,从而可实现在同一时间窗口内多次将心率值逼近实时数值,从而同时保证了心率检测的高实时性。
以下通过将本申请的心率检测方法与现有技术的两种心率检测方法的检测情况进行比对,来验证本申请的心率检测方法的性能。
本次验证测试以心电模拟仪产生的动态心电数据作为数据基础,并人工设置了不同的心率,在此基础上,利用本申请的心率检测方法对心电模拟仪产生的动态心电数据进行心率检测,同时利用直接根据R波信息(如R波个数或RR间隙)计算心率的方式进行心率检测,以及利用滑窗中R波间隙中值计算心率的方式进行R波检测,三种方法的心率计算结果的对比图具体可参考图11所示。
基于图11的心率计算结果对比图,可知,直接根据R波信息计算心率的方式,其心率曲线变化很快,但波动很频繁,从而其响应较为及时,但准确度不够高;利用滑窗中R波间隙中值计算心率的方式,减少了心率的波动但是对心率的响应不够及时;利用本申请方法经过两次卡尔曼滤波处理后输出的心率结果,在响应速度上要优于利用滑窗中值计算出的心率,同时心率稳定性也是三种方式中最优的。综合对比,可以获知,本申请提出的基于多次卡尔曼率波的心率检测方法在实时性和准确性上都达到了一个较优的水平。
实施例九
在长时间采集用户动态心电数据的过程中,由于用户的运动,或者导联(指测量心电信号时与用户接触的电极)接触不良等原因,难以避免地会采集到一些信号质量不好的动态心电数据,这类心电数据通过滤波处理、特征检测处理等过程很难完全消除,且对于后续的心率检测处理来说意义不大,而且还有可能造成误诊断,为了减少甚至避免这种因信号质量不好所导致的问题,本实施例在对检测的心电信号进行心率检测之前,首先识别所检测的心电信号的质量,并根据所检测的心电信号的质量确定接下来的处理(如舍弃质量差的信号,保留质量好的信号进行心率检测等)。
从而,本实施例中,所述电子设备的处理器1602,在对当前时间窗口内的心电数据进行R波识别处理之前,还可以执行以下处理:
利用预先训练的信号质量分类器对所述第一心电信号的信号质量进行分类处理,得到所述第一心电信号的信号质量类别;
若所述第一心电信号的信号质量类别属于预定的信号质量类别,则触发执行对所述当前时间窗口内的所述心电数据进行R波识别处理的操作;
若所述第一心电信号的信号质量类别不属于预定的信号质量类别,则过滤掉所述第一心电信号。
本实施例具体利用一预先训练的信号质量分类器对所采集的心电信号的质量进行分类预测,以下首先对该信号质量分类器的训练过程进行介绍。
其中,具体可通过以下的处理过程来构建所述信号质量分类器,该过程为一离线的模型训练过程:
(一)获取训练样本集
所述训练样本集包括多条训练样本,不同的训练样本包括预定时长的不同时间窗口内心电信号的特征数据及信号质量类别;其中,心电信号的特征数据包括如下特征中的至少一种:心电信号的时域特征、频域特征、样本熵、心电信号的R波序列的幅值及RR间隙信息、时频域特征。
获取训练样本集的过程具体可以包括:
1)历史心电数据的获取及归一化
具体地,可获取批量的历史心电数据,人体心电信号是由心房和心室的极化和去极化产生的,不同设备采集的相同原始心电信号对应的波形图基本是相同的,因此,可以忽略设备间的差异跨设备获取批量历史数据,但是不同设备可能会因所采用的参数单位不同,而导致所采集的心电数据的参数量度不统一,因此,在获取历史心电数据后,一般需预先对其进行归一化处理,例如,将所获取的历史心电数据都转化为以mv为幅值单位等,以此保证训练出的分类器的泛化性。
2)信号质量类别的人工标注
在获取批量的历史心电数据并执行归一化处理后,可将其按时间窗口随机划分为多个数据段,如将其按10s的时间窗口划分为多个10s的数据段等,并人工标注各个时间窗口的数据段所对应的信号质量,以将信号质量划分为A(表示优)、B(表示良)、C(表示差)为例,可基于每个时间窗口的数据段的实际信号质量优劣程度,人工标注该时间窗口的数据段的信号质量为A、B、C中的相应一种,并将标注结果作为数据的标签,实际应用中,还可以根据需要将信号质量按优劣程度划分为其他数量的类别,如两类,四类等,本实施例对此不作限定。
3)时域特征提取
具体可针对每个时间窗口内的心电数据,对其进行时域特征提取。
心电数据的时域特征可以包括但不限于心电数据的幅值均值、幅值标准差、斜率最大值、峰度kurtosis及斜率较大的非脉冲特征中的任意一种或多种。
具体地,由于心电采集设备接触和噪声过大的影响,心电信号可能会存在突变,且由于心拍的R波类似于脉冲波,因此可把心电信号的斜率值作为一个特征。
心电数据的峰度kurtosis的计算公式如下所示:
在该式中,data表示一维的心电信号,MEAN表示心电信号的幅值均值,std(.)表示求标准差,n表示心电数据的个数,如一个时间窗口内心电数据的个数等。
斜率较大的非脉冲特征的提取过程如下:
假设slop为某时间窗口内心电信号的斜率序列,slop_big为斜率大于阈值的斜率序列,可遍历slop_big序列,并查找出其中的时间间隔大于一时间阈值的各个斜率进行保留,所保留的各个斜率即构成心电信号的斜率较大的非脉冲特征。
其中,由于R波(为脉冲波)的宽度不超过0.15s,从而可将所述时间阈值(用于检测非脉冲特征)设置为不小于0.15s的数值,如具体将其设置为0.15s等。
4)频域特征提取
本实施例将心电信号中的能量集散程度作为心电信号的频域特征。
心电信号的能量集散度的计算方法为:
首先利用pburg算法计算样本的功率谱估计,对频率在一预先设定的有效频段内的信号进行积分得到EN1,对频率在一预先设定的较宽频段(相比于所述有效频段而言频段范围较宽)内的信号进行积分得到EN2,最后用EN1/EN2得到样本的能量集散程度。
发明人由先验知识得出心电信号的频率大致在5~20Hz内,因此样本数据在这个频段内的能量占总能量的比值能够反映样本有效心电信号的占比,从而,可将所述有效频段设置为5~20Hz,所述较宽频段具体可设定为宽于所述5~20Hz的频段,如可以但不限于将其设置为5~100Hz等。
5)样本熵提取
本申请通过快速计算心电信号的样本熵来反映其复杂程度。
为了加快样本熵的运算速度,本实施例首先对心电数据进行重采样(即二次采样),例如,假设在获取历史数据时采用400Hz的频率进行采样,则在10s的时间窗口内可获得4000个时序点的心电数据,在此基础上,本实施例继续利用一较小频率对其进行二次采样,例如采用50Hz的采样频率对400Hz的采样结果进行进一步采样等,从而对于10s的时间窗口,经过二次采样可得到500个时序点的心电数据,有效缩短了心电数据序列的数据长度。
之后,基于重采样结果产生两个维数即m维和m+1维的向量集Xm(i)和Xm+1(i),其中,m为一个随机的数值,示例性而非限定性地,可将所述m设定为2,从而可得到二维和三维的向量集X2(i)和X3(i),其中,假设重采样后每个时间窗口可得到500个心电数据,分别表示为data1,data2…data500,则所述向量集X2(i)共包括499个向量,分别为二元组(data1,data2)、(data2,data3)…(data499,data500),所述向量集X3(i)共包括498个向量,分别为三元组(data1,data2,data3)、(data2,data3、data4)…(data498,data499,data500)。进一步计算这两个向量集中向量的切比雪夫距离(即指两两向量间的距离)得到距离序列chebm和chebm+1,则计算快速样本熵Sample_En的公式如下:
其中,所述N表示重采样后所得的数据序列的长度,r表示相似容限。
6)R波序列的幅值及RR间隙信息提取
具体地,可采用本申请上文所介绍的基于双边斜率的自适应动态双阈值的R波检测过程,来检测出每个时间窗口内心电信号的候选R波序列(对应上文所述的第三候选R波集合),并将该组R波序列的R波幅值及RR间隙作为该时间窗口的心电信号的一组特征。
7)时频域特征提取
为了能够反映一维心电信号不同尺度的特征,本申请引入了小波变换来对心电信号做时频域的变换。
其中,可采用相应小波算法对心电数据进行分解,并在分解基础上取前相应数量的小波系数作为时频域特征。示例性而非限定性地,比如,可以利用db6小波算法对心电数据做5级分解,并取前25个小波系数作为时频域特征。
在对所获得的心电数据进行上述特征提取的基础上,可将每个时间窗口的心电数据的特征数据及其标签(即人工标注的信号质量类别)的对应关系作为一条样本,最终针对所获得的批量历史心电数据,可得到包括一系列“特征-标签”对的训练样本集。
具体实施本申请时,心电数据的特征可以是本实施例所提供的上述特征中的任意一种或多种,本实施例对此不作限定。
(二)模型训练
可利用所述训练样本集对预定的分类器模型进行训练,得到信号质量分类器。所述预定的分类器模型可以是但不限于svm(Support Vector Machine,支持向量机)分类器。
仍以所构建的信号质量分类器能够将心电信号的质量划分为上述的A、B、C三类为例,本实施例具体将所述信号质量分类器设计为包括三个并联的二分类svm分类器的形式,其中,第一个二分类svm分类器用于将心电信号质量分类为A和其他,第二个二分类svm分类器用于将心电信号质量分类为B和其他,第三个二分类svm分类器用于将心电信号质量分类为C和其他,后续在利用该信号质量分类器对心电数据进行信号质量分类时,需将心电数据分别经过三个二分类器的处理后,取概率最大的类别结果(即A、B、C中置信度最大的类别)作为信号质量分类器对该心电数据的质量的最终分类结果。
其中,svm的核函数采用RBF(径向基)核函数,其他的一些超参数则可以根据训练样本集的情况具体去调试,然后将训练样本的特征数据和标签放入分类器中进行训练,最终得到能够有效划分心电信号的信号质量类别的分类器。
需要说明的是,实际实施本申请时,所构建的信号质量分类器不必限定于本实施例所提供的上述形式,例如,还可以根据需要直接将信号质量分类器构建为二分类类别、三分类类别或四分类类别的多分类器(而不再是本申请所提供的由多个二分类器表征多分类器)等,本实施例对信号质量分类器的形式同样不作限定。
上述信号质量分类器的构建过程具体可作为本申请的心率检测方法的预处理过程,在构建完成该信号质量分类器的基础上,在心率检测中,对于所采集的被测者的心率信号,可首先利用该信号质量分类器对其信号质量的类别进行识别,以检测出其信号质量的优劣。
以上述的三分类类别的信号质量分类器为例,对于一个待识别的心电信号,如所采集的当前时间窗口的第一心电信号,可首先提取该第一心电信号的特征数据,所提取的特征数据与进行分类器训练时训练样本的特征数据类型一致,在此基础上,利用信号质量分类器包括的上述三个二分类器分别对该信号的特征数据进行处理,以此实现对该第一心电信号的信号质量进行分类,从而分别得到该第一心电信号属于A类别的概率、属于B类别的概率以及属于C类别的概率,最终,综合三个二分类器的分类结果,选取其中概率最大的类别作为该当前时间窗口的第一心电信号的信号质量类别。
其中,如果该第一心电信号为单导(即单导联)信号,则可直接输出其信号质量的类别结果,如果该第一心电信号为多导(即多导联)信号,可在分类器对每导联心电信号进行分类的基础上,确定出信号质量类别最优的导联的心电信号进行后续的判断。
由于心电信号是一个时序信号,当前时间窗口的数据和前面一段数据往往具备较强的关联,基于心电信号的该时序特性,在实际应用中,还可以利用前一个时间窗口的分类结果和特征去矫正当前时间窗口的分类结果,以使得当前时间窗口的心电信号的信号质量分类结果更加合理。
所述预定的信号质量类别,具体可以为表征心电信号的信号质量较好的类别,例如,该预定的信号质量类别可以仅包括所述A类别(表示信号质量优),或者还可以同时包括所述A(表示信号质量优)、B两种类别(表示信号质量良)。
参考图13所示出的心率检测的处理逻辑示意图,若所述第一心电信号的信号质量类别属于所述预定的信号质量类别,则表示所述第一心电信号的信号质量较优,从而,可继续针对该第一心电信号执行本申请后续的各个心率检测步骤对其进行心率检测。以所述预定的信号质量类别同时包括A、B两种类别为例,若所述第一心电信号的类别为A或B,则可继续对该第一心电信号进行后续的心率检测处理。
反之,若所述第一心电信号的信号质量类别不属于所述预定的信号质量类别,比如所述第一心电信号的信号质量类别为C,则表示该信号的信号质量较差,从而可舍弃该信号,不必再对其进行心率检测处理。
本实施例通过在对心电信号进行心率检测之前,首先利用所构建的信号质量分类器对其进行信号质量检测,并滤除掉信号质量较差的心电信号,可以避免对质量较差的心电信号的不必要的心率检测处理,同时还可以有效减少甚至避免因信号质量不好所导致的误诊断等问题;进一步地,本实施例在构建信号质量分类器时,引入了时域、频域、时频域、R波信息等多方面的特征,可使得所构建的分类器在泛化性及分类效果等方面均达到较优的水平;在对心电信号进行分类时,利用前一个时间窗口的分类结果和特征去矫正当前时间窗口的分类结果,充分利用了心电数据是时序信号的特性,会使得分类结果更加合理。
实施例十
本实施例十中,所述电子设备的处理器1602,还可以执行以下处理:
将所述第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,将所述第一心电信号的信号质量类别作为所述新的特征数据的标签,并利用所述新的特征数据及其标签构成的样本对所述信号质量分类器进行优化。
在利用预先构建的信号质量分类器对心电信号进行分类的基础上,本实施例继续将心电信号质量类别的在线分类情况信息反馈于所述信号质量分类器,并具体基于心电信号的信号质量类别的在线分类情况,对所述信号质量分类器进行优化。
基于心电信号的时序特性,本实施例具体结合考虑所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行优化,在结合考虑所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行优化时,本实施具体将所述当前时间窗口的第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,并将所述当前时间窗口的第一心电信号的信号质量类别作为所述新的特征数据的标签,来形成新的训练样本,并利用该新的训练样本对所述信号质量分类器进行在线优化,以此使得所述信号质量分类器的分类性能不断得以提升。
参考图15,为本申请提供的离线构建信号质量分类器、基于所构建的分类器对信号质量进行在线分类并基于分类结果情况对分类器进行在线优化的处理逻辑示意图。
本实施例基于心电信号的时序特性,结合利用所述当前时间窗口及其前一时间窗口的心电信号的分类情况数据对所述信号质量分类器进行在线优化,可进一步提升所述信号质量分类器的分类性能,会使得所述信号质量分类器的分类结果更加合理。
以下通过实验数据对本申请提供的上述信号质量分类器的分类性能进行验证,其中,利用人工标记的10000条心电数据样本作为训练集,测试集则为另外的12000条心电数据,这些数据是随机从204名病人产生的动态心电数据中产生的。基于人工标记及分类器标记的分类结果的混淆矩阵具体可参考以下的表1。
表1
基于表1的混淆矩阵数据,可知,本申请所构建的信号质量分类器针对A信号的识别准确率为97.76%,针对B类别信号的识别准确率93.59%,针对C类别信号的识别准确率为95.01%。对比现有技术已有的根据斜率和频率特征的信号类别分类算法,本申请所构建的分类器对信号质量类别的识别准确率有了较大提高。且本申请的信号质量分类器能够在在线的使用过程中不断产生新的带有上一帧特征的样本数据,并将其作为新的训练样本不断对信号质量分类器进行优化。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种心率检测方法,其特征在于,包括:
获取当前时间窗口内待处理的心电数据;
对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息;
基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出;
对所述当前时间窗口所对应的各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息,基于在同一个时间窗口内通过多次迭代式的卡尔曼滤波处理过程,使心率检测多次逼近实时数值,使得在保证准确性的同时还确保心率检测的实时性;
其中,所述获取当前时间窗口内待处理的心电数据,包括:
检测被测者的心电信号;
利用预定时长的滑动窗口在所检测的心电信号上进行滑动,得到当前时间窗口内的第一心电信号,所述第一心电信号在各个时序点所对应的心电幅值构成所述当前时间窗口内待处理的各个心电数据。
2.根据权利要求1所述的方法,其特征在于,在所述对所述当前时间窗口内的所述心电数据进行R波识别处理之前,还包括:
利用预先训练的信号质量分类器对所述第一心电信号的信号质量进行分类处理,得到所述第一心电信号的信号质量类别;
若所述第一心电信号的信号质量类别属于预定的信号质量类别,则触发执行对所述当前时间窗口内的所述心电数据进行R波识别处理的操作;
若所述第一心电信号的信号质量类别不属于预定的信号质量类别,则过滤掉所述第一心电信号。
3.根据权利要求2所述的方法,其特征在于,所述信号质量分类器的训练过程包括:
获取训练样本集,所述训练样本集包括多条训练样本,不同的训练样本包括预定时长的不同时间窗口内心电信号的特征数据及信号质量类别;其中,心电信号的特征数据包括如下特征中的至少一种:心电信号的时域特征、频域特征、样本熵、时频域特征;
利用所述训练样本集对预定的分类器模型进行训练,得到信号质量分类器。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述第一心电信号的特征数据、所述当前时间窗口的前一时间窗口的心电信号的特征数据以及所述前一时间窗口的心电信号的信号质量类别作为新的特征数据,将所述第一心电信号的信号质量类别作为所述新的特征数据的标签,并利用所述新的特征数据及其标签构成的样本对所述信号质量分类器进行优化。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息,包括:
对所述当前时间窗口内待处理的心电数据进行带通滤波处理;
针对带通滤波处理后的每个心电数据,计算该心电数据左侧预定时长的时间段内第一心电信号波形的最大斜率Kl_max与最小斜率Kl_min,以及计算该心电数据右侧预定时长的时间段内第一心电信号波形的最大斜率Kr_max与最小斜率Kr_min;并将所述Kl_max减去所述Kr_min,得到该心电数据的左侧斜率Kl,将所述Kr_max减去所述Kl_min,得到所述心电数据的右侧斜率Kr;
对所述当前时间窗口内各个心电数据的左侧斜率Kl进行积分处理,得到第二心电信号,并对所述第二心电信号进行低通滤波;对所述当前时间窗口内各个心电数据的右侧斜率Kr进行积分处理,得到第三心电信号,并对所述第三心电信号进行低通滤波;
对低通滤波处理后的第二心电信号进行R波识别,得到第一候选R波集合;对低通滤波处理后的第三心电信号进行R波识别,得到第二候选R波集合;
基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波。
6.根据权利要求5所述的方法,其特征在于,对低通滤波处理后的第二心电信号或者第三心电信号进行R波识别,包括:
基于所述当前时间窗口的前一时间窗口内检测出的R波的幅值信息,确定在所述当前时间窗口进行R波检测所需的第一幅值阈值及第二幅值阈值;所述第一幅值阈值高于所述第二幅值阈值;
基于所述第一幅值阈值及所述第二幅值阈值,对当前时间窗口内低通滤波处理后的所述第二心电信号或者第三心电信号进行R波检测;
其中,在每检测出一个R波时,基于所检测出的R波的幅值,更新所述第一幅值阈值及第二幅值阈值,并基于更新后的第一幅值阈值及第二幅值阈值对低通滤波处理后的所述第二心电信号或者第三心电信号继续进行下一个R波检测,直至在所述当前时间窗口内对第二心电信号或者第三心电信号的R波识别完毕时结束。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一候选R波集合及所述第二候选R波集合,确定出所述当前时间窗口内包括的各个目标R波,包括:
识别出同时存在于所述第一候选R波集合与所述第二候选R波集合中的各个候选R波,得到第三候选R波集合;
若所述第三候选R波集合中所包括的候选R波的个数低于预定个数阈值,则调整所述第一幅值阈值和/或所述第二幅值阈值,并基于调整后的第一幅值阈值和/或第二幅值阈值重新触发第一候选R波集合与第二候选R波集合的生成;
若所述第三候选R波集合中所包括的候选R波的个数不低于所述预定个数阈值,则针对第三候选R波集合中的每个候选R波,将所述第一心电信号在候选R波对应的时间位置前后预定个数时序点的心电数据中幅值最大的心电数据识别为所述当前时间窗口的一个目标R波。
8.根据权利要求1所述的方法,其特征在于,所述基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,包括:
将所述当前时间窗口按时间顺序划分为第一时间段、第二时间段、第三时间段;其中,所述第二时间段及所述第三时间段处于所述当前时间窗口相比于前一时间窗口所产生的新数据相对应的时间范围内;
基于所述第二时间段内的R波信息,计算第一心率观测值;
基于所述第三时间段内的R波信息,计算第二心率观测值;
所述对当前时间窗口所对应的各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,包括:
利用所述当前时间窗口的上一时间窗口所输出的心率值,计算所述第二时间段对应的第一心率预测值;并基于所述第一心率预测值,对所述第一心率观测值进行卡尔曼滤波处理,得到所述第二时间段对应的最优心率值;
利用所述第二时间段对应的最优心率值,计算所述第三时间段对应的第二心率预测值;并基于所述第二心率预测值,对所述第二心率观测值进行卡尔曼滤波处理,得到所述第三时间段对应的最优心率值,并将所述第三时间段对应的最优心率值作为所述当前时间窗口对应的目标心率输出。
9.一种电子设备,其特征在于,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
获取当前时间窗口内待处理的心电数据;
对所述当前时间窗口内的所述心电数据进行R波识别处理,得到所述当前时间窗口内的R波信息;
基于所述当前时间窗口内的R波信息,计算所述当前时间窗口所对应的多于一个的心率观测值,其中,不同的心率观测值分别基于所述当前时间窗口内的不同时间段的R波信息计算得出;
对所述当前时间窗口所对应的各个心率观测值按所对应时间段的先后次序依次执行卡尔曼滤波处理,并将最后一次卡尔曼滤波处理输出的心率值作为所述当前时间窗口对应的目标心率;其中,在前的时间段对应的卡尔曼滤波处理所输出的心率用于作为在后的时间段对应的卡尔曼滤波处理在计算心率预测值时的输入信息,基于在同一个时间窗口内通过多次迭代式的卡尔曼滤波处理过程,使心率检测多次逼近实时数值,使得在保证准确性的同时还确保心率检测的实时性;
其中,所述处理器获取当前时间窗口内待处理的心电数据,包括:
检测被测者的心电信号;
利用预定时长的滑动窗口在所检测的心电信号上进行滑动,得到当前时间窗口内的第一心电信号,所述第一心电信号在各个时序点所对应的心电幅值构成所述当前时间窗口内待处理的各个心电数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625813.4A CN109700450B (zh) | 2018-12-28 | 2018-12-28 | 一种心率检测方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625813.4A CN109700450B (zh) | 2018-12-28 | 2018-12-28 | 一种心率检测方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109700450A CN109700450A (zh) | 2019-05-03 |
CN109700450B true CN109700450B (zh) | 2021-02-19 |
Family
ID=66258135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811625813.4A Active CN109700450B (zh) | 2018-12-28 | 2018-12-28 | 一种心率检测方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109700450B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109770897A (zh) * | 2019-03-11 | 2019-05-21 | 华南师范大学 | 一种脑电棘波的处理识别方法及装置 |
CN110974213A (zh) * | 2019-12-20 | 2020-04-10 | 哈尔滨理工大学 | 基于深度堆栈网络的心电信号识别方法 |
CN111134660B (zh) * | 2020-01-17 | 2022-07-05 | 上海乐普云智科技股份有限公司 | 一种r点位置的检测方法和装置 |
CN111626182B (zh) * | 2020-05-25 | 2021-03-26 | 浙江大学 | 一种基于视频的人体心率及面部血容积精确检测方法和系统 |
CN112132722B (zh) * | 2020-08-20 | 2023-12-26 | 彭涛 | 政务热线数量趋势异常确定方法、装置、电子设备及介质 |
CN112043258A (zh) * | 2020-09-30 | 2020-12-08 | 青岛歌尔智能传感器有限公司 | 动态心率预测方法、装置、设备及可读存储介质 |
CN112932475B (zh) * | 2021-02-01 | 2023-02-21 | 武汉泰利美信医疗科技有限公司 | 血氧饱和度的计算方法、装置、电子设备及存储介质 |
CN114343642A (zh) * | 2021-10-22 | 2022-04-15 | 厦门大学 | 一种基于心率变异性指标的疲劳驾驶检测方法、系统 |
CN114366121B (zh) * | 2022-01-18 | 2024-04-19 | 西安理工大学 | 基于数字形态学的双动态阈值心电qrs波检测方法 |
CN115409074B (zh) * | 2022-10-31 | 2023-03-24 | 博睿康科技(常州)股份有限公司 | 信号检测方法、信号处理方法、信号处理模型 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106805965A (zh) * | 2016-12-19 | 2017-06-09 | 深圳先进技术研究院 | 一种心电信号分类方法及装置 |
CN107693000A (zh) * | 2017-10-23 | 2018-02-16 | 山东大学 | 基于心电和脉搏信号融合的心率估计方法、装置和系统 |
CN107837082B (zh) * | 2017-11-27 | 2020-04-24 | 乐普(北京)医疗器械股份有限公司 | 基于人工智能自学习的心电图自动分析方法和装置 |
-
2018
- 2018-12-28 CN CN201811625813.4A patent/CN109700450B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109700450A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109700450B (zh) | 一种心率检测方法及电子设备 | |
US10194821B2 (en) | Medical device having automated ECG feature extraction | |
Mahmud et al. | Deeparrnet: An efficient deep cnn architecture for automatic arrhythmia detection and classification from denoised ecg beats | |
CN109117730B (zh) | 心电图心房颤动实时判断方法、装置、系统及存储介质 | |
Karpagachelvi et al. | ECG feature extraction techniques-a survey approach | |
CN109758145B (zh) | 基于脑电信号因果关系的自动睡眠分期方法 | |
Chen et al. | Region aggregation network: improving convolutional neural network for ECG characteristic detection | |
Bayasi et al. | Adaptive technique for P and T wave delineation in electrocardiogram signals | |
Saini et al. | Delineation of ecg wave components using k-nearest neighbor (knn) algorithm: Ecg wave delineation using knn | |
CN111358459A (zh) | 一种心律失常识别方法、装置、设备和存储介质 | |
Slama et al. | Application of statistical features and multilayer neural network to automatic diagnosis of arrhythmia by ECG signals | |
Mahesh et al. | ECG arrhythmia classification based on logistic model tree | |
Lee et al. | A real-time abnormal beat detection method using a template cluster for the ECG diagnosis of IoT devices | |
Vuksanovic et al. | AR-based method for ECG classification and patient recognition | |
Sumathi et al. | Comparative study of QRS complex detection in ECG based on discrete wavelet transform | |
Zhu et al. | Feature extraction from a novel ECG model for arrhythmia diagnosis | |
Ganguly et al. | A non-invasive approach for fetal arrhythmia detection and classification from ecg signals | |
Moghadam et al. | Automatic diagnosis and localization of myocardial infarction using morphological features of ECG signal | |
Shukri et al. | Investigation on Elman neural network for detection of cardiomyopathy | |
Sahoo et al. | Classification of heart rhythm disorders using instructive features and artificial neural networks | |
Fotoohinasab et al. | A graph-constrained changepoint detection approach for ECG segmentation | |
Khandait et al. | ECG signal processing using classifier to analyses cardiovascular disease | |
Ali et al. | Classification of bundle branch blocks using multilayered perceptron network | |
Ahmed et al. | Heart rate estimation algorithm from wrist-based photoplethysmogram using subspace learning method | |
Jiang et al. | An SPC-based forward-backward algorithm for arrhythmic beat detection and classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |