基于YOLO 框架的血细胞自动计数研究

2020-07-17 08:19徐晓涛孙亚东
计算机工程与应用 2020年14期
关键词:锚框血细胞卷积

徐晓涛,孙亚东,章 军

安徽大学 电气工程与自动化学院,合肥 230601

1 引言

血细胞计数是血液检验的一项重要内容,在生物医学实验、临床医学诊断等领域都起着重要的作用。如血涂片是目前临床检测上比较常见的一种方式,通过检测患者血液标本中的白细胞、红细胞、血小板等各项指标,同时观察细胞数量的多少和形态的异常能够准确地判断出患者的疾病类型和发展程度,以便采取及时、有效的治疗方案[1]。

由于大量细胞显微图像形态多样并且背景复杂,使用图像处理算法对算法细胞的自动识别和计数仍然是一个巨大的挑战。目前的细胞检测和计数方法主要为两类:早期主要使用传统图像处理技术,如基于霍夫变换的自动细胞识别技术[2-4]、基于距离变换的分水岭方法[5]和基于阈值的方法[6-8]。通常基于阈值的分割算法将细胞作为单独的区域分割开,易于实现且效率高,但当血细胞图片包含大量重叠细胞时,容易造成边界信息缺失和分割不完善。在实际细胞图像检测应用中会面临各种复杂的情况,使用传统的图像处理方法不能完全解决,特别在细胞重叠度高的区域其准确率上达不到要求。近年来,一些基于深度卷积神经网络(Convolutional Neural Network,CNN)[9]等深度学习方法在分类、目标识别、语义分割等领域都获得了成功的应用,基于深度学习的目标检测方法也已经应用于细胞检测和计数中。该算法[10]主要分为两大类:一类是两阶段算法,代表性算法为 R-CNN[11]、Fast R-CNN[12]、Faster R-CNN[13]以及Mask R-CNN[14]算法。两阶段算法通常其检测精度较高,但需要耗费较长的计算时间。而另一类算法为一阶段算法,代表性算法为YOLO[15]、SSD[16]和YOLO9000[17],这类算法能够产生高质量的候选框,需要的计算时间较少,同时也能获得较好的识别精度。而实用的血细胞检测算法需要部署在CPU甚至嵌入式系统上,因此需要采用一种具有较低计算复杂度,同时识别精度较高的算法。本文选择了一阶段算法中的YOLO框架,但由于血细胞图像中需要检测的都是小目标,而原始的YOLO框架对小目标检测性能较差,本文基于YOLO框架做了改进,通过加入密集连接,尽可能地让每一层的特征图都能接受到前面所有层的输出,并进行特征拼接(concatenate)来达到数据融合和特征复用,以增强YOLO算法对小目标的识别。通过血细胞数据集实验验证,和其他方法相比较,本文方法的检测效果显著提升。

2 基于YOLO的自动血细胞检测的原理

在采集血细胞染色图片中,会出现大量细胞粘连现象,这无疑增大了检测的难度。本文选择的基础检测网络框架为YOLO算法,其运行速度优于Faster R-CNN系列算法,但该算法对检测小目标的物体精度较差。本文借鉴了DenseNet[18]网络的思想,将该模型和YOLO模型结合,提出了一种YOLO-Dense网络,该网络不仅在检测精度上比原始的YOLO算法有所提高,同时在检测速度上也明显提升。

2.1 基础网络的改进

针对原始的YOLO网络小目标检测精度较低,本文网络框架如图1所示,其中引入Faster R-CNN中使用锚框(anchor boxes)[19]的思想,为了使网络能够检测不同大小的物体,网络会预先将每幅检测图片分成多块,在网络训练过程中会对每块预测三个不同大小锚框,并根据锚框与真实目标的重叠区域置信度(锚框中包含一个物体的可信程度)来判断最终的预测框。而预测锚框标定的大小使用训练数据中标定的边框通过K-means算法聚类得到。同时在基础网络中,本文引入了残差模块和多尺度预测来提高对小目标的识别,同时通过跳层连接进行残差训练以减小损失,比较有效地解决了深层网络梯度弥散和爆炸等问题。在网络的输出层,原始YOLO网络使用的Softmax分类器对两类细胞同时存在于同个网格的情况无法正确识别与定位,因此本文对每个不同的细胞类别使用单独的Logistic分类器预测每个锚框属于特定类别的置信度,并用其取代原有Softmax分类器。

图1 基础网络架构

2.2 DenseNet网络介绍

2017年Huang等提出了一种全新的网络结构DenseNet,该网络结构借鉴了ResNet[20]的思想。在保证特征信息在层与层之间最大程度传输的前提下,将网络中所有层两两连接,使其网络结构更加紧密。

DenseNet为使特征图在密集连接传递过程中保持尺寸统一,故将网络结构分为3个密集块,每个密集块的3×3卷积前面都包含了一个1×1的卷积操作,即瓶颈层(bottleneck layer),其作用是减少输入的特征图数量,起到了模型压缩和加速的作用。连接相邻密集块结构成为迁移层(transition layer),它由一个卷积层和一个最大池化层组成。如图2所示。

由于DenseNet可以像残差网络一样减轻梯度消失的情况,加强图片不同层之间特征信息的传递,因而能更有效地利用图片中提取的特征,同时模型采用的都是小卷积核,能够进一步减少计算量。本文正是利用DenseNet中这些特点,引入密集模块,使网络可以更好地识别血细胞图片中的不同种类细胞。

图2 DenseNet网络结构示意图

2.3 网络特征提取部分

随着深度卷积神经网络层数的加深,必然会造成信息在传递的过程中丢失,不能很好地利用多层特征信息之间的相关性,导致检测精度降低。为实现多层特征复用和融合,避免新增结构带来的计算复杂度,本文将网络的63~74层替换为密集模块,并增加一个卷积层,其卷积核数设置为1 024,将YOLO的基础网络和密集网络结合,构建一个YOLO-Dense网络。更改的结构能够更有效地利用预测层中提取的特征,因而其检测速度也比原始的YOLO要快。

网络的密集模块的具体结构如图3所示。在密集模块中:

其中,x0为模块输入特征图,xl表示第l层的输出。[x0,x1,…,xl-1]表示对 x0,x1,…,xl-1的拼接。 Hl(⋅)为BN(Batch Normalization)、ReLU(Rectified Linear Units)及卷积的组合函数,实现第l层非线性变换。

图3 YOLO-Dense网络密集模块结构示意图

在YOLO中加入Dense模块后,YOLO在小目标识别精度上有一定提高,但在血细胞的数据集中,白细胞相比血小板较大。与Faster R-CNN相比较,YOLO对较大目标白细胞检测精度仍有较大的提升空间。因此,本文在Dense模块的基础上,引入特征金字塔网络[21](Feature Pyramid Network,FPN)的思想对原YOLO的特征提取部分进一步做如下改进,如图4所示。

本文将特征提取部分的输出13×13×1 024与第61层输出的26×26×512降采样得到的特征拼接在一起。由于深层的特征语义信息比较丰富,但是目标位置不清晰;浅层的特征语义信息比较少,但目标位置精确,所以本文结合特征金字塔网络思想,融合浅层和深层的输出,让网络同时学习深层和浅层特征,以提高对目标的识别与检测。随后采用两个1×1卷积核而不采用全连接的方式,其主要作用不改变特征图的大小,减少了特征信息的丢失。

2.4 网络多尺度特征融合和实验参数的选取

在卷积神经网络的前向传播过程中,低层特征语义信息较少,但目标位置信息准确;高层特征语义信息较丰富,但目标位置信息较粗略。为了加强本文算法对小目标检测的精确度,在网络的特征交互部分借鉴特征金字塔的多尺度模块原理,并针对血细胞识别中细胞形态学特点,把高层特征与低层特征进行自上而下的侧边连接,使得针对小目标检测的的深层网络特征同时具备丰富的语义信息和位置信息。

具体过程如图5所示:把高层特征进行上采样,然后将其和对应的前一层特征输出结合进而与低层特征进行融合。其中采样模块由1×1卷积+BN层+LeakyReLU+上采样组成。在进行了两次采样以及特征融合后,在对小尺度目标的预测上,具有更加深层次的CNN网络结构,并产生了较其他两种尺度更为精细的特征图。而且越细小的网格划分对小目标的适应能力越好,本文特征图的大尺度分辨率更是达到52×52,极大提高了对小目标的识别。

图4 YOLO-Dense中特征提取部分网络(13×13)结构示意图

图5 YOLO-Dense网络示意图

本文的实验平台配置为Intel®Xeon®CPU E3-1245 v3@3.40 GHz处理器,32 GB运行内存,2 TB硬盘容量,12 GB GTX Titan X GPU,系统为Ubuntu 16.04。网络在训练阶段采用动量项为0.9的异步随机梯度下降,每一个批次(batch)包含68张图像,权值的初始学习率为0.01,衰减的系数设置为0.000 5。由于对比实验中需要对不同改进结构进行训练,其能达到最优识别性能的迭代次数也不相同,因此本文训练时动态监控,每1 000次迭代保存一次网络的权重文件,以便选取其最佳权重文件,防止过拟合。

3 实验设计和结果分析

3.1 实验数据集

本文数据集是将采集到的血细胞图片使用改良过的瑞特-吉姆萨双重染色法[22]进行染色,得到了较为清晰的血细胞染色图片,并在医生的指导下进行专业的人工标注,最终得到800张640×480的显微图像,每张细胞图片包括白细胞、红细胞和血小板三类。对于处于图片边缘的局部细胞,如果面积小于整个细胞的30%则不对其进行标注,高度粘连的细胞(细胞重叠部分超过80%)只标注成一个细胞。实验中,随机选取700张图片作为训练集,100张作为测试集,部分示例样本如图6所示。

图6 示例细胞图片及其对应的标注

3.2 评估标准

本文主要使用平均检测精度mAP(mean Average Precision)作为识别性能的评估标准。检测精度AP(Average Precision)指的是该类别的精确率(Precision)对该类别的召回率(Recall)的和,而mAP是对所有细胞类别取平均,下面给出精确度和召回率的定义:

以红细胞为例,TP表示正确检测出来的红细胞,FP则为错误检测出来的红细胞,FN表示没有被检测出来的红细胞。而Average Precision(AP)的计算公式为:

P、R分别为公式(2)和(3)中定义的精确率和召回率,Q为类别数。

本文涉及到细胞计数,所以引入了两个新的评价指标:漏检个数,即有多少细胞被漏检;误检个数,即有多少细胞被误检,通过这两个指标,能够更直观地判断模型的优劣。

3.3 实验结果分析

在深度学习中,训练样本图像的质量以及多样性,直接影响到CNN目标检测精度。但由于血细胞图片的采样与获取较为困难,所以目前数据集仅有800张图片,缺少样本多样性,因此三种框架检测结果均有待提高。

在该数据集中,由于细胞粘连的情况下细胞的信息损失严重,原YOLO网络的漏检较多,同时也有很多误检,而本文提出的YOLO-Dense模型则有较大的改进,检测效果示例如图7所示,改进后的YOLO-Dense模型漏检和误检较少。

图7 不同网络结构的检测结果对比示意图

在原始YOLO算法对细胞检测识别率低的情况下,提出的最新改进后网络结构YOLO-Dense在8 000迭代时,模型得到其最优性能。其中测试集检测结果如表1、表2所示。

表1 三种目标检测算法识别精度对比(AP)

表2 三种目标检测算法综合识别性能对比

实验结果上可以看出,原始YOLO网络的细胞的平均检测精度最低,尤其是白细胞检测精度仅为0.36。分析其原因主要是原始YOLO网络直接将一幅图像分成7×7个网格,对每个网格预测2个框,并且每个格子只预测出一个物体。而本文数据集中一个白细胞大约占整张图片1/8,由于白细胞过大且数量较少,极易造成白细胞定位不准确的情况,所以原始YOLO算法很难正确检测出白细胞数量。不仅如此,原始YOLO网络由于对每个预测框只检测为一个类,本数据集中红细胞粘连情况较多,且血小板仅占整张图片1/118。所以对相互靠得很近的红细胞,以及过小的血小板检测效果均不理想。

Faster R-CNN在大目标(白细胞)识别中精度最高,但平均识别精度只比原始的YOLO高。究其原因,Faster R-CNN与YOLO网络最大不同是将回归与分类分开进行,虽然在检测精度上大幅提高,但检测速度却远远落后于其他两种网络框架。其次,Faster R-CNN引入anchor思想对特征图的每一个位置预测9个等比例于原图的长宽比以及面积比的锚框,大大提高了模型的位置预测能力。但由于Faster R-CNN未对锚框进行聚类分析,所以针对于PASCAL VOC数据集的锚框并不适用于本数据集特点,导致血小板检测精度低。但相反白细胞更接近于PASCAL VOC数据集特点,且细胞清晰可辨,所以检测精度才能达到0.94。

对于本文提出的YOLO-Dense网络,虽然在密集连接时网络会显得比较冗余,但并不会增加太多参数量和计算量,从而对检测速度不会产生过多影响。特别是采用密集网络连接的拼接方式,使得每层直接从损失函数中得到梯度和输入信号,从而能够训练更深的网络,进一步提高网络的检测精度同时减少检测速度,提升网络总体性能。本文也借鉴anchor的思想,对YOLO-Dense的多个尺度均预测3个锚框(即每个单元格预测3×3个锚框),使其与Faster R-CNN的锚框数持平,并且针对不同大小的目标设置不同尺度进行检测,极大提高了检测的精度。网络输出层使用了Logistic分类器取代原来所使用Softmax分类器,使得最终的检测精度也提高了0.3。并且从表2中也可以看出,本文提出的网络平均识别精度最高,误检个数和漏检个数也最少,但检测时间却比Faster R-CNN快近10倍。

4 结束语

本文基于深度学习YOLO框架提出了一种改进的血细胞目标检测方法。将DenseNet的密集连接思想融入到原YOLO网络特征提取部分,实现了特征信息的高度融合和复用;同时运用特征金字塔的思想,将浅层信息与深层信息相融合,进一步提高特征信息的融合,提高细胞检测精度。实验表明该优化模型检测精度高、速度快、对模糊和粘连细胞检测具有更强的鲁棒性,均值平均精度达到了0.86,且检测速度达24.9 ms,获得了较好的检测效果,实验验证该方法能够用于血细胞自动检测计数。

猜你喜欢
锚框血细胞卷积
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
基于3D-Winograd的快速卷积算法设计及FPGA实现
施氏魮(Barbonymus schwanenfeldii)外周血液及造血器官血细胞发生的观察
基于深度学习的齿轮视觉微小缺陷检测①
卷积神经网络的分析与设计
血细胞分析中危急值的应用评价
从滤波器理解卷积
沙塘鳢的血细胞分析