zoukankan      html  css  js  c++  java
  • PoolNet论文详解

    基本信息

    • 论文名称

      A Simple Pooling-Based Design for Real-Time Salient Object Detection

    • 作者

      Jiang-Jiang Liu, Qibin Hou, Ming-Ming Cheng

    • 发表时间

      2020年

    • 来源

      CVPR2019

    主要收获

    • 知识
      • low-level和high-level可以指人类意识中的低级和高级,也可以指CNN物理结构中的浅层(低层)和深层(高层)。
      • 因为CNN类似于金字塔的结构特点;其浅层阶段具有较大尺寸并保留丰富的低级信息;其深层阶段包含更多高级语义信息也更容易从中得到显著目标的位置,但很coarse(粗糙)。
    • 一些未知的东西
      • FPN
      • 上采样
      • ResNet
      • PPM
      • Richer convolutional features for edge detection
      • SRM(A stagewise refinement model for detecting salient objects in images)
      • weight decay
      • balanced binary cross entropy loss
      • standard binary cross entropy loss,BCE?

    Abstract

    1. 思路

      通过扩展池化在CNN中的作用,实现SOD。

    2. 实现

      基于U-shape architecture,构造2个模块

      1. GGM(global guidance module)

        自底向上,用来为不同层的特征图提供潜在显著目标的位置信息。

      2. FAM(feature aggregation module)

        从顶向下,使coarse-level的语义信息和fine-level的特征较好地融合

        在自顶向下的融合操作之后添加FAM,可以将GGM中coarse-level的特征与不同尺度的特征无缝融合。

      这2个模块使高级语义信息逐渐完善,生成信息丰富的显著性图。

    3. 通过锐化细节,和SOTA相比可以更精确地定位目标。

    4. 300×400的图片,FPS超过30,代码http://mmcheng.net/poolnet/。

    1. Introduction

    • U-shape结构

      • 多数传统方法通过手工设计的特征,单独或同时捕捉局部细节和全局上下文信息,但其性能因缺乏高层语义信息而受到限制,而CNN可以在不同尺度空间中提取高级语义信息和低级细节特征。
      • 因为CNN类似于金字塔的结构特点,其浅层阶段具有较大尺寸并保留丰富的低级信息,其深层阶段包含更多高级语义信息也更容易从中得到显著目标的位置
      • 基于上述知识,学者设计了许多结构,其中U-shape的结构最受关注,其通过在分类网络上构建自上而下的路径来构建丰富的特征图。
    • U-shape结构还存在提升空间

      • 存在问题

        1. 因为U-shape结构中高级语义信息(位于深层网络)是逐步传到浅层的,与此同时深层捕捉到的位置信息可能会被稀释。
        2. 一个CNN的感受野大小和其深度是不成比例的。
      • 解决方法

        • 现有方法

          现有方法(见原文参考文献)通过引入注意力机制、以循环方式细化特征图、结合多尺度特征信息、向显著图添加额外约束(例如边界loss)等方法解决上述U-shape结构的问题。

        • 本文方法

          本文提出的方法是基于U-shape并扩展池化技术,其中GGM和FAM都是基于FPN(feature pyramid networks)的。

    • PoolNet

      因为GGM和FAM都基于池化,所以将本文方法取名为PoolNet。

      • GGM

        GGM包括一个修改过的PPM(pyramid pooling module)和一系列GGF(global guiding flows)。

        • PPM

          和SRM(A stagewise refinement model for detecting salient objects in images)直接将PPM插入U-shape结构不同,本文提出的GGM是一个独立的模块。具体来讲,即把PPM放在backbone顶部用来捕捉全局指导信息(显著目标的位置)

        • GGF

          通过GGF,PPM收集到的高级语义信息可以传送到所有金字塔层,弥补了U-shape网络自上而下信号逐渐被稀释的问题。

      • FAM

        考虑到来自GGF的coarse-level特征图与金字塔不同尺度特征图的融合问题,本文提出了一种FAM,其输入为融合后的特征图。

        该模块首先将融合(应该是FPN操作?)得到的特征图转换到多个特征空间,以捕获不同尺度的局部上下文信息,然后将这些信息进行组合以更好地权衡融合的输入特征图的组成。(最后半句没懂,“权衡”一词具体指什么?

    • edge detection branch

      还使用了边缘检测分支(edge detection branch),通过和边缘检测协同训练以锐化显著物体的细节。

    • 性能

      • 精度

        Without bells and whistles,大幅超过之前的SOTA。

      • 速度

        • 一个NVIDIA Titan Xp GPU,图片尺寸300 × 400,速度超过30FPS
        • 不使用边缘检测分支时,5000张图片,训练时长不超过6小时,比多数方法快很多,因为池化操作比较快速。

    2. Related Work

    暂略

    3. PoolNet

    • high-level semantic features are helpful for discovering the specific locations of salient objects.
    • low- and midlevel features are also essential for improving the features extracted from deep layers from coarse level to fine level.

    3.1. Overall Pipeline

    • 基于FPN(一种U型结构,从底向上和自顶向下,优点是可以组合多层特征)
      • 在从底向上之后引入GGM,提取高级语义信息后将其与各个金字塔层融合。
      • GGM之后,引入FAM保证不同尺度的特征图可以无缝融合。

    3.2. Global Guidance Module

    • 现有不足

      • FPN的问题

        问题之一:自顶向下是在自底向上之后的,就是高级特征被传给低层时会逐渐稀释。

      • CNN的问题

        根据实验,CNN的感受野比理论上要小得多,特别是对于较深的层,所以整个网络的感受野并不足够大以捕捉输入的全局信息。

      • 直接影响

        可以看原文图2,只能检测到显著目标的局部。

    • 解决方法:GGM

      使得每个尺度的特征图都可以感知显著目标的位置。

      • PPM

        包括4个子分支,作用是捕获输入图像的上下文信息。

        第一和最后一个子分支分别是一个identity mapping layer和一个global average pooling layer。

        中间的两个分支,我们采用adaptive average pooling layer,以确保它们输出的特征图分别具有3×3和5×5的空间大小。

      • GGF

        作用是将PPM捕捉到的信息与接下来自顶向下中不同金字塔层的特征图合理地融合在一起。

        与SRM(A stagewise refinement model for detecting salient objects in images)不同,它是将PPM视为U形结构的一部分,而本文中的GGM独立于U形结构。

        如原文图1中的绿色箭头,通过引入一系列GGF(identity mappings),可以将高级语义信息传递到各个级别的特征。

        这样,我们在自上而下路径的每个部分中显式增加了全局导航信息的权重,以确保在构建FPN时不会稀释位置信息

        可以看原文图2,观察GGF的具体作用。

    3.3. Feature Aggregation Module

    • 解决的问题

      使GGM的粗略特征图与金字塔不同尺度的特征地图无缝融合。

      具体来讲,在原始的FPN(VGGNet版本)中,高层特征图上采样比率为2,所以在上采样后边加一个3×3的卷积可以减少其带来的aliasing effect。

      但是,GGF还需要更大的上采样比率,比如8。所以使用FAM充分、高效地处理GGF和不同金字塔层特征图之间巨大的尺寸差异。

    • FAM

      • 结构

        每个FAM包含4个子分支,如原文图3所示。在forward过程中,输入的特征图先以不同比率进行下采样(平均池化),然后再以不同比率进行上采样,然后将4个分支融合(sum),然后送入一个3×3的卷积层。

      • 优点

        • 减少上采样带来的aliasing effect,特别是当上采样比率较大(比如8)的时候。
        • 使每个spatial location(空间位置)可以看到不同尺度空间的局部上下文信息,而且增大了整个网络的感受野。
    • 实验

      • 原文图4

        将FAM替换成2个卷积层进行对比,把FAM模块附近的特征图可视化,证明FAM可以更好地捕捉显著目标的位置和细节信息。

      • 原文图2

        f列和g列(尤其是第2行)进行对比,证明引入FAM可以sharpen显著目标的细节信息。

      在下文的实验部分,会给出更多的数值结果。

    4. Joint Training with Edge Detection

    • 问题

      第3节描述的网络结构已经在多个常用评估准则上超过了之前所有SOTA的单个模型的结果。

      但是原文作者发现许多不准确(incomplete or over-predicted)的预测是由于不清晰的目标边界造成的

    • Edge Detection Branch

      在第3节描述的结构中添加1个预测分支,用来estimate显著目标的边界,具体结构见原文图1。

      在3个不同尺度的FAM之后添加3个residual block,用来information transformation,这3个residual block和ResNet的设计相似并且具有{128,256,512}个通道(从fine level到coarse level);和Richer convolutional features for edge detection一文相同,每个residual block后面都有1个16通道的3×3卷积层(用来feature compression),还有1个单通道的1×1卷积层(用来边缘检测)。

      将上述3个16通道的3×3特征图进行拼接(concatenate)然后将其送入3个连续的48通道3×3卷积层,以将捕捉到的边缘信息传递给显著性目标检测分支,用来增强细节

    • Train Edge Detection Branch taking the boundaries of salient objects as GT

      Instancelevel salient object segmentation一文相似,本文在训练阶段将显著目标的边界作为GT用来联合训练,然而这并没有带来任何性能提升并且仍然缺少目标边界的细节信息。如图5的c列,当场景的前后景对比度较低时,得到的显著性图和边界图仍然很模糊。导致这个问题的原因可能是来自显著目标的GT边界图仍然缺少显著目标的大部分细节信息。GT边界只告诉我们显著目标的外边界的位置,特别是当显著目标之间有重叠的时候。

    • Train Edge Detection Branch taking the boundaries of salient objects as GT

      根据上述内容,本文尝试了和边缘检测任务实现协同训练,使用和和Richer convolutional features for edge detection一文中相同的数据集。在训练时,来自显著目标检测数据集和边缘检测数据集的图像被交替输入。如图5所示,和边缘检测任务实现协同训练大幅提升了检测到的显著目标的细节。在下文实验部分,会给出更多的定量分析。

    5. Experimental Results

    5.1. Experiment Steup

    • 实现细节

      使用PyTorch框架,所有实验中的学习率优化器为Adam(5e-4的weight decay,初始学习率为5e-5然后15个epoch之后除以10)。

      本文的网络共训练24个epoch。

      网络backbone(如VGG-16、ResNet-50)的参数通过在ImageNet数据集上预训练的对应模型进行初始化,剩余参数随机初始化。

      如果没有特别声明,本文中消融实验(ablation experiments)默认使用VGG-16作为backbone,并使用和Instancelevel salient object segmentation一文相同的联合数据集(MSRA-B和HKU-IS)。

      本文在数据增强方面只使用了水平翻转。

      在训练和测试中,和Deeply supervised salient object detection with short connections一文中一样,输入图片的尺寸保持不变。

    • 数据集和损失函数

      在6个常用数据集(ECSSD、PASCALS、DUT-OMRON、HKU-IS、SOD和DUTS)上开展实验以评估性能。

      显著性目标检测中使用使用standard binary cross entropy loss,边缘检测使用balanced binary cross entropy loss。

    • 评估标准

      使用3个广泛应用的指标(PR曲线、F-measure score和MAE)评估本文提出的方法。

    5.2. Ablation Studies

    ablation的译文是消融。

    该section首先研究GGM和FAM的有效性,然后开展实验研究如何配置GGM,最后研究协同训练对性能的影响。

    • Effectiveness of GGM and FAMs

      基于FPN的baseline,以VGG-16为backbone,研究GGM和FAMs的有效性。除了GGM和FAMs的不同组合,其它所有配置都相同。原文表1展示了其在数据集DUT-O和SOD上的性能,对应的视觉比较可以在原文图2中看到。

      • GGM Only

        原文表1第4行数据说明GGM提升了F-measure和MAE。GGM生成的全局指导信息使网络更多地关注显著目标的完整性,大幅提升了所得显著性图的质量。因此,显著目标的细节(这些细节容易被感受野有限的模型错误预测为背景,比如原文图2的最后1行)可以被增强

      • FAMs Only

        原文表1第5行的数据说明简单地将FAMs嵌入到原文图1所示的FPN baseline中提升了F-measure和MAE。这可能是因为FAM中的池化操作扩大了整个网络的感受野,并且FPN baseline仍然需要融合不同尺度的特征图,这说明了FAM缓解上采样aliasing effect的有效性

      • GGM & FAMs

        原文表1最后1行的数据说明同时引入GGM和FAMs可以得到更优的F-measure和MAE,这说明GGM和FAM是互补的。通过它们可以精确地定位显著目标并改善其细节(如图2所示)。原文图6中包含更多的定性结果。

    • Configuration of GGM

      为更好地了解GGM,独立使用PPM和GGF开展实验,数据分别在原文表1的第2行和第3行。这2个实验的结果都比使用GGM时的结果(原文表1第4行的数据)。这说明PPM和GGF在GGM中都起着重要作用。

    • The Impact of Joint Training

      如原文表2所示,在3个数据集上,将显著目标边界(SalEdge)作为GT进行训练并没有提升baseline的性能,而使用标准的边缘(StdEdge)作为GT可以大幅提升baseline的性能,特别是MAE。这说明引入详细的边缘信息有助于显著性目标检测

    5.3. Comparisons to the State-of-the-Arts

    该section比较了本文方法和13个SOTA方法(具体是哪13个方法见原文,此处省略)。为公平比较,这13个方法的结果是原结果或者使用初始公开代码得到的结果。所有结果都不经过任何后处理,所有预测得到的显著性图都使用同一份代码进行评估。

    • Quantitative Comparisons

      如原文表3所示,分别使用VGG-16和ResNet-50作为backbone,并在多份训练集上开展实验以排除潜在的性能波动。可以看到,在相同的训练集上,使用相同的backbone,PoolNet超过了之前所有的SOTA方法。平均速度(FPS)对比如原文表4所示。

    • PR Curves

      原文图7为在3个数据集上的PR曲线,可以看到PoolNet的PR曲线优于其它算法。随着Recall值趋于1,PoolNet的Precision比其它算法高很多。这说明PooNet得到的显著性图的错误正样本(false positives)较少。

    • Visual Comparisons

      原文图6给出了PoolNet和其它算法的定性对比。从上到下,分别是透明目标、小目标、大目标、复杂形状和前背景低对比度。可以看出,在几乎所有环境下,PoolNet不仅可以正确找出显著目标,还可以增强它们的边缘。

    6. Conclusion

    本文设计GGM和FAM两个模块,提出PoolNet,并和边缘检测任务实现协同训练,在6个常用数据集上的效果优于之前所有SOTA方法。

    GGM和FAM是独立于网络结构的,可以灵活地迁移到任何基于金字塔的模型


    Github(github.com):@chouxianyu

    Github Pages(github.io):@臭咸鱼

    知乎(zhihu.com):@臭咸鱼

    博客园(cnblogs.com):@臭咸鱼

    B站(bilibili.com):@绝版臭咸鱼

    微信公众号:@臭咸鱼

    转载请注明出处,欢迎讨论和交流!


  • 相关阅读:
    配置Gitlab pages和Gitlab CI
    程序员不应该错过的 6大导航
    Ice简介+Qt代码示例
    Android开发者的Anko使用指南(四)之Layouts
    三种方式绘制图片
    产品-(前后端)开发-测试的见解
    01_Docker概念简介、组件介绍、使用场景和命名空间
    Docker 创建 Confluence6.12.2 中文版
    读再多懂再多的鸡汤,不如每天敲码思考总结
    Postman Mock Server
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/14559276.html
Copyright © 2011-2022 走看看