【语义分割】Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Agg

Decoders Matter for Semantic Segmentation:Data-Dependent Decoding Enables Flexible Feature Aggregation

https://www.yuque.com/lart/papersgit

image.png

动机

image.png

语义分割领域最经常使用的编解码方案中, 上采样是一个重要的环节, 用来恢复分辨率. 经常使用的是, 双线性插值和卷积的配合. 相较于具备必定的棋盘效应的转置卷积, 双线性插值简单快捷, 并且配合后续卷积, 也能够实现和转置卷积相似的效果, 而其余的方法, 如外围补零, 则是会引入过多的冗余无用信息(我的理解, 这个操做在UNet中使用了).github

还有一种方案是扩张卷积为主的方案, 早期的deeplab设计中使用的. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs.
常见的上采样方式: https://github.com/lartpang/Machine-Deep-Learning/issues/25#issuecomment-448911117算法

以当前最优秀的语义分割网络deeplabv3+的结构为例(结合扩张卷积与编解码结构的方案). 能够看见, 为了恢复通过下采样以后特征图, 使用了不少的双线性插值.安全

为了进一步提高当前研究的效果水平, 人们的研究通常是两个方向, 一个是创新, 一个是改进, 固然后者居多. 当前的进步更可能是使用了第二个思路, 可是"改进"的思路却也是最让后来的研究者人找到方向的, 也是通常研究者更愿意作的事情. 这篇文章, 就作的是改进的工做.网络

他们把目光放在了这个最多见的上采样过程上. 文章重点考虑了双线性插值所带来的问题: 过简单的双线性上采样的一个缺点是, 其在准确恢复像素预测方面的能力有限. 双线性上采样不考虑每一个像素的预测之间的相关性,由于它是数据独立的.框架

所以,卷积解码器被须要来产生相对较高分辨率的特征图, 以便得到良好的最终预测. 可是这个须要也会致使两个问题:ide

  1. 编码的总体步长必须经过使用多个扩张卷积来进行很是大的下降. 代价是更高的计算复杂性和内存占用,阻碍了大量数据的训练过程和实时应用的部署. 例如deeplabv3+就很慢. (扩张卷积的主要缺点是计算复杂度和更大的内存需求, 由于这些卷积核的大小以及结果的特征映射变得更大.)
  2. 解码器须要融合来自更低层级的特征. 因为双线性上采样能力的不足, 致使最终预测的精细程度, 主要由更低层级的特征的分辨率占据主导地位. 结果, 为了产生高分辨率预测, 解码器必须将高分辨率特征置于低级层次上, 这样的约束限制缩小了特征聚合的设计空间, 所以可能致使次优的特征组合在解码器中被聚合.

实验代表,在不考虑特征映射分辨率约束的状况下,能够设计出更好的特征聚合策略。
虽然当前不少工做已经花费了不少精力来设计更好的解码器, 但到目前为止, 它们几乎都不能绕过对融合特征的分辨率的限制以及很难更好地进行特征聚合.函数

贡献

为了处理这些问题, 文章提出了一个可学习的"上采样"模块: DUpsamling. 来替换被普遍使用的双线性插值上采样方法, 恢复特征图的分辨率. 来利用分割标签空间的冗余, 以及准确的恢复像素级预测. 减小了对卷积解码器的精确响应的须要. 所以, 编码器再也不须要过分减小其总体步幅, 从而大大减小整个分割框架的计算时间和内存占用.性能

image.png

同时, 因为 DUpsampling 的有效性, 它容许解码器在合并以前将融合的特征降采样到特征映射的最低分辨率. 这种下行采样不只减小了解码器的计算量, 更重要的是它将融合特征的分辨率和最终预测的分辨率解耦. 这种解耦使解码器可以利用任意特征聚合, 从而能够利用更好的特征聚合, 从而尽量提升分割性能.学习

最后, DUpsampling能够经过标准的 1x1 卷积无缝地合并到网络中, 所以不须要ad-hoc编码. (也就是不须要专门为了使用它而设计网络)

Ad-Hoc,wiki的定义是: 是拉丁文经常使用短语中的一个短语. 意思是“特设的、特定目的的、即席的、临时的、将就的、专案的”. 一般用来形容一些特殊的、不能用于其它方面的的,为一个特定的问题、任务而专门设定的解决方案。
https://zhuanlan.zhihu.com/p/24268597

整体而言, 贡献为提出了一种新的解码器方案:

  1. 提出了一种简单而有效的数据依赖上采样 (DUpsampling) 方法, 从卷积解码器的粗略输出中恢复像素级分割预测, 替换之前方法中普遍使用的效果较差的双线性.
  2. 利用提出的 DUpsampling, 能够避免过分减小编码器的总体步幅, 显著减小了语义分割方法的计算时间和内存占用 3 倍左右.
  3. DUpsampling 还容许解码器将融合的特征在融合它们以前, 降采样到特征图的最低分辨率.下采样不只减小了解码器的计算量, 大大扩大了特征聚合的设计空间, 使得解码器可以利用更好的特征聚合.

重建偏差

image.png

一个重要的观察是, 图片的语义分割标签Y并非独立同分布的(i.i.d, 也就是互相有依赖), 其中包含着结构信息, 以致于Y能够被压缩而不会形成太大的损失. 所以, 这里不像以前的文章上采样编码器卷积输出F到标签真值F大小, 文章中选择压缩标签真值Y(HxWxC, 已经通过one-hot编码处理, 一个像素只有一个通道对应的类别位置标记为1)到Ywide, 其size和F(Hwide x Wwide x Cwide)一致. 为了更好的进行这个转换, 保证转换中损失更少的信息, 这里设定一个重建偏差. 压缩的方法是:

  1. 对于原始的F(HxWxC)使用大小为rxr的滑窗处理(这有些相似于pooling操做, 可能还会须要padding操做), 提取数据, 得到一个个的(rxrxC)大小的数据块.
  2. 以后各自reshape为大小为1xN(N=rxrxC)的张量
  3. 再进行纬度的压缩, 从1xN变为1xCwide, 能够认为是一个1x1的卷积操做. 全部的H/r x W/r 个数据块对应的张量组合获得最终的压缩数据Ywide.

感受能够直接使用kernel_size=stride的卷积操做来实现. 不知道有没有差别.

关于这个重建偏差(重建偏差也就是要保证变换以后在进行一次反变换后, 与原始信息的差别程度)的计算, 文中给出计算方法:

对于压缩后的数据(1xCwide的那个张量)的反变换(正变换矩阵与反变换矩阵(又称为重建矩阵))后的结果(1xN大小张量)与原始数据(1xN大小的那个张量)使用平方偏差累和进行偏差计算. 优化目标函数:

image.png

这个优化问题, 能够利用迭代的标准SGD算法优化. 同时, 这里提到, 使用正交约束, 能够简单的使用PCA来获得这个目标的闭式解.(确实这里很像PCA降维)

损失函数

在网络训练的时候, 要计算损失, 这里考虑了两种计算方法, 后者更为直接:

  1. 使用压缩后的Ywide做为真值来监督生成的F, 使用L2损失计算.
    1. image.png
  2. 使用未压缩的Y来做为真值来监督恢复分辨率的(softmax(DUpsample(F)))的特征图.
    1. image.png

数据依赖上采样

对于前面的方法2, 使用了 DUpsample(数据依赖上采样)替换了原始的双线性上采样.

这里提出的方法相同于在空间维度上应用1x1卷积(可使用空间上的1x1卷积实现), 卷积核存储在W里, 也就是前面优化目标函数中的反变换矩阵.

因此这里实际上就没有用到前面那些, 直接就是使用了提出的这个DUpsample操做, 计算最后的损失便可, 前面的公式都没用. 没有体会到做者的意思, 这里的上采样滤波器是前面计算好的.
因此说, 主要用到的公式是这里的第二个损失和前面的目标函数.

除了上面提出的线性上采样, 文章还使用非线性自编码器进行了上采样实验. 对自编码器的训练也是为了最大限度地减小重建损失, 而且比线性状况下更通用. 经验上观察到最终的**语义预测精度几乎与使用更简单的线性重建手段是相同的. 所以文章主要关注与线性重建方法.

image.png

这里提出的上采样操做有点相似于超分辨率重建任务中的亚像素卷积的操做. 最简单的线性形式的 DUpsample 能够被视为一个使用了预计算上采样滤波器的改进 Depth-to-SpaceSub-pixel.

  • Depth-to-Space和Sub-pixel一般为了不产生太多的可训练参数致使优化困难, 会使用适度的上采样比例(例如4)来提高输入分辨率.
  • 相反, 文中方法中的上采样滤波器是预先计算的. 若是须要, 上采样的比例能够很是大(例如16 或 32).

image.png
亚像素卷积层, 图片来自: https://blog.csdn.net/antkillerfarm/article/details/79956241

自适应温度Softmax

虽然能够经过1x1卷积操做实现DUpsampling, 但直接将其合并到框架中会遇到优化困难, 文章认为, 由于W是利用one-hot编码后的Y来计算的, 原始softmax和提出的DUpsample的计算, 很难产生较为锐利的激活.结果致使交叉熵损失在训练中被卡住, 使得训练过程收敛很慢.

image.png

为了解决这个问题, 这里使用了Hinton著名论文 Distilling the knowledge in a neural network 里提到的"温度"的概念. 对softmax添加了一个"温度"T的参数, 来锐利/软化softmax的激活.这个参数T能够再反向传播中自动学习, 无需调整.
image.png

灵活的集成策略

image.png

对比以往的结构使用的集成策略:

image.png

这里的F是最终的双线性上采样/DUpsample以前的卷积输出(此时经过这些上采样能够获得最终像素级预测)

先对生成的特征图进行上采样, 再结合较低层级的高分辨率特征信息. 这样的设计主要有两个问题:

  1. f(CNN计算)在上采样以后计算, 因为f的计算量依赖于输入的空间大小, 这样的安排会致使解码器计算上的抵效, 此外,计算开销阻碍了解码器利用低层级的特征.
  2. 融合的低级特征的分辨率与F的分辨率相等, 因为没法使用双线性产生最终像素预测, 所以一般约为最终预测的1/4分辨率. 为了得到高分辨率预测, 解码器只能选择具备高分辨率低级特征的特征聚合。

相反, 在提出的框架中, 恢复全分辨率预测的责任在很大程度上已经转移到DUpsampling.所以, 能够安全地下采样要使用的任何级别的低层特征到最后一个特征图Flast的分辨率(特征图的最低分辨率), 而后融合这些特性以产生最终的预测. 表示为:

image.png

文章中使用双线性下采样.

这种重排不只使特征始终以最低分辨率高效计算,并且还使底层特征 Fi 和最终分割预测的分辨率分离, 容许任何级别的功能进行融合.

在实验中展现了灵活的特征融合使机制可以利用更好的特征融合, 以尽量提升分割性能.

只有在与上述 DUpsampling 合做时, 下采样低级特征的方案才能工做. 不然, 性能是由解码器的incapable上采样方法的上界所限定的. 这就是为何之前的方法须要上采样 低分辨率的高级特征图 到融合的低层特征映射的空间大小.

以前的上采样后解码主要是由于上采样方法会限制住最终的性能, 因此更不能使用下采样低级特征的方案, 会使得性能更加被限制.

效果

image.png

image.png

image.png

In order to understand how the fusion works, we visualize the segmentation results with and without low-level features in Fig. 4. Intuitively, the one fusing low-level features yields more consistent segmentation, which suggests the downsampled low-level features are still able to refine the segmentation prediction substantially.

image.png

image.png

image.png

总结

提出了一种灵活、轻便的语义图像分割方案. 这种新型解码器采用提出的数据依赖上采样产生像素预测.

  • 这消除了从底层 CNNs 计算效率低下的高分辨率特征图的须要, 并将融合的低级特征和最终预测的分辨率分离.
  • 这种解耦扩展了解码器特征汇集的设计空间, 使得几乎任意的特征汇集被利用来尽量提升分割性能.
  • 同时, 本文提出的解码器避免了将低分辨率高级特征图向上采样回高分辨率低层特征映射的空间大小, 大大下降了解码器的计算量.

实验代表, 与以往语义分割方法中普遍使用的普通解码器相比, 提出的解码器具备有效性和高效性。最后, 与提出的解码器的框架达到了最早进的性能, 同时须要比之前的最早进的方法更少的计算.

相关文章
相关标签/搜索