论文导读:实时语义分割网络BiSeNetV1和v2


v1论文地址:BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation
v2论文地址:BiSeNet V2: Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation


一、背景

低水平的细节特征(spatial information 空间信息)和高水平的语义特征(semantics )是语义分割的两个重要的特征。比如熟悉的Unet网络,横向的空间信息用来判断细节,纵向通过下采样,扩大感受野,来提取高水平的语义特征,但高分辨率图的计算意味着高额的计算量,远达不到实时的效果。
在这里插入图片描述
现有的语义分割加速方法通常有几种:

  • 1、通过限制输入尺寸(resize、crop等),来降低计算复杂度。尽管这种方法简单而有效,空间细节的损失还是让预测打了折扣,尤其是边界部分,导致度量和可视化的精度下降;
  • 2、通道裁剪,但是这会弱化空间信息,丢失精度
  • 3、追求极其紧凑的框架而丢弃模型的最后阶段(比如ENet)。该方法的缺点也很明显:由于抛弃了最后阶段的下采样,模型的感受野不足以涵盖大物体,导致判别能力较差。
    在这里插入图片描述
    这些提速的方法会丢失很多 空间信息 或者牺牲 感受野,从而导致精度大幅下降。为了弥补空间信息的丢失,有些算法会采用 U-shape 的方式恢复空间信息。但是,U-shape 会降低速度,同时很多丢失的信息并不能简单地通过融合浅层特征来恢复。

论文中提出了一种新的双向分割网络BiSeNet。
简而言之:一条路负责编码空间信息,来收集细节(detail); 另一条路负责扩大感受野,来获取语义信息,提高判别能力。

二、BiSeNetV1

BiSeNetV1为了在不影响速度的情况下,同时收集到空间信息和语义信息,设计了两条路:

  • Spatial Path: 用了三层stride为 2 的卷积,卷积+BN+RELU模块。最后提取了相当于原图像 1/8 的输出特征图。由于它利用了较大尺度的特征图,所以可以编码比较丰富的空间信息,并生成高分辨率特征图。
  • Contex Path: 上下文路径的backbone可以替换成任意的轻量网络,比如 Xception,ShuffleNet 系列,MobileNet 系列。可以看到,为了准确率考虑,Context Path 这边使用了类似 U-shape 结构的设计,最终进行了32倍下采样。不过,不同于普通的 U-shape,此处只结合了最后两个 Stage,这样设计的原因主要是考虑速度。值得注意的是,Context Path 依然在最后使用了 Global Average Pooling 来聚合特征、降维、减计算量,看下图中的ARM模块,通过全局池化+卷积+BN+sigmoid模块,设计了一个注意力机制(类似SENet),来学习每个通道特征的重要性。
  • Feature Fusion Module(特征融合) 在特征的不同层级给定的情况下,每层输出特征都有各自的重要性。特征融合模块首先连接 S p a t i a l P a t h Spatial Path SpatialPath C o n t e x t P a t h Context Path ContextPath 的输出特征,接着,通过批归一化平衡特征的尺度。下一步,像 SENet 一样,把相连接的特征池化为一个特征向量,并计算一个权重向量。这一权重向量可以重新加权特征,起到特征选择和结合的作用。

如下图C部分所示,将两个部分特征图通过concate方式叠加,然后使用类似SE模块的方式计算加权特征,起到特征选择和结合的作用。

在这里插入图片描述

  • 训练方式 通过辅助损失函数超强监督模型的训练,主损失函数监督整个 BiSeNet 的输出。另外,还通过添加两个特殊的辅助损失函数监督 Context Path 的输出,就像多层监督一样。上述所有损失函数都是 Softmax。最后借助参数 α 以平衡主损失函数与辅助损失函数的权重,论文中α =1,也就是每个损失都很重要。

三、BiSeNetV2

双边引导聚合网络。重点在 Guided Aggregation上。
论文中重新简述了语义分割的的一些发展。
如下图 a a a中,利用空洞卷积可以扩大感受野的能力,来替换下采样和上采样操作。
B B B中还是熟悉的Unet网络结构
C C C中就是BiSeNet中双端网络,一条路提取空间细节信息,另一条路提取语义抽象信息。
在这里插入图片描述

3.1 BiSetNetv2网络结构

在这里插入图片描述
还是标准的双边网络,一条路负责细节信息,另一条路负责语义信息。

  • Detail Branch 三次下采样,最终下采用8倍,设计是遵循 宽而短 的原则。文中解释,这条路是为了获取细节信息,所有网络需要宽,也就意味着有更多的卷积核来提取细节特征。
  • Semantic Branch 4次下采样,最终下采样 16倍, 设计是遵循 窄而长的原则。原因是这条路为了提取深层次的语义特征,对网络深度有要求,为了效率速度,可以牺牲网络的宽度。

3.2 网络参数

如下表。

  • Detai Branch包含 三次下采样 S 1 、 S 2 、 S 3 S1、S2、S3 S1S2S3,每个 S S S 都包含了一个或多个卷积操作;
  • Semantic Branch 包含一个 S t e m Stem Stem 和6个 G E GE GE 和 1个 C E CE CE 多个模块。
    在这里插入图片描述

3.3 S t e m 和 G E 以 及 C E 模 块 Stem和GE以及CE模块 StemGECE

  • S t e m Stem Stem 模块:如下图 ( a ) (a) (a), 最终下采样四倍。 先采用 3 ∗ 3 3*3 33 卷积核,步长为2;然后左边分支是 1 ∗ 1 的 c o n v + B N + R E L U 1*1 的conv+BN+RELU 11conv+BN+RELU 两倍下采样,再接一个步长为2的 3 ∗ 3 3 * 3 33的卷积,再下采样两倍。 右边分支直接是步长为2的 3 ∗ 3 3*3 33的 maxPool,最后再contact后,接一个 3 ∗ 3 3*3 33的卷积+BN+Relu,融合特征。
    在这里插入图片描述
  • C E CE CE 模块:从命名上看,是一个上下文编码模块。从网络结构上看,是为了融合 输入特征图中不同通道,可以看作对同一层不同通道间增加了一个注意力机制,全局池化提取全局信息,接 1 ∗ 1 1*1 11卷积后,与输入特征图相加,最后3*3卷积输出

3.4 Detailed design of Bilateral Guided Aggregation Layer

终于和标题相对应了,双边聚合引导。
这层主要是为了把 双边网络的语义路和细节路融合起来。
但有的目标重视边缘信息、有的目标重视语义全局信息,所以作者认为设计一个网络,来引导特征的聚合。
总的来说,就是 D e t a i l Detail Detail 路和 S e m a n t i c Semantic Semantic 路,每个路都有两个分支相互统合,Sigmoid和APooling还能起到加权引导的作用。
在这里插入图片描述

3.5 实验

作者做了相当多的实验来验证自己的设计思路,这里只列举一点,聚合时尝试了 S u m 、 C o n c a t e 、 B G A Sum、Concate、BGA SumConcateBGA,训练时尝试了 难样本在线增强,训练时尝试了 多路分支训练等等。
在这里插入图片描述
其中 多路分支训练即 booster training strategy是非常重要的策略,和v1一样,在 S e m a n t i c Semantic Semantic 这条分支,下采样的过程中,生成一些独立的头,并计算损失,因为推理并不处理这部分。

最终效果惊人,速度与精度都得到很好的平衡。
在这里插入图片描述

3.6 其他注意事项

为了减少计算量,作者在 cityscape数据集上,做推理时,将 2048 ∗ 1024 2048*1024 20481024大小的图像,先Resize到 1024 ∗ 512 1024*512 1024512大小,这大概也是对细小目标的边缘,处理不太好的原因吧,如下图箭头处,交通灯牌的边缘分割不是太完美。在这里插入图片描述

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值