Deeplab V1 和 V2讲解

article/2025/10/23 17:25:36

Deeplab V1

Background:
CNN的一个特性是invariance(不变性),这个特性使得它在high-level的计算机视觉任务比如classification中,取得很好的效果。但是在semantic segmentation任务中,这个特性反而是个障碍。毕竟语义分割是像素级别的分类,高度抽象的空间特征对如此low-level并不适用。
所以,要用CNN来做分割,就需要考虑两个问题,一个是feature map的尺寸,以及空间不变性。

Solution:
对于第一个问题,回忆一下之前的FCN,FCN通过反卷积层(现在反卷积层似乎有了更好的叫法,但是这里暂时沿用反卷积这个名字)将feature map还原到原图尺寸。
可是feature map为什么会变小呢?因为stride的存在。于是DeepLab就考虑,我直接把stride改成1,feature map不就变大了吗。将stride改小,确实能得到更加dense的feature map这个是毋庸置疑的,可是却也带来了另外一个问题即receptive field(RF)的改变问题。receptive field是直接和stride挂钩的,即

RFi+1 = RFi + (kernel-1)*stride (i越小越bottom)
按照公式,stride变小,要想保持receptive field不变,那么,就应该增大kernel size。于是就有了接下来的hole算法。
一开始,pooling layer stride = 2,convolution layer kernel size = 2,convolution layer第一个点的receptive field是{1,2,3,4},size为4
这里写图片描述

为了得到更加dense的feature map,将pooling layer stride改为1,如果这个时候保持convolution layer的kernel size不变的话,可以看到,虽然是更dense了,可是不再存在RF = {1,2,3,4}的点了。

这里写图片描述

当采用hole算法,在kernel里面增加“hole”,kernel size变大,相当于卷积的时候跨过stride减小额外带来的像素,RF就保持不变了,当然如果调整hole的size还能得到比原来更大的RF。

这里写图片描述

这个扩大后的卷积核直观上可以以通过对原卷积核填充0得到,不过在具体实现上填0会带来额外的计算量,所以实际上是通过im2col调整像素的位置实现的,这里不展开,有兴趣的可以看看caffe源码(hole算法已经集成在caffe里了,在caffe里叫dilation) 于是,通过hole算法,我们就得到了一个8s的feature map,比起FCN的32s已经dense很多了。
对于第二个问题,图像输入CNN是一个被逐步抽象的过程,原来的位置信息会随着深度而减少甚至消失。Conditional Random Field (CRF,条件随机场)在传统图像处理上的应用有一个是做平滑。CRF简单来说,能做到的就是在决定一个位置的像素值时(在这个paper里是label),会考虑周围邻居的像素值(label),这样能抹除一些噪音。但是通过CNN得到的feature map在一定程度上已经足够平滑了,所以short range的CRF没什么意义。于是作者采用了fully connected CRF,这样考虑的就是全局的信息了。

这里写图片描述

另外,CRF是后处理,是不参与训练的,在测试的时候对feature map做完CRF后,再双线性插值resize到原图尺寸,因为feature map是8s的,所以直接放大到原图是可以接受的。

DeepLab V2:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
v1之后,Liang-Chieh Chen很快又推出了DeepLab的v2版本。这里就简单讲讲改进的地方。
Multi-scale对performance提升很大,而我们知道,receptive field,视野域(或者感受野),是指feature map上一个点能看到的原图的区域,那么如果有多个receptive field,是不是相当于一种Multi-scale?出于这个思路,v2版本在v1的基础上增加了一个多视野域。具体看图可以很直观的理解。

这里写图片描述

rate也就是hole size
这个结构作者称之为ASPP(atrous spatial pyramid pooling),基于洞的空间金字塔。
此外,DeepLab v2有两个基础网络结构,一个是基于vgg16,另外一个是基于resnet101的,目前性能是benchmark上的第一名。

本文转自:http://blog.csdn.net/c_row/article/details/52161394


http://chatgpt.dhexx.cn/article/Mi2RKkPS.shtml

相关文章

deeplab v3+ 源码详解

训练模型: 下载好voc数据集,并传入所需的参数即可进行训练。 参数配置: """ 训练: --model deeplabv3plus_mobilenet --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 4 --…

Deeplabcut教程(二)使用

因为很久没用这个了所以就一直没更使用教程,写的安装教程收到好几条私信要使用教程,这几天在帮一个朋友跑这个,于是就有了这个使用教程 安装教程:Deeplabcut教程(一)安装(GPU&CPU版本&…

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年&#xf…

DeepLab系列理解

原文Blog:https://zhuanlan.zhihu.com/p/61208558 1、deeplab v1 针对标准的深度卷积神经网络的两个主要问题:1.Striding操作使得输出尺寸减小; 2.Pooling对输入小变化的不变性,v1 使用空洞卷积(atrous)条件随机场(CRFs)来解决这…

Deep Lab 系列总结

Deep Lab v1 结合了深度卷积神经网络(DCNNs)和概率图模型(Dense CRFs)的方法 问题1:DCNN s做语义分割时精准度不够,根本原因是DCNNs的高级特征的平移不变性,即高层次特征映射,根…

DeepLab V3+:DeepLab系列的极致?

这篇文章提交在arXiv上的,对应代码也已经开源。 理解DeepLab V3的构架首先需要理解DeepLab V3(可以参考博主的前一篇博客),V3基本上可以理解成在原始的基础上增加了encoder-decoder模块,进一步保护物体的边缘细节信息…

【Deep Learning】DeepLab

【论文】SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED CRFS 前段时间学习了DeepLab,这里花时间记录一下,感谢几位小伙伴的分享。DeepLab的主体结构事实上是参照VGG改造的,它的几个优点:首先是速…

Deeplab笔记

一、Deeplab v2 对应论文是 DeepLab: Semantic Image Segmentiation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs Deeplab 是谷歌在FCN的基础上搞出来的。FCN为了得到一个更加dense的score map,将一张500x500的输入图像&#…

deeplab-v3+原理详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、deeplab-v3提出原因与简单介绍 二、deeplab-v3网络结构图 三、Encoder 1、Backbone(主干网络&#xff09…

深度学习 | MATLAB Deep Learning Toolbox Deeper Networks 创建

深度学习 | MATLAB Deep Learning Toolbox Deeper Networks 目录 深度学习 | MATLAB Deep Learning Toolbox Deeper NetworksDeeper Networks创建类比深度网络深度记忆原理深度学习层输入层卷积和全连接层序列层激活层归一化、丢弃和裁剪层池化和去池化层组合层输出层 参考资料…

深度学习(11)——DeepLab v1

DeepLab v1 DeepLab 由谷歌团队提出的,至今有了四个版本,也就是v1-v4。其结合了深度卷积神经网络(DCNNs)和概率图模型。 在论文《Semantic image segmentation with deep convolutional nets and fully connected CRFs》中提出&…

改进 DeepLabV3+

网络整体结构图 CFF结构图 import torch import torch.nn as nn import torch.nn.functional as F from nets.xception import xception from nets.mobilenetv2 import mobilenetv2class MobileNetV2(nn.Module):def __init__(self, downsample_factor8, pretrainedTrue):supe…

DeepFaceLab

DeepFaceLab从半脸(Half Face)到全脸(Full Face)再到整脸(Whole Face),脸部替换的区域愈来愈大,适用的范围也越来越广,效果也越来越震撼。当然很多人已经不满足与单纯换脸…

DeepLab系列总结

DeepLab系列总结 DeepLab系列DeepLab V1DeepLab V2DeepLab V3DeepLab V3 DeepLab系列 DeepLab网络是由Liang-Chieh Chen(下文以大神指代)与google团队提出来的,是一个专门用来处理语义分割的模型。目前推出了4个(或者说3.5个&…

DeepLab系列学习

DeepLab系列 文章目录 DeepLab系列DeepLabV1简介atrous algorithm利用全卷积增加感受野并加速运算条件随机场CRF实验结果多尺度预测VOC数据集上对比 DeepLabV2主要改进简介模型主体ASPP实验结果 DeepLabV3相应的改进实验 DeepLabV3(DeepLabV3 plus)相应改进整体结构解码器结构m…

deeplab系列总结(deeplab v1 v2 v3 v3+)

最近花了几天时间把deeplab系列撸了一遍,直观感受是不如当初看RCNN系列来的激动啊......像RPN这种划时代的改变没有看到--直奔主题。 Deeplab v1&v2 paper: deeplab v1 && deeplab v2 远古版本的deeplab系列,就像RCNN一样&…

我对DeepLab V3的理解(基于V1和V2)

一、概述 1.前言 1.1 DeepLab v1 创新点&#xff1a; 空洞卷积&#xff08;Atrous Conv&#xff09;; <解决编码过程中信号不断被下采样&#xff0c;细节丢失的问题> 全连接条件随机场&#xff08;Fully-connected Conditional Random Field&#xff09;。 <由于co…

deeplab介绍

■ 论文 | Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation ■ 链接 | https://www.paperweekly.site/papers/1676 DeepLab 是结合了深度卷积神经网络&#xff08;DCNNs&#xff09;和概率图模型&#xff08;DenseCRFs&#xff09;的方法…

DeepLab一家

DeepLab是谷歌为了语义分割又做的一系列工作&#xff0c;在多个开源数据集中都取得了不错的成果&#xff0c;DeepLabv1发表于2014年&#xff0c;后于2016、2017、2018分别提出了V2&#xff0c;V3以及V3的版本&#xff0c;在mmsegmentation里面主要集成了V3以及V3的版本&#xf…

深度学习论文精读[13]:Deeplab v3+

Deeplab v3是Deeplab系列最后一个网络结构&#xff0c;也是基于空洞卷积和多尺度系列模型的集大成者。相较于Deeplab v3&#xff0c;v3版本参考了UNet系列网络&#xff0c;对基于空洞卷积的Deeplab网络引入了编解码结构&#xff0c;一定程度上来讲&#xff0c;Deeplab v3是编解…