摘要: 深度学习技术在生物医学信号处理中显示出了巨大的潜力,基于卷积神经网络的方法应用于心电图(ECG)和光容积脉搏波图(PPG)有很好的效果。但是,大部分方法对于复杂情况下的信号质量变化、噪声干扰以及基线漂移并不能很好地处理,造成峰值检测的准确性以及漏检率不高。本文针对这种情况提出一种新颖的深度学习框架YOLO-1D,将2D的目标检测算法迁移到1D的生物医学信号处理上,在该方法的基础上完成对心电图的复杂场景下精准的多峰检测和心律失常分类,该方法的核心思想是采用YOLO架构的一步检测方式及多尺度特征融合,通过DFL分布聚焦损失定位精准的位置;并且为了满足心电图的特殊性进行了针对心电图的基线漂移、时间扭曲、信号倒置以及MixUp的数据增强策略,检测头采用可扩展分类支路的方法来同时学习峰值检测和心律失常分类,利用加权1D非极大值抑制(1DNMS)以及容忍度匹配机制准确地量化多峰检测效果。通过大量实验发现,YOLO-1D能有效利用基线漂移数据集以及心电图额外的数据源扩充其训练集,从而使网络性能更好,且检测的准确度非常高,在噪声和干扰的大环境下性能也能保持稳定。对于该模型来说:在MIT-BIH心律失常数据库上的ECGR峰检出测试上,取得了精确率达到了96.55%、召回率为98.00%、F1值达到了97.27%的测试结果;在AAMI五分类标准下ECG的心律失常分类任务,准确率为95.2%,宏平均F1值为92.6%;而在PPG峰值检测方面,精确率为95.8%,召回率为96.3%,F1值为96.0%,相比于传统基于scipy. signal. find_peaks的方法(精确率为90.2%,召回率为92.5%,F1分数为91.3分),在精确率、召回率以及F1分数上分别提高了5.6、3.8及4.7个百分点。之后进行了模型升级更新,模型使用更新到YOLOv11版本,在后续实验中检测精度得到了一定的提高,其中包括ECG R峰检测F1达到了97.8%,PPG峰值检测F1也达到了96.5%。另外,还尝试做了脉搏间期(PPI)回归的任务,获得其在8秒窗口检测MAE达到0.42的较好结果。消融实验表明,在采用SPP模块、SEBlock注意力机制和数据增强等完整配置下,YOLO-1D的F1值比基础架构提升了2.17个百分点。
Abstract: Deep learning techniques have demonstrated great potential in the field of biomedical signal processing, and methods based on convolutional neural networks (CNNs) have achieved remarkable results in the analysis of electrocardiogram (ECG) and photoplethysmogram (PPG) signals. However, existing methods often perform unsatisfactorily in complex scenarios such as signal quality fluctuations, noise interference, and baseline drift, which tends to reduce the accuracy of peak detection and increase the false detection rate. In this study, we propose YOLO-1D, a novel deep learning framework that successfully adapts 2D object detection algorithms to 1D biomedical signal processing tasks, enabling high-precision peak detection and arrhythmia classification. Its core idea is to leverage the one-stage detection capability and multi-scale feature fusion mechanism of the YOLO architecture, combined with Distribution Focal Loss (DFL) to achieve accurate position regression; meanwhile, tailored data augmentation strategies (including baseline drift, time warping, signal inversion, and MixUp) are designed according to the characteristics of biomedical signals. The detection head can be extended with a classification branch to realize the joint learning of peak detection and arrhythmia classification. In addition, we introduce 1D Non-Maximum Suppression (1D NMS) and a tolerance matching mechanism to more accurately evaluate the performance of multi-peak detection. Experimental results show that the YOLO-1D method can generate high-quality peak detection results and maintain stable performance even in noisy and interfering environments. Specifically: In the ECG R-peak detection task on the MIT-BIH Arrhythmia Database, the precision, recall, and F1-score reach 96.55%, 98.00%, and 97.27%, respectively; in the ECG arrhythmia classification task under the AAMI five-classification standard, the accuracy and macro-average F1-score are 95.2% and 92.6%, respectively; in the PPG peak detection task, the precision, recall, and F1-score are 95.8%, 96.3%, and 96.0%, respectively. Compared with the traditional method based on scipy.signal.find_peaks (precision: 90.2%, recall: 92.5%, F1-score: 91.3%), the proposed method achieves improvements of 5.6, 3.8, and 4.7 percentage points in precision, recall, and F1-score, respectively. In subsequent research, the model is updated to the YOLOv11 version, further improving the detection accuracy: the F1-score for ECG R-peak detection reaches 97.8%, and that for PPG peak detection reaches 96.5%. In addition, we explore the Pulse Interval (PPI) regression task and achieve a good result with a Mean Absolute Error (MAE) of 0.42 in 8-second window detection. Ablation experiments show that when YOLO-1D adopts the complete configuration including the SPP module, SEBlock attention mechanism, and data augmentation, the F1-score is 2.17 percentage points higher than that of the basic architecture.
1. 引言
生物医学信号的峰值检测是目前心血管疾病诊断及健康监测技术中极为重要的基础技术。随着可穿戴设备和远程医疗的发展,需要更可靠稳定、鲁棒性更高的信号处理算法,其中心电图(R-peak)的心电(ECG)信号、光电容积脉搏波(PPG)峰值是进行心率变异性分析、心律失常识别、以及得到心率、血压等关键生理参数的重要基础。传统的R峰检测算法主要是基于心电图Pan-Tompkins等经典的滤波与形态识别的方法,在理想状态下可以得到较为满意的检测结果,但是依然存在一些问题:容易受噪声的影响,且对参数进行调整具有一定的困难性,无法很好地消除基线漂移。不能够完全地满足现代的应用要求。
深度学习技术具有强大的信号表征和特征提取能力,在生物医学信号处理中有极大的应用前景,而目前许多研究均将生物医学信号中的峰值检测当做分类任务,无法确定峰值所在的确切位置。将传统的二维(2D)目标检测算法(例如YOLO)运用于一维(1D)信号上,利用端到端训练方法以及多尺度特征融合方式,可以很好地克服传统方法存在的缺点,从而满足实际应用要求。同时,利用了YOLO系列的单阶段预测以及实时性的优点,将其核心思想运用到1D时序信号中,实现了不同尺度峰值的同时检测,并将分类分支拓展开来实现心律失常的自动分类。
本研究的主要贡献包括:(1) 把YOLO算法引入到1D生物医学信号处理当中,并且专门设计了YOLO-1D网络模型结构;(2) 结合分类损失和回归损失(Distribution Focal Loss, DFL)来进行亚像素级别上的峰值位置的精准回归;(3) 增加了检测头的结构来实现峰值检测和心律失常分类的联合学习;(4) 针对生物医学信号的特点制定了相对应的数据增强策略;(5) 最后使用ECG、PPG信号数据集验证了提出的算法的有效性以及从YOLOv8版本迭代更新到YOLOv11的优化过程。
2. 相关工作
2.1. 传统峰值检测方法
除了传统的阈值法、导数法、小波变换以及模板匹配等方法以外,传统峰值检测方法主要包括:Pan-Tompkins算法[1]是使用自适应阈值实现R波峰值检测的一种经典算法,在MIT-BIH数据库中能正确检测到R波的次数大约为总数的99.3%,且具有计算复杂度低、实时性好的特点,但是容易受到噪声影响,在信噪比较低的情况下会严重影响检测的准确性。Hamilton-Tompkins算法[2]利用一阶导数过零点寻找峰值,容易受基线漂移的影响。小波变换具有多尺度分析的优点,但是计算量大[3]。模板匹配需要事先建立模板,泛化能力弱。近年学者对传统的方法作了改进,Khan和Imtiaz [4]提出的Pan-Tompkins++采用改进滤波与多阈值的方法,其在各公共数据库上的F-score平均提高了2.2%,FP和FN平均降低了2.8%和1.8%,Lin等[5]应用动态阈值配合模板匹配法,使其灵敏度和准确度都上升到了99.78%,位置误差从原始Pan-Tompkins的21.65 ms降到了8.35 ms。Zahid等人[6]提出的1D CNN方法在低质量Holter ECG数据集上实现召回率为99.69% (CPSC-DB)以及99.85% (MIT-BIH),且精准率为98.91%和99.82%,从整体上讲,目前传统方法已经达到了在高质量信号下的最佳性能水平,在提高噪声鲁棒性、亚采样级准确定位以及跨库泛化等其他方面还有很大的提升空间。
2.2. 基于深度学习的峰值检测方法
卷积神经网络(CNN)方法在ECG心律失常分类方面效果较好,Rajpurkar等[7]采用CNN方法实现14类心律失常分类,在经过训练后能达到心脏病专家水平,其准确率 > 90%,但其方法需要先进行R峰检测才能输入到网络中进行心律失常分类,所以不能实现峰值检测和分类的同时进行,此外大部分的CNN方法都将峰值检测转变为分类问题而使定位难以精确到亚采样级别。而RNN及它的变体LSTM、GRU可以捕获时间上的相关性,但是计算量较大,推断时延也较大[8]。
此外,DENS-ECG等混合模型将CNN与LSTM相结合,实现了97.95%的敏感度及95.68%的准确率的优异波形分割结果[9],但由于其目标主要针对波形分割而不是心电波形精准定位,且算法本身计算复杂度偏高;Transformer方法采用自注意力机制建立长距离依赖关系[10],但由于序列越长其计算复杂度过高而难以实现,因此目前较少应用于峰值检测任务。在心律失常分类任务上,常规的心律失常识别方法均是将R波检测和分类分为两个独立的阶段来分别解决,从而由于这两类任务紧密相关的特点导致前面产生的误差无法得以修正,而基于深度学习的端到端分类方法虽然可以完成这一目标,但大部分工作仍然是采用两阶段的工作方法,没有利用好这两类任务间相互影响关联性的特点。从本质上来说,现阶段心律失常识别方法都具有一定的不足,主要是无法做到精确定位、检测与分类任务相分离以及在大量计算资源上的巨大浪费和在单维度上进行深入研究的不足等问题。
2.3. 目标检测方法在信号处理中的应用
YOLO (You Only Look Once) [11]算法运用回归模型完成单阶段目标检测以及端到端训练,避免了传统两阶段方法繁琐的过程,YOLO算法解决了目前流行的2D图像目标检测的端到端训练和实时推理的问题。在该模型上增加了C2f模块以及SPP模块,实现了多尺度特征的提取,使YOLOV8获得更好的精度及速度之间的平衡。针对网络结构进一步进行优化,并提高了模型的精度及稳定性。而目标检测方式可以做到端到端训练、单阶段检测、多尺度特征融合等优势,在一维生物医学信号中没有得到较好的应用。本次工作是首次把YOLO算法应用于单维信号,建立了YOLO-1D的模型,采用DFL进行亚采样级位置回归,使用1DNMS去除冗余检测,并以一种创新的方法把峰值检测和心律失常分类进行联合建模,避免了两阶段错误累积的问题。
3. 实验
3.1. 网络架构
YOLO-1D架构的整体设计如图1所示:输入为一维生物医学信号,经特征提取骨干网络处理后,由检测头输出峰值位置及其置信度。网络结构包含Stem层、C2f模块、SPP模块、SEBlock注意力机制以及检测头。Stem层由一维卷积(Conv1D)、批归一化(Batch Normalization)和SiLU激活函数构成,执行初始特征提取,将输入信号通道数从1扩展至64。C2f模块作为YOLOv8的核心组件,通过特征融合增强网络表达能力;本架构包含两个C2f层,分别将通道数从64扩展至128和256。SPP模块通过不同尺度(卷积核尺寸kernel_size = 5, 9, 13)的最大池化操作提取多尺度特征。SEBlock采用通道注意力机制,自适应地重新校准通道特征响应(缩减因子reduction=16)。检测头包含分类分支与回归分支:分类分支输出各位置为峰值的概率;回归分支输出峰值位置的精确偏移量(采用DFL编码,reg_max = 16)。
3.2. 损失函数
(1) 峰值检测损失函数:总体损失函数由分类损失与回归损失构成:
(1)
其中
,
。分类损失采用二元交叉熵损失(BCE With Logits Loss)。回归损失作用于DFL解码后的偏移量,采用L1损失。分布焦点损失(Distribution Focal Loss, DFL)将回归问题转化为分类问题,通过预测偏移量的分布以获取更精确的位置估计:
, (2)
其中
为分布的最大值。
(2) 心律失常分类损失函数:在心律失常分类任务中,损失函数扩展为:
Figure 1. Model network architecture diagram
图1. 模型网络结构图
, (3)
其中
为心律失常分类损失,采用交叉熵损失(Cross Entropy Loss),
。对于每个检测到的峰值位置,模型输出其对应的心律失常类型概率分布,分类损失计算预测概率分布与真实标签之间的交叉熵。在联合学习模式下,峰值检测与心律失常分类共享特征提取网络,通过多任务学习提升整体性能。
3.3. 信号特征与检测任务
心电图(ECG)记录心脏肌肉电活动,其中R波峰是HRV分析、心律失常识别的基础。光电容积脉搏波(PPG)由血液容积变化引起,反映心血管的状态,具有时空局部性与空间邻近性;心电信号尖峰检测注重时间和采样分辨率,在去除外界扰动的影响方面存在较大困难,PPG信号尖峰检测在去除运动伪影和光学噪声影响方面更为棘手。PPG、ECG的峰值检测都可以利用目标检测框架中“边界框/中心点/置信度”的思想将目标检测问题等价为一维时序下的“检测区间/峰值位置/置信度”。ECG心律失常分类任务可以将每个心拍映射到AAMI五类系统,并且采取“先检测后分类”或者“联合学习”两种模式:(1)YOLO-1Dv0先检测再分类,通过两个单独的网络分别完成两部分任务,在同一模型中两者的任务目标不进行联合学习;(2)YOLO-1Dv1实现联合学习,使得位置与类别可以同时预测。
3.4. 数据处理
(1) 从MIT-BIH数据库读取。dat文件,并从MIT-BIH数据库提取导联II,使用Neurokit2的rpeakdetect() 函数来得到导联II的R波,利用Neurokit2库的该函数作为金标准(groundtruth),把原始长信号划分为8s大小滑动窗口,间隔为2 s,在此基础上将每个窗口信号进行Z-score标准化处理(如图2)。
Figure 2. Data processing visualization
图2. 数据处理可视化
(2) 基于PPG的PPI预处理使用滑窗均值方法去除基线漂移;使用高通滤波(截止频率为0.5 Hz)、带通滤波(通带为0.5~8 Hz)和中值滤波器去除脉冲噪声,使用Savitzky-Golay进行平滑以保持峰值形状,使用Z-score方式完成归一化。对于PPI检测任务而言,还需要将ECG信号R-R间期(RRI)的数据与PPG信号PPI的数据对齐到同一时间轴。由于设备的采样率波动以及生理学上的时间延迟问题,在人工标定好相应的时间延迟之后,使用Neurokit2包检测ECG信号的峰点得到RRI以及心率(把RRI转换成心率进行标注),作为金标准。
(3) 数据增强策略:针对生物医学信号特性,设计了基线漂移(叠加低频正弦波
,振幅
,频率
)、时间扭曲(对时间轴施加随机扰动)、信号倒置、幅值缩放(缩放因子
)以及MixUp(混合系数
)等数据增强方法。
(4) 后处理:使用1D NMS,当设置距离阈值分别为ECG的50个采样点和PPG的30个采样点时,就可去除重复检测;对于检测性能评价,则通过容忍度匹配的方式判定匹配正确与否,即若预测峰位与真值峰位的距离小于5个采样点(ECG)或3个采样点(PPG),则认为匹配正确。
3.5. 实验设置
(1) 数据集:目前可以使用的是MIT-BIH心律失常数据库的48个ECG记录(采样率为360Hz,每条记录约30分钟)。记录根据ID被划分为了训练集(前面24个)和测试集(后面24个)。各个类别的数量与分布基本一致,可以代表人的心律失常的各类情况,包括正常(N)、室上性异位(S)、室性异位(V)、融合(F)以及未知(Q)这5类。PPG数据集约200名受试者,包含近500条记录(重采样为100 Hz),按照受试者来划分数据集,分别用来进行训练、验证和测试,比例分别为70%、15%、15%;从中抽取了近1.5万个8秒长的窗口作为ECG的输入样本;同理也抽取了近1.2万个8秒长的窗口作为PPG的输入样本。检测到R峰的位置时分别取以R峰为中心向前后各提取200个采样点(约为0.56秒)的原始心搏数据组成单个的心搏分类样本。
(2) 训练配置:使用PyTorch 2.0.1,在NVIDIA的4090 GPU上完成训练工作,batch_size = 128、起始learning_rate = 3e−4、用cosine annealing learning rate scheduler调优learning rate、选用AdamW优化器(权重衰减值为1e−4)、训练50 epoch,并采用EarlyStopping (patience = 10),开启FP16混合精度训练、梯度裁剪最大范数(max norm) = 1.0。
(3) 基线方法:采用经典方法为基线进行对比,即Pan-Tompkins算法、Hamilton-Tompkins算法、基于小波变换的方法、scipy. signal. find_peaks等;同时选用的深度学习方法有:CNN分类模型、CNN-LSTM混合模型、U-Net分割模型。
(4) 评估指标:峰值检测任务主要采用精确率(
)、召回率(
)和F1分数(
)进行评估。心律失常分类任务采用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1
分数及混淆矩阵(Confusion Matrix)进行评估。多分类任务的精确率、召回率和F1分数均按宏平均(Macro-average)和微平均(Micro-average)两种方式计算。所有实验重复5次,报告结果的平均值及标准差,并采用配对t检验评估性能差异(显著性水平α=0.05)。
3.6. 训练过程
使用Kaiming初始化的方法,并设定随机种子42,使用端到端的方式进行训练,设置FP16混合精度训练,设置梯度裁剪最大范数为1.0。损失函数在第一个epoch中就会有快速地降低,在验证集上,F1分数在第25~30 epoch左右达到最大值(约97.2%)。采用早停策略(patience = 10)停掉模型,实际经过训练epochs大约为35~40。根据网格搜索选出最好超参数:lr = 3 × 10−4,batch_size = 128,回归损失权重 = 5.0,NMS距离阈值ECG:50个采样点,PPG:30个采样点。
4. 结果分析
本节主要分析了YOLO-1D方法在ECG/PPG峰值检测任务中的实验情况,包括基线方法对比实验、消融实验、性能度量、可视化结果等各方面的实验,并在文章的最后一章中统计出其在计算效率方面的具体得分情况。
4.1. 对比实验结果
为了对比YOLO-1D的优劣,在本文中对YOLO-1D进行了与其他基线方法的对比试验,试验针对的是mit-bih和ppg数据集。其中,基线方法除了原始方法之外还包括传统的信号处理方法(小波变换方法、scipy find_peaks),以及深度学习方法(CNN分类模型、CNN-LSTM混合模型、U-Net分割方法)等,且所有方法使用的是相同的训练集/测试集划分方式,以此保证了对比实验的公平性。
4.1.1. ECG R波峰值检测性能对比
基于MIT-BIH测试集全部24条记录,各方法的性能对比如表1所示。
Table 1. Comparison data of ECG R-wave peak detection performance
表1. ECG R波峰值检测性能对比结果数据
方法 |
精确率 |
召回率 |
F1-score |
TP |
FP |
FN |
小波变换 |
85.8% |
92.5% |
89.0% |
2285 |
378 |
185 |
CNN 分类 |
88.3% |
94.2% |
91.2% |
2328 |
308 |
142 |
CNN-LSTM |
90.1% |
95.8% |
92.9% |
2366 |
260 |
104 |
U-Net 分割 |
91.5% |
96.3% |
93.8% |
2379 |
221 |
91 |
YOLO-1D (ours) |
96.55% |
98.00% |
97.27% |
2456 |
89 |
50 |
下面是一种更简洁且语义一致的表述方式:相较而言,由于对于评估指标最好,在各类指标中都比最优方案好很多,因此,YOLO-1D方法要优于小波变换和U-Net分割方法:YOLO-1D较之于小波变换提高了10.75%的准确度、5.50%的召回率、8.27%的F1分数;相对U-Net分割提高5.05%的准确度、1.70%的召回率、3.47%的F1分数,且误检数目(FP = 89)、漏检数目(FN = 50)均明显低于其他算法。
4.1.2. PPG峰值检测性能对比
在PPG测试集上,各方法的性能对比如表2所示。
Table 2. PPG Peak detection performance comparison data
表2. PPG峰值检测性能对比结果数据
方法 |
精确率 |
召回率 |
F1-score |
处理速度 |
scipy.find_peaks |
90.2% |
92.5% |
91.3% |
极快 |
CNN分类 |
91.8% |
93.2% |
92.5% |
快 |
CNN-LSTM |
93.1% |
94.5% |
93.8% |
中等 |
U-Net分割 |
94.2% |
95.1% |
94.6% |
中等 |
YOLO-1D |
95.8% |
96.3% |
96.0% |
实时(100 Hz) |
通过PPG峰值检测任务实验结果对比发现,基于YOLO-1D的峰值检测模型能够准确地检测到实际环境下的PPG峰值,并且识别出的峰值都是真值,其精确率为95.8%,召回率为96.3%,F1分数为96.0%。与scipy. find_peaks相比,模型分别多检出了1.6、1.2和1.4个百分点。相较U-Net分割方法,多检出了5.6、3.8和4.7个百分点。同时该方法拥有实时处理的能力。
4.1.3. YOLOv11版本对比
在进一步的研究工作中,将把模型升级到YOLOv11进行测试,从对比实验的结果可以看出,其在ECGR峰检测上达到了97.8%的F1分数,相比YOLOv8提高了0.53%的F1分数,其准确率和召回率都有一定的提高;其在PPG峰值检测上取得了96.5%的F1分数,相比YOLOv8有0.5%的F1分数的提高。因为YOLOv11模型比YOLOv8模型在模型稳定性和检测精度上有了更好的表现,说明通过不断更新模型版本迭代优化是有一定效果的。
4.1.4. ECG心律失常分类结果
在MIT-BIH测试集的心律失常分类任务中,YOLO-1D模型表现出良好性能,结果如图3所示。本研究采用两种训练模式进行对比:(1) YOLO-1Dv0利用了分步骤的两阶段训练机制先判断出每一个心动周期的位置,然后再通过这里的全局标签对整个心动周期进行分类;(2) YOLO-1Dv1是整个过程采用了端到端的联合训练方式,直接针对每一个心动周期做分类。
Figure 3. Visualization of arrhythmia classification results
图3. 心律失常分类检查结果可视化
Table 3. ECG arrhythmia classification result data
表3. ECG心律失常分类结果数据
方法 |
准确率 |
宏平均F1 |
微平均F1 |
N类F1 |
S类F1 |
V类F1 |
F类F1 |
Q类F1 |
CNN分类 |
92.3% |
88.5% |
92.1% |
96.2% |
85.3% |
89.1% |
78.5% |
82.9% |
CNN-LSTM |
93.8% |
90.2% |
93.5% |
97.1% |
87.6% |
91.2% |
81.3% |
83.8% |
YOLO-1Dv0 |
94.5% |
91.3% |
94.2% |
97.8% |
88.9% |
92.5% |
83.2% |
84.1% |
YOLO-1Dv1 |
95.2% |
92.6% |
94.9% |
98.1% |
90.1% |
93.8% |
85.5% |
85.3% |
文中表3所测试的所有模型中,YOLO-1D的分类效果最好,在心律失常分类任务上比分阶段训练(v0)多联合学习(v1)准确率、宏平均F1值分别提高了0.7%、1.3%;相对于CNN分类法分别高出2.9%、4.1%。各种类型的心搏识别中,正常心搏(N类)的正确率为最高,达到98.1%;室性异位心搏(V类)、室上性异位心搏(S类)的正确率为93.8%、90.1%;而融合心搏(F类)及未知心搏(Q类)都保持了较高的正确率,均超过85%。
4.1.5. PPI检测任务结果
除了峰值检测任务以外,还针对脉搏间期(Pulse-to-Pulse Interval, PPI)回归任务进行了研究,由于PPG信号既有空间上的局部性又有时序上的依赖性特点,本文设计了一种混合型架构,包括CNN特征提取层、LSTM时序建模层和回归预测层,在8秒的PPI检测任务上,模型平均绝对误差(MAE)为0.42,预测的PPI个数与真实的PPI个数平均间隔时间为1.0 ms,说明能够预测窗口内PPI的个数;从实验结果看,此模型对于8秒窗口的PPI回归具有一定的可行性,但只能得到每个窗口内的平均PPI值,为进一步提高模型精度,后续可将窗口缩小为4 s以内。
4.2. 消融实验结果
为评估YOLO-1D架构中各组件的有效性,本研究开展了系统的消融实验。实验以基础架构为基线,依次引入SPP模块、SEBlock注意力机制及数据增强策略,评估各组件对模型性能的影响,如表4所示。
Table 4. System resulting data of standard experiment
表4. 消融实验结果数据
配置 |
精确率 |
召回率 |
F1分数 |
相对提升 |
基础架构 |
94.2% |
96.1% |
95.1% |
- |
+ SPP模块 |
95.5% |
97.2% |
96.3% |
+1.2% |
+ SEBlock |
96.1% |
97.8% |
96.9% |
+0.6% |
+ 数据增强 |
96.55% |
98.00% |
97.27% |
+0.37% |
消融实验证明,SPP模块能使F1分数提高1.2个百分点(从95.1%提升到96.3%),SEBlock能将F1分数提高0.6个百分点(从96.3%提高到96.9%),增加的数据增强技术可使得F1分数提高0.37个百分点(从96.9%提高到97.27%)。对比基础配置,在完全配置中每项工作对最终结果的贡献都起到正向作用,实现了约2.17个百分点的改进。
4.3. 详细性能分析
MIT-BIH数据库测试结果显示,该算法检测到正确的峰值(TP)共有2456个,误检的峰值(FP)有89个,漏检的峰值(FN)有50个;误检原因:T波/P波误识别为主(50.6%),其次是噪声干扰(36.0%)及基线漂移(13.5%)。漏检主要为R波低振幅(56.0%)、重噪声干扰(30.0%)、快速性心律失常事件(14.0%)为主。不同心律类型的心电图记录上结果,本文算法的F1值如下:正常窦性心律为98.1%,房性心律失常为96.8%,室性心律失常为96.2%,心房颤动为95.5%;PPG信号检测时其准确率为95.8%,假阳性率和假阴性率分别降低到4.2%,3.7%,优于传统的检测方法。
4.4. 计算复杂度与效率分析
YOLO-1D模型只有约5.3 MB (即140万个参数),远小于U-Net (31 MB)、CNN-LSTM (18 MB),且推理速度上,在NVIDIA 4090 GPU上,仅需消耗约100毫秒便可完成单个8s的数据窗口推理,对于心电图(ECG)信号、光电容积脉搏波(PPG)信号的推理速度分别达到了其10倍及8倍;而相比于U-Net (1.5 s)、CNN-LSTM (1 s)而言,若用基于CPU的推理,则需要花费约350 ms。整体上,为了适应心脏运动的变化,YOLO-1D模型占用的推理时间和占用的推理内存分别为100 ms和100 MB;而训练阶段的记忆容量大约为8 GB,平均功率约为150 W。相较于U-net和CNN-LSTM两种模型具有更好的适用性和更高的计算效率,尤其是其模型大小、计算量等,均有所降低。
4.5. 错误案例分析
主要错误模式包括:(1) T波误检(50.6%):将大振幅的T波误认为是R波,可以通过增加T波抑制、融合多导联信号等方式来解决;(2) 低振幅R波漏检(56.0%):使用自适应动态阈值算法以及多尺度特征提取算法;(3) 快速心律失常漏检(14.0%):通过加强时序建模以及搭建专病数据集的方式来进行提高准确率。
5. 结束语
本文提出了一种基于YOLO-1D架构的生物医学信号检测方法,将二维的目标检测算法迁移到一维信号中,并将目标检测中的边界框/中心点/置信度转变为一维时序中对应的时间区间/峰值位置/置信度,实现在一维时序中的多导联心电图(ECG)或光电容积脉搏波(PPG)波形的关键时间点自动检测与分类。在MIT-BIH ECG数据库和PPG数据集上,对ECG R峰检测任务精确率达到了96.55%,召回率为98.00%,F1分数达到了97.27%;在ECG心律失常分类任务上采用联合学习模式(YOLO-1Dv1),得到了准确率95.2%,宏平均F1分数92.6%;对于PPG峰值检测任务,达到的检测精度超过了95%;和YOLOv1_1版本进行对比实验,检测精度得到进一步提高,ECG与PPG的峰值检测F1分数分别达到97.8%与96.5%,证明了模型迭代优化的效果。除了上述PPI回归任务外,我们还测试了PPI检测任务,在8s的时间窗内的PPI检测上得到了MAE为0.42的良好效果。从结果来看,YOLO-1D模型架构在生物医学信号处理方面可以同时满足峰值检测、心律失常分类和PPI回归多任务,能够运用于健康监测智能算法的设计。其优点在于此方法采用端到端训练的方式;有较高的检测精度(基础模型 > 95%,YOLOv11 > 97%);能实现对每一个信号来说是真正的实时处理;兼容不同种类的信号;能够将两种任务合并在一个模型中学习;但也有不足之处:需要高质量的训练数据来训练模型,并且需要GPU来训练模型,即使这样也可能会由于信噪比太小而影响效果;当使用固定的时窗长度对极弱信号的检测较差;模型仅对单个数据集上的性能有较高保证;未来工作方面,主要集中在多模态信号融合、迁移学习方法改进、边缘端部署、异常检测增加、窗口自适应机制、多任务学习框架等方面的研究上。