Introduction

该论文利用显著性特征图(saliency feature map)来进行目标检测,得到物体的位置掩膜图(mask),属于显著性目标检测模型(salient object detection, SOD)。

SOD模型在处理物体内部和边界时面临相反的需求。内部的特征应该对强烈的外貌变化具有不变性(invariant)以便突出物体整体。然而边界的特征应该对外貌的轻微变化具有选择性(selective)以便区分物体和背景。

为了解决SOD模型的选择性-不变性(selectivity-invariance)的困境,论文的网络结构分成3个数据流。其中一个数据流是边界位置流(boundary localization stream),用于检测物体的边界,会输出一个边界图(boundary map)。另一个数据流是内部感知流(interior perception stream),用于感知物体的内部区域,会输出一个特征图。这两个数据流的输出图合在一起组成物体的掩膜,但是物体的内部和边界的过渡区域容易分类错误,因此还有第3个数据流。第3个数据流是过渡补偿流,是对过渡区域的分类结果的补偿,用来改善最终的输出结果。这3个数据流的输出结果结合在一起能够得到很好的物体掩膜,如下图所示。
《Selectivity or Invariance: Boundary-aware Salient Object Detection》笔记

Method

简称论文的方法为BANet,该网络的结构如下图所示,首先是特征提取,然后把不同层的特征输入到3个数据流中,得到3种特征图,最后这3种特征图组合在一起,得到图像中显著性物体的掩膜。
《Selectivity or Invariance: Boundary-aware Salient Object Detection》笔记

以ResNet网络主干为例,主干有5个层次,每个层次的子网络定义为θi(πi),i{1,,5}\theta_i(\pi_i),i\in \{1,\cdots,5\},其中πi\pi_iθi\theta_i的参数。为了不让图片的尺寸下降的太快,θ4\theta_4θ5\theta_5不会进行下采样,所有卷积层步长变为1,同时分别使用2和4的空洞卷积。

Boundary Localization Stream

边界位置流聚合多层特征,通过上采样和拼接来组合这些特征,具体结构可以看上面的结构图。上采样操作把feature map从原来的(H/8,W/8)(H/8, W/8)变成(H,W)(H, W)。这里使用5种层次的特征,包括低级特征和高级特征,是因为边界检测既需要物体的语义信息,也需要图像的边缘信息。边界位置流的子网络使用ϕB(πB)\phi_B(\pi_B)表示。边界位置流有相应的边界损失函数:
LB=E(Sig(ϕB(πB)),GB)(1) L_B = E(Sig(\phi_B(\pi_B)), G_B) \tag{1}
请把ϕB(πB))\phi_B(\pi_B))看作边界位置流的输出,GBG_B是边界的掩膜,SigSig是sigmoid函数,E(,)E(\cdot,\cdot)是交叉熵函数。

Interior Perception Stream

内部感知流强调大的显著性物体内特征的不变性,只需要最后一层θ5(π5)\theta_5(\pi_5)的特征。这里使用的子网络是整合连续膨胀(integrated successive dilation, ISD)模块,它通过在连续的尺度上感知局部上下文来把输入映射成输出。ISD模块的具体结构在下面说明。这个数据流就是预测显著物体的mask的,所以对应的损失函数是
LI=E(Sig(ϕI(πI)),G)(2) L_I = E(Sig(\phi_I(\pi_I)), G) \tag{2}
ϕI(πI))\phi_I(\pi_I))看作边界位置流的输出,GG是物体的掩膜,SigSig是sigmoid函数,E(,)E(\cdot,\cdot)是交叉熵函数。

Transition Compensation Stream

过渡补偿流对边界位置流输出和内部感知流输出进行补充,针对的是物体内部和边界之间没有正确预测的过渡区域。
《Selectivity or Invariance: Boundary-aware Salient Object Detection》笔记
看上图,c是内部感知流的输出结果(Sigmoid后的结果),d是内部感知流和边界位置流的组合结果,可以看到一些过渡区域没有正确分类,这些过渡区域在图中缺失了。e是3个数据流输出的组合结果,可以看到过渡补偿流的输出填补了这些缺失的过渡区域。

过渡补偿流的输入是第2层和第5层的特征,论文的解释是可以感知位置的低级特征和感知语义的高级特征组合起来可以强化过渡区域的特征表达。把θ5(π5)\theta_5(\pi_5)的输出特征上采样,然后和θ5(π5)\theta_5(\pi_5)的特征相加。接着使用一个中等复杂度的ISD模块,最后把结果上采样到(H,W)(H,W)

过渡补偿流的输出没有固定的真实值,因为它要根据内部感知流的输出和边界位置流的输出进行变化,它相当于二者的组合结果与真实的掩膜的残存。我们先看看如何组合3种输出结果,然后再看过渡补偿流的损失函数。

过渡补偿流的输出是ϕT\phi_T,然后定义MB=Sig(ϕB),MI=Sig(ϕI)M_B=Sig(\phi_B),M_I=Sig(\phi_I),3个输出结果的组合方式是
M=ϕB(1MI)MB+ϕIMI(1MB)+ϕT(1MI)(1MB) M = \phi_B \otimes (1 - M_I) \otimes M_B + \phi_I \otimes M_I \otimes (1 - M_B) + \phi_T \otimes (1 - M_I) \otimes (1 - M_B)
MM称为特征镶嵌图。第一项是增强选择性的特征(增强边界特征),第二项增强不变性特征(增强内部特征),第三项修正过渡区的特征。这种组合方式称为特征镶嵌(Feature Mosaic),参考过渡补偿流的效果图,过渡补偿流的输出就是对缺失的过渡区域进行镶嵌操作。

过渡补偿流对应的损失是
L0=E(Sig(M),G)(3) L_0 = E(Sig(M), G) \tag{3}

所以总损失函数是
L=L0+LB+LI L = L_0 + L_B + L_I

Integrated Successive Dilation Module

整合连续膨胀(ISD)模块的作用是有效地在一个连续的尺度上聚集上下文信息,增强特征的不变性。

ISD的结构如下图所示
《Selectivity or Invariance: Boundary-aware Salient Object Detection》笔记
ISD有N个平行分支,每个分支的第二层是一个空洞卷积层,空洞卷积的比率从1开始,随着分支数走不断加倍。这样做可以使的每个分支都能感知到不同大小的局部的上下文信息,整个ISD模块能够在一个连续的尺度上汇集上下文信息。

Experiments

看看不同方法生成的物体掩膜
《Selectivity or Invariance: Boundary-aware Salient Object Detection》笔记

相比于其他方法,该论文的方法生成的物体掩膜的效果很好,边界部位没有模糊的散点。

相关文章:

  • 2021-04-22
  • 2021-06-07
  • 2021-09-14
  • 2021-04-01
  • 2021-08-01
  • 2021-09-03
  • 2021-06-24
  • 2021-05-17
猜你喜欢
  • 2021-12-12
  • 2021-11-07
  • 2021-10-31
  • 2021-08-31
  • 2021-05-31
  • 2021-07-04
  • 2022-12-23
相关资源
相似解决方案