一、概述
SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架。SegNet基于FCN,修改VGG-16网络得到的语义分割网络,有两种版本的SegNet,分别为SegNet与Bayesian SegNet,同时SegNet作者根据网络的深度提供了一个basic版(浅网络)
二、架构
1.架构介绍
-
SegNet和FCN思路十分相似,只是Encoder,Decoder使用的技术不一致; -
SegNet的编码器部分使用的是VGG16的前13层卷积网络; -
每个编码器层都对应一个解码器层; -
最终解码器的输出被送入softmax分类器以独立的为每个像素产生类概率; -
左边是卷积提取特征,通过pooling增大感受野,同时图片变小,该过程称为Encoder; -
右边是反卷积(在这里反卷积与卷积没有区别)与upsampling,通过反卷积使得图像分类后特征得以重现,upsampling还原到图像原始尺寸,该过程称为Decoder;
- 绿色的pooling与红色的upsampling通过max-pooling indices(最大池化索引)相连;
-
最后通过Softmax,输出不同分类的最大值,得到最终分割图。
2.Encoder
3.Decoder——Pooling & Upsampling
- 在SegNet中的Pooling与其他Pooling多了一个index功能(该文章亮点之一),也就是每次Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置;
-
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
D. DropOut:
————————————————
补课:
- 在传统神经网络中DropOut层的主要作用是防止权值过度拟合,增强学习能力;
- 输入经过DropOut层之后,随机使部分神经元不工作(权值为0),即只激活部分神经元,结果是这次迭代的向前和向后传播只有部分权值得到学习;
- DropOut层服从二项分布,结果不是0,就是1;
————————————————
- Bayesian SegNet中,SegNet作者把概率设置为0.5,即每次只有一半的神经元在工作;
- Bayesian SegNet中通过DropOut层实现多次采样,多次采样的样本值为最后输出,方差为其不确定度,方差越大不确定度越大;
E. Bayesian SegNet的用处:
- 对于分类的边界位置,不确定性较大,即其置信度较低;
- 对于图像语义分割错误的地方,置信度也较低;
- 对于难以区分的类别,例如人与自行车,road与pavement,两者如果有相互重叠,不确定度会增加。
三、一些结果
新的评价指标BF指标:边界F1测量
尝试了两个数据集:
- 用于道路场景分割的CamVid数据集;
- 一个是用于室内场景分割的SUN RGB-D数据集;
1.用于道路场景分割的CamVid数据集
道路场景分割的CamVid数据集上,与传统方法相互比较: 如上所示,SegNet在多类分割问题上获得了非常好的结果。它也获得了最高级别的类平均值和全局平均值。
道路场景分割的CamVid数据集上,与深度学习方法相比较: 获得最高的全局平均准确度(G),类别平均准确度(C),mIOU和边界F1测量(BF)。它的结果优于FCN,DeepLabv1和DeconvNet。
定性结果:
2.用于室内场景分割的SUN RGB-D数据集
在室内场景分割的SUN RGB-D数据集,与深度学习方法比较:
同样,SegNet优于FCN,DeconvNet和DeepLabv1; 对于mIOU指标,SegNet只比DeepLabv1略差一些;
不同类的类平均准确度: 大尺寸目标的准确度更高; 小尺寸目标的准确度较低;
定性分析结果:
3.内存和推断时间
SegNet比FCN慢,因为SegNet包含解码器架构;
SegNet在训练和测试期间的内存要求都很低,并且模型尺寸比FCN小得多;
Reference
- 论文翻译
- 【语义分割】–SegNet理解
- 卷积神经网络CNN(4)—— SegNet
- 【语义分割系列:二】SegNet 论文阅读翻译笔记
- 一文带你读懂 SegNet(语义分割)
|