non-local论文地址
non-local代码地址
gcnet论文地址
gcnet代码地址
senet论文地址
senet代码地址

这篇文章是发表于CVPR2019上的一篇文章,文章花了相当多的文笔放在另外两篇文章Non-local(CVPR2018)和Senet(CVPR2018)之上。而且感情基调较为明显,较为质疑 Non-local的做法,中性略带赞赏性的评价Senet。
        这篇文章的思路来源于:作者发现,对于一副图片,不同的query positions 通过 non-local结构获得的全局上下文信息几乎一样。因此作者“质疑”这样“费力”(复杂的网络结构、计算量、参数量)的获得query-specific的全局上下文信息意义不大。因此提出了一个query-independent的Simpled NL(snl)结构。并且通过实验证明,简化之后,参数量、计算量下来了,性能却outperforms Non-local。同时作者还提出,本文提出的gc block结构和Senet都属于一种"三步骤"通用框架:1、全局上下文建模;2、channel-wise 依赖关系转换;3、特征融合。并认为Senet是这种通用框架的实例对象,而GcNet则是一种性能更佳的实例对象。
        无论是non-local还是本文所提出的gcnet都属于"long-range dependency “。它们的目的都是尽可能从"global"的角度来理解图像,而不至于陷入盲人摸象的地步。单靠传统的卷积层是无法自己做到这一点的(或者说做的不够好),原因在于一个卷积操作是对一个"local neighborhood"的pixel 关系进行建模。虽然可以通过不断的加深网络,来达到网络后半部分的神经元的感受野变大,达到一种不那么“local”的效果。但这种粗暴的加深网络的做,有如下三个缺点:
1、不够精巧,参数量、计算量粗暴拼凑出来的。
2、网络越深,优化难度越大。
3、不那么"local"并不代表全局,有最大距离的限制。
        对上面第三点的理解可以为:在网络的后半部分,feature map右下角的cell,感受野可能扩大了,但可能还是始终无法获得原图片上左上角的信息(因为卷积操作最大距离的限制)。
        与之对应的,一个理想的神经网络应该是:不要那么深,让用户优化的太困难;网络涉及的精巧一点,最好较少的参数量达到原始网络结构的性能;真正的做到全局,没有最大距离的限制。
        从最近阅读的几篇论文来看,精巧或者说light的网络block单元是现在研究人员追求的一个目标,毕竟现在深度学习领域感觉有点进入瓶颈期的意思,很多论文现在都是在计算量下降的情况下,性能提升0.x个点,这种操作了。而全局则是一个相对较为火爆的切入点之一。从non-local的名字就可以看出,它也是从’global’的角度切入。对于每一个query position,计算该query position与图中其他点之间的关系来提取该点的特征。
        然而,作者对non-local的attention map进行可视化后发现不同的query point对应的attention map几乎一样如,图1所示:
                                                        图1
       既然attention map与具体点的位置无关,一个最直观的反应是,那就不要每一个点单独算一个attention map了。用另外一种同样能够获得全局信息,但一个feature map上的点共用的特征吧。基于此,本文作者提出了简化版的NL(snl)。从网络结构上可以看是如图2的变化:

               图2
        一个直观的感觉是block结构确实简化了。实际运算的变化,可以见图3中的公式变化。关键部分在于+号后面的变化。Nonlocal+号后面的内容与xi有关,因此每一个点i,需要计算一次。而snl的表达公式+号后面的内容已与xi无关,也即计算一次,然后大家公用,也映证了上文所讲的query-independent。


图3
        到目前为止,该网络结构还只能称之为snl。作者对snl做了一些结构的优化,就变成了最终的GC block。主要有两点:
1、对于nsl模块中右下角的1x1卷积,它的参数量是CINCOUT。例如,输入通道是2048,输出通道是2048。则参数量就是4000000。这样会导致该模块不够轻量级,无法插入网络的任意位置。作者是通过一个bottleneck结构来替换。这样参数量可以从2cin*cout/r(r通常设置为16)。
2、two-level bottleneck 的引入增加了网路优化的难度,因此作者引入了layer norm(作者论文中实验讲,这一加入还是蛮有效的,0.x个点吧)。
到这里作者发现gcnet的组成已经和senet很像了(如图4所示)。

                 图4

这时,作者提出了一个“Global context modeling framework”来抽象这一类结构(也即博客开头提到的三步骤结构)。如图5所示


               图5
        毕竟作者是投稿CVPR这样的顶会,还是要有创新性的。作者在论文中也总结了自己提出的gcnet与senet网络之间的差异:
1、senet 在融合的时候使用的是rescale,而gcnet使用的是sum。因此"SE recalibrate the importance of channels but inadequately models long-range dependency"。
2、Layer-norm的使用。
3、SE中用于提取全局信息的global pooling 是GCNET global attention pooling的一种特例。
4、在有就是性能上,outferms senet网络。

思考:
1、自己读下来non-local和gcnet。感觉gcnet虽然批判non-local花费了很大的笔墨。但我自己感觉,创新性上,gcnet有限,暂时理解的是简单的调整一下网络拼装结构,然后总结一个三步框架。感觉用作实习生工作的阶段性汇报,可以,但中一篇cvpr顶会,暂时还没感受到它的太大的价值。相比较而言,non-local,思想上的query-special的思想和实现,对自己的启发感觉更大。

附录:由于这篇文章涉及到比较多的non-local。因此non-local就暂时不准备单独开一篇博客了,附上对于理解Non-local自己感觉比较重要的一段论文和图。

CVPR2019之GCNet解读相关推荐

  1. BAD SLAM | 直接法实时BA+RGBD基准数据集(CVPR2019)

    论文解读:BAD SLAM | 直接法实时BA+RGBD基准数据集(CVPR2019) 本文解读的论文为发表于CVPR 2019的 "Schops, Thomas, Torsten Satt ...

  2. 史上最全语义分割综述(FCN,UNet,SegNet,Deeplab,ASPP...)

    目录 语义分割综述 摘要 语义分割领域研究现状 灰度分割 条件随机场 深度学习方法 数据集与评价指标 常用数据集 评价指标 模型介绍 语义分割综述 摘要 语义分割(全像素语义分割)作为经典的计算机视觉 ...

  3. CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状

    CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状 ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric Sha ...

  4. CVPR2019最全整理:全部论文下载,Github源码汇总、直播视频、论文解读等

    本文首发于公众号极市平台 点击**加入极市CV技术交流群**,交流更多计算机视觉相关的技术干货 CVPR 由IEEE举办的计算机视觉和模式识别领域的顶级会议,在机器学习领域享有盛名.今年的 CVPR ...

  5. CVPR2019 Oral论文《Side Window Filtering》解读及算法 Python 实现

    文章目录 摘要 待解决的问题 算法思想 实验结果与分析 1. 侧窗技术应用 -- 均值滤波理论分析 1.1 多类边缘均值滤波结果对比 1.2 竖直边缘图像理论分析 2. 侧窗技术应用 -- 滤波算法复 ...

  6. 【0514 更新中】CVPR2019 论文解读汇总

    CVPR2019 论文解读汇总(0514 更新中) 原文 http://bbs.cvmart.net/topics/287/cvpr2019 计算机视觉顶会CVPR 2019 接收结果已经出来啦,相关 ...

  7. CVPR2019 | Libra R-CNN 论文解读

    作者 | 文永亮 学校 | 哈尔滨工业大学(深圳) 研究方向 | 目标检测.GAN 推荐理由 ​ 这是一篇发表于CVPR2019的paper,是浙江大学和香港中文大学的工作,这篇文章十分有趣,网友戏称 ...

  8. [CAN] [CVPR2019]:Context-Aware Crowd Counting论文+代码解读

    1.论文 论文链接:https://arxiv.org/pdf/1811.10452.pdf 代码链接:GitHub - weizheliu/Context-Aware-Crowd-Counting: ...

  9. CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络

    Pyramid Feature Attention Network for Saliency detection 摘要 显著性检测是计算机视觉领域的基本挑战之一,怎么有效去提取特征非常关键,目前的一些 ...

最新文章

  1. 如果卷积神经网络存在根本性的缺陷,你会怎么看?
  2. 我要放弃RedHat Linux了
  3. linux之which命令
  4. RQNOJ36 数石子 并查集 简单应用
  5. r 64位连接mysql_R与Mysql数据库连接的两种方法
  6. Pareto相关理论
  7. Docker 停止容器
  8. Android 蓝牙 BLE扫描、广播、连接、数据收发源码分析(2)- inquiry扫描周围设备
  9. win7旗舰版通知windows不是正版副本解决方法
  10. [C# Fundamantal] 类继承简析
  11. Jsonviewer2 for Notepad++ 64 bit/位
  12. (C语言设计系统)利用EasyX完成学校工资管理系统
  13. FME大规模转换OSM PBF数据
  14. 没有可用软件包。错误:无须任何处理
  15. 如何转换音频格式简单图文教程
  16. 64位ubuntu 14.04无法找到和使用32bit库
  17. 基于C#制作一个飞机大战小游戏
  18. JSP九大内置对象和四个作用域
  19. 云计算机的发展史,三分钟看懂云计算的发展历程
  20. 一个使用javafx编写电子相片管理程序

热门文章

  1. python基础——魔术方法
  2. hybris 环境配置详细文档
  3. 支付宝迎来新挑战,微信推出升级版刷脸支付设备青蛙Pro
  4. 【WUSTOJ 图论之基本算法:SPFA】 1013: 香甜的黄油
  5. 解决wangEditor表格边框显示不出来、没有的问题
  6. ZYNQ #1 - PL端模拟HDMI信号输出环境下的Linux界面显示
  7. 请把这6个效率神器给我焊在电脑上
  8. 飞燕惊龙主题曲歌词怀旧..
  9. 盛大CEO陈天桥:卖了股票也要做网络电视
  10. Mac os 安装Maven