基于双分支交叉注意力池化的眼前节疾病多标签分类方法

未命名 09-29 阅读:174 评论:0


1.本发明属于计算机辅助医学图像处理领域,涉及一种基于双分支交叉注意力池化的眼前节疾病多标签分类方法。


背景技术:

2.在眼科领域,裂隙灯检查对角膜、结膜和晶状体的评估是眼表疾病诊断的基础,早期的眼病筛查可以帮助患者预防视力损害和其他问题。目前基于裂隙灯图像的眼前节疾病诊断系统多针对单一疾病。由于实际生活中病人可能同时患有多种眼部疾病,使得眼前节疾病多标签分类具有重大的临床意义和研究意义。
3.目前针对多标签图像分类的方法主要包括构建标签相关性、基于目标检测边界框以及注意力机制等。通过构建标签共现矩阵的方法计算成本大并且应用在医学图像小数据集上容易导致过拟合。基于目标检测边界框的方法需要高昂的标注成本并且模型复杂,由于成本和耗时的原因,大多数情况下医生无法对病灶区域进行密集注释。现有的基于视觉注意力的方法已被证明可以提升多标签图像分类任务的准确率,并应用在医学图像数据集上,但是仍然存在如下不足:(1)由于病灶位置和大小不同,很难针对性地区分和提取特征,部分标签对象之间存在视觉相似性很难区分;(2)图像中包含的正样本远远少于负样本,存在严重的正负样本失衡,导致在预测结果时出现可能会出现一些假阴性现象;(3)大多数方法忽视了多标签图像分类中的标签的粗细粒度问题。


技术实现要素:

4.本发明针对现有技术的不足和对裂隙灯图像眼前节疾病分类的需求,提出一种基于双分支交叉注意力池化的眼前节疾病多标签分类方法。
5.为实现上述目的,本发明包括以下步骤:
6.s1、对裂隙灯图像进行数据预处理,统一数据集中图像尺寸;
7.s2、将图像输入双分支网络中,通过分支1运算输出切片序列,通过分支2运算输出特征图;
8.s3、分支1和分支2的特征图、注意力图进行双分支交叉注意力池化,输出疾病种类和疾病区域结果;
9.s4、利用分支2中输出的注意力图对该分支经过数据预处理的图像进行注意力引导的数据增强,并将增强的图片再次输入主网络,得到的结果作为数据增强模块的结果输出;
10.s5、将主网络的结果输出和数据增强模块的结果输出分别各自和标签进行损失计算,并将得到的损失加权求和,来对模型进行监督训练,模型训练到设定的迭代次数时停止训练,期间以验证集的最优评价指标结果保存模型参数;
11.其中所述分支1和分支2的主干特征图由resnet50网络模型提取得到。对分支1,主干特征图进行投影得到切片序列,并输入transformer模块,输出切片序列。对分支2,主干
特征图直接作为特征图输入卷积模块,输出特征图。分支1和分支2之间通过交互模块进行特征耦合。
12.进一步地,上述基于双分支交叉注意力池化的眼前节疾病多标签分类方法中,所述步骤s3具体包括以下步骤:
13.s31、将分支1输出的切片序列经过reshape,并利用卷积核为1的卷积层改变通道数,得到对齐特征图,记作aligned feature maps。
14.同时,分支2也输出特征图;
15.s32、两个分支的特征图各自使用卷积核为1的卷积层进行卷积操作得到注意力图;
16.s33、将分支1的特征图和注意力图记作f1、a1,将分支2的特征图和注意力图记作f2、a2。对f1和a1、a2分别进行双线性注意力池化,得到的结果在维度为1的通道上进行拼接,记为特征矩阵1。同理对f2和a1、a2分别进行双线性注意力池化,得到的结果在维度为1的通道上进行拼接,记为特征矩阵2;
17.s34、细粒度的疾病分类损失。对特征矩阵1和特征矩阵2分别连接输出通道为疾病类别数的全连接层,疾病类别数为c,得到的logits经过sigmoid激活函数输出疾病类别预测1、疾病类别预测2,和真实标签计算交叉熵损失函数;
18.s35、粗粒度的疾病区域分类损失。上述c个类别属于细粒度级别的标签。同时,通过将疾病按照其所在区域进行划分,可以得到粗粒度级别的标签,即区域类别,区域类别数为r。因此对于每一张输入的裂隙灯图像,除了图像的细粒度疾病类别标签,还有图像的粗粒度疾病区域标签。粗粒度的疾病区域预测计算方法如下:对特征矩阵1、特征矩阵2后分别连接类别数为r的全连接层和relu激活函数,得到疾病区域预测值;对疾病类别预测1、疾病类别预测2后分别连接类别数为r的全连接层,得到疾病区域预测值,将上述得到的预测值相加,最后输入sigmoid激活函数即可得到粗粒度的疾病区域预测值,和真实标签计算交叉熵损失函数。
19.进一步地,上述基于双分支交叉注意力池化的眼前节疾病多标签分类方法中,所述步骤s4具体包括以下步骤:
20.s41、将分支2输出的注意力图进行一次上采样,并和经过数据预处理的图像进行注意力引导的数据增强;
21.s42、注意力引导的数据增强方式分为3种,分别是裁剪、cutmix、mixup。裁剪即在经过预处理的原始图像中将注意力分数较高的区域裁剪出来,并重新调整大小为原始图像大小;cutmix即将原始图像中注意力分数较高的区域进行裁剪,并叠加在原始图像的左上角;mixup即将原始图像中注意力分数较高的区域进行裁剪并重新调整大小为原始图像大小,将其和原始图像进行等比例混合;
22.s43、三种注意力引导的数据增强方式都可以得到一个新的输入,并且该输入无需再进行数据预处理。将三张图片分别输入到网络中,可以得到数据增强分支的三个结果。
23.进一步地,上述基于双分支交叉注意力池化的眼前节疾病多标签分类方法中,所述步骤s5具体包括以下步骤:
24.s51、对主网络的结果输出和数据增强模块的结果输出分别和标签做损失计算,主网络损失函数为交叉熵损失函数,数据增强模块为不对称性损失函数,其中主网络和数据
增强模块所占权重分别为0.5。将得到的损失加权求和,对模型进行监督训练;
25.s52、模型训练到设定的迭代次数时停止训练,期间以验证集的最优评价指标结果保存模型参数,其中验证集的最优评价指标定为对疾病种类预测的f1-score。
26.本发明的有益效果:
27.本发明的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,首先考虑到多标签图像病灶区域的位置、大小不一,选择用注意力图进行特征的提取,并使用双分支交叉注意力池化对易混淆或者视觉高度相似特征进行区分,从细粒度视角对多标签眼部图像进行分类;其次,考虑到正负样本不均衡问题,使用裁剪、cutmix、mixup等三种不同的数据增强方式对经过预处理的原始图像进行数据增强,突出正例区域特征,并利用非对称损失函数引导网络在训练时侧重正样本的损失贡献,减少负样本的损失贡献,起到缓解正负样本不均衡、修正部分假阴性标签的作用;最后,本方法考虑了多标签图像分类中的粗细粒度问题,以一个端到端的网络结构实现了多标签眼部图像的分级分类,网络可以同时输出准确的疾病类别信息以及疾病区域信息。
附图说明
28.图1为本发明的总体流程图。
29.图2为本发明运用到的整体网络结构示意图;
30.图3为双分支交叉注意力池化生成疾病种类以及疾病区域的分级分类模块结构示意图;
31.图4为注意力引导的三种数据增强模块结构示意图。
具体实施方式
32.下面结合附图对本发明的技术方案做进一步详细说明:
33.如图2所示,主网络中双分支架构的分支1和分支2的主干特征图由resnet50网络模型提取得到。对分支1,主干特征图进行投影得到切片序列,并输入transformer模块,输出切片序列。对分支2,主干特征图直接作为特征图输入卷积模块,输出特征图。分支1和分支2之间通过交互模块进行特征耦合。交互模块基于conformer中的特征交互模块搭建。该框架利用transformer分支进行对全局信息的捕获,同时利用cnn分支关注局部信息,使得总网络更适用于眼前节疾病小数据集。不同的学习范式确保两条分支获取特征的不对称性。考虑到本任务数据的特殊性以及现有的多标签图像分类网络未考虑各个标签之间的视觉相似性,本发明提出了基于双分支交叉注意力池化的眼前节疾病多标签分类方法,能够更好地进行眼前节疾病分类。
34.本发明实施例,如图1所示,包括以下步骤:
35.s1、对裂隙灯图像进行数据预处理。由于网络的输入图片尺寸需要固定,因此对原始的大小不一的图片通过裁剪和缩放调整比例,统一图像尺寸为224
×
224。
36.s2、将图像输入双分支网络中,首先经过resnet50,得到其layer3的输出,作为主干特征图
37.s2.1、对分支1,主干特征图进行投影得到切片序列。投影操作包括:利用卷积核为1的卷积层将通道数从1024改为384,将14
×
14分辨率的特征图reshape成196长度的向量,
改变通道位置得到大小为196
×
384的切片序列。输入transformer模块,输出同样大小的切片序列,
38.s2.2、对分支2,主干特征图直接作为特征图输入卷积模块,输出大小相同的特征图
39.s2.3、分支1和分支2之间通过conformer中的特征交互模块进行特征耦合。
40.s3、分支1和分支2的特征图、注意力图进行双分支交叉注意力池化,输出疾病种类和疾病区域结果;
41.分支1输出的切片序列经过reshape,并利用卷积核为1的卷积层改变通道数,得到对齐特征图分支2输出的特征图记做
42.对于两条分支输出的特征图,各自进行卷积核为1的卷积层运算得到对应的注意力图,注意力图的通道数为疾病类别数c。计算方式如下。
43.a=f(f)
44.计算得到注意力图
45.将特征图和注意力图进行双分支交叉注意力池化。双分支交叉注意力池化运算如图3所示。以分支1为例,特征图与该分支注意力图进行双线性池化,计算方式如下:
46.fk=ak⊙
f(k=1,2,

,c)
47.对于注意力图每个通道的注意力图每个通道的注意力图其中

表示元素对应相乘,对于每个通道,计算输出其对应的特征图进一步地,对该特征图进行池化操作:
48.fk=g(fk)
49.其中g函数表示池化操作,可以取平均池化层或者最大池化层。将得到的c个特征向量进行拼接即得到一个特征矩阵。将上述操作对分支1的特征图和分支2的注意力图也进行一次,得到特征矩阵,将两个特征矩阵在维度为1的通道上进行拼接,得到分支1的总特征矩阵1。同理可以得到分支2的总特征矩阵2。
50.两个特征矩阵分别经过dropout层、全连接层后得到细粒度的疾病种类的预测结果。进一步地,在特征矩阵后面加上全连接层和relu激活函数得到疾病区域的预测结果,对疾病种类结果后加上全连接层,得到疾病区域的结果,两者进行残差连接,对四个疾病区域的结果进行元素相加得到最终的疾病区域的结果。如图1中流程所示,网络输出得到两个结果分别是疾病类别和疾病区域。
51.s4、利用分支2中输出的注意力图对该分支经过数据预处理的图像进行注意力引导的数据增强,并将增强的图片再次输入主网络,得到的结果作为数据增强模块的结果输出,原始图像为x,输入网络经过数据预处理后得到x

,经过注意力引导的数据增强以后得到x

,如下:
52.x

=aug(x

)
53.如图4所示,主网络生成的注意力图通道数为c,即疾病类别数量,从中选取注意力分数最强的3张作为增强注意力图。分别用这三张注意力图和经过数据预处理的图像进行注意力引导的裁剪、cutmix、mixup增强,得到的新图分别输入主网络中进行运算,得到数据增强模块的三组预测结果。
54.s5、将主模块的结果输出和数据增强模块的结果输出分别各自和标签进行损失计算,并将得到的损失加权求和。其中主模块选择交叉熵损失函数。数据增强模块使用非对称性损失函数,对负样本的损失计算如下:
55.l-=(pm)
γ-log(1-pm)
56.其中pm的计算如下,p表示负样本预测的概率,m和γ均为超参数:
57.pm=max(p-m,0)
58.对模型进行监督训练。模型训练到设定的迭代次数时停止训练,期间以验证集的最优评价指标结果保存模型参数,其中验证集的最优评价指标定为对疾病种类预测的f1-score,计算方式如下:
[0059][0060]
以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

技术特征:
1.一种基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,包括如下步骤:s1、获取裂隙灯图像数据集,并对裂隙灯图像进行数据预处理,统一数据集中图像尺寸;s2、将预处理后的图像输入由分支1和分支2组成的双分支网络中,通过分支1运算输出切片序列,通过分支2运算输出特征图f2;s3、对切片序列进行重组得到特征图f1,特征图f1和特征图f2分别进行卷积操作得到注意力图a1和a2,将特征图f1、f2和注意力图a1、a2进行双分支交叉注意力池化,输出疾病种类和疾病区域结果;s4、利用分支2中输出的注意力图a2对经过数据预处理的图像通过数据增强模块进行注意力引导的数据增强,数据增强模块包括对其进行注意力图引导的裁剪、cutmix、mixup,得到三张新的图片,记为增强图片1、增强图片2、增强图片3;s5、将数据增强后的得到增强图片1、增强图片2、增强图片3以及对应的原图分别通过双分支网络各自输出四组疾病种类和疾病区域结果,每一组预测结果输出分别和标签进行损失计算,并将得到的损失加权求和,来对多标签分类模型进行监督训练,多标签分类模型训练到设定的迭代次数时停止训练,期间以验证集的最优评价指标结果保存模型参数。2.根据权利要求1所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述步骤s1中预处理方法为:统一数据集中图像尺寸,并将数据集划分为训练集和验证集。3.根据权利要求1所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述步骤s2中,由resnet50网络模型构成的分支1和分支2分别提取得到主干特征图,对分支1提取得到的主干特征图进行投影得到切片序列,并输入transformer模块,输出切片序列;对分支2提取得到的主干特征图直接作为特征图输入卷积模块,输出特征图,所述分支1和分支2之间通过交互模块进行特征耦合,特征耦合以后,分支1输出切片序列,该切片序列形状与输入交互模块前切片序列形状一致,分支2输出特征图,该特征图与输入交互模块前特征图形状一致。4.根据权利要求3所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述分支1是由卷积模块构成,用于提取图片的局部特征;分支2利用transformer中自注意力机制的全局感受野捕获图片的长距离依赖关系,分支1和分支2之间通过交互模块进行特征耦合,将基于cnn的局部特征和基于transformer的全局特征进行融合。5.根据权利要求4所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述步骤s3中,得到注意力图的方法为:将分支1输出的切片序列经过reshape,并利用卷积核为1的卷积层改变通道数,得到特征图;两个分支的特征图各自使用卷积核为1的卷积层进行卷积操作得到注意力图。6.根据权利要求5所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述步骤s3中,双分支交叉注意力池化的方法为:将分支1的特征图和注意力图记作f1、a1,将分支2的特征图和注意力图记作f2、a2,对f1和a1、a2分别进行双线性注意力池化,得到的结果在维度为1的通道上进行拼接,记为特
征矩阵1,同理对f2和a1、a2分别进行双线性注意力池化,得到的结果在维度为1的通道上进行拼接,记为特征矩阵2。7.根据权利要求6所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于,所述步骤s3中,输出疾病种类和疾病区域分类结果的方法为:细粒度的疾病分类损失,对特征矩阵1和特征矩阵2分别连接输出通道为疾病类别数的全连接层,疾病类别数为c,得到的logits经过sigmoid激活函数输出疾病类别预测1、疾病类别预测2,和真实标签计算交叉熵损失函数;粗粒度的疾病区域分类损失,上述c个类别属于细粒度级别的标签,同时,通过将疾病按照其所在区域进行划分,可以得到粗粒度级别的标签,即区域类别,区域类别数为r,粗粒度的疾病区域预测计算方法如下:对特征矩阵1、特征矩阵2后分别连接类别数为r的全连接层和relu激活函数,得到疾病区域预测值;对疾病类别预测1、疾病类别预测2后分别连接类别数为r的全连接层,得到疾病区域预测值,将上述得到的预测值相加,最后输入sigmoid激活函数即可得到粗粒度的疾病区域预测值,和真实标签计算交叉熵损失函数。8.根据权利要求1所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于:所述步骤s4中将分支2输出的注意力图进行一次上采样,并和经过数据预处理的图像进行注意力引导的数据增强;裁剪即在经过预处理的原始图像中将注意力分数较高的区域裁剪出来,并重新调整大小为原始图像大小;cutmix即将原始图像中注意力分数较高的区域进行裁剪,并叠加在原始图像的左上角;mixup即将原始图像中注意力分数较高的区域进行裁剪并重新调整大小为原始图像大小,将其和原始图像进行等比例混合。9.根据权利要求1所述的基于双分支交叉注意力池化的眼前节疾病多标签分类方法,其特征在于:所述步骤s5中,对于经过数据预处理的图像,输入双分支网络中,生成一组预测结果,将其和标签进行损失计算,记为损失1,损失函数为交叉熵损失函数,增强图片1、增强图片2、增强图片3,分别通过双分支网络各自输出一组疾病种类和疾病区域结果,对于数据增强图片的每一组预测结果,将其和标签进行损失计算,损失函数为不对称性损失函数,计算得到的3个损失结果取平均值,得到的结果记为损失2,损失1和损失2所占权重分别为0.5,进行加权求和,得到最后的损失。

技术总结
本发明公开了一种基于双分支交叉注意力池化的眼前节疾病多标签分类方法,本发明包括以下步骤:(1)对裂隙灯图像进行数据预处理;(2)将图像输入双分支网络,输出token序列和特征图;(3)对特征图、注意力图进行双分支交叉注意力池化,输出疾病类别和区域的结果;(4)利用CNN分支中的注意力图对该分支输入进行注意力引导的数据增强,再次输入主网络;(5)将各个结果和标签进行损失计算来进行监督训练,训练好的模型可用于疾病类别和区域的诊断。本发明通过构建双分支交叉注意力池化模块,解决了多标签图像中对象大小位置不一且部分特征之间的视觉相似性问题,能够基于裂隙灯图像准确地进行疾病类别和区域的多标签分类。行疾病类别和区域的多标签分类。行疾病类别和区域的多标签分类。


技术研发人员:王莉莎 顾人舒 陈德潮 高红依 贾刚勇
受保护的技术使用者:杭州电子科技大学
技术研发日:2023.01.10
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐