作者 | 文永亮
研究方向 | 目标检测、GAN

研究动机

​ 这是一篇发表于CVPR2019的关于显著性目标检测的paper,在U型结构的特征网络中,高层富含语义特征捕获的位置信息在自底向上的传播过程中可能会逐渐被稀释,另外卷积神经网络的感受野大小与深度是不成正比的,目前很多流行方法都是引入Attention(注意力机制),但是本文是基于U型结构的特征网络研究池化对显著性检测的改进,具体步骤是引入了两个模块GGM(Global Guidance Module,全局引导模块)FAM(Feature Aggregation Module,特征整合模块),进而锐化显著物体细节,并且检测速度能够达到30FPS。因为这两个模块都是基于池化做的改进所以作者称其为PoolNet,并且放出了源码:https://github.com/backseason/PoolNet

模型架构

两个模块:

  • GGM(Global Guidance Module,全局引导模块)
    ​ 我们知道高层语义特征对挖掘显著对象的详细位置是很有帮助的,但是中低层的语义特征也可以提供必要的细节。因为在top-down的过程中,高层语义信息被稀释,而且实际上的感受野也是小于理论感受野,所以对于全局信息的捕捉十分的缺乏,导致显著物体被背景吞噬,所以提出了GGM模块,GGM其实是PPM(Pyramid Pooling module,金字塔池化模块)的改进并且加上了一系列的GGFs(Global Guiding Flows,全局引导流),这样做的好处是,在特征图上的每层都能关注到显著物体,另外不同的是,GGM是一个独立的模块,而PPM是在U型架构中,在基础网络(backbone)中参与引导全局信息的过程。

    ​ 其实这部分论文说得并不是很清晰,没有说GGM的详细结构,我们可以知道PPM[7]的结构如下:


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

    ​ 如果明白了这个的话,其实GGM就是在PPM的结构上的改进,PPM是对每个特征图都进行了金字塔池化,所以作者说是嵌入在U型结构中的,但是他加入了global guiding flows(GGFs),即Fig1中绿色箭头,引入了对每级特征的不同程度的上采样映射(文中称之为identity mapping),所以可以是个独立的模块。

    ​ 简单地说,作者想要FPN在top-down的路径上不被稀释语义特征,所以在每次横向连接的时候都加入高层的语义信息,这样做也是一个十分直接主观的想法啊。

  • FAM(Feature Aggregation Module,特征整合模块)
    特征整合模块也是使用了池化技巧的模块,如下图,先把GGM得到的高层语义与该级特征分别上采样之后横向连接一番得到FAM的输入b,之后采取的操作是先把b用{2,4,8}的三种下采样得到蓝绿红特征图然后avg pool(平均池化)再上采样回原来尺寸,最后蓝绿红紫(紫色是FAM的输入b)四个分支像素相加得到整合后的特征图。


    FAM有以下两个优点:

    • 帮助模型降低上采样(upsample)导致的混叠效应(aliasing)
    • 从不同的多角度的尺度上纵观显著物体的空间位置,放大整个网络的感受野

    ​ 第二点很容易理解,从不同角度看,不同的放缩尺度看待特征,能够放大网络的感受野。对于第一点降低混叠效应的理解,用明珊师姐说的话,混叠效应就相当于引入杂质,GGFs从基础网络最后得到的特征图经过金字塔池化之后需要最高是8倍上采样才能与前面的特征图融合,这样高倍数的采样确实容易引入杂质,作者就是因为这样才会提出FAM,进行特征整合,先把特征用不同倍数的下采样,池化之后,再用不同倍数的上采样,最后叠加在一起。因为单个高倍数上采样容易导致失真,所以补救措施就是高倍数上采样之后,再下采样,再池化上采样平均下来可以弥补错误


    ​ 上图就是为了说明FAM的优点的,经过高倍上采样之后的图像(b)和(d)容易引入许多杂质,致使边缘不清晰,但是经过FAM模块之后的特征图就能降低混叠效应

实验结果

​ 论文在常用的6种数据集上做了实验,有ECSSD [8], PASCALS[9], DUT-OMRON [10], HKU-IS [11], SOD [12] and DUTS [13], 使用二值交叉熵做显著性检测,平衡二值交叉熵(balanced binary cross entropy)[14]作为边缘检测(edge detection)。

​ 以下是文章方法跟目前state-of-the-arts的方法的对比效果,绿框是GT,红框是本文效果。可以看到无论在速度还是精度上都有很大的优势。




​ 论文还针对三个改进的技术PPM、GGFs和FAMs的不同组合做了实验,(a)是原图,(b)是Ground truth,(c)是FPN的结果,(d)是FPN+FAMs,(e)是FPN+PPM,(f)是FPN+GGM(g)FPN+GGM+FAMs

总结

​ 该paper提出了两种基于池化技术的模块GGM(全局引导模块)和FAM(特征整合模块),改进FPN在显著性检测的应用,而且这两个模块也能应用在其他金字塔模型中,具有普遍性,但是FAM的整合过程我认为有点像是用平均中和了上采样带来的混叠效应,但是不够优雅,先下采样池化再上采样带来的损失可能代价太大

参考文献

[1]. Hengshuang Zhao, Jianping Shi, Xiaojuan Qi, Xiaogang Wang, and Jiaya Jia. Pyramid scene parsing network. In CVPR, 2017. 1, 3
[2]. Tiantian Wang, Ali Borji, Lihe Zhang, Pingping Zhang, and Huchuan Lu. A stagewise refinement model for detecting salient objects in images. In ICCV, pages 4019–4028, 2017. 1, 3, 6, 7, 8
[3].Nian Liu and Junwei Han. Dhsnet: Deep hierarchical saliency network for salient object detection. In CVPR, 2016.1, 2, 3, 7, 8
[4]. Qibin Hou, Ming-Ming Cheng, Xiaowei Hu, Ali Borji, Zhuowen Tu, and Philip Torr. Deeply supervised salient object detection with short connections. IEEE TPAMI, 41(4):815–828, 2019. 1, 2, 3, 5, 6, 7, 8
[5]. Tiantian Wang, Ali Borji, Lihe Zhang, Pingping Zhang, and Huchuan Lu. A stagewise refinement model for detecting salient objects in images. In ICCV, pages 4019–4028, 2017. 1, 3, 6, 7, 8
[6]. Tiantian Wang, Lihe Zhang, Shuo Wang, Huchuan Lu, Gang Yang, Xiang Ruan, and Ali Borji. Detect globally, refine locally: A novel approach to saliency detection. In CVPR, pages 3127–3135, 2018. 1, 3, 6, 7, 8
[7]. Hengshuang Zhao, Jianping Shi, Xiaojuan Qi, Xiaogang Wang, and Jiaya Jia. Pyramid scene parsing network. In CVPR, 2017. 1, 3
[8]. Qiong Yan, Li Xu, Jianping Shi, and Jiaya Jia. Hierarchical saliency detection. In CVPR, pages 1155–1162, 2013. 1, 5, 8
[9]. Yin Li, Xiaodi Hou, Christof Koch, James M Rehg, and Alan L Yuille. The secrets of salient object segmentation. In CVPR, pages 280–287, 2014. 5, 7, 8
[10]. Chuan Yang, Lihe Zhang, Huchuan Lu, Xiang Ruan, and Ming-Hsuan Yang. Saliency detection via graph-based manifold ranking. In CVPR, pages 3166–3173, 2013. 5, 6, 7, 8
[11]. Guanbin Li and Yizhou Yu. Visual saliency based on multiscale deep features. In CVPR, pages 5455–5463, 2015. 2, 5, 6, 7, 8
[12]. Vida Movahedi and James H Elder. Design and perceptual validation of performance measures for salient object segmentation. In CVPR, pages 49–56, 2010. 5, 6, 7, 8
[13]. Lijun Wang, Huchuan Lu, Yifan Wang, Mengyang Feng, Dong Wang, Baocai Yin, and Xiang Ruan. Learning to detect salient objects with image-level supervision. In CVPR, pages 136–145, 2017. 5, 7, 8
[14]. Saining Xie and Zhuowen Tu. Holistically-nested edge detection. In ICCV, pages 1395–1403, 2015. 6

转载于:https://www.cnblogs.com/ManWingloeng/p/10930634.html

CVPR 2019|PoolNet:基于池化技术的显著性检测 论文解读相关推荐

  1. CVPR 2019 | PoolNet:基于池化技术的显著性目标检测

    作者丨文永亮 学校丨哈尔滨工业大学(深圳) 研究方向丨目标检测.GAN 研究动机 这是一篇发表于 CVPR 2019 的关于显著性目标检测的 paper,在 U 型结构的特征网络中,高层富含语义特征捕 ...

  2. Java 数据持久化系列之池化技术

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...

  3. java 状态机_Java 数据持久化系列之池化技术

    在上一篇文章<Java 数据持久化系列之JDBC>中,我们了解到使用 JDBC 创建 Connection 可以执行对应的SQL,但是创建 Connection 会消耗很多资源,所以 Ja ...

  4. 池化技术 java_netty4的内存池化技术

    此文已由作者徐赟授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一. 前言 java语言在运行于JVM的前提下,内存分配和回收通常无需用户干预.用户创建对象时,系统会在堆中分 ...

  5. 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略

    目录 引言 线程池使用场景 加快请求响应(响应时间优先) 加快处理大任务(吞吐量优先) 特殊说明 线程池的池化技术 线程池的创建 手动创建 创建newFixedThreadPool线程池 创建newS ...

  6. 池化技术-数据库连接池

    池化技术-数据库连接池 简介 数据库连接池 什么是数据库连接池 长连接和连接池的区别 数据库连接池运行机制 连接池和线程池的关系 连接池的连接数量 数据库连接池的设计 设计思路 设计逻辑 构造函数 初 ...

  7. 深入研究池化技术——对象池

    池化技术 池化技术是性能调优的重要措施,池化的思想是把对象放到池子里,当要使用的时候,从池子里面拿对象,用完后再放回池子里,这样可以降低资源分配以及释放的开销,从而提升性能,在实际项目中,其实我们每天 ...

  8. java构建内存池队列_池化技术(线程池、连接池、内存池等)

    一.池化技术 - 简单点来说,就是提前保存大量的资源,以备不时之需. 对于线程,内存,oracle的连接对象等等,这些都是资源,程序中当你创建一个线程或者在堆上申请一块内存时,都涉及到很多系统调用,也 ...

  9. 池化技术及jdk的线程池讲解

    概述 程序运行的本质是消耗系统资源,线程.数据库连接等都会耗费系统的资源.线程.数据库连接等的创建.销毁等都十分消耗系统资源,所以,如果使用池化技术(线程池.数据库连接池等),可以对系统资源进行控制和 ...

最新文章

  1. 服务不可用怎么排查?讲了100遍还是记不住?
  2. 云计算开发技术,Python自动化运维开发实战三部分
  3. 内存溢出_关于PermGen Space内存溢出解决方案
  4. SAP Cloud for Customer的Account Team里的role如何配置
  5. Restrictions查询用法
  6. LeetCode 662. 二叉树最大宽度(递归)
  7. Leetcode--1028. 从先序遍历还原二叉树(Java)
  8. 为什么选择springcloud微服务架构
  9. live555学习笔记-RTSPClient分析
  10. L1-036 A乘以B (5 分)—团体程序设计天梯赛
  11. 台湾“比基尼登山客”遗体运出 山友接其“回家”
  12. 【多元统计分析及R语言建模】第一章第 多元统计分析的概述
  13. 弱电工程综合布线施工过程控制
  14. Flask-mongoengine分页bug
  15. 股权模板:72套股权分配方案
  16. stl库的使用——队列queue和优先队列和优先队列小根堆(全家桶哎)
  17. c++中static的用法详解
  18. XCP学习笔记 ———— CTOs
  19. 有道云笔记无法同步至本地电脑解决方法
  20. 带你轻松写出第一篇优秀论文

热门文章

  1. 十年总结(八.2):插曲,毕业十年聚会,我的思考
  2. 递推(一):递推法的基本思想
  3. 用VB实现番茄工作法 miniTomato
  4. notifyAll notify顺序
  5. UML组件视图-组件图详解
  6. (二)Java算法:插值查找
  7. 什么是存储过程?使用它的优点有哪些?
  8. html clear属性值,CSS clear both清除浮动
  9. ✌️微信、知乎、美团、视频类等热门App图文排版技巧分析
  10. 飞思卡尔MC9S12X CAN驱动