基于深度学习的弱监督肝脏分割算法

2023-01-31 08:55王泽辉李垣江黄炜嘉张正言
计算机应用与软件 2022年12期
关键词:像素点边界像素

王泽辉 张 冰* 李垣江 黄炜嘉 张正言 杨 魏

1(江苏科技大学电子信息学院 江苏 镇江 212003) 2(江苏省人民医院介入科 江苏 南京 210029)

0 引 言

目前,肝硬化已成为全球第14大死因,而肝细胞癌由于其发病隐匿、肿瘤发展快的特点的死亡率在恶性肿瘤死亡率排第3位[1]。最新数据显示,我国肝癌的年死亡率在恶性肿瘤死亡顺位中占第2位,在城市和农村中成为致死的最主要癌症之一[2]。因此,肝脏疾病必须要做到早发现早治疗。随着计算机图像处理技术的不断发展,计算机断层扫描(computed tomography, CT)成为临床中最为常用的一种影像学检查方法,它不仅可以及时地发现和定位肝脏肿瘤,而且对于前期的手术规划以及后期的康复治疗都有极为重要的作用[3]。然而,腹部CT图像中肝脏毗邻其他组织器官,其边界位置分辨难度往往较大,如图1所示。

图1 腹部CT图像

在肝脏分割方面,主要分为传统分割方法与基于深度学习的分割方法[4]。传统的方法有区域生长法、分水岭算法等,虽在分割上效果显著,但在操作方法上人为干预较多以及缺乏可移植性。李静等[5]基于GrabCut的方法对肝脏实现分割,虽取得较好的效果,但是需要通过人工交互模式找出肝脏区域。王荣淼等[6]通过改进聚类算法,改变核函数使得最终肝脏分割轮廓更加准确,尽管如此,初始点的选择仍需要人为干预。不难发现,基于传统方法的肝脏图像分割依赖初始区域的选择,并不能实现肝脏区域自动分割。近年来,深度卷积神经网络在图像语义分割、对象检测等方面的研究取得了一定的进展。Shelhamer等[7]提出的全卷积网络(Fully Convolutional Networks ,FCN)用于图像的分割,在提取特征时保留了多层特征,再通过反卷积的方式恢复图像的所属类别。张杰妹等[8]通过改进FCN的方法,在肝脏分割上获得了较好的准确率,但是全监督学习下对数据集的标注不仅数据量大,而且要求精确度高。在数据量方面,对图像的标注需要花费时间,例如在CityScapes数据库精标条件下,一幅图片的标注就需要1.5 h。在图像标注精度方面,由于标注工作者大多是跨领域工作,其知识领域或存在欠缺,尤其针对医学图像的像素级的标注,面对多学科的交叉问题时无法标注出目标对象所在的精确位置,导致样本数据集存在缺陷。除此之外,深度卷积神经网络在一定程度上缺乏解释性,为解决此问题,Zhou等[9]提出的图像特征定位法对网络的分类做出了解释,该方法还使得输出的图像具有卓越定位性,为弱监督的图像分割带来了可能。Xu等[10]将弱监督图像语义分割形式化为潜在的结构化预测框架中的多实例学习,对图形模型中类的存在与否以及对超像素的语义标签的分配进行编码。姜涛等[11]使用基于目标识别的方法,在肝脏分割问题上用矩形区域代替了精确标注,但是其目标识别的范围内也包含了背景信息,干扰因素较多,仍无法做到精确的定位。

现阶段,对于肝脏图像的语义分割大多是基于全监督学习的。为了解决这一问题,本文提出一种基于深度学习的弱监督肝脏分割方法,该方法使用深度学习和传统分割相结合的方式。用边框标注的弱监督学习代替像素级标注的全监督学习,大幅度节省了时间,同时,由于只需要标注肝脏的大致边框,无需专业领域知识;通过卷积神经网络学习肝脏的深度特征,自动准确地定位肝脏区域,通过改进的区域生长法结合条件随机场对目标区域扩张,从而实现肝脏的自动分割。

1 Grad-CAM算法

CAM(Class Activation Mapping,CAM)算法[9]可以实现定位深度神经网络所学习到的特征,CAM一般的做法是将最后的特征层进行全局平均(Global Average, GA),并用与GA类别数目大小的全连接层代替最后的全连接层,所带来的问题是需要改动整个网络结构再次训练,显而易见,只要改动网络都需要重新训练模型的方法无疑是费时费力的。Grad-CAM在CAM的基础上进行了改进,用梯度全局平均来计算每幅特征的权重,从数学角度来说,Grad-CAM与CAM再计算结果上是一致的,而Grad-CAM优点是不需要改变网络结构以及不需要重新训练网络。

(1)

(2)

式中:Z为特征图的像素个数。

(3)

式中:Ak是第k个特征图;ReLU为激活函数。

2 区域扩张和边界收敛

2.1 区域生长法

为了肝脏的扩张能达到较好的分割效果,本文运用了区域生长的方法。在特征图权重最大的区域选出随机化初始点作为种子点,以种子点为基础在图像上扩张。其中每个种子点分别向周围的8个方向扩张,如图2所示,当临近的像素点与种子点满足某种条件时,即判定该点为同类点,并将该点作为新的种子点以此方法继续扩张直至整幅图像。

图2 区域生长的8个方向

2.2 边界收敛

区域扩张可能会导致分割边界产生过分割的情况,本文使用条件随机场以限制区域的过分割情况。条件随机场是一种无向图判别模型,图像中每个像素都为无向图的顶点,像素间的连接关系为顶点的连线[12]。一般来讲,在图像中具有相似位置和颜色的两个像素点,是同一类的可能性较大。根据这个原理,每个像素点会被赋予不同的标签,从而目标与背景在边界处合理分开。令G=(V,E)表示一个无向图,Y=Yv,v∈V,Y中元素与无向图G中的顶点一一对应。按照全连接的CRF,其能量函数公式如式(4)所示。

(4)

式中:ψu(xi)表示每个像素属于各个类别的概率;ψp(xi,xj)表示像素之间的灰度值差异和空间距离,能量函数越小,对应的肝脏分界就越准确。

3 算法设计

本文方法的流程如图3所示。首先对CT图像的肝脏所处位置进行边框标记,利用VGG16网络学习肝脏特征,并使用Grad-CAM算法粗略定位肝脏区域,然后通过区域生长的方法将所得区域进一步扩张,并利用条件随机场限制边界,最后经过图像后处理平滑边界实现肝脏的自动分割。

图3 整体流程

3.1 边框标记

本文主要研究具有边框标记的弱监督的肝脏语义分割,数据集对深度学习的准确率有着直接的影响。为此为了尽可能地学习到肝脏特征,并且在测试集上有较好的效果,本文在选择划分肝脏区域时将数据集尽可能的丰富,例如,当有些图片边框涉及到脊椎时,也要在其他图像中只标注到肝脏区域而避开脊椎区域,这样做可以避免让网络学习到错误的对象,从而对图像产生误判。标注软件使用LabelImg,对肝脏区域进行标记,且标注过程无需过多专业知识。如图4所示,通过标注的多样性使得数据集变得丰富,理论上一幅带边框的数据标注只需消耗7 s。

图4 带边框标注的样本

3.2 Grad-CAM实现肝脏定位

本文借助VGG16网络,通过迁移学习的方式,实现特征的提取与学习。VGG16的网络主要包括卷积层、池化层以及全连接层,同时在全连接层数增加了DropOut层防止过拟合。

通过卷积神经网络学习边框标注的样本,网络可以识别肝脏所在位置。如图5(a)所示,网络学习到肝脏特征,并用矩形框标记出。通过将标记框转换为矩形数据,如图5(b)所示,对于语义分割来讲是远远不够的,主要包含两个问题:第一是框内依然包括很多的背景噪声,无法精确定位肝脏所在区域;第二是肝脏轮廓不明确,无法区分肝脏明确的边界信息。因此,为了提取肝脏准确轮廓的像素级信息,需要进一步提取深度网络学习的特征。

图5 不同类型的标记数据

为得到肝脏精确位置,首先将边框标记的肝脏的数据集代入网络训练生成分类模型,利用此模型识别新的肝脏图片,并用Grad-CAM生成特征图。本文的Grad-CAM算法流程如图6所示,输入需要预测的图片,将其送入卷积神经网络,此时会生成n类的特征图,将此特征图经过全连接层后会输出n个类别,并对其取最大值,此时取出概率最大的类别的特征图记为c(本文得到目标对象为肝脏),对c进行反向传播求其对应的权重,得到当前特征在n个类别上的权重值矩阵,再对此权重矩阵做全局平局得到最后的特征值。将特征值与特征图求加权和再经过ReLU函数便得到了模型分类的依据,将其转化便得到特征热力图。在特征热力图中颜色越深代表此处越有可能是肝脏区域,从图6中可以看出热力图所呈现出的特征出基本在肝脏区域,这证明了训练网络的有效性,但是所识别的区域有限,不满足分割需求,仍需要进一步操作。

图6 Grad-CAM算法流程

3.3 区域生长法与条件随机场

通过上述操作,还需要对肝脏区域的像素进一步扩张,通过条件随机场对边界的限制以达到较好的分割效果。

3.3.1改进的区域生长法

(1) 颜色特征。一般来讲,区域生长法对于噪声比较敏感。为了更好地适应肝脏区域的扩张,本文在区域扩张的决策上做出了改进。在腹部CT图像中,肝脏部分存在很多血管,甚至还有肿瘤等差异较大的像素值,往往会遗漏这些像素点,因此在做出每一个像素点决策时不应该只是单纯的判断与阈值的大小。假设当前像素点与种子点的差值大于阈值,首先不是将其排除在外,而是以当前点为中心在其邻域内选择n×n的窗口大小,并且用周围n2-1个像素的平均值做为当前点的像素值,再次与阈值进行比较,若再次大于阈值则将该点排除在外,否则选定该点作为目标点(但不作为生长点)。这样的决策方法可以一定程度上消除由于噪声带来的干扰,从视觉角度来看,即图像中的不连续区域会大大减少。

图7 多种子的扩张

除此之外,为了防止单个种子点带来偶然的像素差异过大而导致区域生长范围过小,本文选取一定范围内多个种子点进行区域扩张,从而有效减少了因像素变化过于激烈带来的欠分割问题。如图7所示,在热力图像素最大值的范围内自动选择一个区域实现扩张。定义种子点为x,其对应的像素值为f(x),阈值为c,当前像素点为y,其对应的像数值为f(y),则当前像素点的计算公式为:

(5)

(2) 纹理特征。单单从颜色差异判断是有缺陷的,当图像颜色变化过于激烈会引起误判。因此,针对这一问题,本文从肝脏纹理特征出发,通过灰度共生矩阵(Gray-level Co-occurrence Matrix, GLCM)的纹理特征结合区域生长的方法,进一步精确生长区域。具体步骤如下:

第一步:对种子点所在的a×a范围内生成灰度共生矩阵,灰度共生矩阵中元素表达形式如式(6)所示。

(6)

其中l为偏移量,∂为矩阵生成的角度,∂={0°,45°,90°,135°}、P(x,y,l,∂)表示确定坐标为(x,y)的像素为m,统计该像素点与坐标在(x+dθ0,y+dθ1)的n像素点出现次数的矩阵。

第二步:计算灰度共生矩阵的特征,将所有种子点的特征指标平均化。本文主要选择的特征指标为:对比度(contrast)与自相关(correlation)。

第三步:在颜色特征无判读的点上,选择c×c大小范围,按照第一、二步的方法生成灰度共生矩阵后计算特征指标,通过判断特征指标与种子点的特征指标是否接近进而判断是否在该点进行区域生长。

3.3.2条件随机场

在上述区域生长法后,会出现过分割的现象,为解决此问题,本文利用条件随机场以到达防止过分割,通过学习数据的颜色分布特征,建立无向图模型,并判别模型来学习不同类别标签的后验条件概率分布,通过最大化该后验概率来得到图像中各个像素对应的最佳标签。具体方法是,首先将图像上的像素点随机赋予标签,然后随机取点并计算其与周围点的颜色能量函数,如若与周围点的类别相同则减小能量,否则增加能量,再根据能量大小修改标签,能量函数如式(4)所示,通过迭代上述过程,可以判别肝脏区域的总体边界信息。最后将区域生长法限制在条件随机场生成的边界内,以保证分割图像的边界。

3.4 图像后处理

通过上述方法得到了肝脏区域的图像,但是图像中有许多未标记的孔状区域。为了最大程度还原肝脏分割的边缘细节,保证处理前后图片边缘的一致性,采用了描绘轮廓的方法。高斯模糊可以减少图像噪声以及降低图像的细节层次。图像二值化是常用的图像变换操作,可以方便提取图像中的信息,同时在进行计算机识别时可以增加识别效率。轮廓算法根据输入的图像的连通区域找出确定外边界和孔边界,取出所有的外边界实现提取轮廓。中值滤波是一种常用的去噪声模型,其原理是用卷积框中像素的中值代替中心值。

如图8所示,本文通过高斯模糊,图像二值化,提取轮廓等形态学算法来处理内部存在孔的问题,针对最后边界优化则用了中值滤波的方法使得图像边界变得平滑。

图8 图像后处理流程

4 实验及结果分析

4.1 实验数据及参数设置

为了验证算法的有效性,本文使用公开的3Dircadb数据集作为实验数据。该数据集共有20位检查者(10名男性,10名女性)的CT扫描影像,共计2 821幅,其中,75%的检查者患有肝癌。

本文随机选择数据库中16套CT 扫描影像作为训练数据,剩下的4套作为测试集。本文也加入了由江苏省人民医院提供的腹部CT扫描图像用作测试,一共13套,共计200幅图片。将上述CT图像数据集的窗口大小设置为40,窗口宽度设置为300,并将其转成JPG格式,通过LabelImg标注软件标注出图像中肝脏位置,如图4所示,并保存为训练集。

实验环境如下: Windows 10 64位操作系统,32 GB内存,AMD3600 CPU处理器, NVIDIA GeForce GTX 1080Ti显卡。软件工具有:Python 3.6.0,PyTorch(GPU版)。

4.2 评价指标

为进一步证明方法的可行性,本文从体积重叠误差(VOE)、相对体积误差(RVD)、平均对称面距离(ASD)、最大对称表面距离(MSD)、重合率(DICE)这五个指标进行统计分析。设算法分割结果和专家标注结果为X、Y,其对应的表面分别为I、J,则上述指标定义如下:

(1) 体积重叠误差(VOE)。体积重叠误差是实际的分割结果体积与真实分割结果体积的误差,该值越小,表明肝脏分割的结果越准确,其计算公式如下:

(7)

(2) 相对体积误差(RVD)。相对体积误差是判断真实分割的结果与预期分割的结果是处于欠分割还是过分割状态,其计算公式如下:

(8)

(3) 平均对称面距离(ASD)。平均对称面距离表示两个分割结果表面最短距离的平均值,结果越小证明分割效果越好,当分割结果与专家标注一致时,此时ASD为0,其计算公式如下:

(9)

式中:i、j分别为I、J上的任意点,d(i,j)表示点i与点j之间的欧氏距离,CI、CJ表示在分别在I、J上的点数。

(4) 最大对称表面距离(MSD)。最大对称表面距离也叫豪斯多夫距离,其测量的是两个表面上所有点最小欧氏距的最大值,MSD越小表示算法性能越好,计算公式如下:

(10)

式中:d(i,j)表示点i与点j之间的欧氏距离。

(5) 重合率(DICE)。DICE是医学图像中的常见指标,代表的是真实值和预测值重叠的部分与他们和的比值,范围在[0,1]之间,DICE的值越大代表分割的结果越精确,其计算公式如下:

(11)

4.3 目标定位

本文使用VGG-16 Image Net作为基本的网络模型,数据集为公共库3Dircadb,初始化图像大小为512×512,使用随机梯度下降法更新参数,每个批次迭代10~20幅图像,初始学习率设为0.000 1,冲量遗忘因子设置为0.9,验证数据集为总数据集的10%,迭代200个批次,网络迭代过程如图9所示。蓝色表示在验证上的准确率,红色表示损失值函数,其中在验证集上准确率达到了98%。

图9 损失值和验证集准确率

通过深度神经网络的学习,结合Grad-CAM的反向算法,通过将网络学习到的特征显示,并通过热力图叠加展示,效果如图10所示。可以看出,肝脏的位置已经被确定。

图10 热力图定位肝脏

4.4 实验结果与分析

4.4.13Dircadb数据库

将测试图像输入到网络中,通过Grad-CAM定位算法后进行区域的扩张和收敛以及后处理操作,所得结果如图11所示。本文在公开的3Dircadb数据集选择了两幅CT腹部扫描,其中最左侧为输入的原始CT图像,经过分割后得到第三幅图像,最右侧是将手工标注和自动分割图像叠加到原图上,其中红色的轮廓为手工标注的轮廓。

图11 分割结果

可以看出,两组CT图像的形态都不一样,第一组图像是肝脏与心脏毗邻;第二组图像则为肝脏与胃相邻。两组图在定位到肝脏区域后,对肝脏区域进行了精确的分割。第二组图像中由于存在像素差异较小的邻近组织,图像边缘部分存在略微粗糙的现象,但整体上来讲,本文的方法与手工标注结果相比基本上覆盖了所有的肝脏区域。通过第四列手工标注与本文方法叠加原图可以看出整体的分割取得了不错效果,实验结果表明本文方法的可行性。

图12为本文方法与其他常用的深度学习方法SegNet模型[13]、U-Net模型[14]、FCN模型[7]与本文的算法对比。SegNet在整体上分割效果欠缺,且边缘粗糙,出现断裂现象;U-Net虽然包含了肝脏区域,但也存在过分割问题;FCN模型整体较好,但是观其细节,边缘粗糙,存在锯齿状边缘;相比之下,本文模型对肝脏部分保留完整,且在微弱的边缘部分保留了更多的细节。

图12 不同算法分割结果

尽管通过视觉观察比较直接,但是其易受人主观因素的影响,故仍需对分割结果进行定量评价。将本文的方法应用于肝脏分割,输入腹部CT图像,在3Dircadb数据集中选出15名病人,每位病人选择多幅图像,计算上述几种评价指标的平均值,如表1所示。

表1 本文方法在3Dircadb数据集上的分割性能与专家标注数据对比

对表1实验结果取平均值,得到本文的分割性能:VOE为9.73%、RVD为5.49%、ASD为1.23 mm、MSD为11.59 mm、DICE为94.88%。

将本文的方法与U-Net[14]、CFCN[15]、形状约束法[16]、水平集法[17]对比,如表2所示,本文通过弱监督学习下的肝脏语义分割方法,通过弱监督形式加改进的区域生长算法在图像在指标在整体上比其他算法有了一定的提升。

表2 三种方法在3Dircadb上的指标对比

表2中,U-Net算法与CFCN都是基于全卷积神经网络的算法,即通过上采样代替原有的全连接层,但是两者都是基于全监督学习的,需要大量高质量数据集支撑,在训练效率上不及其他几种方法。相比于其他的方法,本文的方法在平均对称表面距离和最大对称表面距离相对于其他三种方法有了一定的提升。从相对体积误差上来看,存在少许过分割,但是相比于形状约束法有了一定的提升。在图像重合率上达到了94.88%,比CFCN和U-Net方法有所提高。体积重叠误差上相较于形状约束法稍有欠缺,但考虑到本文的方法是基于弱监督学习下的肝脏分割,目标检测的区域有限,在无标注数据的情况下也能做到分割性能上的保持,表明了基于弱监督的分割方法的有效性。

4.4.2自建数据集

为进一步证明本文方法在肝脏分割的适用性,本文在自建的数据库上进行测试。测试结果如图13所示,可以看出,所测试的腹部CT扫描图中肝脏形态不相同,但都在整体上保持了与手工标注的一致性以及在边缘处表现出良好的精度。通过实验证明,本文方法在自建数据集上仍具有较好的分割效果。

图13 分割结果

通过计算本文方法在自建数据集上的参数,如表3所示,VOE为8.89%,RVD为4.57%,ASD为0.96 mm,MSD为9.81 mm,DICE为95.28%,5个指标上比在公共库上有了进一步的提升,其中在RVD上的小幅度提升说明了过分割的程度在下降。ASD和MSD的提升则说明分割边界在变好。通过公共数据集与本文数据集的叠加验证,从而说明本文方法具有一般性。

表3 本文方法在自建数据集上的指标

5 结 语

本文提出一种弱监督肝脏语义分割方法,采用了深度学习的方式与传统分割相结合的方法,在不丢失分割精确度的情况下,通过标签的弱监督来代替全监督学习,省去了图像的精标注,大大节省了图像标注的时间成本。通过深度神经网络学习肝脏特征,同时采用了Grad CAM算法定位肝脏所在区域,最后通过优化的局部区域的扩张和限制边界生长的方法实现肝脏的自动分割。与其他肝脏分割的优势在于:

(1) 目标分类网络使用迁移学习的方法,使得模型收敛更快,加速了训练的过程从而减少了训练的成本。

(2) 使用框型标注数据,并通过网络学习的特征通过Grad CAM算法定位到肝脏,与人工标记数据来比,节约了大量的时间成本。

本文在未来还需改进和完善和改进分类网络,使之更好地解决由于形态的差异的存在,导致一个CT序列中的有些肝脏图像会产生误判现象。

猜你喜欢
像素点边界像素
像素前线之“幻影”2000
拓展阅读的边界
探索太阳系的边界
基于局部相似性的特征匹配筛选算法
意大利边界穿越之家
“像素”仙人掌
基于5×5邻域像素点相关性的划痕修复算法
论中立的帮助行为之可罚边界
基于canvas的前端数据加密
ÉVOLUTIONDIGAE Style de vie tactile