资讯详情

深度学习图像分割:网络结构设计一览

点击上方“”,选择加""或“

重磅干货,第一时间送达

作者李慕清@知乎

来源丨https://zhuanlan.zhihu.com/p/104854615

转自 |极市平台

在利用CNNs在进行图像语义分割时,网络结构的一些创新点主要包括新神经结构、新组件或层的设计。本文的后半部分梳理了网络结构设计在医学图像分割领域的应用。

本文总结了使用情况CNNs在进行图像语义分割时,这些创新点主要包括新神经架构(不同深度、宽度、连接和拓扑结构)和新组件或层的设计。前者是利用已有的组件组装复杂的大型网络,后者是更偏向于设计底层组件。首先介绍一些经典的语义分割网络及其创新点,然后介绍网络结构设计在医学图像分割领域的应用。

1. 图像语义分割网络结构创新

2839aa68d107fd1abe568c620c8c4a3e.png

FCN整体架构简图

单独将FCN因为FCN网络是第一个从新的角度解决语义分割问题的网络。以前基于神经网络的图像语义分割网络使用以分类像素点为中心的图像块来预测中心像素的标签CNN FC显然,这种方法不能利用图像的全局上下文信息,逐像素推理速度很低;而且FCN网络放弃了全连接层FC,通过转移卷积和融合不同层特征的策略,用卷积层构建网络,使网络输出直接预测输入图像mask,大大提高了效率和精度。

FCN不同层次的特征集成示意图

:全卷积网络(不含)fc层);转移卷积deconv(反卷积);不同层特征图跳跃连接(相加)

(Enconder-decoder)

  • 和FCN网络的思路基本一致。部分使用编码器VGG16前13层卷积的区别在于Decoder部分Upsampling的方式。FCN通过特征图deconv上采样结果与编码器对应大小的特征图相结合;SegNet用Encoder部分maxpool的索引进行Decoder部分上采样(原文描述:the decoder upsamples the lower resolution input feature maps. Speci?cally, the decoder uses pooling indices computed in the max-pooling step of the corresponding encoder to perform non-linear upsampling.)。

:Encoder-Decoder结构;Pooling indices。

SegNet网络

SegNet与FCN的Upsample方式对比

  • U-Net网络最初是为生物医学图像设计的,但由于其第四年的性能,现在UNet及其变体已广泛应用CV各个子领域。UNet网络通过U通道和短通道(skip-connection)组成,U通道类似于SegNet编码解码结构,编码部分(contracting path)提取和捕获上下文信息,解码部分(expanding path)用解码特征图预测像素标签。短接通道提高了模型的精度,解决了梯度消失的问题。应特别注意的是,短接通道的特征图是拼接而不是添加(与FCN)。

:U型结构;短接通道(skip-connection)

U-Net网络

  • V-Net网络结构与U-Net类似地,区别在于该架构增加了跳跃连接,并使用了3D操作物替换了2D操作以处理3D图像(volumetric image)。并针对广泛使用的细分指标(如Dice)进行优化。

V-Net网络

:相当于U-Net网络的3D版本

  • (paper title: The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation)网络结构采用密集连接块(Dense Block)和UNet架构构造。该网络最简单的版本由两条向下采样路径和两条向上采样路径组成。还包括两个水平跳跃连接,将下采样路径的特征图与上采样路径中的相应特征图拼接在一起。上采样路径与下采样路径之间的连接模式不完全相同:在下采样路径中,每个密集块外都有一个跳跃拼接路径,导致特征图数量的线性增长,而上采样路径中没有此操作。(多说一句,这个网络的缩写可以是Dense Unet,但是有一篇论文叫Fully Dense UNet for 2D Sparse Photoacoustic Tomography Artifact Removal, 这是一篇光声成像去伪影的论文,我见过很多博客引用这篇论文中的插图来谈语义分割,根本不是一回事吗? =_=||,可以区分自己。)

FC-DenseNet(米苏网络百层提拉)

融合DenseNet与U-Net网络(从信息交流的角度来看,密集连接确实比残余结构强)

  • Deeplab该系列网络是2018年编解码结构的改进版本DeeplabV3 网络在VOC2012和Cityscapes优秀的数据集性能,实现SOTA水平。DeepLab系列共有V1、V2、V3和V3 总共有四篇论文。总结每篇论文的一些核心内容:

1) DeepLabV1:集成卷积神经网络和概率图模型:CNN CRF,分割定位精度提高;

2) DeepLabV2:ASPP(扩大空间金字塔池化);CNN CRF

3) DeepLabV3:改进ASPP,多了1*1卷积和全局平均池化(global avg pool);对比级联和并联空洞卷积的效果。

级联空洞卷积

并联空洞卷积(ASPP)

4) DeepLabV3 :添加编解码架构理念,添加解码器模块进行扩展DeepLabv3.应用深度可分离卷积ASPP和解码器模块;改进Xception作为Backbone。

DeepLabV3

总的来说,: 空洞卷积;ASPP;CNN CRF(仅V1和V2使用CRF,应该是V3和V3 分割边界模糊的问题是通过深度网络解决的,效果比增加要好CRF更好)

  • (pyramid scene parsing network)通过聚合不同的上下文信息,提高网络利用全局上下文信息的能力。在SPPNet,不同层次的金字塔池化特征图最终被金字塔池化生成flatten并concate起来,再送入全连接层以进行分类,消除了CNN图像分类输入大小固定的限制。而在PSPNet使用的策略是:poolling-conv-upsample,然后拼接特征图,然后预测标签。

PSPNet网络

多尺度池化,更好地利用全局图像水平的先验知识,了解复杂场景

  • 结合多尺度激活,通过细化中间激活映射,分层连接,防止锐度损失。网络是独立的Refine每个模块组成Refine模块由剩余卷积单元三个主要模块组成(RCU),多分辨率融合(MRF)和链剩余池(CRP)。整体结构有点相似U-Net,然而,在跳跃连接处设计了一种新的组合方(不简单concat)。就我个人而言,这种结构实际上非常适合作为自己的网络设计理念,可以添加许多其他的CV在问题中使用CNN module,而且以U-Net对于整体框架,效果不会太差。

RefineNet网络

也有很多工作致力于降低语义分割网络的计算复杂度。一些简化深度网络结构的方法:张量分解;通道/网络剪枝;稀疏化连接。还有一些利用NAS(神经架构搜索)取代人工设计来搜索模块或整个网络的结构,当然AutoDL所需的GPU资源会劝退一大批人。因此,也有一些人使用随机搜索来搜索小的多的ASPP模块,然后基于小模块来搭建整个网络模型。

网络轻量化设计是业内共识,移动端部署不可能每台机器配一张2080ti,另外耗电量、存储等问题也会限制模型的推广应用。不过5G如果能普及的话,数据就可以全部在云端处理,会很有意思。当然,短期内(十年),5G全方位部署不知道是否可行。

注意力机制可以定义为:使用后续层/特征图信息来选择和定位输入特征图中最具判断力(或显著性)的部分。简单地可以认为是给特征图加权的一种方式(权值通过网络计算得到),按照权值的作用方式的不同,可以分为通道注意力机制(CA)和空间注意力机制(PA)。FPA(Feature Pyramid Attention,特征金字塔注意力)网络是一种基于注意力机制的语义分割网络,它将注意力机制和空间金字塔相结合,以提取用于像素级标记的精密特征,而没有采用膨胀卷积和人为设计的解码器网络。

Goodfellow等人在2014年提出了一种对抗的方法来学习深度生成模型, 生成对抗网络(GANs)中需要同时训练两个模型:捕获数据分布的生成模型G,和估计样本来自训练数据的概率的判别模型D。

● G是一个生成式的网络,它接收一个随机的噪声z(随机数),通过这个噪声生成图像

● D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x(一张图片),输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。

G的训练程序是将D错误的概率最大化。可以证明在任意函数G和D的空间中,。训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量辨别出G生成的假图像和真实的图像。这样,G和D构成了一个动态的“博弈过程”,最终的平衡点即纳什均衡点.。在G和D由神经网络定义的情况下,整个系统可以用反向传播进行训练。

GANs网络结构示意

受到GANs启发,Luc等人训练了一个语义分割网络(G)以及一个对抗网络(D),对抗网络区分来自ground truth或语义分割网络(G)的分割图。G和D不断地博弈学习, 它们的损失函数定义为 :

GANs loss function

其中  和  分别代表分割网络(G)和对抗网络(D)的参数。 和 分别是多类和二类交叉熵损失,两部分共同组成网络的损失函数。

回顾一下原始的GAN损失函数:

GANs的损失函数体现的是一种零和博弈的思想,原始的GANs的损失函数如下:

损失的计算位置是在D(判别器)输出处,而D的输出一般是fake/true的判断,所以整体可以认为是上采用了二分类交叉熵函数。由GANs的损失函数的形式可知,训练要分为两部分:

首先是maxD部分,因为训练一般是先保持G(生成器)不变训练D的。D的训练目标是正确区分fake/true,如果我们以1/0代表true/fake,则对第一项E因为输入采样自真实数据所以我们期望D(x)趋近于1,也就是第一项更大。同理第二项E输入采样自G生成数据,所以我们期望D(G(z))趋近于0更好,也就是说第二项又是更大。所以是这一部分是期望训练使得整体更大了,也就是maxD的含义了。这部分只更新D的参数。

第二部分保持D不变(不进行参数更新),训练G,这个时候只有第二项E有用了,关键来了,因为我们要迷惑D,所以这时将label设置为1(我们知道是fake,所以才叫迷惑),希望D(G(z))输出接近于1更好,也就是这一项越小越好,这就是minG。当然判别器哪有这么好糊弄,所以这个时候判别器就会产生比较大的误差,误差会更新G,那么G就会变得更好了,这次没有骗过你,只能下次更努力了(引自https://www.cnblogs.com/walter-xh/p/10051634.html)。这时候只更新G的参数。

从另一个角度看GANs,判别器(D)相当于一种特殊的损失函数(由神经经网络构成,不同于传统的L1、L2、交叉熵等损失函数)。

另外GANs训练方式特殊,存在梯度消失、模式崩溃等问题(目前好像有办法可以解决),但其设计思想确实是深度学习时代一个伟大的发明。

基于深度学习的图像语义分割模型大多遵循编码器-解码器体系结构,如U-Net。近几年的研究成果表明,膨胀卷积和特征金字塔池可以改善U-Net风格的网络性能。在第2节中,我们总结一下,如何将这些方法及其变体应用于医学图像分割。

2. 网络结构创新在医学图像分割中的应用

这部分介绍一些网络结构创新在2D/3D医学图像分割中的应用研究成果。

为了实现实时处理高分辨率的2D/3D医学图像(例如CT、MRI和组织病理学图像等),研究人员提出了多种压缩模型的方法。weng等人利用NAS技术应用于U-Net网络,得到了在CT,MRI和超声图像上具有更好的器官/肿瘤分割性能的小型网络。Brugger通过利用组归一化(group normalization )和Leaky-ReLU(leaky ReLU function),重新设计了U-Net架构,以使网络对3D医学图像分割的存储效率更高。也有人设计了参数量更少的扩张卷积module。其他一些模型压缩的方法还有权重量化(十六位、八位、二值量化)、蒸馏、剪枝等等。

Drozdal提出了一种在将图像送入分割网络之前应用简单的CNN来对原始输入图像进行归一化的方法,提高了单子显微镜图像分割、肝脏CT、前列腺MRI的分割精度。Gu提出了在主干网络利用扩张卷积来保留上下文信息的方法。Vorontsov提出了一种图到图的网络框架,将具有ROI的图像转换为没有ROI的图像(例如存在肿瘤的图像转换为没有肿瘤的健康图像),然后将模型去除的肿瘤添加到新的健康图像中,从而获得对象的详细结构。Zhou等人提出了一种对U-Net网络的跳跃连接重新布线的方法,并在胸部低剂量CT扫描中的结节分割,显微镜图像中的核分割,腹部CT扫描中的肝脏分割以及结肠镜检查视频中的息肉分割任务中测试了性能。Goyal将DeepLabV3应用到皮肤镜彩色图像分割中,以提取皮肤病变区域。

Nie提出了一种注意力模型,相比于baseline模型(V-Net和FCN),可以更准确地分割前列腺。SinHa提出了一种基于多层注意力机制的网络,用于MRI图像腹部器官分割。Qin等人提出了一个扩张卷积模块,以保留3D医学图像的更多细节。其他基于注意力机制的啼血图像分割论文还有很多。

Khosravan提出了从CT扫描中进行胰腺分割的对抗训练网络。Son用生成对抗网络进行视网膜图像分割。Xue使用全卷积网络作为生成对抗框架中的分割网络,实现了从MRI图像分割脑肿瘤。还有其他一些成功应用GANs到医学图像分割问题的论文,不再一一列举。

递归神经网络(RNN)主要用于处理序列数据,长短期记忆网络(LSTM)是RNN的一个改进版本,LSTM通过引入自环(self-loops)使得梯度流能长期保持。在医学图像分析领域,RNN用于对图像序列中的时间依赖性进行建模。Bin等人提出了一种将全卷积神经网络与RNN融合的图像序列分割算法,将时间维度上的信息纳入了分割任务。Gao等人利用CNN和LSTM拉对脑MRI切片序列中的时间关系进行建模,以提高4D图像中的分割性能。Li等人先用U-Net获得初始分割概率图,后用LSTM从3D CT图像中进行胰腺分割,改善了分割性能。其他利用RNN进行医学图像分割的论文还有很多,不再一一介绍。

这部分内容主要是分割算法在医学图像分割中的应用,所以创新点并不多,主要还是对不同格式(CT还是RGB,像素范围,图像分辨率等等)的数据和不同部位数据的特点(噪声、对象形态等等),经典网络需要针对不同数据进行改进,以适应输入数据格式和特征,这样能更好的完成分割任务。虽然说深度学习是个黑盒,但整体上模型的设计还是有章可循的,什么策略解决什么问题、造成什么问题,可以根据具体分割问题进行取舍,以达到最优的分割性能。

1 Deep Semantic Segmentation of Natural and Medical Images: A Review

2 NAS-Unet: Neural architecture search for medical image segmentation. IEEE Access, 7:44247–44257, 2019.

3 Boosting segmentation with weak supervision from image-to-image translation. arXiv preprint arXiv:1904.01636, 2019

4 Multi-scale guided attention for medical image segmentation. arXiv preprint arXiv:1906.02849,2019.

5 SegAN: Adversarial network with multi-scale L1 loss for medical image segmentation.

6 Fully convolutional structured LSTM networks for joint 4D medical image segmentation. In 2018 IEEE

7 https://www.cnblogs.com/walter-xh/p/10051634.html

开始面向外开放啦👇👇👇

 
     

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

标签: v3接近传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台