DAB-Net:用于实时语义分割的深度不对称瓶颈层

2024-03-22 08:30

本文主要是介绍DAB-Net:用于实时语义分割的深度不对称瓶颈层,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:

提出一种新的深度非对称瓶颈(DAB)模块,该模块有效采用非对称卷积扩张卷积来构建瓶颈层。由DAB模块组成的DAB-Net,生成了足够的接受域,密集的利用了上下文信息。

Citycapes测试集上实现70.1%的miou,一张FGTX1080Ti上速度为104FPS。代码地址:https://github.com/Reagan1311/DABNet

1、介绍

[16.18.19.23]已成功地提高了语义分割的实时性,同时也牺牲了准确性。[3,4,5,12,31]已证明了扩张卷积的可用性,扩张卷积可以在保持参数的同时增加感受野。另一种有效减少参数的方式是深度可分离卷积(ds-Conv),它具有独立计算跨通道和空间性,但是简单的将标准卷积替换为ds-conv会导致性能大幅下降,因为ds-conv大大降低了参数,常常导致次优问题。所以,本文将两者结合,构成DAB模块。

本文主要贡献为:

1)提出DAB结构,能同时提取局部和上下文信息,大大降低了参数;

2)DAB-Net不含上采样层,参数比最先进的语义分割少,且有相当的准确性和推理速度;

3)DAB_Net,在1080ti 上 512*1024图104FPS,参数0.76M,Citycapes上miou=0.701。

2、相关工作

ENet [18]是第一个实时设计的网络,它减少大量的卷积以减少滤波器;

ICNet [34]提出一种包含多分辨率分支的图像级联网络;

ERFNet [20]使用残差连接和分解卷积保持效率,同时保持准确率;

ESPNet [16]引入一个高效的空间金字塔(ESP),给速度和性能都带来很大改进;

BiSeNet [30]提出空间信息和上下文信息结合的方法。

扩张卷积。膨胀卷积 [12]在标准卷积中每个像素之间插入零点,在不增加参数的情况下,得到一个较大的有效接受域。在DeepLab系列 [4,5,6]中,引入一个无源控件金字塔池(ASPP)模块,该模块采用多个并行的不同膨胀率卷积收集多尺度信息。DenseASPP [29]将一组膨胀卷积层连接起来,生成密集的多尺度特征表示。

卷积因子分解。将一个标准卷积分解为几个步骤降低计算成本和内存,这在轻量级CNN模型中得到广泛应用。Inception [24,25,26]在保持接收域大小的同时,使用几个小尺寸的卷积来代替大卷积核。Xceprion [7]和MobilNetV2 [22]提出反向残差和线性瓶颈。ShuffleNet [32]将点卷积和通道混洗结合,使得不同通道能够进行信息通信。

3、网络结构

本节中,先介绍DAB模块 ,然后基于DAB设计DABNet。

3.1、深度非对称瓶颈-DAB模块

受ResNet [10]瓶颈设计和ERFNet [20]中因式分解的启发,结合两者优点设计了DAB模块。

a,b,c分别为ResNet、ERFNet、DAB结构。1)首先将通道数减少一半,然后通过点卷积恢复至原始值。2)两个分支结构,为1*N,N*1可分离卷积组合,右分支增加膨胀因子(结合多尺度信息)。3)之后1*1卷积,恢复至原通道大小。4)最后残差连接。

ResNet [10],深层次的卷积网络可以增加感受野,并且提取更复杂的特征。双分支,优秀的网络都会用多尺度信息,但多尺度信息的有效提取是个难题。左分支提取当前信息,右分支利用膨胀卷积提供更大的感受野,使用深度可分离卷积降低计算量。卷积分解降低参数量。膨胀卷积:增加感受野,但当膨胀率增加,也必须实现更多padding维持特征图大小尺度,这导致膨胀卷积计算量大,所以,本文只在深度可分离卷积上进行膨胀卷积。左分支为当前信息,右分支为上下文信息。

ENet [18]使用PRelu激活,浅层网络上PRelu性能优于Relu。[22]中提出1*1卷积后增加激活函数会损失精度,故1*1卷积后不激活。

3.2、DABNet结构设计

首先,使用3*3卷积提取初始特征,然后采取同ENet [18]相似的下采样模块,该模块连接3*3卷积和步长为2的maxpooling。

下采样操作降低输出特征图的尺寸,同时起到增加感受野以提取更多上下文信息的作用,而特征图分辨率的降低常导致信息丢失。因此,本文只做三次将采样,最后特征图为输入的1/8。一般是5次下采样,为输入的1/32。更多的,借鉴ESPNet V2 [17]连接输入与每个下采样模块,减少信息损失。

DAB模块,使用几个连续的DAB模块来提取稠密特征,第一、二个DAB模块分别含连续3、6个DAB结构,左分支膨胀率为2,右分支膨胀率依次为4,4,8,8,16,16,通过这样逐步增加感受野。

设计选择。DABNet只做三次下采样。不含解码结构,以减少计算量。

4、实验

实验中,batch_size设置为8,动量因子0.9,衰减1e-4,SGD优化。初始学习率4.5e-2,幂0.9。迭代1000次。数据增强采用随机翻转、建军治、随机比例尺。随机比例包含0.75、1.0、1.25、1.5、1.75、2.0。最后剪裁至固定尺寸进行训练。

膨胀率设计。在第二个DAB结构后,逐步增加膨胀率。{4,4,8,8,16,16},以固定膨胀率4作为对比。固定rate=4比基线底2.3%。文献 [28]表明大的膨胀率更适合本网络。

解码器。采用ERFNet的解码器结构作对比,用反卷积层做上采样。上表中DABNet-ERFdecoder,指标提升0.3%,但速度下降至58.6 FPS。所以,本文中上采样层是非必须的。

上下文模块。PSPNet [33]是一个分类模型,采用空间金字塔pooling SPP ,通过在不同分辨率的特征图上提取当前、全局上下文信息。为探索捕获上下文能力,本文构造一个带有SPP头的DABNet变体,成为DABNet-SPP。比基线低0.5%的准确率,参数增加4.2%,模型速度降低32FPS。DAB模块提取上下文特征比SPP要好。

推理速度。3.1中,膨胀卷积增加计算量,我们探索高效膨胀卷积。(a)去掉DABNet中所有膨胀卷积,(b)在所有DABNet中,第一层增加rate=2的膨胀率。即使降低膨胀率或去除所有膨胀卷积,FPS几乎没什么变化(从104.2到104.5)。但是,当对标准卷积应用膨胀卷积时,速度明显下降,从104.2下降到85.6。结果表明:膨胀卷积对推理速度有显著影响,但应用于深度卷积时,几乎没有不良影响。

这篇关于DAB-Net:用于实时语义分割的深度不对称瓶颈层的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834938

相关文章

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)

Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客 在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多