我对SegNet的理解

一、概述

SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架。SegNet基于FCN,修改VGG-16网络得到的语义分割网络,有两种版本的SegNet,分别为SegNetBayesian SegNet,同时SegNet作者根据网络的深度提供了一个basic版(浅网络)

我对SegNet的理解_第1张图片

二、架构

1.架构介绍
  • SegNet和FCN思路十分相似,只是Encoder,Decoder使用的技术不一致;

  • SegNet的编码器部分使用的是VGG16的前13层卷积网络;

  • 每个编码器层都对应一个解码器层;

  • 最终解码器的输出被送入softmax分类器以独立的为每个像素产生类概率;
    我对SegNet的理解_第2张图片

  • 左边是卷积提取特征,通过pooling增大感受野,同时图片变小,该过程称为Encoder

  • 右边是反卷积(在这里反卷积与卷积没有区别)与upsampling,通过反卷积使得图像分类后特征得以重现,upsampling还原到图像原始尺寸,该过程称为Decoder

    • 绿色的pooling与红色的upsampling通过max-pooling indices(最大池化索引)相连;
  • 最后通过Softmax,输出不同分类的最大值,得到最终分割图。

2.Encoder
  • 卷积层+批归一化层+RELU组成,然后是最大池化;

  • SegNet使用的卷积为same卷积,即卷积后保持图像原始尺寸;

3.Decoder——Pooling & Upsampling
  • 在Decoder过程中,使用same卷积,作用是为upsampling变大的图像丰富信息,使得在Pooling过程丢失的信息可以通过学习在Decoder得到;

  • Upsamping就是Pooling的逆过程(index在Upsampling过程中发挥作用)

我对SegNet的理解_第3张图片

  • 在SegNet中的Pooling与其他Pooling多了一个index功能(该文章亮点之一),也就是每次Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置;

我对SegNet的理解_第4张图片

  • SegNet上采样不需要训练学习(只是占用了一些存储空间);

  • FCN则是用transposed convolution策略,即将feature 反卷积后得到upsampling,这一过程需要学习;

  • max-pooling indics advantage:

    • 改进了边界划分
    • 减少了实现端到端训练的参数数量
    • 这种upsampling模式可以包含到任何编码-解码网络中
  • 在upsampling中:稀疏特征图 -> 多次卷积 -> 密集特征图;

  • SegNet中的卷积与传统CNN的卷积并没有区别;

4.Bayesian SegNet

A. 先验概率:(概率论:由原因推结果)

在SegNet中最后每个像素都会对每一类的概率进行计算,再通过 softmax 输出概率最大的一个,然后这个像素点就认为是这一类别,对应的概率就是这一像素属于该类的概率。

B. 先验概率的缺点:

  • 对于不同的样本,先验概率无法保证一定正确;
  • 需要后验概率(概率论:Bayes公式 由结果推原因),它能给出结果的可信程度,即置信度

C. Different:

网络:与普通比,Bayesian SegNet只是在卷积层中多加了一层DropOut

我对SegNet的理解_第5张图片

D. DropOut:

————————————————

补课:

  • 在传统神经网络中DropOut层的主要作用是防止权值过度拟合,增强学习能力;
  • 输入经过DropOut层之后,随机使部分神经元不工作(权值为0),即只激活部分神经元,结果是这次迭代的向前和向后传播只有部分权值得到学习;
  • DropOut层服从二项分布,结果不是0,就是1;

————————————————

  • Bayesian SegNet中,SegNet作者把概率设置为0.5,即每次只有一半的神经元在工作;
  • Bayesian SegNet中通过DropOut层实现多次采样,多次采样的样本值为最后输出,方差为其不确定度,方差越大不确定度越大;

E. Bayesian SegNet的用处:

  1. 对于分类的边界位置,不确定性较大,即其置信度较低;
  2. 对于图像语义分割错误的地方,置信度也较低;
  3. 对于难以区分的类别,例如人与自行车,road与pavement,两者如果有相互重叠,不确定度会增加。

三、一些结果

新的评价指标BF指标:边界F1测量

尝试了两个数据集:

  1. 用于道路场景分割的CamVid数据集;
  2. 一个是用于室内场景分割的SUN RGB-D数据集;
1.用于道路场景分割的CamVid数据集

道路场景分割的CamVid数据集上,与传统方法相互比较:
我对SegNet的理解_第6张图片
如上所示,SegNet在多类分割问题上获得了非常好的结果。它也获得了最高级别的类平均值和全局平均值。

道路场景分割的CamVid数据集上,与深度学习方法相比较:
我对SegNet的理解_第7张图片
获得最高的全局平均准确度(G),类别平均准确度(C),mIOU和边界F1测量(BF)。它的结果优于FCN,DeepLabv1和DeconvNet。

定性结果:
我对SegNet的理解_第8张图片

2.用于室内场景分割的SUN RGB-D数据集

在室内场景分割的SUN RGB-D数据集,与深度学习方法比较:
我对SegNet的理解_第9张图片

同样,SegNet优于FCN,DeconvNet和DeepLabv1;
对于mIOU指标,SegNet只比DeepLabv1略差一些;

不同类的类平均准确度:
我对SegNet的理解_第10张图片
大尺寸目标的准确度更高;
小尺寸目标的准确度较低;

定性分析结果:

我对SegNet的理解_第11张图片

3.内存和推断时间

我对SegNet的理解_第12张图片

SegNet比FCN慢,因为SegNet包含解码器架构;

SegNet在训练和测试期间的内存要求都很低,并且模型尺寸比FCN小得多;

Reference

  1. 论文翻译
  2. 【语义分割】–SegNet理解
  3. 卷积神经网络CNN(4)—— SegNet
  4. 【语义分割系列:二】SegNet 论文阅读翻译笔记
  5. 一文带你读懂 SegNet(语义分割)

你可能感兴趣的:(2022暑假机器学习,深度学习,cnn)