『写在前面』
语义分割轻量级网络。
论文出处:ECCV 2018
作者机构:Changqian Yu等,华中科技大学
目录
3 Bilateral Segmentation Network
摘要
BiSeNet主要由两条路径组成:
- Spatial Path:通过小stride卷积学习空间信息,生成高分辨率的特征;针对空间信息缺失,目标是“浅而宽”
- Context Path:通过迅速下采样以得到较大感受野;针对感受野的缩小,重点是轻量
最后,通过特征融合模块(FFM)来结合上面两条path的特征。
1 介绍
为了提高语义分割模型的实时性,现有的大多数模型主要从以下几个方面入手(如下图所示):
- Resize Input:通过裁剪和缩放限制输入图像大小
- Network Pruning:在模型早起缩小通道数
- Drop Stage: 抛弃模型最后的下采样阶段等(eg: ENet)
这样的方法会引起信息的严重缺失,为了改善这样的问题,出现了U型网络(如下图)。但U型网络也有缺点:
- 在模型初期,也就是高分辨率的feature map上引入了额外了连接,会加大计算量
- 通过简单的上采样并不能很好地恢复空间信息
基于上述讨论,本文提出双边分割网络BiSeNet:
- SP通过3层卷积层,获得1/8的feature map;
- CP通过在Xception后面加上全局平均池化,来捕捉大感受野的上下文信息。
为了在不影响效率的情况下提高模型准确率,还引入了特征融合模块(FFM)和注意力模块(ARM)。
2 相关工作
state-of-the-art方法大多基于FCN改进,工作重点旨在编码更多空间信息和扩大感受野。
【空间信息提取】传统CNN通过不断缩小feature map尺寸,提取high level的语义信息。但在语义分割任务上,空间信息对于预测详细输出是很重要的,尺寸小了,分割精细程度就不会太理想。所以现在的方法都在致力于如何更好地编码空间信息,主要有两种途径:DeepLab/PSPNet/DUC所采用的膨胀卷积,GCN所采用的large kernel。
【U型网络】U-net类方法,通过Deconv和跳跃连接来帮助恢复空间信息,但其实有一些丢失的空间信息还是很难通过这样的方法恢复出来的。
【上下文信息提取】扩大感受野或融合不同上下文信息来提高语义分割效果。常见的方法有:使用不同大小的膨胀卷积核(如ASPP)、使用多个不同大小的平均池化层(如PSPNet)、尺度自适应卷积、全局池化等(如DFN)。
【注意力机制】使用high-level信息来指导网络的前向运算,如SENet。DFN也基于该思想,将全局上下文作为注意力,然后使用它指导feature的学习和传递。
【其他实时分割模型】SegNet、E-Net、ICNet。
3 Bilateral Segmentation Network
3.1 Spatial path
- 空间信息的提取和感受野的大小对语义分割的效果影响甚重
- SP旨在更好地提取空间信息。如图所示,SP通过3个卷积层将feature map压缩到输入图像尺寸的1/8
- 每个卷积由1个stride=2的卷积、1个BN层和1个ReLU激活构成
- 因为只将尺寸压缩到了1/8,相对来说尺寸还是比较大的,所以可以保留有较为丰富的空间信息
3.2 Context path
- CP旨在提供更大的感受野
- 基于轻量模型Xception,在其最后输出层之后加了一个全局平均池化,它的输出可以提供包含全局上下文信息的最大感受野
- 最后,对全局平均池化输出的feature进行上采样,并与轻量模型前几级的feature进行组合,类似U型网络,但不对称(不完整的U)
- 注意力强化模块(ARM):通过全局平均池化来捕捉上下文信息,并基于此学习一个Attention向量,以此来指导特征学习。换句话说,就是多添了一个分支 ,用来学习一个权值向量,来表征输入feature map各个通道的权重。如图所示,ARM只涉及到1x1卷积和全局pooling,相对来说计算量还是很小的,可以忽略不计。
3.3 网络结构
特征融合模块(FFM)
FFM对SP(low level)和CP(high level)的信息进行融合,考虑到特征层次的差异,借鉴SENet的思想(Attention),学习一个权重向量,对拼接后的feature map重新进行加权,相当于进行了一次特征的选择和组合。
损失函数
引入辅助损失函数,以监督CP中的输出。损失函数都用的Softmax。
- 第一部分是主损失函数,用来监督整个网络的输出;
- 第二部分是CP的辅助损失,Xi表示Xception中第i个stage输出的feature map。
通过超参数α来平衡两部分loss。