裴潇倜,吕琳,黄鹏杰,陈兆学,林勇
上海理工大学医疗器械与食品学院,上海200093
结核病一直以来都是严重威胁人类生命健康的高发传染病之一,临床症状不明显,容易漏检。我国每年因结核病死亡的人数高达13 万[1],因此对结核病的早期预防和治疗工作非常重要。ELISPOT 是一种检测患者体内是否存在释放结核特异性γ干扰素的T 淋巴细胞,来判断患者是否感染结核病的技术,具有较高的特异性和灵敏度[2]。斑点检测实验中,含有γ干扰素的T 淋巴细胞被台酚蓝染色,形成斑点图像。通过检测图像中斑点的数量来判断对象是否感染结核。
图像分割是T 细胞斑点检测的核心算法。基于区域生长的传统图像分割算法,根据图像的局部空间信息,连通一些具有某种相似性质的像素,构成分割区域[3]。屈彬等[4]提出基于区域生长的快速边缘跟踪算法,将传统区域生长算法中对整个目标区域像素的处理转为对目标边缘像素的处理。不影响分割结果的同时,降低算法的时间复杂度和空间复杂度。但该方法受图像背景因素影响较大,导致分割结果不精确。魏宝刚等[5]提出的基于区域生长的零碎区域全并算法和多度量准则聚类算法,降低了区域生长分割结果的好坏受种子选取和区域生长次序的影响。但仍然无法解决受噪音因素影响的问题。张博[6]将边缘检测算法运用到细胞图像分割,使用插值的方法平滑处理分块阈值矩阵,依照形态学提取边缘特征,消除图像的块状效应,保证细胞边缘的精确性。但同时会丢失少量的边缘信息,不利于复杂图像的边缘检测。由此可知,针对T 细胞斑点检测,传统的图像分割方法仍然存在一定的不足,导致分割结果准确率不高,不利于结核感染的早期诊断和治疗。
针对上述算法的不足,本文将深度学习的方法运用到图像分割技术中。U-Net网络[7]是在全卷积神经网络的基础上将上采样与下采样结合,底层信息与高层信息结合所提出来的一种深度学习网络,具有分割精度高,学习能力强的特点。本文将U-Net方法运用于T细胞斑点检测,通过不断训练,调整参数,优化模型,改善当斑点数较多、背景不清晰时不能准确识别的难题,提高斑点图像的识别效率和准确率,从而能够帮助医生判断结核病感染状况,具有重要的临床价值和意义。
本文数据来源于结核感染T细胞斑点检测实验,在酶联免疫斑点分析仪(CTL S6 Entry Analyzer)检测的数据中选取5 组96 孔板的斑点图像作为数据集。每组数据均包含阴性对照、阳性对照、抗原a 孔及抗原b 孔4 类。抗原刺激诱导的斑点特征是清晰的深色圆点。由专业实验人员根据斑点形态特征标注阳性斑点作为分割的标准[8]。选取其中4 组作为训练集,1组作为测试集。
为了减少数据计算量,降低模型复杂度,使用灰度化操作将彩色图像B、G、R 像素值分别以权重0.114、0.587、0.299 相加处理为灰度图像。通过中值滤波操作,将相邻的9 个像素值从小到大排序,将中间值设为当前像素值,去除椒盐噪声,增强图像效果[9]。将标注过的标准json 文件转化为png 图像格式,设置阈值转为二值图像。以上图像处理的方法均使用计算机视觉库OpenCV 的算法实现。
深层神经网络一般需要大量训练数据才能获得较好的结果。当数据量有限时,可以通过数据增强的方法来增加样本多样性,提高模型泛化能力。本文采用 Keras 深度学习库ImageDataGenerator 图片生成器,通过旋转、变形、归一化增强数据,扩充数据集大小,结合flow_from_directory 方法循环产生batch数据[10]。
U-Net 是一种基于图像语义分割[11]的网络,不包含任何全连接层,结构如图1所示,由收缩路径和扩展路径两部分组成。收缩路径包括卷积层、激活函数和下采样操作。扩展路径包括上采样操作、卷积层和激活函数。另外,串联收缩路径中对应层的特征图,通过卷积操作将特征向量映射到所对应的分类。
1.2.1 网络训练将预处理后的样本及对应的标注图像作为训练集训练U-Net网络,采用二分类交叉熵损失函数及Adam 优化器优化模型[12]。 以ModelCheckpoint 作为回调函数监视loss 值,自动保存最优网络模型。
(1)损失函数:实验采用二分类交叉熵损失函数检测拟合结果与真实情况的不同。使用KL 散度[13](Kullback-Leibler divergence)衡量真实值与预测值的差异。KL计算公式如下所示:
其中,p(xi)代表真实值;q(xi)代表预测值;h(p(x))代表信息量。由于h(p(x))不变,直接使用交叉熵做loss指标评估模型。运用逻辑回归损失函数[14],公式如下:
其中,xi代表真实值;yi代表预测值。
图1 U-Net模型结构Fig.1 U-Net model structure
(2)优化器:采用Adam 优化器优化网络,通过计算每个参数的自适应学习率,综合考虑梯度的一阶估计和二阶估计计算和更新步长。Adam 更新规则,计算t时间步的梯度,并综合考虑时间步的动量。计算公式如下:
其中,β1、β2为指数衰减率,α为默认学习率。
1.2.2 网络参数U-Net 模型输入层尺寸为(256,256,1),其他各层的参数如表1所示。第4、5 层卷积结束进行一次参数为0.5的dropout操作,随机删除一些隐藏的神经元。6 到9 层以参数axis 为3 拼接相对应的1到4层。
表1 U-Net网络各层参数Tab.1 U-Net network parameters
优化算法Adam 参数,学习率α为1e-4。一阶矩估计的指数衰减率β1设置为0.900,二阶矩估计的指数衰减率β2设置为0.999,设置模糊因子epsilon 为10e-8。
1.2.3 斑点计数U-Net 模型输出斑点mask 二值图像,为了直观查看分割效果,检测分割准确率,使用图像处理技术检测斑点边缘,计算斑点数量。设置阈值将mask 图像的像素设置为0~1,使用数字图片处理包skimage 的label 函数以8 连通方式标记二值图像的连通区域,获取斑点个数。为了加强斑点边缘信息,采用dilation函数进行形态学腐蚀操作[15],以边长为3的正方形滤波器对各区域膨胀滤波,将独立的图像元素分割出来,找出明显的极值区域。
为获取图像形态边缘,采用5×5高斯滤波器消除图像噪音点。在水平和垂直方向上使用sobel算子[16]平滑图像滤波,计算梯度大小和方向,检测局部最大值,去除不构成边缘像素。设置两个阈值max 和min检测图像边缘,梯度大于max 被确定为边缘,小于min 被确定为非边缘,介于二者之间的像素,根据其连通性被确定为边缘或非边缘。以上操作使用OpenCV 库的Canny[17]函数实现。最后,将承载边缘信息的二值图像还原回样本,通过PIL 库中ImageDraw 方法将斑点数标注于图片,结果如图2所示。
图2 斑点计数过程Fig.2 Spot counting
该网络基于深度学习库Keras,结合Python语言实现。使用计算机视觉库OpenCV、图像处理库Skimage、PIL等处理图像数据。编程软件使用Anaconda集成环境的Spyder、Jupyter Notebook。实验环境操作系统为Windows7、处理器Intel Core i7-8700、显卡为NVIDIA GeForce RTX2080。
为了评估模型好坏,与其他模型直观对比。采用以下常用的医学图像分割评价指标[18]:precision(查准率)、recall(查全率)、F1(综合评价指标)。各项指标的定义如下:
其中,TP(True Positive)为真阳性,表示在实例中是阳性斑点像素,网络预测中是斑点像素的个数。FP(False Positive)为假阳性,表示在实例中是背景像素,网络预测中是斑点像素的个数。FN(False Negative)为假阴性,表示在实例中是斑点像素,网络预测中是背景像素的个数。
实验以10 个epoch 训练,每个epoch 包含2 000样本,以ModelCheckpoint作为回调函数监视loss值,自动保存最优网络模型。选取1 组96 孔板数据作为测试集。对比U-Net模型和传统分割模型的结果,计算两种方法的precision、recall、F1。本文分别从少量斑点(斑点数为0~100)和较多斑点(斑点数为100~300)两种情况进行检测实验。
2.2.1 少量斑点数实验选取5个斑点数在0~100的样本进行实验,计算各个评价指标,结果如表2所示。
表2 少量斑点数实验各评价指标的值Tab.2 Value of each evaluation index in the experiment with a small number of spots
由表2可知,U-Net模型的查准率均值为0.93,接近于传统分割模型的0.95;查全率均值为0.95,明显高于传统分割模型的0.75。由以上数据可知,U-Net模型改善了传统图像分割方法容易漏检斑点的不足。U-Net模型和传统分割模型的综合评价指标F1的均值分别为0.93和0.84,可以看出总体上U-Net模型的性能优于传统分割模型。抽取部分分割结果,如图3所示。
图3 少量斑点数实验样例展示Fig.3 Sample display of the experiment with a small number of spots
2.2.2 较多斑点数实验选取5 个斑点数为100~300的样本进行实验,计算各个评价指标,结果如表3所示。由表3可知,与少量斑点数实验相比,U-Net模型和传统模型的precision、recall、F1 的值均有所下降,表明斑点密度会影响模型的分割效果。U-Net 模型的recall 仍明显高于传统分割模型,由数据可以判断传统图像分割方法容易漏检斑点。U-Net 模型和传统分割模型的综合评价指标F1的均值分别为0.89 和0.83,可以看出总体上U-Net 模型的性能仍优于传统分割模型。抽取部分分割结果,如图4所示。
准确分割T 细胞斑点图像对结核病的早期诊断尤为重要。为了改善传统的图像分割技术在分割过程中易漏检、易受噪声干扰的不足。本文运用深度学习U-Net 模型分割斑点图像。由专业实验人员根据形态特征标注阳性斑点,预处理后输入网络训练,优化网络模型。实验结果表明,基于U-Net 的分割模型性能上优于传统的区域分割模型。
该网络目前还存在一些不足,比如分割效果受斑点密度的影响;错误分割部分假阳性斑点;不能精准识别一些粘连细胞。由于抗原刺激诱导的斑点特征是清晰的深色圆点,针对一些假阳性斑点仅仅依靠形态学特征不易精准识别,需要通过不断标注斑点图像来训练网络,提高斑点识别准确率。在未来的研究中,可以通过查找细胞核中心像素的方式,融合分水岭[19]算法,检测微弱的斑点边缘,从而改进不能准确分割粘连细胞的难题。另外,可以改进网络模型,将斑点图像划分为不同的分割域[20],设置卷积块以窗口滑动的方式实现分割,改善以上的问题,从而达到更高的分割准确率,满足结核病早期诊断的需求。
表3 较多斑点数实验各评价指标的值Tab.3 Value of each evaluation index in the experiment with lots of spots
图4 较多斑点数实验样例展示Fig.4 Sample display of the experiment with lots of spots