宫颈癌作为一种十分恶性的肿瘤, 严重影响着广大女性的身体健康. 近年来, 宫颈癌在女性患癌比例中较高, 发病率也在逐渐升高, 同时, 宫颈癌也成为女性癌症中死亡率较高的疾病, 由此, 研究如何论断和治疗宫颈癌成为全世界的重要课题. 然而病理医生观察一张影像要从很多的正常细胞中鉴别出是否发生癌变, 这本身就相当困难, 再加之患者人数相对众多, 拥有医学病理知识的医生数不足, 且医生存在主观判断和客观疲劳等诸多因素, 使得医疗市场对自动阅片、判读患者病症是否异常的诊断技术尤为迫切. 近些年来, 机器学习、深度学习与人工智能等专业词汇, 无论在科研界亦或是寻常生活中, 无不被时常提起. 在这些技术的加持下, 数字影像技术得到了快速发展, 尤其是医学影像技术的发展十分迅猛. 高清的医学图像使得医生能够高质量地阅片, 相比以前影像质量, 大大降低了误诊率. 再加上通过TBS规则和宫颈癌细胞观察, 不同的宫颈癌细胞与正常的宫颈细胞在细胞核部分有比较明显的差异[1]. 这说明, 宫颈细胞核本身包含了大量可以判别异常的特征. 正是基于此, 运用深度学习技术, 围绕以医学图像中宫颈细胞细胞核为分割对象来展开相关研究[2], 成为医学影像论断的研究热点.
1 研究现状早期的宫颈细胞筛查多是通过细胞学检测的方法, 通过采用液基制片方式处理宫颈细胞, 接着采取细胞学检测的方法判断宫颈细胞是否癌变[3]. 随后, 大多数研究者对于宫颈细胞的研究多是采用传统图像分割, 如水平集分割等手段[4], 或是基于宫颈细胞图像特点的人工设计特征加以机器学习分类器来识别和检测宫颈癌变细胞. 然而, 传统分割方式存在分割精度不够, 人工设计特征不够完善导致分类器效果不佳等问题也反映出这些方式的局限性. 为了自动高效地筛查和识别宫颈细胞, 深度学习(deep learning)技术被提出了, 依托于大数据和高速硬件算力的支持下, 取得了高速的发展, 相较于传统机器学习而言, 深度学习拥有强大的特征表征和学习能力, 文中正是运用此特点来对宫颈癌变细胞的细胞核进行分割识别.
2015年, U-Net网络结构被提出来, U-Net网络是基于全卷积神经网络(Fully Convolutional Nerual network, FCN)的一种语义分割网络[5, 6]. 经过这些年发展完善, U-Net成为比较经典的分割网络, 具备很多优势. 首先, 从设计上来说, 它相对对称的网络结构优秀且有效的点在于结合了深浅层特征. 其次U-Net为弥补高层语义特征分辨率不足的问题, 采用了上采样高低信息融合的操作使通道信息互接, 而不是FCN中对应特征图信息的简单相加. 不仅如此, U-Net还在每层上采样信息融合后, 用两层卷积提取两种特征信息, U-Net的这种做法使得高层语义特征信息与低层高分辨率特征信息更加杂糅, 更加抽象, 并且相较于未融合低层信息的网络多了高分辨率的低层信息. 由于U-Net的这些特点使其得到的分类定位结果更加准确, 边缘分割效果更好.
但是经过实践证明, U-Net还是存在一些问题. 其一, 在U-Net编码器部分, 使用的是原始网络层数较少、结构较为简单的卷积神经网络, 这样简单的网络在分类任务上效果不太理想, 难以提取图像中一些更为抽象的高层特征且不能够充分利用全图像的信息, 编码网络的不足会使得最终的分割结果不够精准. 其二, 由于宫颈细胞细胞核大小不一且占据图像中较小部分, 原始的网络难以实现对细胞核特征的学习. 其三, 在进行池化操作时容易丢失数据, 导致U-Net的分割效果不如人意, 针对这些问题有必要对U-Net进行改进, 力求改善或解决存在的问题.
2 存在问题与解决思路由以上分析可见, U-Net网络主要存在3个问题, 分别是U-Net编码器相对简单、损失函数Loss不够优秀、池化层丢失信息, 就这3个问题提出如下解决思路.
(1)因原始U-Net编码器部分相对简单, 导致不能提取相对抽象的高层语义特征用于分割定位, 将稠密连接的DenseNet引入U-Net的编码器部分, 使得网络能够提取更为抽象的语义信息和融合各通道信息, 便于提升后续解码器的分割效果.
(2)通过分析宫颈细胞核数据特征, 提出一种改进的Loss损失函数的方法来优化网络. 通过对在宫颈细胞核和背景的二分类问题中使用的二元交叉熵损失函数给予两个目标不同的权重, 使网络更加注重任务目标细胞核特征的学习, 还引入了交并比(Dice)来强化网络对于宫颈细胞核边缘和分割细节的学习, 提升了分割边缘和细节的效果.
(3)进一步通过对传统池化层的改进, 使得一定程度上弥补了原始池化层丢失信息的不足, 从而得到了更好的分割效果.
3 改进型U-Net基于上述解决思路, 针对U-Net编码器相对简单、损失函数Loss不够优秀、池化层丢失信息, 提出以下具体解决方案.
3.1 网络改进原始的U-Net网络在编码器部分使用的是较为简单的提取特征网络, 又由于医学图像数据较少, 较深的网络难以训练, 较复杂的网络容易过拟合. 所以采用网络各层信息充分融合的DenseNet中DenseBlock改造原始U-Net的编码器部分[7].
Huang等在文献[8]中提出了一种称为DenseNet的新型架构, 相比于ResNet进一步利用近路连接的效果将所有层直接互连在一起. 在这种新颖的架构中, 每层的输入由所有较早层的特征映射组成, 其输出传递给每个后续层. 特征映射与深度级联聚合. DenseBlock结构图如图1所示. 在传统卷积神经网络中, 假设有L层, 那么它就会有L个连接, 但是在DenseNet中会有L(L+1)/2个连接. 简单说就是每层输入是前面所有层网络的输出. 如图1所示: x0是输入Input, 此时H1的输入是x0 (Input), H2的输入是x0和x1 (x1是H1的输出), 以此类推. DenseNet公式如式(1):
$ {x_l} = H([{x_0},{x_1},\cdots,{x_{l - 1}}]) $ | (1) |
式中,
DenseNet设计有以下几个优点及其原因: (1)网络相对于GoogLeNet更窄[9], 相对于ResNet参数更少, 这是由于DenseBlock的设计中, 每个卷积层输出的feature map数量都比较少(一般小于100), 而不像其他网络动辄几百上千. 由于稠密连接的原因, 使得它减小参数的同时又能够更有效地利用特征. (2) DenseNet这种连接方式相当于每层都直接连接input和Loss, 这样就会让特征和梯度传递更加有效, 缓解梯度消失问题, 而且分类时可以直接用到前面低层的特征.
使用DenseBlock组成DenseNet结构如图2所示, 图中包含3个DenseBlock, 每个DenseBlock中特征图大小统一, 方便作通道连接操作.
将DenseNet来替换原始的U-Net编码器部分, 使其能够提取和利用更加抽象有用的图像特征, 具体使用见下文实验中模型结构介绍.
3.2 损失函数改进原始的U-Net网络将输出值通过Softmax分类器得到与原图尺寸一样的预测Mask标签图, 这张图的每一个像素位置都是该位置是否是细胞核的概率值. 网络通过预设的损失函数, 计算预测图与Mask标注图之间的差异, 再通过反向传播, 相应的梯度优化方式, 迭代更新出U-Net中各个卷积核的最佳权值参数.
图像分割任务从单个像素的角度看, 是一个分类任务. 对于神经网络中分类任务常用交叉熵损失函数, 文中研究的目标是分割出宫颈细胞中的细胞核部分, 除了核其他都是背景, 这是一个二分类问题, 所以使用二元交叉熵作为网络的损失函数. 公式如式(2):
$BCE = \frac{1}{n}\sum\nolimits_1^{\textit{z}} {(\mathop y\nolimits_i \log \mathop {\hat y}\nolimits_i + (1 - \mathop y\nolimits_i )\log (1 - \mathop {\hat y}\nolimits_i ))} $ | (2) |
式中,
$ BCE = \frac{1}{n}\sum\nolimits_1^{\textit{z}} {(\mathop {\alpha y}\nolimits_i \log \mathop {\hat y}\nolimits_i + \beta (1 - \mathop y\nolimits_i )\log (1 - \mathop {\hat y}\nolimits_i ))} $ | (3) |
式中, α表示细胞核权重值, β表示细胞质、杂质等背景的权重值, 这两个超参数在训练过程中的验证集上作修整(一般取的α是β的3倍). 设置时, 一般会将α值相较于β值设置大一些, 使得网络学习更多的细胞核特征.
虽然加了权值的二元交叉熵损失函数使得网络更多的关注细胞核的特征, 但是它只考虑到单像素分类问题, 没有考虑到全局信息, 所以在损失叠加回传的时候, 网络更为关注那些损失值很大的像素点, 这样分割出来的结果使得细胞核边界相对模糊, 形状和真实标注有较大差异, 细胞核边界分割效果不佳.
所以考虑到分割的边缘效果问题, 采用图像分割中常用的分割评价标准IoU作为Loss函数的一部分指导网络去关注分割边缘. IoU的表达式如式(4)所示. 由于该式不可导不能直接作为网络的损失函数使用, 所以对其进行简单修改得到Soft-Dice作为间接损失函数. 公式如式(5).
$IoU = \frac{{2{\rm{|}}X \cap Y|}}{{|X| + |Y|}}$ | (4) |
$SD = \frac{{2\displaystyle\sum\nolimits_1^Z {\mathop y\nolimits_i \mathop {\hat y}\nolimits_i } }}{{\displaystyle\sum\nolimits_1^{\textit{z}} {\mathop y\nolimits_i } + \displaystyle\sum\nolimits_1^{\textit{z}} {\mathop {\hat y}\nolimits_i } }}$ | (5) |
式(5)中,
为了更好地发挥上述两种Loss的各自优势和弥补其各自的不足, 把两种Loss函数按一定的线性方式进行组合, 组合成最终的合并Loss, 公式如式(6).
$L = \gamma {\rm{*}}BCE + \delta {\rm{*}}(1 - \log SD)$ | (6) |
式(6)中, 为了简化Soft-Dice的计算, 所以对其取对数进行计算, 又因为它是衡量两个分布之间的相似程度的, 所以用一减去它的值作为回传损失. 式中
U-Net网络最终输出结果是一个与原图大小一致的概率图, 图上每一个像素点的值代表它是否属于细胞核的概率值, 为了得到一个与真实标注一样形式的二值图, 需要在网络输出部分添加一个阈值, 该阈值在网络训练过程中的验证集上获得, 当像素点的值高于该阈值时设为1, 相反设为0, 再把每个像素值乘以255, 就可以得到目标分割图了.
3.3 池化层改进基于卷积神经网络的特征提取网络中, 池化层用来减少参数、缓解过拟合现象、增大感受野范围和提高部分泛化能力等, 但是池化无可避免地会使网络丢失特征信息. 并且常用的平均池化相当于池化域内像素权值一样, 使得每个像素重要性一致, 这与真实情况不符, 不能很好地反映全局特征. 除此之外, 最大值池化会将非最大的池化域内所有信息都丢失, 这也是不稳妥的做法.
所以基于以上的考虑, 在一定要使用池化操作的前提下, 将池化操作进行改进, 使得其对池化域内的像素值分配合理的权值, 充分考虑和利用好特征值, 使网络提取的特征更能表现出全局性. 改进的池化算法公式如式(7):
$\mathop S\nolimits_{lk} = \displaystyle\sum\nolimits_{i = 2l - 1}^{2l + c - 2} {\displaystyle\sum\nolimits_{j = 2k - 1}^{2k + c - 2} {\mathop \mu \nolimits_{ij} \mathop F\nolimits_{ij} + \mathop b\nolimits_x } } $ | (7) |
式(7)中,
$ \mathop \mu \nolimits_{ij} = \frac{2}{{\mathop c\nolimits^2 \left( {1 + \mathop {\rm e}\nolimits^{ - \textstyle\frac{{\mathop F\nolimits_{ij} }}{a}\mathop \sigma \nolimits^2 } } \right)}} $ | (8) |
式(8)中, c代表池化操作大小的边长,
为验证改进型U-Net, 进行实验的平台是基于Python的深度学习库PyTorch[10]. 使用的软硬件环境参数如下: CPU为Intel Core i7-6700HQ、GPU为单卡GTX960M、内存为8 GB、操作系统环境为Windows 10企业版2016长期服务版、编程语言为Anaconda3的Python3.6.
4.1 网络结构
原始的U-Net网络由于编码器部分, 层数较少结构较为简单, 所以对U-Net特征提取部分采用通道信息融合更为优秀的DenseNet网络中DenseBlock模块. 原始的DenseNet网络结构图见表1. 表中k值代表每个DenseBlock中每层输出的特征图feature map个数. 由于DenseBlock设计, 后面几层是前面所有层作通道连接得到, 会使得后面几层通道特别多, 所以在每个DenseBlock中的3×3卷积前用一个1×1的卷积层(bottleneck layer)来降维和融合各通道信息(默认输出通道是4k个). 为了进一步压缩参数, 在每两个DenseBlock之间也加了一个1×1卷积(translation layer), 默认减少一半通道.
考虑到实验环境和实验数据相对不充足的原因, 选用DenseNet-121来作为改进U-Net的编码器部分. 修改方式如下: 首先把原始DenseNet-121的classification layer去掉, 用1×1的卷积替换, 输出是大小为32×32的特征图, 个数是输入通道数的一半, 并且使用改进的池化层替换原始的最大值池化和均值池化. 这样就完成了改进型U-Net网络的编码部分, 后部的反卷积和跳跃结构保留, 修正矩阵大小, 以适应网络前层的修改.
4.2 模型实验
实验流程图如图4所示.
(1)图像预处理: 对数据集图像进行裁剪、图像位深、直方图均衡化和高斯滤波等.
(2)训练数据集增强: 分别应用3种翻转、3种旋转、平移、缩放和随机裁剪等.
(3)训练U-Net图像分割模型: 将划分好的训练集数据经过预处理和数据增强后, 与对应的标注图成对的送入U-Net网络进行学习, 训练网络数据时, 当训练集中的Loss值不断减小至较小值, 且变化趋于稳定时, 说明该网络已经收敛, 保存此过程中精确度最高的模型权重为Best Model. 训练模型实验流程图如图5所示.
在本实验中, 使用DenseNet改进U-Net编码器部分的网络, 并且采用改进的损失函数和池化层操作, 用DenseNet-121在ImageNet上的预训练权重初始化网络编码器部分的参数训练网络. 将学习率(learning rate)设置为自适应衰减学习率[11], 初始为0.01, 每100次迭代学习率降低0.1. 使用带动量的梯度下降方式来优化模型, 动量参数为0.9, 并设置动量衰减为0.0005. 由于实验环境内存限制, 把每批次处理的图像数据batch size设置为1, 充分训练数据集, 总共训练5000次, 当网络的损失函数不再下降或者达到预设迭代次数的时候, 停止训练网络, 保存这期间训练集最高准确率时候的权重参数.
(4)模型评价. 使用一定的测试集评价技巧, 对测试集数据进行翻转、旋转等扩充操作, 再使用上面训练好的Best Model来对增广后的测试集数据进行预测, 接着将预测结果进行测试集扩充操作的逆操作, 最后对预测结果逐像素取平均操作得到最终结果. 这样可以提高一定的分割效果. 最后使用平均像素精度(MPA)[12]、平均交并比(MIoU)[13]、过割率和欠割率来对分割结果进行评估, 等价于评估模型优劣.
4.3 实验结果与分析通过网络预测测试集数据, 对比平均像素精度(MPA)、平均交并比(MIoU)、过割率和欠割率来评价模型优劣.
对比原始U-Net, 改进型U-Net所取得的精度增量如下:
当只改进网络时, 过割率和欠割率明显下降, 取得下降精度分别是0.040和0.0080.
当只改进损失函数时, 平均交并比(MIoU)取得明显增量精度, 提升精度0.0530.
当只改进池化层时, 平均像素精度(MPA)提升精度0.0429.
当三者均改进之后, 取得的相应评价指标如表2所示, 相应的FCN、U-Net、改进型U-Net分割结果图分别如图6(b)、图6(c)、图6(d)所示.
图6(b)、图6(c)、图6(d)分别是FCN、U-Net和改进型U-Net的宫颈细胞核分割效果图, 图6(a)和图6(e)分别是对应的原图和手工标记图. 可以看出, FCN对于细胞核中心定位效果还行, 只是存在少量过检和漏检, 对于边缘细节效果不佳; U-Net网络对于宫颈细胞核中心分割效果不错, 细胞核边缘相较于FCN效果要好一些; 改进型的U-Net总体效果最好, 过分割和欠分割相对较少, 对于宫颈细胞核边缘分割相对于FCN和原始U-Net来的更加细致, 更加优秀.
如图7所示, 是3种模型下任意一个宫颈细胞核分割的结果图放大版, 从左至右分别是FCN、U-Net、改进型U-Net和真实标注, 可以看出, 结果是越来越好的, 除此之外, 还可以从上文所示3种模型分割结果图中看出, 改进型U-Net确实改善了很多过分割和欠分割的情况. 总的来说, 通过对FCN、U-Net和改进型U-Net的结构分析和实验对比, 改进型U-Net模型鲁棒性最好.
5 小结
通过对宫颈细胞核的分割结果分析, 原U-Net网络结构在编码器提取特征网络部分, 运用稠密连接的DenseNet来替换原始U-Net网络中相对简单的编码器部分, 使得改进型的U-Net网络能够更多地提取更为抽象有用的高层语义特征, 并且DenseNet稠密连接的特性使得网络具备融合更多通道信息和全面应用输入图像特征的能力; 在Loss损失函数中加入对细胞核更多的权重, 使得网络更注重学习所需要分割的目标特征, 交并比(DICE)的加入使得网络能把细胞核分割的更好, 边缘细节更加优秀; 改进的池化层也一定程度上缓解了原来池化层丢失信息的问题. 通过理论和实际实验证明, 改进型U-Net对于宫颈细胞核分割的效果相较于FCN和原始U-Net更加优秀和鲁棒. 但也发现改进型U-Net也有其不足之处, 对于现实宫颈细胞样本中存在的团块黏连、密集程度比较高的难分样本, 改进型U-Net分割处理的效果难言优秀. 此外, 宫颈细胞类别多样, 这就需要针对性设计可调型深度学习网络来进行分类和分割, 以提高模型的准确率, 这些是今后继续研究的主要方向.
[1] |
褚梅青. 子宫颈癌筛查与预防的研究进展. 现代临床医学, 2014(4): 243-245. DOI:10.11851/j.issn.1673-1557.2014.04.001 |
[2] |
王爽. 宫颈细胞图像分割与识别算法研究[硕士学位论文]. 泰安: 山东科技大学, 2017.
|
[3] |
戴翠梅. 液基薄层细胞检测对宫颈癌早期筛查的临床意义. 实用医技杂志, 2013, 20(11): 1213-1214. |
[4] |
陈红, 于晓升, 吴成东, 等. 参数化水平集活动轮廓模型的快速图像分割算法. 东北大学学报(自然科学版), 2019, 40(1): 6-10. |
[5] |
王凯明. 基于深度学习的医学图像分割方法研究[硕士学位论文]. 合肥: 中国科学技术大学, 2018.
|
[6] |
Ben-Cohen A, Klang E, Raskin S P, et al. Cross-modality synthesis from CT to PET using FCN and GAN networks for improved automated lesion detection. Engineering Applications of Artificial Intelligence, 2019, 78: 186-194. DOI:10.1016/j.engappai.2018.11.013 |
[7] |
黄奕晖, 冯前进. 基于三维全卷积DenseNet的脑胶质瘤MRI分割. 南方医科大学学报, 2018, 38(6): 661-668. |
[8] |
Huang G, Liu Z, Laurens V, et al. Densely connected convolutional networks. IEEE Computer Society, 2016
|
[9] |
王天兴. 基于GoogLeNet网络结构的改进算法研究[硕士学位论文]. 杭州: 杭州电子科技大学, 2018.
|
[10] |
本刊讯. Facebook发布深度学习框架PyTorch 1.3. 数据分析与知识发现, 2019, 3(10): 65. |
[11] |
王曙. 深度学习算法研究及其在图像分类上的应用[硕士学位论文]. 南京: 南京邮电大学, 2016.
|
[12] |
张乐, 张志梅, 刘堃, 等. 基于全卷积神经网络复杂场景的车辆分割研究. 青岛大学学报(工程技术版), 2019, 34(2): 13-20. |
[13] |
孙世强, 左海维, 赵露婷. 联合特征相似性度量和交并比的检测框优选研究. 电脑知识与技术, 2019, 15(29): 190-193. |