基于加权损失函数的粘连白细胞分割算法

2021-01-18 08:04赵晓晴李慧盈苏安炀张海涛刘景鑫顾桂颖
吉林大学学报(理学版) 2021年1期
关键词:像素点白细胞边界

赵晓晴, 李慧盈,2, 苏安炀, 张海涛, 刘景鑫, 顾桂颖

(1. 吉林大学 计算机科学与技术学院, 长春 130012;2. 吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012; 3. 吉林大学 软件学院, 长春 130012;4. 吉林大学中日联合医院 放射科, 长春 130033; 5. 吉林大学中日联合医院 血液与肿瘤科, 长春 130033)

精准分割白细胞具有医学检验意义[1], 传统检测中各类白细胞的数目通过人工方法进行计数[2-3], 由于不同病理学家的专业技能和经验存在差异, 因此人工计数的准确率较低[4]. 计算机辅助分割医学图像不仅可排除人工计数过程中的干扰因素, 而且可提升病理检测结果的可靠性. 基于深度学习的图像分割算法可对医学影像进行处理分析, 自动分割感兴趣区域(ROI), 更便于提取高维数据中的特征信息[5-6]. Long等[7]提出了一种全卷积神经网络(FCN), 将卷积神经网络(CNN)中的图像级分类改为像素级分类, 同时, 该网络允许任何尺寸的输入图像; Guerrero-Pena等[8]基于细胞的图形结构及分割过程中的类别不平衡问题, 提出了两种权重图应用于交叉熵损失函数, 分割粘连细胞; Chen等[9]提出了一种关注边界特征的全卷积网络(DCAN), 用于从组织学图像中分割腺体, 改善腺癌的自动诊断, 并用该方法证明了加强模型学习边界特征的优越性[10].

目前, 急性淋巴细胞白血病(ALL)显微图像的白细胞分割技术的难点是红细胞的干扰和粘连白细胞的精准分割. 为排除图像中红细胞等噪声像素点的干扰, 本文采用一种基于色彩空间变换的白细胞检测方法, 提取目标白细胞; 为分割粘连白细胞, 除细胞内部区域和背景区域外, 将细胞边界区域的像素点作为分割过程中的第三类, 并通过基于类别权重的加权交叉熵损失函数, 强化深度学习模型对细胞边界特征的学习. 本文方法使白细胞分割准确率达95.19%.

1 算法设计

1.1 基于色彩空间变换的白细胞提取算法

在ALL患者的血液细胞显微图像中检测并提取白细胞, 是通过消除其他区域和颗粒(如红细胞、 血小板和噪声像素点)实现的. 图像中的血小板和染色过程中产生的噪声像素点构成了脉冲噪声, 相比于均值滤波器、 高斯滤波器等其他滤波器, 中值滤波器对脉冲噪声有良好的滤除作用, 且能保留边界的细节特征. 所以, 在提取前需对图像进行中值滤波[11-12], 即用统计学的中值方法, 选定像素点的灰度值为其周围像素点灰度值的中值, 通过该非线性滤波器, 滤除图像中的噪声点, 从而提高信噪比.

在计算机视觉领域, 色彩空间是描述颜色的特定方式, 包括颜色模型和映射函数, 颜色模型表示像素点的值, 而映射函数可将特定颜色映射到包括所有颜色的集合中. RGB是应用最广的颜色空间, HSV是基于人类对颜色感知而提出的色彩空间. 彩色图像一般用R(红色)、 G(绿色)和B(蓝色)3个色带表示, 这3个色带的值均会随亮度的变化而改变. 因此, 对于白细胞显微图像, RGB颜色空间更适合于图像展示, 但其并不适合图像处理与分析. 而HSV色彩空间中的饱和度(S)与人眼的感知密切相关, 亮度(V)与颜色自身无关, 色调(H)可显著区分血涂片中的红细胞和白细胞(在染色后的ALL显微图像中, 白细胞呈紫色, 红细胞呈红色). 图1显示了RGB和HSV色彩空间中的单色带分量, 其中: (A)为中值滤波后的ALL显微图像; (B)~(D)分别为R,G和B的提取结果; (E)~(G)分别为H,S和V的提取结果. 由图1可见, RGB色彩空间对红细胞等干扰因素和白细胞的区分无显著作用, 而HSV色彩空间更适合于血液细胞显微图像的边缘检测和分割.

图1 RGB和HSV色彩空间单色带分量提取结果Fig.1 Extraction results of monochromatic band components in RGB and HSV color space

算法1基于颜色空间变换的白细胞提取算法.

输入: 原始ALL患者的血液细胞显微图像;

输出: 前景为白细胞区域的二值图像.

步骤1) 用cv2.medianBlur( )函数和(25,25)的中值滤波器模板, 滤除ALL患者原始血液细胞显微图像中的噪声点;

步骤2) 用cv2.cvtColor( )函数将滤波后图像的颜色空间由RGB转换为HSV, 转换结果命名为HSV_image;

步骤3) 根据染色后白细胞的紫色特性设定颜色阈值范围, 下限(lower)为(125,43,46), 上限(upper)为(155,255,255);

步骤4) 用cv2.inRange (HSV_image,lower,upper)函数提取ROI, 在提取结果中, 颜色阈值范围内的像素点为白色, 红细胞等其他像素点为黑色;

步骤5) 用cv2.threshold( )函数将提取结果二值化;

步骤6) 用cv2.findContours( )函数获得二值图像中ROI的轮廓;

步骤7) 遍历所有ROI的轮廓, 用cv2.boundingRect( )函数在每个轮廓外部标记外切矩形, 返回值为矩形的高度和宽度; 虽然血涂片中的血小板和白细胞均呈紫色, 但血小板的尺寸远小于白细胞, 因此矩形面积大于6 000个像素点的ROI被视为白细胞, 否则作为血小板被滤除.

用算法1检测并提取白细胞, 提取结果将作为深度学习分割模型的训练样本, 其中cv2表示OpenCV.

1.2 基于加权损失函数的多类分割算法

1.2.1 多类分割

多类分割即把细胞边界区域设为除白细胞区域和背景外的第三类, 从而精准分割粘连白细胞. 为获得细胞边界类的像素点, 本文对地面实况进行形态学膨胀运算, 计算公式为

gt⊕k={g|(kV)g∩gt≠Ø},

(1)

其中gt表示二值化后的地面实况,k表示膨胀模板,g表示集合平移的位移量,对k做关于其原点的反射得到反射集合kV.

将二值图像中的白细胞区域向四周扩展, 将与细胞接触的所有背景点合并到细胞中, 使边界向外扩张. 如果两个白细胞间的距离较近, 则膨胀运算可能会把两个细胞连通到一起. 膨胀后的地面实况与原地面实况的差值即为细胞边界, 如图2所示, 其中: (A)为地面实况; (B)为使用5×5的模板对地面实况膨胀的结果; (C)为得到的细胞边界.

图2 创建细胞边界类Fig.2 Creation of class corresponding to cell border

1.2.2 加权交叉熵损失函数

深度学习算法用损失函数监测和评估模型[13-14], 算法的优化是尽可能地最小化损失函数值, 使模型达到最稳定的状态, 而交叉熵损失函数可用于监测及评估训练过程中的深度学习模型. 本文提出一种像素级的加权交叉熵损失函数L, 表示为

(2)

其中,wCWM:Ω→是为提高细胞边界类权重而引入的权重图(CWM),l:Ω→{1,2,…,K}表示每个像素点的实际所属类别,log为对数函数. Softmax定义为

其中:ak(x)表示像素点x在特征通道k被激活的情况,x∈Ω且Ω⊂2;K表示类别数目, 本文设K=3.

血涂片中的背景像素点最多, 细胞边界类的像素点最少, 为缓解类别不平衡问题, 并提高细胞边界类的权重, 本文提出了类别权重图, 表示为

wCWM(x,α)=1/w0(x),

(3)

其中,w0:Ω→是每个类别在血涂片中像素点的总数, 且w0(边界)

1.2.3 深度学习分割模型

在血液细胞显微图像中, 细胞边界处梯度复杂, 难以区分细胞像素点和背景像素点, 因此, 需较多的高分辨率信息用于精准分割. 人类机体的结构较稳定, 白细胞在血涂片中的分布遵循一定规律, 语义较简单明确, 所以, 低分辨率信息可用于白细胞的识别. U-Net结合了低分辨率特征信息和高分辨率特征信息, 较适合ALL患者的血液细胞显微图像分割. 该网络经过多次下采样得到的低分辨率信息有助于白细胞的识别, 而合并操作将特征图从编码器端直接传递到同高度的解码器端, 能为白细胞分割提供更完整的特征, 如梯度等. 实验所用的最佳网络结构如图3所示.

图3 U-Net模型结构Fig.3 U-Net architecture

该网络包括一个编码器和一个解码器: 编码器遵循VGG16典型架构, 包括重复的3×3卷积层和2×2的最大池化层用于下采样, 特征通道的数量在经过池化层后加倍(64,128,256,512序列); 在解码器中, 特征通道的数量在经过Conv2DTranspose层后减半, 合并层用于结合编码器的低分辨率特征与解码器的高分辨率特征, 防止特征丢失, 解码器端的卷积层用于提升分割结果的准确率.

2 实验结果与分析

下面采用意大利米兰大学提供的血细胞显微图像数据集(ALL_IDB1)[15]对本文方法的性能进行评估. 该数据集主要用于评估白细胞的分割和分类, 其由108张JPG格式的图像组成, 分辨率为2 592×1 944, 使用实验室光学显微镜和佳能PowerShot G5相机捕获.

2.1 白细胞检测和提取结果

由于原始血液涂片的分辨率较高, 因此使用(21,21),(25,25)和(29,29)的滤波器模板对原始ALL显微图像进行中值滤波. (25,25)的过滤效果较理想, 消除了血液涂片制作过程中产生的噪声, 同时保留了边缘信息. 将经过中值滤波血涂片的颜色空间由RGB转换至HSV, 滤除红细胞并提取白细胞, 结果如图4所示, 其中: (A)为中值滤波的结果; (B)为HSV色彩空间中血涂片; (C)为白细胞检测结果; (D)为白细胞提取结果. 由于细胞质区域的像素点呈淡紫色, 因此在提取结果中粘连白细胞被视为单个ROI(图4(D)中标记处).

图4 白细胞提取过程Fig.4 Extraction process of leukocyte

2.2 粘连白细胞分割评价指标

实验采用准确率(Acc)、 交并比(IOU)、F1值和F均值4个评价指标验证算法的有效性, 这些评价指标计算公式分别为

其中,FG和BG分别表示地面实况中的前景(白细胞像素点)和背景(非白细胞像素点),FP和BP分别表示模型预测结果中的前景(白细胞像素点)和背景(非白细胞像素点),|·|表示集合,θ2=0.3用以提升精确率的影响.

2.2.1 深度学习分割模型对比

将原始分辨率为2 592×1 944的图像裁剪为分辨率为512×512的子图像, 以提高分割目标在单张样本图像中的比例, 剪裁后的数据集为105张包含粘连白细胞的子图像, 并且每张子图像都有与其对应的地面实况. 为增强鲁棒性, 实验中随机分配训练集、 验证集和测试集的样本. 本文将63张图像作为训练集, 并且在每次训练迭代中都使用几何形变(旋转、 镜像等)扩充训练样本的数量. 验证集和测试集均包含21张图像.

将用Keras框架封装二分类交叉熵损失函数的U-Net模型标记为ORG, U-Net,Linknet和FPN均表示使用本文提出的加权交叉熵损失函数进行分割的深度学习模型. 为考察不同损失函数和分割模型对ALL显微图像的分割效果, 用准确率、 交并比和F1值分别对训练、 验证和测试结果进行评估, 结果列于表1. 由表1可见, 用加权损失函数的3个模型分割结果始终优于未改进交叉熵损失函数的分割结果, 并且在3种分割模型中U-Net表现较好, 所以在后续的对比实验中, 将该模型的分割结果与其他分割方法进行对比. 图5为本文提出的加权交叉熵损失函数在测试集上的分割结果, 其中: (A)为原始ALL显微图像, 白细胞呈紫色; (B)为由算法1得到的测试样本(为更好地展示, 图像进行了黑白反转); (C)为用加权交叉熵损失函数的U-Net分割结果. 图5和表1的结果表明, 将细胞边界设定为第三类, 并且在训练过程中加强模型对该类特征的学习, 有利于提高ALL显微图像中白细胞的分割结果.

表1 不同损失函数和分割模型的对比结果Table 1 Comparison results of different loss functions and segmentation models

图5 ALL显微图像的白细胞分割结果Fig.5 Segmentation results of leukocyte of ALL microscopic images

2.2.2 不同分割方法的对比

将本文提出的方法与其他3种白细胞分割算法进行对比分析. 根据形态学距离变换的结果, 基于标记的分水岭算法将白细胞图像划分为前景区域、 背景区域和不确定区域, 根据这3类标记进行分水岭操作以获取细胞边界. 基于极限学习机的算法[16]根据血涂片的染色原理设计了图像自动采样算法, 在线训练极限学习机分类器以提取白细胞; 基于多谐波极限学习机的算法[17]在线训练多谐波极限学习机分类器, 并迭代执行“像素采样-特征学习-分类”的过程, 直到感知饱和为止. 表2列出了4种白细胞分割方法在测试集上的F均值.

表2 不同分割方法F均值的对比结果Table 2 Comparison results for Fmean of different segmentation methods

由表2可见, 用基于类别权重的加权损失函数的U-Net模型提高了粘连白细胞的分割精度.

综上所述, 本文将ALL患者血液细胞显微图像的色彩空间由RGB转换至HSV, 根据白细胞的颜色特性精确地检测并提取了白细胞. 针对由于部分白细胞的细胞质所占比例较小, 且在染色后呈淡紫色, 难以分割粘连白细胞的问题, 本文提出了一种基于类别权重的加权交叉熵损失函数方法, 强化了模型对细胞边界特征的学习. 实验结果表明, 与其他类似方法相比, 该方法有一定的优势.

猜你喜欢
像素点白细胞边界
守住你的边界
白细胞
突破非织造应用边界
心力衰竭患者白细胞介素6、CRP表达水平与预后的相关性探讨
基于局部相似性的特征匹配筛选算法
意大利边界穿越之家
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
白细胞降到多少应停止放疗
图像采集过程中基于肤色理论的采集框自动定位