APP下载

基于Transformer模型的心音小波谱图识别

2023-10-21蒿敬波阳广贤肖湘江

计算机技术与发展 2023年10期
关键词:心音小波阈值

蒿敬波,阳广贤,肖湘江,陶 阳

(1.南昌工学院 信息与人工智能学院,江西 南昌 330108;2.湖南超能机器人,湖南 长沙 410003;3.湖南省儿童医院,湖南 长沙 410007)

0 引 言

儿童先天性心脏病(先心病)的早期筛查十分重要,但是对于医疗资源相对匮乏的偏远地区来说实施起来却比较困难。心音自动分析与模式识别技术[1-3]的发展,特别是深度学习方法的卓越表现,以及多种心音数据库[4-5]的建立,为该问题的解决提供了有力支持。目前国外的3M、Eko和国内的奥图无线等科技公司已经在心音的数字化听诊、无线数据传输和自动分析等方面进行了有效尝试,展现出良好的应用前景和发展潜力。

典型的基于深度学习的心音分类过程如图1所示,该范例从某种程度来讲几乎适用于所有的心音分类应用。受诊者的心音波动可以通过电子听诊器采集并保存为数字化的心音记录,再经过滤波、降采样、截取、归一化、分割等预处理操作,得到干净规整的心音数据。针对心音数据,可以生成人工设计的心音特征表示,如时域、频域或时频域的特征向量、频谱图等。最后利用深度神经网络提取深度语义特征,并根据提取到的特征进行心音分类。

图1 基于深度学习的心音分类过程

心音的采集和预处理技术已经较为成熟,当前研究更多集中于心音分割与心音特征提取上面,而后者正是深度学习技术的优势所在。心音分割旨在确定基础心音(第1心音和第2心音)的位置,对心音特征提取方案的选择具有重要影响。传统的心音分类方案为保证特征提取质量,对心音分割具有较高要求。随着深度学习技术的飞速发展和对应的特征提取能力的显著提升,逐渐趋向于不进行心音分割,以简化操作步骤并避免心音定位错误的不良影响。心音特征提取旨在从心音数据中获取有效信息,形成具有充分表现能力的描述形式,供分类器使用并提升准确率。在分类器设计当中,传统机器学习方法依赖人工的特征生成与特征选择方式来确定最终分类所需特征,而深度学习方法则利用表示学习技术训练深度学习模型,自动从较为原始或较高维度的数据中提取合适的特征。

该文以心音小波谱图作为深度学习模型的输入数据,充分展现了心音的深层时频信息,同时基于最新的Transformer架构深度神经网络,以取得最佳的组合效果。在模型的实际部署中利用了云端的强大算力,快速准确地完成异常心音识别任务,助力儿童先心病的早期筛查。

1 相关工作

1.1 心音特征表示

心音数据是一种非平稳时间序列,可根据实际情况采用时域、频域或时频分析方法进行心音数据建模,并由此决定适合提取的心音特征,具体示例如表1所示。

表1 心音特征示例

基于传统机器学习的心音分类模型,如逻辑回归、随机森林和支持向量机等,通常需进行心音分割,采用压缩的特征向量,有效信息损失较多;基于深度学习的心音分类模型,集深度特征提取与分类功能于一体,可以直接输入原始心音数据或高分辨率的频谱图像,从而保留了绝大多数有效信息。

1.2 深度学习图像分类

执行效率与分类准确率之间的平衡一直是基于深度学习的图像分类应用所面临的关键问题,为此发展出了一系列深度学习分类模型。

AlexNet[15]网络是第一种为人熟知的卷积神经网络(Convolutional Neural Network,CNN)分类模型,包含五个卷积层和三个全连接层,引入了随机失活、修正线性单元、重叠池化和局部响应归一化等新技术。VGG[16]网络通过改用较小的3×3卷积核并同时增加网络深度到最高19层,取得了明显的性能提升。ResNet[17]网络利用深度残差结构克服了CNN的深度退化问题,使得网络深度最大可以达到152层,并且引入批归一化来加快训练速度,获得了里程碑式的分类效果。

近年来,Transformer模型架构在自然语言处理领域取得了巨大成功,并且开始逐渐向机器视觉领域转移[18]。Transformer模型的两个关键技术优势在于自注意力[19]和预训练机制,其中最为核心的自注意力机制对于机器视觉任务来说尤显重要,特别是音频信号这类时序数据的谱图分析。

2 系统设计

2.1 总体流程

为了实现兼顾便利性、实时性和准确性的儿童异常心音识别,系统开发的总体流程如图2所示。

图2 总体开发流程

系统开发流程可以分为三个主要阶段,第一阶段是心音数据的处理,第二阶段是心音分类模型的构建,第三阶段是应用系统的部署。

2.2 数据处理

临床惯用心音听诊部位有五个,包括:二尖瓣区,心尖搏动最强点,位于左锁骨中线内侧第五肋间处;肺动脉瓣区,位于胸骨左缘第二肋间;主动脉瓣区,位于胸骨右缘第二肋间;主动脉瓣第二听诊区,位于胸骨左缘第三肋间;三尖瓣区,位于胸骨左缘第四、五肋间。不同听诊区适于不同心脏疾病的诊断,因此在进行心音采集时,由专业医生判定对应的心音属于正常还是异常心音,选定一个听诊部位,利用电子听诊器采集15~20秒左右心音信号并保存为MP3文件,形成心音数据集,按照5∶2∶3的大致比例分为训练集、验证集与测试集。

读取训练集和验证集中的每个音频文件,削平万分之五的异常峰值。

使用3阶巴特沃斯滤波器进行带通滤波,截止频率分别为20 Hz和500 Hz。巴特沃斯滤波器又称最大平坦滤波器,其特点是通频带内的频率响应曲线最大限度平坦,而在阻频带则逐渐下降为零。1阶巴特沃斯滤波器的衰减率为每倍频6分贝,2阶巴特沃斯滤波器的衰减率为每倍频12分贝,3阶巴特沃斯滤波器的衰减率为每倍频18分贝,依此类推。由于该滤波器设计和实现简单,性能方面又没有明显缺限,因而在工程领域得到了广泛应用。

使用Sinc插值方法进行数据重采样,将心音数据的采样率降为2 000。Sinc插值算法是一种从离散实信号构造时间连续带限函数的方法,是信号处理领域常用的插值补间算法,广泛用于振动信号及图形信号的拟合。Sinc插值在频域表现为一个只保留奈奎斯特频率以下的理想低通滤波器,重建的信号更符合大部分的自然信号规律。

使用BayesShrink阈值估计方法进行小波去噪。基于离散小波变换的去噪方法可在降低噪声的同时较好地保持信号细节,最常见的方法是阈值去噪法,而阈值估计是其中的关键步骤。目前常用的小波阈值包括VisuShrink阈值、SUREShrink阈值、GCV阈值和BayesShrink阈值等。BayesShrink阈值考虑了原始信号小波系数的广义高斯分布的先验信息,因此估计的阈值误差更小。这里选用db6小波,不仅去噪效果良好,同时信号有效成分也可以得到最大限度的保留。

以8 000为帧长(对应4秒时长心音片段),4 000为步长,从心音数据居中位置得到5个数据帧。全部数据帧统一进行标准化处理,将数据取值限制在区间[-1,1]。

基于Hilbert变换进行心音包络检查。Hilbert变换是开展信号包络分析的常用方法,首先将原始信号转变为复解析信号,再将复信号的模作为信号包络。对于每帧心音数据,由上式可以得到对应的Hilbert包络。取每秒内包络峰值(共4个)平均值的40%作为心跳阈值,以1 000为窗口长度进行移动,若窗口内最大值超过阈值则记为一次心跳,从而可以求得每帧数据对应的心跳数,进而可以推算出每分钟的心率,而5个数据帧对应的结果平均后即可作为参考心率。若得到的参考心率小于30或大于240,则认为该数据有效,否则为无效数据,以避免劣质音频数据的影响。

由每帧数据生成一个复Morlet小波谱图。连续小波变换(Continuous Wavelet Transform,CWT)是刻画心音等非平稳信号时频特征的有力工具,其他经典的时频分析工具通常基于短时傅里叶变换(Short-Time Fourier Transform,STFT),其时频分析窗口大小固定,在时间分辨率与频率分辨率上难以取得理想的平衡。小波分析将信号分解成一系列小波函数的叠加,这些小波函数是由一个母小波函数通过平移与尺度伸缩得来。利用小波函数既可以去逼近那些非稳态信号中尖锐变化的部分,也可以去逼近离散不连续具有局部特性的信号,从而更为真实地反映原信号在某一时间尺度上的变化。实际当中通常希望得到平滑连续的小波振幅,非正交小波函数较为合适,而要同时得到振幅和相位信息,还需选择复数小波,因为复数小波具有虚部,可对相位进行描述。复Morlet小波兼具以上两种特性,故这里选用复Morlet小波。

复Morlet小波的时域表达式如下所示:

(1)

其中,fb为带宽参数,决定了波形振荡的快慢程度,fc为中心频率,决定了波形振荡频率。

针对某个模态分量fi修正后的小波的时间和频率分辨率如下式所示,其中fs为采样频率。可通过调整fc与fb来改变Morlet小波变换的时频分辨率。

这里参数选取fc=0.5,尺度规模为128,利用小波工具包PyWavelets所提供的CWT函数进行复Morlet小波变换,然后基于时间、频率和小波系数模值来绘制每帧心音数据对应的等高线图,可以得到RGB格式的小波谱图。

2.3 模型构建

心音分类模型的设计借鉴了经典的卷积神经网络ResNet,同时为充分利用心音小波谱图当中的上下文信息,特别引入了Transformer架构中的自注意力模块[20](Self-Attention Block,SAB),其基本结构如图3所示。给定一个输入特征图X,尺寸大小为H×W×C(分别对应高度、宽度和通道数),通过内嵌矩阵(WK,WQ,WV),通过1×1卷积计算得到键K=XWK、查询Q=XWQ和值V=XWV,可以计算得到自注意力特征图Y=(Softmax(QKT)V)W。

图3 自注意力模块

完整的分类模型网络结构如表2所示,通过在经典的残差卷积网络组件中引入自注意力模块SAB,可以有效提升模型的特征提取能力。分类模型的输入图像尺寸设定为256×256。

表2 分类模型网络结构

2.4 系统部署

为提供高可靠性快速响应的心音识别服务,基于XMLRPC协议和Redis队列来实现并发心音识别服务,其整体架构如图4所示。

图4 并发心音识别服务架构

心音识别的客户端与服务端之间通过XMLRPC协议进行数据通信与服务调用。XMLRPC是一个远程过程调用的分布式计算协议,通过XML格式封装函数调用,并使用HTTP协议作为传送机制。心音识别服务中最耗时的部分在于心音数据的处理步骤,而分类模型的推理速度在GPU环境下不足数据处理耗时的十分之一。因此可将数据处理模块独立封装,以多进程形式并发执行,并基于Redis队列与分类模型推理模块进行高速交互,可以显著提高后台服务的整体响应速度。此外,数据处理模块的进程数量可以直接扩展,无需任何额外配置操作,部署十分方便。

3 实验分析

3.1 数据集

训练集和验证集共包含医院现场采集的400余个音频文件,正常和异常心音各半。读取包含的全部音频文件,利用上述数据处理操作得到对应的小波谱图形式的训练和验证数据集,效果如图5所示。

图5 心音小波谱图

测试集由200个同样在医院现场采集的,与训练和验证集不存在交叠的音频文件所组成,正常和异常心音各半。

3.2 实验环境

训练心音分类模型时,硬件环境为NVidia GTX 1070显卡,软件环境为Tensorflow GPU 2.3版,模型训练时选取批处理尺寸为16,训练策略为自适应动量估计法,损失函数为交叉熵,最大训练轮数为1 000,输入图像无需数据增强(非自然图像),选择验证准确率最高(100轮内未出现提升)的模型为最优分类模型。

3.3 评价指标

对于心音分类模型,通常采用敏感性(Sensitivity,Se)、特异性(Specificity,Sp)和平均准确率(Mean Accuracy,MAcc)等指标进行性能评价。这里定义TP为预测为正(P)且预测正确(T)的数目,TN为预测为负(N)且预测正确(T)的数目,FP为预测为正(P)但预测错误(N)的数目,FN为预测为负(N)但预测错误(N)的数目。

Se表示预测为正且预测正确的数目占实际正样本总数的比例,具体如下式所示:

(3)

Sp表示预测为负且预测正确的数目占实际负样本总数的比例,具体如下式所示:

(4)

MAcc表示所有类别的平均准确率,对于二分类模型来说如下式所示:

(5)

3.4 测试结果

测试结果表明,对于医院现场环境下采集的心音数据测试集,Se为0.90,Sp为0.85,平均准确率达到87.5%。

利用PhysioNet 2016竞赛的心音数据集与竞赛结果[1],与文中识别方法进行了对比测试,测试结果如表3所示。

表3 对比测试结果

测试结果表明,文中识别方法不仅明显优于已有方法,同时针对现场复杂环境下的心音识别任务,也能达到较为理想的结果。

4 结束语

该文提出了一种基于小波谱图与深度神经网络的心音识别方法,主要实现了基于心音包络检查的心音数据质量评估技术、心音数据的复Morlet小波谱图生成技术、基于Transformer架构的深度学习分类模型构建技术和基于XMLRPC协议与Redis队列的并发心音识别服务的部署技术。具备运算资源占用较少、模型迭代能力强、服务响应时间短、可扩展性好等显著优点。基于该方法的应用系统已准备部署到儿童晨检机器人产品上,从而真正实现应用落地。在后续研究当中,考虑心音数据采集方案的进一步改进和心音分类模型的继续优化,以便尽早实现儿童先心病的智能化早期筛查。

猜你喜欢

心音小波阈值
构造Daubechies小波的一些注记
基于MATLAB的小波降噪研究
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
基于双阈值的心音快速分段算法及其应用研究
双声道心音能量熵比的提取与识别研究
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
比值遥感蚀变信息提取及阈值确定(插图)
基于香农熵的心音信号检测方法研究
室内表面平均氡析出率阈值探讨