详尽 | Deeplabv3+结构理解

https://arxiv.org/pdf/1802.02611.pdf

https://link.springer.com/chapter/10.1007/978-3-319-10578-9_23

目录

Deeplabv3+

Encoder部分

Decoder部分

补充摘要

SPP 空间金字塔池化层模块

Dilated/Atrous Conv 空洞卷积


Deeplabv3+

deeplab-v3+是语义分割网络,组合采用空洞卷积空间金字塔池模块和编码器-解码器结构。

Encoder部分

输入经过backbone骨干网络(图中深度卷积神经网络DCNN Atrous Conv的部分)得到两个输出:一个是low-level feature低级特征,其直接提供给Decoder,这是个output=4x的输出;另一个是high-level feature高级特征,其经过ASPP空间金字塔池模块,这是个output=16x的输出。

  • input stride为进行卷积时候设置的stride值
  • output stride为矩阵经多次卷积池化操作后尺寸缩小的值

high-level feature高级特征经过ASPP空洞卷积空间金字塔池模块的5个不同操作得到5个输出,其中1个1×1卷积,3个不同rate的dilated conv空洞卷积,1个ImagePooling全局平均池化。这5个输出经过concatenate连接层和1×1卷积层得到output stride=16x的输出。

  • ASPP是在SPP的基础上加入Dilated/Atrous Convolution空洞卷积实现的
  • 相比conv,Dilated conv多了一个 hyper-parameter:dilation rate
  • dilation rate指kernel的间隔数,正常conv的dilatation rate为1

  • SPP即空间金字塔池,解决CNN输入图像大小必须固定的问题
  • CNN的第一个全连接层要求固定的输入大小,例如VGG模型要求输入大小224*224
  • SPP能够使得输入图像高宽比和大小任意,有效解决多目标分割等问题。
  • 这里ImagePooling对特征进行全局平均池化之后再上采样到原来大小
  • 卷积可以局部提取特征,ImagePooling可以全局提取特征,这样就得到了多尺度特征
  • 特征通过concatenate层叠加,而不是add层直接相加

Decoder部分

上面的Encoder部分为Decoder部分提供了两个输入

low-level featur低级特征经过1x1卷积调整维度(output stride=4x)low-level feature调整到48 channels时效果最好;

high-level featur高级特征上采样4倍,使得output stride从16x变为4x,再将两个4x特征通过concatenate层连接。

再连接一个或多个的3×3卷积(接2个out_channels=256的3x3卷积,输出效果较好),再上采样4倍得到Dense Prediction密集预测,即预测图像中的每个像素,语义分割。

这里Deeplabv3+的Decoder部分的上采样模块均通过双线性插值实现

补充摘要

SPP 空间金字塔池化层模块

input image输入层,可以为任意大小。输入后进行卷积运算,到最后一个卷积层输出得到该层的feature maps特征映射,其大小也是任意的。

Spatial Pyramid Pooling layer SPP层。以最左侧16X256-d为例,16表示将从前面卷积得到的特征映射分成16份,256表示channel通道数,即SPP对每一层都分成16份,进行池化操作,一般进行max pooling最大池化。中间右侧同理,即将特征映射分别分成4X256和1X256。

通过SPP层,特征映射被转化成16X256+4X256+1X256=21X256的矩阵,在送入全连接时可扩展成一维矩阵1X10752,所以第一个全连接层的参数设置为10752,有效解决输入数据大小的问题。

注意分法可自由调整,不一定等分

Dilated/Atrous Conv 空洞卷积

Dilated / Atrous Convolution / Convolution with hole,中文为空洞卷积(也有称为膨胀卷积),

  • 其是在标准的 convolution map 里注入空洞,以此增加 reception field感受野。
  • 相比常规conv,Dilated conv多了一个超参数dilation rate,指kernel的间隔数
  • 可以认为常规 convolution 的 dilatation rate 为 1

通过图示可以很好理解

以下是3*3 kernal and 1 dilation rate的常规卷积

3*3 kernal 的常规卷积

以下是3*3 kernal and 2 dilation rate的空洞卷积

3*3 kernal and 2 dilation rate的空洞卷积

 与其他卷积对比

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

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

相关文章

【51单片机】【protues仿真】基于51单片机音乐盒(8首歌曲)系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示当前歌曲序号 2、按键切换歌曲和播放暂停​ 3、内置8首音乐 二、使用步骤 基于51单片机的音乐盒是一种能够存储和播放多首歌曲的电子设备,通过定时器产…

@ZooKeeper 详细介绍部署与使用详细指南

文章目录 **ZooKeeper 详细介绍、部署与使用** 1. 概述 & 核心介绍 1.1 什么是 ZooKeeper? 1.2 核心特性 1.3 核心概念 1.4 典型应用场景 2. 部署 (以 3 节点集群为例) 2.1 环境准备 2.2 安装步骤 (在所有节点执行) 2.3 启动与停止集群 2.4 防火墙配置 (如果开启) 3. 基本…

腾讯Hunyuan-MT-7B翻译模型完全指南:2025年开源AI翻译的新标杆

🎯 核心要点 (TL;DR) 突破性成就:腾讯混元MT-7B在WMT25全球翻译竞赛中获得30/31项第一名双模型架构:Hunyuan-MT-7B基础翻译模型 Hunyuan-MT-Chimera-7B集成优化模型广泛语言支持:支持33种语言互译,包括5种中国少数民…

Web 集群高可用全方案:Keepalived+LVS (DR) 负载均衡 + Apache 服务 + NFS 共享存储搭建指南

文章目录Keepalived LVS(DR) Apache NFS项目背景业务场景与核心需求传统架构的痛点与局限技术方案的选型逻辑项目价值与预期目标项目实践项目环境基础配置配置 router配置免密登录-可选配置 nfs配置 web配置 LVS-RS配置 HA 和 LVS-DS配置 ha1配置 ha2测…

Prometheus监控预警系统深度解析:架构、优劣、成本与竞品

目录 一、Prometheus是什么?核心定位与架构 二、竞品分析(Prometheus vs. Zabbix vs. Nagios vs. Commercial SaaS) 三、部署成本分析 四、服务器资源消耗分析 五、给您的最终建议 一、Prometheus是什么?核心定位与架构 Prom…

Nginx反向代理及配置

Nginx反向代理 二级域名系统 顾名思义,我们有很多的这个不同的二级域名的用户来访问我们,比如说微博。它有一个主域名weibo.com。如果我叫一鸣,申请了一个微博,然后我就可以在微博这个主系统上申请一个二级域名来访问我微博的主页&#xff0…

嵌入式系统通信总线全景探秘:从板内到云端

引言 在嵌入式系统设计中,选择合适的通信总线是决定系统性能、成本和可靠性的关键因素。从简单的芯片间通信到复杂的工业网络,不同的总线技术各司其职,形成了嵌入式世界的"交通网络"。本文将深入探讨五种经典且重要的通信技术&…

2022版Unity创建时没有2D灯光(2D Light),没有Global LIght2D怎么办?

简单来说就是你的渲染管线没有升级到URP管线,所以才没有这些2D灯光 如果你的创建灯光和我一样,没有红线划掉的部分,说明你和我的问题一样,看下面的教程可以解决。 1. 确保Unity版本 确保你的Unity版本至少为2019.4或更高版本&…

技术小白如何快速的了解opentenbase?--把握四大特色

1.基本介绍 作为一名计算机专业相关背景的学生,我们或多或者接触过一些数据库,对于数据库肯定是有所了解的; 你可能学习的是和微软的sql server这样的数据库; 你可能接触的更多的是企业级项目开发里面使用的这个mysql数据库&#…

企业微信AI落地:如何选择企业微信服务商?

现在企业用企业微信做客户运营,最怕的不是“没AI工具”,而是“AI用不起来”——要么功能不贴业务场景,员工嫌麻烦不用;要么回复不专业,客户体验差;要么数据不同步,管理者看不到效果。其实解决这…

【学Python自动化】 11 标准库简介 —— 第二部分

一、格式化输出 reprlib 模块 提供定制版 repr(),缩略显示大型或深层嵌套对象import reprlib reprlib.repr(set(supercalifragilisticexpialidocious)) # "{a, c, d, e, f, g, ...}"pprint 模块 美化输出,添加换行和缩进显示复杂数据结构impor…

【Kubernetes】知识点2

15. 什么是Pod的根容器?答:Pod 的根容器是每个 Pod 中默认存在的一个特殊容器pause容器,有时也称为infra容器,它是Pod 启动时创建的第一个容器,也是整个 Pod中所有容器的 “父容器”。其核心作用是为 Pod 内的所有容器…

视频增强AI哪个效果好?实战对比帮你找到最适合的工具

hitpaw 牛小影hitpaw 牛小影在处理低质量视频时,我们经常会遇到画面模糊、噪点过多、分辨率不足等问题,比如老旧视频资料修复、监控录像清晰化、手机拍摄视频画质提升等。这时候,一款好用的视频增强AI软件就成了刚需。下面就为大家盘点几款效…

C#工作流示例(WorkflowCore)

using Microsoft.Extensions.DependencyInjection; using WorkflowCore.Interface; using WorkflowCore.Models;namespace LeaveRequestWorkflow {// 请假申请单public class LeaveBill{/// <summary>/// 申请人/// </summary>public string EmployeeName { get; s…

两个子进程之间使用命名pipe

两个子进程间可以使用命名管道&#xff0c;非常简单。管道如果文件一样存在硬盘中&#xff0c;使用ls可以查看&#xff0c;管道文件0字节。使用fork函数分别创建两个子进程。 一个负责读数据&#xff0c;一个负责写数据。 #define _GNU_SOURCE #include <stdio.h> #inclu…

第一讲、Kafka 初识与环境搭建

一、Kafka 是什么&#xff1f; Apache Kafka 是一个分布式的消息队列&#xff08;Message Queue&#xff09;与流处理平台。 它最早由 LinkedIn 开发&#xff0c;后来捐赠给 Apache 基金会&#xff0c;现已广泛应用于日志收集、实时数据管道和大数据处理。 Kafka 的特点&…

Conda相关的用法

1、背景 此文主要记录conda的一些用法&#xff0c;大部分命令来自ai搜索以及自己的理解。 2、安装conda 2.1 选择 conda 版本 2.1.1 Anaconda 含有 Conda 大量科学计算包&#xff08;NumPy、Pandas、Matplotlib 等&#xff09;适合数据科学、机器学习初学者下载地址&…

数据库选择有讲究?SQLite、PostgreSQL还是MySQL?

不同规模的项目&#xff0c;数据库选择有讲究。大家好&#xff0c;我是技术支持彼得&#xff0c;每天两眼一睁就是为客户解决问题。在日常使用我们的视频平台时&#xff0c;很多用户会问到数据库选择的问题。今天就来详细说说EasyGBS、EasyNVR和EasyCVR三大平台该如何选择数据库…

在VMware的Win10虚拟机中安装使用ENSP

VMware安装Windows10 安装ENSP及相关软件 把安装ENSP所使用的相关复制到已安装好的Windows10虚拟机中&#xff0c;如下图所示。 安装VirtualBox 安装时请确保路径为英文目录&#xff0c;并在出现"安装设备软件"或"Oracle USB设备"提示时选择安装选项。具…

Go 语言面试题详解之接口 (Interface) 详解一文吃透

自古流传着一个传言...在 Go 语言面试的时候必有人会问接口&#xff08;interface&#xff09;的实现原理。这又是为什么&#xff1f;为何对接口如此执着&#xff1f;实际上&#xff0c;Go 语言的接口设计在整体扮演着非常重要的角色&#xff0c;没有他&#xff0c;很多程序估计…