【DWRSeg】重新思考高效获取多尺度上下文信息以进行实时语义分割

news2024/11/17 3:02:22

目录

🐶🐶1.摘要

🐭🐭 2.设计动机

🐹🐹 3.区域残差和语义残差

🐰🐰 4.Dilation-wise Residual和Simple Inverted Residual

🍃  4.1DWR

🍂 4.2SIR

🐺🐺5.网络整体结构

🌿 5.1整体结构

🍄 5.2Stem block 

🌵5.3解码器

🐸🐸 6.实验

🌴 6.1不同膨胀率参数在不同网络阶段表现

🌲 6.2不同参数结果对比

🌰 6.3Citysacpes数据集上不同方法结果对比

🌼6.4CamVid数据集上不同方法结果对比

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


 

👉题目:重新思考高效获取多尺度上下文信息以进行实时语义分割 

👉论文:paper

👉代码:未开源 

        最近在看的一些小而精的创新点,所以有的论文是没有开源代码的,主要是体会作者的创新点思维,看看能不能为我所用。后续若开源,会持续更新开源代码地址,请持续关注。


🐶🐶1.摘要

        Many current works directly adopt multi-rate depth-wise dilated convolutions to capture multi-scale contextual information simultaneously from one input feature map, thus improving the feature extraction efficiency for real-time semantic segmentation. However, this design may lead to difficult access to multi-scale contextual information because of the unreasonable structure and hyperparameters. To lower the difficulty of drawing multi-scale contextual information, we propose a highly efficient multi-scale feature extraction method, which decomposes the original single-step method into two steps, Region Residualization-Semantic Residualization. In this method, the multi-rate depth-wise dilated convolutions take a simpler role in feature extraction: performing simple semantic-based morphological filtering with one desired receptive field in the second step based on each concise feature map of region form provided by the first step, to improve their efficiency. Moreover, the dilation rates and the capacity of dilated convolutions foreach network stage are elaborated to fully utilize all the feature maps of region form that can be achieved. Accordingly, we design a novel Dilation-wise Residual (DWR) module and a Simple Inverted Residual (SIR) module for the high and low level network, respectively, and form a powerful DWR Segmentation (DWRSeg) network. Extensive  experiments on the Cityscapes and CamVid datasets demonstrate the effectiveness of our method by achieving a state-of-theart trade-off between accuracy and inference speed, in addition to being lighter weight. Without pretraining or resorting to any training trick, we achieve an mIoU of 72.7% on the Cityscapes test set at a speed of 319.5 FPS on one NVIDIA GeForce GTX 1080 Ti card, which exceeds the latest methods of a speed of 69.5 FPS and 0.8% mIoU. The code and trained models are publicly available.

        当前的许多工作直接采用多尺度深度扩张卷积从一个输入特征图中同时捕获多尺度上下文信息,从而提高实时语义分割的特征提取效率。 然而,这种设计可能会因为结构和超参数的不合理而导致多尺度上下文信息的访问困难。 为了降低绘制多尺度上下文信息的难度,我们提出了一种高效的多尺度特征提取方法,该方法将原始的单步特征提取方法分为两个步骤,区域残差-语义残差。 在该方法中,多尺度深度扩张卷积在特征提取中发挥更简单的作用:根据第一步提供的每个简明区域形式特征图,在第二步中使用一个所需的感受野执行简单的基于语义的形态过滤 ,提高他们的效率。 此外,每个网络阶段的扩张率和扩张卷积的容量都经过精心设计,以充分利用所有可以实现的区域形式的特征图。 因此,我们分别为高层和低层网络设计了一种新颖的扩张式残差(DWR)模块和简单倒置残差(SIR)模块,并形成了强大的DWR分段(DWRSeg)网络。 对 Cityscapes 和 CamVid 数据集的大量实验表明:除了权重更轻之外,我们的方法还通过在准确性和推理速度之间实现最先进的权衡来提高其有效性。 在不进行预训练或采用任何训练技巧的情况下,我们在 Cityscapes 测试集上以 319.5 FPS 的速度在一张 NVIDIA GeForce GTX 1080 Ti 卡上实现了 72.7% 的 mIoU,超过了最新方法的 69.5 FPS 和 0.8% miou。 代码和经过训练的模型是公开的。       

        ps:虽然摘要里说了模型和代码是公开的,却没有给出链接,有找到源码的同学请分享,谢谢啦~~~

🐭🐭 2.设计动机

        本文的设计动机主要来自一下三方面:

  • 感受野设计增加上下文信息
  • 感受野是越大越好吗?
  • 空洞卷积的rate在不同层级的特征图上要保持一致吗?

        最近的许多方法都为实时语义分割任务设计了专用主干,其中感受野的设计是其中的一个重要部分。通常,这些方法追求广阔的感受野以捕获更多的上下文信息,从而提高特征表示能力。然而,作者认为,在实践中这可能会导致低效的特征提取

        DABNet和CGNet在其网络的深层使用具有大空洞率的空洞卷积,但作者观察到,这些卷积中几乎没有任何参数可以被学习。这种现象的原因是,这种卷积几乎不可能在实质上大的空间跨度上直接建立特征之间的连接,从而导致低的特征提取效率。而STDC在整个网络中保持相同的感受野大小,这对于low-level特征提取来说太大,从而限制了效率。作者观察到,在STDC的low-level,更少的卷积层但更多的通道可以产生更好的结果

        作者认为,确定合适的感受野大小对于提高特征提取的效率至关重要,并且在网络的不同阶段对感受野大小的要求是不同的。随着特征语义表示的增强,更高的阶段需要更大的感受野。因此,分别为较高和较低阶段设计了使用空洞卷积来扩展感受野的模块和使用规则卷积来限制感受野的模型。

        以下是本文在精度和效率方面基于Cityscapes数据集上的表现,看起来还是很不错的。

🐹🐹 3.区域残差和语义残差

        为了降低构建多尺度上下文信息的难度,将原始的单步结构分成2步,其中:

  1.  第一步,生成具有不同大小的简洁区域表达的关注特征,称为区域残差化。
  2. 第二步,只有一个深度方向使用具有所需感受野的扩张卷积对每个简洁的基于语义的形态过滤区域形式的特征图,称为语义残差。

        通过这种方式,多速率深度扩张卷积在特征提取中的作用是从困难到简单:从从复杂表达的特征图中获取尽可能多的复杂上下文信息到执行对每个简洁表达的内容进行简单的形态过滤具有所需膨胀率的特征图。 简洁的区域特征图形成清晰,简化学习扩展深度卷积的目标并使学习过程更加有序。

🐰🐰 4.Dilation-wise Residual和Simple Inverted Residual

  • 首先,引入了一个Dilation-wise Residual(DWR)模块,用于提取网络高层的特征,如图4a所示。多分支结构用于扩展感受野,其中每个分支采用不同空洞率的空洞深度卷积。
  • 然后,专门设计了一个Simple Inverted Residual(SIR)模块来提取网络低层的特征,如图4b所示。该模块仅具有3×3的微小感受野,但使用inverted bottleneck式结构来扩展通道数量,确保更强的特征提取能力。

🍃  4.1DWR

        DWR设计思想和结构:通常,DWR模块以残差方式设计,如图4a所示。在残差内部,使用两步方法有效地绘制多尺度上下文信息,然后融合多尺度感受野生成的特征图。
        具体来说,为了降低获取难度,将之前的单步多尺度上下文将信息获取方法分解为两步法。

        第一步: 区域残差特征是由输入特征生成的,具体的操作是将输入特征经过一个3*3卷积、BN和ReLU激活的组合操作来完成,得到具由不同区域大小的区域残差特征RR;

        第二步:将RR特征分成3组,分别采用不同膨胀率的膨胀深度卷积来对不同大小的区域特征进行形态学过滤,这被称为语义残差SR。

🍂 4.2SIR

        Simple Inverted Residual(SIR)模块是在DWR模块的基础上设计的,以满足低级较小的感受野尺寸的要求,以保持较高的特征提取效率。 其结构如图4b所示。 在DWR模块的基础上做了两点修改:

(1)去掉了多分支扩张卷积结构,只保留第一个分支来压缩感受野。

(2)3x3 深度卷积(语义残差)由于其贡献最小而被删除。 由于输入特征图尺寸大且语义弱,单通道卷积所能收集的信息太少。 因此,在低级阶段,一步特征提取比两步特征提取效率更高。 最终得到一个相当简单的模块,继承了DWR模块的残差和倒瓶颈结构。

🐺🐺5.网络整体结构

🌿 5.1整体结构

        DWRSeg网络结构基于DWR和SIR模块,构建了一个编码器-解码器风格的网络,如图3所示,其中解码器采用了简单的类似FCN的结构。解码器使用来自最后两个阶段的强语义信息直接对特征图进行上采样,然后将它们与来自较低阶段的特征图(包含丰富的详细信息)拼接起来,以进行最终预测。

        DWRSeg网络的编码器部分由4个stage进行连接组成,分别是:stem block、低层级的SIRblock和2个高层级的DWRblock。其中,DWRblock就是被用来通过2步获取多尺度上下文信息的特征提取模块;SIRblock即是在DWR模块的基础上进行修改的,以满足更小的感受野要求。具体的网络结构图如下所示,下表记录的是不同量级的模型具体参数。

🍄 5.2Stem block 

        Stem block:依据BiSeNetV2网络中Stem block模块,采用Stem block作为我们网络的第一阶段,如图所示图 6a。
        对 BiSeNetV2 中的Stem block进行了两项调整:

  1. 我们删除第一个卷积的激活层,以保留原始图像中更多的有效信息。
  2. 最后一个卷积不进行特征收缩。 该结构具有较低的计算成本和有效的特征表达能力

🌵5.3解码器

        文章的重点在编码器部分,解码器部分比较简单,都是普通的操作。

        解码器采用简单的类似 FCN 的结构,如图 3 所示。第 3 阶段和第 4 阶段的输出特征图首先进行上采样,然后与第 2 阶段的特征图连接。之后,BN 层作用于连接的特征图 。 最后来一个细分head(SegHead)用于预测。 SegHead 结构如图 6b 所示。 设置具有 BN 层和 ReLU 层的 3×3 卷积来合并特征图。 然后,使用逐点卷积进行预测。 特征图最终被上采样到输入大小。 解码器中的超参数均如表1所示。

🐸🐸 6.实验

🌴 6.1不同膨胀率参数在不同网络阶段表现

🌲 6.2不同参数结果对比

🌰 6.3Citysacpes数据集上不同方法结果对比

🌼6.4CamVid数据集上不同方法结果对比

 

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1462834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGauss数据库本地搭建并结合内网穿透实现远程访问

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合…

C语言的位操作 - bit 、byte的清零,置1,提取,判断

下面分享关于位操作的一些笔记: 一、位操作简单介绍 首先,以下是按位运算符: 在嵌入式编程中,常常需要对一些寄存器进行配置,有的情况下需要改变一个字节中的某一位或者几位,但是又不想改变其它位原有的值…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…

什么是nginx 、安装nginx

一、 什么是nginx 1.1 nginx的概念 一款高新能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000~50 000个并发请求。 1.2 nginx模块与作用 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错…

FPGA OSERDESE2

Output Parallel-to-Serial Logic Resources (OSERDESE2) OSERDESE2 在Xilinx 7 系列器件是一款专用的并行至串行转换器,具有特定的时钟和逻辑资源,旨在促进高速源同步接口的实现。每个OSERDESE2模块都包括一个专用的数据串行器和 3 状态控制。数据和 3 态串行器都可以在 SD…

Vue 中 onclick和@click区别

文章目录 一、直接上结论二、验证代码&#xff0c;可直接运行三、点击结果 一、直接上结论 onclick 只能触发 js的原生方法&#xff0c;不能触发vue的封装方法click 只能触发vue的封装方法&#xff0c;不能触发js的原生方法 二、验证代码&#xff0c;可直接运行 <!DOCTYP…

数据的结构

数据结构介绍 数据结构是一门介于数学、计算机硬件和计算机软件三者之间的核心课程。数据结构不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。 数据结构研究的是数据对象内部各数据元素之间逻辑关系问题…

【C++练级之路】【Lv.8】【STL】list类的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、结点二、迭代器2.1 成员变量与默认成员函数2.2 operator*2.3 operator->2.4 operator2.5 operator- …

Go语言中的TLS加密:深入crypto/tls库的实战指南

Go语言中的TLS加密&#xff1a;深入crypto/tls库的实战指南 引言crypto/tls库的核心组件TLS配置&#xff1a;tls.Config证书加载与管理TLS握手过程及其实现 构建安全的服务端创建TLS加密的HTTP服务器配置TLS属性常见的安全设置和最佳实践 开发TLS客户端应用编写使用TLS的客户端…

[设计模式Java实现附plantuml源码~行为型]遍历聚合对象中的元素——迭代器模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

ElasticSearch语法

Elasticsearch 概念 入门学习: Index索引>MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL&#xff0c;能够自动帮我们做分词&#xff0c;能够非常高效、灵活地查询内…

基于springboot+vue的教学资源库系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Java的编程之旅19——使用idea对面相对象编程项目的创建

在介绍面向对象编程之前先说一下我们在idea中如何创建项目文件 使用快捷键CtrlshiftaltS新建一个模块&#xff0c;点击“”&#xff0c;再点New Module 点击Next 我这里给Module起名叫OOP,就是面向对象编程的英文缩写&#xff0c;再点击下面的Finish 点Apply或OK均可 右键src…

嵌入式Qt 计算器核心算法_1

一.表达式分离算法分析 二.分离算法实现 QCalculatorDec.cpp #include "QCalculatorDec.h"#include <QDebug>QCalculatorDec::QCalculatorDec() {m_exp "";m_result "";QQueue<QString> r split("9.11 ( -3 - 1 ) * -5 &…

SpringCloud Ribbon负载均衡的策略总结及其配置

1. 轮询策略 2. 权重轮询策略 3. 随机策略 4. 最少并发数策略 5. 在选定的负载均衡策略基础上重试机制 6. 可用性敏感策略。 7. 区域敏感策略 —————————————————————— Ribbon负载均衡策略的配置&#xff1a; 在application.yml中配置如下&am…

LeetCode | 两数相加 C语言

Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存&#xff0c;看下图 我们先声明出指针p和指针q&#xff0c;还有指针head&#xff08;主要用于return上而已&#xff09;&#xff0c;然后进行一系列操作&#xff0c…

Disentangled Transfer Learning for Visual Recognition

DTL: Disentangled Transfer Learning for Visual Recognition 论文链接&#xff1a;https://arxiv.org/pdf/2312.07856.pdf源码链接&#xff1a;https://github.com/heekhero/DTL 简介 大规模预训练加微调的框架已经在各个领域推广。但是由于GPU内存或时间预算的原因&#…

Sora:打开视频创作新纪元的魔法钥匙

随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨Sora的技术特点、应用场景以及对未…

ctfshow web入门 web141-145

1.web141 ^\w$表示在开头和末尾匹配字母数字_&#xff0c;传入的v3值不能有字母数字_&#xff0c;即无字母的命令执行 php中1-phpinfo()是可以执行的&#xff0c;加减乘除都可以实现 这里或&#xff0c;异或&#xff0c;取反等运算都可以 这里采用羽师傅的异或脚本生成paylo…

代码随想录第二十三天 回溯算法 77.组合 216.组合总和 17.电话号码的字母组合

回溯算法 LeetCode 77 组合 题目描述 思路 递归函数的返回值以及参数 在这里要定义两个全局变量&#xff0c;一个用来存放符合条件单一结果&#xff0c;一个用来存放符合条件结果的集合。 代码如下&#xff1a; vector<vector<int>> result; // 存放符合条件…