基于CT图像的颅内血肿检测与分割
2021-10-16刘元峰刘立波刘云
刘元峰,刘立波,刘云
1.宁夏大学信息工程学院,宁夏银川750021;2.宁夏医科大学总医院心脑血管病医院放射科,宁夏银川750002
前言
颅内血肿是一种临床常见病症,其形成常与颅脑创伤有关。颅内血管破裂,血液在颅内积聚形成血肿,危及病人生命安全,医生需要通过影像学检测血肿部位和大小进行手术抢救工作,因此血肿部位的精准检测和分割具有十分重要的临床应用价值。目前,血肿检测和分割多采用人工操作,费时费力且难以精准分割和测量血肿。
从20 世纪90年代开始,计算机辅助检测系统开始应用到医学影像方面的研究[1]。计算机辅助检测系统在该方面具备着高效、准确的特点,成功解决了传统人工测量方式带来的问题,促进医疗事业的发展。
目前国内外专家学者提出很多有效的血肿检测分割算法,杨泽富等[2]提出一种三维全自动脑血肿CT图像分割方法,解决了手动设置种子点问题;王金海等[3]使用多通道差分吸光度来进行颅内血肿的快速检测,明显消除了个体差异对检测结果的影响,提高血肿检测精度;Mckinley 等[4]使用随机森林算法识别血肿区域,检测速度明显提升;Ironside 等[5]提出一种基于卷积神经网络的全自动分割算法,改善了检测和分割精确度;Rajinikanth等[6]提出一种基于社会群体优化算法和模糊熵理论的半自动图像算法,提高了血肿检测精确度;Tu 等[7]使用非局部空间聚类实现血肿自动分割,该方法在初始化阶段使用非局部正则化空间模糊C均值聚类,在优化阶段使用无边缘主动轮廓法,弥补分割方法的理论发展与实际需求之间的空白且分割效果良好;Yao 等[8]提出一种新颖的多视点卷积神经网络,该网络具有混合损失,可以在受伤后24 h 内进行头部CT 扫描中分割全部急性血肿;徐艳等[9]提出一种基于Snake 模型的脑CT图像分割方法,该方法首先用Canny算子检测边缘并将其叠加到原始图像上,然后再用Snake 模型和GVF Snake 模型分割叠加图像,算法克服了传统Snake 模型和GVF Snake 模型的漏分割情况,具有更好的分割效果。
以上方法在血肿分割中都有着快速、较为精确的效果,但并未考虑去颅骨脑组织边缘类血肿噪声的问题,从而导致血肿分割结果不准确。因此,本文提出一种基于改进Canny边缘检测的方法,用于最大化检测出脑组织边缘类血肿噪声,与去颅骨图像进行与运算以实现脑组织边缘降噪,减少图像干扰信息,最后采用基于OSTU适应度函数的遗传算法得到图像最优阈值,从而使血肿部分的检测和分割精准度得到提升。
1 算法原理
1.1 区域生长算法
区域生长算法的基本思想是将有相似特征的像素点合并到一起[10]。算法首先指定待分割区域的一组种子点作为生长起点,然后对比周围邻域像素点,将具有相似特征的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。总体过程如图1所示。
图1 生长过程Fig.1 Growth process
1.2 Canny边缘检测
边缘检测可以精细描述出图像轮廓,因而在检测边缘噪声方面有着天然的优势。Canny 边缘检测图像边缘的思想是:用高斯滤波平滑图像、滤除噪声,计算图像中每个像素点的梯度强度(幅值)G和方向θ,使用非极大值抑制(NMS),减少误检边缘区域,使用双阈值检测来确定真实和潜在的边缘,抑制孤立的若边缘来完成边缘检测[11-13]。
每个像素点的梯度强度(幅值)G和方向θ为:
其中,Gx和Gy分别为检测像素点水平、垂直方向的一阶导数值。
1.3 遗传算法
遗传算法最早由美国的John holland 于20 世纪70年代提出,是用于解决最优化的搜索算法,属于进化算法[14-15]。其借鉴了进化生物学的一些现象,并通过计算机编码的形式表现出来,这些现象主要包括选择、交叉、变异等。遗传算法通过适应度函数计算个体适应性,选出若干适应性较高的个体,对其基因进行交叉、变异,生成新一代种群,不断重复该步骤直至达到迭代次数。具体流程如图2所示。
图2 进化过程Fig.2 Evolutionary process
1.4 OTSU算法
OTSU算法又被称为大津算法,是一种自适应阈值确定方法,算法计算得到最优阈值将图像分成背景和前景两部分,使得两者区分度达到最大[16]。其主要思想为:统计并归一化直方图,设置初始分类阈值i、类间方差g,i从0开始迭代并记录对应类间方差gi,直到i为图像最大灰度值,最终得到最大类间方差gi,并将其对应i值作为全局最佳阈值。类间方差g,表达式为:
其中,ω0为前景像素(灰度级在0~i称为前景像素)占整幅图像的比例,μ0为其对应平均灰度;ω1为背景像素(灰度级在i~1 称为背景像素)占整幅图像的比例,μ1为其对应平均灰度;μ2为图像的总平均灰度;μ2具体表达式如下:
将式(1)代入式(2)化简可得:
1.5 阈值分割
图像阈值分割核心在于利用图像中背景和前景灰度值的明显差异,选择适当的阈值进行二值化处理,得到只包含灰度值为0 和255 的图像。阈值分割操作定义如下:
其中,x、y表示像素的横纵坐标,p( )x,y表示像素局部特性,f(x,y)表示像素灰度值,且有以下约束:T仅取决于f(x,y),阈值为全局阈值;T取决于f(x,y)和p(x,y),阈值是局部阈值;T取决于坐标(x,y),阈值是自适应阈值。经阈值处理后的图像g(x,y)定义如下:
其中,灰度标记为1 的像素代表前景,即我们所关注的对象信息,灰度标记为0的像素代表背景。
1.6 图像逻辑运算—与运算
图像通过与运算可以有效去除指定范围内高亮灰度区域。与运算表达式为:
其中,g(x,y)为运算后的像素灰度值,f(x,y)和h(x,y)为进行运算的原图像的像素灰度值。
2 本文工作
本文首先将DICOM 格式的CT 图像转换成JPG格式;然后通过区域生长算法获取脑组织区域,并和原图像进行与运算去除非脑组织,得到包含血肿的脑组织图像;然后使用基于Canny边缘检测的方法检测脑组织图像边缘类血肿噪声并进行降噪;最后利用基于OTSU 适应度函数的遗传算法获取图像最优阈值,使用简单阈值分割完成血肿分割。整体流程如图3所示。
图3 血肿检测、降噪和分割流程图Fig.3 Flowchart of hematoma detection,denoising and segmentation
2.1 图像格式转换
本实验无法直接处理CT 设备扫描的DICOM 格式图像,需要将其转换成JPG 格式,本文应用垂直镜像变换进行图像格式的转换。垂直镜像公式如下:
其中,G0(-n0,k0)表示DICOM格式原始图像I0中像素点(-n0,k0)的像素值,Gvm(n0,k0)表示垂直镜像后JPG格式图像Ivm中像素点(n0,k0)的像素值。
2.2 颅骨去除
DICOM图像转换成CT图像存在着颅骨等部位,而颅骨与颅内血肿存在相似性问题,严重干扰实验结果,为实现血肿精确分割,首先要去除颅脑区域外的噪声。为此本文首先应用区域生长算法定位并获取颅脑组织区域,然后通过与运算去除掉颅骨等噪声。去颅骨过程如图4所示,具体实现步骤如下:(1)区域生长算法分割颅脑组织区域。首先选取原始灰度图像中颅脑区域非血肿部分的随机点作为种子点,比较其八邻域中待生长点像素相似性,原始灰度图像如图4a 所示;其次,设置种子点的生长准则;最后确定种子点的终止生长条件。经过区域生长后,获取的颅脑区域图像如图4b所示。(2)与运算去除颅骨等噪声。颅脑区域图像和原始图像进行与运算操作,由于颅脑区域灰度值为1,背景值为0,因而图像与运算后的结果只保留带有边缘噪声的颅脑图像,如图4c所示。
图4 去颅骨过程示意图Fig.4 Schematic diagram of skull removal
2.3 边缘噪声消除
上述步骤得出的去颅骨图像在脑组织周围存在大量与血肿具有相似特征的噪声,严重干扰实验结果。本文主要保证血肿精确分割,因此要消除脑组织边缘类血肿噪声。
2.3.1 基于改进Canny算子的噪声检测消除脑组织边缘噪声,首先要将噪声识别出来。为此本文提出一种基于改进Canny的边缘检测方法,旨在最大化检测出脑组织边缘类血肿噪声。其主要思想为:采用边缘检测的方式检测边缘,但在NMS模块中,比较检测点与其八邻域像素值,若检测点为非极小值且大于指定阈值T,则认为该点为边缘上的点,并将其值设为1,否则置为0。具体步骤如下:首先使用高斯平滑滤波,减少一些噪声干扰。然后对去颅骨图像进行梯度幅度和方向的计算。本文选取Sobel算子作为边缘差分算子对图像进行水平和垂直方向卷积得到梯度dx和dy:
进一步得到图像梯度的幅值M( )x,y和方向θM:
通过上述步骤可以得到粗边缘,但边缘过粗会将脑组织边缘血肿信息误检为噪声,进而导致实验结果精度降低;而传统和改进的边缘检测算法旨在最大化保留边缘信息,实现精准图像分割,其结果无法最大化检测出脑组织周围的类血肿噪声,导致本实验结果偏高。
为此,本文用非极小值且大于指定阈值T即为边界点的方式替换Canny 边缘检测中的NMS 模块,实现对Canny算子的改进,以实现筛选出符合要求的边缘噪声。
(1)要设置指定阈值,根据医疗图像的灰度分布,需要将阈值设置近似为血肿灰度,再根据经验法,本文设置阈值为120,即:
(2)将3×3 高斯滤波器作为局部处理,邻域中心f(x,y) 与沿着对应梯度的两个像素对比,如果f(x,y)为非极小值且大于最低阈限T,则保留,并置为1,否则置为0,即:
其中,min Value 为邻域中心周围八邻域的最小值。其过程如图5所示。
图5 非极小值扩充示意图Fig.5 Schematic diagram of non-minimum extension
2.3.2 噪声消除经上述方法处理已实现脑组织边缘噪声检测和获取,下面将进行脑组织边缘噪声的消除,其过程如图6 所示。基于改进Canny 算子的边缘检测方法处理得到类血肿噪声图像,如图6a 所示。其灰度分布为:灰度值为1的类血肿噪声和灰度值为0 的背景。为保证消除噪声,首先对类血肿噪声图像进行二值取反,置噪声灰度为0,得到二值取反类血肿噪声图像,如图6b 所示。然后二值取反类血肿噪声图像和去颅骨图像进行与运算,即可消除类血肿噪声,得到降噪脑组织图像,如图6c所示。
2.4 颅内血肿分割
本文通过OTSU 算法作为遗传算法的适应度函数,从而快速获取最佳阈值,实现血肿精确分割。本文通过多次尝试,将种群数量N 设置为500,代沟G设置为0.8,交叉因子Pc 设置为0.85,变异因子Pm 设置为0.05,进化次数为500 次。通过遗传算法的使用,得到最佳分割阈值T为178,并以此对降噪脑组织图像使用全局单一阈值分割出血肿部位,得到血肿图像(白色为血肿),如图7所示。
图7 血肿图像Fig.7 Hematoma image
3 实验结果与分析
实验系统配置为Intel(R) Core(TM) i7-7700HQ CPU @ 2.80 Hz,8 GB RAM,操作系统为Windows10专业版,软件环境为Python3.6。实验数据来源于宁夏医科大学附属医院共计200例图像,数据集中血肿层厚均为0.5 mm,单张CT 图像大小为512×512。实验中使用专家的手工分割结果作为血肿分割的金标准,同时将本文方法与文献[17-20]中方法进行实验结果对比,以此验证本文方法的有效性。
3.1 评估指标
为评估图像的分割结果,可将图像像素分为4类:真 阳 性(True Positive, TP),真 阴 性(True Negative, TN),假阳性(False Positive, FP)和假阴性(False Negative, FN)。同时将类型为TP、TN、FP 和FN 的像素集合分别记为和。本文对分割结果的评估指标主要包括:Dice 相似系数(Dice)、真阳性率(True Positive Rate,TPR)和准确率(Acc)。
Dice 用于度量真实值和预测值之间的相似性,预测值越接近真实值,Dice值越大,即:
TPR 又称敏感度(sensitivity SEN),表示预测正样本与实际正负样本之比,用于检测算法识别正样本的能力,即:
准确率(Acc)为正确分割像素数与总像素数之比,表达式为:
3.2 实验对比
为直观观察本文方法分割效果,图8 给出了包括本文方法在内的3 种不同方法分别提取颅脑血肿的结果对比,从左到右依次为原始CT 图像、专家手工分割图像、文献[17]分割图像、本文分割图像。为了更加客观评价本文所提出的血肿检测方法,以Dice相似系数、召回率、准确率作为图像评价指标,对本文方法分割效果与目前主流方法进行对比,其结果如表1 所示。从图8 可观察到本文算法结果精确分割出血肿单位并达到颅脑边缘区域去噪效果,具有边缘去噪和血肿精确分割的有效性。由表1可知,本文方法的准确率、相似系数、召回率均为最优。Dice相似系数相较于其他算法提升明显,说明本文方法在原有方法基础上,通过去除边缘噪声,减少了假阳性率,实现降噪效果。准确率和召回率有小幅度提升,说明本文方法能有效实现精准分割。
表1 算法评价指标对比Tab.1 Comparison of algorithm evaluation indexes
图8 实验对比图Fig.8 Experimental comparison
4 结论
本文基于CT 图像,针对脑组织边缘噪声和血肿分割精度低等问题,提出一种基于改进Canny边缘检测的算法。经过仿真实验及数据比较,该算法能高效地去除脑组织边缘类血肿噪声。但算法也存在检测敏感度低和噪声误检问题。主要原因是本文只针对颅脑组织的形状特征提取,对面部形状特征提取较少,针对带有眼球等面部位置的CT 图像去噪效果并不理想。因此,对面部尤其是眼球等部位特征的提取以及研究是后续的发展研究方向。