李海燕,马艳,李海江,郭磊,李红松
(1. 云南大学 信息学院,云南, 昆明 650050;2. 云南交通投资建设集团有限公司,云南, 昆明 650000)
皮肤病是人类最常见的疾病之一. 皮肤科医生用肉眼诊断皮肤癌的准确率约为60%. 若配备皮肤镜,经过良好的训练,准确率可达到75%~84%. 然而皮肤镜检查极大依赖皮肤科医生的专业知识和经验[1].
传统的辅助检测手段,如:ABCD 规则(不对称、边界、颜色和差异结构的标准)、7 点检测、Menzies 方法和CASH(color, architecture, symmetry, and homogeneity),被用来提高临床医生诊断的准确性[2]. 此外,模糊逻辑计算分析、支持向量机、K 近邻等机器学习算法等在皮肤病变检测中可取得良好的效果,但这些研究涉及到图像预处理、手工特征提取和特征选择的繁重工作,手工提取的特征会导致不可见数据的泛化能力差.
皮肤病变具有类间相似度高、类内差异化大、数据类别不平衡等特点,因此其自动分类具有相当大的挑战性. 近年来,深度学习技术的发展为解决皮肤病变识别难题带来了契机, 通过充分利用深度学习中卷积神经网络被用于的分类能力[3],且具较高的准确率不需要手工特征提取和特征选择等繁琐过程,成为皮肤病变自动识别的一个较好的解决方案.BALAZS[4]中涉及对原始图像旋转90°和270°扩充,再采用AlexNet 深度卷积网络对皮肤病变图像进行分类,并将传统AlexNet 完全连接层的4 096 个神经元改为1 024 个,避免过拟合,但无法解决皮肤病变数据集类别不平衡的问题. KWASIGROCH 等[5]随机选择原始图像,进行旋转、移动、缩放和翻转变换扩充数据集,再使用3 种不同的学习模型:VGG-19、ResNet-50 和VGG-SVM,在ImageNet 数据集上预先训练好权重,对恶性和良性病变进行分类. 该方法采用3 种不同的学习模型进行迁移学习,可以加快训练速度,但ImageNet 数据集和皮肤病变数据集之间相似度低,会导致结果出现负迁移. ZHANG 等[6]提出了一种用于皮肤镜图像病变分类的注意残差学习卷积神经网络模型,该模型可以通过注意学习机制将高层学习到的特征生成底层特征,从而提高模型的判别表示能力,但没有解决皮肤病变数据存在的类别不平衡问题. AL-MASNI 等[7]提出了一个结合皮肤病变边界分割和多皮肤病变分类的综合诊断框架,首先通过分割提取各类皮肤病变的显著区域特征,然后使用4 种卷积神经网络分类器(Inception-Resnetv3、ResNet-50、Inception-ResNet-v2、DenseNet-201)对分割后的皮肤病变分类,但分割过程增加了预处理量,而分割的好坏直接影响分类性能. ZUNAIR 等[8]提出两阶段的MelaNet 框架自动分类皮肤损伤图像,使用对抗训练和迁移学习进黑色素瘤的检测. 第一阶段是条件图像合成,用来平衡、扩充数据集. 第二阶段的分类模型是预先训练好的VGG-16,通过最小化焦点损失函数优化分类模型. 该方法生成少数类的合成图像解决类不平衡问题,但图像合成存在局限性,当未成对图像的信息源唯一时,无法实现一对一映射,从而使正确率急剧下降.
综上所述,现有方法在皮肤病变识别方面有以下不足:(1)无法很好解决数据集类别不平衡问题;(2)对已有模型进行迁移学习,易出现负迁移或模型参数不易收敛;(3)识别前的预处理增加模型计算资源. 为解决这些不足,提出了一种基于改进AlexNet的可变形卷积皮肤病变识别算法,其主要创新点是:(1)在网络模型中增加了可变形卷积,对不同位置的卷积核采样点自适应的调整尺度或感受野大小,提高模型的泛化能力;(2)使用多分类交叉熵损失函数与焦点损失函数的加权损失函数,使预测输出更接近真实样本标签,同时解决类别不平衡的问题.
标准卷积固定的尺寸和大小对于未知的变化适应性差,泛化能力弱,为了对不同位置对应的尺度或感受野自适应调整,更好地提取输入的特征,提出算法使用可变形卷积[9]增加模块中的空间采样位置以及额外的偏移量,在同一层卷积中,所有激活单元的感受野能根据不同位置对应的不同尺度或感受野大小自适应调整,从而提高形变的建模能力. 可变形卷积与标准卷积的采样位置如图1 所示.
图1 采样位置Fig. 1 Sampling position
图1(a)中,标准卷积是规则格点采样,即黑色点,为了降低卷积单元在固定位置对输入特征图采样导致网络难以适应未知变换的缺陷,提出了图1(b)中的可变形卷积,不局限于规则格点,该卷积对卷积核中的每个规则格点采样的位置自适应地增加一个偏移变量,如蓝色点和红箭头所示为一个规则格点的偏移量,将规则采样变为不规则采样,使模型的识别能力有更高的特征定位.
提出的基于改进AlexNet 的可变形卷积网络模型包含6 个卷积块层,4 个最大池化层,两个可变形卷积,3 个全连接层,所有的卷积都使用ReLU 非线性激活函数,6 个卷积块层的内核大小分别为5、3、3、3、3、3,对应的通道大小为32、64、64、128、128、64. 最大池化层的大小设为3×3,步长为2. 模型的整体框架如图2 所示,卷积层和可变形卷积上的数字表示该模块输出的特征图数量,全连接层上方的数字表示该层的节点数,网络通过Softmax 层获得分类结果及分类概率.
图2 网络模型Fig. 2 Network model
可变形卷积算法流程:首先将原始图像经过普通卷积提取特征图;然后将特征图作为输入进行卷积操作,使每个像素在x,y的偏移扩充为原来的两倍,再通过双线性插值反向传播算法,得到可变形卷积的偏移量.
可变形卷积运算为
为了缓解数据集中的类别不平衡问题,将焦点损失[10]作为约束条件,以多分类交叉熵损失函数加权作为模型的目标函数. 多分类交叉熵损失函数用来衡量预测输出与真实标签之间的差距,焦点损失使易分类错误的样本权重增加. 通过最小化加权损失函数,使模型的预测输出更接近真实样本标签,同时解决难易样本不平衡的问题.
当预测输出结果与真实标签差距越大,分类交叉熵损失函数对网络模型的 “惩罚”呈现非线性增长,相反,当预测输出结果与真实样本标签差距越小,分类交叉熵损失函数值越小.
分类交叉熵损失函数定义为
加权上述损失函数,提出来的模型目标函数为
提出算法和对比算法的设置均相同:Batch size设为32;Epochs 设为20;采用Adam 优化器对网络进行训练;所有的模型均没有进行预训练以及没有使用K-fold 交叉验证,只是对数据集划分为训练集和测试集;网络模型的输入图像尺寸均为224×224×3;对所有输入图像进行归一化预处理.
在ISIC 2018 发布的皮肤损伤公共挑战数据集上进行实验来评估提出方法的有效性. 该数据集基于国际皮肤镜成像协作(ISIC)档案,是最大的公共可用的皮肤病变的皮肤镜图像集合,ISIC 2018 也称为HAM10000[11],是来自世界各地多个来源的不同皮肤病变的皮肤镜图像集合. 该数据集包含7 种常见的皮肤病变:光化性角化病(actinic keratosis and intraepithelial carcinoma, AKIEC)、基底细胞癌(basal cell carcinoma, BCC)、良性角化病(benign keratosis-like lesions, BKL)、皮肤纤维瘤(dermatofibroma, DF)、黑素细胞痣(melanoma, MEL)、黑色素瘤(melanocytic nevus,NV)和血管性皮肤病变(vascular lesion, VASC). 图像分辨率为600× 450 像素,由10 015 个皮肤损伤图像组成,数据集类别其不平衡,如图3 展示了7 种皮肤病变类别数量分布.
图3 7 种皮肤病变类别数量分布Fig. 3 Number distribution of 7 types of skin lesions
由于ISIC 2018 数据集的验证集和测试集都没有提供带注释的真实类别标签,为了训练和测试模型的有效性,将可访问待注释的训练数据每个类别抽取90%作为训练集,10%作为测试集. 为了避免黑色素瘤类别严重失衡,随机选择1 200 张作为训练集,670 张作为测试集.
将提出算法与AlexNet 网络[4],VGG、ResNet-50 网络[5]和ARL_14、ARL_50[6]作对比,5 对比算法均使用分类交叉熵损失函数,在HAM10000 数据集上验证提出算法的有效性. 实验中 α用来平衡类别不均衡,取值为0.000 2; γ为聚焦参数,用来减少易分类样本的损失,使模型更关注难以区分的样本,取值为3.0. 为了直观地展示提出算法学习到的特征,更好地理解神经网络的工作原理及决策过程,使用梯度加权类激活映射(Grad-CAM)[12],在最后一个卷积层产生粗略的显著性映射,突出显示影响图像预测的重要区域.
实验采用的计算机硬件配置为:处理器Inter(R)Core(TM)i7-9700K CPU@3.6GHZ,显卡NVIDIA Ge-Force RTX 2080,内存大小为16.0 GB. 软件配置为:Windows 10 的64 位操作系统,python 3.6 的语言环境,tensorflow 2.0 的深度学习框架.
图4(a)为AKIEC 病变原图,病变区域较发散.图4(b)、(c)都将AKIEC 错误识别为BKL,虽然图4(c)的热力图有部分定位在主病变区域,但活跃度并不高. 图4(d)、(e)、(g)和(h) 热力图高亮部分都定位到了病变区域,高亮区域在定位上存在差异,图4(e)的预测概率明显高于(g). 图4(h)预测概率的高低表明了网络模型与加权损失函数的有效性. 图4(f)是图4(e)的ARL 模块更深的网络模型,但效果并没有随着网络的加深而提高识别率,反而误判为NV 病变. 图4(g)是本文提出的网络模型预测的结果,0.799 的概率值表明提出网络模型具有一定的识别率. 图4(h)是提出的网络模型与加权损失函数的预测结果,0.99 的预测概率值表明提出模型结合提出的加权损失函数,可以大大提高预测的准确率,与图4(g)只改进网络模型相比,提高了19%.
图4 实验 1:Grad-CAM 热图分析Fig. 4 Experiment 1: Grad-CAM heat map analysis
图5(a)为DF 病变原图,病变区域与周围皮肤肉眼可区分. 图5(b)和(c)将df 分别错误识别为BKL和BCC,热力图高亮部分关注了不相关的区域,导致错误分类. 图5(d)~(h)热力图注意力中心集中在病变的不同边缘,对比结果表明,提出算法图5(h)热力图注意力中心几乎覆盖了病变区域,且预测正确率0.84 高于图5(d)的0.58、图5(f)的0.83 和图5(g)的0.71,但比图5(e)低11.8%.
图5 实验 2:Grad-CAM 热图分析Fig. 5 Experiment 2: Grad-CAM heat map analysis
图6(a)为BCC 病变原图. AlexNet 提取右下方的区域来识别病变类别,预测概率约为0.944. VGG-13提取左上方及右下方小区域识别病变区域,预测概率仅为43%. ResNet-50 提取右上方区域来识别,预测概率偏低;ARL_14 提取左侧的区域识别病变区域,预测概率约为0.996;ARL_50 提取右上方的区域识别病变区域,预测概率较低;提出方法图6(g)和(h)高激活区域各有侧重,图6(g)偏向于左上方及右下方,图6(h)偏向于左下方,图6(h)比图6(g)准确率更高.
图6 实验 3:Grad-CAM 热图分析Fig. 6 Experiment 3: Grad-CAM heat map analysis
图7(a)为VASC 病变原图,病变明显,没有向周围扩散区域. AlexNet 热力图高激活定位到了病变区域,但面积较小. VGG-13 高亮部分在病变区域之外,重视了不相关区域,虽然预测类别与真实类别一样,但0.43 的概率值低于中间值0.5,算为错误识别. 图7(d)~(h)高亮部分定位到了病变区域的不同部分,提出模型的识别率均高于其他模型的结果,表明了提出模型及损失函数的有效性.
图7 实验 4:Grad-CAM 热图分析Fig. 7 Experiment 4: Grad-CAM heat map analysis
图8(a)为MEL 病变原图. AlexNet 热力图高激活定位到病变区域外,错误地将MEL 识别为BKL.图8(c)~(h)热力图注意力中心集中在病变的不同区域,由预测概率可知,提出的网络架构、网络架构与加权损失函数提升了识别的正确率.
图8 实验 5:Grad-CAM 热图分析Fig. 8 Experiment 5: Grad-CAM heat map analysis
为了客观地评价提出算法与对比算法,采用准确度(Accuracy)、召回率(Recall)和F1-score 作为评估指标,使用相同的批样本数量、训练轮数和学习率从头开始训练数据,对以上算法的识别结果进行定量评价.
表1 的实验结果说明,提出算法的准确度(Accuracy),召回率(Recall)和F1-score 指标优于其余对比算法,说明提出的可变形卷积和加权损失函数对AlexNet 算法具有更高的特征定位以及处理类别不均衡问题,使得模型能够得到更高的识别率.
表1 各算法的评价指标结果Tab. 1 Evaluation index results of each algorithm
提出了一种基于改进AlexNet 的可变形卷积网络与加权损失函数结合的皮肤病变识别算法. 提出的可变形卷积网络模型增加了AlexNet 算法的采样偏移量,自适应调整采样尺度或感受野,提取精细的特征. 提出的交叉熵损失和焦点损失加权损失函数,削弱易分类样本在训练中所占的权重,使模型专注于相似度高、易错分的样本. 在HAM10000 数据集上对本文网络模型和模型与加权损失函数结合与现有4 个经典分类算法进行定性和定量的实验对比,实验结果表明:提出算法对类间相似度高、类内差异化大,数据存在严重类别不平衡的皮肤病变能,够有效提高模型识别的灵敏度和准确度,获得更好的泛化能力.