1. 引言
胸透X光(即X光检查)作为放射学中最常见的检查,是检测和可视化身体器官异常的有效诊断工具,全球每天都有大量人肺部患病或因肺部出现问题而死亡,需要对大量患者进行肺部检测,胸透X光和胸部CT是诊断相关问题的有效成像技术。深度学习技术提供了有用的分析来研究大量胸透X光图像,开发计算机辅助诊断系统(Computer Aided Diagnosis, CAD)对协助临床医生做出正确的判断有重要意义 [1] [2] 。
国内外以卷积神经网络(Convolutional Neural Network, CNN)为主的深度学习技术已经广泛应用于医学图像处理领域,如先后提出的两份胸透X光数据集“Chest-ray14” [3] 和“Chest-ray8” [4] 。许多研究已提出用深度学习模型以检测肺癌和其他肺部疾病。Bharati [5] 等人提出VDSNet的新混合深度学习框架,用于从X射线图像中检测肺部疾病。Que [6] 和周 [7] 等人通过迁移学习,从NIH Chest-ray8中二分类识别心脏肥大病理;Aviel [8] 和王 [9] 等人利用深度卷积神经网络对NIH Chest-ray8中进行二分类气胸病理识别,相关研究证明了图像分类方法在医学领域上也能适用 [10] 。但主要研究均为单个病理的二分类问题,没有实现多分类研究。为此,本文受Tammina [11] 等人通过深度卷积网络和VGG-16迁移进行图像分类的迁移学习、Woo [12] 的卷积块注意模块思想、Sitaula [13] 等人在VGG-16网络上施加注意力机制方法实现COVID-19胸部X射线的图像分类方法、以及特征融合思想 [14] [15] [16] 的启发,提出了基于注意力特征融合VGG-16网络的胸透病理识别方法。
本文的重要贡献和创新如下:
1) 在VGG-16模型上并行施加通道注意力和空间注意力得到特征向量A、B以及提取VGG-16第一层浅层语义信息特征向量C。
2) 结合特征融合向量拼接方法,先将特征向量A和特征向量B拼接,然后拼接特征向量C。降低网络深度带来的浅层语义丢失问题,增强VGG-16模型分类能力。
2. 数据源选择与预处理
本文使用“ChestX-ray8”新胸部X光数据库,它包括1992年至2015年从32,717名独特患者身上拍摄的108,948张正面视图X光图像。每个图像通过自然语言处理(NLP)技术来注释,疾病标签包括Atelectasis (肺不张)、Cardiomegaly (心脏肥大)、Effusion (积液)、Infiltrate (浸润)、Mass (肿块)、Nodule (结节)、Pheumonia (肺炎)和Pneumothorax (气胸)。这个带注释的大数据集为开发基于深度学习方法的CAD系统提供了机会。
本文提取出ChestX-ray8数据库中包含八种疾病的图像共984张,其中Atelectasis图像180张、Cardiomegaly图像146张、Effusion图像153张、Infiltrate图像123张、Mass图像85张、Nodule图像79张、Pheumonia图像120张和Pneumothorax图像98张。原始图像尺寸为1024 × 1024,把所有的图像进行归一化处理。八种病理图像如图1所示:
Figure 1. Eight pathological classifications of lung
图1. 八种肺部病理分类
3. 相关工作
VGG-16模型由牛津视觉几何组的Karen与Andrew于2014年提出,是图片分类任务中经典的神经网络模型,该网络模型统一采用3 × 3的小卷积核以及2 × 2的最大池化层,共包含16层,其模型如图2所示,分别为13个卷积层和3个全连接层 [17] 。主要包括5个卷积层模块,2个全连接层和1个输出层。每个卷积层模块中包含2个或3个卷积层,以及1个最大池化层。图片输入首先经过64个卷积核的两次卷积后,采用一次pooling,第二次经过128个卷积核两次卷积后,再采用pooling,再重复两次三个512个卷积核卷积后,再pooling,最后经过三次全连接 [18] 。VGG-16模型采用的是最大池化,其计算公式(1)为:
(1)
其中l代表当前层;
代表第层上的第j个特征图;
代表层中第i个特征;
代表激活函数;
代表卷积核;
代表输入层感受野;
代表输出的偏置项。
Figure 2. VGG-16 network architecture
图2. VGG-16网络架构
4. 算法改进
4.1. 本文算法框架
卷积块注意模块(Convolutional Block Attention Module, CBAM)作为一个轻量级的注意力机制模块,其包含的通道注意力和空间注意力模块,能够并行或顺序方法组合并且能够无缝的嵌入到各种卷积神经网络结构中,经过广泛验证,模型在结合CBAM后,表现能力均有提升,展现了广泛的适用性 [19] 。
深度学习中,将不同卷积层提取到的不同尺度的特征通过融合的方式是提高分类性能的重要方法。在深度卷积神经网络中,浅层神经网络卷积层提取的特征分辨率比高层高,它含有很多位置信息、细节信息、但语义性低;深层神经网络卷积层提取的特征语义信息比浅层强,但分辨率低、对细节信息感知能力不行。很多分类方法通过融合多层特征,提高分类效果,本文在胸部病理识别分类时,除了处理最后高层卷积层特征信息,还应该考虑到第一层特征信息。因此本文提出注意力特征融合VGG-16网络的胸透病理识别方法,模型架构图如图3所示。
本模型训练过程具体步骤如下:
1) 输入图像:胸部X光图像加载时,先进行图像归一化,然后采用中心裁剪448 × 448尺寸。
2) 通道注意力模块:X光图像经过卷积神经网络和通道注意力模块输出特征向量A。
3) 空间注意力模块:X光图像经过卷积神经网络和空间注意力模块输出特征向量B。
4) 特征融合:将卷积神经网络第一层特征向量C和特征向量A、B进行向量拼接操作。
5) 分类:通过一个全连接层,得到最后分类结果,实现对肺部病理的识别分类。
Figure 3. Algorithm structure of this paper
图3. 本文算法结构
4.2. 融入通道注意力
通道注意力模块(Channel Attention Module, CAM)的作用是是将图像中单个特征的通道代表一个对应的检测器,如公式(2)所示:
(2)
式(2)中,
代表激活函数,并且
,
。MLP权重
和
是为两个输入共享的,
在ReLu激活函数后。
通道注意力网络将该网络前面提取到的特征向量通过通道注意力,将输出的特征向量和输入特征向量进行相乘,从而输出新特征向量。内积的操作使得一个向量成为权重系数,让模型判别某个通道,也就是某个特征的重要程度,自动更改系数大小,分配适当的权重系数 [20] 。网络结构如图4示:
Figure 4. Integrating channel attention
图4. 融入通道注意力
4.3. 融入空间注意力
空间注意力机制通过特征之间的位置关系输出空间注意力图来关注图像哪里的特征信息是重要的,公式如(3):
(3)
其中,式中
代表sigmoid函数,
代表过滤器为7 × 7的卷积。
空间注意力网络将该网络前面提取到的特征向量通过空间注意力,输出的特征向量和输入特征向量进行克罗内克内积,也输出新特征向量。空间注意力是为了进一步加强目标特征位置信息。网络结构如图5所示:
Figure 5. Integrating spatial attention
图5. 融入空间注意力
4.4. 融入浅层信息
Concat(连接)是一种将两个或多个向量在某个维度上进行拼接的操作,常用于将不同的特征向量拼接起来,提升模型表现能力。具体来说,假如有两个不同的卷积层,得到两个不同的输出特征图分别为A和B,每个特征图大小都为
,其中H和W分别表示高度和宽度,C表示通道数。假设将两个特征向量图沿通道维度进行拼接,拼接后的特征图大小为
,其中C1和C2分别表示两个特征图的通道数。
在本文中,在深层卷积层(28 × 28 × 512)中通过空间注意力和通道注意力得到的输出分别为特征向量A和特征向量B,我们先在通道维度上将其进行拼接,提升网络对特征信息的表达能力。拼接后的特征向量再和浅层卷积层(448 × 448 × 64)得到的特征向量C进行拼接,降低VGG-16网络由于其网络深度过深导致浅层语义信息丢失影响,最后将拼接后的向量送入全连接层(图6)。拼接操作直接将不同的特征信息融合成同一特征信息,实现不同特征之间相互联系和互补。
5. 实验
本文分别进行VGG-16模型实验、本模型实验进行对比。本模型训练和测试环境为显卡型号:Tesla K80,驱动版本SIM为460.32.03,CUDA版本11.2,显存为12G,使用Pytorch框架。
5.1. 实验过程
根据大部分病理图像特征以及数据处理,确定图像输入尺寸为448 × 448;为了更好的学习到病理特征,根据实验设备设定batch_size为16;采用阶梯式学习率,起始学习率为1,每40次学习率变为原来的0.01倍,加快前期学习速度。迭代次数设定100次。本文采用多特征融合注意力机制的改进后的BA-CNN训练过程具体步骤如下:
1) 输入图像:X光图像加载时,进行归一化处理和中心裁剪448 × 448。
2) 获得特征向量A和B以及C:X光图像在VGG-16第一层卷积时输出特征向量C,并且经过5层卷积输出的特征向量分别通过通道注意力和空间注意力得到特征向量A和特征向量B。
3) 特征融合:将特征向量A和特征向量B在通道维度上进行拼接,然后再和特征向量C在通道维度上拼接,得到融合后的特征向量。
4) 分类:将3) 得到的特征向量输入全连层然后输出分类结果。
5.2. 实验结果
在实验过程中,将得到的训练网络模型保存并进行测试集验证,测试过程中分类正确率如图7所示,横坐标为网络模型名称,纵坐标为病理识别分类测试正确率,其中准确率公式计算如(4):
(4)
式中n代表八种病理准确分类图像数量,N代表总的八种病理图像数量。
从图8中的分类正确率柱状图可以看出,两个模型经过测试,本文模型下相比基线VGG-16模型准确率提升3.75%,提升效果明显。
6. 数据结果与分析
为了客观的评价本文提出分类方法的优势,我们将两种分类方法的混淆矩阵(Confusion Matrix)、准确率、召回率、F1-score运算量作为评价指标,本文将测试集中八种病理的187张图片一起输入训练好的网络进行测试。为验证本文方法正确八种病理识别的效果,将测试集中八种病理胸透X光图像随机输入到保存好的网络模型中测试,得到混淆矩阵如表1所示。
Table 1. Results of model classification in this paper
表1. 本文模型分类结果
从混淆矩阵结果能够看到,本文提出的方法能够较好的分离出八种病理。为了对比两种方法分类的性能。采用准确率(Pi)、召回率(Ri)以及F1i-score。其中Pi、Ri、F1i-score,其中i代表第i中病理,其中对每种类别的病理求准确率和召回率以及F1i-score时,将其看作二分类求解。定义如公式(5)~(7):
(5)
(6)
(7)
为了进一步验证注意力特征融合VGG-16网络的胸透病理识别方法的有效性,我们将VGG-16与我们的模型网络在八种病理下的Pi、Ri、F1i-score对比实验测试结果可视化如图8(a)~(c)的树状图所示。
Figure 8. (a) Accuracy of each pathology; (b) Recall rate of each pathology; (c) F1 values of each pathology
图8. (a) 各病理准确率图;(b) 各病理召回率;(c) 各病理F1值
从图8(a)中可以看出,本文模型对Nodule病理识别分类正确率提高0.34及Effusion的识别分类正确率提升0.18,两种病理识别分类效果有明显提升,其中Pneumothorax以及Infiltrate的分类正确率分别0.05以及0.05,两者有着略微提升。表明了本文模型提升了总体识别分类效果。根据图8(b)、图8(c)中各个病理类别的召回率和F1值看出,Nodule和Effusion的召回率以及F1值都有明显提升。其中Pneumothorax以及Infiltrate的召回率以及F1值也略微提高。尤其是Pneumonia准确率没有提升,但是召回率和F1值有略微提升。
7. 同类研究比较
本文研究和国外当前研究进行比较,都采用相同的Chest-ray8数据集,其中文献 [9] 研究pneumothorax (气胸)的二分类;文献 [7] 研究Cardiomegaly (心脏肥大)的二分类问题,文献 [10] 研究Pneumonia (肺炎)表2数字代表该病理识别分类准确率,“×”代表文献没有研究该病理。
Table 2. Comparison of similar studies
表2. 同类研究比较
同样数据集下,和其他二分类方法相比,由于本文在图像上做归一化处理以及图像加载时进行一定的背景抑制方法,在网络模型中融合浅层语义信息,降低VGG-16网络深度过深带来的边缘信息丢失影响;并且通过注意力机制方法提升特征信息表达能力,所以多分类并未导致单个病理识别分类准确率的过多下降。
8. 结语
本文研究了应用迁移学习并加以改进的方法识别胸透X光八种病理的可行性,采用了基于VGG-16预训练的卷积神经网络模型提取特征,结合注意力机制与特征融合实现病理识别分类。相较于二分类方法,本文采用多分类方法更具实用性,但未实现端到端训练导致单个病理识别分类准确率略微下降。未来将会以如何实现端到端训练以及提高整体识别分类准确率作为研究方向。
致谢
感谢贵大人基合字(2018) 60号对本研究工作的帮助与支持,向评审人和提供帮助的人员表示谢意。
基金项目
贵大人基合字(2018) 60号。
参考文献
NOTES
*通讯作者。