基于UNet+网络进行细胞图像识别与分割

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于UNet+网络进行细胞图像识别与分割相关的知识,希望对你有一定的参考价值。

  • 作者:王祥鹤
数据处理流程 目 录
Contents
文献调研 Mask R-CNN算法 UNET 系列算法 算法实现 数据处理流程 算法原理 实现过程 实验结果与分析 实验总结 数据连接

 

§01 据处理流程


  着技术发展,细胞图像能够为人们提供越来越丰富的信息,但是这些信息难以直接地被获取,因此通过机器学习方法进行图像分割,智能化地提取细胞图像中的细胞及其所包含的信息,便是本次综合论文的任务要求。

  即本次人工神经网络期末论文选取了细胞实例分割这一领域,采用pytorch框架下的UNet3+网络,实现细胞识别与分割的人工神经网络模型参数学习,以及最终的测试集结果与可视化,完成这次综合论文的学习、实践与探索。

▲ 图1.1 细胞Mask

  本次综合论文采用UNet3+网络,对于遇见的问题,需要做的预处理包括数据增强及GroundTruth标签处理,分别是为了增强模型泛化能力、匹配网络输入以及将实例分割与语义分割问题相转化,以更好地使用UNet3+网络对当前的输入图片与细胞分割问题进行处理。中途还遇见了包括GPU使用、文件格式匹配以及输入图像大小与网络输入匹配等多方面问题,具体实现方案及问题处理详见正文部分。

  综合论文整体流程图如下:

▲ 图1.2 论文中的数据处理流程

 

§02 献调研


2.1 R-CNN算法

  Mask R-CNN算法,其将整张输入图片输入CNN进行特征提取,在最后一层卷积特征图上,通过FPN(Feature Pyramid Network)生成ROI(Region of Interest),每张图约300个建议窗口;最后通过ROIAlign层使建议窗口生成固定大小的featuremap,得到softmax分类、每类的bounding box回归与ROI的二进制掩码Mask等三个输出向量。

  Mask R-CNN算法的优点在于其综合了分类、回归与分割等三个任务一同进行,同时其在原本Faster-RCNN的框架下,经过多阶段的优化,得到了更好的处理结果;然而,采用FPN会带来巨大的搜索空间,也必然带来数据处理时间与资源上消耗的提升,此即其不足之处之一。

▲ 图2.1.1 Mask R-CNN算法结构

2.2 系列算法

  UNet算法,相比FCN算法稍晚提出,采用Encoder-Decoder结果,将整张图片输入深度学习网络,进行多次卷积、池化等操作,同时采取上采样、下采样以及多尺度跳跃连接等操作,使得网络呈现一个U型,也因此得名。

  UNet算法适用于数据较大的医学图像处理,因医学影像的语义较简单、结构较固定,其优点在于数据量较小时的较好表现,以及多模态特征适用性和良好的可解释性;但其并未从多尺度中表达足够信息,因此本次大作业采取UNet3+网络,采用全尺度跳跃连接和深度监督,可以减少网络参数、提高计算效率,同时提升其对于不同规模器官的适用性,获得更准确的分割结果。

▲ 图2.2.1 UNET系列算法

 

§03 法实现


3.1 数据处理流程

  对输入图片进行80%20%的训练集与验证集划分,并分别做如下数据增强处理:
  对于训练集,对于输入图片与GroundTruth整体进行随机剪裁,并以给定概率随机水平翻转以及随机的45°旋转,以提高模型最终的泛化能力,并将其进行Resize操作;对于输入图像本身,进行包括对比度、饱和度等的颜色增强,并将其转为Tensor格式;对于验证集,整体输入行Resize操作,对于图像本身转为Tensor格式。

3.2 算法原理

  整体的网络输入为待处理图像,输出为分割后的结果;每层的输入为上一层经卷积激活并池化后的结果,输出为处理后图像。整体步骤如下图所示,对于输入图像进行共计五层的卷积和激活、四层的池化和四层上采样操作,同时进行全尺度跳跃连接,并在含深度监督的版本中,使用GroundTruth对上采样部分进行Deep Supervision,卷积核与卷积池化等参数,见下图及代码注释。

▲ 图3.2.1 算法网络结构

3.3 实现过程

  如流程图所示,模型训练以及模型测试和结果可视化,其主要具体实现过程分别如下,采用如图与代码所示的模型与函数。

▲ 图3.3.1 算法实现过程

3.4 实验结果与分析

  由验证集准确率及测试集得分可知,整体模型的准确率与泛化能力均较强,通过可视化结果与提供demo的对比也可得出这一点。

 

§04 验总结


  次综合论文中,不论是对算法的理论学习,还是对于UNet3+网络的研究与实际编写,以及进行数据增强与实际程序编写的实践,都使我受益匪浅。

  在理论分析中,我再度深入调研了各种网络,并在对于医学影像表现较好的UNet系列中,决定采用UNet3+网络进行详细分析,与深入研究;对于程序部分,我先搭建好了程序的整体框架,在验证UNet3+算法对该问题的有效性之后,开始寻找一个个参数的调优方式。从学习率𝛼𝛼、随机概率𝑝𝑝等等参数中,一次次寻找计算量和训练效果之间的平衡,最终得到了较为理想的模型。

▲ 图4.1 用于分割的Cell数据集合

4.1 数据连接

▲ 图4.1.1 Visual数据集合


● 相关图表链接:

以上是关于基于UNet+网络进行细胞图像识别与分割的主要内容,如果未能解决你的问题,请参考以下文章

Unet网络实现叶子病虫害图像分割

Unet 语义分割模型(Keras)| 以细胞图像为例

模式识别与图像处理课程实验二:基于UNet的目标检测网络

深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程

CV基础基于Pytorch-Unet训练多类别分割并测试

基于图像处理和卷积神经网络的文本验证码识别方案