论文地址:https://doi.org/10.1016/j.neucom.2021.04.078
代码地址:https://github.com/clelouch/BPFINet
发表于:Neurocomputing 2021

I. Intro

  • 这个网络是用来进行显著目标检测的
  • 主要工作在于一个USRM模块进行特征的细化,CCM模块实现更好的通道注意力机制,UFIM模块提供一种特征融合的思路,以及一个Fusion Loss

II. Network Architecture


整体还是属于Encoder-Decoder框架,其中Encoder采用的是ResNet50。R代表USRM模块,C代表CCM模块,F代表UFIM模块,将在后文进行介绍

III. USRM

USRM意为U-shape self-refinement module,U型自细化模块。在网络中用到了两处:

第一处出现在Encoder与Decoder的连接处,相当于连接Encoder与Decoder的bridge,这种情景下其作用大概率是进一步处理Encoder所习到的特征;第二处出现在第一个Decoder后,其输入为第一个Decoder与倒数第二个Encoder所concat的特征。

那么为什么要做这个细化呢?

  • 某个卷积层只能捕获某一特定规模的信息
  • 显著对象的尺寸往往多种多样

USRM的结构如下所示:

从结构上看是一个小型的UNet。文中对其作用的阐述是,“可以让特征对scale variation更加鲁棒,从而提升网络检测小对象的性能”,但是目前我还没太弄明白为什么能有这个效果。

IV. CCM

CCM意为Channel Compression Module,通道压缩模块。这里首先有个小问题就是为什么要把CCM放在各Decoder后进行通道压缩,这是因为本文后面的特征融合用的是element wise加,那么就得先统一特征图通道数。

而谈到通道压缩,比较容易想到的就是经典的1×1卷积,其拥有对通道进行降维的能力。不过既然又单独提出了CCM模块,说明1×1卷积存在着一定的缺陷。文中指出了1×1卷积的这么个问题:

  • 特征图的各个通道是class-specific的,不同通道针对不同语义进行响应[1,2]

因此,直接用1×1卷积进行降维的话,可能导致对显著区域有更高响应的通道反而被压缩掉。那么如何解决这个问题呢?

文中的做法是用注意力机制。既然一些通道更重要,那么就给予这些通道更大的权重。CCM的结构如下所示:

  • C: 卷积层
  • P: 全局池化层
  • F: 全连接层
  • ×: element-wise乘
  • +: element-wise加

具体过程为,对于输入特征图Fh∈RCin×H×WF_{h} \in R^{C_{i n} \times H \times W}Fh​∈RCin​×H×W:

  • 首先经过一个1×1卷积进行降维,得到Fh1∈RCout×H×WF_{h1} \in R^{C_{out} \times H \times W}Fh1​∈RCout​×H×W
  • 经过一个全局池化层,得到一个channel-wise的向量Vh1∈RCout V_{h 1} \in R^{C_{\text {out }}}Vh1​∈RCout ​
  • 再经过两个全连接层,来算channel-wise的dependency,有Vh2=σ(fc2(relu⁡(fc1(Vh1))))V_{h 2}=\sigma\left(f c_{2}\left(\operatorname{relu}\left(f c_{1}\left(V_{h 1}\right)\right)\right)\right)Vh2​=σ(fc2​(relu(fc1​(Vh1​))))
  • 然后就是将原始降维后的结果Fh1F_{h1}Fh1​与dependency Vh2V_{h 2}Vh2​相乘,完成加权的过程,有Fh2=Fh1⊗F_{h 2}=F_{h 1} \otimesFh2​=Fh1​⊗ Expand (Vh2;Fh1)\left(V_{h 2} ; F_{h 1}\right)(Vh2​;Fh1​)
  • 最后还引入了一个残差连接,以便于网络的训练。最终CCM的输出为:
    Fh=relu⁡(Fh2+conv⁡(Fh2))F_{h}=\operatorname{relu}\left(F_{h 2}+\operatorname{conv} \left(F_{h 2}\right)\right) Fh​=relu(Fh2​+conv(Fh2​)) 这里残差用的卷积是一个3×3卷积。

V. UFIM

UFIM意为U-shape feature integration module,U型特征融合模块。那么为什么要做特征融合呢?

  • 高级特征包含更多的语义信息,有利于定位显著区域
  • 低级特征包含更多的细节信息,有利于定位显著边界
  • 在向网络浅层传递的过程中,全局特征会逐渐被稀释

UFIM的作用就是将高级特征、低级特征、全局特征给聚合起来。而说到特征聚合,最基础的一个方法就是像UNet那样,做一个skip connection,把不同的特征直接concat或者相加。然而这么做的缺陷在于:

  • 三种特征的感受野差别很大,直接resize再concat或add可能并不合适

既然感受野差别很大不好直接加,那就可以想办法把三者的感受野调整至差不多,然后再加,因此UFIM便通过相应的卷积层来完成感受野调整的过程。针对不同层级的特征,UFIM的深度也有所不同,这里以最后一个UFIM为例进行说明。其中的X,Y,Z分别对应着低级特征、高级特征、全局特征:

其结构示意图如下所示:

可以看到整体呈U型结构,有三个输入:

  • low: 低级特征Fl,其来源于第一个Encoder的输出,尺寸为H2×W2\frac{H}{2} \times \frac{W}{2}2H​×2W​
  • high: 高级特征Fh,其来源于倒数第二个Decoder的输出,尺寸为H4×W4\frac{H}{4} \times \frac{W}{4}4H​×4W​
  • global: 全局特征Fg,其来源于第二个Decoder的输出,尺寸为H16×W16\frac{H}{16} \times \frac{W}{16}16H​×16W​

特征融合过程:
先看低级特征与高级特征的融合。将Fl送入3×3卷积层,扩大其感受野,得到的结果记为F(1)。此时,F(1)与Fh的感受野相近,可以直接进行element-wise加,得到F(2)

接着是与全局特征的融合。根据特征图的尺寸,将F(2)送入两个3×3卷积层,扩大两次感受野,得到的结果记为F(3)。此时,F(3)与Fg的感受野相近,可以直接进行element-wise加。

之后则是一些skip connection的过程,在此不再进行赘述。其余两个UFIM的结构如下所示:

VI. Loss Function

传统BCE Loss有两个缺陷:

  • 显著边界处的像素往往更难确定,因此生成的预测图在边界处经常是模糊的
  • 当预测结果与ground truth完全不相交时,相应的惩罚并不大,尤其是对于小物体而言

为此本文提出了种Fusion Loss(注,由于原文此处描述可能有混淆,这里对公式表述进行了略微修改):
Lall =L(1)+0.5L(2)+0.25L(3)+0.125(L(4)+L(5))\mathscr{L}_{\text {all }}=\mathscr{L}_{(1)}+0.5 \mathscr{L}_{(2)}+0.25 \mathscr{L}_{(3)}+0.125\left(\mathscr{L}_{(4)}+\mathscr{L}_{(5)}\right) Lall ​=L(1)​+0.5L(2)​+0.25L(3)​+0.125(L(4)​+L(5)​)
由于采用了deep supervision策略,对每一个side output都进行了监督,这里的L(i)\mathscr{L}_{(i)}L(i)​便指第i个side output的loss。权重的设计思路是,side output的尺寸越小(或者是大?文中没有明确指明,需要查看代码),相应的权重也就越小。

接下来分析L\mathscr{L}L的组成,有:
L=Lwbce +0.5×(Lwiou +Lwoiou )\mathscr{L}=\mathscr{L}_{\text {wbce }}+0.5 \times\left(\mathscr{L}_{\text {wiou }}+\mathscr{L}_{\text {woiou }}\right)L=Lwbce ​+0.5×(Lwiou ​+Lwoiou ​)
Lwbce \mathscr{L}_{\text {wbce }}Lwbce ​指weighted BCE Loss,Lwiou \mathscr{L}_{\text {wiou }}Lwiou ​指weighted IoU Loss,Lwoiou \mathscr{L}_{\text {woiou }}Lwoiou ​指weighted opposite IoU Loss。

对于wBCE和wIoU而言,关键在于这个w要怎么去设计。设计的目标当然是给予边界处的像素更大的权重,文中的做法是:
w=conv⁡g(G)w=\operatorname{conv}_{g}(G) w=convg​(G)
G就是指ground truth了,而这里的卷积核采用的是一个31×31(从后文可以看出这个31是调参调出来的)的高斯核。接下来则有:
Vi,j=Gi,j×log⁡(Si,j)+(1−Gi,j)×log⁡(1−Si,j)V_{i, j}=G_{i, j} \times \log \left(S_{i, j}\right)+\left(1-G_{i, j}\right) \times \log \left(1-S_{i, j}\right) Vi,j​=Gi,j​×log(Si,j​)+(1−Gi,j​)×log(1−Si,j​) Lwbce =−∑i=1H∑j=1W(1+γ×wi,j)×Vi,j∑i=1H∑j=1W(1+γ×wi,j)\mathscr{L}_{\text {wbce }}=-\frac{\sum_{i=1}^{H} \sum_{j=1}^{W}\left(1+\gamma \times w_{i, j}\right) \times V_{i, j}}{\sum_{i=1}^{H} \sum_{j=1}^{W}\left(1+\gamma \times w_{i, j}\right)} Lwbce ​=−∑i=1H​∑j=1W​(1+γ×wi,j​)∑i=1H​∑j=1W​(1+γ×wi,j​)×Vi,j​​ Lwiou =1−1+∑i=1H∑j=1W(Gi,j×Si,j)(1+γ×wi,j)1+∑i=1H∑j=1W(Gi,j+Si,j−Gi,j×Si,j)(1+γ×wi,j)\mathscr{L}_{\text {wiou }} = 1-\frac{1+\sum_{i=1}^{H} \sum_{j=1}^{W}\left(G_{i, j} \times S_{i, j}\right)\left(1+\gamma \times w_{i, j}\right)}{1+\sum_{i=1}^{H} \sum_{j=1}^{W}\left(G_{i, j}+S_{i, j}-G_{i, j} \times S_{i, j}\right)\left(1+\gamma \times w_{i, j}\right)} Lwiou ​=1−1+∑i=1H​∑j=1W​(Gi,j​+Si,j​−Gi,j​×Si,j​)(1+γ×wi,j​)1+∑i=1H​∑j=1W​(Gi,j​×Si,j​)(1+γ×wi,j​)​
最后,wIoU作为map level的指标,在显著对象较小时效果较好,而显著对象较大时则作用减弱,因此这里还引入了一个woIoU:
Lwoiou =1−1+∑i=1H∑j=1W(Gi,j‾×Si,j‾)(1+γ×wi,j)1+∑i=1H∑j=1W(Gi,j‾+Si,j‾−Gi,j‾×Si,j‾)(1+γ×wi,j)\mathscr{L}_{\text {woiou }} = 1-\frac{1+\sum_{i=1}^{H} \sum_{j=1}^{W}\left(\overline{G_{i, j}} \times \overline{S_{i, j}}\right)\left(1+\gamma \times w_{i, j}\right)}{1+\sum_{i=1}^{H} \sum_{j=1}^{W}\left(\overline{G_{i, j}}+\overline{S_{i, j}}-\overline{G_{i, j}} \times \overline{S_{i, j}}\right)\left(1+\gamma \times w_{i, j}\right)} Lwoiou ​=1−1+∑i=1H​∑j=1W​(Gi,j​​+Si,j​​−Gi,j​​×Si,j​​)(1+γ×wi,j​)1+∑i=1H​∑j=1W​(Gi,j​​×Si,j​​)(1+γ×wi,j​)​

落实到实验中,可以观察到,在显著目标较大时,wBCE占主导,woIoU的值也较大;在显著目标较小时,wIoU占主导。

VII. Experiment

性能超越了16个最近模型,包括Amulet(ICCV 2017)、UCF(ICCV 2017)、NLDF(CVPR 2017)、PAGR(CVPR 2018)、BMPM(CVPR 2018)、R3Net(IJCAI 2018)、PICANet-R(CVPR 2018)、BASNet(CVPR 2019)、CPD-R(CVPR 2019)、PoolNet(CVPR 2019)、SCRN(ICCV 2019)、CSNet(ECCV 2020)、GateNet(ECCV 2020)、DFI(TIP 2020)、GCPANet(AAAI 2020)、U2Net(PR 2020)

VIII. Summary

这篇文章的落脚点还是在这个经典问题上,即在SOD中怎么进行更好的特征融合。为此,文中的核心思路是用了三个UFIM模块,分别完成一次全局特征与低级特征的融合、两次全局特征、低级特征、高级特征的融合(注意这两次中的全局特征略有不一样),实现更好的性能。至于其他的有个CCM,其性能比PFAN、 CBAM这两种通道注意力模块要更好,以及一个引入了通过weight来提升边缘处显著检测性能的Fusion Loss。

Ref

[1] T. Zhao, X. Wu, Pyramid feature attention network for saliency detection, in: Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit., 2019. https://doi.org/10.1109/CVPR.2019.00320.
[2] J. Hu, L. Shen, S. Albanie, G. Sun, E. Wu, Squeeze-and-Excitation Networks, IEEE Trans. Pattern Anal. Mach. Intell. 42 (8) (2020) 2011–2023, https://doi.org/10.1109/TPAMI.3410.1109/TPAMI.2019.2913372.

论文阅读:BPFINet: Boundary-aware progressive feature integration network for salient object detection相关推荐

  1. [论文阅读] Looking for the Detail and Context Devils: High-Resolution Salient Object Detection

    论文地址:https://dx.doi.org/10.1109/TIP.2020.3045624 发表于:TIP 2021 Abstract 近年来,随着大规模基准测试与深度学习技术的成就,显著目标检 ...

  2. 论文笔记-Suppress and Balance: A Simple Gated Network for Salient Object Detection

    Hello, 今天是论文阅读计划的第19天啦- 也是我在这30天中要介绍的最后一篇目标检测的论文啦 一.背景 最显著的目标检测方法使用的基本结构是三角网或特征金字塔网络(FPN).这些方法忽略了编码器 ...

  3. [论文阅读] Cross-layer feature pyramid network for salient object detection

    论文地址:https://dx.doi.org/10.1109/TIP.2021.3072811 发表于:TIP 2021 Abstract 基于特征金字塔(FPN)的模型,以渐进的方式融合语义与显著 ...

  4. 显著性目标检测之Global Context-Aware Progressive Aggregation Network for Salient Object Detection

    Global Context-Aware Progressive Aggregation Network for Salient Object Detection 文章目录 Global Contex ...

  5. EGNet: Edge Guidance Network for Salient Object Detection 论文及代码解读

    EGNet: Edge Guidance Network for Salient Object Detection 论文及代码解读 注:本文原创作者为Jia-Xing Zhao, Jiang-Jian ...

  6. Extended Feature Pyramid Network for Small Object Detection

    Extended Feature Pyramid Network for Small Object Detection 论文链接:https://arxiv.org/abs/2003.07021v1 ...

  7. 分析显著性目标检测--Global Context-Aware Progressive Aggregation Network for Salient Object Detection

    分析显著性目标检测--Global Context-Aware Progressive Aggregation Network for Salient Object Detection 引入 方法 网 ...

  8. 【论文笔记】Multi-Content Complementation Network for Salient Object Detection in Optical RSI

    论文 论文:Multi-Content Complementation Network for Salient Object Detection in Optical Remote Sensing I ...

  9. 论文阅读:A Progressive Architecture With Knowledge Review Network for Salient Object Detection

    论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/16408 发表于:AAAI 2021 Abstract 显著目标的定位与分割是显著目标检测 ...

最新文章

  1. 交叉分解+Cross decomposition
  2. iOS进阶之类别(Category)(9)
  3. 宁波计算机软考培训机构,浙江宁波2019年下半年软考通过率约为25.7%
  4. Java:在JPA中使用规范模式
  5. shell 本地接口自动化
  6. nodejs计算时间间隔_Javascript计算时间差的函数分享
  7. Windows 7 文件夹共享
  8. ElasticSearch6.x 7.x Elasticdump 在线安装、离线安装
  9. js能订阅mq吗_ActiveMQ+MQTT实现客户端订阅推送模式(一)订阅者
  10. 第二次冲刺-个人工作总结05
  11. 《著名企业求职面试指南》——揭秘顺利通过名企面试的“潜规则”
  12. java容器输入_Java 容器初识篇
  13. python第四周作业_马哥2016全新Linux+Python高端运维班第四周作业
  14. mysql事务隔离级别回顾
  15. IDEA汉化,中文包和汉化包以及中文版jar下载(更新了2018-2018.2.3版本)
  16. 粒子群算法及C++实现
  17. 金属酞菁催化剂可促进氧还原反应
  18. 现行各主流语言的特点
  19. 为什么linux不需要整理磁盘,为什么Linux不需要磁盘碎片整理
  20. Python爬虫——Scrapy 的基本使用

热门文章

  1. pycharm是python2.还是3_Pycharm:Python2和3及其的Anaconda的正确设置
  2. html中一个页面大概多少px,当屏幕 (浏览器窗口) 小于 768px, 每一列的宽度是 100% -HTML教程_小白教程_css5.net...
  3. mysql常量,变量,循环语句,存储过程,触发器,分隔符
  4. mysql workbench中文设置 mac系统,win系统,linux系统
  5. php验证规则表单,PHP Yii框架之表单验证规则大全
  6. postman压力测试_如何用Postman简单做接口自动化
  7. case when then 统计去重数据_数据分析--SQL求职面试题
  8. 数据结构 5-3-3 二叉树的线索化
  9. Ground Defense 模拟
  10. 数据结构实验 4.括号画家