皮肤是人体最大的器官,很多内脏疾病会直接体现在皮肤上,准确分割皮肤病灶图像具有重要的临床意义。针对皮肤病灶区域颜色复杂、边界模糊、尺度信息参差不齐等特点,本文提出一种基于密集空洞空间金字塔池化(DenseASPP)和注意力机制的皮肤病灶图像分割方法。该方法以U型网络(U-Net)为基础,首先重新设计新的编码器,以大量残差连接代替普通的卷积堆叠,在拓展网络深度后还能有效保留关键特征;其次,将通道注意力与空间注意力融合并加入残差连接,从而使网络自适应地学习图像的通道与空间特征;最后,引入并重新设计的DenseASPP以扩大感受野尺寸并获取多尺度特征信息。本文所提算法在国际皮肤影像协会官方公开数据集(ISIC2016)中得到令人满意的结果,平均交并比(mIOU)、敏感度(SE)、精确率(PC)、准确率(ACC)和戴斯相似性系数(Dice)分别为0.901 8、0.945 9、0.948 7、0.968 1、0.947 3。实验结果证明,本文方法能够提高皮肤病灶图像分割效果,有望能为专业皮肤病医生提供辅助诊断。
引用本文: 尹稳, 周冬明, 范腾, 余卓璞, 李祯. 基于密集空洞空间金字塔池化和注意力机制的皮肤病灶图像分割方法. 生物医学工程学杂志, 2022, 39(6): 1108-1116. doi: 10.7507/1001-5515.202208015 复制
引言
皮肤病是一种常见的身体疾病。皮肤病的种类繁多,很多内脏疾病会直接体现在皮肤上。近年来,以黑色素瘤为代表的色素障碍性皮肤病发病率逐年上升。据美国癌症协会(American cancer society,ACS)统计,2022 年美国新增黑色素瘤患者将达到99 780例,预计死亡病例达7 650例[1]。但如果能在早期发现黑色素瘤,其 5 年生存率可达到90% 以上[2]。因此,快速诊断并治疗黑色素瘤对挽救患者生命具有重要意义。目前,皮肤病的诊断方法大多依赖皮肤镜技术[3],皮肤病灶图像分割可快速分离出正常区域与病变区域,能够为皮肤镜检查提供关键依据。但早期皮肤病患者病灶区域颜色浅、边缘模糊,且病变区域常常藏匿于毛发之间,与正常皮肤和常见的良性痣难以区分,即便是专业的医护人员也会有漏诊和误诊情况,所以急需一种分割方法实现皮肤病灶区域的自动分割。
传统的分割方法在过去很长一段时间内占有主导地位,这类算法大多是对图像表层信息的提取,最具代表性的算法有基于阈值[4-6]、区域[7-8]、聚类[9-11]、边缘检测[12-13]等。例如Glaister等[14]提出一种基于纹理清晰度(texture distinctiveness,TD)的皮肤病灶分割算法,该算法以TD度量为核心,在学习输入图片的稀疏纹理分布后,根据TD度量捕捉到的纹理分布之间的差异,合理设置阈值,将图片分割为正常区域与病变区域。Masood等[15]提出一种基于聚类、阈值并结合模糊C均值算法的皮肤镜图像分割方法,首先用平滑滤波的方法对图像进行预处理,再用模糊C均值使图像中的每个像素和C聚类中心之间的加权相似性度量的目标函数最优,使得每个像素被准确分到某一类。
近年来,随着深度学习方法的迅猛发展,图像处理技术得到很大提升,图像分割越来越多地用于医学领域,利用计算机辅助诊断的方式也已广泛应用于临床诊断中,研究人员提出了各种算法以解决皮肤病灶图像边缘容易忽略、分割不准确的难点。Long等[16]开创性地提出一种全卷积神经网络(fully convolutional network,FCN),以端到端的方式实现了图像像素级别的分割,开创了语义分割的先河。而医学领域图像分割的真正流行,是在于Ronneberger等[17]提出具有编码器-解码器结构的U型网络(U-Net),该网络编码部分与解码部分完全对称,为避免上下采样造成的特征丢失,网络在编码与解码之间采用跳跃连接的方式相连,实现高低级语义特征的融合。如今U-Net已经有多种变体,如巢穴U-Net (U-Net++)[18]、残差U-Net(residual U-Net,Res-UNet)[19]、循环残差U-Net(recurrent residual U-Net,R2U-Net)[20]、注意力U-Net(attention U-Net,Atten-UNet)[21]、改进巢穴U-Net(UNet3+)[22]等,这些变形网络也被大量用在皮肤病灶图像分割中。例如,Oktay等[21]将注意力机制加入到分割网络中,扩展了卷积神经网络的表达能力,自适应地学习特征权重,赋予重要特征更大的权重,更快速地学习皮肤病灶特征。Yuan等[23-24]提出一种新的基于杰卡德距离(Jaccard distance)的损失函数以实现皮肤病灶图像的自动分割。Chen等[25]将变换器(Transformer)运用到医学图像分割,提出Transformer U-Net(Trans-UNet),能够对像素信息进行精准定位,解决U-Net在显式建模中的局限性。Valanarasu等[26]将多层感知机(multilayer perceptron,MLP)运用到U-Net网络中形成新的分割网络——感知器U-Net(UNeXt),大大减少了网络参数量,实现皮肤病灶图像的快速分割。但以上算法依然存在着大量不足:U-Net系列在上下采样过程中容易造成空间信息丢失,导致分割精度下降;Transformer系列参数较多,计算量大,需要依靠强大的硬件设备,且捕捉局部特征的能力不足,尤其在医学图像这样的小数据集身上。
针对上述问题,本文提出一种基于密集空洞空间金字塔池化(dense atrous spatial pyramid pooling,DenseASPP)和注意力机制的新型皮肤病灶图像分割方法[27],文章的主要贡献有:
(1)基于U-Net网络,提出全新的编码器-解码器分割网络,以端到端的方式训练该网络。对原始网络的编码器模块进行了新的设计,以两次残差连接代替原来简单的卷积(convolution,Conv)堆叠,有效解决上下采样过程造成的特征丢失。
(2)引入空间注意力与通道注意力双重高效注意力机制,赋予网络学习病灶特征的能力,同时用残差方式连接以提高网络的编解码能力。
(3)修改了瓶颈层的结构,重新设计的DenseASPP运用于瓶颈层,在扩大感受野的同时,通过密集跳跃连接来获取不同高低级尺度的特征信息。
1 算法描述
本文以U-Net模型为基础,结合残差网络、空洞Conv、密集网络以及注意力机制等思想,提出全新的皮肤病灶图像分割模型,整体分割流程和网络结构如图1所示,其中模块两侧数字表示图片尺寸大小,模块顶部数字表示通道数。不同尺寸大小的图片在预处理阶段进行统一裁剪、灰度化处理和翻转操作,使得图片大小统一为256 × 256,通道数目统一为1。图片送入网络后,依次经过5次下采样和5次上采样,下采样过程中,图片尺寸逐渐变小,通道逐渐增多,能够有效提取病灶特征;上采样过程中,图片尺寸逐渐增大,通道数逐渐减少,病灶特征逐渐恢复。在上下采样的中间,用了一层瓶颈层连接,瓶颈层加入新设计的DenseASPP模块,用不同大小扩张系数的空洞Conv获取多尺度信息。
1.1 编码器模块
由于皮肤病灶图像复杂,特征分布不均,需要经过多次重复运算才能提高模型的拟合能力,理论上来说,网络越深,模型的拟合能力就越好。但在训练的时候,随着网络层数的增多,网络可能发生退化现象,反向传播的特征不能及时返回,浅层特征得不到训练,容易产生梯度消失和梯度爆炸的问题。原始U-Net在特征提取时,只运用了简单的Conv和池化操作,重复的Conv操作虽然使得网络深度得以加深,但在上下采样过程中,不可避免会带来上下文信息丢失,使得模型分割精度不足。为此,本文在编码器模块中引入残差连接以替换原始网络中简单的Conv堆叠,如图2所示。输入特征X经过两次Conv 3 × 3、批归一化(batch normalization,BN)和线性修正单元( rectified linear units,ReLU) 得到F(X),F(X)与特征X相加之后再次送入第二个Conv 3 × 3、BN和ReLU得到最终特征向量 ,计算过程如式(1)所示:
'/> |
这样,新的网络深度在编码器部分就增加到了20层,拟合能力大大提升。同时,每一次下采样的信息都会得到保留,下采样的结果会通过跳跃连接的方式直接复制给上采样,使得图像细节特征不会丢失,更有利于皮肤病灶图像分割。
1.2 密集空洞空间金字塔池化
在深度学习中,通常用Conv来进行特征提取,但是当大量使用Conv操作时,容易导致参数过多、权重优化较难等问题[28]。为了更好地提取局部信息和全局信息,本文重新设计了DenseASPP用于瓶颈层,通过设置不同大小的扩张率得到具有不同感受野大小的特征图,以捕获分割目标的多尺度信息[29],新设计的DenseASPP结构如图3所示。
感受野的大小在深度神经网络中有着举足轻重的作用。一般来说感受野越大,神经元能够接受输入特征的信息就越多,就能够更好捕捉全局信息;反之,感受野越小,神经元能够接受输入特征的信息就越少,就能够更好捕捉局部信息。对于皮肤病灶图像分割,全局信息与局部信息同样重要,这就需要有不同大小的Conv核来同时获取全局信息和局部信息,充分利用多尺度信息进行皮肤病灶图像分割。原始DenseASPP作为独立的一个网络用于场景分割中,其结构包含5个扩张Conv,但过大的感受野会因为网格效应使得图片的一些像素被忽略,丢失局部信息。为此,本文设计了空洞Conv扩张系数大小分别为1、2、3的DenseASPP,每个扩张系数分别对应一个尺度的扩张Conv,输入特征采用密集连接的方式分别送入多个扩张Conv形成多条独立分支,经过扩张Conv处理后,这些密集的独立分支又会融合成一条支路,使得连接方式更密集,感受野大小也较为合理。
与空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)相比,DenseASPP采用了密集连接的方式,有着更密集的特征金字塔,能够接受更多的图片像素。图3中,d 表示空洞Conv的扩张系数(dilation rate)。对于Conv核大小为K,扩张系数为d的空洞Conv,当前层感受野的理论大小如式(2)所示:
若是两个空洞Conv叠加,则感受野的理论大小如式(3)所示:
在数据预处理阶段,已经将图片统一重塑为256 × 256的大小,在经过编码网络5次下采样操作后,图片大小变为16 × 16,故在DenseASPP模块中,扩张系数d分别选择为1、2、3。由式(2)和式(3)可以计算出,当前感受野的大小为13,已经超过特征图像的一半且不大于特征图像,可以很好地捕捉整张图片的特征信息。利用稠密连接的方式将多个具有不同扩张系数的空洞Conv连接起来,在不降低空间维度的同时扩大感受野范围,从而获得多尺度信息[30],可以大大提高分割效果。
1.3 卷积模块注意力机制
由于皮肤病灶区域边界模糊,且常常伴有毛发遮挡,在进行图像处理时往往难以准确分割,为此本文引入Conv模块注意力机制(convolutional block attention module,CBAM)[31],让模型增加注意力能力,重点关注病灶区域而忽略杂乱无章的背景信息。CBAM是一种软注意力机制,与其他注意力机制不同的是,CBAM由通道注意力和空间注意力两个模块组成,是一种混合注意力机制,整体结构如图4所示。
本文在CBAM中加入跳跃连接以防止特征丢失,同时将CBAM放于每一个解码模块后,每一次跳跃连接之前。输入特征先后经过通道注意力与空间注意力模块,并与原特征相加得到具有注意力权值的特征。其中,通道注意力关注“是什么”,即什么样的特征需要被关注,具体过程如图4中通道注意力模块所示:给定输入特征F的大小为H × W × C,F经过并行的最大池化和平均池化后得到两个大小为1 × 1 × C的特征向量F’和F’’,再把F’和F’’分别送入同一个多层感知机进行参数共享,之后还原为1 × 1 × C的大小。最后把两个特征向量相加送入S型生长曲线(sigmoid)函数激活,得到具有通道位置权重的特征向量MC(F),MC(F)大小为H × W × C,计算过程如式(4)所示:
式中,σ代表sigmoid激活函数;多层感知机以符号MLP表示;平均池化以符号poolavg表示,最大池化以poolmax表示。
空间注意力关注“在哪里”,即哪里的特征需要被关注,具体过程如图4中空间注意力模块所示。经过通道注意力处理后的特征F1大小为H × W × C,F1通过最大池化和平均池化后得到两个大小为H × W×1的特征向量F1’和F1’’,之后把F1’和F1’’拼接成H × W × 2的新向量,这个新向量送入Conv核大小为7 × 7,步长为1的Conv进行降维,并用sigmoid函数激活,最终得到具有空间位置权重的特征向量MS(F),MS(F)大小为H × W × 1。计算过程如式(5)所示:
式中,σ代表sigmoid激活函数, 代表Conv核大小为7 × 7的Conv操作,平均池化以符号poolavg表示,最大池化以poolmax表示。
整体CBAM操作如下:输入特征F与经过通道注意力机制处理后的MC(F)相乘得到F1,F1送入空间注意力机制处理得到MS(F),MS(F)与F1再次相乘得到改进特征F2,最后,输入的F与F2相加得到改进特征F3,如式(6)~式(8)所示:
式中, 表示特征相乘。
2 实验结果与分析
2.1 实施细节
本次实验基于操作系统Windows(Microsoft Inc.,美国),深度学习框架PyTorch(Meta Inc.,美国)进行研究操作,中央处理器为Core(TM) i5-12 600 KF(Intel,美国),内存16 G,图形处理器为RTX 3 060(NVIDIA,美国),显存12 G,编程语言为Python 3.7(Centrum Wiskunde & Informatica,荷兰)。
实验采用均方根传递算法(root mean square prop,RMSProp)作为优化器,冲量设置为0.9,权重衰退为1 × 10−8,学习率设置为1 × 10−5。实验采用分批策略进行训练,批大小(batch size)为8,共迭代500个训练周期,保存验证集损失最低的模型作为最终模型。
训练过程采用二元交叉熵损失函数(binary cross entropy loss function,BCE-Loss)(以符号L表示),其数学定义式如式(9)~式(10)所示:
其中,N为批处理的个数,为第n个批处理所对应的损失值,代表样本n的真实标签,代表样本n预测的输出值,σ为sigmoid函数。
2.2 数据集与评价指标
数据集采用国际皮肤影像协会(International Skin Imaging Collaboration,ISIC)官方公开数据集ISIC 2016(网址:https://challenge.isic-archive.com/)[32]。该数据集共有训练集图像900张,测试集图像379张,收录多种皮肤病原图并含有真实标签图。由于数据集图像大小不一,且所有图像分辨率均大于500 × 500,为节约计算资源,加快收敛速度,本次实验将所有训练图片重塑为256 × 256的大小。同时,训练数据在送入网络时先进行了灰度化处理,并利用随机水平、垂直及混合翻转等数据增强方式进行数据集扩充。
评价指标是衡量一个算法优劣的直接体现,本文主要采用平均交并比(mean intersection over union,mIOU)、敏感度(sensitivity,SE)、精确率(precision,PC)、准确率(accuracy,ACC)和戴斯相似性系数(Dice)五种指标进行算法评价。各指标数学定义式如式(11)~式(15)所示:
式中,真阳性(true positive,TP)表示模型正确分割出手工标签图病灶区域的样本数;真阴性(true negative,TN)表示模型正确分割出背景区域的样本数;假阳性(false positive,FP)表示模型将背景误分为手工标签图病灶区域的样本数;假阴性(false negative,FN)表示模型将手工标签图病灶区域误分为背景的样本数。其中,对于mIOU来说,C = 2,表示分割任务中的类别数,即病灶区域和背景区域两类。理论上来说,上述指标越接近于1,分割效果越好。
2.3 实验结果及分析
为验证本文模型的优劣,本文与U-Net、UNet++、UNeXt等模型对比,结果如表1所示,其中最优指标加粗显示。表1内数据均采用作者官方公布的代码重新训练,除了网络模型不同,其他训练环境均相同。
由表1可以看出,在数据集ISIC 2016中,本文算法在mIOU、PC、ACC和Dice四个指标中得分均为最优,SE位列第三位。但相比原始U-Net网络,五个指标均有大幅提升。图像分割中mIOU是一个极为重要的指标,本文模型相比其他各组均有较大提升,说明本文模型的编码器能够有效提取皮肤病灶特征,解码器能够有效恢复图像特征。BCE-Loss函数的使用,更有效地降低了外界噪声的干扰,并保留了更多病灶边缘信息。同时,Dice系数、ACC、SE和PC也有不同程度的提高,说明本文模型能够更加有效地平衡病灶区域与背景区域,能够有效提高复杂背景下的皮肤病灶图像分割效果。
为了更直观有效地显示不同算法的皮肤病灶图像分割效果,图5选取了各模型的部分分割结果图,本文随机选取了8例患者,每一行代表一例患者,以其在数据集ISIC 2016中的名称为名。其中第1列和第9列分别为皮肤病灶图像原图和对应的手工标签图,第2~7列分别为R2U-Net[17]、U-Net[14]、U-Net++[15]、UNeXt[23]、UNet3+[19]、Atten-UNet[18] 的分割结果图,第8列为本文模型的分割结果图。从图5中可以看到,UNeXt对细节颜色相似的地方不能有效区分,Atten-UNet对于大面积的病灶区域分割效果较好,但边缘不平滑,UNet++在进行分割时会出现空洞现象,U-Net 、R2U-Net和UNet3+存在大量漏检误检现象,容易把背景和病灶区域误分。由于早期的皮肤疾病患者病变不明显,病灶区域与正常皮肤相似度较高,如图5第2、3行所示,U-Net、U-Net++和UNet3+都把正常皮肤颜色较深的区域当做病灶区域,而病灶区域较浅的地方被误认为正常区域,误检现象十分明显。同时,由于皮肤疾病的特殊性,病灶区域经常藏匿于毛发之下,毛发遮挡常常成为分割的难点,如图5第5行所示,R2U-Net、U-Net++以及UNeXt都不能准确识别病灶区域与毛发区域,在毛发与病灶区域的边缘分割粗糙,呈现毛发的轮廓。相比之下,本文算法对于毛发遮挡的地方,模型不仅能够准确识别毛发与病灶区域,还能平滑地将其分割开来,病灶边缘分割更准确平滑,细节部位能更好地保留,在病变区域和背景极为相似的地方也能够做到精准分割,不会把正常皮肤与病灶区域相混淆,漏检和误检现象基本没有,分割效果更胜一筹。
2.4 消融实验
为验证所提模型对分割效果的有效性,本文进行了模块消融实验,对本文所提出的三个模块:编码器模块、CBAM、DenseASPP,以及CBAM中的跳跃连接进行消融实验,结果如表2所示。
表2第1行,为未对网络做任何改变的基准模型,即标准U-Net模型;第2行为仅修改编码器模块的网络模型,第3~5行是分别在第2行的基础上依次加入CBAM、跳跃连接以及DenseASPP的网络模型。由表2内数据可以看到,5个评价指标均呈上升趋势,尤其是CBAM的加入,mIOU指标数值上升明显,其余4个指标SE、PC、ACC、Dice也都有所增长。各模块的加入对5个评价指标均有不同程度的提升,这表明不同模块的合理组合有利于提高皮肤病灶分割的性能,本文所提出的模块是有效的。
3 结论
本文提出一种基于DenseASPP和注意力机制的皮肤病灶图像分割方法,设计了3个新的网络模块:编码器模块、DenseASPP和CBAM。编码器对皮肤病灶图像进行特征提取,注意力机制关注病灶特征信息使得分割更加精准,同时利用DenseASPP来扩大感受野的范围以获取多尺度特征信息。本研究通过5个评价指标合理评价算法,并通过消融实验证明所提模块的有效性,在数据集ISIC 2016中取得最高的mIOU、PC、ACC和Dice。本文方法的提出为图像分割提供了新的思路,有望为专业医生提供相关医学参考。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:尹稳负责算法设计与实现、数据处理与分析、论文写作与修改;周冬明提供实验指导及论文审阅修订;范腾和余卓璞参与数据集收集及预处理;李祯负责整理实验结果。
引言
皮肤病是一种常见的身体疾病。皮肤病的种类繁多,很多内脏疾病会直接体现在皮肤上。近年来,以黑色素瘤为代表的色素障碍性皮肤病发病率逐年上升。据美国癌症协会(American cancer society,ACS)统计,2022 年美国新增黑色素瘤患者将达到99 780例,预计死亡病例达7 650例[1]。但如果能在早期发现黑色素瘤,其 5 年生存率可达到90% 以上[2]。因此,快速诊断并治疗黑色素瘤对挽救患者生命具有重要意义。目前,皮肤病的诊断方法大多依赖皮肤镜技术[3],皮肤病灶图像分割可快速分离出正常区域与病变区域,能够为皮肤镜检查提供关键依据。但早期皮肤病患者病灶区域颜色浅、边缘模糊,且病变区域常常藏匿于毛发之间,与正常皮肤和常见的良性痣难以区分,即便是专业的医护人员也会有漏诊和误诊情况,所以急需一种分割方法实现皮肤病灶区域的自动分割。
传统的分割方法在过去很长一段时间内占有主导地位,这类算法大多是对图像表层信息的提取,最具代表性的算法有基于阈值[4-6]、区域[7-8]、聚类[9-11]、边缘检测[12-13]等。例如Glaister等[14]提出一种基于纹理清晰度(texture distinctiveness,TD)的皮肤病灶分割算法,该算法以TD度量为核心,在学习输入图片的稀疏纹理分布后,根据TD度量捕捉到的纹理分布之间的差异,合理设置阈值,将图片分割为正常区域与病变区域。Masood等[15]提出一种基于聚类、阈值并结合模糊C均值算法的皮肤镜图像分割方法,首先用平滑滤波的方法对图像进行预处理,再用模糊C均值使图像中的每个像素和C聚类中心之间的加权相似性度量的目标函数最优,使得每个像素被准确分到某一类。
近年来,随着深度学习方法的迅猛发展,图像处理技术得到很大提升,图像分割越来越多地用于医学领域,利用计算机辅助诊断的方式也已广泛应用于临床诊断中,研究人员提出了各种算法以解决皮肤病灶图像边缘容易忽略、分割不准确的难点。Long等[16]开创性地提出一种全卷积神经网络(fully convolutional network,FCN),以端到端的方式实现了图像像素级别的分割,开创了语义分割的先河。而医学领域图像分割的真正流行,是在于Ronneberger等[17]提出具有编码器-解码器结构的U型网络(U-Net),该网络编码部分与解码部分完全对称,为避免上下采样造成的特征丢失,网络在编码与解码之间采用跳跃连接的方式相连,实现高低级语义特征的融合。如今U-Net已经有多种变体,如巢穴U-Net (U-Net++)[18]、残差U-Net(residual U-Net,Res-UNet)[19]、循环残差U-Net(recurrent residual U-Net,R2U-Net)[20]、注意力U-Net(attention U-Net,Atten-UNet)[21]、改进巢穴U-Net(UNet3+)[22]等,这些变形网络也被大量用在皮肤病灶图像分割中。例如,Oktay等[21]将注意力机制加入到分割网络中,扩展了卷积神经网络的表达能力,自适应地学习特征权重,赋予重要特征更大的权重,更快速地学习皮肤病灶特征。Yuan等[23-24]提出一种新的基于杰卡德距离(Jaccard distance)的损失函数以实现皮肤病灶图像的自动分割。Chen等[25]将变换器(Transformer)运用到医学图像分割,提出Transformer U-Net(Trans-UNet),能够对像素信息进行精准定位,解决U-Net在显式建模中的局限性。Valanarasu等[26]将多层感知机(multilayer perceptron,MLP)运用到U-Net网络中形成新的分割网络——感知器U-Net(UNeXt),大大减少了网络参数量,实现皮肤病灶图像的快速分割。但以上算法依然存在着大量不足:U-Net系列在上下采样过程中容易造成空间信息丢失,导致分割精度下降;Transformer系列参数较多,计算量大,需要依靠强大的硬件设备,且捕捉局部特征的能力不足,尤其在医学图像这样的小数据集身上。
针对上述问题,本文提出一种基于密集空洞空间金字塔池化(dense atrous spatial pyramid pooling,DenseASPP)和注意力机制的新型皮肤病灶图像分割方法[27],文章的主要贡献有:
(1)基于U-Net网络,提出全新的编码器-解码器分割网络,以端到端的方式训练该网络。对原始网络的编码器模块进行了新的设计,以两次残差连接代替原来简单的卷积(convolution,Conv)堆叠,有效解决上下采样过程造成的特征丢失。
(2)引入空间注意力与通道注意力双重高效注意力机制,赋予网络学习病灶特征的能力,同时用残差方式连接以提高网络的编解码能力。
(3)修改了瓶颈层的结构,重新设计的DenseASPP运用于瓶颈层,在扩大感受野的同时,通过密集跳跃连接来获取不同高低级尺度的特征信息。
1 算法描述
本文以U-Net模型为基础,结合残差网络、空洞Conv、密集网络以及注意力机制等思想,提出全新的皮肤病灶图像分割模型,整体分割流程和网络结构如图1所示,其中模块两侧数字表示图片尺寸大小,模块顶部数字表示通道数。不同尺寸大小的图片在预处理阶段进行统一裁剪、灰度化处理和翻转操作,使得图片大小统一为256 × 256,通道数目统一为1。图片送入网络后,依次经过5次下采样和5次上采样,下采样过程中,图片尺寸逐渐变小,通道逐渐增多,能够有效提取病灶特征;上采样过程中,图片尺寸逐渐增大,通道数逐渐减少,病灶特征逐渐恢复。在上下采样的中间,用了一层瓶颈层连接,瓶颈层加入新设计的DenseASPP模块,用不同大小扩张系数的空洞Conv获取多尺度信息。
1.1 编码器模块
由于皮肤病灶图像复杂,特征分布不均,需要经过多次重复运算才能提高模型的拟合能力,理论上来说,网络越深,模型的拟合能力就越好。但在训练的时候,随着网络层数的增多,网络可能发生退化现象,反向传播的特征不能及时返回,浅层特征得不到训练,容易产生梯度消失和梯度爆炸的问题。原始U-Net在特征提取时,只运用了简单的Conv和池化操作,重复的Conv操作虽然使得网络深度得以加深,但在上下采样过程中,不可避免会带来上下文信息丢失,使得模型分割精度不足。为此,本文在编码器模块中引入残差连接以替换原始网络中简单的Conv堆叠,如图2所示。输入特征X经过两次Conv 3 × 3、批归一化(batch normalization,BN)和线性修正单元( rectified linear units,ReLU) 得到F(X),F(X)与特征X相加之后再次送入第二个Conv 3 × 3、BN和ReLU得到最终特征向量 ,计算过程如式(1)所示:
'/> |
这样,新的网络深度在编码器部分就增加到了20层,拟合能力大大提升。同时,每一次下采样的信息都会得到保留,下采样的结果会通过跳跃连接的方式直接复制给上采样,使得图像细节特征不会丢失,更有利于皮肤病灶图像分割。
1.2 密集空洞空间金字塔池化
在深度学习中,通常用Conv来进行特征提取,但是当大量使用Conv操作时,容易导致参数过多、权重优化较难等问题[28]。为了更好地提取局部信息和全局信息,本文重新设计了DenseASPP用于瓶颈层,通过设置不同大小的扩张率得到具有不同感受野大小的特征图,以捕获分割目标的多尺度信息[29],新设计的DenseASPP结构如图3所示。
感受野的大小在深度神经网络中有着举足轻重的作用。一般来说感受野越大,神经元能够接受输入特征的信息就越多,就能够更好捕捉全局信息;反之,感受野越小,神经元能够接受输入特征的信息就越少,就能够更好捕捉局部信息。对于皮肤病灶图像分割,全局信息与局部信息同样重要,这就需要有不同大小的Conv核来同时获取全局信息和局部信息,充分利用多尺度信息进行皮肤病灶图像分割。原始DenseASPP作为独立的一个网络用于场景分割中,其结构包含5个扩张Conv,但过大的感受野会因为网格效应使得图片的一些像素被忽略,丢失局部信息。为此,本文设计了空洞Conv扩张系数大小分别为1、2、3的DenseASPP,每个扩张系数分别对应一个尺度的扩张Conv,输入特征采用密集连接的方式分别送入多个扩张Conv形成多条独立分支,经过扩张Conv处理后,这些密集的独立分支又会融合成一条支路,使得连接方式更密集,感受野大小也较为合理。
与空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)相比,DenseASPP采用了密集连接的方式,有着更密集的特征金字塔,能够接受更多的图片像素。图3中,d 表示空洞Conv的扩张系数(dilation rate)。对于Conv核大小为K,扩张系数为d的空洞Conv,当前层感受野的理论大小如式(2)所示:
若是两个空洞Conv叠加,则感受野的理论大小如式(3)所示:
在数据预处理阶段,已经将图片统一重塑为256 × 256的大小,在经过编码网络5次下采样操作后,图片大小变为16 × 16,故在DenseASPP模块中,扩张系数d分别选择为1、2、3。由式(2)和式(3)可以计算出,当前感受野的大小为13,已经超过特征图像的一半且不大于特征图像,可以很好地捕捉整张图片的特征信息。利用稠密连接的方式将多个具有不同扩张系数的空洞Conv连接起来,在不降低空间维度的同时扩大感受野范围,从而获得多尺度信息[30],可以大大提高分割效果。
1.3 卷积模块注意力机制
由于皮肤病灶区域边界模糊,且常常伴有毛发遮挡,在进行图像处理时往往难以准确分割,为此本文引入Conv模块注意力机制(convolutional block attention module,CBAM)[31],让模型增加注意力能力,重点关注病灶区域而忽略杂乱无章的背景信息。CBAM是一种软注意力机制,与其他注意力机制不同的是,CBAM由通道注意力和空间注意力两个模块组成,是一种混合注意力机制,整体结构如图4所示。
本文在CBAM中加入跳跃连接以防止特征丢失,同时将CBAM放于每一个解码模块后,每一次跳跃连接之前。输入特征先后经过通道注意力与空间注意力模块,并与原特征相加得到具有注意力权值的特征。其中,通道注意力关注“是什么”,即什么样的特征需要被关注,具体过程如图4中通道注意力模块所示:给定输入特征F的大小为H × W × C,F经过并行的最大池化和平均池化后得到两个大小为1 × 1 × C的特征向量F’和F’’,再把F’和F’’分别送入同一个多层感知机进行参数共享,之后还原为1 × 1 × C的大小。最后把两个特征向量相加送入S型生长曲线(sigmoid)函数激活,得到具有通道位置权重的特征向量MC(F),MC(F)大小为H × W × C,计算过程如式(4)所示:
式中,σ代表sigmoid激活函数;多层感知机以符号MLP表示;平均池化以符号poolavg表示,最大池化以poolmax表示。
空间注意力关注“在哪里”,即哪里的特征需要被关注,具体过程如图4中空间注意力模块所示。经过通道注意力处理后的特征F1大小为H × W × C,F1通过最大池化和平均池化后得到两个大小为H × W×1的特征向量F1’和F1’’,之后把F1’和F1’’拼接成H × W × 2的新向量,这个新向量送入Conv核大小为7 × 7,步长为1的Conv进行降维,并用sigmoid函数激活,最终得到具有空间位置权重的特征向量MS(F),MS(F)大小为H × W × 1。计算过程如式(5)所示:
式中,σ代表sigmoid激活函数, 代表Conv核大小为7 × 7的Conv操作,平均池化以符号poolavg表示,最大池化以poolmax表示。
整体CBAM操作如下:输入特征F与经过通道注意力机制处理后的MC(F)相乘得到F1,F1送入空间注意力机制处理得到MS(F),MS(F)与F1再次相乘得到改进特征F2,最后,输入的F与F2相加得到改进特征F3,如式(6)~式(8)所示:
式中, 表示特征相乘。
2 实验结果与分析
2.1 实施细节
本次实验基于操作系统Windows(Microsoft Inc.,美国),深度学习框架PyTorch(Meta Inc.,美国)进行研究操作,中央处理器为Core(TM) i5-12 600 KF(Intel,美国),内存16 G,图形处理器为RTX 3 060(NVIDIA,美国),显存12 G,编程语言为Python 3.7(Centrum Wiskunde & Informatica,荷兰)。
实验采用均方根传递算法(root mean square prop,RMSProp)作为优化器,冲量设置为0.9,权重衰退为1 × 10−8,学习率设置为1 × 10−5。实验采用分批策略进行训练,批大小(batch size)为8,共迭代500个训练周期,保存验证集损失最低的模型作为最终模型。
训练过程采用二元交叉熵损失函数(binary cross entropy loss function,BCE-Loss)(以符号L表示),其数学定义式如式(9)~式(10)所示:
其中,N为批处理的个数,为第n个批处理所对应的损失值,代表样本n的真实标签,代表样本n预测的输出值,σ为sigmoid函数。
2.2 数据集与评价指标
数据集采用国际皮肤影像协会(International Skin Imaging Collaboration,ISIC)官方公开数据集ISIC 2016(网址:https://challenge.isic-archive.com/)[32]。该数据集共有训练集图像900张,测试集图像379张,收录多种皮肤病原图并含有真实标签图。由于数据集图像大小不一,且所有图像分辨率均大于500 × 500,为节约计算资源,加快收敛速度,本次实验将所有训练图片重塑为256 × 256的大小。同时,训练数据在送入网络时先进行了灰度化处理,并利用随机水平、垂直及混合翻转等数据增强方式进行数据集扩充。
评价指标是衡量一个算法优劣的直接体现,本文主要采用平均交并比(mean intersection over union,mIOU)、敏感度(sensitivity,SE)、精确率(precision,PC)、准确率(accuracy,ACC)和戴斯相似性系数(Dice)五种指标进行算法评价。各指标数学定义式如式(11)~式(15)所示:
式中,真阳性(true positive,TP)表示模型正确分割出手工标签图病灶区域的样本数;真阴性(true negative,TN)表示模型正确分割出背景区域的样本数;假阳性(false positive,FP)表示模型将背景误分为手工标签图病灶区域的样本数;假阴性(false negative,FN)表示模型将手工标签图病灶区域误分为背景的样本数。其中,对于mIOU来说,C = 2,表示分割任务中的类别数,即病灶区域和背景区域两类。理论上来说,上述指标越接近于1,分割效果越好。
2.3 实验结果及分析
为验证本文模型的优劣,本文与U-Net、UNet++、UNeXt等模型对比,结果如表1所示,其中最优指标加粗显示。表1内数据均采用作者官方公布的代码重新训练,除了网络模型不同,其他训练环境均相同。
由表1可以看出,在数据集ISIC 2016中,本文算法在mIOU、PC、ACC和Dice四个指标中得分均为最优,SE位列第三位。但相比原始U-Net网络,五个指标均有大幅提升。图像分割中mIOU是一个极为重要的指标,本文模型相比其他各组均有较大提升,说明本文模型的编码器能够有效提取皮肤病灶特征,解码器能够有效恢复图像特征。BCE-Loss函数的使用,更有效地降低了外界噪声的干扰,并保留了更多病灶边缘信息。同时,Dice系数、ACC、SE和PC也有不同程度的提高,说明本文模型能够更加有效地平衡病灶区域与背景区域,能够有效提高复杂背景下的皮肤病灶图像分割效果。
为了更直观有效地显示不同算法的皮肤病灶图像分割效果,图5选取了各模型的部分分割结果图,本文随机选取了8例患者,每一行代表一例患者,以其在数据集ISIC 2016中的名称为名。其中第1列和第9列分别为皮肤病灶图像原图和对应的手工标签图,第2~7列分别为R2U-Net[17]、U-Net[14]、U-Net++[15]、UNeXt[23]、UNet3+[19]、Atten-UNet[18] 的分割结果图,第8列为本文模型的分割结果图。从图5中可以看到,UNeXt对细节颜色相似的地方不能有效区分,Atten-UNet对于大面积的病灶区域分割效果较好,但边缘不平滑,UNet++在进行分割时会出现空洞现象,U-Net 、R2U-Net和UNet3+存在大量漏检误检现象,容易把背景和病灶区域误分。由于早期的皮肤疾病患者病变不明显,病灶区域与正常皮肤相似度较高,如图5第2、3行所示,U-Net、U-Net++和UNet3+都把正常皮肤颜色较深的区域当做病灶区域,而病灶区域较浅的地方被误认为正常区域,误检现象十分明显。同时,由于皮肤疾病的特殊性,病灶区域经常藏匿于毛发之下,毛发遮挡常常成为分割的难点,如图5第5行所示,R2U-Net、U-Net++以及UNeXt都不能准确识别病灶区域与毛发区域,在毛发与病灶区域的边缘分割粗糙,呈现毛发的轮廓。相比之下,本文算法对于毛发遮挡的地方,模型不仅能够准确识别毛发与病灶区域,还能平滑地将其分割开来,病灶边缘分割更准确平滑,细节部位能更好地保留,在病变区域和背景极为相似的地方也能够做到精准分割,不会把正常皮肤与病灶区域相混淆,漏检和误检现象基本没有,分割效果更胜一筹。
2.4 消融实验
为验证所提模型对分割效果的有效性,本文进行了模块消融实验,对本文所提出的三个模块:编码器模块、CBAM、DenseASPP,以及CBAM中的跳跃连接进行消融实验,结果如表2所示。
表2第1行,为未对网络做任何改变的基准模型,即标准U-Net模型;第2行为仅修改编码器模块的网络模型,第3~5行是分别在第2行的基础上依次加入CBAM、跳跃连接以及DenseASPP的网络模型。由表2内数据可以看到,5个评价指标均呈上升趋势,尤其是CBAM的加入,mIOU指标数值上升明显,其余4个指标SE、PC、ACC、Dice也都有所增长。各模块的加入对5个评价指标均有不同程度的提升,这表明不同模块的合理组合有利于提高皮肤病灶分割的性能,本文所提出的模块是有效的。
3 结论
本文提出一种基于DenseASPP和注意力机制的皮肤病灶图像分割方法,设计了3个新的网络模块:编码器模块、DenseASPP和CBAM。编码器对皮肤病灶图像进行特征提取,注意力机制关注病灶特征信息使得分割更加精准,同时利用DenseASPP来扩大感受野的范围以获取多尺度特征信息。本研究通过5个评价指标合理评价算法,并通过消融实验证明所提模块的有效性,在数据集ISIC 2016中取得最高的mIOU、PC、ACC和Dice。本文方法的提出为图像分割提供了新的思路,有望为专业医生提供相关医学参考。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:尹稳负责算法设计与实现、数据处理与分析、论文写作与修改;周冬明提供实验指导及论文审阅修订;范腾和余卓璞参与数据集收集及预处理;李祯负责整理实验结果。