1.1 设计 计算机实验。
1.2 时间及地点 实验于2020年12月至2021年6月在四川大学望江校区生物医学工程学院完成。
1.3 资料
1.3.1 实验数据 实验所使用的数据为来自的KITS19[14],该数据集包含210个完整的腹部CT扫描,含有手动标注的肾脏和肾脏肿瘤。原图像分辨率为512×512,灰度值在[-1 000,2 000]之间,通过CT窗口化技术将所有图像的HU值截断到[0,400]之间。随机选取case_00001、case_00002、case_00023、case_00123中的共329张腹部CT扫描图像作为实验数据集。
1.3.2 实验开发环境 实验用的开发平台为python 3.7,pytorch1.7,CPU:12th Gen Intel(R) Core(TM) i7-12700KF,GPU:NVIDIA GeForce RTX 3060,内存:Kingston DDR5 32 GB 4 800 MHz。
1.4 方法
1.4.1 腹腔结构的先验知识 根据文献[15]中的结论,可将腹腔区域近似为一个椭圆。设腹腔区域的长和宽分别为L和S,则左肾所在的区域为[1/8L∶7/16L,2/5S∶4/5S],右肾所在的区域为[9/16L∶7/8L,2/5S∶4/5S],腹腔结构示意图见图1。
1.4.2 测地线活动轮廓模型 主动轮廓模型的基本思想是使用连续曲线来表达目标边缘,并定义一个自变量包含边缘曲线的能量泛函,从而将目标区域的分割过程转变为求解能量泛函的最小值的过程。初始轮廓线在内部能量和外部能量的联合作用下进行演化,当能量达到最小时,活动轮廓收敛至目标边缘曲线,从而完成演化[16]。
测地线活动轮廓模型是以主动轮廓为基础,根据图像的内在几何度量进行实时演化的模型[17]。演变的轮廓能够自然地分裂与合并,可以同时检测多个对象的内部和外部边界。测地线活动轮廓模型结合了基于能量最小化的Snake模型以及基于曲线演化理论的几何活动轮廓,克服了Snake模型在求解过程中所受的初始轮廓和自由参数的限制。测地线活动轮廓模型的能量泛函如下:
其中L(C)表示闭合曲线C的弧长,s是弧长,g是边缘停止函数,▽I为图像的梯度。对公式(1)使用变分计算,得到对应的梯度下降流为:
其中,N为曲线法向量,k为曲率。
采用水平集方法求解,将嵌入函数u带入公式(2),得到梯度下降流:
测地线活动轮廓模型在边缘明显的图像上具有较好的分割性能,但在目标区域具有凹陷时效果较差[18]。当图像待分割对象具有较深的凹陷边界时,测地线活动轮廓模型可能使轮廓曲线C停在E(C)的某一局部极小值处,导致轮廓曲线与目标区域边界不一致。为了缓解这一问题,再在测地线活动轮廓模型中添加一个向内收缩的力,使曲线总是向内部收缩,此时测地线活动轮廓的梯度下降流为:
引入水平集函数u,得到改进后的曲线演化方程:
1.4.3 改进测地线活动轮廓方法 该文所提的改进测地线活动轮廓模型是在传统测地线活动轮廓模型的基础上,加入初始轮廓自动提取步骤、增强目标区域响应以及改进边缘指示函数的方法。
初始轮廓的自动提取:由于测地线活动轮廓模型以图像的梯度信息作为驱动对图像进行分割,指导轮廓曲线向目标边界靠近,并最终停留在目标边界上,对初始位置较为敏感,因此进行初始轮廓大致定位是准确分割出肾脏组织的第一步。一般情况下,定位测地线活动轮廓模型的初始轮廓为手动勾画,通常形状为矩形、圆形、椭圆形,勾画过程较为繁琐且勾画的位置、形状、大小都会对演化的结果造成较大影响。该文所用的定位初始轮廓的方法为根据人体结构的先验知识及1.4.1中的结论,将感兴趣区域锁定在腹腔CT图像的左侧[1/8L∶7/16L,2/5S∶4/5S]、右侧[9/16L∶7/8L,2/5S∶4/5S]处,见图2所示。
根据文献[15]及肾脏CT图像的特点,可将肾脏的在腹腔感兴趣区域中特征归结为:①肾脏区域具有较高的灰度值;②肾脏周围的边界具有较高的梯度;根据这2个特征提出如下公式,对肾脏区域进行初步定位。
其中KROI表示肾脏分布区域,为结构元素与图像进行开运算的结果。该操作可以保留梯度较高区域(肾脏)并弱化灰度较低的区域(其他组织及器官)。最后在感兴趣区域内经过自适应阈值、连通域标记、去微小连通域等后续处理可最终获得初始轮廓,其过程见图3所示。
改进边缘指示函数:在测地线活动轮廓模型中边缘指示函数g(x)一般为公式(7)所示,其目的是在去除噪声影响的同时保留边缘信息,将轮廓曲线吸引至目标边界停止。
其中,x=Gσ × I。边缘指示函数g(x)可以是任何满足以下条件的函数:①对于任何的x,都有g(x)>0;②g(x)是一个单调递减函数,且lim g(x)=0,朱泽华等[19]根据此特点提出了一个新的边缘指示函数:
其中,σ是Gσ中高斯核的方差,ρ为权重系数,该文中ρ取1。
与g(x)相比,h(x)更加陡峭,在x的值较小的时候下降速度较快,见图4。
根据这一区别可知:当目标与背景灰度差别小时,选用下降快的函数作为边缘指示函数可避免因弱边界泄露而导致过分割;当目标与背景之间灰度较大时,选用下降较为缓慢的函数为边缘指示函数可以得到较好的分割结果。在实际应用中可理解为:
结论1:梯度值较小的图像应采用下降较快的边缘指示函数;反之则应该选择下降速度适中的函数。
增强边缘响应:通常边缘指示函数中,作为输入的自变量x为图像的梯度,用g0表示,其计算公式为:
其中Gσ代表均值为0方差为σ的高斯核,*代表卷积算子,▽代表梯度算子。将腹腔CT图像带入公式(9),所得梯度见图5A所示;将其带入g(x),得到的结果见图5B所示。可以看出在目标区域结构较为复杂、具有较深凹陷的情况下直接采用g0作为g(x)的输入所得到的边缘响应范围较为大且有很多噪声,无法引导曲线演化至真实边缘,其演化结果见图5C所示。
公式(6)可以概括肾脏的灰度特征和梯度特征以及去除周围粘连组织的影响;根据此特点定义g1的表达式:
令,易知z∈(0,1),上述公式中g1的计算过程可以看做将图像每一个像素点的梯度与一个≤1的数值相乘,该数值取决于该像素点经窗口化后的灰度值大小。此种处理方式保留了灰度较高区域即肾脏组织区域的梯度信息,见图5D,将g1带入g(x)中,边缘响应见图5E所示,其分割结果见图5F所示。可以看出,用经归一化处理后的梯度作为边缘指示函数的输入可以得到更准确的边缘响应,演化结果也更接近真实的肾脏区域。
该文方法:由图5的演化过程可知:使用测地线活动轮廓模型在同一张腹腔CT图像上采用同样的边缘指示函数,直接将g0带入公式(5)进行曲线演化无法正确地分割出肾脏;而将g1带入公式(5)进行演化可以得到正确的肾脏区域。由此可以得出:
结论2:抑制测地线活动轮廓模型的边缘指示函数对非目标区域的响应,可以对曲线演化起到正向的影响。
由于在计算g1时所有像素点的梯度值都跟一个小于或等于1的数值相乘,总体灰度值跟g0相比偏低。根据结论可知h(x)作为边缘指示函数可以避免梯度值较低的边界泄露。结合结论1和结论2,对肾脏分割的问题提出改进的边缘指示函数表达式:
1.4.4 算法流程 引入改进的边缘指示函数后,将公式(1)的能量泛函改写为:
梯度下降流为:
算法步骤如下:①步骤1:提取根据公式(6)定位感兴趣区域;②步骤2:提取初始轮廓;③步骤3:初始化水平集函数;④步骤4:由公式(11)计算边缘指示函数h(x);⑤步骤5:根据公式(13)演化方程;⑥步骤6:判断曲线演化的敛散性,若收敛则停止演化,否则重新初始化水平集函数且返回步骤4;⑦步骤7:若迭代次数达到最大迭代次数,则停止曲线演化。
1.5 主要观察指标 平均Dice系数与平均重叠度系数。