语义分割前储知识

news2024/12/24 11:38:18

CNN中的Layers

除了正向传播计算loss,反向传播更新parameters,我们还需要知道参数是如何计算的,这个很重要。

我们这里介绍几个在deep learning中经常用到的几个层,dense layer(全连接层),convolutional layer(卷积层),pooling layer(池化层)。

可以参考:https://blog.csdn.net/qq_43369406/article/details/127134277

dense layer

在全连接层中,我们只会关注所需要的参数的数量,这里的参数是指layer1到layer2上面连接的线上的权重值+1个bias(可以参考吴恩达机器学习)。例如下图的input layer到hidden layer1他们所需要的参数数量为(8+1)*9=81个参数。

在这里插入图片描述

convolutional layer

卷积层的主要作用是做特征提取。我们先介绍几个卷积层的特性,卷积层的计算方式,再主要介绍卷积后输出特征矩阵大小以及卷积层参数个数。

卷积层具有如下几个特性:

  1. 卷积层具有局部感知机制和权值共享。其中权值共享机制使得每一层卷积所需要的参数大大小于全连接层所需要的参数。
  2. 卷积核的channel(深度/维数)与输入特征矩阵的channel相同。
  3. 输出特征矩阵的channel(深度/维数)与卷积核的个数相同。

卷积层的计算方式如下所示,它采用的是矩阵点乘的方式,即对应元素相乘再相加的方式进行,再将所得值写在矩阵中间元素的位置。

在这里插入图片描述

卷积后输出特征矩阵的深度等于卷积核的个数,输出特征矩阵的大小则有如下公式计算:

o u t p u t s i z e = ( i n p u t s i z e − f i l t e r s i z e + 2 ∗ p a d d i n g ) / s t r i d e + 1 outputsize=(inputsize-filtersize+2*padding)/stride+1 outputsize=(inputsizefiltersize+2padding)/stride+1

在这里插入图片描述

参数个数计算公式如下,其中1是bias:

n u m b e r = ( f i l t e r s i z e ∗ f i l t e r s i z e ∗ f i l t e t c h a n n e l + 1 ) ∗ f i l t e r n u m b e r number=(filtersize*filtersize*filtetchannel+1)*filternumber number=(filtersizefiltersizefiltetchannel+1)filternumber

pooling layer

池化层没有参数。

在这里插入图片描述

Transposed convolution转置卷积

转置卷积又被称为transposed convolution、deconvolution,他的主要作用是upsampling 上采样,常见的上采样方法还有bilinear interpolation双线性插值。转置卷积的主要步骤为填充后再卷积,结果上说:将输出特征矩阵大小大于输入特征矩阵大小:

在这里插入图片描述

转置卷积也是卷积,主要完成两个操作:

  1. 填充

在输入特征矩阵的元素间填充stride-1行0和stride-1列0;在输入特征矩阵的元素四周填充kernelSize-padding-1行0和kernelSize-padding -1列0。将inputSize变为inputSize’案例如下(只需要看前两步,公式忽略):

在这里插入图片描述

  1. 将卷积核参数做上下、左右翻转(这里指的是将encoder时候的卷积核中参数旋转180度得到deconder时候的卷积核参数,不需要训练得到参数,而是通过将encoder时候训练的权重共享得到。ps:1. 转置矩阵是沿着y=-x轴对称(行列互换) 2. 这个卷积核180度旋转类似于反向传播时卷积核旋转180度。)

在这里插入图片描述

  1. 做正常卷积操作,其中paddinng=0,stride=1

o u t p u t S i z e = ( i n p u t S i z e ′ − k e r n e l S i z e + 2 ∗ p a d d i n g ) / s t r i d e + 1 outputSize = (inputSize'-{kernelSize}+2*padding)/stride+1 outputSize=(inputSizekernelSize+2padding)/stride+1

参考链接

  1. 转置卷积 https://www.bilibili.com/video/BV1mh411J7U4

Dilated convolution空洞卷积

在语义分割中尽量不要下采样过大(例如VGG下采样了32倍),因为若下采样倍率过大,则在decoder的时候可能还原不回来。

dilated Conv又叫空洞卷积或者膨胀卷积。它的出现在于替代pooling层,即增大感受野的同时使得保持原输入特征图的高和宽不变(pooling层会使得特征图的高宽变小,例如VGG就缩小了32倍,会丢失很多信息,例如小目标的信息)。

在这里插入图片描述

但是在使用空洞卷积的时候会碰到例如gridding effect的问题,gridding effect即指的是在卷积的过程中,并不会用到所有像素信息,例如下图中白色部分的像素信息就没有使用到。

膨胀系数r=2,2,2
在这里插入图片描述

膨胀系数r=1,2,3
在这里插入图片描述

膨胀系数r=1,1,1
在这里插入图片描述

通过上述三组图,我们能够发现采用不同的膨胀系数,最终我们得到的receptive field(rf)感受野是不同的。我们需求则是:在保证不存在gridding effect的前提下,使得receptive field尽量大。根据这种需求我们提出了膨胀系数的设计准则:Hybrid Dilated Convolution(HDC)。

HDC的公式计算如下,只要满足 M 2 ≤ K M_2\le K M2K便可:

在这里插入图片描述

同时作者还提出了两个建议:建议将膨胀系数设置为锯齿结构(1,2,3,1,2,3);建议公约数不大于1;第1个膨胀系数为r=1。

参考链接:https://www.bilibili.com/video/BV1Bf4y1g7j8

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

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

相关文章

Redis源码---有序集合为何能同时支持点查询和范围查询

目录 前言 Sorted Set 基本结构 跳表的设计与实现 跳表数据结构 跳表结点查询 跳表结点层数设置 哈希表和跳表的组合使用 前言 有序集合(Sorted Set)是 Redis 中一种重要的数据类型,它本身是集合类型,同时也可以支持集合中…

记一次Nodejs减低npm版本的踩坑日记

使用了npm install -g npm6.4.1指令之后,把npm版本减低了,让后悲催的就来了。 由于npm 6.4.1 已经过时,导致运行npm时出现 npm does not support Node.js v18.14.2 版本不兼容问题 升级npm版本,npm install -g npmlatest 没用还是…

DM-VIO论文翻译

简介 DM-VIO: Delayed Marginalization Visual-Inertial Odometry DM-VIO: 延迟边缘化惯性视觉里程计 花了两天时间捏着鼻子把这篇论文翻译完了,很多术语和状态的表达方式可能是和这个团队以前的工作DSO以及VI-DSO保持了一致,所以看起来很是费劲&#…

STM32开发(17)----CubeMX配置CRC

CubeMX配置CRC前言一、什么是CRC?二、实验过程1.STM32CubeMX配置2.代码实现重载printf3.实验结果总结前言 本章介绍使用STM32CubeMX对CRC进行配置的方法,CRC的目的是保证数据的完整性,所有的STM32芯片都内置了一个硬件的CRC计算模块&#xf…

指针的进阶【下篇】

文章目录📀8.指向函数指针数组的指针📀9.回调函数📀8.指向函数指针数组的指针 🌰请看代码与注释👇 int Add(int x, int y) {return x y; } int Sub(int x, int y) {return x - y; } int main() {int (*pf)(int, int…

T3 出行云原生容器化平台实践

作者:林勇,就职于南京领行科技股份有限公司,担任云原生负责人,也是公司容器化项目的负责人。主要负责 T3 出行云原生生态相关的所有工作,如服务容器化、多 Kubernetes 集群建设、应用混部、降本增效、云原生可观测性基…

2023年中小企业实施智能制造的建议

智能制造的载体是制造系统,制造系统从微观到宏观有不同的层次,主要包括制造装备、制造单元、制造车间(工厂)、制造企业和企业生态等。随着智能制造的深入推进,未来智能制造将向以下五个方向发展。 (一&…

FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持

目录1、前言2、AD7606数据手册解读输入信号采集范围输出模式选择过采样率设置3、AD7606串行输出采集4、AD7606并行输出采集5、vivado仿真6、上板调试验证7、福利:工程代码的获取1、前言 AD7606是一款非常受欢迎的AD芯片,因为他支持8通道同时采集数据&am…

CFT Show 信息收集篇

CFT Show 信息收集篇1.CFT Show 信息收集篇1.1.WEB-11.1.1.打开靶场1.1.2.寻找Flag1.2.WEB-21.2.1.打开靶场1.2.2.寻找Flag1.3.WEB-31.3.1.打开靶场1.3.2.寻找Flag1.3.2.1.F12查看器1.3.2.2.查看源码1.3.2.3.抓包1.4.WEB-41.4.1.打开靶场1.4.2.寻找Flag1.4.2.1.robots介绍1.4.2…

10个黑客基础教程!简单有效

如果你的电脑运行缓慢,请使用下面介绍的方法来帮助加速、优化和提高电脑的性能。 1.关闭启动时自动运行的应用程序 计算机上安装的许多应用程序都可以将自己配置为在启动期间自动启动并继续在后台运行,但是,如果不是每天都使用这些应用程序…

基于vscode创建SpringBoot项目,连接postgresql数据库 2 更简单

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 3、基于vscode开发vue项目的详细步骤教程_水w的博客-CSDN博客 4、基于vscode开发vue项目的详细步骤教程 2 第三方图标库FontAw…

Spark RDD持久化

RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供…

杂记——14.git在idea上的使用及其实际开发介绍

这篇文章我们来讲一下git在idea上的使用,以及在实际开发过程中各个分支的使用及其具体的流程 目录 1.git在idea上的使用 1.1 idea上的git提交 1.2 idea上的分支切换 2.git在实际运用时的分支及其流程 2.1分支介绍 2.2具体流程 3.小结 1.git在idea上的使用 …

GraalVM-云原生时代的JVM(Java)

文章目录一、GraalVM是什么?二、GraalVM有哪些特点?2.1、高性能2.2、多语言支持2.3、互操作性2.4、安全性三、GraalVM的应用效果3.1、提高性能3.2、简化开发3.3、降低成本3.4、节省资源3.5、支持云环境四、使用GraalVM编译springboot应用程序4.1、下载并…

网络应用之表单提交

表单提交学习目标能够知道表单的提交方式能够知道表单中action属性的作用1. 表单属性设置<form>标签 表示表单标签&#xff0c;定义整体的表单区域action属性 设置表单数据提交地址method属性 设置表单提交的方式&#xff0c;一般有“GET”方式和“POST”方式, 不区分大小…

嵌入式之ubuntu终端操作与shell常用命令详解

目录 文件和目录列表 基本列表功能 显示列表长度 过滤输出列表 浏览文件系统 Linux 文件系统 遍历目录 处理文件 创建文件 复制文件 制表键自动补全 重命名文件 删除文件 处理目录 创建目录 删除目录 ​编辑其他常用命令与操作 Uname命令 clear命令 返回上一级命令 显…

Netty学习(一):Netty概述

一、原生NIO存在的问题 NIO 的类库和API繁杂&#xff0c;使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。需要具备其他的额外技能:要熟悉Java 多线程编程&#xff0c;因为NIO编程涉及到Reactor 模式&#xff0c;你必须对多线程和网络编程…

buu刷题(第一周)

目录 [DDCTF 2019]homebrew event loop action:trigger_event%23;action:buy;5%23action:get_flag; [CISCN2019 华东南赛区]Web4 [RootersCTF2019]babyWeb [GWCTF 2019]mypassword [NESTCTF 2019]Love Math 2 [BSidesCF 2019]Pick Tac Toe [RootersCTF2019]ImgXweb [SW…

2023 年网络安全漏洞的主要原因

​  网络安全漏洞已经并将继续成为企业面临的主要问题。因此&#xff0c;对于企业领导者来说&#xff0c;了解这些违规行为的原因至关重要&#xff0c;这样他们才能更好地保护他们的数据。 在这篇博文中&#xff0c;我们将概述 2023 年比较普遍的网络安全漏洞的主要原因。 云…

OpenCV4.x图像处理实例-道路车辆检测(基于背景消减法)

通过背景消减进行道路车辆检测 文章目录 通过背景消减进行道路车辆检测1、车辆检测思路介绍2、BackgroundSubtractorMOG23、车辆检测实现在本文中,将介绍如何使用简单但有效的背景-前景减法方法执行车辆检测等任务。本文将使用 OpenCV 中使用背景-前景减法和轮廓检测,以及如何…