[论文阅读] AMPNet: Average- and Max-Pool Networks for Salient Object Detection

论文地址:https://dx.doi.org/10.1109/TCSVT.2021.3054471
发表于:TCSVT 2021

Abstract

显著目标检测的任务是检测图像中最具视觉特色的物体。我们通过引入平均池化来探索不同于最大池化的多级深度平均池化卷积特征来解决这一问题。基于U-Net架构,我们提出了平均&最大池化网络(AMPNet),利用平均池化模块与最大池化模块,分别在空间和通道维度上整合多级互补的上下文特征。由我们网络生成的互补上下文特征可以提高被检测目标的完整性。据观察,非显著区域被误识别为显著目标,是因为多级卷积特征中包含冗余信息。为了解决这一问题,我们在上述两个模块的基础上引入了两条自顶向下的反馈路径,并充分利用顶层语义引导信息来提高显著目标检测的准确性。最后,我们利用特征融合模块与深度监督机制来进一步提高网络性能。在六个基准数据集上的实验结果表明我们的网络与SOTA不相上下。我们的方法在单个GPU上的运行速度超过45 FPS(VGG)和35 FPS(ResNet),满足实时需求。

I. Motivation

还是SOD领域的两个经典问题:

  • 检测到显著目标容易不完整,缺乏局部细节
  • 非显著区域被误识别为显著目标
II. Network Architecture

第一次见结构画的如此复杂的图…给人一种魔改U-Net的错觉

在这里插入图片描述
整体而言还是遵循Encoder(VGG/ResNet)-Decoder架构。

III. Average-Pool Module

Average-Pool Module,平均池化模块,用于处理Encoder学到的各级特征,提取更多的空间结构信息:
在这里插入图片描述
如上图所示,记Encoder学到的各级特征为 X = { X 1 , X 2 , X 3 , X 4 , X 5 , X 6 } X=\left\{X^{1}, X^{2}, X^{3}, X^{4}, X^{5}, X^{6}\right\} X={X1,X2,X3,X4,X5,X6},APM的结构如下所示:
在这里插入图片描述
由以下几个部分组成:

  • 一个平均池化层(图中的AvePool),kernel size=2,stride=2,可以将特征图的尺寸减半,并保持通道数不变
  • 一个并行卷积块(图中的ConvA1~A4),卷积块中四个卷积层的kernel size(分别为1,3,5,7)与padding(分别为0,1,2,3)都不同,用于提取不同感受野下的多级特征
  • 一个通道转换层(图中的ConvA),用于转换通道数,其实就是个1×1卷积

APM的形式化定义如下:
A i = ConvA ⁡ (  cat  ( ConvA1 ⁡ (  AveP  ( X i ) ) , ConvA2 ⁡ (  AveP  ( X i ) ) , ConvA3 ⁡ (  AveP  ( X i ) ) , ConvA4 ⁡ (  AveP  ( X i ) ) , ) ) i ∈ [ 1 , 5 ] A^{i}=\operatorname{ConvA}\left(\text { cat }\left(\begin{array}{c} \operatorname{ConvA1}\left(\text { AveP }\left(X^{i}\right)\right), \\ \operatorname{ConvA2}\left(\text { AveP }\left(X^{i}\right)\right), \\ \operatorname{ConvA3}\left(\text { AveP }\left(X^{i}\right)\right), \\ \operatorname{ConvA4}\left(\text { AveP }\left(X^{i}\right)\right), \end{array}\right)\right) i \in[1,5] Ai=ConvA cat ConvA1( AveP (Xi)),ConvA2( AveP (Xi)),ConvA3( AveP (Xi)),ConvA4( AveP (Xi)),i[1,5]

APM的大致思想在于,Encoder提取的粗特征中包含一些背景噪声,因此这里就采用一些大卷积核把噪声给压掉;或者简单来说做的就是用不同尺寸卷积核获得不同感受野下的信息来做融合。

IV. Max-Pool Module

Max-Pool Module,最大池化模块,与APM类似,作用依然为对Encoder学到的各级特征进行处理:
在这里插入图片描述
MPM的结构如下所示:
在这里插入图片描述
由以下几个部分组成:

  • 一个最大池化层(图中的MaxPool),kernel size=2,stride=2,可以将特征图的尺寸减半,并保持通道数不变
  • 一个串行卷积块(图中的Conv(i+1))。这个东西就比较有意思了,因为是串行的,加之前面的MaxPool层,本质上就组成了VGG网络的延续。例如,如果某MPM接在VGG block 2之后,那么其承担的作用就比较类似于VGG block 3。因此,根据VGG网络的结构,不同Encoder block后跟的串行卷积块也有所不同
  • 两个通道转换层(图中的ConvC),用于转换通道数,不同的是这里用的是3×3卷积

MPM的形式化定义如下:
M i = ConvC ⁡ ( Conv ⁡ ( i + 1 ) ( MaxP ⁡ ( X i + 1 ) ) ) i ∈ [ 1 , 5 ] M^{i}=\operatorname{ConvC} \left(\operatorname{Conv}(i+1)\left(\operatorname{MaxP}\left(X^{i+1}\right)\right)\right) i \in[1,5] Mi=ConvC(Conv(i+1)(MaxP(Xi+1)))i[1,5]

文中对于MPM模块的作用也比较含糊,只讲了其能对特征进行细化。

V. Experiment

性能超越了19个最近模型,包括LEGS(CVPR 2015)、MCDL(CVPR 2015)、MDF(CVPR 2015)、DCL(CVPR 2016)、ELD(CVPR 2016)、RFCN(ECCV 2016)、Amulet(ICCV 2017)、UCF(ICCV 2017)、NLDF(CVPR 2017)、RSD(CVPR 2018)、PAGR(CVPR 2018)、RADF(AAAI 2018)、JDFPR(ICCV 2019)、 SRM(ICCV 2017)、DGRL(CVPR 2018)、 SdBAN(IEEE Access)、MINet(CVPR 2020)、PoolNet(CVPR 2019)、LDF(CVPR 2020)。

VI. Summary

感觉这篇文章很多地方都没讲特别清楚…有条件的可以阅读原文再理解一遍。总体思想感觉像对Encoder学到的特征利用APM与MPM进行处理。APM类似于一个平均池化的细化模块,通过并行的不同尺寸卷积(有点像Inception)来对特征进行后处理;MPM类似于一个最大池化的细化模块,通过串行的卷积来进一步处理特征。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值