APP下载

局部多维聚类分割CT 肝脏微小病灶的方法

2022-10-28何强高瞻段钰桔周利炆赵亮

电子设计工程 2022年20期
关键词:灰度病灶聚类

何强,高瞻,段钰桔,周利炆,赵亮

(1.十堰市太和医院精准医学研究中心,湖北十堰 442000;2.十堰市太和医院医学影像中心,湖北十堰 442000;3.湖北医药学院生物医学工程学院,湖北十堰 442000)

肝脏局灶性病变(Focal Liver Lesion,FLL)种类多样、尺寸较小、特征稀少,这类病灶容易被忽视,影响医生对病人病情的诊断[1]。如何利用极少的特征,聚焦病灶区域本身,降低伪影噪音等假阳性的干扰,准确分割出肝脏中小病灶区域,是该文研究重点。

近年来关于医学图像分割的研究主要分为传统图像分割和基于深度学习的图像分割。传统图像分割算法主要包括边缘检测[2]、阈值分割[3]、区域分割[4]、超像素分割[5]等。传统图像分割算法往往针对某个特定场景设置超参数,泛化能力较差。深度学习对微小目标分割方法可分为多尺度预测[6]、数据增强[7]、超分辨率[8]、上下文信息[9]等。虽然深度学习在其他医学图像分割中表现优异,但是目前对小目标的分割精度远远不够。另外,目前暂无医学相关微小目标的分割数据集可供研究。

该文针对目前小目标分割的研究现状,结合肝脏微小病灶的特点,提出多维局部聚类分割肝脏微小病灶的算法,主要用到灰度、相对位置坐标、梯度等特征。该文的主要贡献有以下几点:

1)肝脏区域裁剪为不相交子块,在图像局部用聚类算法做分割。

2)利用子块中灰度值、相对位置坐标以及梯度信息构成多维向量进行聚类。

3)采用统计方法对潜在病灶进行分析,精确筛选微小病灶。

1 方法

所有数据样本均进行三步预处理:1)感兴趣区域(ROI)提取。由影像科经验丰富的医生,使用自研可加载DICOM 格式的图像标注软件,勾画肝脏和肝脏病灶轮廓。其中包含肝脏2 247 张,病灶841 张。2)转换像素值。CT值的单位是亨斯菲尔德(Hounsfield Unit,HU),范围为(-1 024,3 071),用于衡量人体组织对X 射线的吸收率[10]。转换时从DICOM 头文件中读取两个标签信息,分别是Rescale Intercept、Rescale Slope,分别记为RI和RS,PV表示像素值,然后通过式(1)计算得到灰度值。3)将转换后的CT 值归一化到[0,1],并映射到[0,255],保存为长宽为512 个像素的png 图片。将肝脏轮廓绘制于(512,512)的全零矩阵上,肝脏区域填充1,非肝脏区域填充0,保存为png 图片格式。肝脏病灶掩膜采用相同方法处理。

统计所有小病灶灰度均值m和标准差s。将肝脏区域裁剪为不相交子块,在子块中使用海森矩阵[11]计算灰度值梯度,并结合灰度值、相对位置坐标构成多维向量,采用kmeans++[12-13]聚类算法对子块进行分割,然后将分割结果根据裁剪坐标拼接起来,最后进行后处理和假阳性过滤。肝脏微小病灶切片聚类分割算法过程如图1 所示。

图1 肝脏微小病灶分割算法示意图

考虑像素级图像分割存在毛刺、空洞等问题,采用膨胀、腐蚀算法对拼接结果进行后处理,并根据小病灶形态学特征提出假阳性过滤策略,如图2 所示。

图2 潜在病灶假阳性过滤策略

该算法主要步骤:

1)以病灶区域为单位,删除大于144 个像素的病灶区域,在原始肝脏灰度图中计算剩余病灶区域平均灰度值ave。定义集合X,保存所有ave,考虑人工勾画时不可避免的误差,ave的取值区间在[0,100],然后计算集合内所有平均灰度值的均值m和标准差s。

2)读取原始肝脏灰度图,记为O,读取对应文件名肝脏掩膜图片,记为矩阵M,以最小矩阵框出肝脏部分,矩形左上顶点坐标为(x,y),长为w,宽为h,肝脏灰度矩阵mask=M×O[y:y+h,x:x+w]。

3)对框出的肝脏mask,依次沿着x轴和y轴,裁剪(16,16)的尺寸,裁剪步长设置为16 个像素,依次得到每个子块mask_patch,并对mask_patch 做直方图均衡化。

4)在每个mask_patch 中,利用海森矩阵计算梯度信息。依次遍历mask_patch,获取非0 位置的灰度值h,相对位置坐标(x,y),梯度值t,组成[h,x,y,t]向量形式,保存在数组n中。

5)定义kmeans++聚类,n_clusters=2。对数组n进行聚类,计算两类CT 平均值x1,x2,取落在区间[m-s,m+s]的一类作为病灶候选结果,如果没有则不取;如果都在区间[m-s,m+s]内,则取数值较小的一类。所有病灶候选结果根据裁剪坐标拼接到和矩阵M大小相同的全零矩阵new中。

6)将new进行先膨胀后腐蚀操作,填补中间空心区域,去掉周围毛刺。检测new的轮廓,得到new若干轮廓点集conts,如果单个轮廓点集个数小于4,删除该轮廓。如果大于4,则计算最小框住轮廓矩形的长和宽,如果长宽比例大于1.5,删除该轮廓。

7)最后利用裁剪x、y、w、h信息,将new还原到(512,512)大小,即为最终的病灶分割结果。

2 实验结果与分析

2.1 评价指标

采用Dice 来对分割结果做评价,Dice 系数是一种集合相似度度量指标,通常用于计算两个样本的相似性[14]。定义为:

式中,TP表示正确预测肝占位的像素个数,FP表示将肝脏预测为肝占位的像素个数,FN表示将肝占位预测为肝脏的像素个数。指标范围为[0,1],数值越大,效果越佳。该算法中,将子块的分割结果拼接还原为(512,512),与人工标注病灶结合来计算Dice。

2.2 数据集介绍

该实验使用的数据集来自2018 年至2020 年在十堰市太和医院采集的上腹部CT 扫描。影像科医生筛选多发小低密度病灶的病例53 例,由6 名中低年资影像科医生对病灶定位并确定边界,两名高年资影像科医生审核校正。微小病灶数据样本示例如图3 所示。

图3 微小病灶数据样本示例

所有数据预处理之后保存为png 格式,预处理结果如图4 所示。左边为原图,中间为肝脏掩膜,右边为肝脏病灶掩膜。

图4 预处理结果示例

统计所有微小病灶平均灰度值,其直方图如图5所示。

图5 微小病灶平均灰度值直方图

2.3 实验分析

为了验证该算法的分割效果,该文设计三组实验,每组实验经过十则交叉验证,计算Dice 的平均值和标准差。第一组为传统的图像分割算法分割结果,基于固定阈值的图像分割的阈值为统计小病灶平均灰度值加标准差,实验结果如表1 所示。第二组比较深度学习经典图像分割算法:Fcn8s、Unet、Segnet、Pspnet、Deeplabv3+,每个模型训练50 个epoch,所有参数都一样,取最高Dice 为模型最终训练结果,实验结果如表2 所示。第三组比较不同的聚类算法:kmeans++聚类、层次聚类[15]、Dbscan[16]聚类,kmeans++聚类中使用灰度值、相对位置坐标和梯度信息聚类,实验结果如表3 所示。

表1 传统图像分割算法实验结果

表2 基于深度学习的图像分割实验结果

表3 不同聚类算法及不同维度聚类实验结果

传统的图像分割算法Dice 偏低,对于图像中出现噪音、伪影或肝裂、血管等复杂情况,无法很好地分割,且传统图像分割都存在超参数,不能适用整个数据集。从图6 可以看出,基于固定阈值的图像分割,分割出了血管、肝裂、边缘等大量噪音。

图6 分割结果比较

深度学习模型中,Deeplabv3+(resnet50)Dice 更高,但是数据集总量较少,模型分割小病灶轮廓较粗糙。从图6 可以看出,Deeplabv3+模型分割结果中遗漏边缘和中间的微小病灶,并且勾画区域比实际区域偏大。

在不同的聚类算法实验中,将灰度值、相对位置坐标和梯度信息构成多维向量,使用kmeans++算法分割表现最好。从图6 可以看出,该文算法分割结果中,相对于阈值分割,减少了大量假阳性病灶,且阈值作为超参,无法适用。相对于Deeplabv3+模型,对肝脏边缘和内部微小病灶更加敏感,且勾画区域更加贴合原始病灶。

3 结论

肝脏中微小病灶像素信息少,特征不明显,肝裂、血管间隙以及胆管等组织和病灶特征相似,使肝脏中小病灶的诊断更加困难。针对小病灶特点,该文提出多维局部聚类分割算法,将整个肝脏裁剪为子块,子块中肝脏区域灰度值、相对位置坐标、梯度信息组成多维向量聚类,并根据小病灶形态特征过滤明显的假阳性。最后从理论分析和实验结果角度,验证了方法的准确性和可靠性。该文方法在影像诊断中,可以快速定位微小病灶,节省医生诊断时间,避免遗漏,在一定程度上缓解医生阅片诊断压力。另外,在缺少微小病灶数据集的背景下,该算法预勾画肝脏病灶,减小人工勾画工作量,提高人工勾画微小病灶的精度,快速积累原始数据。

猜你喜欢

灰度病灶聚类
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
基于数据降维与聚类的车联网数据分析应用
天津港智慧工作平台灰度发布系统和流程设计
为什么要做CT增强扫描
结核球是肺上长的瘤子吗?
Arduino小车巡线程序的灰度阈值优化方案
基于模糊聚类和支持向量回归的成绩预测
AP—4、EZH2基因表达量与子宫内膜癌病灶中细胞凋亡、上皮间质转化的相关性研究
基于密度的自适应搜索增量聚类法
一种基于灰度分割的调焦评价函数