1. 引言
肺癌是全世界所有癌症范围内发病率和死亡率较高的一种癌症,病死率高的主要原因是错过了早期的最佳治疗时机,而患者被诊断出肺癌时已经到中后期了。根据国际抗癌联盟(Union for International Cancer Control, UICC)与美国癌症联合会(American Joint Committee on Cancer, AJCC)联合发布的分期标准,肺癌从早期到晚期被分为四个阶段,分别是T1、T2、T3和T4 [1] 。在T1和T2诊断治疗的患者5年生存率为60%~90%,而在T4诊断治疗的患者5年生存率预计低于5% [2] 。因此专家提倡尽早进行检查,发现肺癌早期表现的肺结节,及时进行治疗提高患者生存率。
随着计算机技术的发展,各种检测算法相应出现,其检测效果参差不齐。而当下深度学习的方法,能使网络自动学习特征,有着端到端的优势且效率非常高 [3] ,尤其是当前热门的YOLO的检测方法,成为目标检测技术的首选。因此选用YOLOv5的检测算法研究,进行改进,使得在肺结节检测上获得更高的检测精度。
2. 原始网络架构
选用YOLOv5 6.0版本的网络结构进行研究,主要包括主干网络(Backbone)、颈部网络(Neck)以及检测头部分(Detect) [4] 。在主干网络主要由5个卷积模块即CBS、4个C3模块和1个SPPF模块组成。其中CBS模块包括卷积层、BN层、激活函数层,C3模块也是由卷积模块和残差模块构成,构成了骨干网络的核心部位,用于输入图像进行特征提取。经过对输入图像进行多次卷积和C3模块的下采样和特征提取,最后汇集到SPPF结构中,进行多次池化操作,提取深层次高级特征,实现骨干网的特征提取。Neck部分主要是进行特征融合的,它采用FPN和PAN结构,以自顶向下和自底向上的方式将浅层网络的位置信息与深层网络的语义信息进行集成。Detect部分包含用于目标预测的三种不同大小的检测头,分别对应了颈部得到的3个不同大小的特征图,实现对目标的预测。其YOLOv5 6.0版本的网络结构如图1所示,YOLOv5作为单阶段目标检测网络,不仅在速度上有很大优势,而且检测精度也获得了很大提升。
3. 对YOLOv5网络模型进行改进
基于YOLOv5的目标检测算法在速度上具有优势,但对于肺结节这种小目标来说,其检测精度和查全率需要进一步提升,因此对其的改进主要以提高这两个指标为目的,通过对上述网络结构的分析,以及结合肺结节自身特点,明确了两点改进思路,首先应该加大对浅层信息的特征提取力度,减少网络加深带来的信息丢失。其次针对特征融合方面,由于特征融合后直接对检测头有着直接的影响,所以需要确保融合后的特征图有助于检测头进行肺结节检测。因此对这两点的改进可以使网络对肺结节的检测具有更高的准确率,减少漏检的情况。

Figure 1. YOLOv5 network structure diagram
图1. YOLOv5网络结构图
3.1. 在C3模块融入注意力机制
由于在肺结节检测中,目标像素所占比例小且形状各式各样,其特征信息会随着网络加深而不明显,因此要更加关注肺结节在浅层网络的特征提取。而骨干网络主要是进行特征提取的,其C3模块是特征提取的核心部位,C3模块是由3个标准的卷积层、多个Bottleneck模块和拼接模块组成。而CBAM (Convolutional Block Attention Module)注意力机制是一种轻量级的模块可以插入到任何部位 [5] ,且兼顾了通道和空间上的信息,能够帮助网络获取目标区域大量位置和细节信息。将该模块加入到C3模块形成新的C3CBAM模块,能够促使肺结节小目标的特征更多的被提取,为促使更多的结节被检测出来有很大的帮助。如图2所示为C3CBAM结构。
CBAM包含了空间注意力和通道注意力 [6] 。特征图首先经过通道注意力,将图像同时进行全局最大池化保留丰富的上下文信息和全局平均池化汇聚空间特征,然后通过共享的多层感知机制将两者信息共享,在经过激活函数后,形成关于通道注意的特征图。将通道注意的特征图作为进行空间注意的输入,首先经过最大平均池化层操作提取通道维度的信息,然后在进行拼接和卷积操作,得到最后的输出,CBAM的结构图如图3所示:
3.2. 采用BiFPN特征融合
原始网络使用的特征融合方式是采用FPN + PAN,是一种自上而下结合自底向上的路径,这种特征融合方式虽然将深层网络的语义信息与浅层的位置信息进行了融合,但是缺乏原始的特征信息,会限制算法检测精度。因此改用加权双向的特征金字塔网络(Bidirectional Feature Pyramid Network, BiFPN) [7] 结构进行特征融合,该方法在自顶向下和自底向上的路径方式上加入了跨尺度的连接,减少浅层信息的丢失,并赋予不同特征图不同的权重,调节不同尺度的贡献力度,实现快速的多尺度特征融合,帮助提升网络肺结节定位判断的准确性。如图4所示为三种特征融合方式的对比图:

Figure 4. Comparison of fusion modes of different features
图4. 不同特征融合方式对比图
与PANet相比BiFPN删除了红色的两个节点,这两个节点对特征融合的贡献力度极小,删除后不会产生影响还减少了网络的计算,图中又增加了一条输入节点的连接,使得最终的输出包含了原始特征,可以看到融合了上层、原层、下层3层不同尺度的特征,在不增加成本的情况下融合更多的特征,实现了更多层次信息的叠加,能够提升目标定位的准确性。
4. 实验及分析
4.1. 数据集
使用的数据集为公开数据集为ISBI LUng Nodule Analysis 2016 (LUNA16) [8] ,共包含了888个病例的肺部医学CT影像,且每张CT图像均由四位经验丰富的医生对诊断的结果进行标注,被标注的肺结节共1186个,保证了数据库中目标区域的正确率。实验首先将CT图像进行肺实质分割,在分割后的图像上进行肺结节检测。
4.2. 实验配置
本章的实验环境是Python3.7的TensorFlow学习框架,Windows10 64位操作系统,NVIDIA GeForce RTX 2080Ti GPU,Intel(R) Core(TM) i5-4210U CPU@1.70GH CPU处理器。实验的参数具体设置是,批处理大小设置为8,初始学习率设置为 0.0001,衰减系数为0.0005,迭代次数为200,置信度阈值为0.5,锚框个数设置为3。
4.3. 实验结果与分析
使用的评价指标为召回率(Recall)、平均精确度mAP (mean Average Precision, mAP)。召回率又称查全率可以反映检出情况,mAP兼顾了精确率(Precision)与召回率(Recall),更能反映出整体性能。首先需要了解四个评价含义,TP (True Positives)肺结节被正确识别,TN (True Negatives)非肺结节没有被识别成肺结节,FP (False Positives)非肺结节被识别成肺结节,FN (False Negatives)肺结节没有被正确识别。计算方式如图5所示:

Figure 5. Evaluation index calculation formula
图5. 评价指标计算公式
为了验证方法的有效性,使用横向对比的方式进行验证,与双阶段架构的Faster R-CNN和单阶段YOLOx以及原始YOLOv5进行对比,其结果如表1所示:

Table 1. Comparison of experimental data of different methods
表1. 不同方法实验数据结果对比
表中展示了不同方法进行肺结节检测所得出的结果。其中Faster R-CNN是双阶段检测网络的代表,可以看出在查全率(Recall)和平均精确度上双阶段方法展现出了较好的优势,分别获得了89.77%和82.42的好成绩,与另外两种没有改进的方法相比在肺结节检测上表现得更出色,然而YOLOv5经过加入注意力机制和使用加权双向特征金字塔融合后,在肺结节检测上查全率达到91.36%,平均精确度也高出Faster R-CNN4.09个百分点。与原始网络相比查全率提高了4.34%,平均精确度提升8.58%。以上均证明改进后的YOLOv5有效的改善了漏检情况,提升了整体的平均精确度。
如图6所示依次为原图数据、YOLOx、Faster R-CNN和原始YOLOv5、改进后的YOLOv5进行试验后获得的结果图,在实质的图像检测上比较,第一行Faster R-CNN与改进后的YOLOv5在肺结节的置信度上有着较高的值,且改进后的YOLOv5的肺结节置信度大于Faster R-CNN,说明单结节检测改进后的YOLOv5表现更加。第二行是多结节检测图,后三种方法平均相比都有很高的置信度。第三行是边界微小结节的检测难度更大,YOLOx的方法没有检测出该部位的肺结节,其余三种方法都检测出了,置信度Faster R-CNN和改进后的YOLOv5相同,虽然值不高,但是在现实中能对医生进行诊断给予一定的建议。总之通过对数据结果分析与检测结果分析后,改进后的YOLOv5肺结节检测方法整体性能更优。

Figure 6. Comparison of detection results of different methods
图6. 不同方法检测结果对比
5. 结论
针对当前肺结节检测存在肺结节直径小、形态各不相同检测难,导致的漏检和精度不足的问题,研究了具有速度优势的单阶段架构的检测方法,即当前流行的YOLOv5的算法,致力于提高检测精度和检出率,进行一系列的改进。通过实验证明,改进后的方法在各项评价指标都有明显提高,能够高效辅助医生进行肺结节的筛查工作,帮助患者早治疗提高生存率。
基金项目
BIGC20190122011,BIGC 27170122003。