论文来自 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. adb devices检测不到夜神模拟器的解决办法
  2. Android Touch事件传递机制解析 (推荐)
  3. ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
  4. 【转】ListT和ILIstT的区别
  5. asp.net core 系列 20 EF基于数据模型创建数据库
  6. Java数据类型分类 1
  7. 基于微信小程序外卖点餐系统 开题报告
  8. 树莓派写入SD卡时在内存卡格式化之后仍然不能写入.img文件提示 Error 5:拒绝访问的解决办法
  9. 80行代码轻松搞定反向传播神经网络(BPNN)
  10. win10如何删除计算机用户,在WIN10账户下怎么删除administrator账户
  11. mysql执行计划explain介绍_MySQL中的执行计划explain详解
  12. Crime Management CodeForces - 107D
  13. 东北猫咪带我躺平末世
  14. 4位数码管显示模块TM1637芯片C语言驱动程序
  15. 急!求各位学长大佬拯救!!
  16. 2017年全球最有影响力的50家机器人公司排行榜
  17. “2021智能经济高峰论坛”举行,区块链作为数字化底座之一助力百度智能云转型升级...
  18. 下源码,送U盘啦,快来看看
  19. 世界演讲史上公认最出色的一篇演讲
  20. 字节跳动春招攻略:学长学姐笔经面经,还有出题人「锦囊」

热门文章

  1. Java Mail---SMTP协议-Java发邮件(带附件)演示过程
  2. 如何卸载Cygwin
  3. PostgreSQL恢复误删数据
  4. 32位的md5校验程序
  5. 什么是cookie?cookie的优缺点。
  6. 七.getchar 和 scanf
  7. 【枚举 + 求最大公约数方法】最大公约数等于K的子数组数目问题
  8. 【PCL模块解析 05 之KDTree】01 KDTree原理及代码解析
  9. 用Java写一个集合竞价抓涨停的策略
  10. 留学计算机美国硕士,美国硕士留学计算机专业录取情况