《Deep Learning for ECG Segmentation》《利用深度学习对ecg信号进行分割》
讲在前面
- 一.笔者最近来搞心电信号了,当前算法框架就参考的这篇论文,来钻研一下这篇论文。说真的,搞ecg的人真的太少了;
- 二.我设计了几种字体颜色用于更加醒目地表现关键的思想和主题:
- 红色表示尚未理解透彻的一些概念
- 蓝色表示对原来的理解做的一些修改或补充
- 绿色表示此处需要参考的论文其他部分
- 橙色表示本文的重要关键字
- 紫色表示后续更新的内容
我会用删除线将自己曾经不到位的理解进行删除
摘要
我们提出了一种类似于UNet的全卷积网络来实现对ECG信号的分割,算法可以输入任意采样率的信号,然后输出一系列P波、T波的起点终点和QRS波群(波群的输出形式?)。我们的方法在速度上和其他算法不同,因为参数很少,同时效果又很好(对采样率有自适应性并且适用于多种ECG监视器)。提出的这个方法在质量上要优于其他的SOTA级别的分割算法。特别要指出的是,F1-measures对P、T波的起点与终点和QRS波群的检测精度都至少在97.8%、99.5%和99.0%。
1. 介绍
ECG是心脏的心电活动记录仪,是通过人身上携带的电极获得的。这是诊断心脏病的最重要的方法。ECG通常是由医生进行诊断,最近ECG信号的自动分析引起了广泛的关注。
ECG信号分析包含P、T、QRS波群的检测,以及各自的形状、幅度、相应位置等的分析(如下图)。
图1:
这三个波的起点和终点检测也被叫做ECG信号分割或者ECG信号勾画。
对ECG进行自动分割因为以下原因而成为一个困难的问题。比如,P波的幅度很小,所以很容易被识别成电极移动或者肌肉噪声产生的一些干涉等等。P波和T波可以是双向的,所以精确判断它的起点和终点就相对有点困难。有些心脏的周期可能不全是标准的分割,比如,P波可能消失等等。
在所有ECG自动分割的方法中,使用wavelet transform已经被证明是最好的方法【3,4,7,6,8,9】,在【11】中,一种ECG分割的神经网络方法被提出,这种算法的效果基本达到了wavelet transform的级别,但是仍然比较低。在这片论文中,我们建议使用UNet结构的神经网络。结果,使用这种神经网络的方法可能达到了,甚至超越了其他分割算法的质量。就质量而言,这种算法已经超过了其他同类算法。特别要指出的是,F1-measures对P、T波的起点与终点和QRS波群的检测精度都至少在97.8%、99.5%和99.0%。
另外要说的是,我们提出的分割算法在速度上与其他算法有所不同,因为它参数量很小,而且具备对于不同采样频率和不同类型设备的自适应性。
下面是论文所提出方法的主要不同点:
- 【11】提出了一种12个卷积神经网络的合并,这里我们使用的是一个带有跳层连接的全连接网络;
- 与现在的方法相比,【11】没有使用后处理;
- 【11】使用预处理来移除等值线偏移,通过这样处理数据,即使有等值线偏移的情况下也能很好的分割信号。这点从Section3.3可以看出来。
2. 算法
2.1 预处理
下面描述的神经网络是在一个采样频率为500Hz、周期为10s的ECG信号上进行训练的(看Section3.1)。为了使得算法能在不同采样频率和不同时长的信号上使用,我们提出了以下的预处理方法,假设输入信号 x = ( x 1 , x 2 , . . . , x n ) x=(x_1,x_2,...,x_n) x=(x1,x2,...,xn)的频率为 v v v,训练集信号频率为 μ μ μ。那么 T = n / v T=n/v T=n/v就是信号的周期。把输入的信号做如下转换:
- 1.构建一个时间采样点的数组 t = ( t 1 , t 2 , . . . , t n ) t = (t_1, t_2, ...,t_n) t=(t1,t2,...,tn),将一个长度为 [ 0 , T ] [0, T] [0,T]的信号分成 n n