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

相关文章

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas