基于U型结构的多尺度皮肤病分割算法
2023-01-31李家琛王一诺张俊然
李家琛,刘 彦,王一诺,张俊然
(1.四川大学 电气工程学院,四川 成都 610000; 2.四川大学 “医学+信息”中心,四川 成都 610000)
0 引 言
由于皮肤表面的毛发遮挡,皮肤病变与正常区域之间的对比度较低,病灶区域的边界模糊,加上拍摄视角、设备等差异导致图像的背景颜色变化较大,如图1所示,第一行是皮肤镜下生成的皮肤病图像,第二行是对应的专家标注,这些都为病灶区域的准确分割带来挑战。目前临床中,医生多采用手动分割皮肤镜图像,这种方法对医生的临床经验要求较高,需要耗费大量时间而且不同医生对病变的分割存在主观性,会造成分割误差。
图1 皮肤病图像和专家标注图像
为了实现自动皮肤病变分割,研究人员使用例如基于阈值,基于边缘检测或基于区域的传统方法。然而,不同来源图像的色彩差异是对传统技术的严重限制,基于特征的技术对图像提取特征(如颜色、形状、纹理等特征),然后使用SVM等传统的机器学习进行像素级分类,过程繁琐且耗时,很多时候无法准确分割皮肤病变[1]。
随着深度学习的发展,U-net[2]、U-net ++[3]等网络在小样本的医学图像分割中表现良好。崔等[4]在预处理时采取了毛发移除的处理,以解决血管、毛发等遮挡病灶区域的问题。Jafari等[5]提出的DRU-NET将残差网络(ResNet)和密集连接网络(DenseNet)相结合,具有更少的模型参数,可以提高分割精度。但是以上方法不能很好地处理皮肤病变形态差异较大和边缘模糊的问题,造成分割精度不高。
本文针对皮肤病变区域的大小不一和边界模糊的问题,提出了一种基于U型结构的多尺度模型,在原本简单的跳跃连接中加入Bi-Directional ConvLSTM[6],通过将编码层高分辨率的特征图和从反卷积层提取的包含更多语义信息的特征图融合,来补偿编码期间丢失的位置信息。在编码的最后一层利用了密集空洞空间金字塔池化模块(DenseASPP)[7]扩大感受野,同时获取多尺度信息以提高网络对不同大小病灶的识别能力。最后加入通道注意力机制,通过网络自动获取到每个特征通道的重要程度,最终达到最佳分割效果。
1 网络结构
本文基于MCGU-Net[8]提出了改进的多尺度网络。如图2所示,网络主要包括编码模块、密集空洞空间金字塔池化模块(DenseASPP)和解码模块。编码层采用4次下采样,每次卷积之后加上BN层和Relu激活函数。解码层利用反卷积进行上采样,在跳跃连接中加入Bi-Directional ConvLSTM。
图2 本文算法网络结构
1.1 密集空洞空间金字塔池化模块
皮肤病变的大小不一,U-net使用多个池化层来增加输出神经元的感受野大小,同时也导致特征图的尺寸减小,上采样至原图时很难识别出较小病变的位置。针对特征图尺寸与感受野大小之间的矛盾,本文选择在编码的最后一层加入密集连接的空间金字塔池模块(DenseASPP),利用并行空洞卷积得到多尺度信息,以识别不同大小的病灶。
结构如图3所示,空洞卷积层以级联方式连接,其中每一层的膨胀率逐层增加。每层空洞卷积的输出都要与输入特征图和来自前一层的空洞卷积输出进行级联,然后输入到下一层。将输入为x,卷积核大小为K,膨胀率为d的空洞卷积用HK,d(x)表示,则每一层空洞卷积层可以通过如下公式表示
图3 密集空洞空间金字塔池化模块结构
yl=HK,dl([yl-1,yl-2,…,y0])
(1)
其中,dl表示第l层的膨胀率,[…]表示级联操作, [yl-1,yl-2,…,y0] 表示连接来自前面所有层的输出。
空洞卷积[9]能够在不增加卷积核参数的情况下实现更大的感受野。对于膨胀率为d,卷积核尺寸为K的空洞卷积,其等效感受野的大小为
R=(d-1)×(K-1)+K
(2)
并行空洞卷积来自ASPP[10]的思想,将不同膨胀率的空洞卷积所生成的特征图进行级联,以使输出特征图中的神经元包含多个感受野,可以达到获取多尺度信息的目的。但是空洞卷积接收到了更大的感受野,同时也丢失了大量信息,膨胀率越大,计算时候丢失的信息越多。
DenseASPP可以有效地解决信息丢失的问题,空洞卷积感受野如图4所示,在一维的情况下,如图4(a)所示,对于膨胀率为6的空洞卷积,13个像素被计算,只有3个像素被保留。对于二维图像分割,被舍弃的信息会更多。但是如果将两个空洞卷积组合起来,如图4(b)所示,膨胀率为3和膨胀率为6的空洞卷积分别产生感受野大小为7和13,组合之后等效感受野大小为19,其中7个像素被保留。由此可见,采用密集连接的方式,较大扩张率的卷积可从较小扩张率卷积中获得帮助,使得采样更为密集,不仅可以进一步扩大感受野,而且可以得到更多的上下文信息。级联两个空洞卷积层的等效感受野大小为
图4 空洞卷积感受野
K=K1+K2-1
(3)
其中,K1和K2分别代表不同膨胀率的空洞卷积等效的感受野大小。
Maoke等[7]采用膨胀率为3、6、12、18、24的空洞卷积级联,得到更大的感受野,以适应于高分辨率的街景数据。但是皮肤病变数据不适合用过大膨胀率的空洞卷积,过大的感受野会导致提取到大量无用信息,忽略掉有用特征,造成小病变无法识别和大病变边缘分割模糊等问题,因此本文选取3、5、7、9膨胀率的空洞卷积进行组合。通过在编码器最后一层并行密集不同膨胀率的空洞卷积,使得模型获取到不同尺度的上下文信息。同时为了防止通道数过多导致模型过大,在每一个扩张层之前添加1×1卷积层,以将特征图的通道数降至其原始通道数的一半(在此模型中为128)。然后将经过每一个空洞卷积层之后的特征图级联,输入到解码路径中。
1.2 双向卷积LSTM(Bi-Directional ConvLSTM)
由于皮肤病变的边缘较模糊,编码器-解码器模型在编码层中丢失了位置信息,通过简单的跳跃连接,可以在一定程度上补偿空间位置的丢失,但是两个特征图不在同一语义层次,不能有效融合特征信息,导致生成粗糙的皮肤病变分割结果。上采样得到的特征图是之前下采样的特征图经过动态变化产生的,在时序上存在一定的联系,考虑到LSTM可以将同一对象不同时间联系起来,将LSTM用到跳跃连接中,能更有效地融合特征图,但是由于模型中仅使用完全连接,没有考虑空间相关性,对于分割问题可能没有良好的效果。因此本文在跳跃连接中采用ConvLSTM[6],将FC-LSTM中的全连接替换成卷积,利用卷积对特征图提取特征。ConvLSTM由输入门it,输出门ot,忘记门ft和存储单元Ct组成。输入、输出和忘记门充当控制门,以访问、更新和清除存储单元。ConvLSTM的公式如下
(4)
(5)
(6)
(7)
Ht=οt∘tanh(Ct)
(8)
图5 Bi-Directional ConvLSTM结构
1.3 挤压和激励模块(SE)
我们在网络第一次上采样之前随机选取了16张通道特征图,如图6所示,可以看出每个通道表现的特征差异较大,对于后续上采、卷积及最后的分割效果会产生不一样的影响。
图6 不同通道的特征
但是网络在输出特征图时对每个通道产生同样的关注,由此可以想到,通过给每个通道分配不同的权重,加强某些有利于分割的特征可以提高分割精度。本文采用SE[12]注意力机制,通过上下文选通机制来捕获卷积层通道之间的显式关系,从而改善了表示网络的能力。这些模块通过为特征图中的每个通道分配权重来对特征图进行编码。
由于Gu等[13]实验结果表明在编码器上施加注意力可能会导致某些潜在有用的功能在早期被抑制,因此本文仅在解码路径中添加注意力机制,如图7所示,SE块包括挤压(Squeeze)和激励(Excitation)两部分。第一步是挤压,通过使用整个通道上下文的全局平均池化(GAP),将输入特征映射到SE块,降低特征维度到1×1×C。第二步是激励,通过全连接层和非线性学习得到特征图各通道的权重值。最后将输入的特征图乘以各通道的权重输出到下一个网络层中。
图7 SE结构
2 实验结果与分析
2.1 数据集
实验数据取自国际皮肤影像协作组织(ISIC)2018年发布的皮肤病数据集[14]。该数据集是已知公开的最大的皮肤病数据集,共有2594张皮肤镜图像和对应的图像标签,涉及的病变类型包括痣,脂溢性角化病和恶性黑色素瘤。
2.2 实验预处理
数据集分为3部分,使用1815幅图像进行训练,259幅图像进行验证和520幅图像进行测试。每张图片的尺寸在720×540到6708×4439之间。我们将图像统一调整大小为256×256。
2.3 评价指标
为评价分割网络的性能,本文采用以下评价指标:
(1)Dice系数
(9)
(2)Jaccard相似指数
(10)
式中:AP表示分割结果,GT表示专家标注。
(3)Accuracy
(11)
(4)Precision
(12)
(5)Specificity
(13)
(6)Sensitivity
(14)
式中:TP代表真阳性的区域,TN代表真阴性的区域,FP代表假阳性的区域,FN代表假阴性的区域。
(7)AUC
ROC曲线下的面积,取值范围为0~1,越接近1,代表分割性能越好。
2.4 损失函数
在医学图像领域,一般将Dice_loss函数作为损失函数,可以解决数据中类不平衡的问题,其公式如下所示
(15)
式中:X和Y分别代表预测结果和Ground truth。
在使用Dice_loss时,对皮肤病变中的小目标是十分不利的,因为在只存在前景和背景的情况之下,小目标一旦有部分像素预测错误,就会导致Dice大幅度的变动,从而导致梯度变化剧烈,训练不稳定。
因此训练过程采用GDL(generalised dice loss),在Dice_loss基础上增加了w=[w1,w2], 给前景和背景类别加权,计算公式如下
(16)
这样,GDL就能达到病灶区域和Dice系数之间的平衡。
2.5 实验训练过程
实验采用Intel(R) Core(TM) i3-10100F的CPU和NVIDIA GTX-1080Ti的GPU,内存11 GB。
训练中采用Adam优化器,批处理大小(batchsize)设为5,初始学习率lr设为10-4,训练过程中检测验证集中的Dice指标,若7个迭代次数(epoch)无改善,则将学习率调整为原来的1/10。epoch设置为300,防止过拟合,实验采用早停法,若20个epoch内Dice指标没有得到提高则停止训练。
为了减轻小数据集的问题,在实验训练中采用动态数据增强,使用了原始图像的各种类型的转换,例如旋转、平移、翻转等。训练结果在180个epoch左右达到最好分割效果。
2.6 实验后处理
为了使最后的分割效果达到最佳,在预测阶段将测试集的图片分别以原图,旋转90°、180°、270°进行预测,然后旋转至原图角度,将4张图片每个像素点取平均,实验结果表明对分割精度有一定的提升。
2.7 实验结果
本文分别进行了消融实验和对比实验,见表1和表2。表1显示的是基于U-net加入不同模块之后对于皮肤病分割的效果对比,随机选取两张皮肤病变分割结果如图8所示,从表中可以看出,加入密集连接的空间金字塔池(DenseASPP)模块后对于分割性能有明显的提升。病变的位置、形状和比例可能会有很大的变化,从图8(c)和图8(d)第一行可以看出,增加DenseASPP模块可以有效增加真阳性区域,第二行对于小目标的分割,该模块也可以使得分割结果更贴近专家标注,实验结果表明加入多尺度模块可以提升不同大小病灶的分割精度。
表1 不同改进方法在ISIC2018皮肤病图像分割任务上的实验结果
本文同时加入密集连接的空间金字塔池(DenseASPP)模块和双向卷积LSTM(Bi-Directional ConvLSTM)可以进一步提升分割结果,从图8(d)和图8(e)也可以看出,加入B-ConvLSTM之后,通过将编码层具有更高分辨率的特征图和从反卷积层提取的包含更多语义信息的特征图融合起来得到更有效的特征信息,来补偿编码期间丢失的位置信息,分割边缘更贴近专家标注,分割精度比不加入该模块有提升。
从表1可以看出,本文同时加入密集连接的空间金字塔池(DenseASPP)模块、双向卷积LSTM(Bi-Directional ConvLSTM)以及软注意力机制可以使分割精度有进一步的提高。网络每一层输出的特征图质量取决于有效的特征学习,SE块的自适应特征学习通过关注有效信息特征和抑制冗余无效特征,从图8(e)和图8(f)可以看出,增加通道注意力机制之后轮廓的分割更加清晰,贴近专家标注。本文提出的模型在Dice、Jaccard和准确率指标上相对于U-net分别提高了4.32%、6.46%、1.63%,验证了该模型的优越性。
图8 不同模块皮肤病变分割结果
不同分割模型对于2018皮肤病数据集的分割结果见表2,为了比较各个模型之间的性能,所有实验采取相同的训练策略。从表中可以看出,相对于U-net和U-net++,本文提出的模型在分割精度(Dice系数)上分别有4.32%和3.23%的提升,比MCGU-Net也有更好的分割效果。
表2 不同模型在ISIC2018皮肤病图像分割任务上的实验结果
图9是不同分割模型在皮肤病数据集上的分割效果。从图中可以看出,针对第一行皮肤病灶,模型普遍存在分割区域过大的情况,本文提出的模型能够有效改善,分割病灶边缘更加清晰。对于第二行图片,MCGU-Net分割结果有明显的假阳性区域,真阳性区域过小,本文模型在有效减少假阳性区域的同时,显著减少假阴性区域,从而使分割效果达到最佳。
图9 不同网络皮肤病变分割结果
本文对预测图片通过设置阈值进行二分处理,阈值选取对于图像分割精度有一定影响,本文通过实验确定了阈值选为0.6时,能得到最高的分割精度,Dice系数达到0.895。Dang等[16]提出了两种自适应阈值方法,以基于颜色模型的归一化来评估皮肤病变分割的阈值,对于提取的ROI的细分有一定的效果。未来阈值的自动选取仍是可以继续研究的方向,可以使得该算法适应于不同的数据集。
3 结束语
本文基于U型结构提出了一种综合多尺度卷积神经网络,通过加入B-ConvLSTM代替跳跃连接,将编码层具有更高分辨率的特征图和从反卷积层提取的包含更多语义信息的特征图融合获取更有效特征信息,利用并行空洞卷积获取多尺度信息,添加注意力机制,为每个通道赋予不同的权重系数,从而来强化重要的特征,并对非重要的特征进行抑制,最终实现更精准的病灶分割。实验结果表明,该模型优于目前的分割模型,能够有效地提高皮肤病分割精度,在医疗图像领域有一定的参考意义,未来也会在该领域进行更多研究,将其扩展到更多的医学图像分割任务中。