总的概括
这篇文章是19年发表于计算机视觉和模式识别领域顶级会议CVPR上的一篇,该文章主要提出了一种不同于双线性插值的上采样方法,能够很好的建立每个像素之间预测的相关性,因此用了这个强大的上采样方法,模型能够减少对特征图分辨率的依赖,能极大的减少运算量。
1.介绍
在以往的语义分割里,双线性插值通常作为其最后一步来还原特征图的分辨率,由于非线性差值不能建立起每个像素的预测之间的关系,因此为了得到精细的结果,对特征图的分辨率要求较高,同时带来了巨额的计算量。
为了解决这个问题,本文提出了DUpsample(数据依赖上采样),能够减少采样操作对特征图分辨率的依赖,大量的减少计算量。同时得益于 DUpsample, Encoder 中的 low-level feature 能够以更小的运算量与 Decoder 中的 high-level feature 进行融合,模型结构如下所示:
我们可以看到,该网络将传统的非线性插值替换成 DUpsample,同时在 feature fuse 方面,不同于之前方法将 Decoder 中的特征上采样与 Encoder 特征融合,本工作将 Encoder 中的特征下采样与 Decoder 融合,大大减少了计算量 ,这都得益于 DUpsample。
2.方法
之前的语义分割方法使用下列公式来得到最终的损失:
其中 Loss 通常为交叉熵损失,F 为特征图,Y 为 ground truth,由于双线性插值过于简单,对特征图 F 的分辨率较高,因此引入了大量的计算。一个重要的发现是语义分割输入图像的 label Y 并不是独立同分布的,所以 Y 可以被压缩成 Y′,我们令
并且将Y划分成
的子窗口,每个子窗口的大小为 r×r,接着我们将每个子窗口
拉伸成向量
其中
随即我们将向量v压缩成低维向量x,我们使用线性投影来完成,最后我们有,
其中
用来将v压缩成x,
为 reconstruction matrix, v′为重建后的 v,我们可以用压缩后的向量 x 组合成 Y′.
矩阵 P 和矩阵 W 可以通过最小化下列式子得到:
我们可以使用梯度下降,或者在正交约束的条件下使用 PCA 求解。
使用压缩后的 Y′为目标,我们可以使用下列损失函数来预训练网络:
另一种直接的方法是在 Y 空间计算 loss,也就是并非将 Y 压缩到 Y′, 我们可以将 F 使用 W(上面预训练得到的)上采样然后计算损失,公式如下:
其中以两倍为例,DUpsample 的操作如下图所示:
我们可以用 1X1 卷积来完成上述的权重与特征相乘的过程。但是当我们将这个模块嵌入到网络时会遇到优化问题,即收敛非常慢。为了解决这个问题,因此我们使用 softmax with temperature 函数来解决这个问题,即在原始的softmax函数中添加一个temperature T:我们发现 T 可以使用梯度下降学习得到,这样减少了调试的麻烦。
有大量的工作说明,与 low-level features 结合可以显著的提升分割的精度,其做法如下:
f 是在上采样之后的卷积操作,其计算量依赖于特征图的空间大小,这样做会显著增加计算量。本文另外一个亮点在于本文的多层特征的融合不在局限于底层特征。作者将原始的特征映射都进行降采样成统一的维度,然后沿着channel的方向进行拼合:
这样做不仅保证了在低分辨率下的有效性,而且减少了计算量,同时允许任意 level feature 的融合。
只有使用了 DUpsample,上述操作才变得可行,否则语义分割的精度会被双线性插值限制。
3.实验
接下来我们设计实验说明融合不同的 low-level 特征对结果的影响,如下表所示:
可以看到我们的方法优于传统的双线性插值上采样方法。