图像分割实战-系列教程12:deeplab系列算法概述

🍁🍁🍁图像分割实战-系列教程 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在Pycharm中进行
本篇文章配套的代码资源已经上传

1、空洞卷积

图像分割中的传统做法:为了增大感受野,通常都会选择pooling操作,但是也会丢失一部分信息

当需要检测、分割的目标比较小的时候,这些小目标在图像中的占据的位置也比较小,只需要局部的特征就可以识别,那些目标比较大、还有识别难度比较大的目标,只用局部的特征就不好做这个物体的识别。

这个应该怎么做呢?一般在深度学习中,需要堆叠很多很多层,目的就是通过各种各样的卷积和偏执权重参数去拟合数据,还有就是扩充一个东西,就是感受野。经过多次卷积,特征图的一个点,可能会代表原始图像中一个比较大的区域,一个点所能代表的区域大小,就是感受野。所以目标大、难度的物体,包含的特征比较多,所以需要多次卷积至特征图比较小的时候,得到高阶特别才能比较好的识别这个物体。

一般的做法就是,每隔两次卷积,做一次pooling,并且重复这个堆叠,堆叠的越多感受野肯定越大。但是在感受野增大的过程中,也会丢失一些信息,这里的问题出在哪儿呢?就是做pooling的时候丢失了信息。

如图所示,左边为传统卷积,右边为空洞卷积(dialate convolution)

传统卷积,加上padding的原因是因为边缘信息被计算的比较少,空洞卷积解决这个问题的方法是卷积个数没变,但是卷积区域变化了,每次卷积过程中,只有部分数据参与计算,这样的计算方式比传统卷积的特征的感受野变大了一些。

通过设置dilated参数可以得到不同感受野的特征(3 * 3,7 * 7,15 * 15)
在这里插入图片描述

2、空洞卷积的优势

  • 图像分割任务中(其他场景也适用)需要较大感受野来更好完成任务
  • 通过设置dilation rate参数来完成空洞卷积,并没有额外计算
  • 可以按照参数扩大任意倍数的感受野,而且没有引入额外的参数
  • 应用简单,就是卷积层中多设置一个参数就可以了

3、感受野

deeplab这个网络总是在强调感受野这个概念

如果堆叠3个3x3的卷积层,并且保持滑动窗口步长为1,其感受野就是77的了,这跟一个使用77卷积核的结果是一样的,那为什么非要堆叠3个小卷积呢?
在这里插入图片描述
假设输入大小都是h* w *c,并且都使用c个卷积核(得到c个特征图),可以来计算一下其各自所需参数:
在这里插入图片描述
很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,因为每次卷积后都会经过激活函数和BatchNormalization,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作

4、SPP-Layer

SPP层,spatial pyramid pooling layer

  • 网络中通常要求输入固定
  • SPP通用不同的池化层
  • 再进特征拼接
  • 只要保障输入特征固定就可以了

在这里插入图片描述
在图像处理中,有图像金字塔这个概念,就是将一个图像调整多个分辨率,对应出多个图像就是图像金字塔。对应到网络中,实际的输入大小是不确定的,如果能让网络自己能够适应,但是被全连接层限制住了,因为最后输出的分类个数是确定的。

SPP层就是将特征图分成3种,假设特征图是n * n,将其分别分为a * a、b * b、c * c个格子,其中a>b>c,然后每个格子都通过Maxpooling,最后得到a * a、b * b、c * c个特征值,再将其拼接起来,但是在这里是不涉及到特征图的个数的,所以还会乘上特征图的个数。这个过程如上图所示。

4.1 常用的多尺度特征提取方法:

这些方法都比较通用,在各项视觉任务中均可以使用
在这里插入图片描述
(a) 传统的图像金字塔方法,将不同尺度的图像经过多层卷积后做特征拼接
(b) 第二种就是Unet方法
© 第三张就是空洞卷积
(d) 第四种即为SPP结构

5 ASPP

ASPP(atrous convolution SPP),其实就是跟SPP差不多,只不过引入了不同倍率的空洞卷积

在这里插入图片描述

6、deepLabV3+

整体网络架构:
效果提升不算多
Backbone可以改进
创新不多所以不是4版
在这里插入图片描述
如图所示,在Encoder部分,先经过带有空洞卷积层的DCNN,再经过有4个不同尺度并行的空洞卷积,最后结构拼接后再经过一维卷积得到一个特征图,这就是Encoder的输出。

而Decoder的输入就是就是DCNN的浅层输出,也就是不是最后一层的输出。得到的是浅层特征,与Encoder的输出都经过一维卷积,再拼接在一起,而为了匹配特征图长宽大小,Encoder还会进行上采样操作。

拼接的特征再经过卷积和上采样,得到最后的输出。

这就是deeplab的基本概述和整体思想。

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

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

相关文章

了解VR虚拟现实的沉浸式效果及其技术特点!

VR虚拟现实体验装置作为近年来人气火爆的科技产品,以其独特的沉浸式体验效果吸引了众多用户,那么,你知道这种VR体验装置是如何实现沉浸式体验效果的吗?它又具备了哪些技术特点呢? 一、真实的场景体验 VR虚拟现实技术通…

Windows 环境多个JDK安装与切换

一、下载jdk 去Oracle官网上下载想要安装的jdk版本,https://www.oracle.com/java/technologies/downloads/。 二、安装jdk 双击.exe文件,选择好安装目录进行安装。多个版本的jdk重复这两步操作就好。 三、多版本的jdk都下载安装完成之后&#xff0…

算法实战(一)

基础编程题 题目来源([PAT题目](https://pintia.cn/problem-sets/14/exam/problems/type/6))6-2 多项式求值6-5 求自定类型元素的最大值6-6 求单链表结点的阶乘和6-7 统计某类完全平方数6-9 统计个位数字 题目来源(PAT题目) 6-2 多项式求值 裁判测试程序样例: #in…

【六大排序详解】终篇 :冒泡排序 与 快速排序

终篇 :冒泡排序 与 快速排序 1 冒泡排序1.1 冒泡排序原理1.2 排序步骤1.3 代码实现 2 快速排序2.1 快速排序原理2.1.1 Hoare版本代码实现 2.1.2 hole版本代码实现 2.1.3 前后指针法代码实现 2.1.4 注意取中位数局部优化 2.1.5 非递归版本非递归原理代码实现 2.2 特性总结 谢谢阅…

arm64虚拟化技术与kvm实现原理分享

文章目录 1 简介2 arm64 虚拟化相关硬件支持2.1 arm64 cpu 虚拟化基本原理及硬件支持2.2 系统寄存器捕获和虚拟寄存器支持2.3 VHE 特性支持2.4 内存虚拟化支持2.5 IO 虚拟化支持2.6 DMA 虚拟化支持2.7 中断虚拟化支持2.8 定时器虚拟化支持 3 arm64 kvm 初始化流程3.1 初始化总体…

.NET学习教程一——.net基础定义+VS常用设置

一、定义 .NET分为.NET平台和.NET框架。 .NET平台(厨房).NET FrameWork 框架(柴米油盐酱醋茶) .NET平台(中国移动联通平台).NET FrameWork 框架(信号塔) .NET平台基于.NET Fra…

Ansys Lumerical | 曲面波导锥度(varFDTD 和 FDTD)

附件下载 联系工作人员获取附件 在本例中,我们将使用MODE 2.5D变分FDTD求解器确定SOI锥度的最佳形状。 注意:也可以使用特征模态展开 (EME) 求解器来模拟此锥度。 我们将首先对这种锥度的设计进行参数化,如下所示&a…

k8s 监控告警终极方案

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 最近一直在搞基于K8S的监控告警平台建设,查找了不少资料,也实验了不少次,目前算是有一定的成果了,分享一下,以下是我们的系统…

SpringBoot 中 @Transactional 注解的使用

一、基本介绍 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。本篇只说明声明式注解。 1、在 spring 项目中, Transactional 注解默认会回滚运行时异常及其子类,其它范…

k8s源码阅读环境配置

源码阅读环境配置 k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理,同时提升我们Go编程能力。 IDE使用Goland,代码阅读环境需要进行如下配置: 从github上下载代码:https://github.com/kubernetes/kubernetes在GOPATH目…

基于JavaWeb+BS架构+SpringBoot+Vue智能停车计费系统的设计和实现

基于JavaWebBS架构SpringBootVue智能停车计费系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 绪 论 1 1.1 研究背景 1 1.2 研究意义 1 1.3 系统主要功能 1 1.4 拟解决…

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题: 尝试 问题得到解决 我的解释 问题: 最近游戏要上线,发现一个现象,部分机型在启动的时候闪退或者黑屏,概率是5%左右,通过Bugly只有个别机型才有这个现象,其实真实情况比这严重的多…