基于DenseNet-BC网络的皮肤镜下皮肤损伤分割*
2020-06-22齐永锋侯璐璐段友放
齐永锋,侯璐璐,段友放
(西北师范大学计算机科学与工程学院,甘肃 兰州 730070)
1 引言
皮肤癌是一种世界性的严重疾病,其中黑色素瘤是最致命的,若能尽早发现且进行切除治疗即可治愈。对于皮肤癌的检测,一般采用皮损皮肤镜图像,这是一种无创的成像技术,通过消除皮肤表面反光、放大皮损区域、增强皮损区域的色素沉着来获得高分辨率图像,用于病变分割。目前临床多采用手动分割皮肤镜图像的方法,虽然人工手动分割准确度高但效率较低,对分割人员专业知识和临床经验有一定的要求,并且人类对病变存在主观性,会因个人因素造成分割误差。故一般情况下专家手动分割的结果图只作为标准分割图像(Ground Truth),用于与皮损图像在不同模型下进行的分割结果做对比。随着技术的发展,引入客观可靠的计算机辅助诊断系统对皮肤病变进行自动分割已成为一种新趋势,该技术在提高分割效率的同时也会避免人为的主观因素,对黑色素瘤的早期诊断和准确切除有着重要的意义。
目前,国内外专家学者对医学图像中皮肤损伤分割方法有着广泛的研究,主要是半自动和全自动的方式[1,2]。常用的半自动分割方法有阈值分割[3]、边缘检测分割[4]、区域分割[5]以及机器学习分割[6]等。近年来,基于深度学习的方法被广泛应用,其优势在于可以直接从数据中学习图像特征,在皮损分割方面取得了很好的效果。例如,Li等人[7]提出了一种由全卷积残差网络FCRN-88(Full Convolution Residual Network)[8]和病灶指数计算单元LICU(Lesion Index Calculation Unit)组成的用于皮损分割的病变索引网络,准确率达到了0.922。Yuan等人[9]提出了一种深度卷积神经网络,该网络通过使用较小的内核对更深层的网络模型进行多颜色空间训练,在ISIC 2017皮肤挑战赛中取得了最好的成绩。Bi等人[10]利用数据增强的方法提出了一种基于对抗性学习的皮肤病变自动分割方法,该方法在提升全连接网络FCN(Fully Connected Network)的分割性能方面具有显著效果。上述方法虽然在皮损分割方面取得了较好的效果,但仍存在许多不足,面对皮损区域形状不规则、边界较模糊、与周围皮肤对比度较低且受血管、毛发、气泡等因素影响的情况,皮肤病变区域分割准确度有待提高。
卷积神经网络CNN(Convolutional Neural Networks)的层数越多,所提取特征就越丰富,越具有语义信息,因此更深层次网络的探索成为一种新趋势,在医学图像病变区域准确分割方面有着重要的意义。但是,越深的网络会出现梯度消失、特征重用不断减少、训练时间较长以及前向流减少的问题,使得后期层难以学习到“有意义”的梯度方向,并且在系统精度达到饱和之后,再增加网络层数将出现训练误差变大、精度下滑的现象。最近工作表明,若卷积网络在接近输入层和接近输出层的层之间包含更短的连接,那么卷积神经网络的深度可以更深,从而更加有效地进行训练,拥有更高的精确度。VGG(Visual Geometry Group)[11]从网络深度入手,采用几个小的卷积核来代替大的卷积核,使得网络参数量和计算量更少,还可以更好地保留图像的原有特征,但由于其通道数过多,因此并不高效。ResNet(Residual Network)[12]模型的出现使得CNN有了历史性的突破,从网络深度入手建立前面层与后面层之间的跳跃连接(Skip Connection)[13 - 15],通过跨层的方式来提取图像的特征信息。但是,该模型大多用于中度网络,小部分用于浅度和深度网络,所以事实上其并未解决网络越深梯度越小的问题。从网络宽度入手的Inception-v3网络由 Inception模块[16]和 ResNet模块组成,采用密集结构近似稀疏的CNN,利用全局均值池化层替换卷积层之后的全连接层,但网络过于复杂,在并行加速方面面临很大的挑战。虽然以上方法均在层数方面做了改进,但均未从根本上解决随网络层数的增多而梯度减小的问题。
针对网络层数越多梯度越小的问题,本文采用基于CNN的稠密卷积网络DenseNet(Dense Convolutional Network)[17 - 19],从特征入手对皮损区域进行准确分割。DenseNet采用密集的连接模式,为了确保网络中各层之间的最大信息流,将具有匹配特征图大小的所有层直接相互连接。为了保留前馈特性,每个层都与它之前的所有层直接连接,并将其自身的特征图传递给所有后续层,从而减少了特征复制,实现了特征重用。这将在L层的网络中引入L(L-1)/2个直接连接,而不像传统网络那样只引入L层。连接模式如图1所示。并且与传统的卷积网络相比,密集连接(Dense Connectivity)因为不需要重新学习冗余功能图,所以需要的参数更少。除此之外,DenseNet改善了整个网络中的信息流和梯度。每层都可以直接从损失函数和原始输入信号访问梯度,从而有助于训练更深层次的网络模型。但是,多个密集层密集连接在一起组成的密集块输出的通道数越多,且每个密集块的输出将作为下一个密集块的输入。为了减少网络参数和计算量,本文在瓶颈层和过渡层中采用小卷积核对输入特征图进行降维,采用压缩系数(Compression Rate)来对通道数进行减半操作,从而加快网络模型的收敛。称改进后的模型为稠密卷积网络(DenseNet-BC)。本文主要工作包括:
Figure 1 Different connections between layers图1 层与层之间不同的连接方式
(1)针对网络越深梯度越小的问题,提出了一种新的网络模型,采用前馈的方式在层与层之间进行密集连接,对于L层的网络,将第1层到第L-1层的输出经过归一化BN(Batch Normalization)[20,21]操作-整流线性单元ReLU(Rectifier linear Unit)[22]操作-3×3卷积Conv(Convolution)[23]操作后作为第L层的输入,使得信息得到最大化流动,有助于训练更深层次的网络模型。
(2)为了降低参数数量与网络的计算量,从特征图的通道数入手,在层与层之间的3×3卷积操作前使用1×1卷积作为瓶颈层(Bottleneck Layer)来对输入的特征图进行降维,同样在密集块与密集块之间的池化操作前再次使用1×1卷积作为过渡层(Transition Layer)来降维,使得特征图的通道数减半,从而降低网络复杂度,提高计算效率。
2 本文算法
DenseNet-BC以一种隐式的方式执行类似的深度监督,输入一幅皮损皮肤镜图像到稠密卷积网络(DenseNet-BC),然后生成一幅分割后的图像,可与专家人工标注的金标准做对比。
2.1 密集连接(Dense Connectivity)
面对越深的网络,当输入的信息经过层层学习到达网络深处部分时,信息将会消失,使得后期层难以学习到“有意义”的梯度方向。针对此问题,本文采用密集连接将具有匹配的特征图大小的所有层直接连接,使得所有层都能直接访问从原始输入信号到损失函数的梯度。第L层的输入如式(1)所示:
xl=HL([x0,x1,x2,…,xl-1])
(1)
其中,xl指第l层的输入,它接收先前层的所有卷积特征x0~xl-1。[x0,x1,x2,…,xl-1]指对0到l-1层的输出特征图进行拼接操作。复合函数HL是第1层到第l-1层上的非线性变换,是归一化操作BN操作[20,21]-整流线性单元ReLU操作[22]- 3×3卷积Conv[23]操作的组合。
图1a是标准的卷积模块,一个L层的网络拥有L个连接。图1b是密集连接模块,以前馈的方式将层与层之间紧密连接,这样一个L层的网络拥有L(L-1)/2个连接,使得早期层的特征都可以被后续其他层重复利用,信息得到最大化的流动,达到特征积累的效果,提高了效率。
2.2 瓶颈层(Bottleneck Layer)
面对越深的网络,标准的卷积层需要训练大量的网络参数,使用大量的计算资源和存储资源,从而降低了计算效率。为此本文在密集块层与层之间的3×3卷积操作前使用1×1卷积作为瓶颈层,对输入的特征图进行降维,结构为BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3),如图2b所示,使得网络参数和计算量减少,从而加快网络模型的收敛。
标准卷积层结构(简称为结构a)输入一个大小为W×L×K的特征图,输出一个大小为W×L×2K的特征图。加入瓶颈层后的结构(简称结构b)在结构a的基础上通过使用1×1卷积来构建瓶颈层,在没有改变特征图尺寸的情况下减少了特征图的通道数量,然后输出大小为W×L×2K的特征图。K代表输入特征图的通道数量,W×L为特征图的输入和输出尺寸。
Figure 2 Structures of different convolutional layer图2 不同的卷积层结构
结构a的计算量为:
Ca=W×L×2K×3×3×K
(2)
结构b的计算量为:
Cb=W×L×K/4×1×1×K+
W×L×2K×3×3×K/4
(3)
结构a的参数为:
Ha=2K×3×3×K
(4)
结构b的参数为:
Hb=K/4×1×1×K+2K×3×3×K/4
(5)
使用结构a与结构b的计算量和参数的比值均为72/19,也就是结构a的计算量和参数大概是结构b的3.3倍,从而证明了瓶颈层的有效性。
Figure 4 DenseNet-BC model图4 Densenet-BC模型
2.3 过渡层(Transition Layer)
当特征图的尺寸改变时,式(1)中第L层的连接操作就会出现问题。因此,需要卷积网络的下采样层来改变特征图的尺寸。为了便于下采样的实现,本文将网络划分为3个密集连接的密集块。为了解决首个密集块的输出作为下一个密集块的输入时通道数输出量多的问题,在拥有任意层的2个相同尺寸特征图的密集块之间2×2的池化层前加入一个1×1的卷积作为过渡层来进行降维。过渡层中有一个被称为压缩系数的参数θ∈(0,1),当θ=1时,特征图的数量保持不变。本文实验参数设置为0.5,使传递到下一个密集块的通道数减半。加入过渡层的密集块间结构如图3b所示,在不影响分割准确率的情况下可加快网络模型的收敛。
Figure 3 Different structures between dense block图3 不同的密集块间结构
2.4 稠密卷积网络(DenseNet-BC)
稠密卷积网络由密集连接、瓶颈层和过渡层组成。DenseNet-BC的网络较窄,密集块中每个卷积层输出数量小于100的特征图,本文实验中采用k=32来控制网络宽度,k为密集块的生长速度参数,代表每一层输出的特征图的厚度,且随着密集块深度的增加而直线增加。
分割皮损皮肤镜图像的模型如图4所示,模型从一个块开始,该块对输入的皮损图像进行内核大小为7×7、步幅大小为2卷积操作,然后是步长为2的3×3的最大池化操作。中间部分由3个层与层之间密集连接的密集块组成,层与层之间通过瓶颈层连接,用来对输入的特征图进行降维。密集块之间由过渡层连接,通过卷积和池化操作来改变特征图的大小和尺寸。采用7×7的全局平均池化对输出图像进行处理,后面连接1×1×1000的全连接层,最后附加一个Softmax分类器,输出一幅分割后的皮损图像。
3 实验结果与分析
本节在ISIC 2018 Task 1(病变分割)挑战赛阶段的皮损皮肤镜图像数据集上评估本文算法。该数据集包含由临床医师手动勾画的皮损区域作为先验信息的训练集图像2 594幅。图5每组第1幅为皮损皮肤镜图像,每组第2幅为该图像对应的医生手动标记的皮损区域。提供验证集图像100幅,测试集图像1 000幅,验证集用来相对客观地自我衡量与调整,测试集用来衡量模型的性能和分割能力。由于深度神经网络对参数的训练需要大量的数据样本,因此本文通过行旋转、垂直翻转、水平翻转等操作对训练图像执行数据扩充,这对于提高分割准确率至关重要。
Figure 5 Examples of skin lesion dermoscopy images and their corresponding gold standard images图5 皮损皮肤镜图像与其对应的金标准图像示例
3.1 训练与实验细节
本文实验环境为Python 3.6,Keras 2.1.6,TensorFlow1.12.0。在训练时,将JPG格式的RGB皮损图像大小调整为224×224,并将其存储在numpy文件中,以便于处理,最后将分割后的图像恢复到图像的原始大小。开始学习率设置为1e-4,学习率的下限为1e-7。选择Adam作为DenseNet-BC的优化器,β2参数值为0.999。Epoch=50,patience=10,表示若发现损失相比上一次迭代训练没有下降,则经过10次迭代后停止训练。
3.2 性能评价指标
为了评估算法分割效果,本文采用阈值化相似性系数(ThresholdJaccard)、相似性系数JI(Jaccard Index)、准确率ACC(ACCuracy)、Dice系数、特异性Sp(Specificity)以及灵敏度Se(Sensitivity)共6个评估指标对分割性能进行评价。其中ThresholdJaccard与JI是图像分割中较权威的评价指标,使用阈值0.65应用于本文的像素化评分。若JI值低于ThresholdJaccard值,则JI值归为0。在ISIC 2018挑战赛中以ThresholdJaccard值作为排名的关键。
评价指标定义如下:
(6)
(7)
(8)
(9)
(10)
其中,TP(真阳性)为正确识别的皮损区域像素数目,TN(真阴性)为正确识别的非皮损区域像素数目,FP(假阳性)为错误识别的非皮损区域像素为皮损区域像素的数目,FN(假阴性)为错误识别的皮损区域像素为非皮损区域像素的数目。
3.3 网络的评估
为了验证引入结构的有效性,本文进行了2种对比:(1)在DenseNet-BC网络中分别采用ReLU和带泄露整流线性单元LReLU(Leaky Rectified Linear Uint)2种激活函数进行皮损图像的分割任务。(2)在DenseNet-BC网络中是否进行归一化操作对皮损分割精度的影响。实验对比结果如表1所示。从表1中可发现,使用激活函数ReLU相比于LReLU能在更大程度上提高分割精度,因为对于非线性函数而言,ReLU非负区间的梯度为常数,因此不存在梯度消失的问题,使模型的收敛速度维持在一个稳定状态,能够对病变进行更准确的分割。DenseNet-BC模型利用归一化操作则与传统模型不同,归一化操作和非线性运算用在卷积操作之前,对DenseNet-BC-201性能有很大的改变,ThresholdJaccard值从0.816升为0.835。
为了检验使用瓶颈层和过渡层减少参数后对模型准确率有无影响,本文对使用此结构前后的皮损分割结果进行了对比,实验结果如表2所示。从表2中可发现,使用小卷积核来减少参数的做法对皮损图像的分割准确率基本没有影响。
3.4 不同分割模型结果的评估
为证明DenseNet-BC模型的优越性,选择2类模型与本文的DenseNet-BC模型进行对比,一类是利用他人已有的研究成果进行对比,其中用Li等人[7]和 Yuan等人[9]提出的模型在ISIC 2017数据集上进行分割,Bi等人[10]提出的模型在ISIC2018数据集上完成分割。另一类是本文DenseNet-BC模型与VGG-16、Inception-v3、ResNet-50模型在ISIC 2018数据集上进行实验的结果对比。分割性能比较如表3所示,加粗字体表示每一类指标的最优值,“—”表示文献中没有这项指标。
Table 1 Before and after of different activation funcions and normalization operations on networks with different layers表1 不同层数网络采用不同激活函数和归一化操作的前后对比
Table 2 Segmentation results before and after using small convolutional kernel表2 使用小卷积核前后分割结果
Table 3 ISIC database skin lesions dermascopic image segmentation results表3 ISIC数据集上皮损皮肤镜图像分割结果
实验结果表明,相比其他模型,本文模型实现了皮损区域较高的分割准确率,其中阈值化相似性系数、相似性系数、Dice系数、准确率、灵敏度、特异性分别达到0.835,0.854,0.916,0.975,0.893,0.954。本文模型对皮损分割的ThresholdJaccard值相比于ResNet-50高出0.22,比Inception-v3高出0.8。在6种定量标准下3种结果达到最优值,且灵敏度与特异性都保持相对稳定,在ISIC 2018比赛中最高JI为0.802。因此,由表4的评估指标可知,在ISIC 数据集上,本文模型对皮损区域、背景区域的识别和提取不同特征的能力优于其他模型,充分验证了本文模型在皮损皮肤病变图像分割中的有效性。
DenseNet-BC-201模型对皮损皮肤镜图像分割效果与其他模型对比如图6所示,面对皮损区域形状、纹理、大小、颜色及颜色的深浅的差异、皮损边界区域较为模糊且与周围皮肤对比度较低的情况,本文模型分割效果相比于其他模型都优,验证了本文模型对皮损皮肤镜图像有着较好的分割性能。
Figure 6 Experiment results on ISIC 2018 dataset图6 ISIC 2018数据集上实验结果
4 结束语
皮肤损伤区域的正确分割对黑色素瘤疾病的诊断具有实际的意义。本文使用高效的密集卷积网络DenseNet-BC对皮损皮肤镜图像进行自动分割,这种模型以高精度的端到端的方式来解决皮损区域分割问题,是一种高效训练深度网络的方法。通过其紧凑的内部表示,密集卷积网络可能成为较好的特征提取器,促进了特性重用,使得信息得到最大化的流动,缓解了梯度消失。为了在保证分割准确率的情况下降低模型的参数数量和计算量,在瓶颈层和过渡层中采用1×1的卷积进行降维。本文在ISIC 2018 Task 1(病变分割)数据集上实验了所选网络,取得了0.975的分割准确率,优于在深度方面做努力的 VGG、Inception和ResNet网络模型,甚至优于在分割方面提出的其他网络模型,成为高容量的首选网络。下一步的研究重点在于皮损皮肤镜图像病变的诊断和分类。