我对SegNet的理解
一、概述
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
卷积层+批归一化层+RELU组成,然后是最大池化;
SegNet使用的卷积为same卷积,即卷积后保持图像原始尺寸;
3.Decoder——Pooling & Upsampling
在Decoder过程中,使用same卷积,作用是为upsampling变大的图像丰富信息,使得在Pooling过程丢失的信息可以通过学习在Decoder得到;
Upsamping就是Pooling的逆过程(index在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(语义分割)
我对SegNet的理解相关推荐
- 【NLP】博士笔记 | 深入理解深度学习语义分割
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习初学者 引言:最近自动驾驶项目需要学习一些语义分 ...
- 笔记 | 深入理解深度学习语义分割
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉联盟 本文内容概述王博Kings最近的语义分割 ...
- 博士笔记 | 深入理解深度学习语义分割
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习初学者 本文内容概述王博Kings最近的语义分割学 ...
- 如何妙笔勾檀妆:像素级语义理解
编者按:在徐凝的<宫中曲>中有这样一句诗,"一日新妆抛旧样",描绘了中唐时期宫中女人换妆的场景,而另一句诗"檀妆唯约数条霞",讲的则是复杂的檀妆其实 ...
- DL之SegNet:SegNet图像分割/语义分割算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之SegNet:SegNet图像分割/语义分割算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 导读 基于CNN的神经网络SegNet算法可进行高精度地识别行驶环境. 目录 SegN ...
- SegNet 语义分割网络以及其变体 基于贝叶斯后验推断的 SegNet
HomePage: http://mi.eng.cam.ac.uk/projects/segnet/ SegNet Paper: https://www.computer.org/csdl/trans ...
- 【天池赛事】零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline
[天池赛事]零基础入门语义分割-地表建筑物识别 Task1:赛题理解与 baseline(3 天) – 学习主题:理解赛题内容解题流程 – 学习内容:赛题理解.数据读取.比赛 baseline 构建 ...
- SegNet网络简析及caffe工程应用
最近在工作的业务中需要应用到图像分割,在这里总结一下在应用中遇到的一些问题. 一.SegNet简介 自2015年FCN的提出后,使用卷积层替代全连接层成为了解决像素级分类种where和what的一种有 ...
- 图像目标分割_3 SegNet + U-Net
6.3.1 SegNet背景 SegNet的主要动机是场景理解的应用. 难点:因此它在设计的时候考虑了要在预测期间保证内存和计算时间上的效率.分割的任务其实应用非常地广,需要理解各个像素之间的关系,比 ...
- ICCV 2019 | 视频综合理解:行为识别、场景识别以及视频综述
点击我爱计算机视觉标星,更快获取CVML新技术 本文经作者授权转载自知乎: https://zhuanlan.zhihu.com/p/91986833 未经许可,禁止二次转载. 导语:计算机视觉领域顶 ...
最新文章
- python小游戏代码大全-python贪吃蛇游戏代码
- CDS – One Concept, Two Flavors
- php 和mysql实现抢购功能_php处理抢购类功能的高并发请求
- 越来越觉得现在的工作很枯燥
- linq中let关键字学习
- Leetcode——两数之和
- 前端核心技术必备知识库精华资源强力推荐
- 苹果开发者账号双重认证
- vs2012运行c语言出现:无法查找或打开 PDB 文件
- 牛客java选择题每日打卡Day9
- 百度推广系列之优化之笔
- matlab抢占时隙算法,基于汉明重分组的动态帧时隙ALOHA防碰撞算法
- 异贝服装店都可以做会员营销?神奇的逆向思维让他快速裂变赚钱!
- 如何用QT做串口调试助手Qseriaport类的使用
- 虚拟机启动失败:VMware Workstation and Device/Credential Guard are not compatible
- 做一条USB A转Type C 数据线 和OTG线
- (Fabric 学习六)Fabric2.0 私有数据 使用marbles官方示例
- HTML中的删除线:del和s的区别
- 【英语六级】【仔细阅读】(3)
- 九八投洽会,图扑为你再现工业元宇宙
热门文章
- 服务器如何取得系统管理员权限,技巧:Windows系统如何获得管理员权限?
- 历史上的今天:乔布斯辞去苹果CEO一职;Windows 95 发布
- 越南无线网dns服务器设置,越南dns 服务器地址
- 手机cpu芯片测试软件,手机CPU怎么检测
- 网易云课堂C++开发工程师案例-网吧收银系统(MFC+ADO) C++收银...
- GlobalMapper小白学习日记
- imx6ull 485 调试
- swagger导出excel文档_excel导入导出api
- hustoj 服务器配置
- 计算机网络基础孟敬pdf,马来西亚主要统计指标数据.pdf