王倩, 吕晓琪,2*, 谷宇, 张明,3
(1.内蒙古科技大学信息工程学院内蒙古自治区模式识别与智能图像处理重点实验室, 包头 014010;2.内蒙古工业大学信息工程学院, 呼和浩特 010051; 3.大连海事大学信息科学技术学院, 大连 116026)
宫颈癌是一种发生在女性子宫颈的癌症,是女性第二大致死癌症,从癌前病变发展为宫颈癌需要8~10 a,晚期存活率仅3%,但早期治愈率可高达90%[1-2]。近年来中国宫颈癌的发病率一直在上升,且主要集中在中西部欠发达地区,虽然宫颈疫苗已经在中国投入使用,但因资源稀缺、价格高昂以及年龄限制等问题没有很好的普适性[3],因此宫颈癌的早期普遍筛查对中国宫颈癌的预防和早期治疗有着重大意义。细胞学涂片检查作为宫颈癌筛查最常用且最经济有效的方式,可用于大规模体检[4]。但宫颈细胞阅片人员面临巨大缺口,难以满足目前需求。实现计算机自动对宫颈细胞进行细粒度分类可有效减轻阅片医生工作量,并为医生进一步诊断病情提供重要参考。
早期的宫颈细胞分类算法大多分为细胞分割、特征提取、细胞分类三个步骤。如范金坪[5]在进行细胞分割后通过遗传算法提取特征参数,使用基于BP(back-propagation)神经网络的两级神经网络的方法在私人数据集进行分类识别,识别率为97.46%。Singh等[6]进行特征提取后使用BP算法在私人数据集上实现宫颈细胞三分类,分类准确率为79%。李文杰[7]经细胞分割和特征提取后使用由支持向量机(SVM)、K-近邻算法(KNN)和人工神经网络(ANN)融合的分类器在Herlev数据集上进行宫颈细胞三分类,总识别率达到了94.9%。这类传统算法受限于分割精度和特征提取的完善度,并不适用于更加复杂的细胞细粒度分类。
卷积神经网络(CNN)可通过卷积层自动提取图像特征,相对传统算法更加简便[8-9]。Lin等[10]进行细胞分割后直接使用AlexNet、GoogLeNet、ResNet、DenseNet 4种模型分别在Herlev数据集上进行二、四、七分类,GoogLeNet表现最优,二、四、七分类准确率分别为94.5%、71.3%和64.5%。Gautam等[11]在AlexNet上使用迁移学习在Herlev数据集进行了二、七分类,准确率分别达到了99.3%和93.75%,同时也证明了精准的细胞分割对于深度学习的细胞分类是不必要的。Promworn等[12]分别使用ResNet101、DenseNet161、AlexNet、VGG19_bn、SqueezeNet1_1在Herlev数据集进行二、七分类,最终DenseNet161在该数据集上表现最好,在二分类和七分类上分别取得了94.38%的准确率,98.48%的敏感度,82.61%的特异性和68.54%的准确率、68.18%的敏感度和69.57%的特异性。因细胞相近类别的形态特征相似性较高,所以采用传统算法进行宫颈细胞的细粒度分类时特征提取难度较大,算法复杂准确率也较低;而深度学习的算法虽然在宫颈细胞的分类中相对传统算法较为简便,但因数据集较小而存在计算量大、特征冗余等问题,对于宫颈细胞的细粒度分类效果也欠佳。
针对上述问题,现提出一种基于DenseNet121和Xception的双流网络深度学习算法对宫颈细胞进行细粒度识别分类,并针对小数据集对网络进行改进以提高网络的泛化能力,同时采用有效的数据增强,防止因数据较少而造成过拟合情况。
DenseNet121网络模型较深,具有较好的非线性表达能力,可更好地拟合特征,Xception相较传统的Inception加宽了网络,使其更善于捕获多样化特征,故本文在进行宫颈细胞细粒度分类时选取DenseNet121网络以及Xception网络作为基础网络构建双流卷积模型;此外,为提升模型分类性能,在DenseNet121的卷积层中加入DropBlock模块防止模型过拟合,在Xception网络层中加入SE模块使其更好地提取宫颈细胞特异性特征,最终形成的网络取名为DXNet。DXNet总体网络架构如图1所示,首先将进行数据扩增后的数据集图片分别输入改进后的DenseNet121和改进后的Xception网络中进行特征提取,然后使用Concatenate层将两个网络生成的特征图进行融合;最后使用Dropout层进行网络正则化,Dense层进行所有特征的提取整合。
1.1.1 DenseNet121简介
DenseNet[13]使用一种通道叠加的密集连接机制[14],使每个层都会接受该层前面所有层的输出作为其额外的输入,这种方式可使网络参数更少,计算效率更高。图2所示为DenseNet中DenseBlock的结构图,即前面所有层的输出都作为后面层的输入。
Xi=Hi([X0,X1,…,Xi-2,Xi-1])
(1)
式(1)中:i为层数;Hi(·)为第i层的函数操作;Xi为第i层的输出。
图1 DXNet网络总体结构Fig.1 The overall structure of the DXNet network
图2 DenseBlock内部结构图Fig.2 DenseBlock internal structure diagram
DenseNet由DenseBlock和间隔模块Transition Layer组成。Transition Layer主要功能是整合上一个DenseBlock获得的特征,并且减小特征图的尺寸。DenseNet121由4个DenseBlock和3个Transition Layer组成。
1.1.2 DropBlock简介
DropBlock[15]是一种结构化的Dropout[16]形式,两者都可以用于网络正则化,效果图如图3所示。当Dropout和DropBlock用于卷积层时,Dropout丢弃特征单元的方式使网络还可从附近单元学习到丢弃部位信息,而DropBlock块状丢弃特征单元则可迫使网络学习其他未被丢弃方位信息,故DropBlock可用于卷积层进行网络正则化。
DropBlock有2个主要参数:b和γ。b是可人为设置的随机丢弃的方块大小。当b=1时,DropBlock 等同于Dropout;但当b太大时,又会因为丢失信息太多而起到反效果;通常情况下b取值为3、5、7。γ是伯努利函数概率,用来控制删除的特征图的单元数。公式为
(2)
图3 DropBlock和DropoutFig.3 DropBlock and Dropout
式(2)中:k为将一个单元保留在特征图中的概率;fs为特征图的大小。
1.1.3 改进方案
DenseNet121具有较深的网络结构,可以很好地提取细胞特征,但在本文所使用的宫颈细胞数据集较小的情况下较容易带来过拟合问题。因此针对深层网络提取出的一些宫颈细胞无效特征,可通过在卷积层加入DropBlock进行网络正则化从而使网络表现出更好的鲁棒性及泛化能力。
对DenseNet121的每个DenseBlock引入DropBlock,添加位置为DenseBlock的每个Dense Layer的3×3卷积层之后。改进后的DenseNet121如图4所示,如图4左下角为改进后的Dense Layer。输入的图片经过4个加入DropBlock的DenseBlock和3个Transition Layer,再经过一个全局最大池化层后输出一个大小为1×1×1 024的特征图。
1.2.1 Xception简介
Xception[17]相对原Inception-v3网络引入了深度可分离卷积(depthwise separable convolution)。原始的深度可分离卷积可看作两步传统卷积:先深度卷积(depthwise convolution)后逐点卷积(pointwise convolution)。Xcepion中所用的深度可分离卷积为先逐点卷积后深度卷积,虽然顺序改变,但参数数量不变,Xception中所用卷积如图5所示。
图4 改进后的DenseNet121网络结构Fig.4 Network structure of improved DenseNet121
大量使用深度可分离卷积可降低网络参数数量。假设输入特征图的尺寸为Dk×Dk×M,卷积核的尺寸为DF×DF×M,其数量为P。设对应特征图空间位置中每个点都会进行一次卷积操作,则对于P个卷积操作的计算,深度可分离卷积S1和普通卷积总计算量S2的比值可表示为
(3)
从式(3)中可以发现深度可分离卷积的计算效率要远超于普通卷积。这也是Xception相对Inception-v3加宽了网络但参数数量却差不多的原因。
图5 Xception中深度可分离卷积Fig.5 Depthwise separable convolution in Xception
1.2.2 SE模块简介
SE(squeeze-and-excitation)模块[18]通过获取特征通道权重使网络关注更重要的特征信息来达到提升网络性能的目的。SE模块如图6所示,通过对输入的特征图依次进行Squeeze与Excitation和Scale操作来输出一个具有通道权重的特征图。
Squeeze操作利用全局平均池化进行特征压缩,将特征图U由大小W×H×C压缩综合信息为1×1×C大小。Squeeze操作的公式为
(4)
式(4)中:zc为通道特征信息;uc为U中第c个二维矩阵。
Excitation操作使用zc组成的总结果信息z获取各通道间联系,先使用全连接层(fully connected layers,FC)进行降维操作,即矩阵W1乘z,再经过一个ReLU(rectified linear unit)操作δ(·)和矩阵W2相乘进行升维,最后经过sigmoid函数得到s,s是大小1×1×C的特征图。Excitation操作可用公式表示为
s=Fexcitation(z,W)=σ[W2δ(W1z)]
(5)
Scale操作是进行特征重标定的过程。sc为通道权重,Scale操作通过把uc矩阵中的每个值都乘以sc以得到带有特征权重的特征图X。Scale操作可用公式表示为
Xc=Fscale(uc,sc)=scuc
(6)
图6 SE模块结构Fig.6 SE module structure
1.2.3 改进方案
为更有效利用Xception网络宽度较宽的特性,本文在Xception网络层之后中加入SE模块,使网络提取大量丰富特征后通过SE模块赋予各通道权重使网络更好地学习宫颈细胞的特异性特征。优化后的Xception如图7所示,SE模块为图7中右下角区域。如图7所示输入的图片经过Xception的Entry flow,Middle flow和Exit flow的网络层后经由SE模块加入特征权重再经过一个全局最大池化层后输出一个大小为1×1×2 048的特征图。
实验使用Python语言进行编程,为了提高实验效率,在Windows10系统下Pycharm环境使用CPU(central processing unit)进行数据的处理及模型的测试,模型的训练平台为DGX的Ubuntu18.04系统,GPU(graphic processing unit)为Tesla v100。
图7 改进后的Xception网络结构Fig.7 Network structure of improved Xception
因宫颈细胞的特殊性,颜色、尺度及缩放变换等常见数据扩增方式并不适合宫颈细胞。故使用旋转、翻转、平移等几何变换的方式对数据进行扩增[19]。对于旋转后的图片会用像素为0的像素点将图片周围填充,扩充操作如图8所示。因为训练过程中正负样本的不均衡容易造成某个类别分类准确高,某些类别准确率低的状况,所以在数据增强的过程中会适当调整数据集的正负样本比例。
图8 数据集扩充Fig.8 Expand the dataset
2.2.1 Herlev数据集及其预处理
Herlev数据集[20]是由海莱乌科技大学和丹麦科技大学搜集的Herlev巴氏涂片新版公开数据集,也是全球公开的最权威的宫颈细胞数据集。数据集使用软件包CHAMP (Dimac)准备,包含917张平均大小为156×140的单细胞图像,单个宫颈细胞直径为8~60 μm。图像由两位细胞学医师进行分类,只有两个医师分类一致图像才被采用,所以该数据集的图像质量较高。该数据集中细胞的7个类别具体如图9所示。这7类细胞中前3类为健康细胞,其余为异常细胞。其中柱状上皮细胞因其形状、颜色等与异常细胞具有高度相似性易被误认为异常细胞,所以适当加大了其数据扩增的力度。经数据增强后的Herlev数据集如表1所示。
2.2.2 SIPAKMED数据集及其预处理
SIPaKMeD数据集[21]包括4 049张分离细胞的图像,这些图像通过适应光学显微镜(OLYMPUS BX53F)的CCD(charge coupled device)相机获得,然后手工从966张巴氏涂片细胞图像中剪切出来。根据细胞的结构和形态,细胞被分为5个不同的类别。如图10所示。
其中浅表中间型细胞和副基底层细胞可进一步归类为正常细胞;空泡细胞和角化不全细胞两类细胞因细胞核开始出现形态变化故归类为异常细胞;角化不全细胞也是异常细胞水平,是宫颈癌前病变和癌性疾病开始发展的阶段。具体的图像分类以及进行扩增后的图片数据如表2所示。
图9 Herlev数据集细胞图示Fig.9 Herlev dataset cell images
图10 SIPaKMeD数据集细胞图示Fig.10 SIPaKMeD dataset cell images
表1 Herlev数据集扩增详情Table 1 Herlev dataset expansion details
表2 SIPaKMeD数据集扩增详情Table 2 SIPaKMeD dataset expansion details
实验使用混淆矩阵、准确率(accuracy, ACC)、特异性(specificity, SPE)、敏感性(sensitivity, SEN)、精准率(precision, PRE)、F1多种评价标准对模型的分类实验结果进行综合评估。
混淆矩阵(confusion matrix)可以直观的看出模型在各个类别上分类的情况。图11所示为一个5分类且以第4类别为例的混淆矩阵,其中被准确识别为第4类别的用YTP表示,被准确识别为其他类别的用YTN表示,第4类别被识别为其他类的用YFN表示,其他类被识别为第4类的用YFP表示,其余类别YTP、YTN、YFN、YFP的计算方式同第4类别。
准确率,表示正确分类的样本在所有样本中的数据比例,公式为
(7)
图11 混淆矩阵Fig.11 Confusion matrix
敏感性,表示正样本被正确识别的比例,公式为
(8)
特异性,表示负样本被正确识别的比例,公式为
(9)
精准率,表示被识别为正样本中正样本所占比例,公式为
(10)
F1为敏感性和精准率的调和平均值,可更直接地表示方法的有效性,公式为
(11)
在进行模型整体分类的评价标准中,除准确率可直接通过式(7)计算外,其余均无法直接通过公式计算,故在模型整体的评价指标中敏感性、特异性、精准率和F1均使用各类别的平均值来表示。
首先通过实验对比DenseNet121改进前后和Xception改进前后在宫颈细胞细粒度分类中的表现,证明其改进的有效性;随后进行网络融合消融实验,证明网络融合有效性以及最终融合方案即DXNet融合方案的有效性,接着对DropBlock中丢弃特征块的大小,即b参数的最终取值进行实验验证;最后对比DXNet与其他算法进行宫颈细胞细粒度分类实验的实验结果。
因Herlev数据集较小,为使训练集涵盖更多类型样本以提取更多不同细胞特征,故相对数据量较大的SIPaKMeD数据集增大了Herlev数据集的训练集比例,实验将进行数据预处理后的Herlev数据集每一类都随机按照训练集(80%)、验证集(10%)和测试集(10%)进行七分类实验,将处理后的SIPaKMeD数据集每一类都随机按照训练集(70%)、验证集(20%)和测试集(10%)进行五分类实验。实验使用框架为Keras,优化器为Adam (adaptive moment estimation), Batchsize大小为32,受数据集数据量大小影响,Herlev数据集的训练epoch设置为200,SIPaKMeD数据集的训练epoch设置为150,实验模型的保存以验证集准确率作为对比标准,在训练过程中只有该epoch的模型验证集准确率高于上次保存的模型验证集准确率,该模型才会被保存。
2.4.1 DenseNet121、Xception的改进测试
这一部分将证明对于单个网络改进的有效性。在相同实验条件下,分别使用DenseNet121改进前后的网络模型和Xception改进前后的网络模型在Herlev数据集和SIPaKMeD数据集上测试。为更加直观地表示测试结果在精度上的差异,测试结果如图12所示,图12(a)是改进前后的DenseNet121和Xception网络在Herlev测试集上的表现,图12(b)是其在SIPaKMeD测试集中的表现。
从图12展示的两个数据集上的实验结果中可清晰看出,改进后的DenseNet121网络与改进后的Xception网络在进行宫颈细胞细粒度分类实验时的表现均优于改进前。改进后的DenseNet121相对改进前在Herlev数据集上提升了3.15%的准确率,在SIPaKMeD数据集上提升了2.59%的准确率,且其余评价参数也有不同程度的提升,这证明了通过在DenseNet121中加入DropBlock进行特征块丢弃的方式提高其在宫颈细胞细粒度分类准确率的方法是可行的。改进后的Xception相对改进前在Herlev数据集上提升了2.32%的准确率,在SIPaKMeD数据集上提升了1.03%的准确率,其余评价指标亦有不同程度的提升,证明在Xception中加入SE模块提升模型识别的效果的方法是有效的。
图12 改进模型测试结果Fig.12 Test results of the improved model
2.4.2 消融实验及DXNet实验结果分析
这一部分进行网络融合方案消融实验、b取值的实验验证以及DXNet的实验结果分析。
在相同实验条件下,进行关于DenseNet121网络和Xception网络的4种不同融合方法的消融实验,实验同时使用Herlev数据集和SIPaKMeD数据集。实验结果如表3所示。
观察表3结果,可以发现融合改进DenseNet121和改进Xception的模型,即DXNet模型在两个数据集中的各方面表现均为最优,分别达到了99.84%和99.88%的准确率,证明了DXNet的融合方案为最优融合方案,同时也证明了本文对于单个网络的改进在进行网络融合后依然能够发挥其作用。
为进一步直观地观察数据,对不同融合方法进行了对比,实验结果如图13所示,图13(a)和图13(b)分别为各实验模型在Herlev数据集和SIPaKMeD数据集中的表现,其中DenseNet121*表示改进后的DenseNet121网络,Xception*表示改进后的Xception网络。为了更好地说明网络融合的有效性,增加了在单个网络中表现最优的改进Xception网络的实验结果。
通过观察图13可知,除了由原始DenseNet121和原始Xception融合的网络外,其余融合网络均不逊色于改进Xception网络,且通过对比图12和图13,可以观察到经过融合后的网络性能表现均优于融合前,这证明了使用网络融合的方式提高模型分类准确率的方法是有效的。
DropBlock中b的取值会影响实验结果,因此通过实验来选择b的最优取值,实验选择在对模型更加敏感的Herlev数据集上进行。实验结果如表4所示。由表4可知,当b=5时,模型效果最优,所以本文有关b参数的实验中b的取值都为5。
表3 不同融合方法测试结果Table 3 Test results of different fusion methods
图13 不同融合方法结果对比Fig.13 Comparison of results of different fusion methods
DXNet网络对Herlev测试集和SIPaKMeD测试集进行细粒度分类的混淆矩阵和各类细胞的评价指标具体如表5和表6所示,由表5可得知DXNet模型使用Herlev测试集进行测试时除将一张中度病变的图片识别为轻度病变外,其余均正确分类,模型整体细粒度分类效果较好;由表6可知DXNet使用SIPaKMeD测试集进行测试时除三张角化不全细胞分别被错判为两张空泡细胞和一张化生型细胞外,其余均正确分类,且这三类细胞都属于非正常细胞。从DXNet模型在两个数据集上进行分类的表现可以看出,DXNet模型进行细粒度分类的识别率较高,不仅对细胞相近类别分类效果较好,对于正常细胞和异常细胞的关键分类亦具有高度敏感性。
图14为分类错误的具体图片以及相应的置信度,其中图14(a)为Herlev测试集中被分类错误的图片,该图存在细胞重叠的现象,很大程度的混淆了细胞的核质比,所以造成了较难分类的情况。
表4 参数选择Table 4 Parameter selection
表5 DXNet在Herlev测试集上的表现Table 5 DXNet’s performance on Herlev test set
表6 DXNet在SIPaKMeD测试集上的表现Table 6 DXNet’s performance on SIPaKMeD test set
图14(b)~图14(d)为SIPaKMeD测试集中分类错误的图片,这三张图片同样存在不同程度的细胞重叠,其中图14(b)和图14(c)中重叠的其他染色细胞可能会被误认为被识别细胞的一部分,而图14(d)中因为图片中存在客观元素导致图片不清晰以至于细胞核和细胞质没有明显的分界,这可能是其被错误分类的原因。
图14 分类错误的细胞Fig.14 Misclassified cells
2.4.3 实验结果对比
为进一步验证模型有效性,本部分将对比DXNet与其他模型进行宫颈细胞细粒度分类时的表现,如表7和表8所示。表7为不同模型使用Herlev数据集进行7分类实验结果,表8为不同模型使用SIPaKMeD数据集进行5分类实验结果。
文献[11,23]中均使用AlexNet作为基础网络,但文献[11]是简单使用AlexNet和迁移学习进行分类,分类准确率较低;文献[23]分割细胞核后,使用AlexNet组合的多流神经网络结合人工设计特征进行分类,虽然分类准确率较高,但算法较为复杂;文献[22]中首先对细胞核进行分割,然后使用类VGG网络进行分类,细胞细粒度分类准确率较低;文献[24]使用随机森林分类器对分割出的细胞核进行分类,算法复杂且分类准确率较低;文献[25]使用分类回归树(CART)进行特征选择,粒子群优化算法(PSO)对SVM的超参数进行优化,最后使用SVM进行分类,分类准确度较高,但算法复杂;文献[21]使用改进后的VGG-19进行了分类,分类准确率偏低;文献[26]对所有宫颈图像的CNN特征进行聚类,然后构造图结构,使用图神经网络(GCN)探索宫颈细胞图像的内在联系,算法准确率较高,但耗时较长;文献[27]使用Bagging集成分类器综合5个分类器的结果,但分类准确率较低。
表7 Herlev数据集不同方法实验结果Table 7 Experimental results of different methods on Herlev dataset
表8 SIPaKMeD数据集不同方法实验结果Table 8 Experimental results of different methods on SIPaKMeD dataset
综上所述,传统的机器学习算法复杂且准确率较低,一些需要分割细胞核的算法受到分割算法准确率的影响,一些需要人工提取特征的算法并不具有代表性。而本文方法使用的DXNet网络结构更加多样化,能够有效提取特征,且对宫颈细胞进行细粒度分类的识别率也较高。
提出了一种双流卷积神经网络对宫颈细胞进行细粒度分类,通过在深度网络DenseNet121中加入DropBlock增强模型泛化性,在Xception添加SE模块使网络拥有特征权重以更好的提取宫颈细胞特异性特征,且对两个改进后的网络进行了特征融合,通过简单的数据增强来达到扩增数据集的目的,最后在扩增后Herlev数据集和SIPaKMeD数据集上进行了宫颈细胞的细粒度分类实验。实验结果表明,与其他常用方法在采取多种评价指标综合评估模型能力的情况下,DXNet在两个数据集上进行宫颈细胞的细粒度分类测试均有良好的性能提升,在对宫颈细胞相近类别有较高的分类准确率的同时亦保证了正常细胞和异常细胞关键分类的识别率,具有较好的临床价值,但本文算法对重叠细胞的分类仍有不足,这也是医生进行人工阅片时易出现的难题,针对这个问题,未来将继续收集数据进行进一步研究。