本文罗列了及state-of-art文章,主要关注的是用深度学习进行图像分割,image segmentation。查看更多的文献综述,参阅
https://github.com/senbinyu/Computer_Vision_Literatures
1. Review papers
Guo et al., Leiden University, 2018, A review of semantic segmentation using deep neural networks
Recommand Minaee et al., Snapchat Inc, 2020.01, Image Segmentation Using Deep Learning: A Survey
此图承前启后,理解几个任务的不同,语义分割(同一类的不区分)和实例分割(每个例子都区分开来)
2. Image segmentation
2.1 Fully Convolutional Networks
-
FCN, Long et al., 2015, Berkeley, Fully convolutional networks for semantic segmentation
图像分割的里程碑,表明可以对端到端的可变图像进行语义分割的深度网络训练。 作者将完全连接层更改为完全卷积层,因此网络可以输出空间分割图而不是分类分数,而且实现了端到端end-to-end。 但是,实时推理的速度不够快,没有以有效的方式考虑全局上下文信息,并且不容易将其转换为3D图像。 -
ParseNet, Liu et al., 2015, UNC Chapel Hill, Parsenet: Looking wider to see better
ParseNet通过使用一个图层的平均要素来扩展每个位置的要素,从而将全局上下文添加到FCN。 图层的特征图将在整个图像上合并,从而产生上下文向量。 对该上下文向量进行规范化并进行非池化,以生成与初始大小相同的新特征图。 这些功能然后将地图串联在一起。可以参照下图,从feature layer中通过global pooling得到全局语境信息,随后L2 norm,再到最后unpooling回去,可以弥补上述FCN模型的无全局语境信息,提高精确率
2.2 Convolutional Models With Graphical Models
-
CNN + CRFs, Chen et al., 2015, UCLA+Google, Semantic image segmentation with deep convolutional nets and fully connected crfs
来自深层CNN的最后一层的响应不足以精确地进行对象分割(但擅长分类)。 为了克服深层CNN的定位精度差的特性,作者将最后CNN层的响应与完全连接的CRF结合在一起。 结果表明,与以前的方法相比,此的模型能够以更高的准确率定位路段边界。结合了CNN的语义信息和crf的位置信息,如下图所示,upsample后进行双线性插值结合CRF最后得到分割图。
-
Liu et al., 2015, The Chinese University of Hong Kong, Semantic image segmentation via deep parsing network
一种语义分割算法,它将丰富的信息合并到MRF中,包括高阶关系和标签上下文的混合。 与以前的使用迭代算法优化MRF的工作不同,他们提出了CNN模型,即解析网络,该模型可在单个前向通过中实现确定性的端到端计算。
2.3 Encoder-Decoder Based Models
大多数基于DL的分割工作都使用某种编码器/解码器模型。
-
Noh et al., 2015, POSTECH, Korea, Learning deconvolution network for semantic segmentation
该网络基于VGG-16,由卷积和反卷积网络组成。 在两个网络之间,两个fc层如下图所示。 解卷积网络由解卷积和解池层组成。
-
SegNet, Badrinarayanan, 2017, University of Cambridge, [Segnet: A deep convolutional encoder-decoder architecture for image segmentation](IEEE Xplore Full-Text PDF:)
SegNet用完全卷积层替换了中间的fc层。 SegNet的主要新颖之处在于解码器对其较低分辨率的输入特征图进行升采样。 具体来说,它使用在相应编码器的最大合并步骤中计算的合并索引index来执行非线性上采样。 这消除了学习向上采样的需要。创新点在于上采样的时候利用下采样(max pooling)记录下的最大值的index,而无需再次进行训练 -
U-Net, Ronneberger et al., 2015, University of Freibur, U-Net: Convolutional Networks for Biomedical Image Segmentation
该网络最初是为医学图像的分割而提出的,现在在所有领域的分割任务中都很流行。网络由两部分组成:捕获上下文的路径,以及支持精确定位的对称扩展路径。详细过程可参见下图。对称结构,左右连接,将语义信息和位置信息结合在一起,最后上采样得到图片,再用1 * 1卷积核输出segmentation图
-
V-Net, Milletari et al., 2016, Technische Universitat Munchen + Johns Hopkins University, V-net: Fully convolutional neural networks for volumetric medical image segmentation
它用于3D体积图像分割。 作者介绍了一种基于Dice系数的新目标函数,使该模型能够处理前景和背景中的体素数量之间存在严重不平衡的情况。
2.4 Multi-Scale and Pyramid Network Based Models
-
FPN, Lin et al., 2017, Facebook, Feature Pyramid Networks for Object Detection
最初用于物体检测,但可以扩展用于图像分割。 详细信息请参见下图。 这是文章的一个extend内容,里面简单验证了想法可行。
-
Pyramid Scene Parsing Network (PSPNet), Zhao et al., 2017, The Chinese University of Hong Kong, Pyramid scene parsing network
使用残差网络(ResNet)作为特征提取器并使用扩张网络从输入图像中提取不同的图案pattern。 然后将这些特征图馈送到金字塔池模块中,以区分不同比例的图案。 它们以四个不同的比例合并,每个比例对应于一个金字塔等级,并由1×1卷积层处理以减小其尺寸。 金字塔等级的输出被上采样并与初始特征图连接,以捕获本地和全局上下文信息。 最后,使用卷积层生成逐像素预测。结合下图,前面用ResNet提取特征(空洞卷积),随后用4种scale的pool,然后用1 * 1卷积核将其channel减少,然后和之前的feature map拼接输出。
2.5 R-CNN Based Models (for Instance Segmentation)基于RCNN系列模型
-
Mask RCNN, He et al., 2017, Facebook, Mask R-CNN
该模型有效地检测图像中的对象,同时为每个实例生成高质量的分割蒙版。 Mask R-CNN本质上是具有3个输出分支的Faster RCNN:第一个计算边界框坐标,第二个计算关联的类,第三个计算二值mask以分割对象。 Mask R-CNN损失函数将边界框坐标,预测类和分割掩码的损失组合在一起,并共同训练所有这些损失。
-
PANet, Liu et al., 2018, The Chinese University of Hong Kong + Peking University + Tecent, Path Aggregation Network for Instance Segmentation
基于Mask R-CNN和FPN模型。 网络的特征提取器使用FPN架构,并具有新的增强的自下而上的路径,从而改善了低层功能的传播。 使用横向连接将输出添加到自上而下路径的同一阶段特征图,这些特征图将馈入下一个阶段。 第三步使用FCN + fc层处理RoI以预测对象mask,如下面的(e)所示。 小结:作者发现底层的位置信息要通过太长的路到达最深处,因此缩短信息流通距离;还有就是聚合所有的feature proposals到一起做决策(利用adaptive pooling);在(e)中多开一个FC层和FCN一块,信息变得有多样性,增强了预测质量。
-
MaskLab, Chen et al., 2018, google, Masklab: Instance segmentation by refining object detection with semantic and direction features
它基于Faster R-CNN改进了具有语义和方向特征的对象检测。 该模型产生三个输出:框检测,语义分割和方向预测。 在FasterRCNN对象检测器的基础上,预测框提供了对象实例的准确定位。 在每个感兴趣的区域内,MaskLab通过组合语义和方向预测来执行前景/背景分割。与Mask-RCNN不同的是,这个产生的semantic segmentation,其产生的crop logits和direction pooling拼接得到segmentation
2.6 Dilated Convolutional Models and DeepLab Family
Dilated conv (also known as atrous conv), 空洞卷积率为2的3 * 3内核相当于5 * 5内核。空洞卷积率,可以增大feature extraction时的视野.
DeepLab family: in deepLab v3, the authors begins to call previous deeplab v2.
- DeepLab v1, Chen et al., 2014, in ## 2.2, Semantic image segmentation with deep convolutional nets and fully connected crfs
- DeepLab v2, Chen et al., 2016, google, Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs
- 使用膨胀卷积来解决网络中分辨率下降的问题 (max-pooling and striding导致).
- Atrous Spatial Pyramid Pooling (ASPP)使用多个采样率的过滤器探测传入的卷积特征层,从而以多个比例捕获对象以及图像上下文,从而以多个比例稳健地分割对象。
- 通过结合来自深层CNN和概率图形模型的方法,可以改善对象边界的定位。
空洞卷积可以增加感受野,减小分辨率降低(max-pooling)的问题,且空洞金字塔池化能够捕捉多尺度信息,增强信息畅通性。
但为什么在实际的CNN中较少见到?查阅资料后发现是:空洞卷积在实际中不好优化,速度会大大折扣
-
DeepLab v3, Chen et al., 2017, google, Rethinking Atrous Convolution for Semantic Image Segmentation
结合散布卷积的级联和并行模块。 并行卷积模块在ASPP中分组。 1×1卷积和批归一化被添加到ASPP中。 将所有输出串联在一起,并通过另一个1×1卷积进行处理,以创建最终输出,并为每个像素提供对数。
-
DeepLab v3+, Chen et al., 2018, google, Encoder-decoder with atrous separable convolution for semantic image segmentation
它使用一种编码器-解码器体系结构,包括深度可分离的卷积,它由深度卷积(输入的每个通道的空间卷积)和逐点卷积(以深度卷积作为输入的1×1卷积)组成。 他们使用DeepLabv3框架作为编码器。 在2012年PASCAL VOC挑战赛中,它获得89.0%的mIoU评分,而DeepLab v3则为85.7%。
相当于在v3基础上,多加了一个decoder环节,从刚开始的dilated conv处多接了一路,完善了物体边界信息。
2.7 Recurrent Neural Network Based Models
RNN在建模像素之间的短期/长期依赖性方面很有用,以(可能)改善分割图的估计。 使用RNN,可以将像素链接在一起并进行顺序处理,以对全局上下文进行建模并改善语义分割。
-
Byeon et al. 2015, University of Kaiserslautern, Scene labeling with lstm recurrent neural networks
它是使用2D长短期内存(LSTM)网络对场景图像进行像素级分割和分类。 在这项工作中,分类,细分和上下文集成全部由2D LSTM网络执行,从而允许在单个模型中学习纹理和空间模型参数。周围方向上的语义信息输入到LSTM中,将分类,分割集合到2D LSTM的网络中。
-
ReSeg, Visin et al., 2016, Polimi, Reseg: A recurrent neural network-based model for semantic segmentation
基于ReNet(用于分类),四个RNN分别在两个方向上水平和垂直扫描图像,对补丁/激活进行编码,并提供相关的全局信息。 相同的ReNet层之后是上采样层,以在最终预测中恢复原始图像分辨率。 Gated Recurrent Units (GRU)是因为它们在内存使用和计算能力之间提供了良好的平衡。骨架和ReNet一致,就是最后的分类阶段变成上采样,从而能输出分割图像。
-
Liang et al., 2016, National University of Singapore, Semantic object parsing with graph lstm
基于图的LSTM, Graph LSTM,将在超像素图上构建的LSTM层附加到卷积层上,以增强具有全局结构上下文的视觉特征。 卷积特征通过1×1卷积滤波器以生成所有标签的初始置信度图。 通过基于初始置信度图的置信度驱动方案确定后续Graph LSTM层的节点更新顺序,然后Graph LSTM层可以顺序更新所有超像素节点的隐藏状态。 这其实也像CNN和RNN结合,CNN得到的置信图和卷积结果喂给LSTM。graph LSTM所要判别的pixel是由周围的pixel作为邻居一起决定,因此,可以给出如身体的各个部位信息。
-
Hu et al., 2016, UC Berkeley, Segmentation from natural language expressions
结合CNN编码图像和LSTM编码自然语言描述,作者提出了一种基于自然语言表达的语义分割算法。 为了产生用于语言表达的逐像素细分,他们提出了一种端到端可训练的递归和卷积模型,该模型共同学习处理视觉和语言信息。 在所考虑的模型中,使用循环LSTM网络将参考表达式编码为矢量表示,并使用FCN从图像中提取空间特征图并输出目标对象的空间响应图。
结合LSTM和FCN,由LSTM学习语言信息,FCN学习图像信息,最后综合给出分割结果。
2.8 Attention-Based Models
在目标检测中,我们已经注意到注意力机制可以显着提高任务质量。 在图像分割里,我们将其用于细分任务。
-
Chen et al., 2016, UCLA, Attention to scale: Scale-aware semantic image segmentation
作者提出了一种注意力机制,该机制可以学习对每个像素位置的多尺度特征进行加权。 他们采用了强大的语义分割模型,并与多尺度图像和注意力模型一起对其进行训练。 注意机制优于平均池和最大池,它使模型能够评估不同位置和比例下的要素的重要性。他们将FCN模型和注意力模型一块训练,在大尺度图片上调高小物体的weights,小尺度图片上大物体得到识别,最终得到了超出pooling的有效结果。
-
RAN (Reverse Attention Network), Huang et al., 2017, USC, Semantic segmentation with reverse attention
RAN训练模型以捕获相反的概念(即与目标类不相关的要素)。 RAN是一个三分支网络,可同时执行直接注意和反向注意学习过程。
-
Pyramid Attention Network, Li et al., 2018, Beijing Institute of Technology, Pyramid attention network for semantic segmentation
作者将注意力机制和空间金字塔相结合,以提取用于像素标记的精确密集特征,而不是复杂的膨胀卷积和人为设计的解码器网络。 具体来说,我们引入了一个特征金字塔注意模块来对高级输出执行空间金字塔注意结构,并结合全局池以学习更好的特征表示,并在每个解码器层上引入一个全局注意力上采样模块以提供全局背景作为低水平的指导 级功能以选择类别本地化详细信息。结合FPN和attention机制,形成FPA,进行深层的语义信息提取结合全局pooling,然后和低层的位置信息结合。
-
DAnet, Fu et al., 2019, Chinese Academy of Sciences, Dual attention network for scene segmentation
可以基于自我关注机制捕获丰富的上下文相关性。 具体来说,它们在扩张的FCN之上附加了两种类型的注意力模块,分别在空间和通道维度上对语义相互依赖性进行建模。 位置注意力模块通过所有位置上的特征的加权总和选择性地聚合每个位置上的特征。 同时,channel关注模块通过整合所有频道图之间的关联特征,有选择地强调相互依存的频道图。 我们对两个注意力模块的输出求和,以进一步改善特征表示。
小结:引入两个attention模块并行,一个是spatial(不同位置特征的加权和),一个是channel(就像SENet对不同channel激活然后归一化),随后将两者结合输出分割图像
2.9 Generative Models and Adversarial Training
-
Luc et al., 2016, Facebook, Semantic segmentation using adversarial networks
他们训练了卷积语义分割网络,以及一个对抗网络,该网络将ground truth分割图与由分割网络生成的segmentation区分开来。作者也做实验证明了加了对抗网络之后,分割效果明显变好。
-
GANs segmentation, Souly et al., 2017, University of Central Florida, Semi supervised semantic segmentation using generative adversarial network
作者提出了使用GAN的半弱监督语义分割。 它由一个生成器网络组成,该生成器网络为GAN框架中的判别器多类分类器提供了额外的训练示例,该分类器从K个可能的类中为标签y分配样本y或将其标记为假样本(额外类)。 其基本思想是,添加大量伪造的视觉数据会迫使真实样本在特征空间中接近,从而实现了自下而上的聚类过程,进而改善了多类像素分类。额外的假数据加上半监督(有标签和无标签的真实数据)一起训练生成对抗网络。
-
semi-supervised GANs, Hung et al., 2018, University of California, Adversarial learning for semi-supervised semantic segmentation
虽然大多数现有的鉴别器都经过训练,可以在图像级别将输入图像分类为真实图像还是伪图像,但作者还是以完全卷积的方式设计了一个鉴别器,以便在考虑空间分辨率的情况下将预测的概率图与地面真实分割分布区分开。 该模型考虑的损失函数包含三个术语:基于ground truth的交叉熵损失,鉴别器网络的对抗损失和基于置信度图的半监督损失;以及鉴别器的输出。一改之前GANs判断输入图片真假,二是利用FCN去增加损失函数,分割图像的CE损失+对抗网络的loss+置信图的半监督损失(对抗网络的输出)
-
Segan, Xue et al., 2018, Lehigh University, Segan: Adversarial network with multi-scale L1 loss for medical image segmentation
像以前的半监督GAN一样,作者使用全卷积神经网络作为分割器来生成分割标签图,并提出了一种具有多尺度L1损失函数的新型对抗性评论者网络,以迫使评论者和细分者同时学习全局和 捕获像素之间长距离和短距离空间关系的局部特征。 在最小-最大游戏中以交替的方式训练分段器和注释器网络:通过最大化多尺度损失函数来训练注释器,而仅通过注释器传递的梯度来训练分段器,以最小化 多尺度损失函数。
如下图,上下两个网络,但还是端到端的。上面的FCN作为segmentor,下面的critic用L1损失。下面的critic则是训练的最大化损失,而上面的segmentor则通过梯度传播,目的是最小化损失。
查看更多机器视觉文献综述,参阅
https://github.com/senbinyu/Computer_Vision_Literatures