改进YOLOv5的白细胞检测算法

2022-03-02 08:31:46孙紫雲张龙妹
计算机工程与应用 2022年4期
关键词:边框白细胞尺度

王 静,孙紫雲,郭 苹,张龙妹

西安科技大学 通信与信息工程学院,西安710054

外周血白细胞在人体免疫系统中起着不可忽视的作用[1]。白细胞主要分为嗜酸性粒细胞、嗜碱性粒细胞、中性粒细胞、淋巴细胞和单核细胞五种类型[2]。其中嗜中性粒细胞占50%~70%,淋巴细胞占20%~40%,单核细胞占3%~8%,嗜酸性粒细胞占1%~5%,嗜碱性粒细胞不超过1%[3]。当人体发生炎症或其他疾病时,医生通过对外周血白细胞分类和计数的结果,来辅助判断所患疾病的种类和严重程度。因此白细胞检测与分类的准确性和效率对于疾病辅助诊断非常重要。

目前,传统的白细胞检测主要是靠人工镜检、流式细胞仪来完成,存在工作量大、耗时长、统计量小、结果受主观影响等问题[4]。基于深度学习的检测方法因不受主观因素的影响,工作量小,成为医学图像处理的热门研究领域。Wang 等人[5]提出一种使用YOLO(you only look once)和SSD(single shot multibox detector)的网络对白细胞进行检测,平均精度为90.09%。王亚品等人[3]以ResNet 为原型结构,设计了一种适用于白细胞显微图像分类的深度卷积神经网络,在自建数据集上可以达到95.7%的训练正确率。Shahin等人[6]提出了一种基于深度卷积神经网络(convolutional neural network,CNN)的白细胞识别系统,在三种不同的公共数据集上测试的总体准确率达到96.1%。Li等人[7]提出了一种基于改进YOLOv3 的端到端白细胞定位分类方法,在LISC 数据集上识别准确率达到96.4%。杨雪莹等人[8]搭建了LCNet模型用于外周血白细胞的分类识别研究,在自建数据集上识别了八类白细胞,平均识别率达到92.87%。

现有的深度学习方法在白细胞检测中取得了较好的检测效果,但是依然存在以下几点问题:(1)白细胞外观复杂,类间差别小,检测难度高;(2)白细胞属于边界特征模糊的小目标,识别困难;(3)公开数据集白细胞数据样本少。

针对以上问题,本文提出一种改进YOLOv5的白细胞检测算法YOLOv5-CHE,通过扩充白细胞检测数据集,使设计的算法能够学习到更多的白细胞特征,以提高算法的泛化能力。通过增大输入图像的尺寸、添加坐标注意力机制、增加多尺度检测、引入多尺度融合以及改变边框回归损失函数等方法,提升外周血白细胞检测的精度。改进后的YOLOv5-CHE算法在白细胞公共数据集上进行训练和验证,实验结果表明,YOLOv5-CHE比YOLOv5 平均精度均值提升了3.8 个百分点,精准率提升了1.8个百分点,召回率提升了1.5个百分点。

1 YOLOv5算法

YOLOv5算法由三部分构成,整体结构如图1所示。第一部分为输入端,训练图片输入尺寸为608×608。第二部分为主干网络,它使用CSPDarkNet53网络,从输入图像中提取丰富的信息特征。第三部分为检测层,该部分采用了多尺度进行检测,在特征金字塔网络结构(feature pyramid networks,FPN)[9]后加入一种新的自下而上的路径聚集网络结构(path aggregation networks,PAN),实现了不同尺度特征信息的融合,之后再对生成的三个特征图进行预测。

图1 YOLOv5的整体算法结构图Fig.1 Overall algorithm structure diagram of YOLOv5

YOLOv5 算法的卷积核主要有3×3 或1×1 两种,卷积结构包含卷积层、批标准化层(batch normalization,BN)[10]和激活函数层(SiLU)。空间金字塔池化结构(spatial pyramid pooling,SPP)采用1×1、5×5、9×9、13×13的最大池化方式[11]进行多尺度融合。另外,YOLOv5继续沿用了YOLOv4 多尺度检测结构。在主干网络提取特征后,进行两次上采样和三次卷积分别在19×19、38×38和76×76三个尺度上实现大中小目标类别和位置预测。YOLOv5使用自适应锚框计算,针对不同的数据集训练数据,自适应地计算训练集中的最佳锚框值[12]。

YOLOv5 是一种检测精确、速度快的检测算法,在开源数据集上有良好的效果,但是在白细胞分类识别任务上检测性能仍需要改进。针对外周血白细胞数量少、外观复杂、内间差别小、边界特征不明显、目标较小以及背景复杂等问题,本文在YOLOv5的基础上进行改进优化,提出了一种白细胞检测算法YOLOv5-CHE。实验和测试的结果验证了本文改进算法的有效性。

2 改进YOLOv5白细胞检测算法

2.1 基础网络改进

对于输入图像,白细胞只占据图像的较小部分,其余均为背景信息,在卷积时,背景的迭代累积会形成大量冗余信息,从而淹没部分目标,导致检测准确率不高。为此,本文使用一种将位置信息嵌入到通道注意力的坐标注意力机制(coordinate attention,CA)[13]。此注意力机制不仅能捕获跨通道的信息,还能捕获方向感知和位置感知的信息,使模型更加精准地定位和识别感兴趣的目标。

如图2所示,CA主要分为两个步骤:第一步是坐标信息的嵌入。给定输入X,使用池化层分别沿着水平坐标和垂直坐标对每个通道进行编码,得到一对方向感知特征图。第二步是坐标信息特征图的生成。首先将提取到的特征信息进行拼接,然后利用一个1×1卷积变换函数进行信息转换,进而得到中间特征图,并沿着空间维度分解为两个单独的张量,再利用两个卷积变换为具有相同通道数的张量,最后将输出结果进行扩展,分别作为注意力权重分配值。

图2 CA结构Fig.2 CA structure

为了突出目标的特征,精准地识别和定位白细胞,提升白细胞检测的准确率,本文在主干特征提取网络CSPDarkNet53 的卷积层之间添加了注意力机制CA 模块,将原YOLOv5 算法特征提取网络中的10 层网络变为13 层网络,优化网络结构如表1 所示,改进后的网络能更有效地提取检测目标的特征信息。同时,将输入图像的大小设定为640×640尺度,减少了网络下采样时小目标信息的丢失。

表1 改进后CSPDarkNet53网络结构Table 1 Network structure of improved CSPDarkNet53

2.2 多尺度检测的改进

YOLOv5采用三尺度特征层进行检测,尺度大小分别为19×19、38×38和76×76。它在目标较大的COCO数据集[14]上检测效果较好,但对于体积小的白细胞图像,经多次卷积后会丢失较小的目标区域信息,从而导致检测率降低。

为了解决上述问题,本文将在YOLOv5的检测层增加一个160×160的检测尺度,由之前的三尺度检测拓展为四尺度检测,改进后的结构如图3 所示。YOLOv5-CHE中主要的改进点为:在80×80特征层之后继续增加卷积层和上采样,再将二倍上采样特征层与160×160特征层进行融合,得到第四个160×160的检测尺度。另外20×20、40×40和80×80的三个检测层与原算法一致。

图3 多尺度检测改进结构Fig.3 Improved structure of multi-scale detection

改进后的模型对五类白细胞目标进行实验检测,结果表明,相比于YOLOv5算法,本文提出的改进算法充分利用了浅层特征信息,减少了卷积过程中较小目标区域特征的信息丢失,且五个类别目标检测精确率均有显著提高。

2.3 锚框参数优化

YOLOv5中使用自适应锚定框(auto learning bounding box anchors)计算思想,采用K均值(K-Means)聚类算法,根据标注的目标框(ground truth)自动计算获取合适的锚定框。锚定框由训练数据自动学习获得。

由于自定义数据集检测目标的尺寸与公开数据集存在差异,YOLOv5 重新自动学习锚定框的尺寸。YOLOv5依据COCO数据集设置了九种锚定框,分别是(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。本文针对边界不明显的小目标,采用添加三个检测白细胞小目标的锚定框尺寸,分别为(5,6),(8,14),(15,11)。将锚定框按照检测层尺度进行分配,统计的锚定框分配如表2 所示,用于检测较小的白细胞。

表2 锚定框分配表Table 2 Anchor box allocation table

2.4 边框回归损失函数的改进

YOLOv5 的损失函数由边框回归损失(bounding box regression score)、置信度损失(objectness score)以及分类概率损失(class probability score)三部分组成。在边框回归损失中,采用完全交并比损失函数(complete intersection over union loss,CIOU Loss)[15]实现预测,如式(1)所示。

其中,b、bgt分别代表预测框和真实框的中心点,ρ代表计算两个中心点间的欧式距离,c代表能够同时包含预测框和真实框的最小闭包区域的对角线距离,w、wgt分别代表预测框和真实框的宽度,h、hgt分别代表预测框和真实框的宽度,IOU是预测框和真实框之间的交集和并集之比。

CIOU Loss考虑了边界框回归的重叠面积、中心点距离和纵横比,但忽略了宽高分别与其置信度的真实差异,阻碍了模型优化的有效性。针对这一问题,Zhang等人[16]在CIOU Loss的基础上将纵横比拆开,提出了有效交并比损失函数(efficient intersection over union loss,EIOU Loss)。

EIOU Loss 的惩罚项是在CIOU Loss 的惩罚项基础上将纵横比的影响因子拆开分别计算目标框和锚框的长和宽。该损失函数包含重叠损失、中心距离损失和宽高损失三部分,其中宽高损失直接使目标盒与锚盒的宽度和高度之差最小。EIOU Loss如式(5)所示:

其中,cw和ch是覆盖预测框和真实框的最小外接框的宽度和高度。

在边框回归损失中,EIOU Loss中的宽高损失使得收敛速度更快,精度更高,优于原网络中的CIOU Loss,因此本文采用性能更优的EIOU Loss边框回归损失函数。

3 实验结果和分析

3.1 实验环境

本文的处理器为Intel®CoreTMi9-10900X CPU@3.70 GHz,32 GB 运行内存,显卡为NVIDIA GEFORCE RTX 2080Ti,操作系统为Windows10,64 位。整个实验基于深度学习框架pytorch 1.7,实验环境是python 3.8,GPU加速软件为CUDA10.0和CUDNN7.6。

3.2 实验数据集

LISC 数据集[17]和BCCD 数据集[18]均是白细胞检测领域的经典数据集。LISC 数据库采集了8 名正常受试者的外周血中样品,获得242 张白细胞图像。BCCD 数据集筛选出了352 张白细胞图像。五种不同类型的白细胞图像如图4所示。

图4 五种类型的白细胞Fig.4 Five types of white blood cell

针对数据样本量不足的情况,本文对数据集进行了扩充。训练数据集为两个数据集的样本总和,并采用平移、旋转、加噪、镜像和裁剪等方法对数据集进行数据扩充,扩充后的样本数量是5 940幅图片。

3.3 评测指标

为了验证YOLOv5-CHE 改进算法的性能,本文主要使用精确度(precision,P)、召回率(recall,R)、平均精度(average precision,AP)、平均精度均值(mean average precision,mAP)和每秒检测帧数(frames per second,FPS)[19]等评价指标。

召回率定义为真阳性率与真阳性率及假阴性率和之比,如式(6),其中TP代表真阳性,FN代表假阴性。精确度定义为真阳性率与真阳性率及假阳性率和之比,如式(7)[19],其中FP代表假阳性。mAP 是对所有类别的平均精度(AP)求取均值后获得,如式(8)、(9)。

3.4 模型训练

在实验中,白细胞数据集按照7∶3比例随机划分为训练集和测试集。训练集和测试集的数量分别为4 158和1 782。输入图像尺度为640×640,批训练数据量为32,训练动量为0.9,初始学习率设为0.001,权重衰减为0.000 5,训练过程持续了100 个批次,采用随机梯度下降(stochastic gradient descent,SGD)作为优化函数对模型进行训练。此次实验总共训练6 个模型,分别是Faster RCNN、SDD、YOLOv3、YOLOv4、YOLOv5 和本文改进模型YOLOv5-CHE。

3.5 实验结果与分析

使用改进后YOLOv5-CHE模型在数据集上进行实验。实验得到的P-R(Precision-Recall)曲线如图5所示,其横轴是召回率,纵轴是精确率。由图5 中P-R 曲线可知,曲线越靠近坐标(1,1)位置,算法的性能越好。

图5 YOLOv5-CHE的P-R曲线Fig.5 P-R curve of YOLOv5-CHE

实验得到的算法性能结果如表3 所示。由表3 可知,改进YOLOv5-CHE 算法的精准率、召回率和mAP分别达到99.4%、99.5%、99.3%。实验结果证明,本文改进的算法对白细胞图像的分类识别精度更高。

表3 改进算法YOLOv5-CHE的Precision、Recall和mAP的结果Table 3 Precision,Recall and mAP results of improved model YOLOv5-CHE %

根据设置参数对白细胞数据集进行训练,图6分别为训练过程中YOLOv5算法和本文改进算法YOLOv5-CHE的边框回归损失、分类概率损失和置信度损失对比曲线。其中绿色线条代表本文改进算法YOLOv5-CHE曲线,红色线条代表的是YOLOv5 原算法,横坐标代表训练次数,纵坐标代表Loss值。

图6 训练损失对比曲线Fig.6 Training loss comparison curve

由图6(a)边框回归损失曲线可知,训练批次(epochs)数量在5到10批次之间时,YOLOv5算法和改进YOLOv5-CHE算法的边框回归损失值比较相近,而在之后的训练批次中,改进YOLOv5-CHE 算法的损失值一直都小于YOLOv5算法的损失值,且稳定在0.015左右。由图6(b)分类概率损失可知,改进YOLOv5-CHE算法较YOLOv5算法快速收敛,且损失值小于YOLOv5算法。图6(c)为置信度损失,改进YOLOv5-CHE 算法和YOLOv5 算法的置信度损失值相近,且始终小于YOLOv5算法的置信度损失值。由此可知,改进YOLOv5-CHE 算法使得最终的损失值小于原算法。

3.6 对比实验结果分析

表4 为原YOLOv5 算法和各个改进点对各类白细胞的mAP 对比结果。其中改进点1 是添加注意力机制CA,改进点2 是增加检测层,改进点3 是改变边框回归损失函数。

表4 各类别目标mAP对比Table 4 Comparison of target mAP by each category%

从表4可以看出,改进后算法的平均检测精度有明显的提升,改进点1 和改进点2 相比于YOLOv5 算法在嗜酸性粒细胞(Eosi)上分别提升了1.1 个百分点、1.2 个百分点,与其他种类细胞相比,提高的平均检测精度最高。改进点3 比YOLOv5 算法在单核细胞(Mono)提升了0.8个百分点。整体来看,改进后的YOLOv5-CHE对嗜酸性粒细胞(Eosi)、淋巴细胞(Lymp)、单核细胞(Mono)、中性粒细胞(Neut)这四类细胞的平均检测精度较高,特别是对于尺度较小单核细胞(Mono)的平均检测精度提升较大,提升了1.2个百分点。

为了进一步分析每个改进点对YOLOv5-CHE算法的贡献,本文进行了消融实验,实验结果如表5 所示。表5是以YOLOv5为标准算法逐步增加改进点,其中添加注意力机制、多尺度检测改进和优化锚定框以及边框回归损失函数的改进分别对应改进点1、2、3。

从表5 中可知,优化算法1 在标准算法中加入注意力机制,提升了mAP,可以使算法更加精准地定位和识别白细胞;优化算法2结合多尺度检测,提升了精确度、召回率,可以使小目标白细胞检测的准确率升高;优化算法3 结合边框回归损失函数,提升了精确度、mAP 和mAP@0.5∶0.95,可以整体提高白细胞的检测性能;将上述三类改进点同时作用于标准的YOLOv5算法时,精确度、召回率、mAP 和mAP@0.5∶0.95 都有提升。实验结果表明注意力机制、多尺度检测和边框回归损失函数的共同优化可以有效地提升白细胞检测的效果。

表5 消融实验Table 5 Ablation experiments %

为了更清楚展示在主干网络卷积之间添加坐标注意力机制对原算法的影响,抽取YOLOv5 算法和改进YOLOv5-CHE算法中间层的特征图进行比较,如图7所示。

图7 YOLOv5与改进YOLOv5-CHE算法的中间层特征图比较Fig.7 Comparison of middle features maps between YOLOv5 and improved YOLOv5-CHE algorithm

在图7中,第一列图片为YOLOv5算法中间层特征图,第二列图片为改进后YOLOv5-CHE 算法中间层特征图。图7(a)(b)分别为输入图像和标注图;图7(c)(d)是通过卷积层后尺度大小为P/2 的中间层特征图;图7(e)(f)是通过卷积层后尺度大小为P/4 的中间层特征图;图7(g)(h)是通过卷积层后尺度大小为P/8 的中间层特征图;图7(i)(j)和图7(k)(l)分别是通过卷积层后尺度大小为P/16 和P/32 的中间层特征图。从图7(c)(d)和图7(e)(f)可以看出,改进后YOLOv5-CHE 算法(右侧)提取了更多的浅层特征,可以大概看清细胞的轮廓;从图7(g)(h)和图7(i)(j)可以看出,两种方法通过不断地卷积,提取了语义特征,未看到细胞的具体特征;从图7(k)(l)可以看出,添加坐标注意力机制可以清晰地辨别出细胞的具体位置,这将使最后改进算法的检测细胞的置信度高于原算法。

同时,为了展示多尺度检测和锚定框改进,随机选取算法不同尺度输出特征图和检测结果,结果如图8所示。

图8 输出特征图及检测结果Fig.8 Output feature diagrams and detection results

图8(a)~(d)分别是YOLOv5算法尺度大小76×76、38×38、19×19和检测结果,图8(e)~(i)分别是YOLOv5-CHE 算法尺度大小160×160、80×80、40×40、20×20 和检测结果。从图8(e)(f)可以看出,改进YOLOv5-CHE算法在160×160、80×80尺度下能提取清晰的细胞轮廓,使检测结果置信度高于YOLOv5算法。

为了验证YOLOv5-CHE 在白细胞检测中的有效性,与现有的主流目标检测算法进行比较,实验以精度和FPS作为评价指标。结果如表6所示。

表6 与现有算法的对比Table 6 Comparison with existing models

由表6可知,在相同的公开数据集上,YOLOv5-CHE算法的检测精度为99.4%,相比Faster RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5 算法,精确度分别提高了3.26个百分点、10.51个百分点、3.81个百分点、1.76个百分点和1.80 个百分点。从检测精度来看,YOLOv5-CHE算法的精度均优于其他算法。

同时,从检测速率(FPS)来看,YOLOv5-CHE 的检测速率优于Faster RCNN、YOLOv3 和YOLOv4 算法,YOLOv5-CHE 比Faster RCNN 检测速率快了44.3 倍,比YOLOv3 和YOLOv4 算法分别快了1.3 倍、2.03 倍。YOLOv5-CHE 与SSD 算法相比,检测速率只慢了4 帧,换来的是检测精度大幅度提升,提高了10.51 个百分点。YOLOv5-CHE 与YOLOv5 算法相比,检测速率仅慢了0.5 帧,检测精度却提升了1.80 个百分点。这表明本文YOLOv5-CHE 算法在检测速率未有很大降低时,精确度有一定的提升。

从算法结构上来看,Faster RCNN算法为双阶段目标检测代表算法,它主要分两步:第一步先提取候选框(region proposal),判断是前景还是背景的问题,第二步再分类。因此,Faster RCNN算法检测速率比较慢。而YOLO系列和SSD算法为一阶段目标检测算法,直接通过回归(regression)一次既产生坐标,又产生每种类别的概率。其中,SSD 算法主干网络的卷积层数量小于YOLO 系列,精简算法的数据量,使检测速率更快。因此一阶段目标检测算法在候选框数量和网络上的简化,导致算法速率大幅度提升。

综合考虑,改进后YOLOv5-CHE 算法可以达到目标检测在速率与精度上更好的平衡。

3.7 检测结果

为了展示YOLOv5-CHE算法对于白细胞的检测效果,从测试集中随机地选取不同种类的白细胞图片进行测试,测试结果如图9所示。

本文采用改进YOLOv5-CHE算法对白细胞图像进行识别,此算法使用了多个卷积神经网络,诸如:浅层神经网络用来提取图像的颜色、边缘、纹理等特征信息,深层神经网络用来提取图像的语义特征。然后使用特征金字塔网络结构和路径聚集网络结构实现了不同尺度特征信息的融合,最终实现对五种不同种类细胞的检测。

本文在YOLOv5算法和改进YOLOv5-CHE算法上的检测效果如图9 所示。其中图9(a)是YOLOv5 算法检测效果图,图9(b)是改进算法YOLOv5-CHE 的检测效果图。从第五行中可以明显看出原始YOLOv5 算法将淋巴细胞(Lymp)检测错误,但改进YOLOv5-CHE 算法将此种类细胞检测正确且提高检测的置信度。从全部对比图可以看出,改进YOLOv5-CHE 目标检测算法对于白细胞检测的整体置信度和效果均高于YOLOv5算法。结果证明改进后的模型可以准确检测各种类型白细胞,能够很好地实现对白细胞检测。

图9 不同种类细胞检测结果Fig.9 Detection results of different types of cells

4 结束语

为解决白细胞外观复杂,类间差别小,边界特征不明显,检测目标小,以及白细胞数据样本少导致的白细胞检测精度低等问题,本文通过添加注意力机制,增大输入尺度,采用四种尺度检测,优化锚定框以及改变边框回归损失函数等措施,提出了一种改进的白细胞图像检测算法YOLOv5-CHE。在合并后数据集上进行大量实验,结果表明,YOLOv5-CHE算法比YOLOv5在精确度、召回率、mAP和mAP@0.5∶0.95上分别提升了1.8个百分点、1.5个百分点、1.0个百分点和3.8个百分点。与现有网络结构相比,本文算法对白细胞图像分类识别的准确率最高。本文仅仅只是对白细胞中的五类进行了分类识别,但是临床上不同时期的白细胞具有不同的状态,还需要完善数据库,探索更多种类白细胞的分类识别。同时也希望开发出具有完整的界面和软硬件平台的白细胞分类系统,更好地用于辅助医生的诊断。

猜你喜欢
边框白细胞尺度
一模六产品筛板模具的设计与应用
智能制造(2022年4期)2022-08-18 16:21:14
白细胞
中国宝玉石(2021年5期)2021-11-18 07:34:50
财产的五大尺度和五重应对
用Lightroom添加宝丽来边框
给照片制作专业级的边框
白细胞降到多少应停止放疗
人人健康(2017年19期)2017-10-20 14:38:31
宇宙的尺度
太空探索(2016年5期)2016-07-12 15:17:55
摆脱边框的束缚优派
中国照明(2016年6期)2016-06-15 20:30:14
9
鸡住白细胞虫病防治体会