一种心音段完整性判断模型及心音自适应分段方法与流程
本发明涉及心音信号分析技术领域,具体是一种心音段完整性判断模型及基于该模型的心音自适应分段方法。
背景技术:
目前,心血管疾病是危害人类健康的主要疾病之一。人们可以通过健康的生活方式来预防心血管疾病,通过定期预防性检查及时发现早期病症并及时予以干涉。心血管疾病的早期检查主要通过人工听诊进行。听诊是一种检查心脏疾病的有效手段,相较于超声心动图,更加灵活、简单。心音信号包含心血管的生理和病理信息,通过听诊,专业医师可以给出初步诊断结果。然而准确的听诊需要医师具有比较丰富的临床经验或者经过充分的培训,据统计,只有20%的实习生可以通过听诊有效地检查心脏情况。
为此,人们推动了心音听诊信号自动诊断的研究,而自动诊断的第一步就是心音定位与分段,准确的定位与分段可以为后续工作奠定良好的基础。心音听诊信号是心脏振动产生的声音,主要包含第一心音s1、收缩期、第二心音s2、舒张期,如图1所示,其中,s1是一种持续时间较长的低音,s2是一种持续时间较短的高音。在正常情况下,收缩期短于舒张期,在病理和非病理条件下,心音图(pcg)信号可能包括第三心音s3、第四心音s4、杂音和其他异常声音,例如周围的敲击声、说话声以及心脏瓣膜老化等产生的声音,并且一些相关疾病可能导致s2的消失、音律不齐等问题,这些复杂情况更增加了心音定位与分段的难度。
现有电子听诊器中的心音自动定位与分段主要采用以下方式:
1、基于心音波形的心音定位与分段
国家知识产权局于2017年2月15日公告授权的发明专利cn104688213b公开了一种心音信号分段方法,基于心音波形进行心音定位与分段。第一步是对波形进行滤波,然后计算阈值,通过该阈值得到心音信号;第二步是对心音信号进行校正,合并峰峰值距离较小的心音信号;第三步是筛选掉第一心音中间距较大或者较小的点,然后对筛选之后的各点求中位数,作为心音的周期长度,只保留长短在周期中位数附近的周期。
2、基于心音包络的定位与分段
国家知识产权局于2020年8月14日公布的发明专利申请cn111528900a公开了一种基于巴特沃斯滤波器与香农熵法的心音分段方法。首先通过巴特沃斯滤波器对初始心音信号进行滤波,然后提取香农熵包络,接着通过预设的第一阈值与第二阈值提取第一心音s1与第二心音s2,最后通过s1与s2的起终点进行分段。
z.alireza等人在发表的论文《heartsoundsegmentationbasedonrecurrencetimestatistics》中,结合包络与k-means算法进行心音的定位与分段。首先通过希尔伯特变换提取心音包络,并测量包络峰点之间的时间间隔,再利用k-means算法对数据进行聚类,并提取统计信息,接着指定信号中的参考点,最后利用参考点和统计信息对心音信号进行分段。
3、基于隐马尔可夫模型hmm的心音定位与分段
schmidt等人在发表的论文《segmentationofheartsoundrecordingsfromanelectronicstethoscopebyadurationdependenthiddenmarkovmodel》利用隐半马尔可夫模型hsmm进行心音分段,该模型扩展了传统的隐马尔可夫模型,因为它的持续时间分布函数是通过高斯分布来建模的,而不是通过传统的几何分布来近似,此外,它通过同态滤波包络图的自相关分析估计收缩期和舒张期持续时间参数。
springer等人发表的论文《logisticregressionhsmm-basedheartsoundsegmentation》中对schmidt等人的方法进行了进一步改进,通过逻辑回归对发射概率进行估计,得到每一点的状态值,再根据状态值定位出s1、s2的起终点,最后分段出心音周期。
综合上述三种心音定位与分段方法,现有技术主要集中于传统机器学习与模式识别,少数涉及深度学习中较为简单的技术应用,均存在以下缺点:1、对于环境噪声干扰比较大的应用场景,传统方法的鲁棒性不高,无法有效工作;2、传统方法需要先验给定或者计算出收缩期与舒张期的固定间隔长度,然而在患者存在心率不齐问题的情况下,此间隔是无规律的,导致无法准确进行心音定位与分段;3、部分患者可能出现主要心音成分消失的问题,例如主动脉瓣狭窄可能导致s2消失,这样基于定位s1与s2进行分段的方法也将失效。
近年来,随着深度学习技术的不断发展,各种网络模型、调优技术层出不穷,其中卷积神经网络不仅在图像处理上,在一维时序信号的处理上也非常高效。基于卷积神经网络可以得到比传统方法更加深层的特征信息,利用这些信息,可以准确地定位出主要心音的位置。但是在心音分段问题上,主要还是利用传统方法。如何利用卷积神经网络实现心音听诊信号的自动定位与分段,是一个值得研究的课题。
技术实现要素:
针对现有心音定位与分段技术中的缺陷,本发明提供一种心音段完整性判断模型及基于该模型的心音自适应分段方法。
本发明保护一种心音段完整性判断模型,向该模型输入预处理后的心音数据,得到该心音数据的每一个心音段是否完整的结论,该模型通过以下步骤构建:
1、收集大量心音数据,包括正常人心音数据、主动脉患者心音数据;
2、收集的心音数据进行人工分段,并对每一个心音段是否完整进行人工标注,完整心音段为正样本,不完整心音段为负样本;
3、利用分段并标注的心音数据训练1d-cnn网络,即得到完整性判断模型。
进一步的,1d-cnn网络依次包括通过卷积层搭配池化层构造的四层中间隐藏层、flatten层、输出层。
本发明还保护一种基于上述模型的心音自适应分段方法,包括以下步骤:
1、对待分段心音数据进行降采样、带通滤波、归一化处理,降采样fs=8khz,带通滤波采用通带为25-600hz的butterworth带通滤波器;
2、通过香农熵提取心音包络;
3、低通滤波平滑包络,低通滤波采用6阶butterworth低通滤波器,截止频率400hz;
4、寻找锚点,设定锚点阈值,寻找包络中大于该锚点阈值的极大值点,标定为锚点;
5、基于锚点生成预选框,对于每个锚点分别生成0.4、0.5、0.6三个时间长度的预选框,并且对于每个时间长度分别生成三个不同位置的预选框,分别对应可能存在锚点的位置:s1、收缩期、s2;
6、通过完整性判断模型筛选完整心音段的预选框,将所有预选框输入心音段完整性判断模型,筛选出完整心音段的预选框;
7、通过均值漂移聚类算法对完整心音段的预选框进行聚类,得到每个心音周期的中心点,并对完整心音段的所有预选框的长度求均值,得到心音周期的自适应心音段长度suitsize;
8、设定干扰阈值,筛选所有完整心音段的预选框,若某预选框的中点与离他最近的聚类中心的距离大于该干扰阈值,则删除该预选框,然后返回步骤7,直至不存在干扰预选框;
9、以步骤7得到的聚类中心为中点,suitsize为心音长度分割心音段。
本发明先通过深度学习模型筛选出心音数据中的完整心音段,避免不完整心音段对心音分段带来的干扰,然后通过预选框聚类及干扰去除,实现心音周期的准确定位与分段。
附图说明
图1为心音波形示意图
图2为1d-cnn网络结构图;
图3中(a)-(c)为完整心音段样本,(d)-(f)为不完整心音段样本;
图4为锚点示意图;
图5中(a)-(c)分别为提取锚点偏左、居中、偏右的预选框示意图;
图6为均值漂移聚类算法过程示意图;
图7为心音数据分段示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
心音数据中存在的不完整心音段直接影响了心音分段结果,为此,本发明提供一种可自动识别心音段完整与否的模型。由于心音数据是典型的时间序列数据,因此宜通过1d-cnn网络进行心音数据的深层特征提取与是否完整的分类。
本实施例通过卷积层搭配池化层(最大池化)构造四层中间隐藏层,然后通过flatten层连接输出层,如图2所示,其中@符号前面是单个通道的特征面大小,后面表示通道数。激活函数采用relu,输出层通过sigmoid函数输出心音数据中的每个心音段的完整性概率,例如[0,1]表示心音段xi完整,[1,0]表示心音段xi不完整。
确定使用的网络模型后,通过大量心音数据及其对应的标注结果对该网络模型进行训练并优化,得到心音段完整性判断模型。
训练过程中使用的心音数据,应当包含完整心音段正样本和各种不完整心音段负样本,以保证网络训练的有效性。参照图3所示,其中位于左列的(a)、(b)、(c)为完整心音段的正样本,位于右列的(d)、(e)、(f)为不完整心音段的负样本,其中(d)为只包含s1的情况,(e)为只包含s2的情况,(f)为包含了不同心音周期的心音成分,即包含了前一个心音周期的s2与后一个心音周期的s1。
本实施例中,标准差为0.1的截断正态分布作为参数的初始权重;网络训练过程中同时使用adam优化、dropout学习以及l2正则化,这些技术手段在现有技术中均有介绍,在此不再赘述。
实施例2
一种心音自适应分段方法,包括以下步骤:
1、待分段心音数据预处理
对待分段心音数据进行降采样、带通滤波、归一化处理,降采样fs=8khz,带通滤波采用通带为25-600hz的butterworth带通滤波器。
2、通过香农熵提取心音包络
香农熵可以用来测量数据的不确定性,数据的不确定性越大,其香农熵越大,因此通过香农熵可以对心音成分和其他成分进行分类,从而定位出心音成分。此部分可参照发明专利申请cn111528900a中的相关部分,这里也不再重复阐述。
3、低通滤波平滑包络
通过香农熵提取的心音包络可能存在一些“毛刺”,为避免这些“毛刺”对后续锚点的选择造成干扰,通过低通滤波平滑包络。在本实施例中,低通滤波采用6阶butterworth低通滤波器,截止频率400hz。
4、寻找锚点
设定锚点阈值,寻找包络中大于该锚点阈值的极大值点,标定为锚点,图4峰值上的小圆点即为得到的锚点。
5、基于锚点生成预选框
为适应不同时间长度的心音周期,本实施例以每个锚点为中心分别提取0.4、0.5、0.6三个时间长度的预选框,并且对于每个时间长度,需要有三个不同位置的预选框,参照5,(a)对应锚点为s1的情况,(b)对应锚点为收缩期杂音的情况,(c)对应锚点为s2的情况,因此,每个锚点生成9个预选框。
6、根据心音段完整性筛选预选框
将所有预选框输入心音段完整性判断模型,筛选出完整心音段的预选框。
7、预选框聚类
采用均值漂移聚类算法对完整心音段的预选框进行聚类,得到每个心音周期的中心点(聚类中心),即定位出每个心音周期的位置,并对识别为完整心音段的所有预选框的长度求均值,得到心音周期的自适应心音段长度suitsize。
均值漂移聚类算法属于现有聚类算法中的一种,主体思想是沿着密度上升方向寻找聚簇点。这里先对均值漂移的基本形式进行简单介绍。
给定d维空间的n个数据点集x,那么对于空间中的任意点x的漂移向量基本形式可以表示为
均值漂移聚类算法简单概括就是求解一个向量,使得圆心一直往数据集密度最大的方向移动,每次迭代时,都是找到圆里面点的平均位置作为新的圆心位置。聚类过程参照图6,具体移动顺序从上到下、从左到右排列,聚类的结果是圆心位置落在了数据点最密集的地方。在本申请中,均值漂移聚类的结果就是选取预选框(中心点)最密集的点作为每个心音周期的中心点。
8、排除干扰预选框
设定干扰阈值,筛选所有完整心音段的预选框,若某预选框的中点与离他最近的聚类中心的距离大于该干扰阈值,则删除该预选框,然后返回步骤7,直至不存在干扰预选框。
9、以步骤8得到的聚类中心为中点,suitsize为心音长度(左右两边各选取suitsize/2)分割心音段。参照图7,框选出来便是包含s1、收缩期、s2的完整心音段,其中圆点为聚类中心,左右各外扩suitsize/2。若外扩最左心音的左边界小于0,则令其左边界为第1个采样点,见图7;同理若最右心音的右边界大于心音数据的长度length,则令其为第length-1个采样点。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除