时间:2024-08-31
孙明建 徐 军* 马 伟 张玉东
1(南京信息工程大学江苏省大数据分析技术重点实验室,南京 210044) 2(江苏省人民医院放射科, 南京 210029)
肝脏分割对于肝肿瘤肝段切除及肝移植体积测量具有重要的临床价值。因此,为了辅助医生对肝脏疾病进行诊断和治疗,需要对肝脏区域进行精准的分割。但肝脏的手动三维分割非常耗时,而且工作量大,因此亟需一种自动分割肝脏的方法。然而,肝脏分割面临着很多挑战:一是在CT(computed tomography)图像中,肝脏的灰度值与周围脏器的灰度值非常相近(如胃、胰腺、肾脏和肌肉);二是病人的个体差异,导致肝脏大小和形状都不同;三是扫描仪器的参数设置不同,导致CT图像之间的灰度值有所差别,肝脏的位置也有所不同。
研究人员为了解决这个问题,提出了很多肝脏分割的方法,大致分为传统的分割方法和基于深度学习的分割方法。传统方法包括利用形状先验、灰度分布以及边界和区域信息来描述肝脏特征并划定其边界的统计变形模型[1-4],基于形状约束的可变形图割方法和水平集方法[5-7],基于灰度等级和纹理的方法[8];深度学习的方法主要包括利用级联的Unet结构分割肝脏以及肝脏结节的方法[9],使用三维深度监督网络分割肝脏的方法[10]。传统方法主要使用手工提取的特征,这种提取方式获得的特征数量较少,容易将相似于肝脏灰度值的脏器错认为是肝脏;而深度学习方法能充分运用大量的训练样本,使肝脏的分割结果优于传统方法的分割结果。此外,很多深度学习方法使用二维卷积网络,无法充分利用CT影像的三维空间信息[18];还有部分深度学习方法使用三维卷积,但没有高效地结合CT影像的浅层和深层特征[19-20]。
本研究提出了一种全新的网络结构3DUnet-C2,该网络对文献[16]中提出的3DUnet进行了改进。原始的3DUnet主要分为特征图提取和特征图重构这两个过程。在特征图提取过程中,使用卷积层进行特征提取,使用最大池化层进行特征维度降低,通过不断加深网络层数,从而能提取更深层的特征。在特征图重构过程中,通过反卷积层来放大特征图,将该特征图与前层等大小的特征图通过级联层进行结合,接着再使用卷积层从中提取更有效的特征,最后使用softmax分类器输出,从而实现了对肝脏的分割。本研究提出的3DUnet-C2网络对3DUnet网络进行了修改,主要的改进包括:网络层数更深,能提取更多更深层的特征;对将要级联的特征图分别进行卷积操作,使特征图能够更加高效地进行组合;网络结构中没有使用batch normalization[17]。该结构充分利用了三维空间信息,并有效结合了CT图像的浅层和深层特征,从而提升了分割效果。在3DUnet-C2分割结果的基础上,运用三维条件随机场[11]优化肝脏的轮廓,使肝脏分割结果得到进一步提升。
本研究的内容安排如下:第1部分介绍深度全卷积网络模型对肝脏的分割,第2部分介绍实验设计以及实验结果,第3、4部分是对研究工作的讨论和总结。
本研究提出一个全新的肝脏分割模型,整个流程如图1所示。主要的设计思路是对图像进行预处理,去除一些无用信息,提升肝脏区域的对比度,然后将图像裁剪放缩成128×128×128的尺寸,之后再输入到深度全卷积网络进行训练,从而得到肝脏的分割模型。将每个图像送入已经训练好的深度全卷积网络中以获取各自的概率图,再将概率图送入三维条件随机场中来学习三维条件随机场所需要的参数。在测试阶段,对一张肝脏CT图像首先进行预处理,将图像放缩成128×128×128的尺寸,之后利用训练好的深度全卷积网络分割肝脏,从而得到对应的概率图谱,接着再将概率图谱送入到三维条件随机场中得到肝脏的分割结果,最后将分割结果恢复到原始图像的尺寸。
1.1.1预处理
本研究使用数据的图像尺寸满足形式(512,512,w),w在74~986之间,数据的体素间距满足形式(a,b,c),a与b取值相同,都在0.556 6~1之间,c在0.699 9~5之间。
图1 基于3DUnet-C2-CRF模型的肝脏分割模型的流程Fig.1 A flow chart of a liver segmentation model based on the 3DUnet-C2-CRF model
图2 3DUnet-C2网络结构Fig.2 The structure of proposed 3DUnet-C2
由于体素间距不是固定的,所以需要将体素间的距离统一处理成(1×1×1)mm的大小。CT图像各个器官的CT值都有一个固定的范围,肝脏的CT值一般处在60~70 hu之间,而本研究使用数据的肝脏CT值一般在0~170 hu之间,所以采用的窗宽值为400 hu,窗位值为100 hu;然后将图像尺寸大于400的进行剪裁,小于400的在图像周围填充图像中的最小值,将图像尺寸变化到400×400×400;再对图像进行缩小,使得图像的尺寸变为128×128×128;最后再对图像进行归一化处理,以加速深度全卷积网络的收敛。
1.1.2新模型
本研究提出的全新的深度全卷积网络(FCN)3DUnet-C2-CRF包括两个部分,即3DUnet-C2网络结构和CRF。3DUnet-C2网络结构如图2所示。级联层为图2中灰色和白色方块叠放一起的层,白色小块是由浅层特征通过1次卷积得到,灰色小块是由深层特征通过1次卷积得到,这2个卷积操作就是3DUnet-C2中的C2。
3DUnet-C2网络结构主要包括卷积层、池化层、线性纠正函数的激活函数[12]、反卷积层、级联层。整个网络结构的输入是一个单通道的三维图像,通过不断提取特征对每个体素进行分类,从而得到最终的分割结果。
基于局部感受野的概念,卷积层利用每个卷积核提取输入特征图上所有位置的特定特征,实现同一个输入特征图上的权值共享。为了提取不同的特征,就使用不同的卷积核进行卷积操作。为使特征更加有效,在卷积层后引入非线性映射。非线性映射包括sigmoid、tanh、softsign和ReLU,本研究选用ReLU作为激活函数。因为在网络反向传播时,ReLU能加速网络的收敛,减少网络训练时间。
池化层是对每个特征图进行下采样操作。本研究使用的是最大池化方法,该方法能在保留主要特征的同时,减少参数和计算量,提高模型的泛化能力。
反卷积层是对特征图填补后做卷积操作。反卷积除了进行特征的提取外,还能放大特征图的尺寸。
级联层是将两个特征图进行组合的操作。本研究对将要级联的两个特征图分别进行卷积操作,这就相当于给两个特征图加了不同的权重,然后将卷积过后的特征图进行级联。
最后的输出层使用的激活函数为sigmoid,使用该函数会输出单通道的概率图谱。由于损失函数使用了dice-coef-loss,所以在将概率图谱与医生标记进行比较时,标签值为0的背景将不会被计算到损失中,这也避免了类别不均衡的情况。与此同时,也能加快网络的收敛。
本研究使用的损失函数是dice-coef-loss,具体如下:
(1)
式中,I、J、K分别代表长宽高,T代表人工标记,P代表预测结果,i、j、k是图像上对应位置的坐标点,S表示平滑系数(这里S=1)。
dice-coef-loss作为损失函数,能够加速网络收敛,提升分割结果。
本研究使用了Adadelta[13]作为优化函数,它能够对学习率进行自适应约束,还能加速网络的收敛。
1.1.3后处理
尽管3DUnet-C2能够生成一个高质量的概率图谱,但是如果仅仅使用阈值来得到最终的分割结果,往往肝脏的边界分割是不精确的。考虑到3DUnet-C2已经包含了空间信息在其中,所以本研究采用了三维条件随机场3DCRF的方法来优化分割结果。
CRF模型的能量损失函数为
(2)
式中:一元势函数fi(xi)=-lnP(xi|I),P(xi|I)是全卷积网络输出的概率图谱;fij(xi,xj)为二元势函数,具体公式如下:
(3)
当xi≠xj时,μ(xi,xj)=1,否则μ(xi,xj)=0;|pi-pj|表示体素间的距离,|Ii-Ij|表示原图强度值的差异。使用随机搜索算法来优化w1、w2、θα、θβ和θγ这些参数。
1.2.1实验数据
本研究使用的数据在ISBI2017 Liver Tumor Segmentation Challenge上获得,具体是由IBBM(Image-based Biomedical Modeling Group)和慕尼黑工业大学研究所放射科等组织所提供(https://competitions.codalab.org/competitions/15595)。在原始的数据集中,剔除了25张标记不精确的CT图像,最后选取100张包含医生标记的CT图像。该数据格式均为NIfTI格式,从中随机选取了70个病例作为训练集,10个病例作为验证集,20个病例作为测试集。由于训练集样本数量较少,本研究使用了旋转和镜像等方法对70张整幅三维CT图像数据集进行了有效的扩充,最终将训练集扩充到399张CT图像。为了使数据在当前的设备环境之下有效,对所有肝脏CT图像进行了预处理。
1.2.2实验环境
实验使用的硬件设备如下:处理器,Intel(R) Core(TM) i7-6 700 K CPU @ 4 GHz;内存(RAM),32.0 GB;独立显卡,GeForce GTX Titan X;系统类型,Ubuntu 14.04;开发工具,Python和Keras框架;读图软件,Slicer3D[17]。
1.2.3实验设置
3DUnet-C2结构中使用的卷积核大小都为3×3×3,卷积的步长为1×1×1,每个卷积层所使用的卷积核数量如图2所示。紧跟在卷积层后的激活函数选用的是非饱和非线性函数ReLU,因为ReLU收敛速度更快,且不容易发生梯度消失的情况。最大池化层的大小为2×2×2,步长为2×2×2。最后的输出层使用的卷积核大小为1×1×1,激活函数为sigmoid。该网络结构是一个端到端的网络结构,输入和输出大小相同,都为128×128×128。
本研究共进行了2组实验,一组使用70个样本训练,另一组使用扩充后的399个样本训练。在两组实验中,都使用3DUnet Vent和3DUnet-C2网络进行训练,从而得到相应的分割模型。在训练过程中,为了使网络能够收敛,采用了一种新的初始化参数方法。首先选取一部分结构简单、成像质量较好的数据,然后通过预处理,选取图像中的肝脏区域,并将其裁剪放缩至128×128×128,再分别送入3DUnet Vent和3DUnet-C2结构中训练迭代30次,得到对应的模型权重。使用对应的模型权重来初始化3DUnet Vent和3DUnet-C2网络。所有的数据都是随机选取然后送入深度全卷积网络中,但是由于深度全卷积网络的层数比较深、参数非常多,所以训练时每次只送入一个样本到深度全卷积网络中。
在实验测试阶段,使用20个测试病例对模型进行评估。具体使用了如下5个评价指标:体积重叠误差(volume overlap error,VOE)、相对体积差异(relative volume difference,RVD)、平均对称面距离(average symmetric surface distance,ASSD)、最大对称表面的距离(maximum symmetric surface distance,MSSD)、Dice系数,这些都是常用的肝脏分割的评估指标[14]。
使用本研究提出的3DUnet-C2网络、文献[15]中的3DUnet网络和文献[21]中提出的Vnet网络,分别在70个样本和399个样本上进行训练,得到的分割模型在10个验证样本(包括病例:108,110,112,113,114,116,118,119,121,124)上的Dice得分,如表1所示。可以看出,不管是使用70个样本训练,还是使用399个样本训练,3DUnet-C2模型的Dice得分总是比3DUnet模型和Vnet模型的得分高,表明3DUnet-C2的分割效果更好,鲁棒性更强。该结果表明,本方法对肝脏分割有效。从表1中的结果可以看出,扩充数据集能提升模型的分割效果,这也进一步证实了深度卷积网络是以数据驱动为基础的方法,数据集的大小能直接影响模型的能力。
表1 在验证集上Dice得分的平均值和标准差Tab.1 The mean and standard deviation of the Dice score on the validation set
使用3DUnet-C2网络、3DUnet网络和Vnet网络在399个样本上训练得到的模型,对20个测试样本(包括病例:2,11,18,19,26,27,49,53,59,64,66,70,73,75,94,97,100,105,109,111)进行肝脏分割,具体评估指标如表2所示。从表2的各项指标中可以看出,本研究提出的方法优于3DUnet和Vnet方法。比较3DUnet-C2与3DUnet-C2-CRF发现,在加入三维条件随机场后,肝脏分割的大多数指标都有所提升,这也证实了三维条件随机场能优化肝脏分割边界。
图3比较了医生标记与3DUnet、Vnet、3DUnet-C2的三维分割结果之间的异同。发现3DUnet-C2和Vnet都比3DUnet的结果好,而3DUnet-C2与Vnet结果效果相近。
表2 在测试集上的各项指标的平均值和标准差Tab.2 The mean and standard deviation of the indexes on the test set
图3 三维肝脏分割结果(每行从左至右分别是病例18,27,59,97,111)。(a)病例标记;(b)3DUnet的分割结果;(c)Vnet的分割结果;(d)3DUnet-C2的分割结果Fig.3 3D liver segmentation results(from left to right, each row is case 18, 27, 59, 97, 111). (a) is the case marker; (b) is the 3DUnet segmentation result; (c) is the segmentation result of Vnet; (d) is the segmentation result of 3DUnet-C2
3DUnet、3DUnet-C2和3DUnet-C2-CRF的分割结果如图4所示,(a)和(d)是3DUnet方法得到的肝脏分割结果,(b)和(e)是3DUnet-C2方法得到的肝脏分割结果,(c)和(f)是3DUnet-C2-CRF方法得到的肝脏分割结果。其中,(a)~(c)是病例111的肝脏分割结果,(d)~(f)是病例94的肝脏分割结果。比较图4中的(a)~(c)可以看出,对于简单样本,所有深度全卷积网络都能很好分割出肝脏。而比较(d)~(f)可以看出,对于难样本,不同网络的分割能力展现出了差异。对比图4中(d)的蓝色实线区域和(e)同位置的分割结果,发现3DUnet-C2的分割效果明显优于3DUnet的肝脏分割结果。与此同时,观察(e)黄色虚线区域的肝脏分割结果,了解到3DUnet-C2还是会将非肝脏区域认定为肝脏区域,表明本方法的分割能力还有进一步优化的空间。(e)黄色虚线区域在使用三维条件随机场优化后,得到了3DUnet-C2-CRF的肝脏分割结果(f),这表明三维条件随机场具有优化肝脏分割边界的能力。
图4 不同模型的分割结果(每行从左到右分别是CT影像的矢状面,冠状面,横向面;绿线表示医生的手动标记,红线表示运用不同自动分割模型得到的结果)。(a)~(c) 病例1用3DUnet、3DUnet-C2、3DUnet-C2-CRF模型;(d)~(f) 病例2用3DUnet、3DUnet-C2、3DUnet-C2-CRF模型((d)中蓝色实线区域为3DUnet错分割区域,(e)中黄色虚线区域为非肝脏区域经过CRF优化后得到更好的分割结果)Fig.4 Segmentation results of different models(In each row the pictures from left to right are the sagittal, coronal, and transverse planes of the CT image. The green line shows the doctor’s manual markings, and the red line shows the results obtained using different automatic segmentation models). (a)~(c) Case 1 with 3DUnet, 3DUnet-C2, 3DUnet-C2-CRF models; (d)~(f) Case 2 with 3DUnet, 3DUnet-C2, 3DUnet-C2-CRF models (Blue solid coil out area in (d) is 3DUnet wrong segmentation area. The non-liver area in the yellow circle in (e) is optimized by CRF for better segmentation results)
以下对实验结果进行讨论。在3DUnet-C2训练过程中,首先使用70个样本训练得到网络模型,然后用该模型初始化网络,之后使用该网络训练399个样本,得到最终的模型,发现该模型的分割结果优于使用简单模型初始化训练得到的模型。这也表明了使用较好的网络模型参数进行初始化,能够提升网络的分割效果。
在最初设计的网络结构中使用了batch normalization层,网络收敛很快,但是分割结果并不好。因此尝试舍弃掉batch normalization层,发现分割结果得到了明显提升。从实验结果可以推断,batch normalization将求解空间进行了压缩,使得收敛速度变快,但是损失了分割精度。
从表2中列出的4个评价指标性能可以看出,本研究的方法在肝脏三维区域分割的性能要比3DUnet好很多,稍优于Vnet的性能。3DUnet方法主要分为特征图提取和特征图重构这2个过程。在特征图提取过程中,使用卷积层进行特征提取,使用最大池化层进行特征维度降低,通过不断加深网络层数,从而提取更深层的特征。在特征图重构过程中,通过反卷积层来放大特征图,将该特征图与前层等大小的特征图通过级联层进行结合,接着再使用卷积层从中提取更有效的特征,最后使用softmax分类器输出,从而实现对肝脏的分割。本研究提出的3DUnet-C2方法对3DUnet网络进行了修改,主要包括:使网络层数更深,能提取更多更深层的特征;对将要级联的特征图分别进行了卷积操作,使特征图能够更加高效地进行组合;网络结构中没有使用batch normalization[16]。这些结构的改变带来了分割准确性的大幅度提升,也进一步验证了本方法对肝脏区域三维分割的有效性。
除此之外,在肝脏分割的问题中,本研究还使用了三维条件随机场来优化肝脏分割结果。从图4中可以看出,三维条件随机场可以有效降低假阳性率,剔除部分非肝脏区域,还可以优化肝脏分割的边界轮廓。但三维条件随机场并不能一直提升肝脏分割效果,这表明三维条件随机场对肝脏分割结果的优化能力有限。
本研究提出了一种基于深度全卷积网络的肝脏分割方法。该方法首先对图像进行预处理,剔除一些无用信息;再将预处理后的图像送入深度全卷积网络中,得到肝脏分割的概率图;最后将概率图输入三维条件随机场中,从而得到最终的肝脏分割结果。通过实验数据的测试,所提出的3DUnet-C2-CRF模型与原始的3DUnet模型相比4个评价指标均占优,与Vnet相比主要指标均占优。这表明,本研究提出的模型能够更加准确地分割肝脏区域。为进一步提升肝脏分割的准确率,后面还有很多工作需要做,比如:在数据上,增加训练的样本数,对数据进行进一步的扩充;在算法上,修改网络结构,使深度网络能充分利用CT影像的三维空间信息。未来,在肝脏分割的基础上,将尝试对肝脏结节的分割。
(致谢:非常感谢周超、郎彬师兄对本人实验代码上的指导)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!