预处理& DWT
由于FHS和各种病理声的频率范围在500hz以下[5],因此将信号从8khz降采样到1khz。信号幅度归一化如下:
数据集里面的信号的长度从1.15秒到3.99秒。经过观察,发现每个样本大约由三个心动周期组成。在识别信号的开始和偏移后,将信号调整为相等长度(2800个样本)。最终得到了归一化后的信号:
再使用DWT将信号分解为低频和高频分量。对高频分量进行下采样,再分解为低频分量和高频分量。
心音信号以coif5为母小波分解为5级,得到的5个详细电平系数和近似电平信号如图所示。
然后排列成一维数组,长度为2942,送入1D-CNN。
1D-CNN
CNN模型由5层组成,1个输入层,2个卷积和池化层,1个全连接(FC)层和1个输出层(softmax)。
使用50个epoch,每个epoch 9次迭代,总共迭代450次,学习率为0.01。批大小为64。
结果
使用Yaseen GitHub数据集,该数据集有1000个样本,每200个样本分为5类,包括主动脉瓣狭窄(AS)、二尖瓣反流(MR)、二尖瓣狭窄(MS)、二尖瓣脱垂(MVP)和正常(N)。每个样本的采样频率设置为1khz,采样长度为2800个样本。完整数据集随机分为训练(70%)和测试(30%)数据集。
测试集混淆矩阵如下:
可以看到该模型能有效地对所有类别进行分类。5个类的F-score在98.18%以上。MR和N的F-score都在99%以上。
除a类的准确率为97.73%外,其余4个指标的准确率均高于98%。这5个类别都达到了高灵敏度(>98%)和高特异性(>99%)。
SOTA比较
使用该方法获得了最高的准确率(98.9%)。
论文地址:
https://avoid.overfit.cn/post/de8b9cc055a34f2fb9fa3c1e509e169b