APP下载

基于深度学习的秀丽隐杆线虫显微图像分割方法

2020-06-07曾招鑫

计算机应用 2020年5期
关键词:线虫卷积损失

曾招鑫 ,刘 俊

(1.武汉科技大学计算机科学与技术学院,武汉430065;2.智能信息处理与实时工业系统湖北省重点实验室(武汉科技大学),武汉430065)

(∗通信作者电子邮箱493952184@qq.com)

0 引言

秀丽隐杆线虫(Caenorhabditis elegans,C.elegans)是一种被广泛研究的蠕虫,如今已成为许多不同生物领域的公认模式生物,是发育生物学、神经生物学、衰老生物学、基因功能研究的热点[1]。它是第一个被完整测序的多细胞真核生物,在其近2万个蛋白编码基因中,有60%~80%与人类基因同源,已被用于多种人类疾病的研究和药物筛选[2],包括肿瘤、帕金森氏症[3]、老年痴呆、糖尿病、多囊肾病等,和其他模式生物相比,线虫由于寿命短、突变体多使其在衰老和寿命研究方面具有显著的优势和特色。在秀丽隐杆线虫相关领域研究中,需要测量大量候选样本在不同环境下的生理变化,为基因研究、人类疾病研究和药物筛选品种提供科学依据。线虫体态是线虫的本质特征,其形态与线虫的健康寿命直接相关,所以为了研究秀丽隐杆线虫需要对其形态分割,以便于特征提取及量化分析。

经济高速发展的今天,人类的生命健康永远是科技关注的焦点。研究线虫有助于研究特定基因在许多细胞途径中的作用,影响着未来医学和科学的发展,秀丽隐杆线虫在培育研究中的生理变化大部分由研究员的视觉判断作为数据而缺乏量化标准。为了通过计算机视觉实现高通量、全自动定量评估的目标,首要步骤是从显微图像中分割秀丽隐杆线虫,为了使研究人员更加精确地观察显微镜下的线虫,利用机器视觉和人工智能技术实现显微图像上的自动分割具有重要意义。

传统图像目标分割如阈值分割算法[4]利用图像的灰度特征,认为图像中灰度特征相近的像素属于同一类,这个灰度特征通常是指像素的灰度值。通过一个或几个阈值将图像中的像素点按灰度值分为几个类,从而实现对图像的分割。而显微图像的线虫环境复杂,常常有灰度相近的附着物与其相连,为此选择合适的阈值能将其完整分割具有很大难度。而基于深度形态学分割算法[5]利用一个具有一定形态的结构元素作为探针来收集图像中几何结构和形状的信息,并对图像中的特定形状进行度量和提取。算法的特点是能将图像中复杂的几何结构进行分解,剔除不相关结构,提取有用的信息,实现图像分割的效果,但在处理线虫分割上,活体线虫的体态具有不固定性,此方法也很难执行。Liu等[6]运用形态学结合支持向量机(Support Vector Machine,SVM)的方法进行线虫分割,但他们需要对线虫进行明场和荧光处理增加了大量的前置工作,而且对焦不佳和复杂环境下的线虫的图像会大大影响算法的准确度。

近年来深度学习在图像识别、分割领域取得了很好的效果[7],深度学习方法通过多层网络直接对图像卷积和池化操作来提取图像本质特征,在图像识别、分割领域有突出的优势,并取得了突破性进展,深度学习的发展,特别是卷积神经网络(Convolutional Neural Network,CNN)[8]的出现,为图像特征提取带来全新的解决方法。2014年,Girshick等[9]在国际计算机视觉与模式识别会议(Conference on Computer Vision and Pattern Recognition,CVPR)大会上提出了区域卷积神经网络(Region-Convolutional Neural Network,R-CNN),其候选区域使用Selective Search方法提取,送到模型中提取特征用于分类,该网络在全连接层前加了一个空间金字塔池化(Spatial Pyramid Pooling,SPP)[10]层,使得该网络在全连接层输入不需要归一化图像尺寸,从而提取的特征有更好的尺度不变性,降低了过拟合的可能。2015年Girshick等和Ren等又相继提出了快速区域卷积神经网络(Fast Region-Convolutional Neural Networks,Fast R-CNN)[11]和更快的区域卷积神经网络(Faster Region-Convolutional Neural Network,Faster R-CNN)[12],Faster R-CNN则用区域生成网络(Region Proposal Network,RPN)层取代了Selective Search,从而使网络能端到端地学习特征,通过池化全局特征映射加速处理过程提高了准确率和检测速度。再之后2017年He等[13]在Faster R-CNN添加了Mask分支并提出了感兴趣区域(Region of Interest,RoI)Align,推出掩模区域卷积神经网络(Mask Region-Convolutional Neural Networks,Mask R-CNN),使得实例分割上升至前所未有的高度,并取得了COCO2016挑战赛冠军,也使Mask-RCNN成为CVPR2017最佳论文。近两年目标检测、分割方法在速度和准确率不断取得新的突破。本文在深度学习模型Mask RCNN基础上,通过改进多级特征池化,结合大幅度softmax损失(Large-Margin Softmax Loss,LMSL)算法[14]、改进的非极大值抑制、添加全链接融合分支等方法进一步提高分割精度。实验结果表明,设计的算法和改进网络能够解决Mask R-CNN对线虫头尾分割不精确、线虫体分割不平滑和漏检等问题,有效实现对显微图像下秀丽隐杆线虫的精确分割。

1 基于深度学习的目标检测和分割框架

1.1 深度学习分割模型

Mask R-CNN是He基于以往的Faster R-CNN架构提出的新的卷积网络,该方法可以有效检测目标,同时完成了高质量的语义分割。借鉴Faster R-CNN的思想,Mask R-CNN继承了Faster R-CNN的RPN部分,并增加一个支路Mask分支,但作为同样继承于Faster R-CNN的FCIS(Fully Convolutional Instance-aware Semantic segmentation)[15],不同点是 FCIS 对预测Mask和分类的参数是共享的,而Mask R-CNN是将预测Mask和分类的参数单独分开,两个任务各自有独立的可训练参数,互不干扰。对于这一点,He在文献[13]里作了比较,结果显示对于预测Mask和分类如果使用共享的特征图对于某些重叠的目标可能会出现问题,并在基础特征网络之后又加入了全卷积的Mask分割子网,由原来的分类、回归检测任务,变成了分类、回归、分割检测任务。针对CNN在达到一定深度后网络梯度消失的问题,He等提出了残差网络(Residual Neural Network,ResNet)[16],与 Mask R-CNN、ResNet 与VGGNet(Visual Geometry Group Network)[17]、GoogleNet[18]等网络相比,拥有更深的网络结构,可达到150层,学习到的特征也更加深层抽象,分类能力也更强。同时引入了RoIAlign取代了Faster R-CNN所使用的RoI-Pooling,这是因为原图在经过多次卷积池化后,所产生的特征图的尺度会呈指数下降,因为原图下采样到特征时RoIPooling Layer的四舍五入取整操作导致其发生偏移。在得到特征图后,需要经过一个全连接层,所以必须将特征图转换为K*K的固定维度大小的全连接层输入,在特征图分块时又采用了取整操作。这种取整操作(被称为quantization)对RoI分类影响不大,可是对逐像素的预测目标是有害的,因为对每个RoI取得的特征并没有与RoI对齐。因此,Mask R-CNN对RoI Pooling作了改进并提出了RoI Align。RoI Align的主要创新点是,针对下采样后两次量化造成的区域不匹配问题,使用双线性插值取代取整操作从而更精确地找到每个块对应的特征。总的来说,RoIAlign的作用主要就是剔除了RoIPooling的取整操作,并且使得为每个RoI取得的特征能够更好地对齐原图上的RoI区域。

1.2 损失函数

损失函数(Loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。Mask R-CNN采用了多任务的损失函数,每个RoI区域的损失函数包含三部分:bounding box的分类损失值、bounding box位置回归损失值和Mask部分的损失值,其中bounding box的分类损失值和位置回归损失值同Faster RCNN类似,其损失函数为:L=Lcls+Lbox+Lmask。每个RoI区域会生成一个m*m*numclass的特征层,特征层中的每个值为二进制掩码,为0或者为1。根据当前RoI区域预测的分类,含有K*m*m维度的输出,K代表类别的数量,m*m是提取的ROI图像的大小。Lmask被定义为平均二值交叉熵损失函数(average binary cross-entropy loss)[19],其分割层会输出 channel为K的Mask,每个Mask对应一个类别,利用sigmoid函数[20]进行二分类,判断是否是这个类别,然后在计算loss时,假如RoI对应的ground-truth的类别是Ki,则计算Ki对应的loss,其他的Mask对这个loss没有贡献计算,这样的定义会使得网络对每个类别都会生成独立Mask,不需要区分每一个像素属于哪一类,只需要去区别在这个类中此像素点是属于前景或者背景,然后计算该m*m区域的平均二值交叉损失熵。最后可以通过与阈值0.5作比较输出二值Mask,将分类的任务交给专业的classification分支,这样避免了类间的竞争。由于本文基于秀丽隐杆线虫的分割研究,像素的类别只分为线虫的本体和背景,故本文K=1。平均二值交叉熵损失如式(1)所示:

其中:概率分布p(代表真实概率)和q(代表模型概率)用来度量信息量;yi为标签类别,取值为0、1,0代表此点为背景样本,1代表此点为线虫体样本;yi'为模型预测概率,模型通过卷积池化提取的特征经过全连接层计算相应样本点的特征值,根据sigmoid函数计算预测概率。sigmoid函数计算如式(2):

2 本文方法

2.1 基于Mask-RCNN的改进网络

由于传统的图像分割方法无法完成秀丽隐杆线虫的分割,本文采用Mask R-CNN为基础的目标检测、语义分割模型。本文目标检测、分割测模型的框架由两个阶段组成,首先用卷积和池化自动提取目标自动提取秀丽隐杆线虫本质特征,本文使用ResNet34、ResNet50、ResNet101作为backbone进行对比实验,低级特征图和高级特征图由ResNet不同阶段的卷积得到,卷积过程由图1所示,网络参数如表1所示。

图1 卷积过程图示Fig.1 Schematic diagramof convolution process

然后利用这些特征进行目标检测、分割。在此基础上,本文对Mask R-CNN模型结构进行了改进,通过增加多级特征池化,每个proposal利用金字塔所有层的特征,避免了proposal的随意分配。原始FPN中的每个proposal根据其大小分配给不同的特征层,将较小的proposal分配给低级特征层,将较大的proposal分配给高级特征层,都是基于单层特征。但这样可能不够好,原因如下:一是按照大小来分配本身有缺陷,大小相近的proposal可能分配到相邻的层;二是特征的重要程度可能与层级没什么关系,比如高级语义特征能捕获更丰富的上下文信息,允许小型proposal访问这些特征可以更好地利用上下文进行预测。同样,低级特征包含许多精细细节如纹理、边缘特征等和高定位信息,让大型proposal访问可以使特征定位更加准确。这金字塔上4个灰色区域对应的是同一个proposal(图1中RoI_1~RoI_4),通过RoI Align使不同层的proposal映射成固定大小进行融合,融合操作采取SUM操作,将4个特征图同坐标点的值相加,记pn为多级特征池化的特征图,pi为低高级特征图,这样带来的好处是每个proposal聚合了多层的信息,对分类及定位更加有利,从而提升检测、分割精度。本文使用的秀丽隐杆线虫检测、分割的网络框架如图2所示。

表1 ResNet结构Tab.1 ResNet architecture

2.2 LMSL损失算法

经过实验发现,原模型经过训练后模型预测样本的能力较差,测试集不能很好拟合正确样本,在边缘的预测上差异性较大,而通过观察模型训练细节发现,在模型训练200个epoch后loss已经降至为很小的数值且趋于平滑产生了梯度消失,查找原因发现这是因为当训练好一个模型之后,模型为所有的误标签都分配了很小的概率;然而实际上对于不同的错误标签,其被分配的概率仍然可能存在数个量级的悬殊差距。这个差距,在这里直接就被忽略了,但这其实是一部分有用的信息。为此本文将Lmask采用LMSL放大用于拉大类间距离,为那部分被忽略信息赋予更大的权重,增强Softmax损失函数的判别能力。

原始的Softmax loss非常优雅、简洁,被广泛用于分类问题。Softmax loss公式[21]如式(3):

图2 秀丽隐杆线虫检测、分割的网络框架Fig.2 Network framework for detection and segmentation of C.elegans

假设X属于线虫体,本文是要区分X这个点是属于背景还是属于前景,那么Softmax希望:‖‖W1||x||cosθ1>‖‖W2||x||cosθ2(0≤θ1≤πk),因为k是正整数,cos函数在0~π范围又是单调递减的,所以coskx要小于cosx,k值越大则学习的难度也越大,因此通过这种方式定义损失会使得模型学到类间距离更大的、类内距离更小的特征。因此可修改得到式(5):

本文实验使用的loss函数L为:L=Lcls+Lbox+LLS。

2.3 全连接融合分支

全连接(Fully connected,Fc)层和多层感知机(Multi-Layer Perceptron,MLP)被广泛应用于实例分割[22]中,用于生成候选区域和预测Mask。有工作显示FPN同样也能够预测逐像素的Mask,Mask R-CNN使用了一个小型的FPN应用于池化后特征网格用于预测对应的Mask。但是Fc层与FPN相比具有不同的属性:FPN给出了像素级预测,这是基于局部感受野和共享的核参数;与此相反,Fc层是位置敏感的,因为对于不同空间位置的预测都是通过一组可变参数实现的[23],故认为Fc层具有适应不同空间位置的能力。同时Fc层对于每个空间位置预测是基于整个候选区域的全局信息,这对于区分不同实例和识别属于同一对象的分离部分很有效。考虑到Fc层和卷积层之间的不同特性,本文将这两种层的预测结果融合以达到更好的预测效果,具体如图3所示。

本文主要是在原来的Mask支路(图3上面那条支路,也就是传统的FCN结构)上增加了图3下面那条支路作融合。

主分支是4个连续的卷积和1个反卷积,每个卷积层核大小为3×3,通道数为256,后面再接一个上采样2倍的反卷积。这是用于预测每个类别Mask的二进制像素值。使用一个短路径从Conv2连接到Fc层,中间经过两个卷积层conv4_fc,Conv5,为了降低计算成本和运行速度,Conv5、Conv6通道数设置为128。Mask大小设置为28×28。Fc层产生784×1×1的向量,故变形(reshape)成和FPN预测的Mask同样的空间尺寸,再和FPN的输出相加得到最终预测。

图3 全连接融合分支Fig.3 Fully connected fusion branch

2.4 Soft-NMS算法

由于传统的非极大值抑制(NMS)方法是基于分类分数进行的,只有最高分数的预测框能留下来,但是大多数情况下交并比(Intersection Over Union,IOU)和分类分数不是强相关,很多分类标签置信度高的框的位置都不是很准,而且本文研究对象是秀丽隐杆线虫检测、分割,虫体由研究人员用光学显微镜拍摄,数据集中存在多条线虫交叠的现象,由于线虫重叠输出多个框中存在某些另一个线虫的框,但是也不小心被NMS去掉了。这个问题的解法最终是要落在“将某个候选框删掉”这一步骤上,本文需要找到一种方法,更小心删掉,而不是暴力地把所有不是最高分的框删掉,于是对于与最高分框overlap大于阈值t的框,通过将它的置信度降低,可以使多一些框被保留下来,从而一定程度上避免overlap的情况出现。

如果是传统的NMS操作,那么当和最高分框的IOU值大于阈值t,那么就从中去除该候选框,将分数直接设为0,NMS算法可以用式(6)表示:

其中:M为得分最高的框,bi为待处理框。如果是Soft-NMS,则对于bi也是先计算它和M的IOU,然后该IOU值作为函数f的输入,最后和bi的Si相乘作为最后该bi的分值。Soft-NMS算法可以由式(7)表示:

这样同一个物体周围的框有很多,每次选择分数最高的框,抑制其周围的框,bi与M的IOU越大,抑制的程度越大。一般来说,表示同一个物体的框的IOU是会比另一个物体的框的IOU大,因此,这样就会将其他物体的框保留下来,而同一个物体的框被去掉,从而提高候选框的准确率,减少线虫的错误检测。

3 实验结果分析

3.1 实验设置及数据

本实验采用的是64位Ubuntu操作系统,硬件配置为I7 8700K处理器,GPU型号为NVIDIA GeForce GTX 1080TI,显存为11 GB。本文的数据集是通过光学显微镜下拍摄得到的活体线虫图像,拍摄得到400张样本,但是一般而言,比较成功的神经网络需要大量的参数,而使得这些参数可以正确工作则需要大量的数据进行训练。由于线虫的图像需要专业人员进行玻片处理,大批量采集较为困难,所以本文对数据进行增强[24],即利用已有的数据比如翻转、平移、旋转和添加椒盐噪声,创造出更多的数据来使得神经网络具有更好的泛化效果,增加噪声数据,提升模型的鲁棒性。经过数据增强操作,将其划分为2 800张训练集,200张测试集进行训练。使用Labelme软件制作训练数据集,标注时,线虫标注为一个独立的连通域,标注完一张图像后得到一个对应json文件。解析json文件,提取中位深度为24位的label标签图像,再将24位label图像转换为8位的label.png图像,完成一幅图像数据的标注,Labelme标注如图4所示。

图4 Labelme标注结果Fig.4 Labelingresultsof Labelme

本实验参数设置如下:图像输入网络进行变形(reshape)至固定尺度,IMAGE_MIN_DIM设置为 800,IMAGE_MAX_DIM设置为1 024,对尺度较少的维度进行填充(padding)。GPU每次读取图像IMAGES_PER_GPU设置为1。使用GPU运算。批量训练的方法将数据集数据分为多个批次,每个批次训练系数为128,随着迭代次数的增加,损失数值逐渐收敛,训练集和验证集的准确率趋于稳定,调整动量因子参数为0.85,正则化权重衰减系数为0.000 1,网络权重参数的基础学习率为0.001。图5为训练状态曲线。由图5可见,实验迭代5 000次达到最优状态,模型的平均损失值loss基本稳定在0.06附近,并趋于稳定。

图5 本文方法的训练曲线Fig.5 Trainingcurveof theproposed method

3.2 实验步骤

本文实验基于如下步骤,如图6所示。

1)从采集的图像数据中抽取训练集,且验证集与训练集无交叉重复数据。

2)使用Labelme对训练集图像进行标注,对应标签图像,完成训练、测试集的制作。

3)将制作好的数据集输入改进后网络,通过多级特征融合和结合LMSL改进损失算法训练250个epoch得到训练模型。

4)使用训练得到模型(权重文件)进行验证样本分割,得出分割结果。

5)采用AP(Average Precision)、AP50指标评价模型的分割结果。

6)根据实验结果调节参数,如果损失下降太慢则适当增加学习率,如果损失处于一个波动状态,则减小学习率使其自动寻找全局最优。

图6 实验步骤Fig.6 Experimental procedure

3.3 结果分析

本文利用标准COCO指标来评估结果,包括AP、AP50。检测是否正确需要设定一个阈值,这里AP50表示IOU的阈值设置为0.50。AP表示IOU的阈值设置为0.50至0.95,步长为0.05。IOU公式为:

其中:P代表预测值,gt代表真值(ground truth),即当预测值与真实值的IOU值大于这个阈值时,该预测框才被认定为真阳性(True Positive,TP),反之就是假阳性(False Positive,FP),AP公式为:

同时使用网络分割速度来评估网络的分割性能。实验结果如表2和表3所示。

表2 本文方法与原始方法的AP性能对比Tab.2 Comparison of APperformancebetween theproposed method and the original method

已训练的改进模型在200幅测试集上的分割结果用评价指标 AP、AP50分析,如表 2所示,其中,ResNet34-FPN+Mask R-CNN效果最差,经过网络加深效果可以得到提升。改进后网络+ResNet-101-FPN效果最好,AP提升3.4个百分点,AP50提升4.3个百分点。mIOU相比OTSU算法[25]分割提升约17个百分点,实验证明深度神经网络在秀丽隐杆线虫分割中具有巨大优势。

表3 本文方法消融实验结果(mIOU)Tab.3 Resultsof ablation experiments(mIOU)

3.4 效果对比

改进后模型对分割不同的形态的秀丽隐杆线虫有较好的分割性能。如图7所示,THRESH_OTSU优化算法作为传统分割方法,它的缺点是无法将图像中的附着物如线虫鞭毛、外壁细胞泡分开,同时线虫中较为透明的边界线无法识别,在光线较差的情况下效果较差。而原Mask R-CNN在分割线虫上头尾容易缺失,细小的尖端无法分割出来,分割边缘也不够平滑,不能贴合线虫体,在多条线虫堆叠情况下容易出现漏检,个别虫体分割不完整,出现断层。可以看出经过算法改进很大程度上改善了以上缺点,使分割精细程度大大提升,更加接近于GT(Ground truth)。

图7 实验效果对比Fig.7 Comparison of experimental results

4 结语

本文以Mask R-CNN网络框架为基础,建立针对显微图像下的秀丽隐杆线虫检测分割的端到端的精确分割网络,为了提高秀丽隐杆线虫分割精度,平滑线虫头、尾身和体边缘信息,减少漏检误检。本文通过多级特征池化,结合LMSL损失算法、改进的非极大值抑制、添加全链接融合分支等方法来改进分割效果。实验结果表明,本方法在显微图像线虫分割中速度更快、精度更高,证明了本文提出线虫分割方法的有效性,为实现计算机高通量、全自动定量评估线虫目标奠定基础。

猜你喜欢

线虫卷积损失
洪涝造成孟加拉损失25.4万吨大米
夏季蔬菜换茬期线虫防治要注意
基于全卷积神经网络的猪背膘厚快速准确测定
甘肃党参中花生茎线虫的鉴定与记述
不同品系昆虫病原线虫抗逆性分析
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
线虫液体培养和监测过程关键参数的实验研究
两败俱伤