一种心血管疾病诊断模型的构建方法、系统及该诊断装置转让专利

申请号 : CN201811068147.9

文献号 : CN109300121B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高英罗雄文王锦杰谢林森

申请人 : 华南理工大学

摘要 :

本发明公开了一种心血管疾病诊断模型的构建方法、系统及该诊断模型,该方法包括:构建带标签的侧脸数据集;对级联分类器进行训练,获得耳朵检测模型;分别采用VGG、GoogleNet以及ResNet神经网络模型对耳朵对象进行特征提取;采用空间金字塔对神经网络模型所提取到的耳朵特征进行特征整合,获得每种神经网络模型深度异构特征图;对深度异构特征图进行特征预处理;训练获得SVM分类器模型;将SVM分类器模型以及训练好的三种神经网络模型通过Bagging学习方式进行集成,获得心血管疾病诊断模型。本发明构建的心血管疾病诊断模型可以全面、科学地进行心血管疾病诊断与预测,精度较高,可广泛应用于医学数据的自动化处理领域中。

权利要求 :

1.一种心血管疾病诊断模型的构建方法,其特征在于,包括以下步骤:

S1、批量采集患者的侧脸图像,并为每张侧脸图像添加患病标签以及冠状沟标签后,构建带标签的侧脸数据集;所述患病标签指是否患心血管疾病的标记信息,所述冠状沟标签指耳垂位置是否具有冠状沟的标记信息;

S2、基于侧脸数据集对级联分类器进行训练后,获得用于对侧脸图像进行耳朵对象裁剪分割的耳朵检测模型;

其中,所述级联分类器由多个异质Adaboost强分类器通过串联的方式集成获得,且每个异质Adaboost强分类器均由多个弱分类器通过Boosting的方式集成得到;

S3、分别采用训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型对耳朵对象进行特征提取;

S4、采用空间金字塔分别对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的耳朵特征进行特征整合,获得每种神经网络模型所对应的融合了浅层特征图和深层特征图的深度异构特征图;

S5、分别对三种神经网络模型的深度异构特征图进行特征预处理;

S6、基于预处理后的深度异构特征图,训练获得SVM分类器模型;

S7、将SVM分类器模型以及训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型通过Bagging学习方式进行集成,获得心血管疾病诊断模型;

所述步骤S4中,VGG神经网络模型提取得到的耳朵特征包括5个特征图,所述GoogleNet神经网络模型提取得到的耳朵特征包括3个特征图,所述ResNet神经网络模型提取得到的耳朵特征包括4个特征图,所述步骤S4具体包括:针对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的每个特征图,分别采用自顶向下的方法构造特征金字塔,对具有强语义特征的深层特征图采用双线性插值的方式进行上采样,使其与下一层特征图的大小保持一致,对所有的特征图都使用1×1的卷积核进行降维,使得所有特征图的通道数保持一致,将经过上采样或降维处理后的上下两层特征图相加获得一新的特征图,并将获得的每一个新的特征图继续以同样的方式与下一层特征图相加,最后获得每个神经网络模型的融合了浅层特征图和深层特征图的深度异构特征图。

2.根据权利要求1所述的心血管疾病诊断模型的构建方法,其特征在于,所述步骤S2中,各所述异质Adaboost强分类器均通过以下步骤进行训练:S21、对侧脸数据集中的每张侧脸图像,在标准RGB颜色空间下提取其HOG特征;

S22、对侧脸数据集进行简单随机抽样,抽取多个图像的HOG特征构成该强分类器的抽样数据集;

S23、从抽样数据集中进行Bootstrap随机有放回抽样后,再对特征空间进行简单随机抽样,获得第一训练集和第一测试集,并对抽样数据集中所有样本按照均匀分布和归一化处理进行权重初始化;

S24、根据第一训练集及其每个样本的样本权重,分别训练SVM弱分类器、决策树弱分类器和多层感知机弱分类器三种弱分类器;

S25、针对训练好的三种弱分类器,基于第一测试集及其每个样本的样本权重,计算每个弱分类器的泛化误差后,选择误差最小的弱分类器,并更新该弱分类器在异质Adaboost强分类器中的权重;

S26、根据选择的弱分类器的分类结果,更新抽样数据集中所有样本的样本权重;

S27、将训练获得的所有弱分类器通过线性加权求和的方式进行集成后作为训练好的异质Adaboost强分类器。

3.根据权利要求1所述的心血管疾病诊断模型的构建方法,其特征在于,所述步骤S3中,所述VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型均通过以下步骤进行训练:S31、裁剪获得侧脸数据集中每张侧脸图像的耳朵对象,并获取每个耳朵对象相应的患病标签以及冠状沟标签后,构建耳朵数据集;

S32、将耳朵数据集中按照第一预设比例随机划分为第二训练集和第二测试集;

S33、对第二训练集和第二测试集中的每张耳朵对象进行数据增强处理;

S34、将数据增强处理后的第二训练集中的耳朵对象作为输入数据,患病标签作为主输出数据,冠状沟标签作为辅助输出数据,分别输入到VGG神经网络模型、GoogleNet神经网络模型或ResNet神经网络模型中,进行基于多任务学习的模型训练;

S35、采用数据增强处理后的第二测试集对训练的模型进行准确率验证。

4.根据权利要求3所述的心血管疾病诊断模型的构建方法,其特征在于,所述步骤S33中,所述数据增强处理包括随机角度旋转、水平翻转、噪声扰动以及颜色抖动处理。

5.根据权利要求1所述的心血管疾病诊断模型的构建方法,其特征在于,所述步骤S5,其具体为:分别对三种神经网络模型的深度异构特征图依次进行特征图展平处理、降维处理、特征融合处理和特征筛选处理。

6.根据权利要求5所述的心血管疾病诊断模型的构建方法,其特征在于,所述降维处理采用LGS3DR-CML降维算法;

所述特征筛选处理具体为:采用CIFE算法选取K个影响最大的特征,其中,K为预设的正整数。

7.根据权利要求6所述的心血管疾病诊断模型的构建方法,其特征在于,所述特征融合处理采用一神经网络模型进行处理,该神经网络模型由上到下依次包括三个基本块、拼接层、全连接层、全连接层二、输出层和分类层,其中,每个基本块均独立与拼接层连接,且每个基本块均包括两个全连接层。

8.一种心血管疾病诊断模型的构建系统,其特征在于,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7任一项所述的心血管疾病诊断模型的构建方法。

9.一种心血管疾病诊断装置,其特征在于,所述心血管疾病诊断装置采用权利要求1-7任一项所述的心血管疾病诊断模型的构建方法所创建。

说明书 :

一种心血管疾病诊断模型的构建方法、系统及该诊断装置

技术领域

[0001] 本发明涉及计算机软件技术领域,特别是涉及一种心血管疾病诊断模型的构建方法、系统及该诊断模型。

背景技术

[0002] 现有的人工智能用于心血管疾病检测的模型中,大多数都是针对患者心脏的 X光照片或者心电图进行检测,而要获取这些图片需要经过比较繁琐的过程以及大量专业设备的支持,并且费用高、耗时长。而已有的通过人脸照片进行疾病诊断的方案通常只提取人脸某些区域的特征,如额头、鼻子等,然后使用传统的机器学习算法进行分类,从而基于分类结果来实现诊断。这些位置的特征与特定疾病之间的关系缺乏科学依据,因此正确率较低。
[0003] 目前,科学的研究与统计发现耳朵上的一些特征例如耳垂上的冠状沟与心血管疾病之间有密切关系,因此如何通过耳朵特征来进行心血管疾病诊断,具有极其重要的意义。因此,如何准确地提取获得耳朵特征是较为重要的前提。传统技术采用机器学习方法来提取耳朵特征,但是传统的机器学习方法提取到的特征比较单一,通常只能提取颜色、纹理等简单特征,而且这些特征的提取缺乏导向性,最终得到的特征往往与心血管疾病关联不大,因此无法准确地进行心血管疾病的诊断。
[0004] 名词解释:
[0005] HOG:梯度方向直方图,通过计算和统计图像像素的梯度方向和强度来构成特征,常用于描述图像的局部信息。
[0006] SVM:即支持向量机,一种有监督学习模型,它通常使用核函数将特征向量映射到一个更高维的空间,在这个空间里建立有一个最大间隔的超平面划分样本,使该超平面有较强的抗干扰能力。
[0007] 决策树:一种基本的分类与回归方法。在分类问题中,表示基于特征对实例进行分类的过程,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类的分布。
[0008] 多层感知器:一种前馈人工神经网络模型,通常包含一个输入层、一个输出层以及一个或者多个隐藏层。
[0009] Bagging:一种集成学习方法,在原始训练集的随机子集上构建多个相互独立的弱分类器,使用加权投票的方式把这些分类器的预测结果结合起来形成最终的预测结果,常用于提高学习算法的精确度。
[0010] Adaboost:一种基于Boosting的集成学习算法,训练过程中后续训练的弱学习器会更关注被前面的弱学习器错判的样本,每个弱学习器的权重都可以自适应调整,且弱学习器必须使用样本权重可以调整的机器学习算法。
[0011] opencv:一个开源的计算机视觉库,实现了图像处理和计算机视觉方面很多通用的算法,常用于图像处理、分析。
[0012] sklearn:一个机器学习算法库,囊括了几乎所有的经典机器学习算法,并为用户提供简单高效的接口,是数据挖掘与分析的简单而有效的工具。
[0013] Pillow:是Python平台轻量级的图像处理库,Pillow功能非常强大,但API 却非常简单易用。
[0014] Keras:一个高层神经网络API,Keras由纯Python编写而成并支持Tensorflow、 Theano以及CNTK作为后端,为用户编程提供一致而简洁的API。
[0015] Bootstrap:是以原始数据为基础的模拟抽样统计推断法,其基本思想是:在原始数据的范围内作有放回的再抽样,使得新样本容量仍为n。
[0016] 卷积神经网络:一种常用于处理网格状数据的深度神经网络,多用在图像处理领域,包括图像分类、图像特征提取、图像合成等等。
[0017] GoogleNet:卷积神经网络的一种模型,其中包含多个Inception模块,通过增加网络的宽度和深度来提高网络性能。
[0018] Inception:GoogleNet中的一种结构,内含多个不同大小的卷积核,在多个尺度上同时进行卷积,从而提取到不同尺度的特征。
[0019] ResNet:即残差神经网络,其中若干个卷积层构成一个残差单元,每个残差单元的输出都会与下一个残差单元的输出进行相加再继续传递,从而避免深度网络的退化问题。
[0020] FPN金字塔模型:一种融合不同层次特征图的方法,通过1×1的卷积、上采样和特征图累加等方式实现对不同层次特征的整合。
[0021] LLE降维:是一种非线性降维算法。LLE算法认为每一个数据点都可以由其近邻点的线性加权组合构造得到,并希望降维后也保持这种关系,从而使降维后的数据较好地保持原有流形结构。

发明内容

[0022] 为了解决上述的技术问题,本发明的目的是提供一种心血管疾病诊断模型的构建方法、系统及该诊断模型。
[0023] 本发明解决其技术问题所采用的技术方案是:
[0024] 本发明一方面提供了一种心血管疾病诊断模型的构建方法,包括以下步骤:
[0025] S1、批量采集患者的侧脸图像,并为每张侧脸图像添加患病标签以及冠状沟标签后,构建带标签的侧脸数据集;所述患病标签指是否患心血管疾病的标记信息,所述冠状沟标签指耳垂位置是否具有冠状沟的标记信息;
[0026] S2、基于侧脸数据集对级联分类器进行训练后,获得用于对侧脸图像进行耳朵对象裁剪分割的耳朵检测模型;
[0027] 其中,所述级联分类器由多个异质Adaboost强分类器通过串联的方式集成获得,且每个异质Adaboost强分类器均由多个弱分类器通过Boosting的方式集成得到;
[0028] S3、分别采用训练好的VGG神经网络模型、GoogleNet神经网络模型以及 ResNet神经网络模型对耳朵对象进行特征提取;
[0029] S4、采用空间金字塔分别对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的耳朵特征进行特征整合,获得每种神经网络模型所对应的融合了浅层特征图和深层特征图的深度异构特征图;
[0030] S5、分别对三种神经网络模型的深度异构特征图进行特征预处理;
[0031] S6、基于预处理后的深度异构特征图,训练获得SVM分类器模型;
[0032] S7、将SVM分类器模型以及训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型通过Bagging学习方式进行集成,获得心血管疾病诊断模型。
[0033] 进一步,所述步骤S2中,各所述异质Adaboost强分类器均通过以下步骤进行训练:
[0034] S21、对侧脸数据集中的每张侧脸图像,在标准RGB颜色空间下提取其HOG 特征;
[0035] S22、对侧脸数据集进行简单随机抽样,抽取多个图像的HOG特征构成该强分类器的抽样数据集;
[0036] S23、从抽样数据集中进行Bootstrap随机有放回抽样后,再对特征空间进行简单随机抽样,获得第一训练集和第一测试集,并对抽样数据集中所有样本按照均匀分布和归一化处理进行权重初始化;
[0037] S24、根据第一训练集及其每个样本的样本权重,分别训练SVM弱分类器、决策树弱分类器和多层感知机弱分类器三种弱分类器;
[0038] S25、针对训练好的三种弱分类器,基于第一测试集及其每个样本的样本权重,计算每个弱分类器的泛化误差后,选择误差最小的弱分类器,并更新该弱分类器在异质Adaboost强分类器中的权重;
[0039] S26、根据选择的弱分类器的分类结果,更新抽样数据集中所有样本的样本权重;
[0040] S27、将训练获得的所有弱分类器通过线性加权求和的方式进行集成后作为训练好的异质Adaboost强分类器。
[0041] 进一步,所述步骤S3中,所述VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型均通过以下步骤进行训练:
[0042] S31、裁剪获得侧脸数据集中每张侧脸图像的耳朵对象,并获取每个耳朵对象相应的患病标签以及冠状沟标签后,构建耳朵数据集;
[0043] S32、将耳朵数据集中按照第一预设比例随机划分为第二训练集和第二测试集;
[0044] S33、对第二训练集和第二测试集中的每张耳朵对象进行数据增强处理;
[0045] S34、将数据增强处理后的第二训练集中的耳朵对象作为输入数据,患病标签作为主输出数据,冠状沟标签作为辅助输出数据,分别输入到VGG神经网络模型、GoogleNet神经网络模型或ResNet神经网络模型中,进行基于多任务学习的模型训练;
[0046] S35、采用数据增强处理后的第二测试集对训练的模型进行准确率验证。
[0047] 进一步,所述步骤S33中,所述数据增强处理包括随机角度旋转、水平翻转、噪声扰动以及颜色抖动处理。
[0048] 进一步,所述步骤S4中,VGG神经网络模型提取得到的耳朵特征包括5个特征图,所述GoogleNet神经网络模型提取得到的耳朵特征包括3个特征图,所述ResNet神经网络模型提取得到的耳朵特征包括4个特征图,所述步骤S4具体包括:
[0049] 针对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的每个特征图,分别采用自顶向下的方法构造特征金字塔;
[0050] 对具有强语义特征的深层特征图采用双线性插值的方式进行上采样,使其与下一层特征图的大小保持一致;
[0051] 对所有的特征图都使用1×1的卷积核进行降维,使得所有特征图的通道数保持一致;
[0052] 将经过上采样或降维处理后的上下两层特征图相加获得一新的特征图,并将获得的每一个新的特征图继续以同样的方式与下一层特征图相加,最后获得每个神经网络模型的融合了浅层特征图和深层特征图的深度异构特征图。
[0053] 进一步,所述步骤S5,其具体为:
[0054] 分别对三种神经网络模型的深度异构特征图依次进行特征图展平处理、降维处理、特征融合处理和特征筛选处理。
[0055] 进一步,所述降维处理采用LGS3DR-CML降维算法;
[0056] 所述特征筛选处理具体为:采用CIFE算法选取K个影响最大的特征,其中, K为预设的正整数。
[0057] 进一步,所述特征融合处理采用一神经网络模型进行处理,该神经网络模型由上到下依次包括三个基本块、拼接层、全连接层、全连接层二、输出层和分类层,其中,每个基本块均独立与拼接层连接,且每个基本块均包括两个全连接层。
[0058] 本发明另一方面提供了一种心血管疾病诊断模型的构建系统,包括:
[0059] 至少一个处理器;
[0060] 至少一个存储器,用于存储至少一个程序;
[0061] 当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如本发明所述的心血管疾病诊断模型的构建方法。
[0062] 本发明另一方面提供了一种心血管疾病诊断模型,所述心血管疾病诊断模型采用本发明所述的心血管疾病诊断模型的构建方法所创建。
[0063] 本发明的有益效果是:本发明通过训练获得用于对侧脸图像进行耳朵对象裁剪分割的耳朵检测模型后,采用训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型对耳朵对象进行特征提取,从而基于三种神经网络模型所提取的不同的耳朵特征进行融合处理,可以更加全面地提取耳朵特征,而且最后SVM分类器模型以及训练好的VGG神经网络模型、GoogleNet 神经网络模型以及ResNet神经网络模型通过Bagging学习方式进行集成后获得心血管疾病诊断模型,使得该模型可以全面、科学地进行心血管疾病诊断与预测,精度较高。

附图说明

[0064] 图1是本发明的一种心血管疾病诊断模型的构建方法的流程图;
[0065] 图2是本发明具体实施例中级联分类器的内部结构示意图;
[0066] 图3是本发明具体实施例中异质Adaboost强分类器的训练过程示意图;
[0067] 图4是本发明具体实施例中对神经网络模型提取的耳朵特征进行特征整合的原理示意图;
[0068] 图5是本发明具体实施例中进行特征融合所采用的神经网络模型的结构示意图;
[0069] 图6是本发明所建立的心血管诊断模型的结构示意图;
[0070] 图7是本发明的一种心血管疾病诊断模型的构建系统的结构框图。

具体实施方式

[0071] 参照图1,本发明第一实施例提供了一种心血管疾病诊断模型的构建方法,包括以下步骤:
[0072] S1、批量采集患者的侧脸图像,并为每张侧脸图像添加患病标签以及冠状沟标签后,构建带标签的侧脸数据集;其中,侧脸图像为标注了耳朵对象的图像;所述患病标签指是否患心血管疾病的标记信息,所述冠状沟标签指耳垂位置是否具有冠状沟的标记信息;具体的,患病标签以及冠状沟标签可以用“是”、“否”来表示,也可以用“1”、“0”来表示是与否,后者更符合计算机数据处理规律;
[0073] S2、基于侧脸数据集对级联分类器进行训练后,获得用于对侧脸图像进行耳朵对象裁剪分割的耳朵检测模型;
[0074] 其中,参照图2所示,所述级联分类器由多个异质Adaboost强分类器通过串联的方式集成获得,且每个异质Adaboost强分类器均由多个弱分类器通过 Boosting的方式集成得到;图2中,共有n个异质Adaboost强分类器;
[0075] S3、分别采用训练好的VGG神经网络模型、GoogleNet神经网络模型以及 ResNet神经网络模型对耳朵对象进行特征提取;
[0076] S4、采用空间金字塔分别对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的耳朵特征,获得每种神经网络模型所对应的融合了浅层特征图和深层特征图的深度异构特征图;
[0077] S5、分别对三种神经网络模型的深度异构特征图进行特征预处理;
[0078] S6、基于预处理后的深度异构特征图,训练获得SVM分类器模型;
[0079] S7、将SVM分类器模型以及训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型通过Bagging学习方式进行集成,获得心血管疾病诊断模型。
[0080] 步骤S7在集成过程中,SVM分类器模型以及训练好的VGG神经网络模型、 GoogleNet神经网络模型以及ResNet神经网络模型按照各自训练过程采用测试集验证获得的准确率赋予不同的权重。
[0081] 本发明通过训练获得用于对侧脸图像进行耳朵对象裁剪分割的耳朵检测模型后,采用训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet 神经网络模型对耳朵对象进行特征提取,从而基于三种神经网络模型所提取的不同的耳朵特征进行融合处理,可以更加全面地提取耳朵特征,而且最后SVM分类器模型以及训练好的VGG神经网络模型、GoogleNet神经网络模型以及ResNet 神经网络模型通过Bagging学习方式进行集成后获得心血管疾病诊断模型,使得该模型可以全面、科学地进行心血管疾病诊断与预测,精度较高。
[0082] 步骤S1中,所采集的所有侧脸图像均通过高分辨率的数码摄像设备在相同的角度、相同距离下拍摄,对于每张照片上的患者,都经过专业医护人员和相应医疗设备诊断其是否患有心血管疾病,因此每张照片都会附有患者是否患患心血管疾病的标记信息,即患病标签。接着使用opencv的annotation工具给耳朵对象打上标签,同时,由于耳朵上的冠状沟与心血管疾病有着很大的关系,本发明在侧脸照上标注耳朵对象的同时还需要对每个耳朵是否有冠状沟打上冠状沟标签,用于后面阶段的多任务学习。
[0083] 接下来,在每张侧脸照上使用opencv工具自动截取出上一步骤标注的耳朵区域构成耳朵数据集的正类,对于非耳朵对象的区域,由于背景的变化比耳朵区域复杂,所以需要进行背景重采样来获得更丰富的背景区域,增加分类器对背景的识别率,所有的背景区域构成耳朵数据集的负类。
[0084] 进一步作为优先的实施方式,参照图3所示,所述步骤S2中,各所述异质 Adaboost强分类器均通过以下步骤进行训练:
[0085] S21、对侧脸数据集中的每张侧脸图像,在标准RGB颜色空间下提取其HOG 特征;具体的,在提取HOG特征之前,对每张侧脸图像,均使用opencv的高斯滤波器进行去噪,然后使用下采样的方式压缩到统一的像素大小后,再执行本步骤进行HOG特征提取。提取原理如下:HOG使用梯度算子计算图像像素的梯度信息,选择合适的组距后在直方图中统计不同方向上的梯度总强度,对所有分组的统计结果进行编码即可得到HOG特征。通过像素的梯度变化,HOG可以很好地捕捉局部区域的边缘,有利于把耳朵区域从背景中区分出来,这样所有图片的 HOG特征就构成了耳朵检测模型的训练集。
[0086] S22、对侧脸数据集进行简单随机抽样,抽取多个图像的HOG特征构成该强分类器的抽样数据集;在对侧脸数据集进行简单随机抽样的过程中,一般抽取 3/4的样本构成抽样数据集;
[0087] S23、从抽样数据集中进行Bootstrap随机有放回抽样后,再对特征空间进行简单随机抽样,获得第一训练集和第一测试集,并对抽样数据集中所有样本按照均匀分布和归一化处理进行权重初始化;基于Bootstrap的随机有放回抽样后,将从抽样数据集中采样得到的数据作为第一训练集,剩下未被抽到的数据作为第一测试集,本抽样方式,去除训练集中的重复样本后,大概会抽样获得2/3的数据作为第一训练集。需要注意,训练每个强分类器的弱分类器之前都要对该强分类器的抽样数据集的样本进行Bootstrap随机有放回抽样,然后对抽样后的特征空间进行简单随机抽样得到第一训练集和第一测试集,对特征空间进行简单随机抽样的过程中,一般抽取一半特征作为当前数据集的特征空间。也就是说,训练每个弱分类器时,是从每个强分类器的抽样数据集中抽取获得第一训练集和第一测试集的。
[0088] S24、根据第一训练集及其每个样本的样本权重,分别训练SVM弱分类器、决策树弱分类器和多层感知机弱分类器三种弱分类器;
[0089] S25、针对训练好的三种弱分类器,基于第一测试集及其每个样本的样本权重,计算每个弱分类器的泛化误差后,选择误差最小的弱分类器,并更新该弱分类器在异质Adaboost强分类器中的权重;
[0090] 通过这种在多种弱分类器上找最优的方式能增强每个弱分类器的性能,减少迭代次数,增强了泛化能力。
[0091] S26、根据选择的弱分类器的分类结果,更新抽样数据集中所有样本的样本权重;本步骤可以提高在本次迭代中错分样本的样本权重,降低分类正确样本的样本权重,用于下一轮弱分类器的训练;
[0092] S27、将训练获得的所有弱分类器通过线性加权求和的方式进行集成后作为训练好的异质Adaboost强分类器。通过线性加权求和方式集成后,可以获得错分率较小的强分类器。
[0093] 传统的Adaboost分类器只由一种弱分类器构成,这样每个分类器的分类效果较差,需要集成更多的弱分类器才能构成强分类器,另外传统的Adaboost分类器是对整个训练集所有的特征进行训练,样本与特征之间缺乏随机组合,泛化能力不强。本发明通过步骤S21~S27训练出来的单个异质Adaboost强分类器具有较高的检测率,但误识率也比较高,因此本发明结合了级联分类学习框架,从原数据集中进行简单随机抽样,继续训练更多的异质Adaboost强分类器。把这些异质Adaboost强分类器级联串接起来,得到分类能力更强的级联分类器,最终形成正确率很高的耳朵检测模型,可以自动检测获得侧脸图像中的耳朵对象,检测识别率高。
[0094] 步骤S21~S27完成训练后,将得到一个可重用的高效的耳朵检测模型。每当对一张侧脸照进行耳朵分割时。对原始图片进行高斯滤波,然后使用滑动窗口获取不同区域的HOG特征,使用预训练好的级联分类器判断滑动窗口内是否包含耳朵对象的候选区域从而决定是否缩放,从而精确地判断出耳朵对象的位置。算法最终会根据模型的检测结果,对滑动窗口所在的位置进行裁剪,得到耳朵对象。因此,本实施例训练获得的耳朵检测模型可用于对待诊断的患者的侧脸图像进行精确的耳朵对象裁剪。
[0095] 进一步作为优先的实施方式,所述步骤S3中,所述VGG神经网络模型、 GoogleNet神经网络模型以及ResNet神经网络模型均通过以下步骤进行训练:
[0096] S31、裁剪获得侧脸数据集中每张侧脸图像的耳朵对象,并获取每个耳朵对象相应的患病标签以及冠状沟标签后,构建耳朵数据集;具体的,本步骤使用轻量级图像处理库Pillow完成;
[0097] 这里,耳朵对象相应的患病标签以及冠状沟标签与其对应的侧脸图像一致,例如侧脸图像1中的患病标签和冠状沟标签均为1,则从侧脸图像1中裁剪获得的耳朵对象的患病标签和冠状沟标签也均为1。
[0098] S32、将耳朵数据集中按照第一预设比例随机划分为第二训练集和第二测试集;这里,第一预设比例优选为2:1,即将耳朵数据集中2/3的数据作为训练集用于进行神经网络模型训练,另外1/3的数据作为测试集,用于对训练的神经网络模型进行测试验证。本步骤中,通过随机划分,可以通过样本的不同组合提高训练的每个模型的特异性。
[0099] 另外,本步骤划分获得第二训练集后,在具体进行模型训练之前,可将图片压缩到指定大小进行训练,减少训练过程的计算量。
[0100] S33、对第二训练集和第二测试集中的每张耳朵对象进行数据增强处理;具体的,所述数据增强处理包括随机角度旋转、水平翻转、噪声扰动以及颜色抖动处理。增强处理后,可以避免出现过拟合的情况。
[0101] S34、将数据增强处理后的第二训练集中的耳朵对象作为输入数据,患病标签作为主输出数据,冠状沟标签作为辅助输出数据,分别输入到VGG神经网络模型、GoogleNet神经网络模型或ResNet神经网络模型中,进行基于多任务学习的模型训练;
[0102] S35、采用数据增强处理后的第二测试集对训练的模型进行准确率验证。
[0103] 本步骤的VGG神经网络模型、GoogleNet神经网络模型或ResNet神经网络模型均采用相同训练获得,具体训练过程中,在训练每个神经网络模型之前,都执行步骤S32,获得第二训练集和第二测试集后,执行步骤S33~S35进行训练,区别仅在于步骤S34中所输入的具体神经网络模型的选择。
[0104] 本步骤在模型训练过程中,主任务为判断该耳朵对象对应的患者是否患有心血管疾病,辅助任务为判断耳朵对象是否有冠状沟。
[0105] 多任务学习把与目标任务相关的辅助任务加入模型中一起训练,这些辅助任务能对目标任务产生监督作用,它通过参数共享、正则化等方式让模型更加关注那些确实有影响的那些特征,因为其他任务可以为特征的相关与不相关性提供额外的证据。医学上的统计发现耳垂上的冠状沟是心血管疾病的特征之一,因此,本发明把判断耳朵上是否有冠状沟作为上述三种神经网络模型训练过程的辅助任务来提高特征与心血管疾病的相关性,让模型注意具有诊断作用的耳垂区域。主任务与辅助任务之间共享所有的卷积层以及全连接层,并在最后的全连接层后添加两个并行的输出层分别表示主任务和辅助任务,二者均使用交叉熵作为损失函数,训练后神经网络模型的结构如图4所示。此外,由于主任务和辅助任务与目标相关性的不同,本发明分别对主任务和辅助任务赋予不同的权重α1和α2,对于所有的卷积层以及全连接层加入L2正则化防止过拟合,并且当辅助任务在测试集上的正确率不再提高时,停止辅助任务的训练。
[0106] 具体的,本训练过程使用开源深度学习框架Keras搭建,提高了开发效率和模型训练效率。
[0107] S35、采用数据增强处理后的第二测试集对训练的模型进行准确率验证。
[0108] Vgg神经网络模型和ResNet神经网络模型能提取多层次的抽象特征, GoogleNet神经网络模型的Inception模块通过多个不同尺寸的卷积核获得不同的感受野,因而对同一个区域可以获得多种特征。
[0109] 另外,本发明中,训练获得的三种神经网络模型虽然对心血管疾病有一定的判断能力,但误识率可能较高,因此本发明不直接使用三种模型的判断结果,而是分别使用它们不同阶段提取到的耳朵特征,使用空间金字塔进行特征整合。对于卷积神经网络而言,不同深度对应着不同层次的特征,浅层网络分辨率高,学的更多是细节特征,特征图尺寸较大;深层网络分辨率低,学的更多是语义特征,特征图尺寸较小。本发明既提取浅层的细节特征,避免小目标病理区域信息的丢失,又提取深层的语义特征获得较大区域的特征信息。
[0110] 具体的,所述步骤S4中,VGG神经网络模型提取得到的耳朵特征包括5个特征图,所述GoogleNet神经网络模型提取得到的耳朵特征包括3个特征图,所述ResNet神经网络模型提取得到的耳朵特征包括4个特征图。每个阶段提取到的特征图大小不一,特征类型各不相同,因此需要通过特征金字塔进行整合,本发明使用FPN金字塔模型分别提取三种网络的金字塔特征。
[0111] 参照图4所示,所述步骤S4具体包括:
[0112] 针对VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的每个特征图,分别采用自顶向下的方法构造特征金字塔;图4中, VGG神经网络模型采用VGG16神经网络模型
[0113] 对具有强语义特征的深层特征图采用双线性插值的方式进行上采样,使其与下一层特征图的大小保持一致;
[0114] 对所有的特征图都使用1×1的卷积核进行降维,使得所有特征图的通道数保持一致;
[0115] 将经过上采样或降维处理后的上下两层特征图相加获得一新的特征图并将获得的每一个新的特征图继续以同样的方式与下一层特征图相加,最后获得每个神经网络模型的融合了浅层特征图和深层特征图的深度异构特征图。这里,新的特征图融合了不同层的特征。本步骤获得的深度异构特征图有效地同时保留了细节信息与语义特征,减少信息丢失。
[0116] 进一步作为优先的实施方式,所述步骤S5,其具体为:
[0117] 分别对三种神经网络模型的深度异构特征图依次进行特征图展平处理、降维处理、特征融合处理和特征筛选处理。
[0118] 步骤S4中,VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型所提取到的特征图大小分别为112×112×64(长×宽×通道数)、35× 35×288和56×56×64,此处分别称为VGG特征、GoogleNet特征、ResNet特征。对于这些高维度的特征,需要对其进行降维操作来减少特征中的杂音,提高特征的纯度,降低后续过程的时间和空间复杂度。
降维前先把每个特征图展平成一个一维的特征向量,然后,本发明使用LGS3DR-CML算法对每种特征进行降维。
[0119] 进一步作为优先的实施方式,所述降维处理采用LGS3DR-CML降维算法;
[0120] LGS3DR-CML降维算法是一种有监督降维算法,它的目标是使降维后同类的数据尽量聚集,不同类别的数据尽可能地分开,同时参照LLE的思想使得降维后的数据保存较好的局部结构。该算法通过计算衡量相同类别数据聚集度的矩阵、不同类别数据分离度矩阵、K邻近点权重系数矩阵,然后根据具体的数据特点对三个矩阵加以不同的权重实现对目标的求解。
[0121] 算法完成后,本发明保存从高维空间到低维空间的映射矩阵,从而下一次可以直接使用该映射矩阵进行降维。
[0122] 进一步作为优先的实施方式,所述特征融合处理采用一神经网络模型进行处理,参照图5,该神经网络模型由上到下依次包括三个基本块、拼接层、全连接层、全连接层二、输出层和分类层,其中,每个基本块均独立与拼接层连接,且每个基本块均包括两个全连接层。
[0123] 具体的,基本块的全连接层与神经网络模型的两个全连接层均采用sigmoid 非线性激活函数激活,分类层采用sotfmax函数进行分类,且分类过程中的损失函数使用hinge loss。
[0124] 针对上述三种深度异构特征,采用图5所示的神经网络模型进行特征融合,每种特征对应该网络的一个输入,每种特征通过各自的基本块(basic block)实现从低维到高维空间的映射,其中每个基本块包含两个全连接层以及对应的 sigmoid非线性激活函数;然后把三种特征以及每个基本块的输出一起输入到拼接层合并成一个特征向量,通过两个全连接层对特征进行整合分析实现非线性特征融合,这些全连接层同样使用sigmoid激活,最后使用sotfmax进行分类,损失函数使用hinge loss。为了提高编程效率,图5的神经网络模型使用开源深度学习框架Keras搭建。模型训练好以后,对于每个输入的耳朵对象,取全连接层 FC2的输出即可得到融合后的特征。
[0125] 进一步作为优先的实施方式,所述特征筛选处理具体为:采用CIFE算法选取K个影响最大的特征,其中,K为预设的正整数。
[0126] 经过特征融合后的特征向量有较高维度,因此需要进行特征筛选,剔除不相关或冗余的特征,从而达到减少特征个数,提高模型精确度的目的。本发明使用 CIFE算法对每种特征向量选择K个影响最大的特征实现特征筛选。CIFE算法基于信息增益的角度逐个地从特征集中选择对诊断心血管疾病最有利的特征,并且每次选择特征时考虑了特征之间的相关性,从而减少特征冗余。CIFE特征选择算法使用python的scikit-feature库实现,特征筛选后会得到更加精简高效的特征向量。
[0127] 因此,对深度异构特征图进行特征预处理后,最后获得一深度特征向量。
[0128] 本发明的心血管疾病诊断模型的结构图如图6所示,步骤S6中,进行SVM 分类器模型的训练时,具体将步骤S5中侧脸数据集中所有样本按照2:1的比例随机划分成第三训练集和第三测试集后,获取第三训练集中的样本的预处理后所获得的深度特征向量训练SVM分类器模型,SVM分类器使用高斯核作为核函数,运算时间更少,可以减少训练时间。步骤S6训练获得的SVM分类器虽然结合了VGG特征、GoogleNet特征、ResNet特征进行分类,并且通过不同特征间的非线性组合获得深度特征向量,但在降维和特征筛选阶段会不可避免地出现信息丢失,因此单个SVM分类器仍有机会出现误诊。为了保存更多的细节信息,本发明结合该SVM分类器与特征提取阶段的VGG神经网络模型、GoogleNet 神经网络模型以及ResNet神经网络模型共三个卷积神经网络进行综合分析,将这四个模型通过Bagging学习方式的加权投票的方式集成一个心血管疾病诊断模型,其中每个分类器或神经网络模型按照各自在测试集上的准确率赋予不同的权重,从而得到精准的诊断结果。步骤S7中的集成学习框架与SVM分类器均基于sklearn实现。
[0129] 因此,本发明通过以上步骤训练得到一个高效的心血管疾病诊断模型,应用本诊断模型对患者的侧脸图像进行心血管疾病诊断时,本发明都会加载VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型这三个神经网络模型提取耳朵特征并进行初步诊断,三个VGG神经网络模型、GoogleNet神经网络模型以及ResNet神经网络模型提取到的三种特征图会分别使用空间金字塔进行整合,然后通过降维、特征融合、特征筛选等操作获得一个一维的深度特征向量,最后,根据心血管疾病诊断模型的判断返回心血管疾病的诊断结果。
[0130] 参照图7,本发明另一实施例提供了一种心血管疾病诊断模型的构建系统,包括:
[0131] 至少一个处理器100;
[0132] 至少一个存储器200,用于存储至少一个程序;
[0133] 当所述至少一个程序被所述至少一个处理器100执行,使得所述至少一个处理器100实现本发明实施例所述的心血管疾病诊断模型的构建方法。
[0134] 从而本系统构建的心血管疾病诊断模型可以全面、科学地进行心血管疾病诊断与预测,精度较高。
[0135] 本实施例的心血管疾病诊断模型的建立系统,可执行本发明实施例所提供的心血管疾病诊断模型的构建方法,可执行该方法的任意组合实施步骤,具备该方法相应的功能和有益效果。
[0136] 本发明另一实施例还提供了一种心血管疾病诊断模型,所述心血管疾病诊断模型采用本发明所述的心血管疾病诊断模型的构建方法所创建,可以全面、科学地进行心血管疾病诊断与预测,精度较高。
[0137] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。