论文地址:https://arxiv.org/abs/1804.03821

目录

1、引言

2、本文的方法

2.1、将更多语义信息引入低级特征

2.1.1、LR——卷积层重排列

2.1.2、SS——语义监督

2.1.3、SEB——语义嵌入分支

2.2、将更多空间分辨率信息嵌入到高级特征中

2.2.1、ECRE——显式通道分辨率嵌入

2.2.2、DAP——密集邻域预测

3、实验结果

4、结论


0、摘要

当代的语义分割框架通常都会结合backbone中的低级和高级特征以增强模型性能。本文中,我们首先指出了简单的融合低级和高级特征带来的收益并不高,因为语义层级和空间层级之间有着隔阂。我们发现,通过在低级特征中引入语义信息、在高级特征中引入高分辨率细节,将会有助于后续的特征融合。基于此,提出了一个新的分割框架——ExFuse,来弥补低级和高级特征之间的隔阂,并显著提高了约4.0%的整体分割质量。此外,在具有挑战性的PASCAL VOC 2012分割基准上对我们的方法进行了评估,获得了87.9%的mIOU,这超过了之前的SOTA结果。

1、引言

以FCN为baseline,产生了一系列的研究。其基本架构都是基于Encoder-Decoder结构的:先用Encoder(通常是一个预训练好的卷积网络)一层层提取高级语义信息,然后利用Decoder(通常包括各种上采样方法)来逐步恢复空间分辨率。这样一来,得到的分割结果既有了高级语义信息,又有了高分辨率的空间信息。但是有个问题,Encoder得到的feature maps的语义信息是丰富了,但是由于其分辨率较低,从这些低分辨率的feature maps得到的分割结果也就不够精细。于是,U-Net这类的网络就通过逐步将低级高分辨率的特征融入到高级低分辨率的特征中,以期帮助Decoder恢复更为精细的分割结果。

但是,作者认为特征的融合机制还不清楚,还需要仔细研究一下。作者提出了一个直觉上的实验:极端情况下,融合最低级、最高级的两组特征。怎么融合呢?作者的想法是:

  • 既然低级特征的空间分辨率信息丰富而语义信息薄弱,如果将高级的语义信息也加到里面,这不就使得其与高级特征的融合变得容易了吗?
  • 同样的,对于语义信息丰富而空间信息缺乏的高级特征,给它加入一些空间信息,其与低级特征的融合也将变得容易。

该想法,如图1所示:

于是乎,作者在这种想法的基础上,提出了ExFuse框架,主要包括这两个方面:

(1)为了将更多语义信息融入低级feature maps,提出了三种方法:卷积层重排列(Layer Rearrangement,LR)、语义监督(Semantic Supervision,SS)和语义嵌入分支( Semantic Embedding Branch,SEB);

(2)为了将更多空间信息嵌入高级feature maps,提出了两种新颖的方法:显式通道分辨率嵌入( Explicit Channel Resolution Embedding,ECRE)和密集领域预测(Densely Adjacent Prediction, DAP)。

2、本文的方法

ExFuse主要是针对U-Net类型的网络进行改进,以GCN(一种U型结构的分割网络,详细信息可以参考这篇博客)为baseline所开发的,如图2所示:

首先,作者在GCN的基础上,进行不同层级的特征融合实验,将GCN的backbone(ResNet)的四个层级(layer1~4,也即图2中的res-2到res-5)从layer4开始,进行组合实验,发现layer2、layer1带来的收益很小,如表1所示:

如何更有效的进行特征融合,则正是ExFuse提出的目的。

从图2整体来看:

ExFuse框架与GCN结构相似(实线部分):以ResNet为backbone,并对其从layer1到layer4四个分支分别添加了各种模块(GCN是添加了GCN和BR,ExFuse是SEB和GCN),然后从layer4开始向上融合;

不同之处在于(虚线部分):ExFuse为了有效的进行特征融合,提出了多个模块(将语义信息引入低级特征:LR,SS,SEB;将空间信息嵌入高级特征:ECRE,DAP)加入框架中。

下面分别就将语义信息引入低级特征将空间信息嵌入高级特征两方面分别描述各自提出的模块。

2.1、将更多语义信息引入低级特征

这部分内容的提出,主要基于以下事实:卷积神经网络中,靠近语义监督(如分类损失函数)的feature maps倾向于编码更多语义信息。这句话怎么理解呢?其实很简单,就比如在分类网络中,越是靠后(靠近输出端)的卷积层,其输出的feature map所包含的语义信息就越丰富。

为了将语义信息引入低级特征所提出的方法有三个:LR,SS,SEB。

2.1.1、LR——卷积层重排列

主要是修改了ResNet中各个阶段中 building blocks(构建块)的个数。如在ResNet101中,第2~5stage(阶段),分别有 {3,4,23,3}个构建块(也就是ResNet网络构建时,使用_make_layer函数构对每个layer造了不同数量的block),现在将这些块重新分配给各阶段: {8,8,9,8}。这样一来,总的构建块个数不变(都是33),并且分类性能不变,但是分割性能提高了0.8%。这说明低级特征的质量是可以提升的。

个人感觉,LR的作用就是将每个块中的卷积数量平均一下,使得原来的早期阶段(如stage2~3)获得更多的计算量,这样在对每个阶段尾部进行特征融合时,不至于低级特征由于计算量不足而导致跟不上高级特征的节奏。

2.1.2、SS——语义监督

另一种改善低级特征的方法是给早期阶段添加一个辅助的监督,称为语义监督,也即图2中最左边的SS模块。这样一来,早期阶段的特征就被迫多学点语义特征,这样对后续的高低级特征融合是有帮助的。其实,这种添加辅助监督,或者说是添加辅助损失函数的方法,在以前的分类网络中也有人用过,此外PSPNet中也用过(可以参考这篇博客中的解析)。

与PSPNet中添加辅助监督的目的不同:ExFuse是为了使低级特征学到更多语义信息,而PSPNet是为了简化训练(因为PSPNet没有从早期阶段提取特征)。作者对每个阶段添加了语义监督后,backbone网络的分类性能是下降了的,不过语义分割性能有所提升,如表2所示:

这个怎么理解呢?个人认为是这样:既然添加语义监督的目的是为了让低层级获取更多语义信息,那么相应的其分类性能就难免会受到影响,毕竟模型的目的不一样了。但既然对分割有效,那就可以使用。

至于SS模块的结构,就是将每个stage得到的feature maps送入两组3*3卷积,再接上全局池化、全连接层,然后进行预训练。SS组件如图3:

此外,如果从辅助模块的第二层卷积提取feature maps(也即图3中的第二个3*3Conv模块的输出)来用作后续的微调,性能还能进一步提升1.5%。这一点也验证了作者的猜想:越是接近监督(也就是模型的输出部分,或者说是用于计算损失函数的部分;对于图3的辅助模块,就是最下层的输出)的feature maps其编码的语义信息就越多。

2.1.3、SEB——语义嵌入分支

对于普通的特征融合,其方式是对高级-低分辨率的特征上采样然后与低级-高分辨率的特征相加,如:

\mathbf{y}_{l}= \text {Upsample }\left(\mathbf{y}_{l+1}\right)+\mathcal{F}\left(\mathbf{x}_{l}\right)                          (1)

式(1)中的残差项\mathcal{F}\left(\mathbf{x}_{l}\right)是低级-高分辨率的特征。然而,如果残差项\mathcal{F}\left(\mathbf{x}_{l}\right)包含的语义信息较少,其恢复的语义就会不够,于是作者提出了下面这种方式进行特征融合:

\mathbf{y}_{l}=\text { Upsample }\left(\mathbf{y}_{l+1}\right)+\mathcal{F}\left(\mathbf{x}_{l}, \mathbf{x}_{l+1}, \ldots, \mathbf{x}_{L}\right)    (2)

也即:先将当前stage的feature maps和其后各个stage的feature maps融合(公式2的后半部分),然后将下一stage的feature maps上采样(公式2的前半部分),最后add相加(整个公式2);其意义就是:将多个高级-低分辨率的语义信息包含进来,以指导特征的融合。

各个stage的特征融合(公式2的后半部分)方式如图4所示:

2.2、将更多空间分辨率信息嵌入到高级特征中

对于大多backbone特征提取网络来说,其高级特征往往会具有较低的分辨率(HRNet是个例外,后面专门写篇文章来讲一下),比如ResNet或者ResNext从大小为224*224的输入得到7*7的feature maps(下采样32倍)。一种解决方案是dilated strategy(膨胀策略,也即利用空洞卷积获取高分辨率的输出),这种方式的优点是不需要重新训练backbone,缺点是计算量太大。ExFuse没有采用这种“物理方法”,而是使用了将更多的分辨率信息编码进通道中的方法,也即是其提出的ECRE和DAP模块。

2.2.1、ECRE——显式通道分辨率嵌入

在ExFuse的整个框架中,分割损失仅与Decoder输出相关,这在一定程度上对高级特征中的空间信息影响较小。一种解决方案就是上文提到的SS模块——通过对高级feature maps添加辅助监督分支,强迫其学习到精细的分割结果。于是乎,按照这种思路就提出了ECRE模块,就是图2中的浅蓝色的模块。

ECRE模块对第一个上采样模块(图2中最下面)添加一个辅助损失,使该部分能够包含更多空间分辨率信息。作者尝试了两种方案:第一种是使用反卷积+辅助损失,第二种是使用亚像素上采样(Sub-pixel Upsample)+辅助损失。实验发现,直接使用第一种方案并不work,而第二种方案work。此外,为了验证使该方法work的因素不是由Sub-pixel Upsample造成的,作者单单只用了Sub-pixel Upsample而没有加辅助损失,发现效果变得特别差,这也就说了要和辅助损失一起用才work。

ECRE模块示意图如图5所示:

2.2.2、DAP——密集邻域预测

通常在解码器中,一个点负责预测一个同位置的语义信息。作者提出DAP模块来使得一个点可以预测其邻域通道的语义信息,然后再求平均,从而得到更鲁棒的预测结果。DAP示意图如图6所示:

使用了DAP,可提高约0.6%的mIOU。

3、实验结果

在PASCAL VOC 2012上与各主流模型进行的对比如表8所示,可以看出,ExFuse是优于其他各模型的。

分割结果可视化如图7所示:

4、结论

总得来说,ExFuse是基于GCN进行了特征融合的增强,提出了多种模块来进行不同方向的融合,包括将语义信息融合低级特征(LR、SS、SEB)和将空间信息嵌入高级特征(ECRE、DAP),分别弥补了低级特征中语义信息不足、高级特征中空间信息不足的缺点。在这些方法的加持下,ExFuse达到了当时的SOTA。

ExFuse:旷视提出的用于语义分割的增强特征融合相关推荐

  1. 特征级融合_语义分割-多层特征融合

    语义分割,也称为像素级分类问题,其输出和输入分辨率相同(如题图中,左边为2048x1024分辨率的Cityscapes街景图像,输入模型,得到右边同样分辨率的语义图).由此,语义分割具有两大需求,即高 ...

  2. 探索图像语义分割中的特征融合

    简介 图像语义分割是计算机视觉领域一大重要分支,在benchmark性能一次次提升的过程中,特征融合起到很重要的作用.下面,将介绍图像语义分割任务中历年的比较不错的特征融合方法. 常用的Backbon ...

  3. Dynamic Routing-中科院西交旷视(孙剑团队)提出用于语义分割的动态路由网络,精确感知多尺度目标,代码已开源!...

    关注公众号,发现CV技术之美 ▊ 写在前面 近年来,大量手工设计和基于搜索的网络被用于语义分割.然而,以前的工作(如FCN.U-Net和DeepLab系列)希望在预定义的静态网络结构中处理不同规模的输 ...

  4. CVPR 2020 | 旷视提出新型人-物交互检测框架,实现当前最佳

    本文转载自旷视研究院 本文提出一种新型人-物交互检测算法,可直接把人-物交互关系检测为一系列的交互点,进一步预测朝向人和物体中心的交互向量:接着,这些交互点可以配对组合人与物体的检测结果,以生成最终的 ...

  5. *基于类平衡自我训练的无监督域自适应用于语义分割

    基于类平衡自我训练的无监督域自适应用于语义分割 摘要:最近的深度网络实现了最先进的性能在各种语义分割任务中.尽管有这样的进步,但是这些模型在现实世界中面临挑战,它们存在很大的差别在已标签训练/源文件和 ...

  6. 目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查

    目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查 原文 Are We Hungry for 3D LiDAR Data for Semantic Segmentatio ...

  7. CVF2020邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic SegmentationFDA:用于语义分割的傅立叶域自适应算法

    邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic Segmentation FDA:用于语义分割的傅立叶域自适应算法 0.摘要 1.概述 1 ...

  8. CVPR2020 | 即插即用!将双边超分辨率用于语义分割网络,提升图像分辨率的有效策略...

    点击上方"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 本文是收录于CVPR2020的工作,文章利用低分辨率的输入图像通过超分辨率网络生成高分辨 ...

  9. ICCV2019 | 旷视提出轻量级目标检测网络ThunderNet

    ICCV2019 | 旷视提出轻量级目标检测网络ThunderNet 本文作者:Liyang 作者学校:复旦大学 论文地址:https://arxiv.org/pdf/1903.11752.pdf 源 ...

最新文章

  1. Kernel Driver DmaEgine 子系统 (一)
  2. CheckFail设计很垃圾
  3. VS调试查看寄存器学习总结
  4. 剑网三谜题终于揭开,药宗四系开合得当,有输出有治疗
  5. linux 双机直连设置
  6. 分布式是写出来的(三)
  7. 西南大学校园GIS平台
  8. mysql降低高水位_[数据库]数据高水位分析
  9. cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
  10. SpringScerity的使用
  11. 计算机维修和维护实训报告,计算机维护与维修实训报告书.docx
  12. Aurora-------在 MSOffice 内输入 LaTeX 公式的很好用插件
  13. telnet直接登录POP3
  14. win10小课堂:如何解决svchost一直占用网速和内存?
  15. 【洛谷 2504】聪明的猴子
  16. 电脑版微信头像无法显示并且不能显示表情
  17. Java技巧之双括弧初始化
  18. linux必须root权限才能mount,root执行/media可执行文件权限不够,chmod修改权限无效...
  19. mysql 两表拼接_数据库将两张表进行横向连接(拼接成一张表的形式显示)
  20. 一本通 第三部分 数据结构 第四章 图论算法 第二节 最短路径算法 1381:城市路(Dijkstra)

热门文章

  1. vue的通信方式有哪些
  2. 反向棘轮效应与人情货币困局下拼多多如何进入五环?
  3. 水文遥测终端(水文遥测终端机)遥测终端机RTU 中小河流水文水雨情自动监测设备
  4. 人际交往中,如何拒绝别人的要求
  5. gMIS吉密斯十年执念:Lower Costs较低成本Better Productivity较高效率
  6. 应用程序开发——电子地图管理系统
  7. 银行前置机或综合前置机ET是什么
  8. Python3 cpython优化 实现解释器并行
  9. 全开源的V17/欧泡支付/易支付/一键安装
  10. 解决Ubuntu或其他发行版本安装IDEA提示'tools.jar' is not in IDEA classpath