论文来自 CVPR2018
代码:https://github.com/henghuiding/CCL

出发点

深度卷积神经网络在语义分割中,明显目标的特征会占主导地位,导致不明显地物的信息被弱化或忽略。背景信息是场景分割的关键,并且有很多工作关注了这一点。但是,上下文信息通常有更平滑的表征并会被明显目标所主导,这对不明显目标的识别是有害的。

因此,本文提出了 Context contrasted local features 以更好地利用上下文信息同时从背景信息中关注局部信息;进一步地,使用了一个 context contrasted based local(CCL) 模型获得多尺度和多等级的 context contrasted local features。除此之外,因为传统的多尺度信息融合的方法有(1)多尺度输入(2)跳跃连接。但是已有的使用跳跃连接的网络只是简单的对特征进行相加融合,因此不同尺度的重要性差异被忽略。所以本文提出了一个选择(门控)相加机制(choice mechanism)【听起来可能有点难理解,但作者后面有解释为什么使用 ”gates“ 以和简单的固定值和可学习参数区分开来】 以更好地控制多尺度信息的融合。

多尺度融合

本文首次提出在单个网络中使用门控相加来选择性地融合特征。

网络结构如下图所示

模型包含一个 CCL 模块用来产生顾及背景环境的多尺度和多级别的特征,以及一个门控融合模块用于选择性地融合多个尺度的特征。

场景分割中的目标非常复杂,不加区分地采集背景信息将带来噪声,如下图所示,与图中的两个人相比,身后的汽车属于不明显目标,从像素 A 附近收集的 local(局部) 特征对于其它像素来说是可分的,但是没有考虑到全局信息如建筑物和道路,这可能无法为像素 A 获得鲁棒的高级语义特征。然而,如图中第一行第三个小图所示,融合背景将会带来处于主导位置的对象(图中的人)的特征,因此汽车上像素的特征(如 Pixel A) 会被人的特征所淹没(dominated),汽车的一些信息将会在最终的预测层被忽略,导致错误的预测结果。不同位置的上下文信息容易被明显地物特征所主导。

因此,要对 Pixel A采集合适和具有可分性的高级特征是非常困难的,为了解决这一问题,本文提出将局部信息和上下文信息的生成分开,然后通过局部特征和上下文特征的对比(相减)来融合两个信息
CL=Fl(F,Θl)−Fc(F,Θc)CL = F_l(F, \Theta_l) - F_c(F, \Theta_c)CL=Fl​(F,Θl​)−Fc​(F,Θc​)

F 为输入的特征,FlF_lFl​ 是 local convolution 的函数,FcF_cFc​ 代表的是上下文特征的 convolution, Θl\Theta_lΘl​ 和 Θc\Theta_cΘc​ 分别为两者的参数, CL 为得到的 context contrasted local features.

局部信息和分离的背景信息之间的对比,不仅可以利用有用的背景信息,而且能够通过与背景信息的对比强调局部信息(上图第二行图三)。

Context Contrasted Local (CCL) Model

CCL模型如下图所示


CCL 由多个连续的 context-local 模块(上图第二行)组成。使用门控相加来选择性地融合不同级别的 context contrasted local features。 CCL 中每一个 Context-local 模块首先使用两个不同的空洞率的卷积获取不同尺度的特征,同时获得上下文和局部信息,通过相减获得 context-contrasted local features, 然后通过一个门控相加对多尺度特征进行融合得到 score map(概率图)。

Gated Multi-scale Aggregation (门控多尺度融合)

使用 skip layers (跳跃连接层)对不同尺度的特征进行简单的相加,只是不加选择地汇集不同跳跃连接层的信息,有些甚至是不适合或者对分类效果有害的。简单说就是,没有对特征进行选择。

本文提出了使用门控相加(gated sum) 来选择不同尺度的特征,如下图所示


本文使用门控相加的主要动机是,让网络基于特征图的尺度自适应地决定适每个像素的感受野。gated sum 可以使得网络自己根据特征图的信息,选择融合那些尺度的特征图。

如上图所示,假设 来自不同尺度的特征 Fpn\Bbb F_p^nFpn​, 通过 N 个跳跃连接层 产生了 N 个 得分图(score maps, 经过sigmoid/Softmax 可得到概率图) Spc,n\Bbb S_p^{c,n}Spc,n​,也就是说:
Spc,n=Fsn(Fpn,Θsn)\Bbb S_p^{c,n} = \cal F_s^n(\Bbb F_p^n, \Theta_s^n) Spc,n​=Fsn​(Fpn​,Θsn​)
p 表示来自网络不同位置的特征;n∈1,2,...,Nn \in {1,2,...,N}n∈1,2,...,N; c∈1,2,...,Cc \in {1,2,...,C}c∈1,2,...,C ,并且 CCC 是类别数;

Fsn是\cal F_s^n 是Fsn​是 第 n 层跳跃层的分类器函数,Θsn\Theta_s^nΘsn​ 对应分类器的参数。

Fnp\Bbb F_n^pFnp​ 是维度为 H×W×#ChannelsH \times W \times \#ChannelsH×W×#Channels 的输入特征 。

对于每一个 skip layer, 首先产生一个形状为 H×W×1H \times W \times 1H×W×1 的概率图 Ipn\Bbb I_p^nIpn​
Inp=Fin(Fpn,Θin)\Bbb I_n^p = \cal F_i^n(\Bbb F_p^n,\Theta_i^n) Inp​=Fin​(Fpn​,Θin​)
Fin\cal F_i^nFin​ 是第 n 个 Conv+Sigmoid 层(本文称之为 info-skip 层),Θin\Theta_i^nΘin​为对应的参数

因为这些不同位置的跳跃层获得的 得分图和信息图 是在同一个 DCNN 内的,也就是说,这些特征图之间的从低级到高级的序列关系应该要考虑进来
所以本文采用 RNN 来学习序列关系,基于 RNN,获得不同尺度特征图之间的序列关系。

接着,得到的信息图 Ipn\Bbb I_p^nIpn​ 被以序列的形式输入 RNN 来学习它们之间的关系
hpn=tanh(Wn(Ipnhpn−1)h_p^n = tanh(W^n(_{\Bbb I_p^n}^{h_p^{n-1}}) hpn​=tanh(Wn(Ipn​hpn−1​​)
hpnh_p^nhpn​ 是 RNN 的第 n 个输出。为了使网络更加高效,所有位置的输出计算都是并行的,WnW^nWn 是所有位置的共享参数。

(上图中的 Global Refine 模块)为了使每一个信息图都可以关注到全局信息,对 RNN 的输出进行拼接,Hp=(hp1...hpN)TH_p = (h_p^1...h_p^N)^THp​=(hp1​...hpN​)T, 然后通过全局信息进行优化:
H‾p=Fg(Hp,Θg)+Hp\overline H_p = \cal F_g (\it H_p, \Theta_g) + H_p Hp​=Fg​(Hp​,Θg​)+Hp​
Fg\cal F_gFg​ 是一个 1 x 1 x N x N 的 Conv,Θg\Theta_gΘg​ 是对应的参数。

然后将 H‾p\overline H_pHp​ 分开,H‾p=(h‾p1...h‾pN)T\overline H_p = (\overline h_{p}^{1}...\overline h_p^{N})^THp​=(hp1​...hpN​)T,并用于生成 gates GpnG_p^nGpn​
Gpn=N⋅eh‾pn∑i=1Neh‾piG_p^n = N \cdot \frac{e^{\overline h_p^n}}{\sum _{i=1}^Ne^{\overline h_p^i}} Gpn​=N⋅∑i=1N​ehpi​ehpn​​
每个位置 p 的 GpnG_p^nGpn​,被归一化至 N

最终,N 个特征图通过 gated sum 进行选择性地融合:
S‾pc=∑n=1NGpnSpc,n\overline {\Bbb S}_p^c = \sum_{n=1}^N G_p^n \Bbb S_p^{c,n} Spc​=n=1∑N​Gpn​Spc,n​
Spc,n\Bbb S_p^{c,n}Spc,n​ 是不同尺度的特征经过分类器后得到的,S‾pc\overline {\Bbb S}_p^cSpc​ 为 gated sum 的输出

Spc,n\Bbb S_p^{c,n}Spc,n​ 有多少信息可以通过取决于 gates 值 GpnG_p^nGpn​, GpnG_p^nGpn​ 越大,意味着对分类更有利。 GpnG_p^nGpn​ 越小,意味着对于位置 p, 第 n 个 skip layer 的特征对分类帮助越低

GpnG_p^nGpn​ 好比一个权重,决定不同层的特征信息通过的程度

更重要的是,gates 的值 GpnG_p^nGpn​(上图中 Sum 模块的输入)不是一个固定的值,也不是直接从训练数据中学习来的。而是通过训练数据训练好的模型在测试数据上产生的, 所以, GpnG_p^nGpn​ 不仅取决于训练数据,而且取决于输入的测试数据,并随着输入的特征图而变化。

因此,作者使用 “gates" 来表示和 固定值与学习参数的区别

sum: sum 是gated sum 的一个特例, gated sum 在 所有 gates 为 1 时,等同于 sum,
gated sum: 选择性地融合特征图,gates 值可以根据测试数据自适应地进行调整,控制 skip layer 的信息流通

为什么说 gates 值 GpnG_p^nGpn​ 由训练数据和测试数据同时决定呢?

个人理解是,主要还是 Global Refine 模块中的 Normalization (归一化),归一化只需要用到输入特征图的统计信息,没有需要学习的参数。因此 GpnG_p^nGpn​ 既取决于模型中训练得到的参数,也同时决定于测试数据的特征图。

Experiments

实验部分主要看图表就好,或者关注作者时如何做消融实验来验证自己提出的模块的,还有就是学习作者是如何分析的。

下表是与多尺度上下文信息提取模块 ASPP, CRF 以及 DAG-RNN 和 basline 的对比实验

下表是 CCL 在 Pascal Context 数据集上的消融实验

门控相加的消融实验

Pascal Context 数据集上的部分可视化结果

Pascal Context 测试精度


SUN-RGBD 上的结果

COCO Stuff 数据集上的结果

论文《Context Contrasted Feature and Gated Multi-scale Aggregation for Scene Segmentation》笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. 查看oralce的版本及安装了哪些选项
  2. java合并整形_java中2个int合并成一个long
  3. mysql索引碎片产生原因_解析mysql 表中的碎片产生原因以及清理
  4. [BZOJ4537][Hnoi2016]最小公倍数 奇怪的分块+可撤销并查集
  5. hashmap value占用空间大小_java-测量和监视大型HashMap的大小
  6. 苹果cmsV10高仿草民电影网在线影视网站模板 带手机版
  7. Java中高级面试题 -- 数十道题含答案
  8. 有关凸集的证明例题_第1章引言题解1. 用定义验证下列各集合是凸集: (1) S={(X1 ......
  9. PSPad 免费文本编辑器推荐
  10. 游标声明 oracle,Oracle游标声明
  11. android服务绑定异步,Android中异步类AsyncTask用法总结
  12. 服务机器人占领智能安防哪些领域?
  13. Q106:Mac系统下安装编译PBRT-V3
  14. [转载]ASP.NET-----Repeater数据控件的用法总结
  15. N的阶乘的长度 V2(斯特林近似)
  16. 工具方法:java读取Excel合并单元格(简单实例)
  17. arm体系结构:arm920t
  18. Prometheus监控报警系统入门
  19. MyBatis第N+1种分页方式,全新的MyBatis分页
  20. 解决微软的反盗版补丁

热门文章

  1. 404页面怎么做,如何实现
  2. [转]什么是Base-64编码?
  3. BlazeDS是什么?
  4. 第1章 对象入门——Thinking-in-Java
  5. MySQL数据库任意IP连接设置
  6. Fedora 9.0 官方下载
  7. 千万量级的零售企业如何做私域流量?打通微信、APP、电商及线下门店一体化私域流量池!...
  8. 使用Fiddler抓取夜神模拟器上的包
  9. 【Shecan Notes】从二叉树出发浅谈风险中性定价
  10. CSS3的:nth选择器