空洞卷积atrous/dilated convolution

news2024/11/18 11:28:27

1、定义

空洞卷积(atrous/dilated convolution)又称膨胀卷积是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。空洞卷积向卷积层引入了一个称为“扩张率/膨胀率(dilation rate)”的新参数,该参数定义了卷积核各点之间的间隔数量,即膨胀系数等于卷积核高和宽方向的扩张倍数。
普通的标准convolution的dilatation rate为1

2、图解定义

在这里插入图片描述

  • 图(a)是3×3的1-dilated conv,和普通卷积操作一样
  • 图(b)是3×3的2-dilated conv,实际的卷积核大小仍为3×3,但是空洞为1,空洞的位置用0填补,填补完后的卷积核大小变为5×5,然后再进行卷积操作
  • 图©是3×3的4-dilated conv
    注意:图中的绿色背景是膨胀后卷积核的感受野;用膨胀后的卷积核大小进行卷积运算

3、公式

膨胀后的卷积核大小 = 膨胀率r × (原始卷积核大小 - 1) + 1
元素间的空洞间隔 = 膨胀率r - 1
举例:
图(a),膨胀率r=1 ----> 元素间的空洞间隔=0 ----> 膨胀后的卷积核大小=3×3
图(b),膨胀率r=2 ----> 元素间的空洞间隔=1 ----> 膨胀后的卷积核大小=5×5
图©,膨胀率r=4 ----> 元素间的空洞间隔=3 ----> 膨胀后的卷积核大小=9×9

4、优点及存在问题

优点:
(1)空洞卷积拥有更大的感受野,且参数量和计算量不发生改变;
(2)保留了内部数据结构;
(3)避免使用下采样。
存在问题:
(1)空洞卷积的卷积核的元素不连续,即不是所有的像素都用来计算,因此这里将信息看作checker-board的方式将会损失信息的连续性。(栅格效应,膨胀卷积不能覆盖所有的图像特征,如下图所示)
在这里插入图片描述
(2)我们空洞卷积的设计是用来获取long-ranged information。但是光采用大dilation rate的信息或许只对一些大物体分割有效果,却对小物体来说可能则有弊无利了。如何同时处理不同大小的物体的关系,是设计空洞卷积网络的关键。

5、混合空洞卷积HDC

混合膨胀卷积是针对膨胀卷积存在的问题所提出的,对比膨胀卷积,主要包含以下三方面的特征:
(1)叠加卷积的dilation rate不能有大于1的公约数。比如[2, 4, 6]则不是一个好的三层卷积,依然会出现栅格效应gridding effect。
(2)我们将dilation rate设计成锯齿状结构,例如[1, 2, 5, 1, 2, 5]循环结构。
(3)需要满足以下式子:
在这里插入图片描述
其中,ri​是第i 层的dilation rate,而Mi​是指在i层的最大dilation rate,那么假设总共有n层的话,默认Mn ​= rn​,假设我们使用的卷积核大小为 k × k,我们的目标则是M2 ​≤ k,这样我们至少可以用dilation rate = 1即普通卷积的方式来覆盖掉所有洞。

举例:dilation rate = [1, 2, 5] with 3 x 3 kernel (可行的方案)
在这里插入图片描述

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

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

相关文章

Excel 个人财务:如何在 Excel 模板中创建预算

wpcmf “金钱是一种工具。使用得当,它会变得美丽——使用不当,它会变得一团糟!” – 布拉德利文森 正确使用金钱需要纪律。在本教程中,我们将了解如何使用 Excel 进行个人财务以正确管理我们的预算和财务。我们将涵盖以下主题。 …

Java使用spire进行word文档的替换

前言 今天遇到一个需求,需要对word模板进行替换制定的变量 在网上找了很多方案,做了很多的demo,下面就把我觉得比较简单的一种分享给大家 本次的主角是:spire.doc spire.doc是专门实现对word的操作(包括文字&#…

「数据密集型系统搭建」原理篇|OLAP、OLTP,竟是两个世界

本篇来聊聊OLAP与OLTP的区别以及它们各自的适用场景,以此话题为导引和大家聊聊技术视野与知识储备对于研发同学的重要性,最后站在事务处理与在线分析的角度分别论述下两个数据世界的底层构建逻辑。 OLAP、OLTP的概念与区别 概念 了解OLAP、OLTP的概念&…

【CANN训练营第三季】学习ascend-CANN遇到的经典疑难问题总结

1、/home/HwHiAiUser/samples_1/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification/src/…/inc/utils.h:13:10: fatal error: acl/acl.h: No such file or directory #include “acl/acl.h” 原因:放错了DDK——PATH export D…

【Unity3D】快速上手 EasyAR

目录 一,AR技术 1.AR简介 2.AR特点 3.AR工作原理 二,EasyAR 插件 1.获取Key 2.EasyAR 插件下载和导入 三,快速上手 EasyAR 废话不多说上运行效果 一,AR技术 1.AR简介 AR(Augmented Reality,增强现…

RedLock算法(红锁算法)介绍

文章目录一. 部署图二. RedLock算法简单介绍加锁解锁一. 部署图 各redis独立部署,各自独立 二. RedLock算法简单介绍 加锁 应用程序获取系统当前时间应用程序使用相同的kv值依次从多个redis实例中获取锁。 如果某一个节点超过一定时间依然没有获取到锁则直接放…

Porjet1 小白学习CANoe16安装、新建工程、新建数据库、简单运行

准备工作 1,下载CANoe16(因为笔者只找到了官方提供的CANoe16的DEMO license) 2,安装CANoe16,点击默认安装即可,不需要安装驱动。 3,如果桌面没有找到CANoe16的打开方式可以参考 解决安装CANoe1…

OpenGL之Shader编程入门

1.shader 编程基础 1.1 Vertex shader与Fragment shader Vertex shader即顶点着色器,用来改变顶点的属性。Fragment shader即片元着色器,用来改变片元的颜色,在Direct3D中称为Pixel shader,像素着色器。 1.2 编程语言 面向OpenG…

C语言快速互转HEX(16进制)和原始字符串/数组

C语言快速互转HEX(16进制)和原始字符串/数组缘由这个起因是昨晚群里有人在讨论怎么把字符串转成HEX方法最佳,讨论到最后变成哪种方法效率最优了。毕竟这代码是要在MCU上面跑的,要同时考虑到时间和空间的最优解。当然讨论的是有结果…

Java8流式计算相关

目录 lambda 优点 语法介绍 语法格式一 : 语法格式二 : 语法格式三 : 语法格式四 : 语法格式五 : 语法格式六 : 方法引用 stream Stream流的常用方法: 创建动态list 创建固定长度list map filter groupingBy sum list转map: map转li…

谷粒商城学习笔记

docker 安装docker docker官方centos镜像下载地址:https://docs.docker.com/engine/install/centos/ 步骤: 先卸载,如果不是root用户在前边加上sudo sudo yum remove docker \docker-client \docker-client-latest \docker-common \docke…

C 程序设计教程(05)—— C 语言的数据类型(三):指针类型

C 程序设计教程(05)—— C 语言的数据类型(三):指针类型 该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用…

MySql中json类型数据的查询以及在MyBatis-Plus中的使用

表结构和初始数据 新建表结构 CREATE TABLE json_test (id int NOT NULL AUTO_INCREMENT,roles json DEFAULT NULL COMMENT 角色,project json DEFAULT NULL COMMENT 项目,PRIMARY KEY (id) ) ENGINEInnoDB;初始数据 INSERT INTO ctts_dev.json_test(id, roles, project) VALU…

SpringBoot 整合 xxl-job

文章目录部署 xxl-jobSpringBoot 配置maven 配置application.yaml配置 XxlJobConfigXxlJobSpringExecutor新建执行任务配置 xxl-job-admin执行器管理任务管理部署 xxl-job K8S 部署 xxl-job 参考文档:https://blog.csdn.net/weixin_42555971/article/details/12489…

【Web开发】Python实现Web服务器(Docker下部署Flask)

🍺基于Python的Web服务器系列相关文章编写如下🍺: 🎈【Web开发】Python实现Web服务器(Flask快速入门)🎈🎈【Web开发】Python实现Web服务器(Flask案例测试)&a…

分享112个PHP源码,总有一款适合您

PHP源码 分享112个PHP源码,总有一款适合您 链接:https://pan.baidu.com/s/1MaBtjYZk08o0eJT5_E79aQ?pwduldm 提取码:uldm 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载…

实战丨从0到1搭建结算平台

一、概述我们最开始分享了O2O电商支付清结算体系,接着分享了如何从0-1搭建计费体系,接下来我们分享:各方的钱算完之后怎么付出去,也即结算平台建设的实操与设计思路。1.什么是结算?说结算平台之前,先说一下…

22年 | 年前总结 | 主业谋生存,副业谋发展

22年关键词 复盘 | 极简 | 长期主义 | 阅读 | 斜杠青年 | 一事无成 | … 当然了,2023也会继续延续某些关键词。 一壶清酒,敬这红尘也敬我 很多人都在说,疫情存在的时间比任何一段恋情还要长。 而我想说,我失败的次数还超过了做…

Java设计模式中策略模式是怎么回事/怎么替代繁琐if-else语句/如何优化条件选择语句

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 6.3 策略模式 6.3.1 概述 定义了一系列算法,并将每个算法封装起来,使它们可以相互替代,且算法的变化不会影响使用算法的用户属…

【自学Python】Python注释

文章来源嗨客网(www.haicoder.net) Python注释 Python注释教程 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性。一旦程序中某部分内容被注释掉,则该内容将会被 Python 解释器忽略,换句话说&#xff0c…