谢 飞,权媚阳,管子玉,段 群
(1.西北工业大学 计算机学院,陕西 西安 710129;2.西安电子科技大学 前沿交叉研究院,陕西 西安 710126;3.西北大学 信息科学与技术学院,陕西 西安 710127;4.咸阳师范学院 计算机学院,陕西 咸阳 712000)
人的腹部从解剖学上来看指的是胸底横膈膜到骨盆之间的部分,其中包含了人体许多重要器官,如胃、胰腺、脾脏、肾脏、肝脏、胆囊、肠道等。由于近些年环境气候的不断恶化、人们生活方式的转变、食品安全事故频发等原因,导致腹部重要脏器的发病率和患癌率逐年升高[1]。在传统的诊断方式中,医生一般通过问诊、望诊及触诊等方式并结合临床经验进行诊断。当腹部器官疾病发生时,很多患者都只有腹部的轻微疼痛,这样的症状描述导致医生诊断时很难做出精准的判断,难免会出现诊断偏差的情况。随着计算机断层扫描(CT)、核磁共振成像(MRI)等医学影像技术的广泛应用,使得医生可以对人体内部的组织病变结构产生更加直观的观察,从而做出更精确的诊断,因此,CT扫描也成为腹部相关疾病诊断的常规检查方式[2]。在腹部CT图像中,准确地对腹部器官进行分割,有助于器官病灶分割检测算法的研究,可以帮助医生制定更精准的手术方案,也是腹部器官三维重建的重要步骤。然而,由于时间和人力成本过高,进行大规模的临床数据手工分割是不切实际的。基于CT的腹部多器官图像分割算法可以自动从影像中提取器官的重要信息,并且可以批量处理临床数据,大大节省了时间和人工成本,同时能获取精度更高的结果[3]。
随着计算机性能的提高和深度学习领域的快速发展,卷积神经网络(CNN)已广泛应用于医学图像分割和检测,并取得显著成效[4-5]。就图像分割而言, 从FCN[6]、U-Net[7]到Mask R-CNN[8],网络模型性能越来越好。目前深度学习神经网络在医学图像的肿瘤分割、器官检测和分割等方面都得到了广泛应用,并取得了一定的研究成果,但它们针对的是单器官分割问题,基于深度学习的多器官分割方法的研究尚处于起步阶段。Roth等人采用了3D全卷积网络进行多器官图像分割[9];Eli等人提出了一个基于FCN的网络DenseVNet用于腹部多器官图像分割[10],实验结果表明该网络模型比基础网络模型分割准确率高Wang等人提出了一种带有反向连接的器官注意网络(OAN-RC)的新颖框架用于腹部多器官分割[11],实验结果表明该网络框架提供了强大的分割效果并优于基础方法。这些深度学习算法在多器官图像分割任务中都表现出了较好的效果,同时也存在一些共同问题:针对位置相对固定且体积较大的器官有较好的分割效果,比如肝脏、左右肾脏、脾脏器官等;但针对血管、肠道、胰腺等形变较大、体积较小且组织边缘模糊的器官分割效果相对较差。
由于CT成像技术和成像设备本身的限制,以及病人个体差异等原因的影响,导致腹部CT图像往往表现出噪声、不规则等特征。除此之外,腹部CT图像的背景复杂、组织边缘模糊、分割的器官区域形状变化大等表现都为腹部图像多器官分割带来了一定的挑战,如图1所示。
图1 腹部CT横断面图像示意
针对多器官图像分割存在的问题,本文选择两个易分割器官肝脏、胃和两个不易分割器官胰腺、肠道,提出了一种基于改进nnUNet的腹部多器官图像分割方法。实验结果表明,相比传统的腹部多器官分割网络,基于改进nnUNet网络有更好的多器官图像分割能力。
2016年,Ronneberger[7]等人提出了一种基于FCN改进的全卷积图像分割网络U-Net。U-Net网络在被提出后,就大范围地用于医学图像的分割,并展现出了优秀的性能。该网络结构主要分为3部分:下采样、上采样以及跳跃连接。网络的下采样是编码的过程,通过卷积和下采样来降低图像尺寸,并进行特征提取;网络的上采样是解码的过程,把下采样过程中的抽象特征通过反卷积来恢复到原图尺寸, 最终得到分割结果;通过concat的方式完成跳跃连接,实现了特征融合的结构,提高了分割精度。因此,该网络模型非常适用于医学图像分割。
Isensee[12]等人在2018年提出一种鲁棒的基于2D-UNet和3D-UNet的自适应框架nnUNet。作者认为不同的图像分割任务需要不同的深度学习网络结构、数据扩增、超参数、前处理方法、后处理方法的特殊Pipline设置。这些设置常常依赖于人工智能专家的高级知识和经验,并且一个小的超参数设置偏差就可能导致模型的分割性能大大降低。特别是对于三维生物医学影像分割问题,由于不同数据集的模态不同,且分辨率大小存在差异等原因,使得实验者难以设置出一个最佳Pipline进行处理。除此之外,不同硬件的显存也会对参数造成巨大影响,且对算法设计者的相关知识要求较高。因此,nnUNet网络结构基于原始的UNet网络结构做了很小的修改,把重心放在预处理、训练、推理策略、后处理上。在各种任务上拿这个框架和目前的STOA方法进行了比较,且该方法不需要手动调参,最终nnUNet表现了最高的性能。
虽然nnUNet在很多医学影像分割任务上都表现出了优秀的性能,但在多器官图像分割中,还会出现传统网络分割中存在的共同问题,即对形变较大、体积较小且组织边缘模糊的器官分割效果相对较差。本文针对此问题,对nnUNet的网络模型进行了改进,使得网络的分割效果得到提升。
在卷积神经网络中,如果数据量过少将会使网络训练困难,并且易出现过拟合的现象。如果增加数据集的数量,可以提高深度神经网络的泛化性和分割性能[13]。尤其是在医学图像中,由于数据隐私性、标注成本过高等原因,导致可用于训练的标注数据非常少。因此在医学图像的预处理中,对数据进行增强是十分必要的。nnUNet网络在数据扩增中使用了旋转和缩放、高斯加噪、高斯模糊、亮度处理、对比度处理、低像素仿真伽马增强和镜像处理的方式来增加数据量。除此之外,本文增加了平移处理和随机剪切对训练数据进行增强,加大训练数据量。
在医学图像的数据集中, 往往存在不同像素间隔的数据,因此在预处理过程中,需要用到一些插值算法对数据进行重采样,针对CT数据,平面内的插值采用的是三阶样条插值,而平面外的插值用的是最邻近插值。
除此之外,还需要对数据进行归一化处理,由于本文所使用的数据集均为CT数据,CT图的每一层各个像素的灰度值是一个定量并且反映的是该切片上的一些物理属性,因此,通过统计整个数据集中标签像素的CT值范围,裁剪出[0.5,99.5]百分比范围的CT值来对数据进行全局归一化,保证了数据集的标准化。
通常医学图像是一个三维体数据,且切片之间存在连续性。在深度学习的网络结构中,3D网络可以结合图像层间信息,能够保证各层图像之间的变化连通性。在腹部医学影像中,根据多器官图像的分割任务和我们目前采集到的数据集,选用基于3D-UNet的自适应框架nnUNet对模型进行训练。
用于多器官分割的nnUNet网络模型是基于U-Net创建而来,同样包含了一个编码器部分和一个解码器部分,编码器部分是用来分析图像并且进行特征提取与分析,而与之相对应的解码器部分是生成分割好的块状图。nnUNet网络模型对U-Net在网络结构上做了部分修改,除了解码阶段的最底下两层,给解码器的每一层都加了额外的损失,这样使得梯度信息能够更深层地注入网络,同时促进网络中所有层的训练。下采样是一个具有步幅长度的卷积,上采样是一次卷积的转置操作。
针对我们的训练数据,对数据进行预处理,并且nnUNet网络模型根据预处理后的数据和显存大小自动生成模型训练所需要的超参数。其中,patch-size是32×256×224,对应的batch-size是2。基于nnUNet多器官图像分割的网络结构如图2所示。在整个网络结构中,每一个encoder和decoder都由2个Conv Block构成,激活函数为LReLU函数,卷积核大小为3*3*3,通过下采样获得320个高层特征图,再通过对应的上采样恢复尺寸,最后经过softmax获得output segment map。
图2 基于nnUNet多器官图像分割的网络结构图
在机器学习中,损失函数是用来估量模型的预测值f(x)与真实值Y的不一致程度,损失函数越小,代表模型的鲁棒性越好,正是损失函数指导了模型的学习[14]。
原始的nnUNet框架使用的损失函数为Ltotal=Ldice+Lce,即Dice损失函数和交叉熵损失函数之和。针对多器官图像分割中对胰腺等器官分割效果较差的问题,我们分析是由于在数据集中,胰腺器官相对于其他器官标签数量较少,存在样本类别不平衡的问题,因此对损失函数进行了修改,选用自适应权重的损失函数(adapted softmax loss)[15],带权重的损失函数计算公式如下:
(1)
其中:c为神经网络的类别数;wc为权重;yc为实际标签的值;zc为softmax的输入;f(zc)为softmax的输出,表示样本属于第c个类别的概率。计算每个损失在总损失里的占比,根据占比重新为每个任务损失分配权重,各损失乘上新的权重再求和得到重新加权后的总损失。
本文基于Pytorch平台,采用基于多器官图像分割改进的nnUNet,对网络进行结构的搭建并对模型进行训练测试,学习速率为0.01,学习动量为0.99,优化器为SGD,训练1 000个epoch。本文实验环境为:Intel(R)Xeon(R)CPU E5-2650 v4@2.20 GHz,NVIDIA GeForce GTX 1080Ti 11GB,65 GB运行内存和Ubuntu 16.04 LTS操作系统。
为验证本文所提方法能够有效地分割腹部多器官,我们与上海交通大学医学院附属第九人民医院合作,获取了有肠道疾病的患者的腹部CT图像35例和正常患者的腹部CT图像4例。所有数据均由专业影像科医生指导,使用3D Slicer医学图像处理工具对CT图像的肠道、胃、肝脏和胰腺4个器官进行标注,最终,通过专业影像科医生对标注进行检查确认。本文按一定比例随机划分数据,其中27例数据作为训练数据,4例数据作为验证数据,剩余的8例数据作为测试数据。
为了对器官分割的好坏有一个定量的分析,本文采用了常用的图像分割评价指标:Dice系数。Dice系数是一种评估相似度的函数,通常用于计算两个样本的相似度或者重叠度,其计算方法为
(2)
其中:X为标签的真实值;Y为模型的预测值。分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的情况。
本文主要针对腹部多器官图像分割问题,利用改进的nnUNet进行腹部多器官图像分割。将本文方法与DenseVNet、原始nnUNet在分割结果上进行对比,以验证提出方法的有效性和优越性,实验结果如表1所示。可以看出,针对易分割器官肝脏和胃,本文方法和传统的网络模型在准确率上相差不大,这是由于易分割器官语义信息简单,传统的分割网络就能达到很好的分割性能,但针对不易分割器官肠道和胰腺,本文方法相比传统的多器官分割网络,在nnUNet网络的基础上性能有所提升,在DenseVNet网络上展现了更优秀的性能,从而证明本文改进算法的有效性。
表1 分割结果对比
图3为DenseVNet与本文提出的方法在腹部CT图像测试集上的分割结果可视化对比图。图3A中的彩色区域为医生确认的器官部位,其中红色表示肝脏区域,黄色表示胃部区域,绿色表示肠道区域,蓝色表示胰腺区域,图3B为测试数据在DenseVNet上测试的结果,图3C为测试数据在改进nnUNet上测试的结果。由图3可见,图3B的前一例图像在DenseVNet上分割出来的胰腺器官区域小于真实器官区域,图3B的后一例图像在DenseVNet上分割出的肠道区域有漏分割的现象,而这两个测试图像在改进的网络上都有较好的表现,展示了本文提出方法的有效性和优越性。
图3 多器官图像分割结果正样例
图4为测试数据集在本文提出的网络模型上分割结果表现相对不好的测试用例,可以看出,在改进的网络模型中分割出的胰腺区域仍有漏分割的现象。其原因可能是对于胰腺器官在腹部CT上表现出边界不清楚的特点,为图像分割任务带来了极大困难,也为后续研究带来了思考。
A 标注的腹部CT图像 B 在改进nnNet上的分割效果
针对腹部多器官图像分割任务,本文提出利用自适应权重的损失函数(adapted softmax loss)对nnUNet网络进行改进,使得网络在分割过程中更加关注体积较小且样本数量相对较少的器官特征。对于腹部多器官图像复杂性,解决了多器官分割算法针对某些体积较小的器官分割效果相对较差的问题。实验表明,本文改进的网络相对于现有传统的分割方法具有更高的准确性和敏感性。但是,本文现有的研究依然有未完善之处,后续的探索可以就图像分割中难以分割出边界不清楚的图像的原因进行深入研究。