论文笔记 BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

论文笔记 BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

论文地址

1. 介绍

目前实时语义分割主要有三种方法可以加速模型,如图(a)所示

  • 限制输入的大小,通过裁剪或者调整大小来降低计算复杂性,尽管该方法简单有效,但是空间细节的丢失破坏了预测,尤其是边界附近的预测,导致度量和可视化的准确性均下降。
  • 有些工作没有调整输入图像的大小,而是修剪网络通道以提高推理速度[,尤其是在基本模型的早期阶段。但是,它削弱了空间容量,减少了网络的通道数。
  • 第三种放弃模型的最后stage,以追求一个非常紧凑的框架。
    网络对比
    为了弥补上述空间细节的损失,研究人员广泛使用了U形结构。通过融合骨干网络的层次结构特征,U形结构逐渐提高了空间分辨率并填补了一些缺失的细节。但U形结构也有以下缺点
  • 由于在高分辨率特征图上引入了额外的计算功能,因此完整的U形结构会降低模型的速度
  • 更重要的是,修剪或耕种中丢失的大多数空间信息都无法通过包含如图1(b)所示的浅层来轻松地恢复。换句话说,U形技术最好被认为是一种缓解方法,而不是必不可少的解决方案。
    本文提出了由两部分组成的双边分段网络(BiSeNet):空间路径(SP)上下文路径(CP)。这两个组件分别针对空间信息的丢失和接收场的缩小而设计。两条路径的设计理念很明确。对于空间路径,我们仅堆叠三个卷积层以获得1/8特征图,其中保留了丰富的空间细节。关于上下文路径,我们在Xception的尾部附加一个全局平均池层,其中接收字段是骨干网的最大值。图1(c)显示了这两个组件的结构。

2. 网络结构

BiSeNet网络结构

2.1 Spatial path

在语义分割的任务中,可以通过保留图像的分辨率或者使用金字塔池模块来捕获足够的接收场,因此空间信息和感受野对于实现高精度分割十分重要,但很难同时满足这两个需求。本文提出空间路径,来保存原始输入图像的空间大小并编码空间信息。空间路径包含三层。每层都包括一个stride=2的卷积,然后进行批量归一化和ReLU 。对于途中绿色网络层

2.2 Context path:

上下文路径被设计为提供足够的接收场,即有足够的感受野。为了扩大感受野,一些方法利用金子塔池化模块,或者大卷积核,这些操作需要大量计算并且占用内存,导致速度较低。本文提出的上下文路径采用轻量级模型全局平均池化提供大的感受野。在这项工作中,像Xception 这样的轻量级模型可以快速对特征图进行下采样以获得较大的接受域,该接受域对高级语义上下文信息进行编码。然后,我们在轻量级模型的尾部添加一个全局平均池,该池可以为具有全局上下文信息的最大接收场提供信息。最后,我们结合了全局池的上采样输出功能和轻量级模型的功能。在轻量模型中,我们部署U形结构以融合最后两个阶段的特征,这是不完整的U形样式。并且在提出了**注意力细化模块(ARM)**来细化每个阶段的功能。如图2(b)所示,ARM使用全局平均池来捕获全局上下文并计算注意力向量以指导功能学习。通过对每一个通道全局平均池化来提取信息,并用sigmoid计算对应每个通道的权重。此设计可以优化上下文路径中每个阶段的输出功能。

2.3 Feature Fusion Module

Context path使用预训练的Xception模型作为上下文路径的主干,三个卷积层作为Spatial path。两条路径的特征在特征表示级别上有所不同。空间路径捕获的空间信息主要对丰富的细节信息进行​​编码。此外,上下文路径的输出特征主要对上下文信息进行编码。换句话说,空间路径的输出特征为低层次,而上下文路径的输出特征为高层次。因此,我们建议使用特定的功能融合模块来融合这些功能。
首先将空间信息和上下文信息堆叠在一起,接着利用每一个通道进行全局平均池化,计算出权重,并通过一个跳跃连接将加权输出与原本输入相加,然后再输出。

3 损失函数

我们还利用辅助损失函数来监督所提出方法的训练。用主损失函数来监督整个BiSeNet的输出,我们添加了两个特定的辅助损失函数来监督上下文路径的输出。
损失函数

4 实施策略

4.1 网络细节

  • 使用三个卷积作为空间路径和使用预训练的Xception39模型作为上下文路径。
  • 我们使用特征融合模块来组合这两条路径的特征以预测最终结果。
  • 空间路径和最终预测的输出分辨率为原始图像的1/8。

4.2 训练方法

训练中使用批次大小为16,动量0.9和重量衰减1e-4的小批量随机梯度下降(SGD)
应用“poly”学习率策略,其中初始率乘以(1- iter max iter)次幂乘以0.9的每次迭代。初始学习率为2.5e−2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值