0%

轻量级语义分割网络--BiSeNet

image-20221230153835324

BiSeNet出自旷世,于ECCV2018发表,实时语义分割的双向网络。

paper name : BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

1. 要解决的问题

  • 解决之前一些轻量级语义分割算法在做算法加速时损失空间信息或者感受野缩小的问题。

2. 采用的方法

  • 提出双向(两条路)网络, 一条Spatial Path(SP), 使用Conv(stride = 2)3次,获得原图1/8尺寸的特征图,保留较为丰富的空间特征信息(较多的channel, 较浅的网络)。另一条Context Path(CP),译为上下文路径, 可以使用任意的轻量级网络,如Xception、ShuffleNet、MobileNet, 文中在 Xception 尾部附加一个全局平均池化层,其中感受野是 backbone 网络的最大值。

  • 两条网络提取的特征通过特征融合模块(Feature Fusion Module)来快速合并。

效果

  • 在 Cityscapes,CamVid 和 COCO-Stuff 数据集上达到了准确率和速度的平衡。

image-20221230163614657

设计思想

实时语义分割模型的加速主要有以下三种方法:

  • 通过剪裁或 resize 来限定输入大小,以降低计算复杂度。尽管这种方法简单而有效,空间细节的损失还是让预测打了折扣,尤其是边界部分,导致度量和可视化的精度下降;
  • 过减少网络通道数量加快处理速度,尤其是在骨干模型的早期阶段,但是这会弱化空间信息。
  • 为追求极其紧凑的框架而丢弃模型的最后阶段(比如ENet)。该方法的缺点也很明显:由于 ENet 抛弃了最后阶段的下采样,模型的感受野不足以涵盖大物体,导致判别能力较差。

这几种加速方式会丢失一些Spatial Details 或者是牺牲了Spatial Capacity(感受野), 从而导致分割精度下降, 而U-shape的方式虽然可以恢复空间信息,但又会过多的降低推理速度。

实时性语义分割算法中,加速的同时也需要重视空间信息。论文中提出了一种新的双向分割网络BiSeNet。首先,设计了一个带有小步长的空间路径来保留空间位置信息生成高分辨率的特征图;同时设计了一个带有快速下采样率的语义路径来获取客观的感受野。在这两个模块之上引入一个新的特征融合模块将二者的特征图进行融合,实现速度和精度的平衡。

BiSeNet

image-20221230164524667

1. Spatial Path

在语义分割任务中,空间分辨率和感受野很难两全,尤其是在实时语义分割的情况下,现有方法通常是利用小的输入图像或者轻量主干模型实现加速。但是小图像相较于原图像缺失了很多空间信息,而轻量级模型则由于裁剪通道而损害了空间信息。Spatial Path 包含三层,每层包含一个步幅(stride)为 2 的卷积,随后是批归一化和 ReLU。因此,该路网络提取相当于原图像 1/8 的输出特征图, 因为利用了较大尺度的特征图,所以可以编码比较丰富的空间信息。

2. Context Path

在语义分割任务中,感受野对于性能表现至关重要。为增大感受野,一些方法利用金字塔池化模块,金字塔型空洞池化(ASPP)或者 “large kernel”,但是这些操作比较耗费计算和内存,导致速度慢。出于较大感受野和较高计算效率兼得的考量,本文提出 Context Path,它充分利用轻量级模型与全局平均池化以提供大感受野。 Xception,可以快速下采样特征图以获得大感受野,编码高层语义语境信息,在轻量级模型末端添加一个全局平均池化,通过全局语境信息提供一个最大感受野。

3. Attention Refinement Module

注意力优化模块(ARM):在 Context Path 中,提出一个独特的注意力优化模块,以优化每一阶段的特征。ARM 借助全局平均池化捕获全局语境并计算注意力向量以指导特征学习。这一设计可以优化 Context Path 中每一阶段的输出特征,无需任何上采样操作即可轻易整合全局语境信息,因此,其计算成本几乎可忽略。

4. Feature Fusion Module

特征融合模块, 将两条网络提取的特征进行融合。在特征表示的层面上,两路网络的特征并不相同。因此不能简单地加权这些特征。由 Spatial Path 捕获的空间信息编码了绝大多数的丰富细节信息。而 Context Path 的输出特征主要编码语境信息。换言之,Spatial Path 的输出特征是低层级的,Context Path 的输出特征是高层级的。在特征的不同层级给定的情况下,首先连接(Concat) Spatial Path 和 Context Path 的输出特征;接着,通过批归一化平衡特征的尺度。下一步,像 SENet 一样,把相连接的特征池化为一个特征向量,并计算一个权重向量。这一权重向量可以重新加权特征,起到特征选择和结合的作用。

Reference

  1. https://zhuanlan.zhihu.com/p/141692672
  2. https://zhuanlan.zhihu.com/p/47250633
  3. https://zhuanlan.zhihu.com/p/41475332