当前位置: 首页 > news >正文

深度学习-【语义分割】学习笔记4 膨胀卷积(Dilated convolution)

文章目录

  • 膨胀卷积
    • 为什么需要膨胀卷积
  • gridding effect
    • 连续使用三次膨胀卷积——1
    • 连续使用三次膨胀卷积——2
    • 连续使用三次膨胀卷积——3
  • Understanding Convolution for Semantic Segmentation

膨胀卷积

膨胀卷积,又叫空洞卷积。


左边是普通卷积,右边是膨胀卷积。
r 表示间隙,即膨胀因子。(当 r = 1时就是普通卷积)

一般使用过程中, 输入和输出特征图的高和宽是不会发生变化的。

复习:N = (W - F + 2P)/ S + 1

为什么需要膨胀卷积

在语义分割任务中,通常会使用分类网络作为backbone,在backbone中会对图片进行一系列的下采样。通过backbone之后,会使用一系列的上采样恢复原来的图片大小。如果特征图的高宽下采样倍率太大的话,还原到原来尺寸后,图片将丢失很多细节信息。

例如,在VGG网络中,通过max pooling层进行池化,这降低了特征图的高度和宽度,也丢失了一些细节信息,而丢失的信息无法通过上采样进行还原,在语义分割任务中将导致分割的效果不理想。而如果去掉max pooling层,将导致特征图的感受野变小。

利用膨胀卷积,既能增大感受野,又能保持输入输出特征图的高和宽不发生变化,解决了上述问题。但是,是否无脑堆叠膨胀卷积就可以了呢?

参考论文Understanding Convolution for Semantic Segmentation,在膨胀卷积使用过程中,会出现gridding effect的问题。


gridding effect

首先了解 什么是 gridding effect 问题:
在这里插入图片描述

连续使用三次膨胀卷积——1

layer4上中心点使用各个点的信息的次数:
在这里插入图片描述
这就是gridding effect现象,即layer4上的一个像素并没有利用到这个范围内所有像素点的信息,而是有间隔的。(这就会导致一些细节上信息的丢失)。


连续使用三次膨胀卷积——2

与实验一不同的是,第一个膨胀卷积的膨胀因子为1,也就是普通卷积。
在这里插入图片描述
这里一个像素点使用的信息已经是某个范围内全部像素点的信息了。
感受野(RF,receptive field)= 13 × 13


连续使用三次膨胀卷积——3

连续使用三个普通卷积。

在这里插入图片描述
感受野(RF,receptive field)= 7 × 7

实验 2 和 3 对比,可以发现使用膨胀卷积在参数数量相同的情况下可以使感受野变大很多。


Understanding Convolution for Semantic Segmentation

@article{PanquWang2018UnderstandingCF, title={Understanding Convolution for Semantic Segmentation}, author={Panqu Wang and Pengfei Chen and Ye Yuan and Ding Liu and Zehua Huang and Xiaodi Hou and Garrison W. Cottrell}, journal={Workshop on Applications of Computer Vision}, year={2018}}

https://readpaper.com/paper/2592939477
在这里插入图片描述
Mi 表示第 i 层两个非零元素(即被使用到的像素)之间的最大距离。
设计原则1:需要 M2 <= K。

[1,2,5]
在这里插入图片描述

[1,2,9]
在这里插入图片描述


在这里插入图片描述
设计原则2:锯齿状膨胀因子设置,如[1,2,3,1,2,3]


在这里插入图片描述

设计原则3:公约数不能大于1
[2,4,8]
在这里插入图片描述


结果对比:

在这里插入图片描述


参考资料:
https://blog.csdn.net/Zen_of_code/article/details/127536998
https://www.bilibili.com/video/BV1Bf4y1g7j8/

相关文章:

深度学习-【语义分割】学习笔记4 膨胀卷积(Dilated convolution)

文章目录膨胀卷积为什么需要膨胀卷积gridding effect连续使用三次膨胀卷积——1连续使用三次膨胀卷积——2连续使用三次膨胀卷积——3Understanding Convolution for Semantic Segmentation膨胀卷积 膨胀卷积&#xff0c;又叫空洞卷积。 左边是普通卷积&#xff0c;右边是膨胀…...

【10】SCI易中期刊推荐——工程技术-计算机:人工智能(中科院2区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…...

模电计算反馈系数,有时候转化为计算电阻分压的问题

模电计算反馈系数&#xff0c;有时候转化为计算电阻分压的问题 如果是电压反馈&#xff0c;F的除数是Uo 如果是电流反馈&#xff0c;F的除数是Io 串联反馈&#xff0c;F的分子是Uf 并联反馈&#xff0c;F的分子是If 点个赞呗&#xff0c;大家一起加油学习&#xff01;...

专治Java底子差,不要再认为泛型就是一对尖括号了

文章目录一、泛型1.1 泛型概述1.2 集合泛型的使用1.2.1 未使用泛型1.2.2 使用泛型1.3 泛型类1.3.1 泛型类的使用1.2.2 泛型类的继承1.4 泛型方法1.5 泛型通配符1.5.1 通配符的使用1&#xff09;参数列表带有泛型2&#xff09;泛型通配符1.5.2 泛型上下边界1.6 泛型的擦除1.6.1 …...

PayPal轮询收款的那些事儿

想必做跨境电商独立站的小伙伴&#xff0c;对于PayPal是再熟悉不过了&#xff0c;PayPal是一个跨国际贸易的支付平台&#xff0c;对于做独立站的朋友来说跨境收款绝大部分都是依赖PayPal以及Stripe条纹了。简单来说PayPal跟国内的支付宝有点类似&#xff0c;但是PayPal它是跨国…...

【Linux】项目自动化构建工具——make/Makefile

目录 1.make与Makefile的关系 Makefile make 项目清理 clean .PHONY 当我们编写一个较大的软件项目时&#xff0c;通常需要将多个源文件编译成可执行程序或库文件。为了简化这个过程&#xff0c;我们可以使用 make 工具和 Makefile 文件。Makefile 文件可以帮助我们自动…...

成本降低90%,OpenAI正式开放ChαtGΡΤ

今天凌晨&#xff0c;OpenAI官方发布ChαtGΡΤ和Whisper的接囗&#xff0c;开发人员现在可以通过API使用最新的文本生成和语音转文本功能。OpenAI称&#xff1a;通过一系列系统级优化&#xff0c;自去年12月以来&#xff0c;ChαtGΡΤ的成本降低了90%&#xff1b;现在OpenAI用…...

hls.js如何播放m3u8文件(实例)?

HLS&#xff08;HTTP Live Streaming&#xff09;是一种视频流传输协议&#xff0c;是苹果推出的适用于iOS与macOS平台的流媒体传输协议。它将视频分割成若干个小段&#xff0c;每个小段大小一般为2~10秒不等&#xff0c;并通过HTTP协议进行传输。通过在每个小段之间插入若干秒…...

大数据平台建设方法论集合

文章目录从0到1建设大数据解决方案大数据集群的方法论数据集成方法论机器学习算法平台方法论BI建设的方法论云原生大数据的方法论低代码数据中台的方法论大数据SRE运维方法论批流一体化建设的方法论数据治理的方法论湖仓一体化建设的方法论数据分析挖掘方法论数字化转型方法论数…...

25- 卷积神经网络(CNN)原理 (TensorFlow系列) (深度学习)

知识要点 卷积神经网络的几个主要结构: 卷积层&#xff08;Convolutions&#xff09;: Valid :不填充&#xff0c;也就是最终大小为卷积后的大小. Same&#xff1a;输出大小与原图大小一致&#xff0c;那么N ​变成了​N2P. padding-零填充. 池化层&#xff08;Subsampli…...

把数组里面数值排成最小的数

问题描述&#xff1a;输入一个正整数数组&#xff0c;将它们连接起来排成一个数&#xff0c;输出能排出的所有数字中最小的一个。例如输入数组{12, 567}&#xff0c;则输出这两个能排成的最小数字12567。请给出解决问题的算法&#xff0c;并证明该算法。 思路&#xff1a;先将…...

云his系统源码 SaaS应用 基于Angular+Nginx+Java+Spring开发

云his系统源码 SaaS应用 功能易扩 统一对外接口管理 一、系统概述&#xff1a; 本套云HIS系统采用主流成熟技术开发&#xff0c;软件结构简洁、代码规范易阅读&#xff0c;SaaS应用&#xff0c;全浏览器访问前后端分离&#xff0c;多服务协同&#xff0c;服务可拆分&#xff…...

小红书场景营销怎么做?场景营销主要模式有哪些

小红书作为新兴媒体领域的佼佼者&#xff0c;凭借着生动&#xff0c;直观&#xff0c;代入感等元素的分享推荐收揽了巨额的流量。但是&#xff0c;随着时代的脚步逐渐加快&#xff0c;发展和变革随之涌来&#xff0c;传统的营销已经无法满足。所以场景营销就出现了。今天就来和…...

c++基础——数组

数组数组是存放相同类型对象的容器&#xff0c;数组中存放的对象没有名字&#xff0c;而是要通过其所在的位置访问。数组的大小是固定的&#xff0c;不能随意改变数组的长度。定义数组数组的声明形如 a[b]&#xff0c;其中&#xff0c;a 是数组的名字&#xff0c;b 是数组中元素…...

odoo15 登录界面的标题自定义

odoo15 登录界面的标题自定义 原代码中查询:<title>Odoo<title> <html> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Odoo</title><link rel="shortcut icon…...

【内网服务通过跳板机和公网通信】花生壳内网穿透+Nginx内网转发+mqtt服务搭建

问题&#xff1a;服务不能暴露公网 客户的主机不能连外网&#xff0c;服务MQTT服务部署在内网。记做&#xff1a;p1 (computer 1)堡垒机&#xff08;跳板机&#xff09;可以连外网&#xff0c;内网IP 和 MQTT服务在同一个网段。记做&#xff1a;p2 (computer 2)对他人而言&…...

【多线程常见面试题】

谈谈 volatile关键字的用法? volatile能够保证内存可见性,强制从主内存中读取数据,此时如果有其他线程修改被volatile修饰的变量,可以第一时间读取到最新的值 Java多线程是如何实现数据共享的? JVM把内存分成了这几个区域: 方法区,堆区,栈区,程序计数器&#xff1b; 其中堆区…...

深度剖析指针(下)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容还是我们的指针呀&#xff0c;上两篇博客我们基本上已经把知识点过了一遍&#xff0c;这篇博客就让小雅兰来带大家看一些和指针有关的题目吧&#xff0c;现在&#xff0c;就让我们进入指针的世界吧 复习&#xff1a; 数组和…...

爬虫与反爬虫技术简介

互联网的大数据时代的来临&#xff0c;网络爬虫也成了互联网中一个重要行业&#xff0c;它是一种自动获取网页数据信息的爬虫程序&#xff0c;是网站搜索引擎的重要组成部分。通过爬虫&#xff0c;可以获取自己想要的相关数据信息&#xff0c;让爬虫协助自己的工作&#xff0c;…...

Pag的2D渲染执行流程

Pag的渲染 背景 根据Pag文章里面说的&#xff0c;Pag之前长时间使用的Skia库作为底层渲染引擎。但由于Skia库体积过大&#xff0c;为了保证通用型&#xff08;比如兼容CPU渲染&#xff09;做了很多额外的事情。所以Pag的工程师们自己实现了一套2D图形框架替换掉Skia&#xff…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...