计算机视觉三大方向,图像分类(Image Classification),目标检测(Object Detection),语义分割(Semantic Segmentation)。
今天给大家介绍的就是,语义分割。
什么是语义分割?
语义分割的目的在于,将图像的每一个像素的都分配上语义标签。 换句话说,可以理解为逐像素的分类。
图1:左边为输入图像,右边为经过语义分割后的图像论文:《Fully Convolutional Networks for Semantic Segmentation》 提交日期:2014年11月 论文链接:https://arxiv.org/abs/1411.4038
1.将端到端的卷积网络推广到语义分割中; 2.重新将预训练好的Imagenet网络用于分割问题中; 3.使用反卷积层进行上采样; 4.提出了跳跃连接来改善上采样的粗糙程度。
本文的关键在于: 1.分类网络中的全连接层可以看作是使用卷积核遍历整个输入区域的卷积操作。 2.这相当于在重叠的输入图像块上评估原始的分类网络,但是与先前相比计算效率更高,因为在图像块重叠区域,共享计算结果。 3.尽管这种方法并不是这篇文章中所特有的,还有一篇关于overfeat的文章也使用了这种思想,但是确实显著提高了在VOC2012数据集上的实际效果。
个人评论:语义分割的开山之作。
论文:《Multi-Scale Context Aggregation by Dilated Convolutions》 论文提交日期:2015年11月 论文链接:https://arxiv.org/abs/1511.07122) 主要贡献: 1.使用了空洞卷积,这是一种可用于密集预测的卷积层. 2.提出在多尺度聚集条件下使用空洞卷积的“背景模块”。
具体解释:
池化操作增大了感受野,有助于实现分类网络。但是池化操作在分割过程中也降低了分辨率。 空洞卷积层在不降低空间维度的前提下增大了相应的感受野指数。在接下来将提到的DeepLab中,空洞卷积被称为多孔卷积(atrous convolution)。从预训练好的分类网络中(这里指的是VGG网络)移除最后两个池化层,而用空洞卷积取代了随后的卷积层。特别的是,池化层3和池化层4之间的卷积操作为空洞卷积层2,池化层4之后的卷积操作为空洞卷积层4。这篇文章所提出的背景模型(frontend module)可在不增加参数数量的情况下获得密集预测结果。这篇文章所提到的背景模块单独训练了前端模块的输出,作为该模型的输入。该模块是由不同扩张程度的空洞卷积层级联而得到的,从而聚集多尺度背景模块并改善前端预测效果。
个人评论:
需要注意的是,该模型预测分割图的大小是原图像大小的1/8。这是几乎所有方法中都存在的问题,将通过内插方法得到最终分割图。
论文1: Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs 于2014年12月22日提交到Arvix 论文1链接:https://arxiv.org/abs/1412.7062 论文2: DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs 于2016年6月2日提交到Arxiv 论文2链接:https://arxiv.org/abs/1606.00915
从标题上你就会看到其实论文2就比1多了一个Atrous Convolution。 主要贡献: 1.使用了空洞卷积; 2.提出了在空间维度上实现金字塔型的空洞池化atrous spatial pyramid pooling(ASPP); 3.使用了全连接条件随机场。
具体解释:空洞卷积在不增加参数数量的情况下增大了感受野,按照上文提到的空洞卷积论文的做法,可以改善分割网络。我们可以通过将原始图像的多个重新缩放版本传递到CNN网络的并行分支(即图像金字塔)中,或是可使用不同采样率(ASPP)的多个并行空洞卷积层,这两种方法均可实现多尺度处理。 我们也可通过全连接条件随机场实现结构化预测,需将条件随机场的训练和微调单独作为一个后期处理步骤。 DeepLab2网络的处理流程
论文: 《RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation》 于2016年11月20日提交到Arxiv 论文链接:https://arxiv.org/abs/1611.06612
主要贡献: 1.带有精心设计解码器模块的编码器-解码器结构; 2.所有组件遵循残差连接的设计方式。具体解释:使用空洞卷积的方法也存在一定的缺点,它的计算成本比较高,同时由于需处理大量高分辨率特征图谱,会占用大量内存,这个问题阻碍了高分辨率预测的计算研究。
DeepLab得到的预测结果只有原始输入的1/8大小。
所以,这篇论文提出了相应的编码器-解码器结构,其中编码器是ResNet-101模块,解码器为能融合编码器高分辨率特征和先前RefineNet模块低分辨率特征的RefineNet模块。
论文:Pyramid Scene Parsing Network 于2016年12月4日提交到Arxiv https://arxiv.org/abs/1612.01105 主要贡献: 1.提出了金字塔池化模块来聚合背景信息; 2.使用了附加损失(auxiliary loss)。 具体解释:全局场景分类很重要,由于它提供了分割类别分布的线索。金字塔池化模块使用大内核池化层来捕获这些信息。和上文提到的空洞卷积论文一样,PSPNet也用空洞卷积来改善Resnet结构,并添加了一个金字塔池化模块。该模块将ResNet的特征图谱连接到并行池化层的上采样输出,其中内核分别覆盖了图像的整个区域、半各区域和小块区域。在ResNet网络的第四阶段(即输入到金字塔池化模块后),除了主分支的损失之外又新增了附加损失,这种思想在其他研究中也被称为中级监督(intermediate supervision)。
论文:《Large Kernel Matters — Improve Semantic Segmentation by Global Convolutional Network》 于2017年3月8日提交到A 论文链接:https://arxiv.org/abs/1703.02719
摘要:网络体系结构设计的最新趋势之一是在整个网络中堆叠小的过滤器(例如,1x1或3x3)。因为在相同的计算复杂性下,堆叠的小过滤器比大的内核更有效。然而,在语义分割领域,我们需要进行密集的每像素预测,我们发现当我们必须同时执行分类和定位任务时,大核(和有效的接收域)起着重要的作用。根据我们的设计原则,我们提出了一个全局卷积网络来解决语义分割的分类和本地化问题。我们还建议基于单独的边界细化,以进一步细化对象边界。我们的方法在两个公共基准上实现了最先进的性能,显著超过了之前的结果,Pascal Voc2012数据集为82.2%(vs 80.2%),城市资本数据集为76.9%(vs 71.8%)。
主要贡献: 1.提出了一种带有大维度卷积核的编码器-解码器结构。
2.具体解释:这项研究通过全局卷积网络来提高语义分割的效果。
3.语义分割不仅需要图像分割,而且需要对分割目标进行分类。在分割结构中不能使用全连接层,这项研究发现可以使用大维度内核来替代。
4.采用大内核结构的另一个原因是,尽管ResNet等多种深层网络具有很大的感受野,有相关研究发现网络倾向于在一个小得多的区域来获取信息,并提出了有效感受野的概念。
5.大内核结构计算成本高,且具有很多结构参数。因此,k×k卷积可近似成1×k+k×1和k×1+1×k的两种分布组合。这个模块称为全局卷积网络(Global Convolutional Network, GCN)。
6.接下来谈结构,ResNet(不带空洞卷积)组成了整个结构的编码器部分,同时GCN网络和反卷积层组成了解码器部分。该结构还使用了一种称作边界细化(Boundary Refinement,BR)的简单残差模块。
论文:Rethinking Atrous Convolution for Semantic Image Segmentation 于2017年6月17日提交到Arxiv https://arxiv.org/abs/1706.05587 主要贡献: 1.改进了空间维度上的金字塔空洞池化方法(ASPP); 2.该模块级联了多个空洞卷积结构。
具体解释: 1.与在DeepLab v2网络、空洞卷积中一样,这项研究也用空洞卷积/多空卷积来改善ResNet模型。 2.这篇论文还提出了三种改善ASPP的方法,涉及了像素级特征的连接、加入1×1的卷积层和三个不同比率下3×3的空洞卷积,还在每个并行卷积层之后加入了批量归一化操作。 3.级联模块实际上是一个残差网络模块,但其中的空洞卷积层是以不同比率构建的。这个模块与空洞卷积论文中提到的背景模块相似,但直接应用到中间特征图谱中,而不是置信图谱。置信图谱是指其通道数与类别数相同的CNN网络顶层特征图谱。 4.该论文独立评估了这两个所提出的模型,尝试结合将两者结合起来并没有提高实际性能。两者在验证集上的实际性能相近,带有ASPP结构的模型表现略好一些,且没有加入CRF结构。 5.这两种模型的性能优于DeepLabv2模型的最优值,文章中还提到性能的提高是由于加入了批量归一化层和使用了更优的方法来编码多尺度背景。 使用空洞卷积的方法也存在一定的缺点,它的计算成本比较高,同时由于需处理大量高分辨率特征图谱,会占用大量内存,这个问题阻碍了高分辨率预测的计算研究。DeepLab得到的预测结果只有原始输入的1/8大小。所以,这篇论文提出了相应的编码器-解码器结构,其中编码器是ResNet-101模块,解码器为能融合编码器高分辨率特征和先前RefineNet模块低分辨率特征的RefineNet模块。
待更新
排名链接:https://paperswithcode.com/sota/semantic-segmentation-on-pascal-voc-2012