论文地址:https://doi.org/10.1016/j.neucom.2021.01.034
发表于:Neurocomputing 2021
Abstract
边缘质量是准确显著目标检测成功与否的关键因素。目前已经有许多基于边缘引导的方法被提出以改善边缘质量,然而由于缺乏对多级特征融合与多类特征聚合的综合考虑,效果往往不尽人意。为了解决这个问题,我们提出了一个新颖的双向协作网络(BCNet),其将有效的多级特征融合与多类特征聚合整合到一个统一的边缘引导SOD框架中。具体来说,我们首先利用多个一致显著性最大化(CSM)模块,在一个自上而下的渐进路径中传播最高层的语义特征,以生成全局边缘表征和一系列区域表征。然后,利用多个边界特征融合(BFF)模块来利用边缘表征以细化区域特征。CSM与BFF模块实现了鲁棒的多级特征聚合与多类特征融合,只需要少量的额外运算,最终计算效率较高。最后,BCNet用端到端的方式以边缘损失和区域损失进行联合训练。我们在五个具有挑战性的基准数据集上与17个SOTA进行了广泛的比较。由于使用了CSM与BFF模块,我们的BCNet在检测精度与处理速度上均超过了现有的基于深度学习的SOD方法,尤其是最新的基于边缘引导的方法。
I. Motivation
现有SOD方法存在两大问题:
- 难以将显著目标从复杂背景中分离出来
- 显著目标边缘处的检测效果往往不好
第一个问题一般可以采用多级特征融合来解决,而第二个问题可以采用边缘感知方法来解决。文中的一个观点是,目前大多数方法只专注于解决这两个问题中的一个,要么用了多级特征融合而没用边缘感知,要么用了边缘感知而没用多级特征融合。
具体来说的话,对于第二种问题,目前的边缘感知方法大致可以分为这么四类:
- a: 只设计一个单独的edge loss,来加强网络对显著目标边缘信息的监督
- b: 将学到的边缘预测结果来细化SOD预测结果
- c: 将学到的各级边缘特征与各级显著性特征进行融合
- d: 将学到的最终边缘特征来对各级显著性特征进行细化
II. Network Architecture
采用Encoder(VGG 16)-Decoder架构。为了后文分析方便,记Encoder提取到的特征为
{
D
(
i
)
,
i
=
1
,
…
,
5
}
\left\{D^{(i)}, i=1, \ldots, 5\right\}
{D(i),i=1,…,5}。
III. Consistency Saliency Maximization
Consistency Saliency Maximization,一致显著性最大化,其本质上属于一种空间注意力机制,用来对Encoder的各级输出特征进行处理。 CSM的结构如下所示:
从作用来讲,这个东西还是用来做特征融合的,那么更好的特征融合往往就伴随着注意力机制的处理。输入包含三个部分:
D
(
5
)
D^{(5)}
D(5),
D
(
i
)
D^{(i)}
D(i),
M
(
i
+
1
)
M^{(i+1)}
M(i+1),注意如果是第一个或最后一个CSM那么是没有
M
(
i
+
1
)
M^{(i+1)}
M(i+1)的。
首先,将全局特征
D
(
5
)
D^{(5)}
D(5),局部特征
D
(
i
)
D^{(i)}
D(i)进行ele-wise add。记此时叠加得到的特征为
X
(
i
)
X^{(i)}
X(i)(这里的i表示第i个模块CSM-i)。然后,对于
X
(
i
)
X^{(i)}
X(i),按通道求最大值与平均值,得到
V
max
(
i
)
V_{\text {max}}^{(i)}
Vmax(i),
V
mean
(
i
)
V_{\text {mean}}^{(i)}
Vmean(i),有:
V
mean
(
i
)
(
n
)
=
1
C
∑
j
=
1
C
X
j
(
i
)
(
n
)
V
max
(
i
)
(
n
)
=
max
j
=
1
…
C
X
j
(
i
)
(
n
)
\begin{aligned} &V_{\text {mean }}^{(i)}(n)=\frac{1}{C} \sum_{j=1}^{C} X_{j}^{(i)}(n) \\ &V_{\max }^{(i)}(n)=\max _{j=1 \ldots C} X_{j}^{(i)}(n) \end{aligned}
Vmean (i)(n)=C1j=1∑CXj(i)(n)Vmax(i)(n)=j=1…CmaxXj(i)(n) 其中
C
C
C为通道数,
j
j
j为通道下标,
n
n
n为空间下标。
V
max
(
i
)
V_{\text {max}}^{(i)}
Vmax(i)保留了显著区域的特征(有点类似于max-pool的思想,用一个像素作为多个像素的代表),而
V
mean
(
i
)
V_{\text {mean}}^{(i)}
Vmean(i)保留的是区域的平均特征(同上,类似于average-pool)。
为了结合这两者的优势,对
V
max
(
i
)
V_{\text {max}}^{(i)}
Vmax(i)与
V
mean
(
i
)
V_{\text {mean}}^{(i)}
Vmean(i)做channel-wise concat,然后再通过一个7×7卷积压回单通道(用7×7是为了保证更大的感受野),最后用sigmoid激活函数将结果压到0~1区间内,得到Attention Map(文中称为Coordination Map):
V
(
i
)
=
σ
(
G
7
×
7
(
Cat
(
V
max
(
i
)
,
V
mean
(
i
)
)
)
)
V^{(i)}=\sigma\left(G_{7 \times 7}\left(\operatorname{Cat}\left(V_{\max }^{(i)}, V_{\text {mean }}^{(i)}\right)\right)\right)
V(i)=σ(G7×7(Cat(Vmax(i),Vmean (i))))
然后将注意力图与原输出
X
(
i
)
X^{(i)}
X(i)进行element-wise乘,便可以得到经注意力处理的特征:
M
(
i
)
=
V
(
i
)
⊗
X
(
i
)
M^{(i)}=V^{(i)} \otimes X^{(i)}
M(i)=V(i)⊗X(i) 总的来说这个模块的思想就在于用Max Pool与Average Pool来做Spatial Attention,理论依据就在于这两种池化所捕捉的信息维度不同[1]。
IV. Bounded Feature Fusion
BFF是用来更好地融合边缘信息与区域信息的,长这样:
既然是融合,那么还是先将全局特征
M
(
i
)
M^{(i)}
M(i)与边缘特征
M
e
d
g
e
M_{edge}
Medge做个ele-wise add。然后,将得到的特征送入一个卷积层进行Extraction:
ϕ
(
M
edge
⊕
M
(
i
)
)
\phi\left(M_{\text {edge }} \oplus M^{(i)}\right)
ϕ(Medge ⊕M(i)) 然后再将其与原始的全局特征边缘特征进行相加:
S
c
p
(
i
)
=
ϕ
(
M
edge
⊕
M
(
i
)
)
⊕
M
edge
⊕
M
(
i
)
S_{c p}^{(i)}=\phi\left(M_{\text {edge }} \oplus M^{(i)}\right) \oplus M_{\text {edge }} \oplus M^{(i)}
Scp(i)=ϕ(Medge ⊕M(i))⊕Medge ⊕M(i) 得到初步融合后的特征。接下来本文采用了SENet中的feature re-weighting[2]思想,生成一个feature re-weighting向量
S
ecp
(
i
)
S_{\text {ecp }}^{(i)}
Secp (i)来进行通道注意力:
S
ecp
(
i
)
=
σ
(
G
α
(
P
avg
(
S
c
p
(
i
)
)
)
)
S_{\text {ecp }}^{(i)}=\sigma\left(G_{\alpha}\left(P_{\text {avg }}\left(S_{c p}^{(i)}\right)\right)\right)
Secp (i)=σ(Gα(Pavg (Scp(i)))) 这里有意思的一点是SE Block原始实现为一个全局平均池化后接两个全连接层,而这里把两个全连接层换成了两个1×1卷积。最后用残差的方式将注意力向量与原输入进行element-wise乘,便可以得到经注意力处理的特征:
S
(
i
)
=
S
c
p
(
i
)
⊕
(
S
eср
(
i
)
⊗
S
c
p
(
i
)
)
S^{(i)}=S_{c p}^{(i)} \oplus\left(S_{\text {eср }}^{(i)} \otimes S_{c p}^{(i)}\right)
S(i)=Scp(i)⊕(Seср (i)⊗Scp(i))
V. Loss
本文作为一种edge-guided network,其损失为区域损失与边缘损失的结合:
L
total
=
L
edge
(
S
C
S
M
−
1
,
G
e
)
+
L
region
(
S
final
,
G
r
)
+
∑
i
=
2
5
L
region
(
S
C
S
M
−
i
,
G
r
)
+
∑
i
=
2
5
L
region
(
S
B
F
F
−
i
,
G
r
)
\mathcal{L}_{\text {total }}=\mathcal{L}_{\text {edge }}\left(S^{\mathrm{CSM}-1}, G_{e}\right)+\mathcal{L}_{\text {region }}\left(S^{\text {final }}, G_{r}\right) +\sum_{i=2}^{5} \mathcal{L}_{\text {region }}\left(S^{\mathrm{CSM}-i}, G_{r}\right)+\sum_{i=2}^{5} \mathcal{L}_{\text {region }}\left(S^{\mathrm{BFF}-i}, G_{r}\right)
Ltotal =Ledge (SCSM−1,Ge)+Lregion (Sfinal ,Gr)+i=2∑5Lregion (SCSM−i,Gr)+i=2∑5Lregion (SBFF−i,Gr) 边缘损失用的是class-balanced bce loss,用于解决前后景像素不均衡的问题;而区域损失则用的是传统的bce loss。注意这里的edge map是用Canny算子算出来的。
VI. Experiment
性能超越了16个最近模型,包括DHS(CVPR 2016)、UCF(ICCV 2017)、AMU(ICCV 2017)、FSN(ICCV 2017)、NLDF(CVPR 2017)、SRM(ICCV 2017)、MSRN(CVPR 2017)、C2S(ECCV 2018)、DGRL(CVPR 2018)、PICA(CVPR 2018)、PAGR(CVPR 2018)、GFLN(ICCV 2019)、AF(CVPR 2019)、BASNet(CVPR 2019)、CPD(CVPR 2019)、MLM(CVPR 2019)、PoolNet(CVPR 2019)。
VII. Summary
本文读完的一个疑惑之点在于标题中的"bidirectional"体现在何处,可能文中某处有提到但是也没有进行特别的分析说明。而对于创新点,本文集中在如何对融合操作进行后处理上,也就是应用注意力机制。CSM作为一种空间注意力机制,亮点在于引入了最大池化与平均池化的思想,而非传统地仅通过一个卷积层来计算空间注意力图;BFF作为一种通道注意力机制,其自身定位为SE Block的改进,将GAP-FC-FC结构改成了GAP-Conv-Conv,并引入了残差连接,在SOD任务上相比使用SE Block,有了一定的性能提升。此外还有一点就是可能是由于采用了VGG backbone,本文网络可以以52fps的速度做到实时运行。
Ref
[1] S. Zagoruyko, N. Komodakis, Paying more attention to attention: improving the performance of convolutional neural networks via attention transfer, in: ICLR, 2017.
[2] J. Hu, L. Shen, G. Sun, Squeeze-and-excitation networks, in: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018, pp. 7132–7141.