论文地址 :BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

1. 摘要

  语义分割任务不仅需要丰富的空间位置信息,还需要尺寸客观的感受野,但是现有的方法为了提速往往采取损失空间分辨率的方法,这导致了精度的严重下降。论文中提出了一种新的双向分割网络BiSeNet。首先,设计了一个带有小步长的空间路径来保留空间位置信息生成高分辨率的特征图;同时设计了一个带有快速下采样册率的语义路径来获取客观的感受野。在这两个模块之上引入一个新的特征融合模块将二者的特征图进行融合,实现速度和精度的平衡。
  BiSeNet模型在Cityscapes上取得了68.4%的平均IOU和105FPS的速度[Titan XP]。

2. 介绍

  语义分割应用广泛,实时语义分割也具有良好的应用前景。目前实时语义分割的方法主要有如下图所示以下三种:

  • 通过裁剪和尺寸变化严格规定输入图像的尺寸 ⇒\Rightarrow⇒ 数据上和视觉效果上可见的精度减少
  • 改变网络的通道数来加速推理过程 ⇒\Rightarrow⇒ 预测位置的能力的衰弱
  • 丢弃最后阶段的几层来获得一个较小的框架 ⇒\Rightarrow⇒ 模型的感受野减小导致模型分类能力不足
      为了解决上面三种方案中空间细节上的损失,提出U-shape 结构,如下图所示,这种结构融合主干网络的层次特征并逐步增加分辨率且填充一些细节,但这只是一种缓解手段而不能解决,因为U-shape Structure存在两个问题:
  • 完整的U-shape 结构会导致计算速度的减慢
  • 在裁剪过程中损失的位置信息较难恢复

      基于对这些问题的研究,提出BiSeNet,如下图所示,其包含两部分,两个部分分别处理位置信息的丢失和感受野的缩减:
  • Spatial Path(SP):使用三个卷积层来获取特征图(output_stride=8)
  • Context Path(CP):附加一个全局平均池化层在Xception的尾部,这里的感受野是整个主干网络中最大的

      为了在不损失速度的同时获得更好的精度,论文还提将两个路径融合的模块FFM和精细画最后最终预测结果的模块ARM,这两个模块有助于提升精度。
      综上,论文的主要贡献在于:
  • BiSeNet with SP and CP
  • Feature Fusion Module 和 Attention Refinement Module ⇒\Rightarrow⇒ 较小的速度损失获得较大的精度提升
  • impressive results on Cityscapes,etc.

3.双向分割网络

  详细解释带有SP和CP的BiSeNet,然后分别对SP和CP的有效性进行说明,最后使用FFM融合两个paths的输出和整个网络的结构(网络结构如下图所示)。

3.1 Spatial Path

  提出SP基于很多考虑,一方面位置信息和感受野两个对于分割结果非常关键的因素不能两全,另一方面实时语义分割方法多数采取使用较小的输入图像尺寸导致大部分位置信息的丢失。由此提出SP模块,该模块保留空间尺寸并且编码了丰富的位置信息。SP包含三层,每一个卷积层的步长都为2且后面跟着BN层和ReLU激活层。最终SP的output_stride=8,之中尺寸的特征图包含了丰富的位置信息。

3.2 Context Path

  提出CP基于这样的观察,即大的感受野对于语义信息非常关键,现有的金字塔池化,空洞空间金字塔池化和大内核方法计算代价过高,从而导致速度较慢,因此提出Context Path方法。CP轻量级模型和全局平均池化操作来获取较大的感受野。
  首先使用轻量级的模型比如Xception来编码高层语义信息,之后加一层全局平均池化来获取最大的感受野,最后将全局池化的结果上采样并于轻量级模型的输出特征相融合。在轻量级模型中,应用U-shape结构来融合这两个阶段的特征,结构如下图所示:

  另外还有一个模块Attention Refinement Module(ARM)来调整各个阶段的特征,结构如下图所示,ARM应用全局平均池化来获取全局语义信息然后计算一个attention vector来知到特征学习。这个结构能够精细画Context Path中各个阶段的结果。它可以不用上采样就集成全局语义信息,计算代价较小。

3.3 网络架构

  使用Xception作为Context Path的主干网络,三层带有卷积步长的卷积层作为Spatial Path,然后将两条路径的输出融合。在速度较快的情况下取得良好的精度。
  分开来看,尽管SP每一层的计算代价都很大,但是只有三层,计算量也可以接受;CP层使用轻量级模型实现快速下采样,而且这两条路径同时计算提高了精度。
  最终在FFM前得到的两条路径的输出特征尺寸不同,因此不能简单的相加。富含位置信息的SP特征和富含语义信息的CP特征二者在不同的层次,因此需要FFM来融合:对于给定的不同特征输入,首先将二者concatenate,然后利用BN来调整特征的尺度,接着对Concat结果进行池化得到一个特征向量并计算一个权重向量,权重向量可以调整特征的权重,从而带来特征的选区和结合,结构如下图所示:

  对于损失函数,模型中使用principal loss function来监督模型的训练,并且使用额外的两个辅助损失函数来监督Context Path的训练,所有的损失函数都是Softmax函数。最终使用 α\alphaα来控制principa loss和辅助loss的权重[文中取1],如下所示:
(辅助损失函数)loss=1N∑iLi=1N∑i−log(epi∑jepj)loss=\frac{1}{N}\sum_{i}{L_i}=\frac{1}{N}\sum_{i}{-log(\frac{e^{p_i}}{\sum_{j}{e^{p_j}}})} \tag{辅助损失函数}loss=N1​i∑​Li​=N1​i∑​−log(∑j​epj​epi​​)(辅助损失函数)
  其中p是网络输出。
(损失函数)L(X;W)=lp(X;W)+α∑i=2Kli(Xi;W)L(X;W)=l_p(X;W)+\alpha \sum_{i=2}^{K}l_i(X_i;W) \tag{损失函数}L(X;W)=lp​(X;W)+αi=2∑K​li​(Xi​;W)(损失函数)
  其中,lpl_plp​是主损失函数的concat输出,XiX_iXi​是Xception第i阶段的输出,lil_ili​是不同阶段的辅助损失函数。K取3,L即联合损失函数。

4. 实验

4.1实现细节

  三层卷积作为SP,Xception39作为CP的主干网络,使用FFM结合两个路径的结果得到最终预测结果。SP的输出和最终的预测都是原始图像的18\frac{1}{8}81​.
  使用小批量随机梯度减少算法进行训练,batchsize=16,动量0.9,权重衰减1e−41e^{-4}1e−4,使用poly learing rate
  进行数据增广,包括mean subtraction,随机水平翻转和随机尺度。最终将其裁剪至于训练的尺寸相当。

4.2 各种烧蚀实验

  略

欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]

图像语义分割(11)-BiSeNet:用于实时语义分割的双向分割网络相关推荐

  1. BiSeNet:用于实时语义分割的双边分割网络-7min精简论文阅读系列-Leon

    BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation BiSeNet:用于实时语义分割的双边分割网络 ...

  2. CFPNet:用于实时语义分割的通道特征金字塔

    论文地址:CFPNet: Channel-wise Feature Pyramid for Real-Time Semantic Segmentation 代码地址: https://github.c ...

  3. BiSeNet - 轻量级实时语义分割

    前言 在语义分割领域,由于需要对输入图片进行逐像素的分类,运算量很大.通常,为了减少语义分割所产生的计算量,通常而言有两种方式:减小图片大小和降低模型复杂度. 减小图片大小可以最直接地减少运算量,但是 ...

  4. BCPNet:用于实时语义分割的双向上下文传播网络

    论文地址:https://arxiv.org/pdf/2005.11034.pdf 代码地址:暂无 空间细节和上下文相关性是语义分割的两类关键信息.一般来说,空间细节最可能存在于浅层,而上下文关联最可 ...

  5. SA-Siam:用于实时目标跟踪的双重连体网络A Twofold Siamese Network for Real-Time Object Tracking

    原文链接 摘要: 1.本文核心一:将图像分类任务中的语义特征(Semantic features)与相似度匹配任务中的外观特征(Appearance features)互补结合,非常适合与目标跟踪任务 ...

  6. ENet:一种用于实时语义分割的深层神经网络结构

    摘要: 实时执行像素语义分割的能力在移动应用程序中至关重要.最近针对这一任务的深层神经网络的缺点是需要大量的浮点运算,并且运行时间长,这阻碍了其可用性.在本文中,我们提出了一种新的深度神经网络体系结构 ...

  7. 【论文阅读--实时语义分割】BiSeNet V2: Bilateral Network with Guided Aggregation

    摘要 低层细节和高层语义对于语义分割任务都是必不可少的.然而,为了加快模型推理的速度,目前的方法几乎总是牺牲低级细节,这导致了相当大的精度下降.我们建议将这些空间细节和分类语义分开处理,以实现高精度和 ...

  8. 轻量级实时语义分割:ICNet BiSeNet

    轻量级实时语义分割:ICNet & BiSeNet ICNet 贡献 Image Cascade Network Cascade Label Guidance Structure Compar ...

  9. 实时语义分割算法大盘点

    本文转载自计算机视觉工坊 语义分割论文 语义图像分割是计算机视觉中发展最快的领域之一,有着广泛的应用.在许多领域,如机器人和自动驾驶汽车,语义图像分割是至关重要的,因为它提供了必要的上下文,以采取行动 ...

  10. LRNNet:轻量级FCB SVN实时语义分割

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 公众号后台回复「LRNNet」,即可获得论文下载链接. 简介: 语义分割可以看作是一种按像素分类的任务 ...

最新文章

  1. 端到端TVM编译器(上)
  2. JS设计模式—节流模式的实际应用
  3. 调查问卷 | 中国云原生用户调研,邀您参与!
  4. responsibility和workload的区别
  5. 前端学习(2130):编译作用域的概念
  6. python的神经网络编程_Python神经网络编程 第二章 使用Python进行DIY
  7. 【重磅快讯】T11 2019数据智能技术峰会举办,AI将成为行业颠覆者
  8. 如果有什么想不开或者放不下的话,看看这里吧!(摘于网络)
  9. MOV AH,XXH INT XXH——BIOS中断和DOS中断
  10. vba遗传算法之非一致性突变
  11. jquery的ajax方法实例,jquery的ajax方法实例教程
  12. 表情识别(一)——使用Dlib、opencv和Python识别面部特征
  13. java jre32下载_JRE7 32位官方下载
  14. Dell插入耳机仍然外放的问题解决
  15. 计算机网络中的ping什么意思,PING命令是什么?PING使用方法和参数详解
  16. 全自动与半自动手表的区别_全自动和半自动机械表的区别?
  17. Android 多种限定符
  18. 几个常用的、重要的网络命令!(ping,Tracert ,winipcfg等)
  19. 迪士尼超级计算机多少钱,上海迪士尼乐园公布票务调整方案,明年1月9日起实行新票价...
  20. 手写简易版链表及原理分析

热门文章

  1. 浅析JSONP-解决Ajax跨域访问问题
  2. PyMySQL和MySQLdb的区别
  3. angr进阶(2)C++程序的处理
  4. 关于H5页面的测试总结与分析
  5. 存储过程,是否有查看所有项目功能
  6. Python引用复制,参数传递,弱引用与垃圾回收
  7. 报表性能优化方案之行引擎执行层式报表
  8. 进入windows自启文件夹
  9. @RequestParam和@RequestBody和@PathVariable用法小结
  10. Oracle内账号密码过期the password has expired