9.2.2 DeepLab系列模型中每一代的创新是什么?是为了解决什么问题?

2024-06-18 16:04

本文主要是介绍9.2.2 DeepLab系列模型中每一代的创新是什么?是为了解决什么问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9.2.2 DeepLab系列模型中每一代的创新是什么?是为了解决什么问题?

前情回顾:9.2.1 简述图像分割中经常用到的编码器-解码器网络结构的设计理念。

DeepLab是Google 团队提出的一系列图像分割算法

DeepLab v1在2014年被提出,并在PASCAL VOC2012数据集上取得了图像分割任务第二名的成绩。

Google 团队之后还陆续推出了DeepLab v2和DeepLab v3。

DeepLab 系列已经成为图像分割领域不可不知的经典算法。

DeepLab v1

DeepLab v1算法主要有两个创新点,分别是

  1. 空洞卷积(Atrous Covolution)和
  2. 全连接条件随机场(fully connected CRF)

具体算法流程如图9.5所示。

  • 空洞卷积

空洞卷积是为了解决编码过程中信号不断被下采样、细节信息丢失的问题

问题:由于卷积层提取的特征具有平移不变性,这就限制了定位精度。

  • 全连接条件随机场

解决:所以DeepLab v1引入了全连接条件随机场提高模型捕获局部结构信息的能力

具体来说,将每一个像素作为条件随机场的一个节点,像素与像素间的关系作为边,来构造基于全图的条件随机场。参考文献[29]采用基于全图的条件随机场而非短程条件随机场(short-range CRF),主要是为了避免使用短程条件随机场带来的平滑效果。

正是如此,与其他先进模型对比,DeepLab v1的预测结果拥有更好的边缘细节。

DeepLab v2

相较于DeepLab vl,DeepLab v2的不同之处是

  1. 提出了空洞空间金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)[30]
  2. 并将 DeepLab v1 使用的VGG 网络替换成了更深的ResNet 网络

ASPP 可用于解决不同检测目标大小差异的问题:通过在给定的特征层上使用不同扩张率的空洞卷积,ASPP可以有效地进行重采样,如图9.6所示。模型最后将ASPP各个空洞卷积分支采样后的结果融合到一起,得到最终的分割结果。

DeepLab v3

DeepLab v3 在ASPP部分做了进一步改动。

  1. 首先,DeepLab v3加入了批归一化(BN)层

  2. 其次,将ASPP中尺寸为3x3、空洞大小为24的卷积(图9.6中最右边的卷积)替换为一个普通的1x1卷积,以保留滤波器中间部分的有效权重。

​ 这么做的原因是研究者通过实验发现,随着空洞卷积扩张率的增大,滤波器中有效权重的个数在减小。

  1. 为了克服长距离下有效权重减少的问题,DeepLab v3 在空洞空间金字塔的最后增加了全局平均池化以便更好地捕捉全图信息。

  2. 此外,DeepLab v3去掉了CRF

  3. 并通过将ResNet的Block4复制3次后级联在原有网络的最后一层来增加网络的深度。网络深度的增加是为了捕获更高层的语义信息。

改进之后的ASPP部分如图9.7所示[31]。
在这里插入图片描述

DeepLab v3+

  1. DeepLab v3+[32]在DeepLab v3的基础上,增加了一个简单的解码器模块,用来修复物体边缘信息
  2. 同时DeepLab v3+还将深度可分卷积(Depthwise Separable Convolution)应用到空洞空间金字塔和解码器模块上,以得到更快、更强大的语义分割模型。

总结与扩展

相比语义分割和实例分割,全景分割从2018年才开始兴起,虽然目前相关的研究还不是特别多,但已经可以观察到越来越多的机构将研究重心从语义分割、实例分割转移到全景分割上。可以预测,全景分割将会成为图像分割领域的下一个热点。

参考文献:
[29] CHEN L-C, PAPANDREOU G, KOKKINOS I, et al. Semantic image segmentation with deep convolutional nets and fully connected CRFs[J].arXiv preprint arXiv: 1412.7062,2014.
[30] CHEN L-C, PAPANDREOU G, KOKKINOS I,et al. DeepLab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017: 834-848.
[31] CHEN L-C, PAPANDREOU G, SCHROFF F, et al. Rethinking atrous convolution for semantic image segmentation[J]. arXiv: 1706.05587,2017.
[32] CHEN L-C, ZHU Y, PAPANDREOU G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//Proceedings of the European Conference on Computer Vision, 2018: 801-818.

这篇关于9.2.2 DeepLab系列模型中每一代的创新是什么?是为了解决什么问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072461

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos