精华内容
参与话题
问答
  • 语义分割

    2020-05-24 08:39:06
    语义分割 Semantic Segmentation 什么是语义分割 )

    语义分割

    Semantic Segmentation

    什么是语义分割

    在这里插入图片描述
    在这里插入图片描述)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 目录:一、语义分割简介二、语义分割的过去:传统语义分割算法三、语义分割的现在:深度学习下的语义分割 3.1、基于滑窗的语义分割模型到基于候选区域的语义分割模型 3.2、基于编码器-解码器(上采样/反卷积)结构的...

    dd2d6e6a088c4d2b6b1d84b7e5423934.png

    目录:

    一、语义分割简介二、语义分割的过去:传统语义分割算法三、语义分割的现在:深度学习下的语义分割

    3.1、基于滑窗的语义分割模型到基于候选区域的语义分割模型

    3.2、基于编码器-解码器(上采样/反卷积)结构的语义分割模型

    3.3、其他类型的语义分割模型

    四、语义分割的将来:语义分割未来的可能的研究方向

    一、语义分割简介

    1.1、什么是语义分割

    我们知道图像分类任务是把一张图片划分为某个类别,而语义分割则是更进一步的分类 — 在像素级别上的分类,属于同一类的像素都要被归为一类。比如以下照片,属于人的像素都要分成一类,属于摩托车的像素也要分成一类,除此之外还有背景像素也被分为一类。

    34421a4cd390065974aaae8e73cbe94b.png
    原图

    e9d1af4bf8f917f048ba49df74b4ec09.png
    语义分割结果

    更加正式的明确语义分割任务如下:

    • 输入:
      ,就是正常的图片,其中H和W分别代表输入图片的高和宽
    • 输出:
      , classNum为给定的数据集的类别数,也就是一共classNum个通道的H*W大小的特征图。每一个通道对应一个class,对每一个像素位置,都有classNum数目个通道,每个通道的值对应那个像素属于该class的预测概率。

    1.2、用于语义分割的常用数据集

    Pascal Voc:
    http://host.robots.ox.ac.uk/pascal/VOC/host.robots.ox.ac.uk
    Cityscapes:
    Semantic Understanding of Urban Street Sceneswww.cityscapes-dataset.com
    0c8b7c76a240a8c9f8e8453c785035cd.png
    MSCOCO:
    http://cocodataset.org/cocodataset.org

    1.3、语义分割评价指标

    • 像素精度(pixel accuracy ):

    每一类像素正确分类的个数/ 每一类像素的实际个数

    • 均像素精度(mean pixel accuracy ):

    每一类像素的精度的平均值

    • 平均交并比(Mean Intersection over Union):

    MIoU是指求出每一类的IOU取平均值。IOU指的是两块区域相交的部分/两个部分的并集,如下图中:绿色部分/总面积。

    347bbd1b853a2234f8e0d4efa17a0688.png
    IOU
    • 权频交并比(Frequency Weight Intersection over Union):

    每一类出现的频率作为权重

    二、语义分割的过去:传统语义分割算法

    在深度学习方法流行之前,基于Texton Forest和Random Forest等传统机器学习分类器的语义分割方法是用得比较多的方法。但是深度学习的兴起,大大的提高了语义分割算法的精度,使得学者对于传统的语义分割算法的研究热情逐渐开始走向下坡路。由于这篇文章主要总结的是深度学习背景下的语义分割,所以这里就不详细展开讲这些传统的算法了。但是想表达的一点是,将传统方法与深度学习方法结合是一个很好的研究突破点。

    三、语义分割的现在:深度学习下的语义分割

    3.1、基于滑窗的语义分割模型到基于候选区域的语义分割模型

    • 基于滑窗的语义分割模型

    在2012年,Ciresan用CNN来挑战语义分割任务。Ciresan采取滑窗的方式,取以每个像素点为中心的小图像块(patch)输入CNN来预测该像素点的语义标签。这是个很有意义的尝试,打破CNN只用于目标分类的先河,作者也取得了当年state-of-art的成就。

    我们以一张遥感图像的语义分割来讲解这个方法。如下图所示我们按照预先设定好的窗口大小(比如7*7)从原图中取出一个7*7大小的图片。

    65061e52b3685e5905d94ead75caece5.png
    窗口示例

    然后,如下图所示,将取出的图片送入卷积神经网络中。从而预测出该图片属于哪一类,然后将这个窗口的中心像素打上这个标签。重复这个取窗口和预测的过程,直到所有的像素点都被打上了对应的标签。

    8c244417c6592fdb8bc94f1a2166e933.png

    不过,这个方法的缺点也很明显:

    1)需要遍历每个像素点提取patch进行训练、预测,速度慢、很耗时;

    2)取多大的窗口才合适?太小了缺少上下文信息,太大了会增加很多计算量;无疑很多窗口之间存在着大量冗余计算。

    • 基于候选区域的语义分割模型

    滑窗方法的缺点在目标检测领域同样存在,学者用基于候选区域的方法解决这问题。而在语义分割领域,基于区域选择的几个算法也主要是由前人的有关于目标检测的工作渐渐延伸到语义分割的领域的。

    主要研究进程:

    目标检测阶段:R-CNN—>Fast R-CNN—>Faster R-CNN参考文献:【1】R-CNN:
    https://arxiv.org/pdf/1311.2524.pdfarxiv.org
    【2】Fast R-CNN:
    https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdfwww.cv-foundation.org
    【3】Faster R-CNN:
    https://arxiv.org/pdf/1506.01497.pdfarxiv.org

    伯克利大学的Girshick教授等人共同提出了首个在目标检测方向应用的深度学习模型:Region-based Convolutional Neural Network(R-CNN)。

    该网络模型如下图所示,其主要流程为:先使用selective search算法提取2000个候选框,然后通过卷积网络对候选框进行串行的特征提取,再根据提取的特征使用SVM对候选框进行分类预测,最后使用回归方法对区域框进行修正。

    184c01dbc7961e50fbb1dcfff9ae3e01.png
    R-CNN

    由于R-CNN的效率太低,2015年由Ross等学者提出了它的改进版本:Fast R-CNN。其网络结构图如下图所示(从提取特征开始,略掉了region的选择)Fast R-CNN在传统的R-CNN模型上有所改进的地方是它是直接使用一个神经网络对整个图像进行特征提取,就省去了串行提取特征的时间;接着使用一个RoI Pooling Layer在全图的特征图上摘取每一个RoI对应的特征,再通过FC进行分类和包围框的修正。

    3b2c35bfd2b07b12ee469caa485a526d.png
    Fast R-CNN

    2016年提出的Faster R-CNN可以说有了突破性的进展(还是目标检测),因为它改变了它的前辈们最耗时最致命的部位:selective search算法。它将selective search算法替换成为RPN,使用RPN网络进行region的选取,将2s的时间降低到10ms,其网络结构如下图所示:

    786d1f1edd3afe1ffd92f292c656950b.png
    Faster R-CNN
    语义分割阶段:Mask R-CNN—>Mask Scoring R-CNN
    参考文献:
    【1】Mask R-CNN:
    http://openaccess.thecvf.com/content_ICCV_2017/papers/He_Mask_R-CNN_ICCV_2017_paper.pdfopenaccess.thecvf.com
    【2】Mask Scoring R-CNN:
    Mask Scoring R-CNNarxiv.org

    Mask R-CNN(终于到分割了!)是何恺明团队提出的一个基于Faster R-CNN模型的一种新型的分割模型,此论文斩获ICCV 2017的最佳论文,在Mask R-CNN的工作中,它主要完成了三件事情:目标检测,目标分类,语义分割。作者在Faster R-CNN的结构基础上加上了Mask预测分支,并且改良了ROI Pooling,提出了ROI Align。其网络结构如下图:

    30a9460bde9d0a47af378fa61399967e.png
    Mask R-CNN

    最后要提的是2019年CVPR的oral—MS R-CNN,这篇文章的提出主要是对上文所说的Mask R-CNN的一点点缺点进行了修正。他的网络结构也是在Mask R-CNN的网络基础上做了一点小小的改进,添加了Mask-IoU。作者在文章中提到:Mask R-CNN已经很好啦!但是有个小毛病,就是评价函数只对目标检测的候选框进行打分,而不是分割模板,所以会出现分割模板效果很差但是打分很高的情况。所以黄同学增加了对模板进行打分的MaskIoU Head,并且最终的分割结果在COCO数据集上超越了Mask R-CNN,下面就是MS R-CNN的网络结构:

    223bbd8abd64b3e2e6d037fab32c5a11.png
    Mask Scoring R-CNN

    3.2、基于编码器-解码器(上采样/反卷积)结构的语义分割模型

    • 经典网络:
    【1】FCN:
    https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Long_Fully_Convolutional_Networks_2015_CVPR_paper.pdfwww.cv-foundation.org

    要说语义分割整体实现精度大的跨越还是在FCN(全卷积神经网络)提出之后。它完全改变了之前需要一个窗口来将语义分割任务转变为图片分类任务的观念,FCN完全丢弃了图片分类任务中全连接层,从头到尾都只使用到了卷积层。它的网络结构如图:

    f57f2fad789342f27574327c73182974.png
    FCN

    我们将提取特征的过程称为编码器,也就是FCN的前面特征图变小的阶段;将后面进行上采样/反卷积的过程称为解码器。图片在解码器中恢复了原图大小。

    从FCN后,基于编码器解码器结构的经典网络结构如同雨后春笋般冒了出来,下面都是研究语义分割方向上不可不读的论文。

    【2】UNet:
    U-Net: Convolutional Networks for Biomedical Image Segmentationarxiv.org

    89d7cfb7216948f1d1dc92fc83d073b3.png

    Unet网络是在医学影像分割中最常用的模型。它的典型特点是,它是U型对称结构,左侧是卷积层,右侧是上采样层(典型的编码器解码器结构)。

    另一个特点是,Unet网络的每个卷积层得到的特征图都会concatenate到对应的上采样层,从而实现对每层特征图都有效使用到后续计算中。也就是文中所说的skip-connection。这样,同其他的一些网络结构比如FCN比较,Unet避免了直接在高级feature map中进行监督和loss计算,而是结合了低级feature map中的特征,从而可以使得最终所得到的feature map中既包含了high-level 的feature,也包含很多的low-level的feature,实现了不同scale下feature的融合,提高模型的结果精确度。

    【3】deeplab系列:v1、v2、v3、v3 plus
    https://arxiv.org/pdf/1412.7062v3.pdfarxiv.orghttps://arxiv.org/pdf/1606.00915.pdfarxiv.orghttps://arxiv.org/abs/1706.05587arxiv.orghttps://arxiv.org/pdf/1802.02611.pdfarxiv.org

    2015 年的ICLR上提出DeepLab V1是结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)的方法。它将DenseCRFs作为网络的后处理方法。采用DenseCRFs作为后处理的方法,简单来说,就是对一个像素进行分类的时候,不仅考虑DCNN的输出,而且考虑该像素点周围像素点的值,这样语义分割结果边界清楚。

    db92f05e1206df1797cd8ab00fe8d14f.png
    deeplab v1

    在实验中发现 DCNNs 做语义分割时精准度不够的问题,根本原因是重复的池化和下采样降低了分辨率。但是另一方面,重复的池化和下采样扩大了感受野,而感受野的扩大对语义分割任务来说也是至关重要的。针对这一问题,DeepLab v2采用的空洞卷积算法扩展感受野,与此同时不会降低特征图的分辨率。

    0600bfe5b2ed3444a3991da0e350859c.png
    deeplab v2

    这里像稍微详细的讲一下空洞卷积的概念,因为它在语义分割或者是其他的计算机视觉任务中确实很重要。空洞卷积从字面上就很好理解,是在标准的卷积中里注入空洞,以此来增加感受野。相比原来的正常卷积,空洞卷积多了一个超参数称之为 dilation rate, 指的是kernel的间隔数量(e.g. 正常的 convolution 是 dilatation rate 1)。一个简单的对比如下图。可以看到感受野从3×3变成了5×5.

    056d59493b49e5eabcae87cdf10ea156.png
    Standard Convolution with a 3 x 3 kernel (and padding)

    a8128405a0956735d87d9980947e7021.png
    Dilated Convolution with a 3 x 3 kernel and dilation rate 2


    此外,deeplab v2基于空洞卷积,设计了ASPP模块。它组合了不同dilation rate的空洞卷积所产生的特征图。这样,不同空洞卷积产生的不同感受野的特征图被组合在了一起,从而获取了更加丰富的上下文信息。

    2b58fa88de72bd4602ce9b37f3a8364d.png
    ASPP

    deeplab v3的创新点一是改进了ASPP模块。改进后的aspp长下图那个样子,多了个1*1的conv和global avg pool。关于1*1卷积,论文中提到,当rate=feature map size时,空洞卷积就变成了1*1 conv,所以这个1*1conv相当于rate很大的空洞卷积。此外引入了全局池化这个branch,这个思想是来源于PSPnet。其实也就是与原来的ASPP相比,新的ASPP模块能够聚集到全局的上下文信息,而之前的只能聚集局部的上下文。

    6ef3dd5e3b32ae0b7e1a5921c13c1a83.png
    deeplab v3

    在deeplab v3中说到了需要8×/16×的upsample 最终的feature map,很明显这是一个很粗糙的做法。deeplab v3+的创新点一是设计基于v3的decode module,使得结果变得更加精细;二是用modify xception作为backbone。

    45df940c917aa5f38e989287373b13e1.png
    deeolab v3+
    【4】PSPNet
    https://arxiv.org/pdf/1612.01105.pdfarxiv.org

    我们知道,语义分割的难点主要包括:

    • 语义关系不匹配:比如“车”在河上
    • (相近)类别容易混淆:比如:墙与房子
    • 不明显的类别:非常大或者非常小物体的识别能力,非常大物体可能超过神经网络感受野,而非常小的物体难以找到

    这些错误错误都与不同感受野获取的全局信息和语境关系有着部分甚至是完全的关联,因此,一个拥有适当场景级全局信息的深度网络可以大大提高场景解析的能力。PSPNet是在FCN上的改进,引入更多的上下文信息进行解决,当分割层有更多全局信息时,出现误分割的概率就会低一些,这种思想目前在许多图像领域都有所应用。

    0cc88daa03688fcf10b072815fe820e5.png
    PSPNet

    本文提出了一个具有层次全局优先级,包含不同子区域时间的不同尺度的信息,称之为金字塔池化模块(PPM)。该模块融合了4种不同金字塔尺度的特征,第一行红色是最粗糙的特征–全局池化生成单个bin输出,后面三行是不同尺度的池化特征。为了保证全局特征的权重,如果金字塔共有N个级别,则在每个级别后使用1×1 1×11×1的卷积将对于级别通道降为原本的1/N。再通过双线性插值获得未池化前的大小,最终concat到一起。

    • 基于编码器解码器模型中的研究热点:
    上下文关系的获取:

    由于卷积层结构的限制,FCN提供的上下文信息不足,有待改进。因此,近年来各种方法被提出来用于探索上下文依赖性,以获得更准确的分割结果。目前为止,上下文信息的聚合主要有两种方法:

    • 基于金字塔的方法:有几种方法如PSPNet采用基于金字塔的模块或全局池化来有规律的聚合区域或全局上下文信息。然而,它们捕获了同类的上下文关系,却忽略了不同类别的上下文。
    • 基于注意力的方法:最近基于注意力的方法,如通道注意力、空间注意力,有选择地聚合不同类别之间的上下文信息。然而,由于缺乏明确的区分,注意力机制的关系描述不够清晰。因此,它可能会选择不需要的上下文依赖关系。

    这里推荐几篇近两年(19、20年)刚出的一些基于注意力获取上下文信息的文章:

    【1】Non-local:

    https://arxiv.org/pdf/1711.07971.pdfarxiv.org

    卷积是对局部区域进行的操作,所以它是典型的local operations。受计算机视觉中经典的非局部均值(non-local means)的启发,本文提出一种non-local operations用于捕获长距离依赖(long-range dependencies),即如何建立图像上两个有一定距离的像素之间的联系。

    799f559b788191eb2936ef130f828b66.png
    Non-local

    【1】DANet:

    Dual Attention Network for Scene Segmentationarxiv.org

    这篇论文主要的创新点在于引入了双注意力机制(Dual Attention)来获取上下文关系,所谓双注意力,指对通道(channel)以及空间(spatial)的 Attention 机制,具体实现如下图:

    e7bd92eb4ce0d8f1097b4a99dcef2166.png
    DANet

    【2】CCNet:

    https://arxiv.org/pdf/1811.11721.pdfarxiv.org

    69c0e3054a93a54976454dea042a7f88.png
    CCNet

    在DANet中,作者用了non-local的思想来解决这个问题,我在上一篇介绍中也提到了,这种方法的局限性在于需要的计算量很大,因此CCNet提出了criss-cross attention module在解决long-range dependencies的前提下,大幅降低了内存占用和计算量。

    此外,CVPR2020还新出了两篇新的上下文的文章,感兴趣的可以读一下我的阅读笔记:

    CVPR2020-语义分割:Context Prior for Scene Segmentationmp.weixin.qq.com
    e8412d1b822cb87b5e24d82c0da54270.png
    CVPR2020-语义分割:Strip Pooling(条纹池化)mp.weixin.qq.com
    dcb36f1037b852556be861cc1ef92201.png
    提升边缘和小物体的分割精度

    【1】英伟达的G-SCNN:

    https://arxiv.org/pdf/1907.05740.pdfarxiv.org

    【2】北大的GFFNet:

    https://arxiv.org/abs/1904.01803arxiv.org

    它们的思路都是用了门控机制来融合low-level特征

    3.3、其他类型的语义分割模型

    所谓其他类型的语义分割模型就是从编码器解码器结构中跳脱出来的模型。这里就不得不提HrNet了。个人特别喜欢这个模型。它配的上简单高效这四个字。我之前有写过关于篇论文的阅读笔记,详见:

    HrNetV2www.chenblog.ink
    107bc2f581a7d91a773e1c3eecc1cc90.png

    此外,旷世在CVPR2020上提出的动态路径设计的网络也很不错,对论文的理解详见:

    阿柴本柴:CVPR2020 Oral-语义分割:用于语义分割的动态路径选择网络,已开源!zhuanlan.zhihu.com
    0069f113f91886d97bf1c03de3174e34.png

    四、语义分割的将来:语义分割未来的可能的研究方向

    这一部分我之前有总结过,详见:

    都0202年了,语义分割还有哪些方向可以研究?mp.weixin.qq.com
    85981412ecf082c84a6f3e8a0cb0758d.png

    欢迎关注公众号,阅读更多深度学习、计算机视觉、图像分割领域论文笔记:

    7db18b180fdaafcbfb441b81a20efdf1.png
    展开全文
  • 本文转载自知乎用户“stone”一、什么是语义分割语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。比如说如下的照片,属于人的像素都要分成一类,属于摩托车...

    本文转载自知乎用户“stone”

    一、什么是语义分割

    语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。比如说如下的照片,属于人的像素都要分成一类,属于摩托车的像素也要分成一类,除此之外还有背景像素也被分为一类。注意语义分割不同于实例分割,举例来说,如果一张照片中有多个人,对于语义分割来说,只要将所由人的像素都归为一类,但是实例分割还要将不同人的像素归为不同的类。也就是说实例分割比语义分割更进一步。

    01e2232b714664b9494a991f9286103b.png

    图1(a). 原图

    e9961b766dd786e811e8191b4d8382e6.png

    图1(b). 分割结果

    二、语义分割的思路

    I.传统方法

    在深度学习方法流行之前,TextonForest和基于随机森林分类器等语义分割方法是用得比较多的方法。不过在深度卷积网络流行之后,深度学习方法比传统方法提升了很多,所以这里就不详细讲传统方法了。

    II.深度学习方法

    深度学习方法在语义分割上得到了巨大成功,深度学习方法解决语义分割问题可以概括为几种思路。下面进行详细介绍。

    1.Patch classification

    最初的深度学习方法应用于图像分割就是Patch classification。Patch classification方法,顾名思义,图像是切成块喂给深度模型的,然后对像素进行分类。使用图像块的主要原因是因为全连接层需要固定大小的图像。

    2.全卷积方法

    2014年,全卷积网络(FCN)横空出世,FCN将网络全连接层用卷积取代,因此使任意图像大小的输入都变成可能,而且速度比Patch classification方法快很多。

    尽管移除了全连接层,但是CNN模型用于语义分割还存在一个问题,就是下采样操作(比如,pooling)。pooling操作可以扩大感受野因而能够很好地整合上下文信息(context中文称为语境或者上下文,通俗的理解就是综合了更多的信息来进行决策),对high-level的任务(比如分类),这是很有效的。但同时,由于pooling下采样操作,使得分辨率降低,因此削弱了位置信息,而语义分割中需要score map和原图对齐,因此需要丰富的位置信息。

    3.encoder-decoder架构

    encoder-decoder是基于FCN的架构。encoder由于pooling逐渐减少空间维度,而decoder逐渐恢复空间维度和细节信息。通常从encoder到decoder还有shortcut connetction(捷径连接,也就是跨层连接)。其中U-net就是这种架构很流行的一种,如下图:

    b7cd0c2e6b6cf3c250b0f15f837bc14a.png

    4.空洞卷积

    dilated/atrous (空洞卷积)架构,这种结构代替了pooling,一方面它可以保持空间分辨率,另外一方面它由于可以扩大感受野因而可以很好地整合上下文信息。如下图:

    301c75579e09d3f11a308b7a2c53b571.png

    5.条件随机场

    除了以上思路,还有一种对分割结果进行后处理的方法,那就是条件随机场(Conditional Random Fields (CRFs))后处理用来改善分割效果。DeepLab系列文章基本都采用这种后处理方法,可以较好地改善分割结果,如下图:

    c68a460762e76f0742d5448a2876eca0.png

    三、深度学习语义分割方法

    方法总览

    现在的深度学习语义分割模型基本上都是基于FCN发展而来的,它是开山鼻祖,一张图概括FCN的延伸方法:

    59baeacd0af467177641dcb68c5b71f4.png

    各方法的详细信息

    f15e512b308fcd681aa54c574076b00e.png

    各方法简要介绍

    下面简单总结一些从FCN进行改进的几种架构,关于每种架构的详细解读请看专栏中其他文章。

    1. FCN
    2. SegNet
    3. Dilated Convolutions
    4. DeepLab (v1 & v2)
    5. RefineNet
    6. PSPNet
    7. Large Kernel Matters
    8. DeepLab v3

    1.FCN

    论文信息

    Fully Convolutional Networks for Semantic Segmentation
    Submitted on 14 Nov 2014
    Arxiv Link

    主要贡献

    1. 使端对端的卷积语义分割网络变得流行起来。
    2. 通过deconvolutional layers进行上采样。
    3. 通过skip connection改善了上采样的粗糙度。

    概要

    1. 全卷积化(Fully Convolutional):用于解决逐像素(pixel-wise)的预测问题。通过将基础网络(例如VGG)最后面几个全连接层换成卷积层,可实现任意大小的图像输入,并且输出图像大小与输入相对应;
    2. 反卷积(deconvolution) :上采样操作,用于恢复图片尺寸,方便后续进行逐像素预测;
    3. 跳跃结构(skip architecture):用于融合高低层特征信息。通过跨层连接的结构,结合了网络浅层的细(fine-grain)粒度信息信息以及深层的粗糙(coarse)信息,以实现精准的分割任务。

    020f4ff1de6771e935a3a8fc4b620db7.png

    Benchmarks (VOC2012)

    620404991a948c0ac146e60788827377.png

    评论:

    FCN是基于深度学习的语义分割的开山之作,尽管现在很多方法都超越了FCN,但它的思想仍然有很重要的意义。

    2. Segnet

    论文信息

    SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
    Submitted on 2 Nov 2015
    Arxiv Link

    主要贡献

    • 使用Maxpooling indices来增强位置信息。

    简要概述

    FCN的upconvolution层+shortcut connections产生的分割图比较粗糙,因此SegNet增加了更多的shortcut connections。不过,SegNet并不是直接将encoder的特征进行直接复制,而是对maxpooling中的indices进行复制,这使得SegNet的效率更高。

    5e28afb28e61ff9c2233ced1a40dc42c.png

    maxpooling 的indices复制原理如下:

    aced122e0284baea76d690b6819281cf.png

    Benchmarks (VOC2012)

    b63de1b32286e53fc84d1d4f63c31ca0.png

    评论

    • FCN和SegNet都是encoder-decoder架构。
    • SegNet的benchmark表现太差了,不建议用这个网络。

    3. Dilated convolution

    论文信息

    Multi-Scale Context Aggregation by Dilated Convolutions
    Submitted on 23 Nov 2015
    Arxiv Link

    创新点

    1. 使用空洞卷积用来进行稠密预测(dense prediction)。
    2. 提出上下文模块(context module),使用空洞卷积(Dilated Convolutions)来进行多尺度信息的的整合。

    简要解释

    pooling操作可以增大感受野,对于图像分类任务来说这有很大好处,但由于pooling操作降低了分辨率,这对语义分割来说很不利。因此作者提出一种叫做dilated convolution的操作来解决这个问题。dilated卷积(在deeplab中称为atrous卷积)。可以很好地提升感受野的同时可以保持空间分辨率。

    301c75579e09d3f11a308b7a2c53b571.png

    网络架构有两种,一种是前端网络,另外一种是前端网络+上下文模块,分别介绍如下:

    • 将VGG网络的最后两个pooling层给拿掉了,之后的卷积层被dilated 卷积取代。并且在pool3和pool4之间空洞卷积的空洞率=2,pool4之后的空洞卷积的空洞率=4。作者将这种架构称为前端(front-end)。
    • 除了前端网络之外,作者还设计了一种叫做上下文模块(context module)的架构,加在前端网络之后。上下文木块中级联了多种不同空洞率的空洞卷积,使得多尺度的上下文信息可以得到整合,从而改善前端网络预测的效果。需要注意的是前端网络和上下文木块是分开训练的,因为作者在实验中发现,如果是联合在一起进行端对端的训练并不能改善性能。

    Benchmarks (VOC2012)

    8671bb0b8236910c232deffd5d6b0f72.png

    评论

    需要特别注意的是,网络输出的分割图并不是和原始图像大小一样的,而是其1/8,需要对输出的分割图进行线性插值才能得到最终的分割结果。这种做法也是很多其他的方法都使用的。

    4. DeepLab(v1,v2)

    论文信息

    v1: Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs
    Submitted on 22 Dec 2014
    Arxiv Linkv2 : DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
    Submitted on 2 Jun 2016
    Arxiv Link

    主要贡献

    1. 使用atrous卷积,也就是后来的空洞卷积,扩大感受野,保持分辨率。
    2. 提出了atrous spatial pyramid pooling (ASPP),整合多尺度信息。
    3. 使用全连接条件随机场(fully connected CRF)进行后处理,改善分割结果。

    简要概述

    1. 空洞卷积可以在不增加参数的情况下增加感受野。
    2. 通过两种方式来进行多尺度的处理:A.将原始图像的多种尺度喂给网络进行训练。B.通过平行的不同空洞率的空洞卷积层来获得。
    3. 通过全连接条件随机场来进行后处理,以改善分割结果。

    c68a460762e76f0742d5448a2876eca0.png

    Benchmarks (VOC2012)

    71f5c6c57607a1ff9daf40e23feec824.png

    5. RefineNet

    论文信息

    RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation
    Submitted on 20 Nov 2016
    Arxiv Link

    主要贡献

    1. 精心设计了encoder-decoder架构中的decoder部分,使得性能提升。
    2. 整个网络的设计都遵循residual connections,网络表达能力更强,梯度更容易反向传播。

    简要概述

    作者提出空洞卷积方法应用于语义分割也是有缺点的,包括:

    • 因为使用了大分辨率的feature map,因此计算代价大,并且需要大量的内存。对于这个问题,DeepLab的做法是只预测原始输入的1/8。

    本文提出使用encoder-decoder架构。encoder部分是RESNET-101。decoder具有RefineNet blocks,它将此前的RefineNet blocks的低分辨率特征和encoder部分高分辨率特征进行concatenate/fuse。

    665d7648d4d95726a3d90618dfa7a3de.png

    a12a439a1dc67c77ce5028b168670f0d.png

    Benchmarks (VOC2012)

    61caa3746276fe22a06a9b66a63d5208.png

    6. PSPNet

    论文信息

    Pyramid Scene Parsing Network
    Submitted on 4 Dec 2016
    Arxiv Link

    主要贡献

    1. 使用pyramid pooling整合context。
    2. 使用auxiliary loss。

    概要

    骨架网络使用Resnet,并在此基础上加上pyramid pooling module。该模块用到了很多kernel大小不一的pooling 。将pooling的结果再上采样,经过concatenate进行融合。

    ba1167496842f311eab41a93c5e449cf.png

    在RESNET的第四阶段(即输入到金字塔池模块)之后,应用auxiliary loss。这种方法在别的地方也被称为intermediate supervision。

    Benchmarks (VOC2012)

    f19ddfa3f3080ff52b4c7a896c210d41.png
    展开全文
  • 【1】self-attention在语义分割中的发展: Non-local -> DANet -> CCNetself-attention在语义分割中的发展​mp.weixin.qq.com【2】CVPR2020-语义分割:Context Prior for Scene Segmentationhttps://mp.weixin...

    【1】self-attention在语义分割中的发展: Non-local -> DANet -> CCNet

    self-attention在语义分割中的发展mp.weixin.qq.com
    20c5d6b13355e1e643bd17238aa4c942.png

    【2】CVPR2020-语义分割:Context Prior for Scene Segmentation

    https://mp.weixin.qq.com/s?__biz=MjM5MjgwNzcxOA==&mid=2247483858&idx=1&sn=5b69d57dffc21a825f2ac6785c1127d0&chksm=a6a1ef9b91d6668da1caa81445c769f1583276056abc2d45d02811801ead421920d370e2c614&scene=21#wechat_redirectmp.weixin.qq.com

    【3】CVPR2020 Oral-语义分割:用于语义分割的动态路径选择网络

    CVPR2020 Oral-语义分割:用于语义分割的动态路径选择网络,已开源!mp.weixin.qq.com
    0b71c4cce1afc2e43a7482514a9b4fd5.png

    【4】都0202年了,语义分割还有哪些方向可以研究?

    https://mp.weixin.qq.com/s?__biz=MjM5MjgwNzcxOA==&mid=2247483875&idx=1&sn=3f378bffca754486d7552147898b3763&chksm=a6a1efaa91d666bc77c529286692634ef73d4340e7e6cc4609dcd056ea92777c6eda69a44e51&scene=21#wechat_redirectmp.weixin.qq.com

    【5】损失函数

    https://github.com/JunMa11/SegLossgithub.com
    展开全文
  • 首先,做的小项目主要有分类问题:Mnist手写体识别、FashionMnist识别、猫狗大战语义分割:Unet分割肝脏图像、遥感图像先把语义分割的心得总结一下,目前只是一部分,以后还会随着学习的深入慢慢往里面加新的感悟。...
  • 语义分割语义分割评估指标mIOU

    万次阅读 2019-05-22 15:47:33
    语义分割评估指标计算公式可参考:基于深度学习的图像语义分割技术概述之5.1度量标准 mIOU定义 Mean Intersection over Union(MIoU,均交并比):为语义分割的标准度量。其计算两个集合的交集和并集之比,在语义分割...
  • 语义分割 语义分类Hello There! This post is about a road surface semantic segmentation approach. So the focus here is on the road surface patterns, like: what kind of pavement the vehicle is driving on...
  • 本文转载自知乎用户“stone”一、什么是语义分割语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。比如说如下的照片,属于人的像素都要分成一类,属于摩托车...
  • 语义分割与数据集Semantic Segmentation and the Dataset在目标检测问题中,我们只使用矩形边界框来标记和预测图像中的对象。在这一节中,我们将对不同的语义区域进行语义分割。这些语义区域在像素级标记和预测对象...
  • 语义分割】【ECCV2018】ICNet for Real-Time Semantic Segmentation on High-Resolution Images核心思想针对语义分割的实时性问题,提出一种图像级联网络(image cascade network),通过结合多尺度分支与标签引导...
  • 论文名:Synthesize then Compare: Detecting Failures and Anomalies for Semantic Segmentation论文地址:...在这些领域,语义分割结果的准确性是非常重要的,比如医学影像的分割结果如果出...
  • 点击上方“新机器视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达作者:Yanpeng Sunhttps://zhuanlan.zhihu.com/p/74318967声明:仅做学术分享,侵删语义分割目的:给定一张图像,我们要对这张图像上的每个...
  • 点击上方“新机器视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达作者:Yanpeng Sunhttps://zhuanlan.zhihu.com/p/74318967声明:仅做学术分享,侵删语义分割目的:给定一张图像,我们要对这张图像上的每个...
  • 语义分割论文

    2019-02-27 11:01:49
    都是我自己在知网上下载的语义分割论文,特别适合语义分割的入门学习,可以了解语义分割的训练与检测流程。
  • 语义分割是指将图像中的每个像素归于类标签的过程,这些类标签可以包括一个人、汽车、鲜花、一件家具等。我们可以将语义分割认为是像素级别的图像分类。例如,在有许多汽车的图像中,分割会将所有对象标记为汽车对象...
  • 语义分割系列(一) 何为语义分割 我们在基于深度学习的计算机视觉领域所进行的任务大致可以分为三类:图像分类、目标检测以及图像分割。 图像分割还能进一步分为语义分割和实例分割,我们这里只讨论语义分割。 ...
  • 憨批的语义分割12——Keras 搭建自己的Unet语义分割平台注意事项学习前言什么是Unet模型代码下载Unet实现思路一、预测部分1、主干网络介绍2、加强特征提取结构3、利用特征获得预测结果二、训练部分1、训练文件详解2...
  • 首先明确一下一些概念:语义分割:对已知的对象进行像素级识别。实例分割:对场景中各个目标实例进行像素级识别,区分同类中不同目标。全景分割:结合场景理解和实例分割的复合任务,对场景中所有物体进行像素级识别...
  • 语义分割】综述——一文搞定语义分割

    万次阅读 多人点赞 2019-02-19 10:05:00
    本文记录了博主阅读的关于语义分割(Semantic Segmentation)的综述类文章的笔记,更新于2019.02.15。 文章目录参考文献网址A 2017 Guide to Semantic Segmentation with Deep Learning什么是语义分割(Semantic ...

空空如也

1 2 3 4 5 ... 20
收藏数 8,132
精华内容 3,252
关键字:

语义分割