Decoders Matter for Semantic Segmentation:Data-Dependent Decoding...论文阅读/翻译

Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregation论文阅读&翻译

论文地址

论文链接:
paper.
源码连接:
code.

Abstract

语义分割的方法中经常使用encoder-decoder结构获得预测结果。这种过于简单且与数据无关的双线性上采样可能导致获得的不是最优的结果。
作者提出了DUpsampling代替双线性,它充分利用标签空间的冗余并且能在CNN输出的低分输出复原逐元素预测。这可以通过以下步骤实现:1)新的上采样层大大提高了重建能力;2)基于DUpsampling的解码器具有灵活性,可以充分利用CNN编码器特征的任意组合。

Introduction

在原来的FCN中,多个卷积和池化操作通常将最终图像预测降低32倍,这样在是在对象边界处,会丢失精细的图像结构信息并导致不正确的预测。encoder-decoder结构被用来解决这个问题。它将主干CNN视为encoder,负责将原始输入图像编码为较低分辨率的特征图。之后,使用decoder从较低分辨率的特征图中恢复逐像素预测,decoder通常包含卷积和双线性上采样。下图是deeplavv3+结构图:
Decoders Matter for Semantic Segmentation:Data-Dependent Decoding...论文阅读/翻译
双线性上采样过于简单并且它是数据无关的。卷积decoder需要产生相对高分辨率的特征图,才能获得良好的预测结果。总结起来有两个问题:
(1)使用空洞卷积,减少encoder中整体的步长。代价是计算量变大,训更大的数据或实际部署时有困难。
(2)需要decoder要以非常快的速度融合低级特征。这缩小了特征聚合的设计空间,因此很可能导致在解码器中聚合特征的次优组合。
作者提出了DUpsampling代替上采样过程。DUpsampling利用了分割标签空间中的冗余,并被证明能够从相对较粗糙的CNN输出中准确地恢复逐像素预测,从而减轻了卷积decoder对精确特征图的需求。而且不需要encoder过度减小其总体步幅,从而大大减少了整个分割框架的计算时间和内存占用量。 由于DUpsampling的高效,它允许decoder在合并融合特征之前将融合特征降采样为特征图的最低分辨率。它使融合特征的分辨率与最终预测的分辨率脱钩。 这种解耦使解码器可以利用任意地进行特征聚合,因此可以用更好的特征聚合的方式尽可能提高分割性能。
最后,DUpsampling可以通过标准的1×1卷积无缝集成到网络中,因此不需要点对点编码。
整体框架:
Decoders Matter for Semantic Segmentation:Data-Dependent Decoding...论文阅读/翻译

Our Approach

首先使用DUpsampling重新构造语义分割,然后提出adaptive-temperature的softmax函数,这使得使用DUsampling进行训练变得更加容易。 最后,展示了如何通过融合降采样的低级特征来改善该框架。

Beyond Bilinear: Data-dependent Upsampling

这部分考虑最简单的decoder,只由上采样组成。令FRH~×W~×C~F\in R^{\widetilde H \times \widetilde W\times \widetilde C }是CNN 编码器的输出,Y{0,1,2...C}H×WY\in \{0,1,2...C\} ^{H\times W}为ground truth。YY通常使用one-hot进行编码,例如Y{0,1}H×W×CY\in \{0,1\} ^{H\times W\times C}FF通常是YY的空间大小的16或32分之一。由于语义分割需要每个像素的预测,因此在计算训练损失之前,需要将FF上采样到YY的空间大小。
训练时损失函数公式为:
L(F,Y)=Loss(softmax(bilinear(F)),Y)L(F,Y)=Loss(softmax(bilinear(F)),Y)
在这里,损失通常是交叉熵损失,并且使用双线性将FF上采样到YY的空间大小。作者认为,双线性解采样可能不是此处的最佳选择。双线性过于简单,在重构方面的上限较低。 为了补偿双线性所造成的损失,因此需要使用所使用的深度网络来输出更高分辨率的特征图,并将其输入到双线性操作中。
有一个很重要的观察是一张图像的标签YY不是独立同分布的,因此YY可以无损压缩。作者选择将Y压缩至Y~RH~×W~×C~\widetilde Y\in R^{\widetilde H \times \widetilde W\times \widetilde C },然后再FFY~\widetilde Y计算损失。
为了将YY压缩为Y~\widetilde Y,我们通过某种度量来最小化YYY~\widetilde Y之间的重构误差。 特别地,rr表示HHH~\widetilde H的比率。接下来,将YY划分为大小为r×rr×r的子窗口的Hr×Wr\frac{H}{r} \times \frac{W}{r}网格。每个子网格S{0,1}r×r×CS\in \{0,1\}^{r\times r\times C},再把SS 重塑成一个向量v{0,1}N,N=r×r×Cv\in \{0,1\}^N,N=r\times r\times C,最终将vv压缩成一个低维向量xRC~x\in R^{\widetilde C},然后垂直和水平堆叠所有xx形成Y~\widetilde Y。尽管可以使用多种方法来实现压缩,但是作者发现简单地使用线性投影,即在这种情况下将vv与矩阵PRC~×NP\in R^{\widetilde C×N}相乘即可。 公式为:
x=Pv,v~=Wxx =Pv,\widetilde v=Wx
其中PRC~×NP\in R^{\widetilde C×N}用于将vv压缩为xxWRN×C~W\in R^{N×\widetilde C}是逆投影矩阵(又称重构矩阵),用于将xx重构回vvv~\widetilde v是重建的vv。在此我们省略了偏移项。 实际上,在压缩之前,通过减去训练集上的均值来使vv居中。可以通过最小化训练集上的vvv~\widetilde v之间的重构误差来找到矩阵PPWW。 公式为:
Decoders Matter for Semantic Segmentation:Data-Dependent Decoding...论文阅读/翻译
可以使用标准随机梯度下降(SGD)来迭代优化此目标。 有了正交性约束,我们可以简单地使用主成分分析(PCA)来实现目标的闭式解决方案。
Y~\widetilde Y为目标,loss变为
L(F,Y),=FY~2L(F,Y),=||F-\widetilde Y||^2
或者,一种更直接的方法是计算YY空间中的损失。因此,我们将学习的重建矩阵W上采样FF,而不是将YY压缩为Y~\widetilde Y,然后计算解压缩后FFYY像素之间的像素分类损失:
L(F,Y)=Loss(softmax(DUpsample(F))),Y)L(F,Y)=Loss(softmax(DUpsample(F))),Y)
解压缩如图所示:
Decoders Matter for Semantic Segmentation:Data-Dependent Decoding...论文阅读/翻译

Incorporating DUpsampling with Adaptive- temperature Softmax

到目前为止,已经证明了DUpsampling可以用来代替语义分割中无法完成的双线性上采样。 下一步是将DUpsampling合并到编码器-解码器框架中,从而形成端到端的可训练系统。 虽然可以通过1×1卷积运算来实现DUpsampling,但是将其直接合并到框架中却遇到了优化困难。
可能是由于WW是用one-hot的YY计算的,我们发现常规softmax和DUpsampling的组合很难产生足够的**。 结果,交叉熵损失在训练过程中被卡住,这使得训练过程收敛缓慢。
为了解决该问题,我们改为使用带有temperaturetemperature(温度)的softmax函数,该函数将温度TT添加到softmax函数中,以增强/软化softmax的**。

softmax(zi)=exp(zi/T)exp(zi/T)softmax(z_i)=\frac{exp(z_i/T)}{\sum exp(z_i/T)}
作者发现可以使用标准的反向传播算法自动学习TT,从而无需进行调节。 实验表明,这种自适应温度softmax可使训练收敛更快,而无需引入额外的超参数。

Flexible Aggregation ofConvolutional Features

深层的CNN取得很大成功。 但是,深度也会造成语义分割必不可少的细粒度信息的丢失。 许多工作表明,结合低级卷积特征可以显着提高分割性能。
FF为最终的CNN特征图,用于通过双线性或上述DUpsampling产生最终的逐像素预测。FiF_iFlastF_{last}分别表示骨干网络{i}级的特征图和骨干网络的最后卷积特征图。为简单起见,作者专注于融合一个级别的低级功能,但是将其扩展到多级融合很简单,这也许会进一步提高性能。图1的解码器可表示为:
F=f(concat(Fi,upsample(Flast)))F=f(concat(F_i,upsample(F_{last})))
其中ff表示CNN,上采样通常是双线性的。 concat是沿通道的拼接。 如上所述,这种方式具有两个问题:(1)ff在上采样后应用。 由于ff是CNN,其计算量取决于输入特征图的空间大小,因此这种方式会使解码器的计算效率低下。 此外,计算开销会限制解码器利用很低级的特征图。(2)融合的低级特征FiF_i的分辨率等于FF的分辨率,由于无法使用双线性来生成最终的像素级预测,因此FF的分辨率通常约为最终预测的14\frac{1}{4}分辨率。 为了获得高分辨率预测,解码器只能选择具有高分辨率的低级特征进行特征聚合。
相反地,在这个框架中,恢复全分辨率预测的责任已很大程度上转移到了DUpsampling。 因此,我们可以放心地将任何级别的低级特征降采样为最后一个特征图的分辨率FlastF_{last}(特征图的最低分辨率),然后融合这些特征以产生最终预测,如整体框图中所示:
F=f(concat(downsample(Fi)),Flast)F=f(concat(downsample(F_i)),F_{last})
这里的下采样是双线性的。这种重排不仅使始终以最低分辨率有效地计算特征,而且使低级特征FiF_i的分辨率与最终分割预测的分辨率脱钩,从而可以融合任何级别的特征。
仅当与上述DUpsampling配合使用时,才能对低级特征图进行下采样。 否则,性能受解码器上采样方法的上限限制。 这就是为什么以前的方法需要将低分辨率高级特征图升采样回需要融合的低级特征图的大小的原因。