李家成,叶哲江,杨嘉林,张鹏飞
(昆明理工大学 信息工程与自动化学院,云南 昆明 650500)
世 界 卫 生 组 织(World Health Organization,WHO)的统计数据表明,全球每年发生200万至300万例非黑色素瘤皮肤癌和132万例黑色素瘤皮肤癌[1]。在美国,虽然黑色素瘤在所有皮肤癌中所占比例不到5%,但它们约占所有皮肤癌相关死亡病例的75%,每年造成10 000多人死亡[2]。皮肤病早期的诊断与预防已经成为遏制皮肤病癌变恶化的有效手段,尤其是黑色素瘤,早期的诊断与治疗能有效降低致死率[3-4]。
临床上一般通过有丰富经验的皮肤科专家结合自己的经验和特定的方法如CASH方法[5]、Menzies方法[6]、ABCDE方法[7]等对病理图片进行诊断。人工诊断存在有诊断经验的皮肤科专家的缺乏、不同专家诊断水平参差不齐、准确率难以保证、费时费力等缺点。随着深度学习的发展,基于深度学习的皮肤病诊断在以往研究中获得了可观的成果。ESTEVA[2]等整合多个皮肤病数据集,构建了一个包含2 000多种皮肤病种类的大型皮肤病数据集,使用GoogLeNet作为其分类网络并将迁移学习技术应用到自己的数据库上,最终准确率能与皮肤科专家诊断结果相媲美,证明了基于深度学习的皮肤病自动分类的可行性。李航等[8]采用深度学习和传统机器学习相结合的方式,先使用预训练的ResNet152模型迁移学习提取皮肤病病灶特征信息,再通过支持向量机(Support Vector Machine,SVM)进行诊断分类。LEQUAN Y等[9]提出方法先用一个全卷积残差网络(Fully Convolutional Residual Networks,FCRN)对皮肤病图像病灶进行分割,缓解数据量不足问题,再使用ResNet50网络进行分类。CODELLA[10]等提出将卷积神经网络、稀疏编码和支持向量机(SVM)集成到黑色素瘤识别中。MAHBOD[11]等提出了基于6种不同大小输入图像、3种成熟CNN模型(EfficientNetB0、EfficientNetB1、SeRe-NeXt50)多尺度多模型方法,表明了输入图像尺寸对皮肤病诊断有影响。
上述研究都取得了一定的成果,但使用的模型参数量都非常大,训练的时间长,准确率也有提升的空间。随着皮肤病数据库的日益丰富,减少模型参数、设计轻量型网络可以避免过拟合,提高识别准确率。针对以上问题,本文设计了一个基于DSception结构和SE模块的轻量型网络。文章主要内容如下:
(1)引进深度可分离卷积(Depthwise Separable Convolution,DS),大量地减少参数,保证网络加深提取不同深度特征的可能性。
(2)将DS卷积和Inception结构相结合,提出DSception模块,增加了网络的宽度,多尺度提取图像特征的同时,大量减少参数,降低时间复杂度。
(3)在ResNet50的基础上,用通道注意力(Squeeze-and-Excitation,SE)模块替换原来的瓶颈结构,使得模型参数量减少,有效加权了重要图像通道特征,抑制了无用信息。
本文基于ResNet50模型[12]的主体结构,提出了包含DSception模块的SE模块的Conv_block和包含SE模块的Identity_block。改进的Conv_block、Identity_block保留了原有的残差结构,解决由于网络深度加深而产生的学习效率变低与准确率无法有效提升的问题。残差结构如图1所示。
图1 残差结构
图1 中,X为输入,F(x)表示特征提取块的输出,H(x)为整个残差结构的输出,包含了特征提取块的输出F(x)和原输入X。H(x)表达式如下:
如式(1)所示,残差结构的最后输出H(x)是F(x)与X的和。加入了原输入x,在前向传播时,H(x)包含了输入信息特征,有效解决网络模型退化问题;在反向传播时,能有效解决梯度消失问题。
1.1.1 DS卷积
深度可分离卷DS由深度卷积(Depthwise Convolution,DW)和 点 积(Pointwise Convolution,PW)组成[13]。
(1)DW卷积。DW卷积如图2所示,输入特征图维度为(W,H,C),通过C个3×3×1卷积核对输入特征图逐通道进行卷积,得到的C个(W,H,1)特征图按通道维度拼接,最终输出的特征图维度为(W,H,C)。
图3 PW卷积示意图
图23 ×3D×W1卷积示意图
(3)DS卷 积。DS卷 积 如 图4所 示。DS卷积所需的参数包括:DW卷积所需的参数C×3×3×1,PW所需的参数N×1×1×C,总的DS卷积参数为C×3×3×1+N×1×1×C,普通卷积所需的参数为N×3×3×C。显然,DS模块使用的参数量远远小于普通卷积,有效地节省了计算机资源,提高了运算速度。
图4 PW卷积示意图
1.1.2 Inception结构
InceptionV1结构由Google团队于2017年提出[14],如图5所示。先前的特征图并列输入到4个分支,提取不同感受野的特征信息,增加了网络宽度。通过1×1卷积有效地减小了网络参数,降低随着网络深度的增加模型过拟合的风险。
图5 Inception结构示意图
1.1.3 DSception结构
DSception结构如图6所示。本文创造性地将DS卷积和Inception模块结合起来,提出了DSception模块。输入特征图维度(W,H,C),Conv1×1分支的通道数为C/4,DS Conv3×3分支的通道数为C/2,DS Conv5×5分支的通道数为C/8,Maxpool分支的通道数为C/8。DSception模块与Inception模块相比,可观地减少了参数量,降低了时间复杂度。
图6 DSception结构示意图
SE模块由DANIEL Z等[15]于2017年提出,其设计理念为学习通道之间的相关性,筛选出针对通道的注意力。SE模块分为压缩(Squeeze)、激励(Excitation)、重标定(Scale)3部分,如图7所示。
图7 SE模块结构图
(1)压缩部分Fsq。输入特征图UW×H×C,U=[u1,u2,…,uC],先 通 过 全 局 平 均 池 化(Global Average Pooling,GAP)顺着空间维度W×H来进行特征压缩,得到具有全局的感受野的特征图ZC,Z=[z1,z2,…,zC]。
(2)激励部分Fex。如式(3)所示,特征图Z通过个神经元的全连接层FC1,其权重、非线性激活函数δ(Relu);接着通过C个神经元的全连接层FC2,其权重、非线性激活函数σ(Sigmoid)输出特征图SC,S=[s1,s2,…,sC]。参考原文参数r的设置,rstage1,rstage2设为16,rstage3设32,rstage4设为64。
(3)重标定部分Fscale。原特征图输入U与激励部分输出S结果相乘,完成对通道的重新标定:
SE模块不仅在通道维度上对有着重要皮肤病特征的通道进行加权处理,对无用皮肤病特征通道进行抑制,其参数对于深度网络而言可以忽略 不计。
改进的卷积块保留卷积分支和残差连接分支两个分支,如图8所示。
图8 卷积块结构图
(1)卷积分支。特征图输入先通过卷积核为1×1、步长为2的卷积层来减小特征图尺寸,恢复通道数;之后连接BN层和Relu层,BN层加快模型收敛速度,防止网络模型过拟合,Relu增加非线性因素。DSception层多尺度提取特征,扩大感受野,增加网络宽度。SE层通道注意力层实现对通道的重新标定。
(2)残差连接分支。残差连接分支预防随着网络的加深梯度消失的风险。输出为卷积分支输出与残差连接分支输出相加,Relu输出结果。
改进的恒等映射块网络主路上,用SE模块代替原来的瓶颈结构,输出结果与输入特征图的恒等映射相加得到最终结果,大量减少了模型训练参数,避免网络过拟合。恒等映射块结构如图9所示。
图9 恒等映射块结构图
本文模型沿用了ResNet50的主体框架,分为输入、主网络、输出3个部分,如图10所示。
图10 本文模型结构图
(1)输入部分。将皮肤病图像裁剪成(224,224,3)维度作为模型输入,经过Conv7×7(stride= 2)+BN+Relu+Maxpool3×3(stride=2)输出特征图维度为(56,56,64)。
(2)主网络部分。主网络分为4个Stage。Stage1 由1个卷积块和2个恒等映射块组成,输出特征图维度为(28,28,256)。Stage2由1个卷积块和3个恒等映射块组成,输出特征图维度为(14,14,512)。Stage3由1个卷积块和5个恒等映射块组成,输出特征图维度为(7,7,1 024)。Stage4由1个卷积块和2个恒等映射块组成,输出特征图维度为(4,4,2 048)。
(3)输出部分。主网络输出特征图(4,4, 2 048)经过全局平均池化层(GAP)输出特征图维度(1,1,2 048),再连接3个神经元的全连接层(FC),最终通过Softmax激活函数输出皮肤病分类的结果。
2.1.1 数据来源
由于ISIC-2017挑战[16]提供的数据集存在较为严重的数据不平衡问题,本文基于公开的皮肤镜图像数据国际皮肤成像协作(ISIC)构建了一个皮肤病图像数据集。该数据集包含基底细胞癌(Basal Cell Carcinoma,BCC)、黑色素瘤(Melanoma,MEL)、痣(Nevus,NV)3大类,共计8 992张图像。按照4∶1的比例划分训练集和测试集,其中训练集为7 194张样本,测试集为1 798张样本。每类数据分布如表1所示。
表1 各类皮肤病分布
2.1.2 数据预处理
数据裁剪为(224,224,3)的尺寸,并将皮肤病图像数据除以255作归一化处理。
2.1.3 实验环境
本文使用PyCharm作为编译器,编程语言为Python,实验框架为Keras和Tensorflow。硬件环境为Intel(R) Core(TM) i7-9700K CPU,主频 3.60 GHz,显卡为NVIDIA GeForce GTX1070 Ti,64位 Windows 11操作系统。
2.1.4 评价指标
本文选用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数作为模型评价指标,计算公式分别如下:
式中:TP(True Positive)为真阳性,表示算法将当前皮肤病样本正确分为该类;FN(False Nega-tive)为假阴性,表示算法将其他两类皮肤病样本错误分为该类;TN(True Negative)为真阴性,表示算法将当前皮肤病样本错误分为其他两类;FP(False Positive)为假阳性,表示算法将其他两类皮肤病样本正确分为其他两类。
本文选用交叉熵损失函数,Adam为优化器更新参数,批次大小batch-size设置为64,迭代 100次,初始学习率lr设0.01,每10个epochs内准确率不提升,调整lr=lr×0.1,调整至10-7停止更新学习率。
在保证数据集、实验环境一致的情况下,本文 模 型 与ResNet50、VGG16[17]、Xception[18]模 型在皮肤病数据上验证,准确率如图11所示。本文模型准确率比对比模型效果出色,且曲线较快达 到收敛。
图11 不同模型的准确率曲线
不同模型性能指标如表2所示。本文模型的准确率为93.38 %,精确率为93.42%,召回率为3.44%,F1分数为93.4%,均明显超过VGG16、esNet50、Xception,且本文模型远小于其他模型。实验表明,本文模型对皮肤病的诊断有明显效果,且参数较少,不需要较高的计算机配置,适合应用于临床辅助诊断。
表2 不同模型性能指标
通过消融实验来验证本文模型的性能。实验A设置为含有DS-ception结构和SE模块的模型,实验B设置为只含有DSception结构的模型,实验C设置为只含有SE模块的模型,实验D设置为不含有DScep-tion结构和SE模块的模型。超参数设置与2.2节一致。
实验结果如图12所示。通过观察图12的混淆矩阵可以看出,4个实验中NV类的召回率结果相近,实验D为99.66%,比实验A的99.49%略高。对比BCC和MEL的召回率,实验A比其他3个实验效果好,其中实验A的MEL召回率为88.20%,实验B、C、D分别为83.93%、81.48%、79.18%,实验A对黑色素瘤图像特征提取效果明显。表3为消融实验各项评价指标的宏平均,可以看出实验A表现最好,对皮肤病诊断分类有明显作用。
图12 消融实验混淆矩阵
表3 消融实验评价指标
本文提出了基于DSception和SE模块的皮肤病多分类模型,其中DS-ception模块加深了网络深度和宽度,增加了多尺度的感受野,提升了模型提取特征的能力,同时也明显地减少网络参数,加快了网络的收敛速度。SE模块实现了对通道的重新标定,即对有着图像重要特征的通道进行加权,对有着无用特征的通道进行抑制,且模块参数量较少,对于整个网络模型可以忽略不计。实验表明,本文模型在对皮肤病的种类分类识别领域有明显的 效果。