本文由电子科技大、中科院信息所、Inception人工智能研究所、北航数字媒体重点实验室
共同完成,发表于CVPR2019
.
论文地址:Building Detail-Sensitive Semantic Segmentation Networks with Polynomial Pooling
项目代码尚未开源…
背景
语义分割是计算机视觉领域的中要任务,它试图为输入图像的每一个像素点标定一个语义标签。在训练一个语义分割模型时,常用的做法是在微调在大规模数据集上进行预训练的分类模型。但是分类模型其本身固有的对空间扰动的不变性丢失了空间信息,使得分割结果难以提升。而标准的池化操作是造成这种不变性的关键因素。最常用的池化方式是max-pooling、ave-pooling
.前者增加这种不变性同时增加网络的非线性。而均值池化则对空间信息较为敏感,但是是一个线性变换。对于语义分割任务,应该尽可能的保证局部区域特征的细节以及保有一定的非线性以增加网络功能的复杂性
.
本文的作者就提出一种新的池化操作P-pooling多项式池化
,它能平衡最大池化和均值池化,为语义分割任务提供最佳且自我调整的池化策略。
文中所提出的P-pooling
是可微的,并且可以被应用于一系列预训练网络中,
作者在PASCAL VOC 、Cityscapes、ADE20K
三个数据集上的实验证实这种池化方式是有效的。
作者认为,对于池化操作而言,应该:
- 对细微的空间扰动敏感
- 具有高度的非线性能够扩展网络性能
P-pooling
有如下几个特点: - 是非线性与细节敏感度之间的最佳平衡
- 可微允许端到端训练
- 具有足够的灵活性,并且可针对各种数据进行动态调整
- 兼容所有与训练的分类模型
Polynomial Pooling
对于给定输入特征
X
X
X,其输出特征为
Y
Y
Y。输出特征
Y
Y
Y上的第
j
j
j个元素
y
j
y_j
yj是
X
X
X上的第
j
j
j个池化区域.
R
j
=
x
1
,
x
2
,
.
.
.
,
x
N
R_j={x_1,x_2,...,x_N}
Rj=x1,x2,...,xN。
文中所谓的P-pooling
其算式如下:
y
j
=
f
p
(
R
j
)
=
∑
x
i
∈
R
j
x
i
α
+
1
∑
x
i
∈
R
j
x
i
α
y_{j}=f_{p}\left(R_{j}\right)=\frac{\sum_{x_{i} \in R_{j}} x_{i}^{\alpha+1}}{\sum_{x_{i} \in R_{j}} x_{i}^{\alpha}}
yj=fp(Rj)=∑xi∈Rjxiα∑xi∈Rjxiα+1
在极少数情况下,图像中的进行池化的特征不可避免的有负数的情况,所以作者稍微调整了上面的公式:
y
j
=
f
^
p
(
R
j
)
=
f
p
(
R
j
−
x
min
)
+
x
min
y_{j}=\hat{f}_{p}\left(R_{j}\right)=f_{p}\left(R_{j}-x_{\min }\right)+x_{\min }
yj=f^p(Rj)=fp(Rj−xmin)+xmin
后面作者给出证明介绍为什么说他提出的P-pooling
能够满足上面结合空间扰动和非线性变换的。主要是几张图。
当
α
=
0
时
\alpha=0时
α=0时,P-pooling
等价于ave-pooling
.
当
α
→
+
∞
\alpha \rightarrow+\infty
α→+∞时,P-pooling
表现为max-pooling
.
这两句的证明过程,作者说放在supplementary file
中了,但是文末并没有这个证明。
从第二张图中看出,在
α
=
2
\alpha=2
α=2时,的确P=pooling
的效果确实兼顾了max-pooling
和ave-pooling
.
可微证明:
实验结果
先是对比了三个不同数据集下,不同池化方式对VGG-16、ResNet50
的性能差异,表明P-pooling
确实有提升。
后面又对SOTA
模型使用P-pooling
,得到的结果也比较好.【这里的SOTA是2017年的,作者并没有对这三个数据集下的SOTA进行测试,此外由于基础模型的构造不一致,所以在使用P-pooling
操作时,对原有模型需要进行适当的修正,这里不一一细表】:
思考
P-pooling
中的
α
\alpha
α在实验过程中没有给出,但是从作者对其他池化方式,如
L
p
−
n
o
r
m
、
G
a
t
e
d
p
o
o
l
i
n
g
L_p-norm、Gated pooling
Lp−norm、Gatedpooling的描述中,推测这里的
α
\alpha
α是在模型训练过程中可以学习的。