张惠惠,黄炜嘉,张正言,李 锋
(江苏科技大学海洋学院,江苏 镇江 212100)
肝病一直是一种常见的高危险性疾病,肝病的发现阶段通常在中后期,主要以积极预防为主。为了更好地分析肝脏CT图像,研究人员一直在探索新的无创方法用于诊断肝脏疾病。纹理分类是影像组学的重要部分,通过分析图像像素间的关系表达其纹理特征。
近年来,许多研究者将纹理分类应用到医学图像分类中,以获得更好的分辨率和特征提取率。Suganya等[1]利用灰度共生矩阵(GLCM)对肝脏超声图像进行分类,验证了支持向量机的分类器拥有更好的准确率。胡彦婷等[2]提出了一种结合纹理特征提取和稀疏编码的分类方法,有效实现肝包虫病CT图像的自动分类。Li等[3]利用灰度共生矩阵和小波变换等对MRI图像进行特征计算,训练了四种对肿瘤类型分类影响最大的纹理特征的监督分类算法,验证模型的可靠性。Sharma等[4]通过不同的描述符提取图像纹理特征,采用互信息(MI)特征选择方法对肝脏超声图像分类。邱甲军等[5]利用小波系数对肝细胞癌和正常肝组织的统计结果进行两次离散化,并采用直方图、共生矩阵和游程长度矩阵进行特征提取,以获得更好的分类性能。目前,对于正常和异常肝脏CT图像的分类方法层出不穷。而肝功能正常和异常的CT图像在视觉上差异较小,难以区分,这对特征表达能力提出了更高的要求。
在图像局部特征提取方面,局部二值模式(Local Binary Pattern,LBP)[6]由于其方法简单、计算复杂度低而被广泛应用。基于LBP的改进在医学图像领域也得到广泛应用,Tan等[7]提出局部三值模式(Local Ternary Pattern,LTP)引入阈值t对图像进行三值编码,有效提高了对光照和噪声的鲁棒性。Ahmed等[8]在LTP的基础上提出了梯度局部三值模式(Gradient Local Ternary Pattern,GLTP),使用Sobel算子检测图像的边缘,然后进行三值提取,最后获得低计算量、高分辨率的纹理信息。Bashar等[9]提出中值三值模式(MTP)通过阈值化局部灰度中值,将每个像素周围的邻域强度值量化为三个不同的级别,对局部邻域的纹理信息进行编码,提高灰度表达能力。Yang等[10]提出了一种改进的韦伯局部描述子(IWBC),通过引入新的Weber分量和方向分量来更有效和准确地表示局部模式,采用基于块的fisher线性判别法对提取的特征降维,提高其识别能力。Liu等[11]通过比较图像中像素的中值关系,计算中值鲁棒扩展局部二值模式 (MRELBP),从而获得更多层面的纹理信息。上述方法主要通过对中心像素与相邻像素之间的关系进行编码,没有考虑邻域变化信息。
本文提出了一种邻域均值局部三值方向模式(Neighborhood Average Local Ternary Direction Pattern,NALTDP),用于肝功能正常、异常CT图像的分类识别。首先对肝脏CT图像预处理,提取感兴趣区域;然后,利用中心像素在相邻八个方向上邻域变化的相关性计算邻域均值,并对邻域均值进行三值模式和方向模式的编码后级联;最后统计直方图,采用支持向量机(SVM)分类识别,整体流程图如图1。
图1 整体流程图
本文的实验数据来自江苏省人民医院患者的肝脏CT检查影像,包括肝功能“正常”和肝功能“异常”的CT图像。首先,对像素大小为512×512的肝脏CT图像提取像素大小为38×38的感兴趣区域(ROI),在提取ROI的过程中,1)避开血管区域;2)避开肿瘤区域。然后,计算感兴趣区域的CT值,如下方法:
CT=pixel×slope+intercept
(1)
其中,pixel代表该像素点的值,slope、intercept是两个DICOM Tag信息中的坐标数值。
将该数值存放在对应的目录下,并存为txt格式。最后,实验共采集1680张肝脏CT图像,其中肝功能正常和肝功能异常的CT图像各840张,建立数据集。
考虑中心像素邻域变化信息与方向性信息,提出了邻域均值局部三值方向模式(Neighborhood Average Local Ternary Direction Pattern,NCLTP)。首先,对输入图像进行邻域均值计算;然后,对分别对其进行三值化和方向化编码;最后,将直方图级联得到NALTDP特征。邻域均值局部三值方向模式特征提取的过程如图2。
图2 邻域均值局部三值方向模式特征提取过程
由于现有方法没有考虑中心像素的邻域变化信息,因此提出了邻域均值局部三值模式(Neighborhood Average Local Ternary Pattern,NALTP)。使用中心像素在相邻八个方向上的邻域变化的相关性来计算NALTP的邻域均值。
给定一个位于3×3正方形邻域内的中心像素值Ci,其八个方向的邻域像素值为Ap,p=1:8,如图3。NALTP的邻域均值就是中心像素值与相邻八个方向像素值的差的绝对值之和再求平均。计算公式如下方法:
图3 邻域差值计算
(2)
其中,Ni是NALTP的邻域均值。
NALTP包括邻域八个方向相关差值以及中心像素。NALTP采用局部三值模式(LTP)的概念进一步转换为2个二值模式如下方法
(3)
其中,c是中心像素的值,i是相邻像素的值,t是阈值。
NALTP的计算过程如图4,为了拥有更好的鲁棒性,将每个NALTP分为上半部分(NALTP_U)和下半部分(NALTP_L)如下方法
图4 NALTP的计算过程
(4)
(5)
(6)
(7)
对图像中的每个像素,NALTP_U和NALTP_L的图像大小为M*N。计算NALTP_U和NALTP_L的两个部分,并建立其直方图[11]如下方法
(8)
(9)
(10)
最后,在生成两个部分的直方图后将两者级联,获得整个图像的直方图如下方法
hNALTP=hNALTP_U+hNALTP_L
(11)
为了突出像素的邻域信息变化和方向信息,提出了邻域均值局部方向模式(Neighborhood Average Local Direction Pattern,NALDP)。利用中心像素在八个方向上的邻域变化的相关性计算NALDP的邻域均值,并利用垂直和水平方向编码方法获得方向信息。
给定一个位于3×3正方形邻域内的中心像素值Ci,其八个方向的邻域像素值为Ap,p=1:8,NALDP邻域均值的计算公式如式(2)。
对于一个N×N像素的区域,每一个3×3像素的区域进行邻域均值的计算,得到一个由中心像素Ni,i=1:N-2构成的(N-2)×(N-2)像素的正方形区域,将该区域记为N。
在区域N内,在3×3像素的区域内,中心像素值记为H5,相邻像素值以水平编码方式分别记为[H1、H2、H3、H4、H6、H7、H8、H9]如图5。水平差值的计算公式如下方法
图5 水平差值计算
Ii,i=1:8=Hi+1-Hi
(12)
其中,Ii是NALDP的水平差值。
水平编码的计算公式如下方法:
(13)
(14)
在区域N内,给定一个3×3像素的区域,中心像素值记为V5,相邻像素值以垂直编码方式分别记为[V1、V2、V3、V4、V6、V7、V8、V9] 如图6。垂直差值的计算公式如下方法
图6 垂直差值计算
Ji,i=1:8=Vi+1-Vi
(15)
其中,Ji是NALDP的垂直差值。
垂直编码的计算公式如下方法
(16)
(17)
NALDP的整个计算过程如图7,将NALDP分为水平部分(NALDP_H)和垂直部分(NALDP_V),建立两个部分的直方图并将两者级联,获得整个图像的直方图,如下方法:
图7 NALDP的计算过程
hNALDP=hNALDP_H+hNALDP_V
(18)
NALTDP的计算过程如图8,为了拥有更加鲁棒的描述符,将NALTP和NALDP结合,提出一种新的邻域均值局部三值方向模式(NALTDP)。既能突出邻域像素信息的变化又能表达纹理特征的方向性信息。
图8 NALTDP的计算过程
给定一个位于3×3正方形邻域内的中心像素值Ci,其八个方向的邻域像素值为Ap,p=1:8,NALTDP邻域均值的计算公式如式(2)。
对于一个N×N像素的区域,每一个3×3像素的区域进行邻域均值的计算,得到一个由中心像素Ni,i=1:N-2构成的(N-2)×(N-2)像素的正方形区域,将该区域记为N。
在区域N内,将NALTDP转换为2个二值模式,如式(3)所示。为了拥有更好的鲁棒性,将NALTDP分为上半部分(NALTDP_U)和下半部分(NALTDP_L),如式(4-7)所示。
在区域N内,任一个3×3像素的区域,中心像素值记为H5,相邻像素值以水平编码方式分别记为[H1、H2、H3、H4、H6、H7、H8、H9],以垂直编码方式分别记为[V1、V2、V3、V4、V6、V7、V8、V9],将每个NALTDP分为水平部分(NALTDP_H)和垂直部分(NALTDP_V),如式(12-17)所示。
对图像中的每个像素,建立上部、下部、水平和垂直四个部分的直方图,并将其级联,获得整个图像的直方图如下方法:
hNALTDP=hNALTDP_U+hNALTDP_L+hNALTDP_H+hNALTDP_V
(19)
NALTDP计算过程的示例如下:
输入:肝脏CT图像
输出:分类识别率
1)预处理:提取38×38像素大小的肝脏CT图像的感兴趣区域,并将其按正常、异常分类得到数据集;
3)在区域N内,计算三值编码:在3×3邻域中采用阈值t计算上部编码(NALTDP_U)和下部编码(NALTDP_L);
4)在区域N内,计算方向编码:在3×3邻域中利用水平和垂直的编码方式,计算水平编码(NALTDP_H)和垂直编码(NALTDP_V);
5)将编码图像划分为m×n个子块;
6)计算每个子块三值编码和方向编码的NALTDP直方图;
7)将各区域的上部、下部、水平和垂直的NALTDP直方图级联,拼接成NALTDP特征向量;
8)使用PCA为特征向量降维;
9)将其送入SVM进行训练;采用10折交叉验证,计算出图像的分类识别率;
提出的NALTDP不同于经典的LTP及其改进方法,NALTDP表达了中心像素在相邻各个方向上的邻域变化关系以及方向信息。因此,与现有的描述符相比,NALTDP可以捕获更多层次的空间信息。如图9,NALTDP对肝脏CT图像提取更多的纹理信息,突出图像的差异性。
图9 编码后的结果图
本文实验环境:Windows 10操作系统,MATLAB R2016a编程环境。实验所用的肝脏CT图像数据来自江苏省人民医院。实验采用10折交叉验证的方法,将10组的识别率取平均值作为最终识别率。
不同级联方式下分类的实验结果如图10,提出的邻域均值三值方向模式(NALTDP)是邻域均值三值模式(NALTP)和邻域均值方向模式(NALDP)级联而成。为了分析不同级联方式对分类结果的影响,分别对NALTP、NALDP和NALTDP三种描述符进行了实验。
图10 不同级联方式下的识别率
实验结果表明,级联三值模式和方向模式的描述符拥有较高的分类识别率,分类识别率可达78.88%。
GLTP、MTP以及NALTDP描述符都是在LTP的基础上改进且存在阈值t,阈值t的选取对实验结果产生影响。为了验证本算法的有效性,四种不同特征描述符在不同阈值t(1~10)时对肝功能“正常”和“异常”CT图像的分类识别率如图11。
图11 不同阈值下的识别率
实验结果表明,当降维参数为1,分块大小为9×9,从实验结果可以看出,本文提出的方法在不同阈值下的识别率都高于LTP、GLTP 、MTP描述符。当阈值t取9时,NALTDP的识别率最高为79.12%,能更好地描述肝脏CT图像的纹理特征。
为了降低特征维度,对提取的特征基于主成分分析(PCA)方法进行降维。降维参数在0.8 ~ 0.99范围内,分别基于LBP、GDP2、LTP、IWBC、MRELBP、LGDNHS和NALTDP进行的肝功能“正常”和“异常”CT图像的分类识别率如图12。其分块大小为7×7,阈值为10。
图12 不同降维参数下的识别率
实验结果表明,当特征维度开始下降时,LBP、GDP2、LTP描述符的识别率会有所提高,而IWBC、MRELBP、LGDNHS、NALTDP描述符的识别率会降低。总体而言,随着特征维度的降低,NALTDP描述符的识别率还是高于其它描述符。当降维参数为0.8时,NALTDP的识别率最高且为79.24%。
为了分析不同特征描述符对分类结果的影响,本文对7种不同描述符进行了实验。将图像分为3×3、5×5、7×7、9×9和11×11个子块时,不同特征描述符分类识别的实验结果见表1。
表1 不同描述符下的识别率(%)
从表1可以看出,本文提出的方法在不同分块大小下的识别率都高于其它描述符。当图像分为11×11个子块时,NALTDP的分类识别率最高,识别率为78.88%。说明对于本算法,将图像分为较大的子块,可以获得更有代表性的特征。
针对肝功能正常和异常CT图像之间差异性较小问题,提出一种新的描述符——邻域均值局部三值方向模式(NALTDP)。利用中心像素各个方向的邻域变化信息和方向信息,对图像纹理进行特征提取。NALTDP描述符表达了更多层次的局部纹理信息,放大图像间的差异性。实验表明,在不同参数情况下,与已有的几种方法相比,NALTDP对肝功能正常和异常CT图像的分类识别率明显更高。该方法具有良好的鲁棒性和有效性,未来可应用到其它纹理分类领域。