基于改进U-Net的白细胞提取方法研究
2022-11-02江少锋
周 鑫,江少锋
(1.江西医学高等专科学校医学影像学院,江西上饶 334100;2.南昌航空大学测试与光电工程学院,南昌 330063)
0 引言
血液主要包含白细胞、红细胞、血小板等,在机体损伤愈合、抗御病原的入侵和疾病免疫方面起着重要作用,其中各类白细胞的数量统计是医生诊断疾病的重要依据[1]。因此,白细胞的识别分类在医学临床检测上有着重要的实际意义。相比红细胞和血小板,白细胞分布稀疏、形状不一,是血细胞检测中的难点。目前,人工血涂片镜检方法的检验工作量大、检验效率低[2],基于计算机辅助的白细胞分析方法能够大大提高分析效率,因而成为研究主流[3]。该方法首先采用图像分割技术将白细胞从血细胞涂片图像中分割、提取出来,然后对白细胞进行特征提取,最后采用模式识别方法进行自动分类。目前有2种基本的白细胞分析方法,包含早期基于传统图像处理的方法和近期基于深度学习的图像处理方法。
早期方法主要采用传统的图像分割方法,如阈值法[4]、区域生长法[5]、模糊聚类法[6]、分水岭分割法[7]、K均值聚类法[8-9]、边缘检测法[1]等,先将白细胞从血涂片图像中分割出来,然后再采用支持向量机(support vector machine,SVM)[10-11]、人工神经网络[12-13]等分类方法对白细胞进行分类和计数。Neelam等[14]的对比试验表明采用SVM和人工神经网络的分类准确率分别达到94%和97%。然而血涂片图像大多分辨力较高、红细胞较多、白细胞较少且占图像面积较小,采用传统分割方法提取白细胞容易受到红细胞、杂质、噪声及光照干扰,该过程复杂、泛化性较弱,常常出现提取错误且难以解决细胞粘连的问题[15]。
随着卷积神经网络(convolutional neural networks,CNN)研究的深入[16],研究人员开始将CNN应用于白细胞识别。Habibzadeh等[17]采用常规CNN获得了85%的分类准确率。Shahin等[18]采用微调的AlexNet网络获得了91.2%的分类准确率。Acevedo等[19]采用微调的VGG16网络获得了96%的分类准确率。以上分类结果均不涉及白细胞的提取过程,如将提取的准确率考虑进去,其分类效果有待验证。比如陈畅等[20]在Caffe平台实现了白细胞的分类,但是白细胞是通过手工提取的。贾洪飞[21]在Caffe平台实现了白细胞的分类,其准确率在99%以上,但是其白细胞的提取是采用传统算法来实现的,提取准确率只有95%,大大影响了整体的识别精度。可见在白细胞识别分类的应用中,白细胞分类的准确率已经达到很高,但是白细胞的提取目前多是采用传统的图像分割方法,精度仍需提高,因此,目前白细胞的准确提取更为重要。
U-Net[22]作为一种具有完全对称结构的全卷积神经网络,在结构两边使用了跳跃连接,其能够在小样本条件下快速收敛,准确定位出目标的位置信息,在医学图像分割中被广泛应用[23-24]。但是U-Net仅采用灰度特征进行学习训练,缺乏相应的宏观特征作为指导,导致采用U-Net对白细胞提取时不能有效地分离粘连细胞。
2017年,Ren等[25]提出了Faster R-CNN算法,基于Faster R-CNN算法设计了一种神经网络,对每个像素点生成4个预测框,通过预测框实现目标提取。Faster R-CNN算法已经被广泛应用于各种领域,是目前目标检测的重要算法之一[26-27]。但是在采用Faster R-CNN算法对白细胞提取的时候,由于预测框的大小是固定的,目标大小对检测结果的影响较大,容易遗漏过大或过小的白细胞。
针对上述问题,本研究提出基于改进U-Net的白细胞提取方法,以解决白细胞提取准确率低的问题。该方法通过在U-Net中引入边长、面积、细胞数等信息,使得该网络既能适用于不同大小的白细胞检测,又能通过引入的各种信息实现粘连细胞的分离。
1 U-Net
U-Net是CNN的一种变形,因其结构形似字母“U”,因而得名U-Net,其结构图如图1所示。整个神经网络主要由2个部分组成:左边的收缩路径和右边的扩展路径。收缩路径主要用来捕捉图片中的上下文信息,而与之相对称的扩展路径则对图片中所需要分割出来的部分进行精准定位。收缩路径上每2个3×3的卷积层后跟一个2×2的最大池化层(步长为2),每个卷积层后面采用relu激活函数,每一次降采样都会增加一倍通道数。在扩展路径的向上采样中,每一步由一个2×2的卷积层(激活函数也是relu)和2个3×3的卷积层组成,同时每一步的上采样都会加入来自相对应收缩路径的特征图。在网络的最后一层是一个1×1的卷积层,通过这一操作可以将64通道的特征向量转换为所需要的分类结果的数量,最终U-Net的整个网络一共有23层卷积层。
图1 U-Net结构图
2 改进U-Net
将上述常规U-Net用于白细胞的提取时,如果血涂片中的细胞没有粘连,将能够得到较好的提取效果。但是当邻近的细胞存在粘连的现象或者靠得很近时,常规U-Net采用简单二值交叉熵损失函数并不具备形状区分的能力,故解决不了血涂片存在的细胞粘连问题。显而易见,粘连的细胞和单独的细胞在形状上存在显著差异,为此,本研究在U-Net的基础上增加了一个形状特征的提取网络,并将形状信息引入到损失函数中,从而使得U-Net具备了一定的形状区分能力,解决了血涂片中细胞粘连的问题。改进后的U-Net(以下称“改进U-Net”)结构图如图2所示,从图2中可以看到,网络中的下半部分就是标准的U-Net,上半部分增加了一个形状卷积网络。该网络先借鉴Faster R-CNN算法对U-Net第8层进行一个3×3的卷积,再进行一个1×1的卷积分别得到5个形状通道,分别是W、H、S、N和I通道,分别对应宽度、高度、面积、细胞数量和白细胞标记(位于标记框中的点均设置I为1,表示该位置属于某一个白细胞,反之设为0)。选择从第8层提取形状特征的原因是该层既不太深也不太浅,既包含了足够的细节信息也包含了必要的高层次语言信息,同时特征维度也很低,计算量较小。由于这5个形状通道是通过卷积得到的,本研究称之为卷积形状特征层,与之对应的是标记形状特征层,由和输入图像对应的白细胞标记图像通过计算得到。计算方法为:首先对血涂片中的每个白细胞通过二值图像方法进行标记,在标记形状特征层中,对于标记框中的点均设置I为1,W、H和S分别设置为标记框的归一化宽度、高度和面积,N设置为血涂片中所有标记为白细胞的归一化数目,对于不在标记框中的点,所有值都设为0。计算公式如下:W=WB/WI、H=HB/HI、S=SB/SI,N=NI/NM,式中,WB、HB、SB、NI分别为标记框的宽度、高度、面积和白细胞数目;WI、HI、SI、NM分别为图像的宽度、高度、面积和白细胞最大数目。因此,W、H、S、N均为0到1之间的归一化参数。
图2 改进后的U-Net结构图
训练时,本研究计算了2个Loss(损失)函数,分别是U-Net Loss函数(LU-Net)和Shape Loss函数(LShape)。总的Loss函数Total Loss(LTotal)定义为它们的和,即默认这2个Loss函数取相同权重。U-Net Loss函数由公式(1)定义,为交叉二值熵,其范围为0~1;Shape Loss函数由公式(2)定义,为归一化特征距离,其范围也为0~1。
图3 粘连细胞分割示意图
3 试验结果与分析
3.1 数据集
本研究采用的数据集是通过电子显微镜人工拍摄南昌大学第四附属医院制备的血涂片图像得到的,像素大小为800×640,共430张图片,每张图片内含有数目不定(1~10个)的白细胞,其中330张血涂片图像为训练集,100张血涂片图像为测试集。所有图像中的细胞由本校检验专业教师进行人工提取,作为金标准。对每张图片进行左、右翻转以及旋转90°操作,实现数据扩充,最终得到1 000多张训练图像。本试验基于TensorFlow的Keras框架,在装有英伟达Quadro 6000 GPU的Linux计算服务器进行训练。为了保证在降采样过程中不会丢失小面积目标,网络的输入层设为800×640×3的矩阵,故而计算量较大。先采用常规U-Net进行训练,每轮训练1 000次,共训练60轮,训练总时长为10 h,LU-Net降到0.001 5。再将训练好的U-Net导入改进U-Net进行训练,每轮训练1 000次,共训练60轮,训练时长为20 h,LTotal降到0.028。Faster R-CNN采用ResNet50模型,每轮训练1 000次,共训练60轮,训练时长为9 h。3种网络训练过程的损失曲线如图4所示,可以看到60轮后损失均达到稳定。图4中每个损失曲线包含2条损失轨迹,浅色的轨迹是真实的损失曲线,深色的轨迹是平滑后(平滑度数为0.6)的损失曲线。可以看到改进U-Net得到的损失曲线更为平滑,训练过程更为稳定。
图4 3种网络的训练损失曲线
3.2 白细胞提取过程
对于U-Net和改进U-Net,将测试血涂片图像输入训练好的模型进行白细胞分割得到二值分割结果,然后对该二值图像进行连通区域提取[28],得到每个白细胞的矩形框区域,从而实现血涂片图像中白细胞的提取。而对于Faster R-CNN,将测试血涂片图像输入训练好的模型可以直接得到每个白细胞的矩形框区域。
3.3 测试结果与分析
常规U-Net、Faster R-CNN和改进U-Net 3种方法的检测结果详见表1。查准率P是针对预测样本而言,表示预测结果为正例中实际正例的占比;查全率R是针对原样本而言,表示白细胞被正确预测的比例;F1是由查全率以及查准率计算而得到的二分类模型精确度的衡量指标。具体计算过程如下:
表1 3种方法的检测结果
式中,TP、FN、FP、TN分别代表真正例、假反例、假正例、真反例。
从表1中可以看出,改进U-Net算法的F1、R和P 3个评价指标均最优。改进U-Net的综合评价指标F1为99.20%,较U-Net、Faster R-CNN分别提高了0.80%、2.19%。正是由于改进U-Net比U-Net对粘连细胞有更好的处理效果,不会丢失细胞,因此改进U-Net比U-Net获得了更高的R和F1。相比而言,Faster R-CNN不仅存在检测不到细胞的情况,还存在部分错检情况,故在3个评价指标上表现最差。
3种方法对粘连白细胞的检测结果如图5所示,从图中可以看出,改进U-Net和Faster R-CNN可以有效解决粘连细胞的分离问题,而U-Net对粘连细胞分离效果不好。图6为3种方法对不同尺寸白细胞的检测结果,可见图6中的2个细胞尺寸相差较大,而改进U-Net和U-Net对不同尺寸白细胞均有较好的检测结果,但Faster R-CNN没有检测到图中的小尺寸细胞。
图5 3种方法对粘连白细胞的检测结果
图6 3种方法对不同尺寸的白细胞检测结果
4 结论和展望
白细胞是机体重要的免疫细胞,血液中白细胞的数目为机体健康诊断的重要指标之一。传统分割算法容易受到红细胞以及杂质噪声等干扰,无法准确定位血涂片图像中的白细胞。当前常用的U-Net和Faster R-CNN在图像分割和目标检测中得到大量应用,但是当将二者用于白细胞检测时,Faster R-CNN能有效分离粘连细胞,但是目标尺寸对提取结果影响较大。U-Net对目标尺寸有较好的适应度,但是分离粘连细胞能力差。本研究通过改进U-Net,将卷积得到的形状信息引入训练损失函数,既解决了粘连细胞分离的问题,又使网络对细胞尺寸不敏感。试验结果显示,改进U-Net提取白细胞的能力较Faster R-CNN和U-Net均有明显提升。本方法的不足之处在于需要采用连通区域分析才能得到类似于Faster R-CNN中的矩形提取框,后续研究可将本研究方法和Faster R-CNN相结合,以期不但提高提取精度,还能直接得到提取框。