DeepLab系列学习笔记

研究问题

分辨率

连续的池化或下采样操作会导致图像的分辨率大幅度下降,从而损失了原始信息,且在上采样过程中难以恢复。因此,越来越多的网络都在试图减少分辨率的损失,比如使用空洞卷积,或者用步长为2的卷积操作代替池化。实验证明,诸如此类的替代方法的确是有效的。
(建议1:尽量减少网络中的池化操作)
(规定1:感受野的大小是相对input而非last-layer)

多尺度特征

通过设置不同参数的卷积层或池化层,提取到不同尺度的特征图。将这些特征图送入网络做融合(跳跃连接),对于整个网络性能的提升很大。但是由于图像金字塔的多尺度输入,造成计算时保存了大量的梯度,从而导致对硬件的要求很高。多数论文是将网络进行多尺度训练,在测试阶段进行多尺度融合。如果网络遇到了瓶颈,可以考虑引入多尺度信息,有助于提高网络性能。

DeepLab系列优势

  1. 参数同比减少,所以占比内存减小,速度快
  2. ResNet的引入,越深层的网络准确率越高
  3. 连续卷积和池化不可避免的会带来分辨率降低, 然而空洞卷积却可以在尽可能保证分辨率的情况下扩大视野
  4. ASPP的创举
    (建议2:优先迁移学习ResNet而非VGG16Net)

摘要

(整体逻辑:总体概述 → 本文方法 → 实验结果)
总体概述包括大背景概述【介绍常用方法】和文章中心概述【开门见山,文章主要做了什么】;本文方法包括算法由什么组成【本文由什么和什么路径组成+本文提出了一种什么框架】和罗列1,2,3点【提出什么模块,解决什么问题】;实验结果包括数据集&结果、挑战赛&结果和与什么相比&结果。

v1摘要

Ø 背景概述:DCNNs(Deep Convolutional Neural Networks,效果上和CNNs或者CNN等同)的最后一层不足以进行精确分割目标。
Ø 主要贡献:本文将深度卷积神经网络和 CRF(Conditional Random Field) 相结合,克服了深度网络的局部化特性(the ’hole’ algorithm)
Ø 网络效果:该网络超过了以往方法的精度水平,可以更好地定位分割边界
Ø 实验结果:在PASCAL VOC 2012数据集中取得了 71.6% 的IOU;在正常GPU上可达到每秒8帧的处理速度

v2摘要

Ø 主要贡献:充分利用空洞卷积,可实现在不增加参数量的情况下有效扩大感受域,合并更多的上下文信息;DCNNs与CRF相结合,进一步优化网络效果;提出了ASPP模块
Ø 网络效果:ASPP增强了网络在多尺度下多类别分割时的鲁棒性,使用不同的采样比例与感受野提取输入特征,能在多个尺度上捕获目标与上下文信息
Ø 实验结果:在PASCAL VOC 2012数据集中取得了79.7%的MIOU;在其他数据集中也进行了充分实验

v3摘要

Ø 主要贡献:为了解决多尺度下的分割问题,本文设计了级联或并行的空洞卷积模块;扩充了ASPP模块
Ø 网络效果:网络没有经过DenseCRF后处理,也可得到不错的结果(重点:研究重心发生变化,转为卷积神经网络)
Ø 实验结果:在PASCAL VOC 2012数据集中获得了与其他最新模型相当的性能

v3+摘要

Ø 背景概述:深度神经网络通常采用ASPP模块或编解码结构进行语义分割
Ø 主要贡献:通过添加一个简单而有效的解码器模块开扩展DeepLab v3以优化分割结果
Ø 网络效果:该网络超过了以往方法的精度水平,可以更好地定位分割边界
Ø 实验结果:在PASCAL VOC 2012数据集和Cityscapes数据集中分别取得了89%和82.1%的MIOU

V1学习笔记(2015)

简介

DeepLab v1 是结合了深度卷积神经网络(DCNNs)概率图模型(DenseCRFs) 的方法深度卷积神经网络(DCNNs)
• 采用FCN思想,修改VGG16网络,得到 coarse score map并插值到原图像大小
• 使用Atrous convolution得到更dense且感受野不变的feature map概率图模型(DenseCRFs)
• 借用fully connected CRF对从DCNNs得到的分割结果进行细节上的refine。

先验知识(receptive field,RF)

在这里插入图片描述
(建议:不要擅自改变卷积核大小,在s上做文章)

改进总结

1. 把全连接层(fc6、fc7、fc8)改成卷积层(端到端训练)
2. 把最后两个池化层(pool4、pool5)的步长2改成1(保证feature map的分辨率)
3. 把最后三个卷积层(conv5_1、conv5_2、conv5_3)的dilate rate设置为2,且第一个全连接层的dilate rate设置为4(保持感受野)
4. 把最后一个全连接层fc8的通道数从1000改为21(分类数为21)
5. 第一个全连接层fc6,通道数从4096变为1024,卷积核大小从7x7变为3x3,后续实验中发现此处的dilate rate为12时(LargeFOV),效果最好

实验设计

DeepLab-MSc:类似FCN,加入特征融合
DeepLab-7×7:替换全连接的卷积核大小为7×7
DeepLab-4×4:替换全连接的卷积核大小为4×4
DeepLab-LargeFOV:替换全连接的卷积核大小为3×3,空洞率为12

硬件设备:NVIDIA Titan GPU (6 GB)
深度学习框架:Caffe
损失函数:交叉熵+softmax
优化器:SGD + momentum 0.9
batchsize:20
学习率:10-3(每2000次,学习率 * 0.1)

V2学习笔记(重点!重点!重点!)

简介

  1. 针对分辨率过低的特征图。文章通过修改最后的几个池化操作,避免特征图分辨率损失过大,通过引入空洞卷积 ,在没有增加参数与计算量的情况下增大了感受野(基本同理于v1)
  2. 需要分割的目标具有多样的尺度大小。针对这个问题,文章参考了空间金字塔池化的思想,这里使用不同比例的膨胀卷积构造 “空间金字塔结构”(Atrous Spatial Pyramid Pooling,ASPP)
  3. DCNN网络对目标边界的分割准确度不高。文章引入全连接条件随机场(fully connected Conditional Random Field,CRF) 使得分割边界的定位更加准确,从而解决该问题

先验知识(空洞卷积、SPPNet、bottom-up&top-down、ResNet)

(1)空洞卷积(=膨胀卷积=带孔卷积=扩张卷积
Atrous convolution,dilated convolution)
稠密映射:
标准3×3卷积:33大小的区域对应一个输出值
空洞卷积(rate=2):5
5大小的区域对应一个输出值
在这里插入图片描述

(2)SPPNet(《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》)
SPPNet提出的初衷是为了解决CNN对输入图片尺寸的限制。由于全连接层的存在,与之相连的最后一个卷积层的输出特征需要固定尺寸,从而要求输入图片尺寸也要固定。SPPNet之前的做法是将图片裁剪或变形(crop/warp)。但是crop/warp的一个问题是导致图片的信息缺失或变形,影响识别精度。
为了解决上述问题,文章中在最后一层卷积特征图的基础上又进一步进行处理,提出了Spatial Pyramid Pooling。简而言之,SPPNet就是将任意尺寸的特征图用三个尺度的金字塔层分别池化,将池化后的结果拼接得到固定长度的特征向量,送入全连接层进行后续操作。
(3)top-down:在模式识别的过程中使用了上下文信息当你看到了一张字迹潦草难以辨认的手写文本时,你可以利用整个文本来辅助你理解其中含义,而不是每个字单独辨认。正因为有了周围字体的上下文信息,大脑可以去感知和理解文本里的意思。
bottom-up:以数据为主要驱动一个人在花园看到一朵花,有关于花朵的所有视觉信息都从视网膜上通过视神经传递到大脑,大脑分析后得到图像从而判断出这是一朵花。这些信息的传递都是单方向的(没有反馈)
(4)ResNet(Residual引入)
变化率:残差的引入去掉了主体部分,从而突出了微小的变化
主要思想:用一个神经网络去拟合y=x这样的恒等映射,比用一个神经网络去拟合y=0这样的0映射要难。因为拟合y=0的时候,只需要将权重和偏置都逼近0就可以了

算法实验

ASPP模块构成

DeepLab v1到DeepLab v2的进化

基于VGG16的DeepLab v2在v1的基础上做了进一步调整(FC6-FC8替换为ASPP)

硬件设备:NVIDIA Titan GPU (6 GB)
深度学习框架:Caffe
损失函数:交叉熵+softmax
优化器:SGD + momentum 0.9
batchsize:20
学习率:10-3(每2000次,学习率 * 0.1)
网络变形:
LargeFOV:3×3卷积 + rate=12(DeepLab v1最好结果)
ASPP-S:r = 2, 4, 8, 12
ASPP-L:r = 6, 12, 18, 24

V3学习笔记(重点,重点,重点)

文章贡献

1、本文重新讨论了空洞卷积的使用,这让我们在串行模块空间金字塔池化的框架下,能够获得更大的感受野从而获得多尺度信息
2、改进了ASPP模块:由不同采样率的空洞卷积BN层组成,我们尝试以串行或并行的方式布局模块
3、讨论了一个重要问题:使用大采样率的3X3的空洞卷积,因为图像边界响应无法捕捉远距离信息(小目标,long range information),会退化为1X1的卷积,我们建议将图像级特征融合到ASPP模块中

语义分割常用特征提取框架

1、图像金字塔:从输入图像入手,将不同尺度的图像分别送入网络进行特征提取,后期再融合
2、编码-解码结构:编码器部分利用利用下采样进行特征提取,解码器部分利用上采样还原特征图尺寸
3、深度网络vs空洞卷积:经典分类算法领用连续喜爱采样提取特征,而空洞卷积是利用不同的采样率
4、空间金字塔结构:除ASPP外,仍有其他网络使用了该思想,如SPPNet,PSPNet等

算法实验

经典分类算法网络架构

DeepLab v3空洞卷积串行网络结构

DeepLab v3空洞卷积并行网络结构
(调整了SAPP模块)

DeepLab1-3回顾(摘抄自巨佬PPT)

semanstic segmentation

(1)defination
1、Semantic Segmentation is understanding an image at pixel level,we wanna assign(分配) each pixel in the image an object class.
2、Partitioning(分割) an image into regions(区域) of meaningful objects.
3、assign an object category label.
(2)why semantic segmention?
Autonomous driving and Medical purposes …

DeepLab v1 & DeepLab v2

(1)use DCNN for classifition to generate a rough prediction of segmentation(smooth,blurry heat map)
what happens in standard DCNN?
1\striding
2\pooling
DeepLab solution
1\atrous convolution(空洞卷积)
2\CRFs(convolutional random fields)
DCNN-Atrous(Holes)
1\remove the last 2 pooling layers
2\up-sample the original filter by a factor of the stride(rate = 2)
3\standard convolution→responses at only 1/4 of image politions.
4\convolve image with a filter 'with holes’→responses at all image positions

1\small field-of-view→accurate localization
2\large field-fo view→context assimilation(环境同化)
3\Effective filter size increases
4\both the number of filter parameters and the number of operations per position stay constant

1\the authors found a good efficiency/accuracy trade-off,using atrous convolution to increase by a factor of 4 the density of computed feature maps,followed by bilinear interpolation(factor 8)
2\the proposed apporach converts image classification networks into dense feature extractors without requiring learning any extra parameters
(2)refine prediction with conditional random field(CRF)(V3被摒弃,所以我不学)
(3)deeplab v1
1\deeplab v1 is constructed by modifying VGG-16
2\fully connected layers of VGG-16 are converted to convolutional layers
3\subsampling is skipped after last two max-pooling layers
4\convolutional filters in the layers that follow pooling are modifited to atrous
5\model weights of imagesnet-pretrained VGG-16 network are finetuned(微调)
(4)deeplab v2(improvements compared to deeplabv1)
1\better segmentation of objects at multiple scales(using ASPP)
2\adapting resnet image classification DCNN
3\learning rate policy
(5)atrous spatial pyramid pooling (ASPP)
1\challenge:existence of objects at multiple scales
2\computationally efficient scheme of resampling a given feature layer at multiple reats prior to convolution
3\using multiple parallel atrous convolutional layers with different sampling rates

the features extracted for each sampling reat are further processed in separate branches and fused to generate the final result
(6)advantages:
speed:by virtue of the ‘atrous’ algorithm,dense DCNN operates ar 8 fps,while fully-connected CRF requires 0.5 second
accuracy:state-of-the-art results achieved on several state-of-art datasets
simplicity:the system is composed of a cascade of two fairly well-established modules,DCNNs and CRFs

DeepLab v3(changes compared to deeplabV1&deeplabV2)

(1)the proposed framework is general and could be applied to any network
(2)several copies of the last resnet block are duplicated, and arranged in cascade
(3)batch normalization is includeed within ASPP
(4)CRF is not use(特大喜讯!)

ResNet

(1)duplicate several copies the last resnet block(block 4) and arrange in cascade(in the proposed model,blocks 5-7 are duplicates of block4)
(2)three convolutions is each block
(3)last convolution contains stride 2 except the one in last block
(4)in order to maintain original image size, convolutions are replaced with arius convolutions with rates the differ from each other with factor 2

ASPP

(1)batch normalizational is included within ASPP
(2)as the sampling reat becomes larger,number of valid filter weights becomes smaller
(3)global average pooling on last feature map of the model

(1)improve ASPP consists:
one 1x1 convolution and three 3x3 convolutions with (6,12,18) rates - all with 256 filters and batch normalization
image-level features(global acerage pooling)
(2)resulting features from all branches are concatenated and pass through 1x1 convolution
(3)best result includes:
ASPP
output stride of 8
filp and rescale augmentation

V3+学习笔记(复现代码关注博主后私聊)

本文贡献

1、提出了一种编码器-解码器结构,采用DeepLab v3作为encoder,添加decoder得到新的模型(deeplab v3+)
2、将Xception模型应用于分割任务,模型中广泛使用深度可分离卷积(重点!)

深度可分离卷积

1、标准卷积
输入图片尺寸为12X12X3,用一个5X5X3的卷积核进行卷积操作,会得到8X8X1的输出;用256个卷积核会得到8X8X256输出(参数计算:256X5X5X3=19200)
2、深度可分离卷积=深度卷积+逐点卷积
**深度卷积(区别标准卷积):**每个5X5X1的卷积核对应输入图像中的一个通道,得到三个8X8X1的输出,拼接后得到8X8X3的结果
**逐点输出(相当于1X1标准卷积):**设置256个1X1X3的卷积核,对深度卷积的输出在进行卷积操作,最终得到8X8X256的输出
(参数计算:深度卷积参数=5X5X3=75,逐点卷积参数=256X1X1X3=768
总参数=75+768=843 <<19200

算法(编码器-解码器结构)

(1)编码器
1、使用DeepLab v3作为编码器结构,输出与输入尺寸之比为16(output_size=16)
2、ASPP:一个1X1卷积+三个3X3卷积(rate={6,12,18})+全局平均池化
(2)解码器
1、先把encoder的结果四倍上采样,然后与编码器中相对应尺寸的特征图进行拼接融合,再进行3X3的卷积,最后四倍上采样得到最终结果
2、融合低层次信息前,先进行1X1卷积,目的是降低通道数
算法流程(3)deeepLab v3+ 对Xception进行微调
1、更深的Xception结构,原始middle flow迭代8次,微调后迭代16次
2、所有max pooling结构被stride=2的深度可分离卷积替代
3、每个3X3的depthwise convolution后跟BN(batch nor)和Relu
实验参数
学习策略:poly策略

讨论和总结

DeepLab系列发展历程

v1:修改经典分类网络(VGG16),将空洞卷积应用于模型中,试图解决分辨率过低及提取多尺度特征问题,用CRF做后处理
v2:设计ASPP模块,将空洞卷积的性能发挥到最大,沿用VGG16作为主网络,尝试使用ResNet-101进行对比实验,用CRF做后处理
v3:以ResNet为主网络,设计了一种串行和一种并行的DCNN网络,微调ASPP模块,取消CRF做后处理
v3+:以ResNet或Xception为主网络,结合编解码结构设计了一种新的算法模型,以v3作为编码器结构,另行设计了解码器结构,取消CRF做后处理

本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZRX_GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值