基于改进U-Net网络的新冠病毒CT图像分割
2023-09-04陈成,张正,肖迪
陈 成,张 正,肖 迪
(南京工业大学电气工程与控制科学学院,江苏 南京211816)
1 引言
自2019年12月以来,一种新型冠状病毒在世界范围内广泛传播。2020年1月12日,世界卫生组织(WHO)正式将其命名为2019-nCoV。这种新病毒可以引起咳嗽、发烧、肌痛和呼吸困难[1],严重时甚至危及生命。尽管世界各国积极治疗患者,严格限制人员流动,以减缓病毒传播,但许多国家的新感染人数仍呈指数级增长。截至2021年6月22日,世界卫生组织的情况报告显示,全球患总病例数超过1.77亿,每周新增病例超过 250 万,死亡人数超过 64 000[2]。
目前,基于逆转录聚合酶链反应(RT-PCR)的检测方法是检测COVID-19最常用的方法,但由于RT-PCR的灵敏度可能不够高[3,4],因此,由专业技术人员从患者身上获取的计算机断层扫描(CT)图像的诊断是COVID-19检测的重要辅助和补充方法之一。与RT-PCR相比,基于CT诊断的方法具有更高的检测准确率[3]。一般情况下,对于不能通过RT-PCR检测确诊的病例,医生会通过CT获取患者的肺部影像集,然后根据他们的临床经验确认患者是否确诊。
由于病例过多,且手工绘制肺部病变轮廓是一项繁琐而累人的任务,为了加快诊断速度,学者们提出了一些基于深度学习的COVID-19检测方法[5-7]。例如,Wang等人[8]利用全连接网络分类模型训练和多分类器预测,训练CNN模型从随机输入的3D CT切片中提取特征。为了从胸部x光图像中检测COVID-19病例,wang等人[9]设计了一种定制的深度卷积神经网络COVID-Net;基于V-net模型,Shan等人[10]提出了一种改进的网络VB-net来分割感染区域。由于COVID-19图像数量有限,以上方法的普适性得不到充分验证。随着更多数据集的公开,学者们仍在尝试在不同数据集上应用新的网络来提升分割效果。
2 基本模型
2.1 U-net网络结构
到目前为止,全卷积网络已经证明它优于其它广泛应用的基于配准的分割方法,特别是U-net[11]模型在医学图像分割领域得到了广泛的应用[12-14]。
U-net是基于FCN的语义分割网络,分为上、下采样两部分,网络中只含有卷积层和池化层,全连接层用1*1卷积核代替。其中浅层网络提取低级特征来实现像素定位,深层网络提取抽象特征用于像素分类。相比FCN上采样会导致像素定位模糊,U-net使用了跳跃连接操作将上采样层与同分辨率下采样层特征融合,提高了像素定位的精确性。此外较为精确的FCN-8s网络需要训练三次,U-net网络只需训练一次,训练效率更高。其具体网络结构如图1所示。
图1 U-net网络结构[11]
从图中看到U-net可分为上下采样两个部分,其中下采样部分经过4个池化层,连原图共有5个尺度。上采样部分通过反卷积操作将特征图尺度还原,且每上采样一次后都通过跳跃连接将对应的特征图剪裁至同一尺度融合,使纹理信息在高分辨率层中传播。这种路径结合的操作使得图像可以在一次前向传播完成分割。
U-net的大网络架构使得它能够通过少量样本得到相对精确的结果。U-net在医学图像处理中也表现良好,医学图像通常需先对大分辨率原图进行切割,产生的切图会有重叠,刚好适应U-net对边缘信息的需求。但与此同时,U-net难以兼顾感受野大小与边界分割精度,且仅能在单一尺度上操作,仍有很大的改进空间。
2.2 残差结构
残差学习模块是在ResNet[12]中提出的,其结构如图2所示。它使用恒等映射将前层输出直接传递到后层,且能使梯度直接向前传递,解决了梯度消失和梯度爆炸问题。
图2 ResNet的残差学习模块[12]
残差网络使用许多了旁路shortcut,具体结构如图3所示。这些shortcut使网络只需要学习输入与输出的残差F(x)=H(x)-x,当F(x)=0,就是恒等映射,此时残差块不会增加参数量和计算复杂度。为了加深网络,提高模型分割性能,可以在U-net网络中在任意位置添加残差块,都不会影响网络的学习效率。
图3 ResNet的shortcut注:(a)不包含shortcut的模块;(b)包含shortcut的模块
3 网络结构改进
3.1 多尺度特征
Inception模块[13]对传统卷积神经网络的下采样过程进行了多尺度优化,具体方法是,分别使用四个不同大小的卷积核,将原图的单分支卷积池化操作分成4个分支,再聚合在一起,这样可以增加卷积层的宽度,提高网络对尺度的适应性,提高网络的计算效率。
参考inception模块,本文改进了特征提取子网络,使用不同大小的池化核得到多尺度特征。其具体结构如图4所示。其中一条路线使用4×4的池化核对输入图像进行最大池化,将其尺寸降至原始分辨率的1/4,另两条支路分别先后使用2×2的最大池化核和3×3的卷积核,将图像尺寸降至原始尺寸的1/2。由此得到并行且不同级别的尺度特征,然后将这些不同尺度的特征融合作为后续的输入。
图4 多尺度特征提取模块
3.2 位置信息
在分割任务中需要结合图像的全局信息和局部信息,来实现病灶的准确定位,因此可以通过多分辨率层组合来改进结构。由于U-net网络经过多次卷积后得到的特征图较为抽象,恢复尺寸的过程也会导致像素定位不精准,因此上采样后的特征会比较模糊,尤其不能很好地提取肿瘤的边缘特征。
为了更好的识别肿瘤区域,提高其边界分割精度,本文在多尺度特征的基础上进一步做出改进,在上采样过程中加入了原始图像的位置信息。具体操作方式为将输入图像放缩至原始分辨率的一定比例,并将其作为一个特征图与网络得到的特征图融合,输入网络。详见3.3节中实际网络结构。
3.3 改进模型
改进后的网络在U-net的基础上结合了多尺度特征提取步骤,并在反卷积过程中加入了位置信息,其整体结构如图5所示。其中Simple block和残差块(Residual block)的结构分别如图6和图7所示。
图5 改进的网络结构
图6 Simple block结构
图7 Residual block结构
Simple block中有两次卷积操作(3×3卷积核,步长1,填充1),每次卷积后计算BN,再经过Relu非线性激活函数。残差块(Residual block)中有三个残差单元,每个残差单元就如2.2节中残差学习模块所示,有两条支路:两次卷积加BN、中间经过Relu激活函数的支路和直接输出支路。
在下采样过程中,两条Simple block支路聚合后经过一个残差块与一个2×2最大池化层,将图像尺寸降至1/4,再与单次4×4池化的支路聚合。通过使用残差块代替U-net中的普通卷积,可以在不增加网络计算复杂度的同时加深网络,提高网络的特征提取能力。下采样子网络经过4次卷积和池化的交替操作,能很好地捕捉到输入图像的全局信息。
在上采样子网络中,采用与池化对应的反卷积操作来提高特征图分辨率。总共需要经过4次反卷积操作将特征图尺寸恢复至与输入图像一致。其中在倒数第二个反卷积操作后,将原始图像尺寸缩小一半作为一个新特征图与网络的特征图融合。本文通过剪裁与跳跃连接操作,将上下采样过程的同分辨率特征图融合,结合了全局和局部信息,提高了检测、定位和分割的精度。
3.4 其它改进
1)正则化:为了防止模型过拟合,引入正则化来降低模型的复杂度,提高模型的泛化能力。不同的Ω函数对权重ω的最优解有不同的偏好, 因此它们会产生不同的正则化效果。最常用的有两种Ω函数,即l1范数和l2范数,分别称为l1正则化和l2正则化。
(1)
(2)
其中ω是权重系数向量,λ1=λ2=10-5.
2)激活函数:在U-Net中,除最后一层外,所有卷积层都使用ReLU激活函数[14];最后的卷积层使用Sigmoid激活函数。由于需要解决左右肺、病灶和背景分割的多分类问题,在输出层用Softmax激活函数代替原模型中的Sigmoid,解决了U-Net只能解决两分类问题的局限性。
3)损失函数:大多数医学图像分割任务实际上是两个分类问题,即判断每个像素是否属于某一类。然而,本文的研究本质上是一个多分类问题,换句话说,需要完成一个多类的像素级分类。因此,不能用单一的损失函数来评价模型的训练进度。所以组合了二元交叉熵损失Lb,灶性损失Lf和Tversky损失Lt,作为损失函数,最终的损失函数是
L=0.4×Lb+0.2×Lf+0.4×Lt
(3)
4 实验与数据
4.1 数据集
该数据集包含20个标记的COVID-19 CT扫描,共3520个切片。左肺、右肺和感染由两名放射科医生标记,并由经验丰富的放射科医生验证。本文使用其中70%(14例)作为训练集,15%(3例)作为验证集,15%(3例)测试集。
由于数据集中病例数量有限,本文在训练前进行了数据扩充。本文随机选取一些切片进行90度、180度和270度旋转,生成360张图片;随机选取一些图片进行0.5倍和1.5倍的缩放,得到200张图片;此外,由于数据集中的原始图片大小是512×512和630×630,本文使用opencv25将图片大小转换为416×416并对其进行灰度化,得到了额外的500张图片。上述一系列操作大大增加了数据集中的图像数量。
4.2 结果与分析
本文将两张随机的CT切片图像输入到训练的模型中,训练集和验证集的Dice相似系数和组合损失拟合曲线分别如图8和图9所示。输出可视化的分割结果(左、右肺、病灶和背景),如图10所示。
图8 Dice系数
图9 组合损失
图10 分割结果的可视化
图10中,图像(a)和(f)是两次扫描的预处理胸部CT图像。图像(b)和(g)是右肺区域的检测结果。为了使结果更易识别,红色用于表示ROI,黑色用于表示区域的其余部分。图像(c)和(h)是左肺区域的检测结果。图像(d)和(i)是covd-19病变区域的检测结果,图像(e)和(j)分割整个背景区域。
表1给出了网络对于测试集的性能指标。其中Dice相似系数(DSC)表示地面真值分割图和预测分割之间的相似度量[15]。其中A是被分割的感染区域,B表示相应的参考区域,|A∩B|表示两个图像共有的像素数。如式(4)所示,DSC是A和B的Dice相似系数。
表1 测试集的性能指标
(4)
精度是指模型确定为阳性的所有样本中有多少是真阳性样本。如果TP为真阳性,FP为假阳性,则精度P可表示
(5)
Hausdorff距离是两组点集之间相似性的度量。它是两组点之间距离的定义。当它用于评估图像分割时,如果X是被分割出的感染区域像素集,Y是对应的参考区域像素集,那么X和Y之间的hausdorff距离dH
可以表示为
(6)
可以看出面积越大,分割效果越好,但像素点比例最大的区域是背景,像素点比例最小的区域是病灶。然而,在covid-19 CT图像感染区的自动分割中,良好的背景分割没有太大意义。因此降低了背景分割评价系数的权重。最后,总体Dice相似系数为0.851。
为了验证多尺度特征和加入位置信息对于病灶分割的有效提升,在相同实验设置下,分别消去以上改进,与基础U-Net网络的分割结果进行对比。此处只比较病灶的分割结果,在表2和表3中显示。其中VOE系数与DICE相似,用来表示错误率,如式(7)所示,其中A和B表示集合中元素的数量:
表2 单尺度特征与多尺度特征模型的病灶分割性能对比
表3 未加入位置信息与加入位置信息的病灶分割性能对比
(7)
RVD表示两者体积的差异,其数学表达式为:
(8)
定义Rseg为预测结果A的边界像素,Rgt为真值标签的边界像素,Sseg的定义如式(9)所示,Sgt同理,由此得出ASD的定义式(10):
(9)
ASD=mean({Ssg,Sgl})
(10)
可以看到多尺度特征将DICE系数提升至0.665,加入位置信息则将DICE提升至0.661,两者同时作用,DICE由0.650提升至0.678了,验证了两种改进均可以有效提高网络对病灶的分割性能。
为了进一步验证本文改进U-Net模型的可推广性,找到公开数据集COVID-CT-Dataset[16]和JSRT Dataset[17],对其使用本文模型进行分割测试,得到性能指标如表4所示。
表4 改进U-Net在不同公开数据集的病灶分割结果性能对比
可以看到在COVID-CT-Dataset上的病灶分割DICE系数达到了0.691;在JSRT Dataset上的DICE系数为0.656。对比结果验证了本文的改进U-Net模型在不同公开数据集中仍有较好的适用性。
5 总结
本文在U-net模型的基础上改进了网络,通过在下采样过程中多尺度提取特征,在上采样过程中加入位置信息,使网络对二维肺切片的左右肺、病灶和背景四个区域的分割有较好的效果;并对分割结果进行了对比与分析,验证了模型对于covid-19数据集分割的有效性。这是一个很好的基于深度学习的计算机辅助自动分割covid-19感染区的实现。