文章目录
- 1. 摘要
- 2. 背景及相关方法
- 3. 本文方法的具体实现
- 3.1 预备知识
- 3.2 光流对齐模块
- 3.3 网络结构
- 4. 实验部分
- 4.1 消融实验
- 4.2 与其他网络的对比
- 5. 总结
论文地址:
代码地址:
1. 摘要
本文提出一种能够快速且准确的进行场景解析的有效方法。通常的方法是通过得到高分辨率的且具有丰富语义特征的特征图。比如利用空洞卷积和特征金字塔。但这些方法仍然需要较多的计算量,不够有效。从利用光流对相邻视频帧进行运动对齐的方法受到启发,本文提出一种FAW(Flow Alignment Module)的方法,来学习相邻尺度特征图之间的语义流。和FPN结构融合在一起,实现了快速又精确的结果,在 80.4% mIoU 在 Cityscapes with a frame rate of 26 FPS。 在 Cityscapes, Pascal Context, ADE20K and Camvid datasets多个数据集上实现SOTA。
2. 背景及相关方法
本文的提出所针对的问题是:
从利用光流对相邻视频帧进行运动对齐的方法受到启发,对相邻尺度的featuremap,通过学习semantic flow 进行特征对齐。
对于语义分割问题来说,主要有两种研究思路:
第一种范式是基于空洞卷积,这种方法使得能够在网络的后半部分保持较高的分辨率,比如目前的常用方法PSPNet,就是利用了一个金字塔池化模块能够输出不同尺度的上下文信息,还有DeepLab系列是利用了空洞卷积空间池化模块,也就是ASPP;
第二种范式是将高层语义特征和低层语义特征进行特征融合,比如说ICNet、DFANet等。
本文的方法是受到光流启发得到的一种语义流方法。光流其实是视频语义分割任务中常用的一种方法。为了追求更快的速度,光流被用来分流某些帧的低层特征计算量,通过利用前面帧的特征进行映射。本文方法不同于以往的方法,而是在另外一个维度上进行分层传播特征。
3. 本文方法的具体实现
3.1 预备知识
关于语义分割的基本知识这里不再赘述,而是简单介绍一下本文为何提出语义流对齐这个该概念?
语义分割中最经典也是目前仍然最常用的模型是进行encoder-decoder,首先将图像下采样到原始尺寸的1/8,1/16或是32/1,然后再进行上采样恢复到原图尺寸,整个过程看起来是对称的。但是,有一个重要的问题就在于看似很常用且简单的操作-双线性插值,实际是打破了对称性的。双线性插值在恢复下采样图像的像素时,是通过对采样位置一致的地方进行插值,实际只能解决某一种固定的且预先定义的不对齐问题。此外,由于残差连接所造成的的对不起问题更加复杂。
3.2 光流对齐模块
首先给出相邻两个特征图和
,首先将特征图
进行上采样,利用双线性插值,得到与
相同尺寸的特征图。
然后将两个特征图进行concat,再经过一个的卷积,预测出语义流场:
对于空间中的每个位置,通过上采样被映射到点
,
如下图所示:
3.3 网络结构
- Backbone:
使用ResNet系列、ShuffleNet V2、DF系列作为本文实验的backbone网络; - Contextual Module:
上下文模块在场景解析问题中是一个重要的模块,用于捕捉长距离的上下文信息。,本文使用经典的 Pyramid Pooling Module (PPM); - Aligned FPN Decoder:
该模块从encoder得到特征图,使用对齐的特征金字塔为最后一层的场景解析。使用上文中的FAM替换传统的双线性插值模块,在FPN的每个top-down回路中; - Cascaded Deeply Supervised Learning :
使用深度监督损失来监督中间输出,使得解码器更容易优化,此外,利用了在线难例挖掘对于前10%的难分的像素。
下图所示即为完整的网络结构:
4. 实验部分
4.1 消融实验
相比作为基准的FCN,本文结构增加了7.2个百分点;
相对来说,在靠后的层中加入本文的模块,具有更好的效果
不同backbone的实验结果,使用不同的backbone进行实验都具有一定的提升。
4.2 与其他网络的对比
5. 总结
本文受光流的启发,提出一种语义流对齐的方法,可以解决在使用双线性插值进行上采样时所出现的对不齐问题。