唐思源,刘燕茹,杨敏,徐瑞英
1.内蒙古科技大学包头医学院计算机科学与技术系,内蒙古包头014040;2.内蒙古科技大学包头医学院医学技术系,内蒙古包头014040
随着我国空气污染的加重及雾霭天气的频发,以及吸烟人群的逐年增加,肺癌的发病率及死亡率不断上升。有关早期肺癌的治疗得到研究者的高度重视,肺癌早期病灶是以肺结节(Lung Nodules)的形式表现,因此,精确检测出肺结节,准确定位出病灶的位置,并对肺结节进行特征提取及分析,是发现早期肺癌的关键。目前,CT影像扫描技术是检测肺结节最有效的方法,放射科医生需要从成百上千张胸部CT影像序列中找出可疑病灶区域,在长时间重复阅片的繁重工作下,容易产生视觉疲劳,对病灶区域的判断可能会造成误诊或者漏诊等情况。
从20世纪90年代开始,计算机辅助检测系统(Computer-Aided Detection,CADe)开始应用到医学影像方面的研究[1],在早期肺癌筛查方面,该系统可以定量检测出肺部区域特征并定位出可疑结节区域,为放射科医生提供可靠的参考信息,同时还可以减轻医生阅片的工作量,辅助放射科医生提高检测肺结节的准确率、降低假阳率。
目前,国内外专家学者提出很多有效的肺结节检测算法,陈树越等[2]提出使用K-means聚类算法对肺结节的细长度、类圆形度等几何特征进行多次的聚类,对识别孤立性肺结节达到一个比较理想的效果,降低误判率。Alilou等[3]和Demir等[4]国外专家学者利用肺结节的3D特征,在分割肺部区域及疑似肺结节区域的基础上,计算疑似肺结节区域的质量中心点,并评价其偏移程度,最终确定疑似区域是否为阳性肺结节。Stember等[5]提出用伪分子运动模型(NMA-SD)模拟肺结节形状,实验表明对圆形、椭圆形及不规则形的肺结节识别准确率达到97%。尽管已有很多研究者提出更多的检测方法,但是还是没有达到应用到临床的标准,主要原因在于检测的结节受到周围血管等组织的干扰,检测出的结节含有很多非结节组织。为了更精确地检测出肺结节,本文提出一种基于增强滤波器和三维特征的肺结节检测与识别方法,滤波器用于增强结节与血管之间的密度、灰度对比度值。构建的三维图像能全面展示肺结构组织的细节信息,可明显区分与血管交叉部分结节的检测困难等问题,提高检测准确率。
利用高斯分布模型建立分别代表肺结节(球体)、血管(圆柱体)、面的3种模型结构,表达式如公式(1)所示,其中σ表代表不同形状的尺度大小。
球和圆柱体模型示意图如图1所示。
高婷等[6]提出由海森(Hessian)矩阵构造滤波器,Hessian矩阵H由任一点的9个三阶可导函数构成,用矩阵表示为:
图1 球(a)和圆柱体(b)模型图Fig 1 Spherical(a)and cylindrical(b)models
设λ1、λ2、λ3为H的特征值,其中要求,对应的特征向量分别为e1、e2、e3,对应的关系用公式表示为:
球状模型、管状模型和面状模型特征值满足如下关系:
为了提高区分结节和血管的能力,De Carvalho等[7]和Iqbal等[8]设计了增强结节和血管图像的两种函数,经过一系列的转换及简化得出结节滤波器(Eball)和血管滤波器(Eline)增强函数的表达式为:
区域生长算法基本思想是:从选择好的一组种子点开始把属性值(灰度级、颜色、纹理等)相似的像素或子区域按照预定义好的生长准则合成较大区域的过程[9-10]。区域生长的关键问题是相似性准则的选择和区域生长中停止规则的设定。准则的选取可以通过图像的亮度值、纹理、色彩等相似性设定,当所选区域的像素不满足相似性准则的时候,停止区域的生长,分割出目标区域。基于区域生长方法计算简单,可实现肺部区域的初始分割,获得区域的初始轮廓信息。
模糊C均值聚类(Fuzzy C-Means,FCM)算法是由Bezdek等提出的。该方法对图像进行分割的思想是:不断寻找聚类的中心vi和隶属度的函数uik,当JFCM值及误差达到一个临界最小值,就实现了图像分割[11-14]。计算目标函数JFCM函数的表达式为:
其中,c表示聚类个数,n表示所有像素值,uik表示第i个聚类中第k个样本的隶属度函数矩阵,p表示控制模糊度的常数,通常情况下p=2。yk表示像素灰度值的集合,vi表示聚类中心的点集合。
在迭代过程中,当uik的值较高的时候,像素点就找到匹配的聚类中心,最终对每个像素点寻找最大uik值,若满足uik>ujk,则将yk划到i类中,不断迭代将目标提取出来,完成图像的分割。
SVM分类方法原理是:把不同类别的数据从不可分类的低维空间映射到高维空间,在特征空间中求得最优解,使得不同类别的数据在超平面上的距离达到最大的过程[15]。设有一组训练样本集T:
应用训练样本集构造超平面,构造超平面的函数为:
其中,w*表示超平面的法向量,b*表示超平面的截距。
在构造的多个超平面中求解最优分类平面,函数公式为:
然后利用分类函数:
求解得到最佳的数据分类效果。
在得到DICOM格式的CT图像后,首先把DICOM格式的图像转换成JPG格式;然后,把完整的肺实质区域精确分割出来;最后,检测并识别出肺结节,图2给出肺结节自动检测与识别过程的流程图。
图2 肺结节检测与识别流程图Fig 2 Flow chart of pulmonary nodules detection and identification
CT设备扫描的DICOM格式图像不能直接在普通电脑屏幕上显示,要转换成JPG格式,本文应用垂直镜像变换进行图像格式的转换。垂直镜像公式表示为:
其中,G0(-n0,k0)表示DICOM格式原始图像I0中像素点(-n0,k0)的像素值,Gvm(n0,k0)表示垂直镜像后JPG格式图像Ivm中像素点(n0,k0)的像素值。
肺实质分割是肺结节检测的前提条件,转换后的CT影像,在肺区周围还存在骨骼、衣物、设备等干扰,笔者主要提取肺区内部的肺结节,因此要去掉肺区外的噪声信息。肺实质的分割流程如图3所示。
2.2.1 OSTU法二值化图像OSTU方法是根据阈值把图像区域分为两组,当被分成的两个区域方差达到最大时,用得到最佳分割阈值来对图像进行分割[16]。应用MATLAB软件中的imhist函数绘制直方图,公式为:
图3 肺实质分割流程图Fig 3 Flow chart of pulmonary parenchyma segmentation
其中,I为原图像,n为灰度级,直方图中重叠区域最小的位置的值即为最佳分割阈值,选定阈值后,把分割出的肺部区域作为目标区域,其他区域作为背景区域,肺实质分割过程如图4所示。
图4 肺实质分割过程示意图Fig 4 Images in the process of pulmonary parenchyma segmentation
2.2.2 区域生长法分割肺部区域二值化后的肺部CT图像,没有把肺实质与图像背景精确分离开,肺实质外的信息还混淆在图像区域内,同时,肺实质区域边缘还包括一些气管、空洞等噪声,本文应用区域生长法定位肺实质边界并剔除噪声等干扰信息。
(1)区域生长法初步分割肺实质。首先,设定一个四邻域模板,从肺边界最左侧出发,比较生长点与待生长点的相似性,找到满足条件的种子点;其次,设定种子点的生长准则;最后,确定种子点在生长过程中的终止条件。经过分割后,肺实质周围大块的噪声被去除,接下来去除肺实质周围的气管等干扰信息。
(2)去除气管。在经过区域生长分割后,肺实质周围还有一些血管噪声,本文应用区域轮廓面积筛选法去除血管。先用边界跟踪算法记录肺实质完整轮廓,接着根据计算得到的轮廓面积判断边缘是否有气管,如果有应用数学形态学运算的腐蚀和膨胀操作去除噪声,去噪后肺轮廓区域显示结果如图4c所示。把去除噪声后得到的蒙板图像与原图像进行掩膜运算,得到最终分割的肺实质区域,如图4d所示。
常用的获取肺结节ROI方法有阈值法、聚类法[17]等,本文应用FCM算法提取ROI区域。首先,应用多尺度高斯滤波器增强结节和血管的形状,可比较清晰地区分血管端点及血管交叉区,降低检测肺结节假阳率。对图像进行增强的算法步骤如下:
(1)设滤波器的尺度个数N=5,肺结节直径范围d[d0,d1],d∈[4~30 mm],尺度大小由σ表决定,σ∈[d04,d14,],σ表的计算公式为:
(2)计算Hessian矩阵中λ1、λ2、λ3的特征值向量,并利用式(7)和式(8)计算结节(Eball)和血管(Eline)增强函数;(3)用增强函数得到的滤波器对图像的体素进行增强;(4)每个体素值达到最大后,循环到N=5,结束算法;(5)得到增强的结节和血管图像。
接下来应用聚类方法中的FCM算法提取肺结节的感兴趣区域。算法的步骤如下:(1)设定聚类个数c=3,常数p=2;(2)确定初始聚类中心值v;(3)应用式(11)计算隶属度函数u;(4)应用式(10)计算下一个聚类中心值v;(5)重复步骤(3)、(4)直到找到符合条件的v、u值,完成模糊聚类的划分,肺结节感兴趣区域提取过程如图5所示。
聚类后的分割结果里除了含有结节,还包含气管及其他组织器官等噪声,本文应用相关匹配法再次筛选疑似结节,减少非结节区域,获得包含结节的ROI。判断疑似结节区域的算法步骤如下:(1)可检测最小结节直径为4 mm,所以设定阈值的范围为T∈[50,150];(2)定义分割候选区的面积为R,对应的特征值为CR,若有CR>T,则R为目标区域,否则为非结节区域;(3)根据肺结节图像,设符合高斯分布的模板为w(x,y),通过模板扫描候选区图像f(x,y),寻找到相似区域后,记录模板左对角线下方的位置,即为疑似结节的点的坐标;(4)重复步骤(2)、(3)扫描整个候选区域,标记疑似结节位置的像素点,去除未标记的位置,并提取疑似结节区域,结果如图5c所示。
图5 肺结节感兴趣区域提取结果图Fig 5 Extraction of regions of interest of pulmonary nodules
肺结节分类识别分为3个步骤:特征选择与提取、训练分类器和测试分类器。即先把特征提取的数据生成训练样本集,然后对SVM模型进行分类训练及参数的优化,最后对测试样本数据进行分类识别。
2.4.1 肺结节特征选择与提取在提取后的ROI区域里,依然含有血管、气管等假阳性结节,为了精确检测并识别出肺结节,需要提取肺结节特征,去掉假阳性结节。有关肺结节的特征有很多种,但提取过多特征会使算法复杂化,分类效果也不理想。根据肺结节与血管在形状及三维空间上的差异性,本文主要以形状特征为主对肺结节特征进行提取。为了更全面地分析肺结节形态结构、局部特性,在建立三维形状模型的基础上,提取如下(4)、(5)、(6)新的三维特征。提取的特征如下所示:
(1)圆形度K。数值越接近1,区域形状越接近似圆形。P表示周长,A表示面积,公式为:
(2)细长度。候选区域长轴与短轴的比值。值越大越狭长,与血管的形状越接近。
(3)紧凑度(comp)。表示所选区域内切圆轮廓与外切圆轮廓的比值,比值越大,越接近血管的形状,反之,近似圆形。其中Rin为内切圆半径,Rout为外切圆半径,公式表示如下:
(4)球心距E2。表示所选区域中的像素点与球心距离的标准差,E2值越接近0,形状越接近球体,Ccen(Ai)表示区域的中心点,std表示计算标准偏差的函数,mean表示求数值的平均数。公式表示为:
(5)球形体积比E1(Ai)。表示所选区域与外接球体的体积VS(Ai)比,E1(Ai)越小,所选区域越接近球体形状,公式表示为:
(6)长方体交线平均距离E2()A:表示所选区域中心点Ccen(Ai)与外接长方体12条线中点dim(Li)距离的平均值,距离分布越均匀,越接近球体,公式表示为:
本文提取肺结节图像的部分特征,特征图如图6所示。肺结节特征提取部分数据如表1所示。
2.4.2 特征数据归一化处理提取样本数据的取值范围各不相同,给分类器训练数据带来了不便,为了使分类器在训练过程中不受数据的影响,根据表1数据值的特点,大部分数值范围在[0,1]之间,本文应用线性函数归一化方法把特征数据取值按照相同的权重映射到[0,1]之间。归一化方法定义如下:
图6 肺结节特征图Fig 6 Features of pulmonary nodules
表1 样本特征提取数据Tab 1 Sample feature extraction data
其中,x是归一化前数据集合D中任意元素,x*是x归一化后数据集合D*中元素,xmin、xmax分别表示归一化前数据集合D中最小及最大元素值。归一化后,特征数据的取值范围都在[0,1]之间,大大提高了SVM分类器收敛速度及分类识别精度。
2.4.3 SVM参数优化在进行分类训练之前,对式(14)和式(15)中(c,γ)参数进行优化,可以得到比较理想的分类结果。本文应用网络搜索方法遍历所有网格点来寻找最优参数。设定两个参数的取值范围,通过该范围内的数值创建合理间隔的网格模型,并采用10折交叉验证法得到c=2.0,γ=8.0时,分类准确率最好,确定了参数的最优值。
2.4.4 分类器训练与测试本文应用LIBSVM工具库对SVM分类器进行训练,该工具库提供的分类器模型支持MATLAB、C语言等多种语言。把特征提取后的320个样本数据集放入MATLAB环境中进行试验,选择其中190个作为训练样本数据,在超平面上应用分类函数对数据集进行分类,剩下的130个数据作为测试样本,对分类器进行测试,通过评价参数评判分类结果。
为了验证本方法的可行性和检测的有效性,从肺部影像数据库联盟(Lung Image Database Consortium,LIDC)中随机抽取120例图像,经专家标注有267个肺结节,其中假阳性结节88个,肺结节大小为4~30 mm,图像的大小为512*512,扫描层大约有30层。
本实验在Windows10操作系统,CPU:i7处理器,RAM:8 G,编程软件为MATLAB R2015a的环境中完成仿真实验。
通过上述一系列算法过程,肺结节被检测出来,并在原图像中用红色矩形区域标注,本文算法与文献[18-19]检测对比的3组结果如图7所示。
从检测结果可以看出,应用FCM聚类算法及图像增强技术能准确全面地提取肺结节ROI区域,再根据建立的三维形状模型,提取肺结节的三维特征,降低肺结节检测的假阳率,检测的准确率高于其它两种方法,有效地排除了交叉血管、条形血管等干扰。定义准确率、误判率两个参数评价检测结节效果,公式表示如下所示:
使用本文方法与文献[18-19]方法分别对随机抽取的120副图像中267个肺结节进行检测,具体检测结果如表2所示。
由表2数据对比可知,本文提出的方法在准确率上高于其它两种方法,而且通过增强肺结节及血管图像效果和提取三维肺结节特征,误判率也低于其它两种方法,实验结果证明,本文的方法是有效可行的。
为了评价SVM分类器识别性能,本文使用敏感度、特异度和准确率评价分类器,定义如下:
通过计算,应用SVM分类器对130个样本数据做测试,并与Cascio等[20]BP神经网络算法进行对比,得出评价指标的计算结果如表3所示。
由表3数据可知,应用SVM模型分离肺结节的特异度和准确率都略高于BP神经网络方法,敏感度略低的原因是SVM中提取特征少于BP神经网络,但SVM检测时间及收敛速度都高于BP神经网络,同时,SVM参数优化及采用交叉验证法保证了分类的准确性。
图7 肺结节检测结果图Fig 7 Flow chart of pulmonary nodules detection
表2 本文方法与现有两种方法性能对比Tab 2 Performance comparison among the proposed method and two existing methods
表3 评价数据结果对比Tab 3 Comparative analysis of evaluation indexes
本文针对二维空间肺结节检测困难及准确率低等问题,提出一种增强滤波器和三维特征肺结节检测和识别方法。经过仿真实验及数据比较,该算法能高效、准确地检测并识别出肺结节。但算法也存检测敏感性不够高的问题,主要原因是本文只针对肺结节的形状特征进行提取,但没有对纹理等特征进行提取,针对一些对比度低的毛玻璃型或者无规则形状的毛刺型结节的检测并不理想,因此,对肺结节纹理等特征的提取及研究是后续一个发展研究方向。