针对图像分类的各种深度神经网络模型发展迅速,但是在训练样本极少的情况下,深度学习模型普遍无法取得良好的样本外表现。纹理是医学影像中图像识别的关键特征,本文使用灰度共生矩阵(Gray Level Co-Occurrence Matrix, GLCM)提取胸部X光片的纹理特征,与预训练的ResNet50提取的特征进行融合,最后使用机器学习分类模型对胸部X光片进行肺炎识别。在本文的7种分类算法下,使用逻辑回归分类取得了最好的结果,该模型仅使用灰度共生矩阵提取的特征的分类准确率为80%,使用预训练的ResNet50提取的特征的分类准确率为90%,融合特征分类准确率为92.5%。实验结果显示,与仅使用一种方法提取特征的分类结果相比,融合特征再分类的方法使准确率有明显的提高。 Various deep neural network models for image classification have developed rapidly, but deep learning models generally cannot achieve good out-of-sample performance with very few training samples. Texture is a key feature of medical images in image recognition, we use GLCM to extract texture features from chest X-rays, which are fused with the features extracted from pretrained ResNet50. Finally, a machine learning classification model is used to recognize pneumonia from chest X-rays. Among the seven classification algorithms in this article, the best results were achieved using Logistic Regression. The classification accuracy of the model is 80% for features extracted using only the GLCM, 90% for features extracted using pre-trained ResNet50, and 92.5% for fused features. The experimental results show that compared to the classification results using only one method to extract features, the fusion feature re-classification method significantly improves the accuracy.
针对图像分类的各种深度神经网络模型发展迅速,但是在训练样本极少的情况下,深度学习模型普遍无法取得良好的样本外表现。纹理是医学影像中图像识别的关键特征,本文使用灰度共生矩阵(Gray Level Co-Occurrence Matrix, GLCM)提取胸部X光片的纹理特征,与预训练的ResNet50提取的特征进行融合,最后使用机器学习分类模型对胸部X光片进行肺炎识别。在本文的7种分类算法下,使用逻辑回归分类取得了最好的结果,该模型仅使用灰度共生矩阵提取的特征的分类准确率为80%,使用预训练的ResNet50提取的特征的分类准确率为90%,融合特征分类准确率为92.5%。实验结果显示,与仅使用一种方法提取特征的分类结果相比,融合特征再分类的方法使准确率有明显的提高。
图片分类,小样本,灰度共生矩阵,ResNet50
Xiao Zhu1, Jing Xu2, Xinmin Li1*
1School of Mathematics and Statistics, Qingdao University, Qingdao Shandong
2Qingdao Medicon Digital Engineering Co., Ltd., Qingdao Shandong
Received: Jan. 26th, 2024; accepted: Feb. 22nd, 2024; published: Feb. 29th, 2024
Various deep neural network models for image classification have developed rapidly, but deep learning models generally cannot achieve good out-of-sample performance with very few training samples. Texture is a key feature of medical images in image recognition, we use GLCM to extract texture features from chest X-rays, which are fused with the features extracted from pre-trained ResNet50. Finally, a machine learning classification model is used to recognize pneumonia from chest X-rays. Among the seven classification algorithms in this article, the best results were achieved using Logistic Regression. The classification accuracy of the model is 80% for features extracted using only the GLCM, 90% for features extracted using pre-trained ResNet50, and 92.5% for fused features. The experimental results show that compared to the classification results using only one method to extract features, the fusion feature re-classification method significantly improves the accuracy.
Keywords:Image Classification, Small Sample, GLCM, ResNet50
Copyright © 2024 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
肺炎是一种可能由细菌、真菌、病毒等引起的肺部炎症。它是呼吸系统的常见病,多发在老人和儿童等免疫系统差的人群中,病况严重时还有可能危及生命。胸腔X射线中肺部出现浸润现象是诊断肺炎的黄金标准,在肺炎高发期,医生工作艰巨繁重,因此计算机辅助诊断成为热点研究问题。
对于胸部X光片中肺炎的识别,传统方法在解决分类问题之前首先需要进行特征提取,然后利用分类算法,实现正常图像或是肺炎图像的识别。传统特征提取主要包括颜色、纹理、形状三个方面。对于识别肺炎来说,纹理特征尤其重要。早期纹理特征提取方法包括灰度共生矩阵(GLCM) [
作为目前计算机视觉分类的主流研究方法,深度学习方法表现出强大的竞争力。这一系列方法不仅在普通图像的特征提取和分类方面的效果较好,也在医学图像分析中取得了一定的成果。由于医学图像的相似度非常高,所以相比普通图像,医学图像的特征提取难度更大。但是深度神经网络有着强大的自动内部调节参数的能力,通过大型数据集上训练得到的卷积神经网络也能应用到新的领域,而且具有良好的适应性。此外,通过大规模数据集上预先训练的CNN模型学习的特征在图像分类任务中非常有用,并成为提升医学图像分类识别效率的突破口。研究证明ResNet50在识别肺炎方面具有较大的潜力,Narin等 [
近年来,基于小样本的图像分类大多都首先利用数据增强扩充数据,再进行深度学习,这是因为训练深度神经网络往往会受到数据集大小及样本均衡问题的影响。在医学领域,数据的获取是非常困难的,一方面,输入神经网络的图像往往需要标签信息,这需要资深的影像科医生对图像进行标注,标注成本非常高;另一方面,由于医学图像会涉及到病人隐私等问题,图像获取难度比较大。除此之外,训练神经网络对计算机资源的要求较高,普通计算设备并不能完成网络训练。基于上述问题,如何利用小样本图像数据,在节省算力的同时实现肺炎图像的准确分类成为研究重点。
在肺炎识别中,特征是分类的关键,我们可以使用传统方法与深度神经网络分别提取特征,再进行特征融合的手段对胸片特征进行充分提取,最后使用机器学习分类算法实现肺炎识别。本文工作从特征提取的不同角度出发,结合分类算法研究了小样本情况下胸部X光片是否出现肺炎的分类问题。文章内容结构安排如下,第2节介绍了灰度共生矩阵以及利用相关统计量作为特征进行肺炎识别的结果,第3节介绍ResNet50网络结构及利用该网络提取的抽象特征进行肺炎识别的结果,第4节给出融合特征在多种机器学习分类算法下的实验结果,最后在第5节给出结论。
灰度共生矩阵(GLCM)的统计方法是20世纪70年代初由R. Haralick等 [
图1. 灰度共生矩阵几何表达
如图1所示:x方向是图像的列,y方向是图像的行, f ( x , y ) = i 为坐标 ( x , y ) 处的像素值,我们需要统计的是距离 ( d x , d y ) 处 f ( x + d x , y + d y ) = j 的次数,由于 ( d x , d y ) 的选择不同,则会导致角度的不同,一般会选择0˚,45˚,90˚,135˚,并且方向是双向的。
由于灰度共生矩阵的维度较大,一般不会直接作为区分纹理的特征,而是基于它构建一些统计量作为纹理分类特征。在这里使用到如下六个统计量:
1) 对比度(Contrast)
Contrast= ∑ i ∑ j ( i − j ) 2 P ( i , j ) 。
对比度直接反映了某个像素值及其领域像素值亮度的对比情况,即图像的清晰度和纹理沟纹深浅的程度。如果灰度共生矩阵偏离对角线的元素有较大值,即灰度差大的像素对越多,说明图像亮度值变化很快,则Contrast会有较大取值。具体地,纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。
2) 相异性(Dissimilarity)
Dissimilarity = ∑ i ∑ j | i − j | P ( i , j ) 。
计算对比度时,权重随矩阵元素与对角线的距离以指数方式增长,如果改为线性增长,则得到相异性。
3) 角二阶矩(Angular Second Moment, ASM)
ASM = ∑ i ∑ j P ( i , j ) 2 。
角二阶矩即为灰度共生矩阵元素的平方和,反映了图像灰度分布均匀程度和纹理粗细度。当图像纹理比较规则时,灰度共生矩阵的值集中在某一块(例如,连续灰度值图像,值集中在对角线附近;结构化的图像,值集中在偏离对角线的位置),此时ASM有较大值,若灰度共生矩阵中的值分布较均匀(如噪声严重的图像),则ASM有较小的值。
4) 能量(Energy)
Energy = ASM 。
5) 自相关(Correlation)
Correlation = ∑ i ∑ j ( P ( i , j ) 2 ( i − Mean ) ( j − Mean ) ) / Variance 。其中, Mean = ∑ i ∑ j ( i P ( i , j ) ) / L 2 , Variance = ∑ i ∑ j ( i − Mean ) 2 P ( i , j ) 。
自相关反应了图像纹理的一致性。如果图像中有水平方向纹理,则水平方向矩阵的Correlation大于其余矩阵的Correlation值。它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵元素值相差很大,则相关值小。
6) 逆方差(Homogeneity)
Homogeneity = ∑ i ∑ j P ( i , j ) / ( 1 + ( i − j ) 2 ) 。
逆方差反映了图像纹理局部变化的大小,若图像纹理的不同区域间较均匀,变化缓慢,逆方差会较大,反之非均匀图像的逆方差值较小。与对比度相反,逆方差的权重随着元素值与对角线的距离变大而减小,并且是以指数形式减小。
本文图片来自kaggle网站的一个数据集,其中包括正常肺图片和肺炎图像两类。随机选择正常肺图片和肺炎图像各100张,按照8:2划分为训练集和测试集,即训练集160张,测试集40张,并将不同尺寸的图片缩放至256 × 256。以下实验使用相同的训练集与测试集。
首先对缩放至256 × 256的图片使用Skimage Feature中的Graycomatrix函数,在距离为2的情况下,计算0˚,45˚,90˚,135˚四个方向上的灰度共生矩阵,再利用Graycoprops函数,计算对比度(Contrast)、相异性(Dissimilarity)、角二阶矩(Angular Second Moment, ASM)、能量(Energy)、自相关(Correlation)、逆方差(Homogeneity)六个统计量。最终每张图片统计量的结果取四个方向上的平均值,由此根据灰度共生矩阵得到每张图片关于纹理的六个特征。在这里,我们不关心特征之间的共线性,只关心所有特征的预测结果。基于上述提取的特征,使用KNN、逻辑回归、决策树、支持向量机、随机森林、XGBoost、LightGBM分类模型进行训练和测试,实验结果如表1所示。
图2. 灰度共生矩阵提取特征下的ROC曲线
图3. 灰度共生矩阵提取特征下的P-R曲线
KNN | 逻辑回归 | 决策树 | 支持向量机 | 随机森林 | XGBoost | LightGBM | |
---|---|---|---|---|---|---|---|
ACC | 0.750 | 0.800 | 0.625 | 0.800 | 0.700 | 0.775 | 0.775 |
P | 0.813 | 0.833 | 0.632 | 0.800 | 0.722 | 0.789 | 0.824 |
R | 0.650 | 0.750 | 0.600 | 0.800 | 0.650 | 0.750 | 0.700 |
F1 | 0.722 | 0.789 | 0.615 | 0.800 | 0.684 | 0.769 | 0.757 |
表1. 灰度共生矩阵提取的特征分类结果
注:ACC表示准确率(accuracy),P表示精确率(precision),R表示召回率(recall),F1表示F1分数(F1 score),P、R、F1均是肺炎图像为正例情况下的结果。
从表1中可以看到,在仅使用灰度共生矩阵提取特征的情况下,使用逻辑回归和支持向量机分类在七种算法中取得了最高的准确率,结果为80%。
准确率虽然最直观,但存在明显的缺陷。ROC曲线(Receiver Operating Characteristic Curve)能够更清晰地描述分类器的性能,它显示了在不同阈值下分类器的真阳性率(True Positive Rate, TPR)和假阳性率(False Positive Rate, FPR)之间的关系。图2为灰度共生矩阵提取特征下的ROC曲线,其中ROC曲线的横坐标为FPR,在本文中表示正常图片中被判定为肺炎图像的比例;纵坐标为TPR,表示所有肺炎图像中被识别出来的比例。
由图2中可以看出,ROC曲线中的线均高于对角线,它们交叉在一起,不能很好的判断分类器的性能,但是从AUC结果上可以看出,LightGBM模型的AUC最大,据此判断其分类性能最好。图3为灰度共生矩阵提取特征下的P-R曲线,可以用于寻找分类器在精确率与召回率之间的权衡。由图3可以看出,召回率在0.9以上时,LightGBM模型在精确率上的表现都优于其他模型。
ResNet [
图4. 残差学习模块
ResNet提出了五个不同深度的模型分别为ResNet18、ResNet34、ResNet50、ResNet101、ResNet152。在本文中我们选择ResNet50作为特征提取器,图5为ResNet50网络结构。
图5. ResNet50网络结构
ResNet50输入维度是224 × 224 × 3,即尺寸为224 × 224的三通道图片。首先是layer0,这部分在各个网络中都相同,由一个7 × 7,步长为2的卷积层、批归一化层(Batch Normalization,简记为BN)、ReLU激活函数和3 × 3,步长为2的最大值池化层组成,在图5 ResNet50网络结构中表示为CBR和MP (Maximum pooling)。layer0输出大小为56 × 56 × 64的特征图。
其次依顺序是layer1、layer2、layer3、layer4,分别由3,4,6,3个bottleneck (即残差模块)构成,bottleneck如图2所示。略有差异的是,layer1第一个bottleneck的恒等连接通过CB结构改变通道数;layer2、layer3、layer4第一个bottleneck的恒等连接通过CB结构改变通道数并进行下采样操作。最终layer4输出7 × 7 × 2048的特征图。
接着是平均池化层(Average Pooling, AP),最后是全连接层输出维度为1000,本文在使用预训练的ResNet50提取特征时将全连接层的输出改为2048维。
由于胸部X光片特征差异小,使用灰度共生矩阵方法提取特征数量较少,而通过大规模数据集上预先训练的CNN模型学习的特征在图像分类任务中非常有用,因而以此为突破口,选取预训练的ResNet50作为特征提取器,并修改最后的全连接层,对每张图片输出一个2048维的特征向量。我们使用文献 [
图6. ResNet50热力图
从图6中可以看到,预训练的ResNet50特征提取在原图中虽然有少量关注点在颈部,但是可以看出主要关注点在肺部区域,能够比较充分的提取到肺部的细微特征。由于提取特征数量太多,会因为特征维数大使模型无法训练或者效果不好,所以使用lasso方法对特征进行筛选,最终筛选得到124个特征。利用提取的124个抽象特征结合上述机器学习分类算法进行图片分类,结果如表2所示。
图7. ResNet50提取特征下的ROC曲线
图8. ResNet50提取特征下的P-R曲线
从表2中可以看到,在仅使用预训练ResNet50提取特征的情况下,使用逻辑回归分类器在七种算法中取得了最高的准确率,结果为90%。图7为ResNet50提取特征下的ROC曲线,由图7 ROC曲线中可以看出,相比其余五种模型,表示决策树模型和LightGBM模型的曲线偏离对角线程度较小,曲线下的面积(即AUC)较小,分类效果较差;图8为ResNet50提取特征下的P-R曲线,在图8 P-R曲线中可以看到上述两种模型在精确率和召回率上的表现也较差。结合准确率和AUC结果可以判断逻辑回归模型在七种分类器中的性能最好。
KNN | 逻辑回归 | 决策树 | 支持向量机 | 随机森林 | XGBoost | LightGBM | |
---|---|---|---|---|---|---|---|
ACC | 0.850 | 0.900 | 0.625 | 0.850 | 0.850 | 0.850 | 0.725 |
P | 0.850 | 0.900 | 0.632 | 0.818 | 0.889 | 0.889 | 0.696 |
R | 0.850 | 0.900 | 0.600 | 0.900 | 0.800 | 0.800 | 0.800 |
F1 | 0.850 | 0.900 | 0.615 | 0.857 | 0.842 | 0.842 | 0.744 |
表2. 预训练ResNet50提取的特征分类结果
为了验证提出的特征融合方法对于小样本肺炎图像分类的效果,我们使用准确率、精确率、召回率、F1分数对结果进行测评,其公式如下。 accuracy = T P + T N T P + F P + T N + F N , precision = T P T P + F P , recall = T P T P + F N , f 1 = 2 precision × recall precision + recall 。其中,TP (True Positive)表示预测正确的正样本的数量;FP (False Positive)表示真实为负样本,被错误预测成正样本的数量;TN (True Negative)表示预测正确的负样本的数量;FN (False Positive)表示真实为正样本,被错误预测成负样本的数量,在这里,肺炎图像为正样本,正常图片为负样本。
将使用预训练的ResNet50提取的124个特征与灰度共生矩阵得到的6个特征统计量合并,得到肺炎分类的130个特征。再使用上述相同分类算法进行训练和测试,实验结果如表3所示。
图9. 融合特征下的ROC曲线
图10. 融合特征下的P-R曲线
KNN | 逻辑回归 | 决策树 | 支持向量机 | 随机森林 | XGBoost | LightGBM | |
---|---|---|---|---|---|---|---|
ACC | 0.875 | 0.925 | 0.725 | 0.875 | 0.850 | 0.850 | 0.825 |
P | 0.895 | 0.947 | 0.737 | 0.895 | 0.889 | 0.889 | 0.933 |
R | 0.850 | 0.900 | 0.700 | 0.850 | 0.800 | 0.800 | 0.700 |
F1 | 0.872 | 0.923 | 0.718 | 0.872 | 0.842 | 0.842 | 0.800 |
表3. 融合特征的分类结果
从表3中可以看到,在融合灰度共生矩阵提取的特征与预训练的ResNet50提取的特征的情况下,使用逻辑回归分类在七种算法中取得了最高的准确率,结果为92.5%,与仅使用灰度共生矩阵提取的特征相比,准确率提高了12.5%;与仅使用预训练的ResNet50提取的特征相比,准确率提高了2.5%。另外,KNN、决策树、支持向量机、LightGBM在融合特征下的准确率相对于单独使用一种特征提取方法的结果都有明显的提高。我们也可以从精确率(precision),召回率(recall),F1分数(F1 score)三个指标看出,在融合特征下使用逻辑回归分类器比其他分类器更有优势,使用融合特征后分类效果明显改善。该结果可以从ROC曲线和P-R曲线中得到验证:
图9为融合特征下的ROC曲线,从图9中可以清晰地看到在七种分类器下,橙线偏离对角线的程度最大,其代表的逻辑回归模型的AUC在七种分类器下达到最大值0.9775;图10为融合特征下的P-R曲线,从图10中也能够看出橙色曲线将其他曲线完全包住,逻辑回归模型的分类性能最优。
仅使用灰度共生矩阵提取的特征数量较少,对胸部X光片肺部区域的特征提取不够充分;而仅使用ResNet50提取的是抽象特征,虽然特征数量较多,但是缺少具体可描述性特征,二者都存在特征不充分的问题。实验证明融合特征表现出较好的结果。图11为本文提出的肺炎诊断算法。肺炎图像经过灰度共生矩阵提取可描述的六个统计纹理特征,同时输入预训练的ResNet50提取图像中肺部区域的细微特征,并使用lasso方法对高维抽象特征进行降维,然后进行特征融合,最后基于融合特征使用逻辑回归分类器进行分类,提出的算法对小样本的分类效果较好。
图11. 肺炎诊断算法
医学影像数据集获取难度大,深度学习模型要求海量的数据且计算成本非常高。本文提出了一种基于灰度共生矩阵和深度神经网络特征融合的小样本肺炎诊断算法。根据本文的实验结果,融合灰度共生矩阵提取的特征与ResNet50提取的特征再进行图片分类有较高的准确率。在逻辑回归模型中,使用这种融合特征的分类准确率达到92.5%,AUC值为0.9775,与仅使用灰度共生矩阵提取特征相比,准确率提高了12.5%,AUC提高了0.115;与仅使用预训练的ResNet50提取的特征相比,准确率提高了2.5%,AUC提高了0.015。在实际中ResNet50也可以替换为其他深度神经网络的特征提取,比如VGG [
朱 晓,徐 静,李新民. 基于GLCM和深度神经网络特征融合的小样本肺炎诊断算法A Small Sample Pneumonia Diagnosis Algorithm Based on Feature Fusion of GLCM and Deep Neural Network[J]. 计算机科学与应用, 2024, 14(02): 489-500. https://doi.org/10.12677/CSA.2024.142049
https://doi.org/10.1109/TSMC.1973.4309314
https://doi.org/10.1109/TPAMI.2002.1017623
https://doi.org/10.1109/CVPR.2005.177
https://doi.org/10.5565/rev/elcvia.1277
https://doi.org/10.1109/SACVLC53127.2021.9652248
https://doi.org/10.1016/j.media.2011.05.006
https://doi.org/10.1007/s10044-021-00984-y
https://doi.org/10.1007/s13369-021-06127-z
https://doi.org/10.1109/CVPR.2016.90
https://doi.org/10.1109/CVPR.2016.319