1. 引言
传统的血癌细胞识别方法通常依赖于人工检查和显微镜观察。但这种方法存在操作复杂、耗时长、主观性强等问题 [1] [2] 。而基于图像处理和机器学习的血癌细胞识别技术则能够提高诊断的准确性和效率,帮助医生更早地发现和治疗血癌,提高患者的存活率和生活质量。此外,随着计算机硬件的不断进步和深度学习算法的优化,血癌细胞识别技术将在未来持续发展,并为临床医学带来更多的突破和创新 [3] [4] [5] 。
利用深度学习技术,可以对目标进行较为准确的检测,在医疗影像领域中可以加以应用。主流的目标检测法大致分为两类:一类是两阶段检测,比如R-CNN算法 [6] ,该算法在第1阶段生成候选对象区域放入深度网络中提取特征,在第2阶段将候选区域进行分类,这样的两阶段检测虽然运行速度缓慢但精度很高。另一类是单阶段检测:比如YOLO系列 [7] [8] 和SSD算法 [9] ,其相较两阶段检测的检测速度有所提升,准确率也在逐渐提高。
综上,本文提出了YOLOv5s-FasterCA算法来进行血癌细胞检测,该算法在YoloV5s的基础上,将主干网络中的C3检测层替换为效率更高的C3_FasterNet,在不降低精度的同时提高检测速度,并在主干网络中添加坐标注意力机制 [10] 来增强模型提取特征的能力。经过实验,本文的模型对血癌细胞的检测效果较原模型显著提高,应用于血癌细胞检测的效果很好。
2. YoloV5-7.0算法
YOLOv5算法在目标检测中应用相对较多,包括了多个版本,如1.0、6.0等,同时网络规模也有很多类型。在YOLOv5-7.0算法当中,其整体布局和v3、v4较为类似,和YOLOv5也不会有很大的差距。在算法的结构组成上,包括了输入、分类器、颈部及主干网等几个主要组成部分,具体的整体结构如图1所示。
2.1. 输入端
在输入端当中,输入图片的尺寸会有一定的差异,需要采取缩放的方法将尺寸调整到一个合适的大小,之后再利用算法对其进行填充处理,并在网络当中进行训练。由于图像的尺寸会存在着分布不够均匀的问题,故需要对图像进行训练和增强,这样就能够解决这一问题。在对图像进行增强的过程中,可以对图像的亮度进行随机调整,同时还可以对图像进行翻转,并且提高网络鲁棒性。
2.2. 主干网络
在主干网络当中,需要采取到卷积结构,包括了卷积核、步长、填充等几个主要的功能模块。和传统的Focus模块相比,采取卷积层能够取得更高的效率,SPPF的结构如图1所示。
Figure 1. YoloV5-7.0 network structure
图1. YoloV5-7.0网络结构
2.3. 颈部网络
YOLOv5-7.0的Neck部分采用FPN + PAN的结构形式,其中PAN代表路径聚合网络,FPN代表特征金字塔网络。通过这种结构形式,能够取得较好的应用效果。
2.4. 预测分类器
YOLOv5的head用3个1 × 1的卷积层替代全连接层(FC)进行预测和分类,分别生成20 × 20,40 × 40,80 × 80这3个不同尺度的特征图,输出结果为4 + 1 + C,分别为预测框坐标、目标置信度、类别概率值。
3. 改进的YOLOv5s算法
本实验基于YOLOv5-7.0算法提出了改进网络YOLOv5s-FasterCA。将原YOLOv5s模型中主干网络的C3检测层替换为FasterNet,该网络通过将常规卷积替换为部分卷积(Partial Convolution, PConv)与逐点卷积(Pointwise Conv, PWConv)来减少计算冗余 [11] ,大大降低了模型复杂度和参数量来提高计算速度,同时在主干网络中引入CA模块来提高模型对血癌细胞中三类细胞的特征提取能力,改进后的YOLOv5s-FasterCA模型如图2所示。
3.1. 部分卷积与逐点卷积
Figure 2. Improved Yolov5s network structure
图2. 改进后的Yolov5s网络结构
在原YOLOv5s模型中,采用了C3模块对输入图片进行卷积操作并提取特征信息,C3模块是由三个Conv块构成的,其中第一个Conv块的步幅为2,可以将特征图的尺寸减半,第二个Conv块和第三个Conv块的步幅为1。C3模块中的Conv块采用的都是3 × 3的卷积核。在每个Conv块之间,还加入了BN层和LeakyReLU激活函数,以提高模型的稳定性和泛化性能。但是此模块在对特征较为单一的输入图片进行特征提取时会产生大量计算冗余,因此导致模型的计算速度降低。因此本文的改进算法借鉴的部分卷积与逐点卷积的思想来提高模型的计算速度。
部分卷积只对部分通道进行特征提取,对于其他的通道,则保持不变,其结构如图3所示。在对内存访问中,计算代表可以选择第1个或者是最后1个cp通道,这样计算效率也会相对较高,输入及输出的通道数量可以保持一致。因此,部分卷积的FLOPs仅有:
(1)
其中h为输入图片的高,w为宽,k为卷积核大小。一般情况下,部分卷积的通道数cp为常规卷积c的1/4,所以部分卷积的FLOPs仅为常规卷积的1/16。此外,部分卷积的内存访问量更小,仅为常规卷积的1/4,为:
(2)
通道当中的信息需要得到充分的利用,并且需要对每一个点进行卷积计算。它们看起来像一个T形卷积,如图4所示,与均匀处理一个点的常规卷积相比,它更关注中心位置。
Figure 4. T-shaped convolution structure
图4. T形卷积结构
虽然T形Conv可以直接用于高效计算,但结果表明,将T形Conv分解为PConv和PWConv更好,因为分解利用了内部层之间的冗余可以进一步节省FLOP对于相同输入
和输出
,T型Conv的FLOPs可以计算为:
(3)
而PConv与PWConv的FLOPS为:
(4)
公式3中c > cp,并且c − cp >cp。此外,我们可以很容易地利用常规的Conv进行两步实现。
3.2. FasterNet
FasterNet [11] 是在PConv和PWConv的基础上构筑而成的,本文将其用于替换YOLOv5原模型主干网络中的C3模块。FasterNet Block的结构如图5所示,他有四个分层阶段。它有四个分层阶段,针对每一个阶段,都会存在着嵌入层或者是合并层。在嵌入层当中,是Conv 4 × 4。而是合并层当中,是Conv 2 × 2,其步幅也不一致。前者的步幅是4,后者的步幅是2,这样也能够将其用于对通道数量的扩展当中。如果对FLOPS更为倾向,则可以设置数量更多的Fasternet块,并且给其分配更多的计算。
在每个FasterNet块当中,都会有PConv层和PWConv层,整体呈现出残差块。如果在网络系统中较多使用这些层,就会导致特征多样性受到影响,并且进一步降低了网络系统的整体性能。为此需要采取必要的措施来保证网络系统的特征多样性,以便取得较快的计算速度。在激活层选用ReLU来平衡运行时间和效率。最后三层为全局平均池化层,一个Conv 1 × 1层和全连接层,这些层用于特征转换和分类。
Figure 5. FasterNet Block structure
图5. FasterNet Block结构
原YOLOv5s模型通常在对特征较为复杂,检测目标较大的数据集具有较好的效果(例如COCO数据集),但在对血癌细胞检测时,由于目标特征较少并且目标较小,例如癌变细胞中的血小板和粘连的白细胞,经过多次卷积容易导致丢失目标特征并且速度较慢。所以本文用FasterNet模块替换原YOLOv5s模型中的C3模块,从而在提高精度的同时加快检测速度。
3.3. 注意力机制模块
在深度学习技术体系当中,需要对感兴趣的目标或者是对象加以关注,也就是采取注意力机制。神经网络中的注意机制有通道注意 [12] 、空间注意 [13] 和混合注意 [14] 等多种类型。Hou [10] 等的研究成果表明,通道注意力(例如,SE注意力)虽然可以提升模型的性能,但它们通常会忽略位置信息,而CA模块将通道注意力按维度分解,并分别沿不同的空间方向聚合特征,捕获跨通道信息和位置信息。
采用CA模块,能够使得对目标的定位更为准确,同时定位的精度也会更高,当加入了FasterNet之后,就可以使得网络系统的表达能力更强。当使用这种算法进行血癌细胞的检测时,就能够取得更高的检测效率,同时检测的精度也会更高,CA结构如图6所示。
CA对输入的特征图X。首先使用两个一维的池化核分别沿水平与垂直方向对每个通道进行编码,第c个通道在其对应的高度和宽度输出可以分别表示为:
(5)
(6)
(7)
利用激活函数将f分解为2个单独的张量
和
。用2个1 × 1卷积变换分别将
和
变换为与输入X具有相同通道数的张量
和
。最后,输出为特征图与两个权重图相乘:
(8)
CA模块增强了特征图的识别能力,可以帮助轻量级的YOLOv5s模型更加精确的定位和识别感兴趣的目标。YOLOv5s-FasterNet在Backbone中加入了两个CA模块。
4. 实验分析
4.1. 实验环境
本实验的处理器为AMD RYZEN 7745h,GPU为NVIDIA GeForce RTX4060,深度学习框架为Pytorch,开发环境为Pytorch 2.0.1,Python 3.10,Cuda 11.8,优化器采用Adam优化器,实验参数设置如表1所示。
4.2. 数据集
本实验所采用数据集来源于慕尼黑AML形态学数据集,这些图像取自2014年至2017年间在慕尼黑大学医院诊断为急性髓系白血病的100名患者以及100名没有血液恶性肿瘤迹象的患者的外周血涂片,本实验从中选取5000中样本较好的图片,并通过Labelimg对其进行人工标注,标注分为三类:癌变白细胞(Cancer Cell, CC),红细胞(Blood Cell, BC)和血小板(Platelets, PL),并按照训练集、验证集和测试集按8:1:1划分,实验参数如表1所示。
4.3. 评价指标
(a) 改进前的PR曲线(b) 改进后的PR曲线
Figure 7. PR curves before and after improvement
图7. 改进前后的PR曲线
为了定量评估模型的检测效果,使用准确率(Precision)、召回率(Recall)、平均精度(AP)、类平均精度(mAP)、FPS作为主要评价指标。改进前后的癌变白细胞(CC)、红细胞(BC)和血小板(PL)的P-R曲线如图7所示。
查准率是衡量在血癌细胞检测任务中的是所有预测为正样本的结果中,预测某细胞正确的个数(TP)占正确总个数(TP + FP)的比值。
查全率指的是表示血癌细胞的真实类别为正,最后预测得到的结果也为正的个数(TP)占所有应该被检测到的细胞(TP + FN)的比例。
AP用来计算单类别模型平均准确度,N代表类别总数,血癌细胞检测任务中的类别总数为3,各指标具体计算公式如下:
(9)
(10)
(11)
(12)
4.4. 实验结果分析
本文将改进后的YOLOv5s-FasterCA模型与当前主流的一阶段、两阶段算法模型如Faster-RCNN [15] 、SSD进行对比分析,结果如表2所示。
分析表中数据可以看出本文算法与主流目标识别算法相比检测精度更高,模型复杂度更小,速度更快。与原YOLOv5s模型相比,本文算法mAP@0.5提高1.2%,模型参数量减少25.7%,可以有效满足在医疗器械上进行实时检测血癌细胞的需求。
Table 2. Comparative analysis experiments
表2. 对比分析实验
4.5. 消融实验
为了更加直观验证有效性,以下开展消融实验,检测结果如图8所示,具体对比数据如表3所示。
由表中数据可知,在原模型基础上只加入CA模块时,检测精度提高,速度下降;只加入FasterNet模块时,检测精度略微提升,速度大幅提高。同时加入FasterNet与CA时,模型精度提升,速度提升。
(a) 原始Yolov5s网络(b) 改进后的网络
Figure 8. Comparison chart of test results
图8. 检测结果对比图
5. 结论
针对血癌细胞在复杂情况下识别难度大、检测精度低和用于医疗器械时速度慢的问题,提出了Yolov5s-FasterNetCA的改进网络。通过将YOLOv5s主干网络中的C3模块改进为FasterNet,减少计算冗余,降低整体网络模型的复杂程度,大大提高了检测效率,通过在主干网络中加入CA模块,提高检测精度。
试验结果表明,本文改进算法mAP@0.5达到97.1%,识别速度为67帧/秒,在提高速度保证实时性的同时保证了检测精度,能够满足实际血癌细胞检测时的需求。下一步将在保证检测速度的同时进一步提升检测精度,引入新的卷积模块或注意力机制,进一步提升在复杂环境下图像中的目标检测任务表现和泛化能力。
NOTES
*通讯作者。