图像目标分割_5 DeepLab V2 V3 V3+

6.5.1 DeepLab V2

6.5.1.1 改变特点

  • atrous convolution
  • 采用ASPP ( atrous spatial pyramid pooling) 多尺度获得更好的分割效果
  • 合并深度卷积网络和概率图模型方法,增强对物体边界的定位。
  • 基础层由VGG16转为ResNet

和v1不同:

  • 通过多尺度输入处理或者多孔空间金字塔池化,可以更好地分割物体。
  • DeepLab采用最新的ResNet图像分类深度卷积神经网络构建,与原来基于VGG-16的网络相比,取得了更好的语义分割性能。

6.5.1.2 Astrous conv

结构如下:
 

6.5.1.3 ASPP

使用多个不同采样率上的多个并行多孔卷积层。每个采样率上提取的特征再用单独的分支处理,融合生成最后的结果。

多孔空间金字塔池化(ASPP)。为了分类中间像素(橙色),ASPP用不同采样率的多个并行滤波器开发了多尺度特征。视野有效区用不同的颜色表示。

  • DeepLab-LargeFOV 使用 rate=12的空洞卷积
  • DeepLab-ASPP 使用 不同 rate 的多个 filter 在 multiple scales 获得物体和内容,有不小的提升。

6.5.1.4 CRF

与DeepLabv1一样

6.5.1.5 训练

DeepLabv2在PASCAL VOC 2012, PASCAL-Context, PASCALPerson- Part, and Cityscapes四个数据集上做了评估。

训练细节:

项目设置
DCNN模型权重采用预训练的VGG16,ResNet101
DCNN损失函数输出的结果与ground truth下采样8倍做像素交叉熵
训练器SGD,batch=20
学习率初始为0.001,最后的分类层是0.01
权重0.9的动量, 0.0005的衰减
  • 模型对预训练的VGG16和ResNet101模型做fine-tune。训练时DCNN和CRF的是解耦的,即分别训练,训练CRF时DCNN输出作为CRF的一元势函数输入是固定的。

  • 大概训练验证手段是对CRF做交叉验证。使用ω2=3和σγ=3在小的交叉验证集上寻找最佳的ω1,σα,σβ,采用从粗到细的寻找策略。

6.5.1.6 效果

PASCAL VOC 2012,在PASCAL VOC 2012上评估了DeepLab-CRF-LargeFOV模型,这里做了三个主要的改进:

  • 1.训练期间使用不同的学习策略;
  • 2.使用ASPP模块;
  • 3.使用深度网络和多层次处理.

6.5.2 DeepLab V3

6.5.2.1 V3的改进

  • 连续池化和下采样,使特征分辨率下降,不利于定位。
  • 全局特征或上下文之间的互相作用有助于做语义分割,4种解决目标多尺度问题的结构
  • 去除条件随机场CRF

V3的改进

  • 1、提出了更通用的框架,适用于任何网络
  • 2、改进了ASPP:由不同采样率的空洞卷积和BN层组成,我们尝试以级联或并行的方式布局模块。
  • 3、讨论了一个重要问题:使用大采样率的3×3 的空洞卷积,因为图像边界响应无法捕捉远距离信息,会退化为1×1的卷积, 将图像级特征融合到ASPP模块中。

6.5.2.2 V3工作

V3做了一个总结,全局特征或上下文之间的互相作用有助于做语义分割,下面是四种不同类型利用上下文信息做语义分割的全卷积网络。

  • 图像金字塔(Image pyramid):小尺度的输入响应控制语义,大尺寸的输入响应控制细节。通过拉布拉斯金字塔对输入变换成多尺度,传入DCNN,融合输出。
    • 这类的缺点是:因为GPU存储器的限制,对于更大/更深的模型不方便扩展。通常应用于推断阶段。
    • 高斯金字塔(Gaussianpyramid): 用来向下采样,主要的图像金字塔
    • 拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像
  • 编码器-解码器(Encoder-decoder):编码器的高层次的特征容易捕获更长的距离信息,在解码器阶段使用编码器阶段的信息帮助恢复目标的细节和空间维度。
    • 例如SegNet利用下采样的池化索引作为上采样的指导;U-Net增加了编码器部分的特征跳跃连接到解码器;RefineNet等证明了Encoder-Decoder结构的有效性。
  • 上下文模块(Context module):包含了额外的模块用于级联编码长距离的上下文。有效的方法是DenseCRF并入DCNN中,共同训练DCNN和CRF。
  • 空间金字塔池化(Spatial pyramid pooling):采用空间金字塔池化可以捕捉多个层次的上下文。
    • 在ParseNet中从不同图像等级的特征中获取上下文信息;DeepLabv2提出ASPP,以不同采样率的并行空洞卷积捕捉多尺度信息。PSPNet在不同网格尺度上执行空间池化,并在多个数据集上获得优异的表现。

6.5.2.3 架构

  • Deeplab 把在 ImagNet 上预训练得到的 ResNet 作为它的主要特征提取网络。

  • 最后一个 ResNet Block

    • 顶部使用了空洞空间金字塔池化 (ASPP,Atrous Spatial Pyramid Pooling)

下面表示空洞卷积提取密集特征、讨论空洞卷积模块以级联(串行)和并行布局

1、Model 1 :Going Deeper with Atrous Convolution

串行的空洞卷积模型(modules with atrous convolution laid out in cascade)变得更深了。

采用串行的ResNet,级联block为block5、block6、block7(均为block4的复制)。输出步长为16.在没有使用带孔卷积的情况下它的输出步长是256。

Multi-grid Method

对block4~block7 采用不同atrous rates

2、Module 2 :Parallel modules with atrous convolution (ASPP)

  • 1、为了增加全局的语境信息,ASPP 还通过全局平均池化(GAP global average pooling)获得图像级特征。即将特征做全局平均池化,经过卷积,再融合。
  • 将image pooling得到的图像级特征输入到一个1×1 convolution with 256 filters(加入 batch normalization)中

    • 然后将特征进行双线性上采样(bilinearly upsample)到特定的空间维度
  • 2、改进的ASPP由一个 1×1 卷积,和三个 3×3卷积组成,步长为(6,12,18),输出步长为16

  • 3、ASPP所有分支处理好的特征以及image pooling 卷积上采样之后的特征将会 concat 在一起通过另一个 1×1 卷积(也有着256个filter,加入BN)

  • 4、最后还有一个 1×1 卷积产生最终的分类;条件随机场(CRF)被去除了,模型比较简洁易懂。

这个版本的 ASPP 包含 4 个并行的操作:

  • 一个 1×1 的卷积
  • 三个 3×3 的卷积(扩张率分别是(6,12,18)) 特征图的标称步长(nominal stride)是 16.

6.5.2.4 实验

总结:

  • 1、级联模块越多,准确率越好,速度下降
  • 2、使用Multi_Grid 方法比原来要好
  • 3、使用Hole卷积 ,步长越小,准确率越好,速度下降
  • 4、ASPP最好的模型准确率高于级联带孔卷积模型的最优值,选择ASPP作为我们最终的模型。

PASCAL VOC 2012效果

在 PASCAL VOC-2012 达到 86.9 mIOU

1、训练设置

部分设置
数据集PASCAL VOC 2012
工具TensorFlow
剪裁尺寸采样513大小的裁剪尺寸
学习率策略采用poly策略,在初始学习率基础上$(1 - \frac{iter}{max_iter})power$,其中power=0.9
BN层策略1、output_stride=16时,采用batchsize=16,同时BN层的参数做参数衰减0.9997。 2、在增强的数据集上,以初始学习率0.007训练30K后,冻结BN层参数
上采样策略之前将最终的输出与GroundTruth下采样8倍做比较。发现保持GroundTruth更重要,所以将最终的输出上采样8倍与完整的GroundTruth比较。

2、级联使用多个带空洞卷积的block模块

参数效果
OS(output_stride)OS(output_stride)越小,mIOU越高。stride=256,信号严重抽取,性能大大下降
Hole使用空洞卷积
ResNet网络越深,block越多,效果越好
Multi-grid主分支的三个卷积都使用空洞卷积,Multi-gird策略 (1,2,1)时+网络越深 效果越好

3、ASPP设置

提高效果的方法设置
MethodMulti-grid (1,2,4)+APSS(6,12,18)+Image Pooling
OS
inputsMulti-scale input during test Adding left-right flipped inputs
pretrainedModel pretrained on MS-COCO
参数效果
同时使用上采样和BN越好
batch_size越大效果越好
eval output_stride 影响train output_stride = 16 , eval output_stride=8/16时,效果越好

6.5.3 V3总结

  • 1、Deeplab v3的级联模型和ASPP模型在PASCAL VOC 2012的验证集上表现都要比Deeplab v2好
  • 2、提升主要来自增加了调好的批次归一化参数和更好地编码多尺度上下文信息

6.5.4 DeepLab v3+

2018年2月份,Google 团队在 arXiv 放出了 DeepLabv3+,在语义分割领域取得新的 state-of-the-art 水平。

DeepLabv3+ 继续在模型的架构上作文章,为了融合多尺度信息,引入语义分割常用的 encoder-decoder。在 encoder-decoder 架构中,引入可任意控制编码器提取特征的分辨率,通过空洞卷积平衡精度和耗时。

6.5.4.1 与DeepLab V3对比

  • deeplab v3 缺陷

    • 输出图放大的效果不好,信息太少
  • 改进

    • 1、encoder-decoder
      • 设计基于v3的 decode module
      • 把中间一层的特征图用于输出图放大
      • 为了融合多尺度信息,引入语义分割常用的 encoder-decoder
    • 2、Xception

6.5.4.2 结构

结构对比

1、是v3的纵式结构;2、是常见的编码—解码结构3、V3+提出的基于deeplab v3的encode-decode结构

1、V3+结构细节

在语义分割任务中采用 Xception 模型,在 ASPP 和解码模块使用depthwise separable convolution,提高编码器-解码器网络的运行速率和健壮性

  • encoder 的output feature 首先 经过一个 1×1 conv,然后 bilinearly 向上采样4倍
  • 和具有相同空间分辨率的低层特征concat
  • 再经过一个3×3 conv ,上采样4倍

2、Modified Aligned Xception(修正对齐的Xception)

  • 1、Entry flow 保持不变,添加了更多的 Middle flow。
  • 2、所有的 max pooling 被 depthwise separable convolutions 替代。
  • 3、在每个 3x3 depthwise convolution 之外,增加了 batch normalization 和 ReLU。

其中三种不同的卷积对比:

Sep Conv是深度可分离卷积(Depthwise separable convolution)

6.5.4.3 训练细节

部分设置
数据集PASCAL VOC 2012(1464 (train)、1449 (val)和1456 (test)像素级注释图像)
工具TensorFlow
PretrainedImageNet-1k pretrained ResNet-101 or modified aligned Xception
学习率策略采用poly策略,在初始学习率基础上$(1 - \frac{iter}{max_iter})power$,其中power=0.9,初始0.007
crop size513 ×513
output_stride16
Trainent-to-end

6.5.4.4 实验效果

  • 两个结构:论文提出的模型在主干网络 ResNet-101 和 Xception均进行验证。两种方式均在 ImageNet 预训练。其中 Xception 预训练过程中,使用 50 个 GPU,每个 GPU batch size=32,分辨率 299x299。Xception 相比 ResNet-101,在 Top-1 和 Top-5 分别提高 0.75% 和 0.29%。

  • 数据集具体结果:在 PASCAL VOC 2012 数据集上取得新的 state-of-art 表现,89.0 mIOU。使用 depthwise separable convolution,使用 Pretraining on COCO 和 Pretraining on JFT,在这些 tricks 辅助下,PASCAL VOC 2012 test set 达到惊人的 89.0%,取得新的 state-of-the-art 水平。

6.5.5 DeepLab系列总结

从 DeepLabv1-v4 系列看,空洞卷积必不可少。从 DeepLabv3 开始去掉 CRFs。 DeepLabv1-v4 没有用很多 tricks,都是从网络架构中调整,主要是如何结合多尺度信息和空洞卷积。

架构DeepLabv1DeepLabv2DeepLabv3DeepLabv3+
BackboneVGG-16ResNetResNet+Xception
Atrous Conv
CRF××
ASPP×ASPPASPP+ASPP+
Encoder-decoder×××

6.5.6 小结

  • V2的ASPP结构以及使用深度网络Resnet
  • V3的ASPP+结构
  • V3+(V4)的Xception引入和具有Encder-decoder的ASPP

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

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

相关文章

Python导包、模块报错的问题

import报错No module named "xxx"的问题 如何将指定目录作为项目根目录,让项目根目录下的包/模块都可以直接导入?(linux下) Python导入模块时,解释器如何定位模块: 1.当前目录 2.内置模块列表 3…

CC2540 串口0 通道2配置

从图里面可以看出来,串口0有两个通道,一个通道是P02 P03两个GPIO口。 还有一个通道是P14 P15两个GPIO口。 在软件配置的时候,主要是配置的是一个通道相关的寄存器。 7.6.4 USART 0 The SFR register bit PERCFG.U0CFG selects whether to u…

图像目标分割_6 Mask RCNN

6.6.0 背景 目标检测和语义分割的效果在短时间内得到了很大的改善。在很大程度上,这些进步是由强大的基线系统驱动的,例如,分别用于目标检测和语义分割的Fast/Faster R-CNN和全卷积网络(FCN)框架。这些方法在概念上是直观的,提供…

SCI论文写作训练营笔记汇总01_概述+文献检索与管理

1 概述 1.1 适用人群 ①初涉科研, 目前或将来有英文科技论文发表需求的科研工作者 ②正在撰写或准备撰写英文科技论文的科研工作者 1.2 科技论文的基本结构 1.3 科技论文组成部分的写作方法 1.4 阅读文献的重要性 2、文献检索与管理 2.1 如何查找文献参考 2.2 文…

天猫11.11:搜索引擎实时秒级更新(转载)

搜索是很多用户在天猫购物时的第一入口,搜索结果会根据销量、库存、人气对商品进行排序,而商品的显示顺序往往会决定用户的选择,所以保证搜索结果的实时性和准确性非常重要。在电商系统中,特别是在“双十一”这样的高并发场景下&a…

OAD 空中升级

http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/69222/172351.aspx#172351第二十三节 OAD空中升级 通过仿真器更新程序或者通过USB更新固件那都是一般人都可以实现的操作,但是要想实现OAD空中升级…

SCI论文写作训练营笔记汇总02_英文科技论文阅读与解析

3、英文科技论文阅读与解析的方法 3.1 科技论文介绍 3.1.1 科技论文的类型 • Research • Review • Theoretical • Methodological • Case study 3.1.2 研究型论文的结构 3.1.3 科技论文的基本结构 3.2 文献阅读 3.2.1 文献选择的原则 3.2.2 文献阅读顺序 3.2.2 文献阅读…

报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused

(pyenv install xxx) 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused的解决方法 问题重现截图: 在查看下面的原因和使用解决方法之前,确保自己的pyenv已经安装好了最新的python-build&#xff0c…

SCI论文写作训练营笔记汇总03_科技论文写作(方法篇)

4、科技论文写作——方法篇 4.1 准备工作与概述 4.1.2 杂志编辑评估文章的标准 4.2 图表部分的写作方法 4.2.1 为什么使用图表 4.2.2 如何使用图表 4.2.3 如何选择图or表or文字 4.2.4 图片/表格制作软件 4.2.5 图片的各种指标 4.2.6 图片的分类 4.2.6 图注的使用 4.2.7 表格 …

SCI论文写作训练营笔记汇总04_科技论文写作(技巧篇)

1、语言点 1.1 时态 1.1.1 时态使用的基本原则 1.1.2 在引言部分的时态使用 1.1.3 在“材料与方法”部分的时态使用 1.1.4 在“结果”部分的时态使用 1.1.5 在“讨论”部分的时态使用 1.1.6 总结 1.2 语态 1.2.1 语态-主动/被动 1.2.2 语态-主动/被动的不同点 1.2.2 语态-主…

SCI论文写作训练营笔记汇总05_英文论文投稿流程与常见问题(完)

1 目标期刊的选择 1.1 文章未送审直接被拒稿的常见理由 1.2 目标期刊的选择 1.2.1 学科与影响力 1.2.2 影响因子 1.2.3 审稿平均周期 1.2.4 主编水平 1.2.5 版面费 2 根据期刊要求调整文章 2.1 具体 2.2 期刊的审查重点 2.3 期刊的审查列表 3 其他材料 3.1 稿件作者信息 3.…

动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题

动态规划(Dynamic Programming)思路和Python解题示例 动态规划是一种主要用来优化朴素递归的方法,每当输入不同值调用递归函数出现大量重复的(子)输入和调用(返回结果)时,就可以考虑…

【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据

1 逻辑回归与拟合过程 1.1 准备数据-code_01_moons.py(第1部分) import sklearn.datasets import torch import numpy as np import matplotlib.pyplot as plt from LogicNet_fun import LogicNet,plot_losses,predict,plot_decision_boundary# 1.1 准…

将Win10包含中文的用户名改为英文的,同时解决Anaconda navigator无法运行jupyter的问题

Win10用户名包含中文字符导致无法在Anaconda navigator直接运行jupyter的问题 本篇文章内容包含: WIN10如何修改"C:\Users\用户名"中的用户名执行1后,也就是用户名修改为英文名后,在Anaconda navigator启动之前无法启动的jupyter…

linux dd使用记录

dd if/dev/sda of/dev/sdb bs10M Linux下显示dd命令的进度:dd if/dev/zero of/tmp/zero.img bs10M count100000想要查看上面的dd命令的执行进度,可以使用下面几种方法: 比如:每5秒输出dd的进度 方法一:watch -n 5 pkil…

【Pytorch神经网络理论篇】 01 Pytorch快速上手(一)概述+张量

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

解读Android 4.0 Camera原生应用程序的设计思路

解读Android 4.0 Camera原生应用程序的设计思路 一篇很不错的文章: http://my.oschina.net/jerikc/blog/907911. 设置摄像头方向 2. 打开线程与预览线程 3. 设置参数 4. Camera外设按键 5. 自动对焦与触摸对焦 6. 拍照 7. 人脸检测 8. 位置管理 9. 旋转管理 10. 变…

【Pytorch神经网络理论篇】 03 Pytorch快速上手(三)张量的数据操作

1 张量的数据操作 1.1 torch.reshape()实现数据维度变化 import torch a torch.tensor([[1,2],[3,4]]) print(torch.reshape(a,(1,-1))) # 将其转化为只有1行数据的张量,参数-1表示自动计算 # tensor([[1, 2, 3, 4]]) print(a.reshape((1,-1))) # # 将其转化为只有1行数据的…

写一个包含多个事件四则运算的留存SQL ——impala hive

在实现一个留存业务需求时,碰到了一个难题,我需要提供展示一个按照如下图格式的数据, day 1 ~ day n的第一行是留存用户数量,第二行是一个由多个事件组合执行四则算术运算得到的复合数值,这里碰到的难点主要是第二行的…