APP下载

改进ConvNeXt的肝囊型包虫病超声图像五分类研究

2024-01-04热娜古丽艾合麦提尼亚孜米吾尔依提海拉提王正业茹仙古丽艾尔西丁严传波

现代电子技术 2024年1期
关键词:包虫病准确率分类

热娜古丽·艾合麦提尼亚孜,米吾尔依提·海拉提,王正业,茹仙古丽·艾尔西丁,严传波

(1.新疆医科大学公共卫生学院,新疆 乌鲁木齐 830011;2.新疆医科大学基础医学院,新疆 乌鲁木齐 830011;3.新疆医科大学医学工程技术学院,新疆 乌鲁木齐 830011)

0 引 言

肝包虫病(Hepatic Cystic Echinococcosis, HCE)[1]是流行于牧区的由棘球蚴感染引起的致命性肝脏疾病,主要有囊型棘球蚴病(Cyst Echinococcosis, CE)以及泡型包虫病(Alveolar Echinococcosis, AE)两种形式。其中,肝囊型包虫病在中国的发病率占全国发病的98%以上[2],由于每种亚型都有量身定制的治疗方案[3],准确分型对于后续治疗计划至关重要。超声是临床诊断肝包虫病的主要手段。然而,由于该疾病流行区域主要是医疗资源贫乏的西北偏远牧区,医生主观性判断、操作手法及临床经验影响较大等原因,可能对肝包虫发病早期的精确诊断造成阻碍。

近年来,深度学习技术在医学图像处理的多个领域取得了巨大的成功。部分学者[4-6]提出使用计算机辅助诊断(Computer Aided Diagnosis, CAD)的方法辅助医生对胃癌、乳腺癌等疾病进行分型、评级和预后等。一直以来, 卷积神经网络都被认为是计算机视觉的基础模型。 2020 年谷歌提出ViT(vision transformer)后,Transformer 才逐渐被用于计算机视觉任务,Swin Transformer 更是因为使用多头注意力机制提高了运算效率和分类准确率而获得2021 年ICCV 最佳论文,很多人因此预言卷积神经网络已经开始慢慢淡出舞台中央。直到2022 年1 月份,文献[7]提出了对标Swin Transformer的ConvNeXt 纯卷积神经网络,该网络相比Swin Transformer 拥有更快的推理速度以及更高的准确率,证明了卷积神经网络的性能不亚于视觉Transformer。

目前许多学者对基于深度学习的肝包虫图像分类的研究取得了一定的成绩[8-10],但仍存在一些问题:肝囊型包虫病图像同一类别图像相似度高,不同类别之间相似性低,分类难度大;肝包虫病超声图像的收集需要大量的医学知识和专业技能,数据获取难度大,能用于深度学习训练的样本量较少;不同类别之间数据不平衡等。

本文针对上述问题提出了一种基于ConvNeXt 肝包虫病超声图像分类模型CLCFnet,用于提高五种肝囊型包虫病分类性能。首先应用 CBAM(Convolutional Block Attention Module)模块到病灶特征提取中,提升关键特征的权重,改善depthwise 因通道数较少无法有效利用特征信息的缺点;同时,本文采用Lion 优化器替换原有的AdamW 来提高模型训练中的收敛效率;最后利用Focal Loss 损失函数缓解肝囊型包虫病各类别超声图像数据不均衡带来的分类准确率低的问题,进一步提升了模型的分类性能。消融实验和对比实验结果也验证了改进后的ConvNeXt 网络对肝囊型包虫病分类的有效性。

1 相关研究

1.1 ConvNeXt 模型

近年来,Transformer[11]取代卷积神经网络(CNN)在计算机视觉领域大放异彩,使得越来越多的视觉任务将骨干网络替换为Transformer;然而,Transformer 结构存在运算效率低的缺点,且CNN 结构在处理图像时有着固有的优势,如参数共享。因此,对基于CNN 的基础架构的研究仍然非常有必要。其中,ConvNeXt 分析了目前主流骨干网络的一些特性,这些特性包含用于CNN的和Transformer,进一步从这些显著的特性中找出对ResNet 有用的技巧,通过逐步实验的方式推导出ConvNeXt 结构,其结构如图1 所示。

图1 ConvNeXt 模型结构图

ConvNeXt 从ResNet-50/200[12]出发,首先探索了Swin Transformer[13]类型宏观结构的影响:

1)将每次堆叠的Block 个数比例从1∶1∶2∶1 调整为Swin-T 使用的1∶1∶3∶1,最终堆叠次数由(3,4,6,3)调整至(3,3,9,3),使得ResNet 在ImageNet-1k 数据集上获得了精度提升;

2)将原本在模型开始阶段使用的下采样模块替换为步长等于核矩阵大小的窗口进行采样,实现了降低FLOPs 的同时提升了分类精度。紧接着,作者借鉴了ResNeXt 中的组卷积,且设计组数等于特征的通道数,该设计是为了实现类似自注意力的加权操作,此操作进一步提升了ResNet 的精度。更进一步,ConvNeXt 借鉴了MobileNetV2[14]中的瓶颈结构,即两头细中间粗,此改进在较大模型上获得了较高的提升。同时,ConvNeXt在中间计算过程中使用了更大的卷积核,即由3×3 替换为7×7,且为了降低FLOPs,改变了深度可分离卷积层的位置。ConvNeXt 聚焦于Transformer 结构中的细微改进之处,包括:将ReLU 激活函数使用GeLU 替换,使用了更少的激活函数和归一化运算,替换BN 为LN,将ResNet使用的下采样结构由并联改变为串联。最终,ConvNeXt在ImageNet-1k 数据集上较ResNet-50/200 获得了有效的提升[7],且与Swin Transformer 结构有一定的竞争力。

1.2 迁移学习

深度学习需要大量的高质量标注数据,预训练模型是目前非常流行的迁移学习(Transfer Learning)模式,通过共享大型数据集已训练好的神经网络模型相似层的网络参数,在其基础上进行一定微调处理来训练目标域任务,达到节约算力、提高模型泛化能力的目的,在图像分类和目标检测领域应用较为广泛。

1.3 注意力机制

在计算机视觉领域适当加入注意力机制可以在一定程度上增强对图像信息的处理。为了更精确地提取肝包虫病灶特征,融合卷积注意力机制(CBAM),目的是通过给重要特征加权,使有效特征权重变大,来抑制图像中其他一般特征或者无效特征,进而提升模型对有用特征的提取能力。CBAM 模块[15]是2018年提出的一种轻量型的注意力模块,包含通道注意力模块(Channel Attention Module, CAM)和空间注意力模块(Spatial Attention Module, SAM),这两个模块分别从通道维度和空间维度提取全局特征信息,将图像的特征细化。CBAM 把输入特征经过通道注意力模块得到的权重系数与输入特征相乘,得到含有更多通道维度关键信息的特征,再将特征与空间注意力模块得到的空间注意力权重系数相乘作为最后的输出特征图。该模块可以集成到CNN 网路中,在计算机视觉领域已得到广泛且深入的研究。本研究将CBAM 模块添加到了ConvNeXt 网络特征提取下采样部分。CBAM 模块框架如图2 所示。

图2 CBAM 模块框架

1.4 焦点损失函数(Focal Loss)

在图像分类中,损失函数表示预测值和真实值之间的差距,通常用来衡量模型预测的好坏程度。一般为了解决类别不平衡的问题,会在损失函数中每个类别前增加权重因子αt∈[0,1]来协调类别不平衡。使用pt类似的方式定义αt,得到二分类平衡交叉熵损失函数,其定义如公式(1)所示。由于肝包虫病数据存在各类别数据不均衡的问题,直接使用交叉熵损失函数得到的效果不好。为了解决数据类别间不平衡的问题,文献[16]提出Focal Loss,它在平衡交叉熵损失函数的基础上,增加一个调节因子(1 -pt)γ让模型聚焦于困难样本和少样本的训练,其表达式如式(2)所示。

式中:pt表示预测样本分类得分,越接近于1,表示模型分类越准确,越接近0 则相反;αt和γ是超参数,需要根据经验确定两者的最佳值,αt是样本数量平衡变量,表示失稳样本数量与总数据集数量的比值,本文中αt取值0.25,γ是聚焦参数,表示模型对难易样本的重视程度,其范围设置为0~5,当样本容易被分错时,可以将γ设置为大于1 的数,调制参数就会变大,从而增加困难样本的权重,这里γ值设置为2,用来调节不同类别样本在损失中所占的比重;(1 -pt)γ是调制系数,当一类样本被分类错误时pt很小,那么(1 -pt)就接近1,因此困难样本损失不会受到影响;而当pt接近于1 时,(1 -pt)就接近0,易分类样本权重就会降低,从而使模型更加关注难分类样本的训练。

1.5 Lion

优化器就是优化算法,在模型训练中起着关键作用。近年来,研究者引入了大量的手工优化器,其中大部分是自适应优化器,Adam 和Adafactor 优化器仍然占据神经网络的主流。最近,来自谷歌的研究者[17]提出了一种速度更快、更省显存的优化器Lion,并在图像分类、图文匹配、扩散模型、语言模型等诸多任务做了充分的实验,多数任务显示Lion 比目前主流的AdamW 等优化器有着更好的性能。

2 材料与方法

2.1 数据集来源

数据集选用来自新疆医科大学各附属医院自2008—2020 年期间采集的肝囊型包虫超声图像资料。关于病灶的分型参考了世界卫生组织对于包虫病灶的分型标准[18],本次纳入研究的肝囊型包虫病超声图像分为5 种类型:单囊型(CE1)、多子囊型(CE2)、内囊塌陷型(CE3)、坏死实变型(CE4)和钙化型(CE5)。

2.2 数据预处理

实验数据集来自新疆医科大学各附院3 052 位肝包虫病患者,共计5 870 张超声影像图片,每张图像的病灶类型都由该医院拥有3 年以上工作经验的超声科影像医师验证确定。由于肝囊型包虫病各分类间样本容量不均衡,并且所纳入的超声图片是由不同型号的仪器采集,在分析之前需要对图像进行预处理操作:

1)数据扩充:通过随机裁剪、随机水平翻转等操作来扩增样本数据。

2)尺寸归一化:将所有纳入研究的图像尺寸归一化至224 px×224 px,便于后续分类算法的计算。

每种类型的样本个数及患者数如表1 所示。

表1 各分型图像及患者数量

2.3 CLCFNet

本文针对肝囊型包虫病超声数据集中存在的数据量少和各类别比例不均衡问题,提出了CLCFNet 模型,其是在ConvNeXt_tiny 网络模型基础上从超参数、损失函数和模型结构的优化三个方面进行改进:

1)采用谷歌团队提出的Lion 优化器替换AdamW,提高模型训练的收敛速度和预测精度;

2)在ConvNeXt 模型下采用部分加入CBAM 注意力机制,使模型更加关注易混淆样本和少样本;

3)将原模型交叉熵损失函数替换为Focal Loss,通过减少易分类样本的权重,让模型更关注难分类样本的训练,从而增强模型泛化能力。

3 结 果

3.1 训练环境与评价标准

实验和测试环境采用Windows 10(×64)系统搭配Torch 1.5.2 学习框架,采用了Python 3.9 编程语言,代码可视化工具为PyCharm。GPU 为NVIDIA GeForce RTX 3060 Ti 8 GB。将各类肝包虫病的数据以3∶1∶1 的比例划分为训练集、验证集和测试集,具体实验数据如表1所示。初始学习率设为0.000 1,训练批大小统一设为32,一共训练200 个epochs。

为了检验肝包虫病分类模型的可靠性,研究选用国内外公认的模型评价方法,包括:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、特异度(Specificity)和F1评分,同时绘制每个类别的ROC 曲线,计算曲线下面积AUC。为了更加直观地看出模型特征提取能力,采用t-SNE 对所用数据进行降维和可视化处理,其中每种颜色代表不同类型标签。为了衡量模型在实际部署中的性能,还采用了推理时间毫秒(ms)来计算模型预测单张图片所需要的时间。

3.2 模型训练

在肝包虫病超声图像多分类实验中,将数据集划分为训练集和验证集输入模型进行训练,训练集用于模型拟合,验证集通过对模型的性能进行评价来调整超参数。模型设置了200 epochs 进行训练,训练集和验证集的准确率变化如图3a)所示。在100 epochs 左右就实现了将近91%的准确率,点A为训练集和验证集的基本拟合点,在后续训练过程中差距逐渐减小,最终稳定在94.5%左右。模型训练时损失变化情况如图3b)所示,同样在100 epochs 模型达到基本拟合,点B是模型训练基本拟合点,损失值为0.23。这意味着模型在训练集和验证集上均有较高的准确率,不存在过拟合或欠拟合,模型稳健性良好,可以进行进一步分析。

图3 模型准确率和损失变化情况

3.3 CLCFNet 模型与原始ConvNeXt 性能比较

ConvNeXt 的原始结构是针对ImageNet 数据集中的自然图像所设计的,直接迁移到本文医学图像数据集中可能存在结构不适配等问题。为此,对ConvNeXt_tiny模型进行了部分改进,从表2 和图4 可以看出,经过优化的CLCFNet 在精确率、召回率、F1指数和AUC 值上都有不同程度的提升。

表2 不同模型分型结果对比

图4 原模型与CLCFNet 模型的ROC 曲线

为了直观地验证CLCFNet 模型可以对不同类别的肝包虫病的组织特征做区分,将测试集分别输入到训练好的原模型和CLCF 模型进行测试,对测试结果进行可视化,不同方法可视化结果如图5所示。从图5a)虚线圈可以看出,内囊塌陷型(CE3)、坏死实变型(CE4)和钙化型(CE5)有部分重合,可以说明原始ConvNeXt 模型不能很好地处理肝囊型包虫病五分类问题。从图5b)可以看出,虽然不同类别之间存在一小部分的重合,但总体来说CLCFNet 模型能将不同种类肝包虫病进行很好的区分。

图5 t-SNE 可视化结果

3.4 消融实验

为了探索不同改进点对模型分类效果的影像,本研究在相同数据集及实验条件下对模型进行消融实验。消融实验结果如表3 所示,基于迁移学习的建模方法分类准确率达到了90.4%,通过优化超参数准确率提高了0.8%,加入注意力机制后模型准确率提高了2.4%,替换损失函数后,模型准确率进一步提高至94.7%。消融实验结果表明CLCFNet 模型中各组件的合理性和有效性。

表3 消融实验结果

3.5 模型性能对比

为了进一步验证CLCFNet 在肝包虫病图像分类方面的有效性,将其与其他流行分类方法进行对比,表4结果显示改进后的模型识别准确率(94.7%)大于基于多头注意力机制的Swin Transformer 模型(91.8%)以及其他经典的CNN 模型,已加粗显示。 其中,EfficientNetV1 的分类准确率(89.6%)最低,ResNet34 分类准确率较VggNet16、MobileNetV1、MobileNetV2、EfficientNetV1 和EfficientNetV2 较高,且推理时间最短,模型大小也较小。MobileNetV2 在模型大小较小的情况下仍保持与其他模型精度区别不大的分类准确率。神经网络的模型大小主要由参数量和计算量决定,它也是影响模型推理任务性能的关键,CLCFNet 在保持较高准确率的同时,具有较小的参数量和更快的推理速度,证明了本文构建模型在包虫病分类中的优越性和有效性。

表4 对比实验结果

4 结 语

本文所构建的CLCFNet 模型可以将肝囊型包虫病超声图像分为五种不同类型,并且相较于基础模型有更好的分类性能。由消融实验和对比实验结果可以看出,每个模块对模型分类性能都有促进作用,对于五分类任务达到了94.7%的识别准确率,证明了所提模型能帮助临床医生提高肝包虫病超声图像诊断的效率和准确性。

虽然本文提出的基于ConvNeXt 的改进方法有效提高了肝包虫病自动分型的效率和准确度,但是由于硬件条件、自身能力等原因,本文依然具有一些不足之处,主要包括:

1)由于肝包虫病超声图像数据较少且部分类别数据匮乏,导致模型过拟合和泛化性差的问题。

2)虽然通过改进模型实现较高的分类准确率,但考虑到实际应用场景和用户的需求,未来还需采取模型剪枝、蒸馏等方法减少模型实际部署到移动嵌入式设备的难度。

猜你喜欢

包虫病准确率分类
分类算一算
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
分类讨论求坐标
羊脑包虫病的诊治
高速公路车牌识别标识站准确率验证法
数据分析中的分类讨论
勇做包虫病防治工作的
教你一招:数的分类