U-Net及其改进算法在医学图像分割中的研究进展
2021-04-09江苏卫生健康职业学院王鸿雁
江苏卫生健康职业学院 武 芳 王鸿雁
医学图像是疾病诊断的重要依据,医学图像分割通常是由医学专家手动完成,耗时长,分割准确程度受主观因素影响较大,非常依赖医生的经验。日益增加的阅片量,迫切需要一种自动分割方法来缓解医生的图像分割压力。
传统的图像分割方法是根据图像灰度值的突变进行图像分割,或根据预定义的规则进行分割,这种分割算法计算速度快,不需要标注数据,对样本数量无要求,是一种非监督分割方法。但是大部分的算法对图像中的噪声比较敏感,如阈值处理和区域生长算法等,比较常用的Otsu方法分割后,较细的分割区域往往不连续,通常还需要配合形态学等方法进行后续处理,但是分割的精度低、鲁棒性差。深度学习中的卷积神经网络(CNN)是一种有监督学习方法,具有比传统方法最高的分割精度,其网络最后一层为全连接层,输出类别概率,该网络层数多,模型复杂,易过拟合,计算量大,占用资源较高,常用于多分类和自然图像语义分割,在医学图像处理中多用于疾病诊断;医学图像的分割是分割目标和背景的二分类问题,全卷积神经网络(FCN)将CNN的最后一层改为反卷积层,输出尺寸输入尺寸相同,是一种端对端(end to end)的网络,由于上采样层的倍率过大,导致部分重要细节信息丢失,同时,该网络忽略了像素之间的联系,不适用于医学图像对细节和位置高精度的要求。与FCN同年面世的U-Net网络,也是一种全卷积神经网络,与FCN具有相同的设计思路,但是有多次上采样,并且在上采样中使用2倍率,可以提取图像的精细特征,结构中创造性的使用了跳连,充分考虑了像素之间的联系,具有较高的分割精度,网络的泛化能力较强。另外,由于较好的分割性能和代码开源的便利,现在的研究者在对医学图像进行分割之前都会先用U-Net试一下效果,然后再进行改进。从面世至今,国内外的引用量近万次,被广泛应用于各部位血管成像、脊柱及四肢关节病变、头颈部、腹盆腔脏器等医学图像分割任务中。本文总结了U-Net结构上的优秀改进,并提出了一些建议,为研究学者更好的改进U-Net并应用于医学图像分割提供参考。
1 U-Net
U-Net主要由三部分组成:编码器(encoder)、解码器(decoder)和跳连(skip connection),形如“U”。其中,编码器为下采样获得图像的深层细节特征,遵循卷积网络的典型结构:由卷积层和最大池化层组成,在特征提取过程中,使用多个卷积核提取不同形态特征,通过池化降维去除冗余信息,减少图像尺寸。U-Net中卷积层使用两个3×3unpadded卷积,每个卷积层后跟一个修正线性单元(ReLU)和一个2×2最大池操作,步长为2,实现图像尺寸的收缩。为了弥补池化损失的特征,在池化后将卷积通道数增加一倍。解码器为上采样获取图像的浅层位置特征,通过2×2反卷积(又称转置卷积)实现尺寸扩展,同时将通道数量减半。每次上采样结果与对应裁剪后的下采样特征映射相堆叠,倍增的通道让网络将上下文信息传播到更高分辨率的层。最后一层为1×1的卷积层,输出一个分割结果。
对于医学图像来说,适当地应用刚性变换和轻微的弹性变形仍然可以产生生物学上合理的图像。对于网络的输入及小样本图像的处理,作者首先对可用的训练图像使用合理的弹性变形来扩充数据,通过重叠平铺策略对图像进行无缝分割,利用镜像输入图像外推缺失的上下文,最后实现输入图像与分割尺寸相同,规避了一些网络输入尺寸固定的缺点。U-Net的体系结构和数据扩充使得学习模型只需要少量的标注样本,就具有很好的泛化性能。
2 改进总结及建议
2.1 网络维度
与2D相比3D网络提取的特征更加丰富,精度更高。临床实践中有大量的三维图像,包括大尺寸的图像和大量的切片,3D网络更适合临床图像的处理,但是3D网络参数多,计算量大,2D与3D相融合的网络更有前景。
对于CT图像分割,由于图像是由一个个切片组成,3D操作可以同时对相邻的三个切片提取特征,分割效果更准确,但是3D中小尺寸目标的分割是扩展网络维度方面需要改进的重点之一,可以从以下几点入手:减少下采样环节,用卷积块替换池化,保留更多小的特征信息;融入多尺度表示结构、深度监督、感知生成对抗网络(GANs)等;多尺寸、多通道输入,通过输入不同尺度的图像信息,增强输入特征。对于3D网络的巨额计算量,减少卷积核的尺寸,可以从一定程度上缓解。
2.2 编码器与解码器的改进
将标准卷积改为空洞率不同的卷积,在不增加参数的前提下,扩大了感受野,更有效地捕获全局上下文;用可形变的卷积核代替固定的卷积核,更适应特征的非线性提取。用自注意力模块代替卷积操作,将卷积特征映射与通过自注意力产生的一组特征映射串联起来,用这种自注意力机制来扩充卷积算子,损失更少的重要信息。残差块可以缓解梯度退化问题。Inception块将多个不同的卷积路径并联起来,其网络基本思想由网络自行确定使用哪个路径。密集连接更适用于多模态特征提取,多个模态之间的密集连接可以更好地模拟不同模态之间的关系,通过在所有层之间使用直接连接来促进信息和梯度在整个网络中的流动。融入注意力机制的SE模块:注意力机制经过注意力门对各通道的权重进行计算。该模型能自动学习形状、大小迥异的目标结构,抑制不相关特征,突出显示对特定任务有用的特征,从而提高预测模型的灵敏度和准确度。
卷积1×1操作可以实现升维和降维,合理的使用可以提高网络的非线性提取能力,增强网络的鲁棒性。空洞卷积可以提高细节提取能力,对于同时使用不同空洞率的卷积级联时,空洞率应该设置为1、2、5等效果更好。对于层数较深的网络,使用残差连接可以缓解梯度消失。Inception适用于多尺寸特征提取,在使用时需要考虑其计算成本,尽量使用小卷积核堆叠代替大卷积核。对于增强特征、抑制背景的任务在编码和解码阶段可以多考虑使用attention、SE及特征金字塔模块。卷积块注意力模型(CBAM)同时考虑通道域和空间域,特征的提取和定位效果都比较好,可以应用于各种小目标提取任务中,如肿瘤、结节等。
2.3 网络性能的提升
在网络中加入批量归一化或实例归一化,有助于提高网络精度,减少网络计算量、提高训练的速度、避免过拟合。激活函数:ReLU用来去除梯度变化的负值,正值部分梯度较大(恒为1),避免梯度消失,减少计算量,收敛速度快,是应用的最多的激活函数。在高维进行ReLU运算,信息的丢失较少,低维使用ReLU运算,容易造成信息的丢失,可以用线性激活函数代替。LeakyReLU使用一个参数控制当梯度为非正时输出非零,或者使用较小的学习率,避免死亡ReLU问题。对于ReLU的梯度爆炸问题,还可以通过改变右侧的取值来抑制。网络中的损失函数主要是交叉熵、Dice、IoU loss和焦点损失函数,交叉熵是图像分割中使用最多的损失函数,在损失函数中,图像像素被平等的学习,所以无法解决医学图像中常出现的类别不均衡问题。基于dice coefficient的损失函数(Dice loss)是一种soft dice loss,将dice coefficient化为可以最小化的损失函数,用1-Dice表示。IoU loss和Dice loss定义相似,一般用于目标检测中,是预测检测框和真实检测框的交并比。焦点损失函数(focal loss),是对交叉熵损失函数的一种改进,对于困难样本的学习更有利,也用于样本不均衡问题。
使用BN可以加快网络收敛速度。SELU是ELU乘大于1的lambda,该函数使样本分布自动归一化到0均值和单位方差,这种自归一化保证训练过程中梯度不会爆炸或消失,运算速度比Batch Normalization+ReLU更快。Dice loss、IoU loss和GDL适合样本极度不均情况,在医学类图像中使用广泛,但是在样本均衡的情况下使用会对反向传播造成不利的影响,不能保证训练稳定性。在医学图像分割中混合损失函数应用的更为广泛,其集各类损失函数优点,以交叉熵为基本函数,配合Dice类的损失函数,通过调整各种函数权重,可以提升不同类型任务的分割性能。
本文总结了近年U-Net网络结构方面的改进,及网络性能方面的提升,对数据增强、提升速度的算法和模型泛化能力方面未涉及。U-Net目前不仅在医学图像分割方面应用广泛,在如道路裂缝检测、食品自动识别、秸秆检测、遥感图像分割、农作物籽粒分割等领域也大受欢迎。未来,更多结合其它领域图像的特点,学习新兴的网络模块思想,对U-Net网络进行合理的改进,让U-Net助人工智能一臂之力!