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

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

文章地址:https://arxiv.org/abs/1808.00897v1

从文章题目就可以晓得,BiSeNet是针对实时语义分割提出的,目的是高速的inference并且保持较高的精度,自己跑模型出来的精度还是蛮可以的,不过当然是跑不过专于精度的网络了。

按照惯例贴出摘要:
Abstract. Semantic segmentation requires both rich spatial information and sizeable receptive field. However, modern approaches usually compromise spatial resolution to achieve real-time inference speed, which leads to poor performance. In this paper, we address this dilemma with a novel Bilateral Segmentation Network (BiSeNet). We first design a Spatial Path with a small stride to preserve the spatial information and generate high-resolution features. Meanwhile, a Context Path with a fast downsampling strategy is employed to obtain sufficient receptive field. On top of the two paths, we introduce a new Feature Fusion Module to combine features efficiently. The proposed architecture makes a right balance between the speed and segmentation performance on Cityscapes, CamVid, and COCO-Stuff datasets. Specifically, for a 2048×1024 input, we achieve 68.4% Mean IOU on the Cityscapes test dataset with speed of 105 FPS on one NVIDIA Titan XP card, which is significantly faster than the existing methods with comparable performance.

摘要的信息很多,重点加粗了。
根据摘要文章的重点和创新点:
1、语义分割需要丰富的空间信息(位置信息),可以结合GCN文章中的位置信息理解,另一个就是大的感受野(接受域),包含全局信息尽可能包含目标物体,这部分可以结合GCN中的分类信息理解。
2、不牺牲空间信息(高分辨率特征图)的前提下(保持精度)实现快速的实时分割,文章提出了Bilateral Segmentation Network (BiSeNet)
3、Spatial Path 提取高分辨率特征图,获取精确的空间信息。
4、Context Path快速下采样,增加特征图感受野。
5、那么两个部分需要融合,怎么融合呢,文章提出Feature Fusion Module 特征融合模块,去结合两部分输出的特征。
6、Attention Refinement Model,顾名思义,被设计用来提高精度

下面看文章啦:
介绍大概背景,语义分割任务中实时性与精度的矛盾,列举出当前三种提速方法,不过都牺牲了精度:1)限制输入尺寸,减少计算量,简单粗暴;2)模型通道剪枝,即缩减模型的通道数,尤其是网络的前端,这削弱了模型的特征表示能力,必然丢失空间信息;3)干脆丢弃尾部特征提取部分,强行减少计算量,但网络尾部的特征具有更大的感受野,丢弃使得感受野无法包含目标,导致空洞大大降低精度。
同时介绍了U型网络,比上面介绍的3种方法更合理些,不过会在每层特征图(包括低分辨率与高分辨率)的计算上消耗很多,同时文章说,通过剪枝导致的空间信息丢失也很难通过U型的解码部分恢复。
所以BiSeNet应运而生:
两个分支:Spatial Path (SP) 、 Context Path (CP)
Spatial Path (SP) :3个卷积层,获取1/8*Input大小的特征图,算是高分辨率的了,包含较多的空间位置信息的
Context Path (CP) :包含一些下采样,扩大感受野,具体实现是在Xception后接全局池化层,提取这个backbone特征图的最大输出。
另外Feature Fusion ModuleAttention Refinement Model被提出为了融合特征,组合重要特征提高精度。
在这里插入图片描述

下面重点来了,看下BiSeNet的庐山真面目:
在这里插入图片描述
Spatial Path结构:比较直观,3层完全相同的卷积层,并添加有batch normalization和relu,并且使用大的卷积核(文章好像没有具体介绍多大的size),注意这里步长为2,才会得到1/8的输出。

Context Path结构:为了获得大的感受野,较先进的方法是:ASPP、金字塔池化、大卷积核,不过这些计算量比较大,会导致速度慢。这里用的方法是轻量特征提取网络,如Xception,并结合全局池化操作,合并Xception的中间结果(x16、x32)与全局池化的输出,作为该部分输出。

Attention refinement module:
在这里插入图片描述
全局平均池化获取attention vector,对该向量进行1x1卷积,归一化和非线性操作,并将该输出与原特征图相乘。对xception不同层特征进行refine,并且参数和计算量微乎其微。

**Feature fusion module:**因为两条路径输出的特征是不同level的,简单的相加是不行的。
在这里插入图片描述
不太清楚这个concatenate是什么操作,将两个输出连接吗,具体还需要去看下代码。并将连接的特征进行卷积+batch normalization,将该输出global pool到一个特征向量,经过1x1卷积、relu非线性、1x1卷积、sigmoid非线性输出,并计算连接特征 X(1 + sigmoid输出),得到FFM的输出特征。文章解释是计算权重向量(sigmoid输出)这个权重向量可以re-weight重新分配不同level的特征,指导进行特征选择和结合。

Loss Function:
是个联合损失,主损失和两个context path损失(因为k=3,i=2),交差熵损失计算每个像素的分类误差。
在这里插入图片描述
lp是主损失,li是context path的辅助损失函数,i是xception的不同阶段,Xi是不同阶段的输出
在这里插入图片描述

最后提一点FFM后面的8倍上采样,文章采用双线性插值,操作简单,同样是为了速度考虑的,而且通过SegNet文章了解到,网络的decoder部分不参与训练,因为这部分对结果影响不大,所以这里仅用双线性插值就足够了。

实验部分
关于baseline model的选取:
在这里插入图片描述
SP、FFM、ARM的消融实验:
在这里插入图片描述
推理速度比对:
在这里插入图片描述

state-of-the-arts的速度精度比对:
在这里插入图片描述
基于resnet的精度很高但速度慢些
在这里插入图片描述

COCO数据集的表现:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值