基于卷积神经网络的皮肤癌识别方法
2020-10-28郭文婷
龚 安,郭文婷
(中国石油大学(华东) 计算机科学与技术学院,山东 青岛 266580)
0 引 言
皮肤病是人类最常见的疾病之一,全世界30%~70%的人有与皮肤病相关的健康问题[1],其中很大比例的皮肤病由于没有进行早期治疗,导致病情发展成皮肤癌。恶性黑色素瘤[2-3]作为世界上增长速度最快以及最致命的癌症之一,每年导致较高的死亡人数[4]。进行早期诊断和治疗能够防止良性皮肤癌恶化,提高恶性黑色素瘤的存活率。临床上引入皮肤镜[5]来协助医生进行诊断,但是由于病变区域的大小和形状不同,即使是经验丰富的医生在进行诊断时,也具有主观判断的成分,增加了皮肤癌诊断的难度。因此,利用计算机辅助诊断,对于提高皮肤癌识别的效率和准确率,具有极高的意义。
目前,对于皮肤癌的研究大多是针对黑色素瘤与非黑色素瘤的良恶性诊断[6-7],而基于计算机辅助诊断的皮肤癌图像分类主要包括两种方法。一是基于皮肤镜图像特征提取和传统机器学习的分类方式,这种方式是经过一系列图像预处理、特征选择之后,利用支持向量机[8]、决策树等分类器完成分类。Jain S等[9]提出了一种利用ABCD规则,即黑色素瘤病变的主要特征:不对称性、边界不规则性、颜色和直径,提取特征参数用于将图像分类为正常皮肤和黑色素瘤的方法。Barata等[10]提出分别利用全局特征和局部特征检测皮肤镜中黑色素瘤的方法,得到利用单独的特征进行识别时,颜色特征优于纹理特征的结论。基于皮肤镜图像特征提取和传统机器学习的分类方法较为依赖于专业知识,也有一定的人为因素的影响,会对提取高质量的特征有一定限制。二是基于深度学习的皮肤癌图像分类方式。近年来,随着深度学习的发展,卷积神经网络在医学图像识别领域取得了很好的效果。Li Y等[11]在ISIC2017的比赛中,利用预训练的ResNet模型,将三类皮肤癌分类问题分成两个二分类问题进行训练,实现了87%的识别率,但对于多分类问题效果不佳。Thao L T等[12]使用全卷积-反卷积结构进行分割后,再利用VGG16模型进行病变识别,在卷积层之后,添加一个全局平均池化层,获得输出特征,该方法实现了超过89%的识别率,但识别敏感性偏低。目前在皮肤癌识别的研究中,基于卷积网络的方法主要是利用单一网络模型进行识别,单一模型提取的皮肤癌特征相对于多个模型有一定的不足,所以针对每个模型的特点,结合不同模型的优势,提取不同的皮肤癌特征,利用特征融合的方法,利用融合后的特征来识别皮肤癌。
该文使用深度卷积神经网络将皮肤癌病理图像分为黑色素细胞痣,黑色素瘤,良性角化病变,基底细胞癌,光化性角化病,血管病变,皮肤纤维瘤七类。为了避免因皮肤癌图像数据量过小而产生过拟合问题,采用数据增强和特征融合的方法来提高模型的准确率,以更好地满足临床需要。
1 方法介绍
提出的基于卷积神经网络的皮肤癌识别方法如图1所示,主要包括三个部分:数据预处理、图像特征提取及融合、图像识别。首先对原始皮肤癌数据进行裁剪、遮挡物处理、数据增强等预处理,将图像统一调整224×224的大小,然后将预处理后的图像输入到卷积神经网络中进行特征提取,经过DenseNet201和Xception提取特征向量后,进行融合,最后将融合后的特征向量输入至识别模块,利用softmax分类器进行皮肤癌图像的识别。
图1 基于卷积神经网络的皮肤癌识别方法模型流程图
1.1 迁移学习
迁移学习[13]是利用已经训练好的模型参数来帮助新模型的训练。通过迁移学习,可以加快并优化模型的学习效率。迁移学习的应用较为广泛,深层次的神经网络包含有大量的参数,数据量过小会在训练时出现过拟合现象,通常需要用大量的数据进行训练。在医学领域,数据量非常有限,难以满足直接训练的需求,因此将自然图像训练得到的权重作为医学数据的初始化参数,取得了显著的成果。Pan等[14]提出将迁移学习应用于医学领域,取得了良好的效果。
1.2 数据预处理
目前深度学习的图像分类算法经过大量的数据样本训练后得到了较高的准确率,但当数据样本较少时,准确率会有所下降,并且图像各类型的数据不平衡也会对图像特征的学习产生不好的影响,使得准确率降低。为了解决这个问题,通常使用水平/垂直翻转,旋转,缩放,裁剪,平移,调整对比度,噪声等方法进行数据增强。
各类皮肤癌图像数据不平衡会影响对图像特征的学习,黑色素细胞痣的数量达到6 705,而最少的皮肤纤维瘤的数量只有115。为了解决数据不平衡的问题,对数据集进行数据增强处理。针对数据量极少的皮肤纤维瘤等图像,通过将图像旋转-90°、-45°、45°、90°、180°等方式,扩充数据集。
1.3 特征提取与特征融合
在图像识别领域,特征提取是关键,特征的好坏直接关系到处理结果的好坏。在进行皮肤癌的识别工作中,要根据皮肤镜图像的颜色特征、形状特征和纹理特征来进行判断。该文选用预训练的网络模型DenseNet201以及Xception模型,将皮肤癌图像进行预处理后,输入至模型进行训练,得到的特征图进行融合,根据最终得到的特征图进行皮肤癌的识别。
相比于其他的网络模型,如Alex[15]、VGGNet[16]、ResNet[17]等,DenseNet[18]网络和Xception[19]网络具有更深层次的网络结构,可以学习到图像深层次的特征。DenseNet含有密集块结构,每一个卷积层的输入都是前几个卷积层输出特征的结合,这样加强了特征的传播,实现了特征重用。Xception网络采用多个不同尺寸的卷积核,提高对不同尺度特征的适应能力,可以提取图片不同尺度的特征。因此采取特征融合的方式,用不同的网络提取图像的不同特征来进行训练。
1.3.1 DenseNet网络
DenseNet作为获得CVPR2017最佳论文奖的深度卷积神经网络模型,借鉴了ResNet的短路连接方式,采用密集连接的方式,将网络模型的任何两层都直接连接,学习到更多层次的特征,使得网络性能进一步提升。
DenseNet的网络基本结构如图2所示,主要包含稠密块(DenseBlock)和过渡块(transition layer)两个组成模块。稠密块的结构包括:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3),DenseNet由多个稠密块组成,每两个稠密块中间的连接层称为过渡块,由BN->Conv(1×1)->averagePooling(2×2)组成。
图2 DenseNet结构
DenseNet相比于其他的网络来说,具有较好的抗过拟合性能,适合于训练数据相对不足的情况。除此之外,DenseNet还具有以下特征:
(1)在DenseNet中,每个层都会与前面所有层连接在一起,并作为下一层的输入,而该层所学习的特征也会被直接传给其后面所有层作为输入。对于一个L层的网络,DenseNet共包含L*(L+1)/2连接,对于来自不同层的特征图直接连接,减少小样本的过拟合问题,实现了特征重用,提升模型的效率。
(2)DenseNet的参数相对于其他网络模型来说要少很多,同时由于梯度经过每一层的传递,在一定程度上避免了梯度消失现象的发生。
1.3.2 Xception网络
Inception最初提出的核心思想就是使用多尺寸卷积核去观察输入数据。在同一层中通过组合1*1,3*3,5*5卷积和池化等结构,使用不同尺寸的卷积核,提取更加丰富的特征,并且利用卷积核的合并,使得网络宽度增加,同时也提高了对于不同尺度的适应程度。但是网络变宽的同时,计算量也变大,所以通过加上1×1卷积核来减少参数,减少计算量。
Xception在Inception V3[20]的基础上借鉴深度可分离卷积(DepthWise Separable Convolution)实现了极致的Inception,在基本不增加网络复杂度的前提下提高模型的效果。但Xception与Depthwise Separable Convolution相比较,有两个不同之处:
(1)Depthwise Separable Convolution,先逐通道卷积,再进行1×1卷积操作;而Xception则是先进行1×1卷积操作,再逐通道卷积。
(2)Depthwise Separable Convolution的两个卷积之间没有激活函数,而Xception在经过1×1卷积操作之后加了Relu的非线性激活函数。
由此可见,Xception具有多个不同尺寸的卷积核,可以提高对不同尺度特征的适应能力,提取更加丰富的特征,并且利用极致的Inception结构,在加深网络的同时减少了参数,使得网络的性能得到提升。
1.3.3 特征融合
由于机器学习尤其是深度学习的迅速发展,特征融合应用在越来越多的领域,它所带来的优势也越来越明显。特征融合是指使用不同的特征提取方式,提取图像多种不同类型的特征,再按照特定的方法进行融合,构成一个新的特征向量,相比于单一的特征,特征融合后的特征向量具有图像更多的特征信息。
特征融合一般包括并联和串联两种形式,及add和concat方式。concat是以合并通道数的方式来融合特征,而add是以增加通道下的信息量的方式来融合特征,通道数不变。
由于每个输出通道的卷积核是独立的,以单个通道的输出为例,假设两路输入的通道分别为X1,X2,…,Xc和Y1,Y2,…,Yc,式(1)、(2)分别表示两种方式的输出通道。
concat的单个输出通道为(*表示卷积):
(1)
而add的单个输出通道为:
(2)
该文采用经过ImageNet数据集预训练的DenseNet201以及Xception模型,分别将训练得到的特征向量进行融合,在融合层后添加全连接层,融合后的特征经过全连接层,作为新的特征向量进行皮肤癌的识别。特征融合可以更大程度地获取到图像的不同特征,实现更好的识别效果。
特征融合如图3所示。
图3 特征融合过程
1.4 图像识别
皮肤癌图像的识别是最后一个部分,通过获取、分析及处理模型训练提取到的皮肤癌图像的特征,应用softmax分类器进行皮肤癌图像的识别。
softmax函数,也称归一化指数函数,和Relu、sigmoid激活函数不同的是,它们的输入是一个单变量,而softmax函数的输入是多个变量,常用于多分类神经网络输出。softmax用于多分类过程中,它将多个神经元的输出映射到(0,1)区间内,这些值的累和为1,可以将每一个神经元输出理解成概率。在最后选取输出节点的时候,选取概率最大(也就是值对应最大的)节点,作为预测目标。
其公式为:
(3)
其中,Zi表示每个神经元的输出,Yi表示映射后的softmax值。
2 实 验
2.1 实验环境
实验的计算机配置和环境如下:CPU处理器为Intel(R) Core(TM) i7-6700K CPU @ 4.00 GHz×8;GPU处理器为NVIDIA GeForce GTX TITAN X;内存(RAM)为16 GB;操作系统为64 bit Windows10专业版;编程语言为python;网络模型通过基于Keras的深度学习框架实现。
2.2 实验数据
采用的皮肤镜图像来源于Kaggle提供的公开数据集,该数据集包含来自不同人群的皮肤镜图像。病例包括色素性病变领域中所有重要诊断类别的代表性集合,图像大小是600×450,已由专业研究皮肤病变的医生做好标记。数据集中的皮肤病变包括:黑色素细胞痣(Nv),黑色素瘤(Mel),良性角化病变(Bkl),基底细胞癌(Bcc),光化性角化病(Akiec),血管病变(Vasc),皮肤纤维瘤(Df)这几个常见类型,如图4所示。
图4 皮肤癌各类型图
2.3 评价标准
为全面衡量模型的性能,除了采用识别准确率(Accuracy)评价标准外,同时考虑识别的召回率,即敏感性(Sensitivity)。
准确率的计算公式为:
Accuracy=
(4)
敏感性的计算公式为:
(5)
其中,q表示类别个数,TP(True Positive)表示被正确地划分为正例的个数,TN(True Negative)表示被正确地划分为负例的个数,FP(False Positive)表示被错误地划分为正例的个数,FN(False Negative)表示被错误地划分为负例的个数。当Accuracy和Sensitivity的值都较大时,说明模型具有较好的识别性能。
2.4 模型训练
基于Keras深度学习平台进行网络结构的搭建和模型训练。训练时,将批处理设置为32,学习率为0.001,采用L1正则化和随机梯度下降法(SGD),首先设置迭代次数为10,训练后会生成一个权重文件,在接下来训练时,选择上次训练所保存的权重再进行训练,设置迭代次数为1 000。实验表明,这样的训练方式有效地加快了收敛速度。
3 实验分析
实验采用五折交叉验证,将数据集随机分成五份,轮流将其中4份作为训练数据,1份作为测试数据,重复实验5次,5次结果的正确率的平均值作为对算法精度的估计。针对每一类皮肤癌,测试集的结果矩阵如图5所示。
图5 测试结果矩阵
从矩阵中的数据可以看出,针对每一类皮肤癌,识别率均在85%以上,其中有些类型的皮肤癌,例如血管病变的识别率达到了99.6%,但是在黑色素瘤,黑色素细胞痣等类别,还存在着误差,其中在黑色素瘤和黑色素细胞痣间存在错误识别,以及皮肤纤维瘤被错误识别为黑色素瘤、基底细胞癌等疾病,虽然存在着误判,但良性角化病变、基底细胞癌、光化性角化病和血管病变均达到90%以上。在识别率达到90%以上的类别中,一部分的错误识别是将良性角化病变识别为光化性角化病,以及将光化性角化病识别为基底细胞癌。对于总体的数据样本,识别率和敏感性也达到91.42%、87.37%,识别率和敏感性大大提高。
为验证提出的特征融合的有效性,选择在ImageNet数据集上预训练VGG19模型、ResNet50模型、DenseNet201模型以及Xception模型分别进行单独训练,再两两进行特征融合实验。其中,设置和特征融合训练时相同的参数。在训练时,利用首次训练所保存的权重再进行训练,将特征融合后的结果与之进行对比。实验结果如表1所示。
表1 特征融合与单一模型结果对比
根据表1可知,不同的卷积神经网络在皮肤癌图像识别上有不同的表现。DenseNet201在准确率方面有着不错的表现,能够达到88.39%,相比Xception、ResNet50、VGG19分别高出2.23%、5.59%、8.69%。基于所提出的特征融合方法,通过将Xception、ResNet50、VGG19、DenseNet201分别融合,发现融合后的卷积神经网络在识别正确率和敏感性值相比于利用单独模型训练的结果,均有所提高,其中DenseNet201和Xception融合后在皮肤镜图像分类上相较于其他网络模型表现得更好。表明利用特征融合的方法能够使模型学习到更加丰富的特征,提高了皮肤癌图像识别的准确率和效率,有效地解决了皮肤癌类间相似度高、类内差异大的问题。
利用数据增强以及未进行数据增强的实验结果如表2所示。
表2 数据增强与未数据增强结果对比
从表中可以看出,经过数据增强后的准确率和敏感性均略高于未进行数据增强的准确率和敏感性,证明数据增强对于解决数据样本小以及数据不平衡的问题是有效的,可以提高模型训练的准确率和敏感性。
4 结束语
基于卷积神经网络,对黑色素细胞痣,黑色素瘤,良性角化病变,基底细胞癌,光化性角化病,血管病变,皮肤纤维瘤这七类皮肤癌图像进行识别,针对皮肤癌识别中存在的误判、准确率低等问题,提出基于卷积神经网络特征融合识别皮肤癌方法。方法的优点在于:
(1)在迁移学习的基础上,使用预训练的DenseNet201模型以及Xception模型分别训练,采取特征融合的方式,实现了分类精度更高、收敛效果好的深度学习方法。
(2)采用数据增强的方法解决了皮肤癌图像标记样本过少带来的过拟合问题。
(3)实验证明,与单一模型相比,提出的方法准确率和敏感性更高,为临床诊断提供了更好的辅助作用。
存在的不足是实验数据不够充足,今后的工作方向是使用更多的数据测试模型的识别率。