FCN

主要思想:使用卷积层替换到全连接层,以voc数据集、backbone为VGG16为例,最后的全连接层替换为卷积层,通道数为21(voc20类+背景),接着进行上采样为输入尺寸大小,对每一个像素点(21个特征图)进行softmax操作,确定该像素点所属类别。

FCN模型是一个比较简单的模型,有encode和decode两个部分组成,上采样到输入尺寸大小,对每个像素点做预测

PSPNet

PSPNet是在FCN上的改进,引入更多的上下文信息进行解决,当分割层有更多全局信息时,出现误分割的概率就会低一些,这种思想目前在许多图像领域都有所应用,引入更多上下文信息的方式也很多,比如:

DDRNet Deep Dual-resolution Networks for Real-time and Accurate Semantic Segmentation of Road Scenes

轻量级网络

摘要:语义分割对于自动驾驶汽车理解周围环境是一种关键技术,大的计算量和长的推理时间是难以忍受的。所提出的deep dual-resolution networks 包含两个深度分支。设计一个深度的上下文提取模块叫做deep aggregation pyramid pooling modul(DAPPM)来增加感受野和融合多尺度信息在低分辨率的图像上。

相关工作

几乎所有的实时语义分割模型都使用了两种结构:encoder-decoder 和 two-pathway

一些轻量级的编码器被使用:

MobileNet: 深度可分离卷积 减少参数和计算量

ShuffleNet:

Xception

深度双分辨率网络 用于道路场景的实时语义分割

设计了一个新的上下文信息提取器,称为深度聚合金字塔合并模块(DAPPM),以扩大有效的感受野并融合多尺度上下文。

BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

实时性语义分割算法中,加速的同时也需要重视空间信息。论文中提出了一种新的双向分割网络BiSeNet。首先,设计了一个带有小步长的空间路径来保留空间位置信息生成高分辨率的特征图;

同时设计了一个带有快速下采样率的语义路径来获取客观的感受野。在这两个模块之上引入一个新的特征融合模块将二者的特征图进行融合,实现速度和精度的平衡。

本文主要设计了两个分支

1、Spatial Path:这个分支很简单,就是卷积+bn+relu,下采样8倍。这个分支为空间路径(不知道怎么翻译)是为了解决多次特征提取之后或者输入小尺寸的图像,使得空间信息缺失,而设计的

2、Context Path:先使用Xception快速下采样,尾部接一个全局pooling(下面哪个白色小方块),然后类似u型结构容和特征,只上采样两次,这里用到ARM,用于refine特征。之后上采样(双线性插值)到spatial path分路特征相同大小。为了增加模型的感受野

另外本文还设计了两个模块FFM(Feature Fusion Module)和ARM:

FFM
对细节特征和语义特征进行拼接,之后是一个类似senet的结构对信息进行整合。其实就是对两个分支传进来的结构进行融合,然后又加了一个类似于se模块的东西,组成的结构。

ARM模块 (attention refinement module)

ARM使用在上下文路径中,用于优化每一阶段的特征,使用全局平均池化指导特征学习,计算成本可以忽略。ARM应用全局平均池化来获取全局语义信息然后计算一个attention vector来知到特征学习。

这个结构能够精细画Context Path中各个阶段的结果。它可以不用上采样就集成全局语义信息,计算代价较小

损失:共有三部分损失,一部分是主loss,另外两部分相当于加了一个在context path的中间监督,三部分loss构成整个loss,比重1:1:1。

损失函数:通过辅助损失函数监督模型的训练,通过主损失函数监督整个 BiSeNet 的输出。另外,还通过添加两个特殊的辅助损失函数监督 Context Path 的输出,就像多层监督一样。上述所有损失函数都是 Softmax。最后借助参数 α 以平衡主损失函数与辅助损失函数的权重。

可以看到,BiSeNet是一种很有效的设计。当替换上大模型之后,精度甚至高于 PSPNet 等算法。BiSeNet 算法对实时性语义分割算法提出了新的思考,在提升速度的同时也需要关注空间信息。同时,该设计也是一次对 Segmentation Backbone 的思考,希望设计一个对 Segmentation 任务友好的框架,当然现在还存在许多需要改进的地方。此外,该方法不仅仅可应用于实时性语义分割算法,也可应用于其他领域,尤其是在对 Spatial Detail 和 Context 同时有需求的情况下。并已有研究将其应用于 Potrait Segmentation。

BiSeNet升级版——BiSeNet V2

对于2048x1,024的输入,BiseNet2在Cityscapes测试集中的平均IoU达到72.6%,在一张NVIDIA GeForce GTX 1080 Ti卡上的速度为156 FPS,这比现有方法要快得多,而且可以实现更好的分割精度。

BiSeNet V2将这些空间细节和分类语义分开处理,以实现高精度和高效率的实时语义分割。为此,提出了一个有效的架构,在速度和精度之间进行权衡,称为双边分割网络(BiSeNet V2)。该体系结构包括:(1)一个细节分支,具有宽通道和浅层,用于捕获低层细节并生成高分辨率的特征表示;(2)一个语义分支,通道窄,层次深,获取高层次语义语境。语义分支是轻量级的,因为它减少了通道容量和快速下采样策略。此外,设计了一个引导聚合层来增强相互连接和融合这两种类型的特征表示。此外,还设计了一种增强型训练策略,在不增加任何推理代价的情况下提高分割性能。

双边分割网络概况主要有三个组成部分:紫色虚线框内的双通道主干,橙色虚线框内的聚集层,黄色虚线框内的助推部分。双通道主干有一个细节分支(蓝色的数据集)和一个语义分支(绿色的数据集)。三个阶段支路分别有C1、C2、C3通道。相应阶段的渠道语义分支可以轻量级的因子λ(λ< 1)。语义分支的最后一个阶段是上下文嵌入块的输出。同时,立方体中的数字是特征映射大小与输入分辨率的比值。在聚合层部分,我们采用了双边聚合层。将采样操作表明,Up代表upsampling操作,ϕ是Sigmoid函数,和x意味着element-wise输出。此外,在推理部分,设计了一些辅助分割头,以提高分割性能,没有任何额外的推理成本

主要包括三个部分

detail branch

空间细节 浅层信息,遵循VGG设计的
细节分支为共有9个卷积层,一共下采样了八倍,总体来说是比较简单的结构

class DetailBranch(nn.Module):def __init__(self):super(DetailBranch, self).__init__()self.S1 = nn.Sequential(ConvBNReLU(3, 64, 3, stride=2),ConvBNReLU(64, 64, 3, stride=1),)self.S2 = nn.Sequential(ConvBNReLU(64, 64, 3, stride=2),ConvBNReLU(64, 64, 3, stride=1),ConvBNReLU(64, 64, 3, stride=1),)self.S3 = nn.Sequential(ConvBNReLU(64, 128, 3, stride=2),ConvBNReLU(128, 128, 3, stride=1),ConvBNReLU(128, 128, 3, stride=1),)def forward(self, x):feat = self.S1(x)feat = self.S2(feat)feat = self.S3(feat)return feat

Semantic Branch

为了得到较大的感受野和加快计算效率,而设计语义分支,捕捉高层语义信息、与detail branch平行布置、参考了轻量级的网络结构

Bilateral Guided Aggregation 主要用于将前两个分支进行融合

deeplabv3+

deeplabv3结构看起来很简单 但是效果不错

语义分割论文阅读:FCN、PSPNet、DDRNet、BiseNet、BiseNetV2、deeplabv3相关推荐

  1. 【深度学习】语义分割:论文阅读:(2021-12)Mask2Former

    这里写目录标题 详情 摘要 详细介绍 详情 论文:Masked-attention Mask Transformer for Universal Image Segmentation 代码: 官方-代 ...

  2. 弱监督语义分割论文阅读

    Railroad is not a Train: Saliency as Pseudo-pixel Supervision for Weakly Supervised Semantic Segment ...

  3. 多篇开源CVPR 2020 语义分割论文

    多篇开源CVPR 2020 语义分割论文 前言 DynamicRouting:针对语义分割的动态路径选择网络 Learning Dynamic Routing for Semantic Segment ...

  4. 语义分割论文-DeepLab系列

    语义分割论文-DeepLab系列 DeepLabv1 收录:ICLR 2015 (International Conference on Learning Representations) 代码:gi ...

  5. ECCV 2020 语义分割论文大盘点(38篇论文)

    作者:CV Daily | 编辑:Amusi Date:2020-09-25 来源:计算机视觉Daily微信公众号(系投稿) 原文:ECCV 2020 语义分割论文大盘点(38篇论文) 前言 距离EC ...

  6. 【语义分割文献阅读】Segmentation from Natural Language Expressions

    [语义分割文献阅读]Segmentation from Natural Language Expressions 文章目录 [语义分割文献阅读]Segmentation from Natural La ...

  7. 不良光线下的语义分割论文调研

    不良光线下的语义分割论文调研 文章目录 不良光线下的语义分割论文调研 Multitask AET with Orthogonal Tangent Regularity for Dark Object ...

  8. 语义通信论文阅读(1):Beyond Transmitting Bits: Context, Semantics, and Task-Oriented Communications

    语义通信论文阅读:Beyond Transmitting Bits: Context, Semantics, and Task-Oriented Communications 引言 语义信息度量 知识 ...

  9. 弱监督的语义分割论文汇总

    弱监督的语义分割论文汇总 弱监督语义分割导读 弱监督语义分割论文整理 基于Bounding box的弱监督语义分割 基于Image-level labels的弱监督语义分割 基于Scribbles的弱 ...

最新文章

  1. VS2010中“工具选项中的VC++目录编辑功能已被否决”解决方法
  2. 惊呆了,Spring Boot居然这么耗内存!
  3. 恭喜CocoStudio 1.5和Mac版本发布
  4. 015_视图(Views)
  5. 什么是 SAP UI5 的 Element binding
  6. CMOS图像传感器——图像传感器噪声
  7. 用Python把github上非常实用的数据全部抓取下来! 留给自己备用
  8. php mysql 验证码代码_PHP_PHP 验证码的实现代码,checkcode.php 生成验证码图片, - phpStudy...
  9. 关于SharePoint V3网站老弹出“此网站需要运行以下载项:'Microsoft Corporation'中的'name.dll'......”的3种解决办法...
  10. AI人工智能开发的5种最佳人工智能编程语言
  11. 计算机组成原理知识点
  12. 计算机网络基础试题2,计算机网络基础试题库2
  13. 国内6大网络信息采集和页面数据抓取工具
  14. 22. Asteroid: the PyTorch-based audio source separation toolkit for researchers
  15. 软件测试零基础入门好学吗?
  16. 数据结构如何申请一个空间的队列_如何用鞋柜来作为隔断,隔出一个玄关空间...
  17. Serval的试卷答案(线段树)
  18. 作为3-5年的iOS开发者:你为什么迟迟进不去大厂呢?
  19. 乐檬k5note android6.0,乐檬k5note用户指引v10.pdf
  20. 正弦交流电信号机数学描述

热门文章

  1. 第一批90后已经30岁了,更扎心的是…
  2. Jeecg-Boot 2.1.4 版本发布,基于SpringBoot低代码平台
  3. mysql索引类型normal,unique,full text
  4. Maven + Nexus + SVN + Eclipse 配置步骤说明
  5. JEECG-V3 版本相关文档开放通知
  6. 如何优雅地使用 VSCode 来编辑 vue 文件?
  7. springmvc的ModelAttribute注解
  8. PowerDesigner 中的name与comment转换(转)
  9. 安卓第六夜 凡高的自画像
  10. emr系统 php,完整电子病历系统c#源码