作者 | 文永亮
研究方向 | 目标检测、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

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

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

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

  2. commons-pool2 池化技术探究

    一.前言 我们经常会接触各种池化的技术或者概念,包括对象池.连接池.线程池等,池化技术最大的好处就是实现对象的重复利用,尤其是创建和使用大对象或者宝贵资源(HTTP连接对象,MySQL连接对象)等方面 ...

  3. Java--对象池化技术 org.apache.commons.pool2.ObjectPool

    org.apache.commons.pool2.ObjectPool提供了对象池,开发的小伙伴们可以直接使用来构建一个对象池 使用该对象池具有两个简单的步骤: 1.创建对象工厂,org.apache ...

  4. 对象池化技术 org.apache.commons.pool

    恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率.Jakarta Commons Pool组件提供了一整套用于实现对象池化的框架,以及若干种各具特色的对象池实现,可以 ...

  5. SPP空间金字塔池化技术的直观理解

    空间金字塔池化技术, 厉害之处,在于使得我们构建的网络,可以输入任意大小的图片,不需要经过裁剪缩放等操作. 是后续许多金字塔技术(psp,aspp等)的起源,主要的目的都是为了获取场景语境信息,获取上 ...

  6. 仿照Android的池化技术

    /** * 仿照Android池化技术 * @author fgtian * */ public class ObjectCacheTest { public static class ObjectI ...

  7. 《Mybatis 手撸专栏》第6章:数据源池化技术实现

    作者:小傅哥 博客:https://bugstack.cn - 手写Mybatis系列文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 码农,只会做不会说? 你有发现吗,其实很大一部分码农 ...

  8. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

  9. 池化技术(一)Druid是如何管理数据库连接的?

    基于依赖程序的版本信息:druid:1.1.16               驱动程序mysql-connector-java:8.0.17 下一篇:HikariCP是如何管理数据库连接的 零.类图& ...

随机推荐

  1. Kubespray部署Kubernetes 1.13.0(使用本地镜像仓库)

    1. 下载kubespray # git clone https://github.com/kubernetes-sigs/kubespray.git # cd kubespray # pip ins ...

  2. iview框架 两侧弹框 出现第二层弹框 一闪而过的问题

    分析原因:寡人怀疑可能是,两层弹出框 采用的是一个开关值,发生了覆盖 解决方式 是在第二层弹框外套层计时器 源代码如下: 修改后为:

  3. Redis实现之复制(二)

    PSYNC命令的实现 在Redis实现之复制(一)这一章中,我们介绍了PSYNC命令和它的工作机制,但一直没有说明PSYNC命令的参数以及返回值.现在,我们了解了运行ID.复制偏移量.复制积压缓冲区以 ...

  4. C#+VisionPro连接相机获取图像的两种方式

    两种比较常用的方式. C#直接连接相机获取图像(GIGE) 在获取图像前,需要先创建一个相机对象,再使用这个相机对象的Acquire方法拍摄照片. ICogAcqFifo macqfifo;//定义相 ...

  5. loj2291 「THUSC 2016」补退选

    ref pkusc 快到了,做点 thusc 的题涨涨 rp-- #include <iostream> #include <cstring> #include <cst ...

  6. spring整合mybatis详解

    在上篇螃蟹已经说明spring注解的最经典配置,接下来开始整合mybatis,这样整个项目就相对完整了. 有关本实例的源码可以到 <spring MVC注解实例及说明文档> 下载. 如需转 ...

  7. Linux 必要软件的安装与配置

    主要是记录一下,免得下次重装系统后又到处搜索.. 一.必要软件的安装 JDK 下载 tar.gz:http://www.oracle.com/technetwork/java/javase/downl ...

  8. Map 中的EntrySet() ,Map的遍历

      我们循环Map时一般用到EntrySet(),EntrySet() 返回的时Set集合(Set<Map.Entry<K, V>>). 那么这里的有Map.Entry< ...

  9. order by 对null的处理

    [Oracle 结论] order by colum asc 时,null默认被放在最后order by colum desc 时,null默认被放在最前nulls first 时,强制null放在最 ...

  10. Python爬虫教程-21-xpath

    本篇简单介绍 xpath 在python爬虫方面的使用,想要具体学习 xpath 可以到 w3school 查看 xpath 文档 Python爬虫教程-21-xpath 什么是 XPath? XPa ...