APP下载

应用化肝脏病灶分割的预测方案

2020-10-19裘静韬邹俊忠郭玉成

计算机工程与应用 2020年20期
关键词:像素卷积肝脏

裘静韬,邹俊忠,郭玉成,张 见,王 蓓

1.华东理工大学 信息科学与工程学院,上海 200000

2.清影医疗科技(深圳)有限公司,广东 深圳 518083

1 引言

随着全球人口迅速增长和老龄化,癌症患病率及死亡率正日益突出,中风和冠心病,相对于癌症,在许多国家已经不再是主要死因了。另外,癌症作为早逝原因的地位在很大程度上反映了国家的社会和经济发展水平。肝细胞癌(HCC)是全世界第六大最常见的癌症,也是全世界第三常见的与癌症相关的死亡原因[1],并且在男性中的比例远高于女性,约为两倍,已成为在肺癌之下男性第二大癌症死因。

医学图像中的肝脏病灶分割对于患者病情评估、肝癌诊断、功能评估和治疗决策制定非常重要。由于近年来X 射线管、探测器和重建算法的技术进步,计算机断层扫描(CT)已成为无创性诊断肝脏疾病的重要手段[2]。另一方面,高分辨率CT扫描仪产生的数据量愈来愈多,这使得放射科医生和内科医生的审片工作变得繁琐和耗时。因此,半自动或自动肝分割在临床中具有较高应用价值[3]。

过去一些年已经提出了几种先进的算法以解决病灶分割问题[4],包括阈值处理、主动轮廓模型、图形切割和机器学习。阈值技术将强度值高于阈值的所有像素设置为前景值和所有剩余像素为背景值。例如Moltz等人使用基于阈值的方法与适应肝转移的基于模型的形态学处理相结合,实现肝脏肿瘤的半自动分割[5]。基于区域的方法包括区域增长、区域分裂和合并以及流域转换。区域增长是一种分割图像的简单快速算法,通常涉及选择种子点然后扩展它。更先进的方法,如迭代相对模糊连通性(IRFC),也被用于肝脏病变分割[6]。由于图像的简单性,速度和完全划分,分水岭变换已被认为是一种强大的分割方法。例如Yan等人基于标记控制的分水岭转换,在体积CT图像中准确分割三维肝脏转移[7]。

而另一方面,深度学习已经应用于各种各样的问题,并且已经超越了之前的算法[8],这促使将这种方法应用于CT 中的全自动肝肿瘤分割。使用完全卷积网络(FCN)进行端到端和语义分割中的像素到像素这两种机制超过了之前的最佳结果[9]。这是首次训练FCN 端到端进行像素预测和进行有监督的预训练[10]。此外,基于FCN 的新分割方法被开发用于医学图像分析,具有高度竞争性的结果。Ben-Cohen等人探讨了FCN在CT检查中肝脏分割和肝转移检测的任务[11]。Christ等人提出了一种利用级联完全卷积神经网络(CFCN)和密集三维条件随机场(CRF)自动分割CT腹部图像中的肝脏区域和病变区域的方法[12]。Dou 等人使用3D 深度监督网络(DSN),在学习过程中引入了一种深入的监控机制,使模型具有较快的收敛速度和较强的分辨能力[13]。徐保全等人使用3d分割网络和形态学后处理方法预测肝脏和病灶,病灶预测精度较高[14]。

本文提出了一种端到端的肝脏和病灶分割网络。首先,在U-net 网络模型基础上加入了CondenseNet 的特征复用思想,对每一个卷积层组的输入输出进行Concatenate,极大提升feature map 的利用效率。其次,对损失函数进行了改进,结合交叉熵和Dice系数,同时加入欠分割惩罚因子,提高病灶检出的比例。最后,加入前后处理,优化结果。通过各个对比实验及与高精度复杂算法的对比实验,验证本文方法的有效性和可行性。

2 相关理论

2.1 Unet神经网络

语义分割作为计算机视觉的一部分,是非常具有挑战性的一个问题,早期的语义分割经历了从传统的阈值分割,到机器学习领域的随机森林、SVM 等算法分割,其应用场景一直受到较大局限且分割效果存在精度不高、模型泛化性不好的问题。直到深度学习的崛起,2015 年Long 等人提出了全卷积神经网络——FCN(Fully Convolutional Networks)[15],实现了语义分割网络模型的端到端,之后大部分网络都是基于FCN 进行的改进。

Unet网络[16]是基于FCN网络改编而来,网络由编码器和译码器两部分组成,由于网络很像U 型,所以被称为Unet网络。Unet很巧妙地将低维特征和高维特征结合,非常适合医学图像之类的超大图片,同时网络对输入也没有限制。Unet 的编码器部分采用四次下采样,一共降低了原始图像的16 倍,其译码器部分也相当地进行了四次上采样,将编码器得到的高级语义特征图进行再还原,恢复到图像的原始分辨率。加入的skip connection 使得网络得以融合更多的低级特征,弥补了单纯上采样的不足。同时也使得不同像素级的特征在译码器部分得以融合,最终得到更加精确的分割结果。

医学图像普遍具有高像素、语义相对简单、结构相对固定的特点。由于器官本身结构的固定和其语义的相对简单,同时器官边界存在模糊性、复杂性,更加需要利用好高级和低级特征,这对医学类图像的分割至关重要。另外,医学图像标注的困难性使得影像难以大规模地用于训练,所以在网络不宜过深过大。原始的Unet参数在28×106个左右,具有参数少、效果好、泛化能力强的特点,这也是其能在医学图像领域大规模应用的原因。肝脏存在于人体腹部,环境复杂,周围器官较多,且边界不易区分。这就要求算法在特征提取和利用方面更加高效,本文算法即在Unet模型上进行改进,加入了特征的复用,将不同尺度的特征进行融合,加强了原版模型的特征利用率。

2.2 图像分割算法损失函数

2.2.1 交叉熵

图像分割中最常用的损失函数是逐像素交叉熵(cross entropy)损失。该损失函数分别检查每个像素,将预测图像的每个像素与金标准进行比较。函数表达式如下:

其中,pi表示预测结果中第i个像素的概率,gi表示金标准的第i个像素的真实类别,N表示像素数量,下同。

交叉熵损失函数会单独地对图像的每个像素进行类别预测,然后对所有像素结果求取平均值,即图像中的像素被平等地学习了。但是,医学图像中常出现类别不均衡(class imbalance)的问题,由此导致训练的模型会被像素较多的类主导,对于较小的物体很难学习到其特征,从而降低网络的有效性和泛化性。

2.2.2 Dice系数损失

Dice 系数(Dice coefficient)源于二分类,本质上是衡量两个样本的重叠部分。该指标范围从0到1。其计算公式为:

原始Unet 网络使用1-Dice 系数作为损失函数进行误差反向传播,Dice系数的目标是最大化预测类和真实类之间的重叠部分,虽然Dice系数损失对类不平衡的样本很有效,但是当样本正类别数量过小时,容易导致训练不稳,甚至发散。归其原因在于正像素过小,由于导数分母为平方项,当其过小的时候,损失梯度就会对单个正像素很敏感,其预测对错会导致梯度变化很大[17],造成整体间存在像素对模型影响的不平衡性,使得模型对正类别数量较少的样本过于敏感而破坏整个模型的泛化能力。Dice系数导数如下:

3 本文算法

对于分割病灶的算法,常使用级联CNN 网络进行任务分割。多步处理的好处是分割结果精度较高、效果较为理想,但是相应的占用资源也相对较多,预测时间较为长久,同时级联破坏了卷积神经网络端到端训练的性质。本文以此为出发点,保证精度不损失的前提下,减小资源占用、加快模型的预测速度。算法模型将采用单一网络进行双预测,同时输出肝脏和病灶的预测结果,对于研究过程中出现的问题也进行改进提升,本章将算法整体流程框架进行介绍,包括数据预处理、算法训练、预测结果后处理,整体框架如图1。

3.1 数据预处理

腹部扫描CT的HU值范围可以达到[-2 000,2 000],而实验所需提取的肝脏和病灶HU值范围较为固定,经测试发现,[-200,200]的范围覆盖了肝脏99.53%,病灶99.60%,基本包含了绝大多数肝脏病灶。即阈值以200和-200 为上下限进行归一化处理,除去不相关因素的影响,此处理有利于提高模型的泛化能力。

3.2 本文网络模型

原始Unet 分割网络存在模型精度不够高、特征利用不够充分、无多尺度融合的问题,本文在此基础模型上对Unet 网络进行了改进,加入了DenseNet 里的特征复用思想,实验采用的网络构架如图2,网络分成编码器和译码器两部分,每部分又分成四个卷积层组,每个卷积层由两个卷积层组和PRelu激活函数组成,卷积层组的输入和输出使用concatenate进行特征叠加,然后输入到下采样层或者上采样层。最后通过sigmoid激活层输出。全卷积神经网络中所有的卷积层,都采用3×3的卷积核以及padding=1(在图像边缘填充0)。

考虑到3D腹部扫描CT的肝是一个立体器官,第三维信息存在着相当大的利用价值,本文以5 张相邻CT切片作为模型输入,同时为保持输出的唯一性,以第3张切片的肝脏、病灶作为输出,对比其金标准,传回误差,训练模型。整个3D腹部扫描CT按step=1顺序输入模型,除开始和最后两张无法预测,其他全部可以正常产生结果。这种设计是为了能充分利用CT 第三维信息,产生类似3D网络的效果,同时又不需要太大的显存。

图2 网络模型图

图2展示了本文所用Unet算法网络结构,算法的输入是512×512×5,这样做是为了增加第三维度的信息,使得立体方向的特征得以利用起来,输出正常的一张mask,此mask作为5张中的中间张的分割结果,输入按step=1 扫描病人的整个CT 系列,然后再从中选取中间张有病灶的切割数据加入模型训练,这样能有效减小冗余数据(没有肝脏和病灶的CT 图片),同时保证了肝脏和病灶样本的分布平衡。

3.3 模型损失函数

Dice系数作为损失函数存在下面两个缺点:

(1)Dice 系数对反向传播会造成不利,使得模型训练不够稳定。

(2)Dice 系数对欠分割和过分割没有倾向(两者的损失函数惩罚差距不大),而在医学图像中,recall 通常比较重要,需要加大欠分割惩罚力度。

对于训练不稳定的情况加入了交叉熵损失函数,同时为了尽量避免欠分割,加入以下损失函数:

其中,GT表示金标准(Ground Truth),PRE表示算法预测结果,公式分子部分是指欠分割缺少的部分,整个表示欠分割部分占金标准的百分比。

其中交叉熵和Dice系数的混合损失公式如下:

其中,H和Dice、Dice_in为式(1)、(2)、(4)。对Dice系数进行对数处理,对预测偏差大的样本加大处罚力度。

3.4 数据后处理

模型输出的结果包含了两个——肝脏分割结果、病灶分割结果。观察分割效果发现,肝脏分割容易出现多个不相关的块儿,而病灶分割容易出现仅一两张切片的连通域。本文即针对这两方面进行后处理,将肝脏和病灶冗余、预测错误的部分结果消除掉,优化预测结果。可视化的后处理示意图如图3。

图3 处理前后3D对比图

4 实验结果与分析

本文实验使用TITAN V显卡一张,分割网络在keras开源框架下实现,keras 的版本为2.2.4。算法训练和测试数据集均来源于MICCAI 2017 LiTS Challenge,包含131个对比增强3D腹部扫描,以8∶2的比例随机进行训练、测试。考虑到分割网络较难收敛,本文Unet网络模型使用Adam优化器,增加模型收敛稳定性和收敛速度,同时也能得到优良的分割结果。学习率经过调试设置为1E-5,无衰减,批大小为8,模型运行100轮。

4.1 评价指标

本文的所有评价指标均基于整体三维CT数据的肝脏和病灶进行计算和分析

(1)采用Dice 系数对模型的结果进行评价,Dice 评价系数定义如下:

式中,A表示后处理完之后三维分割结果,B表示与之对应的金标准(Ground Truth),系数越接近1 表示分割结果越好。

(2)采用精准率(P)和召回率(R)对分割结果进行评价,定义如下:

式中,TP表示正确预测的肝脏(病灶)部分,FP表示将背景预测为肝脏(病灶)的部分,FN表示将肝脏预测为背景的部分。

(3)采用 VOE(Volumetric Overlap Error)和 RVD(Relative Volume Difference)分别表示体积重叠的误差率和体积差异率,定义如下:

式中,A、B表示同(1),上述两个指标都是数值越小表示的分割结果越精确。

4.2 本文算法的实验分析

在3.1、3.3 和3.4 节,提出了对模型增加预处理、后处理、损失函数的修改三部分介绍,实验将使用本文算法,分别对上述三部分进行对比实验(损失函数的对比版本使用Dice系数),在肝脏和病灶分割两个结果中比较改进的效果。

实验结果见表1、表2,可以很清晰地看出3.1、3.3和3.4 节三个部分对实验的结果影响,预处理减小了各个样本之间的HU 值范围差异性,统一量纲,有利于模型的收敛性和结果各项指标的提升;模型加入了改进的损失函数后,结果各项指标都提升了,其中召回率有了较大的提升,可以看出加入的第三部分欠分割惩罚因子是有效果的,对肝脏、病灶的分割有益,但是会影响准确率的提升。医学图像的分割问题,召回率重要性要远大于准确率,所以以损失部分准确率来提升召回率是可取的;模型加入的后处理对结果也有挺大帮助,直接预测出来的结果会有零碎的错误预测的mask,这些都降低了结果的指标,通过加入的后处理可以比较快速地剔除部分错误预测,提高结果的各项指标。

表1 肝脏分割结果

表2 病灶分割结果

最终分割结果如图4,用不同颜色的线标出肝脏和病灶的区域。其中红色为金标准,浅蓝色为肝脏预测结果,深蓝色为病灶预测结果。从结果可以看出来分割效果不错,多病灶和单病灶都可以预测出来,同时预测的面积相对金标准都偏大,这也可以说明惩罚因子起到了一定的作用,预测的结果欠分割得以抑制。

4.3 和其他算法的对比

由于数据均为Lits大赛数据集,本文算法也和比赛队伍前三的结果进行了比较,如表3,结果虽然没有达到最好,但是也相差不大。相比于多CNN级联的算法,单个网络确实要稍显逊色。但是单个网络在预测速度、减小占用资源方面有着独特的优势,可以在较少的资源占用的同时取得不错的结果,这对资源匮乏、同时又急缺大量医疗资源的地区是有利的。

表3 与参赛队伍对比结果

5 结束语

算法总体满足设想,包括研究中出现的欠分割问题也在加入相应的损失函数之后得到一定的抑制。而且单一网络在预测大量数据时优势是明显的,平均一个3D腹部扫描CT预测用时在半分钟以内,同时网络总体参数在42.8×106个左右,量级较轻。当然本文算法也存在着一些不足,肝脏和病灶mask公用一个损失函数,导致网络分割重心的偏移,另外网络模型也有待优化,可在模型中加入1×1 卷积层进行参数的缩减。以后的工作中将对网络模型进一步改进,提高结果,同时将此应用在3D 腹部扫描CT 的算法应用在其他医学图像类型和不同人体器官的分割上。

图4 最终分割结果图

猜你喜欢

像素卷积肝脏
七种行为伤肝脏
肝脏里的胆管癌
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
加州鲈肝脏养护
“像素”仙人掌
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
ÉVOLUTIONDIGAE Style de vie tactile