深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充

这篇具有很好参考价值的文章主要介绍了深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文链接:SegNet

SegNet的引入

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

1.SegNet的创新点

SegNet与U-net网络相似,主要的区别是提出了记录池化的位置,反池化时恢复。不再进行拼接操作,直接进行反卷积。
作用
为了更好的保留边界特征信息。采用了索引的方式进行上采样。即在进行池化操作时,记录池化所取值的位置,在上采样时直接用当时记录的位置进行UpPool(反池化)

2.SegNet的模型特点

1. backbone: vgg16
2. encoder-decoder,左右网络层对称。

Encoder过程中,通过卷积提取特征,SegNet使用的卷积为same卷积,即卷积后保持图像原始尺寸;在Decoder过程中,同样使用same卷积,不过卷积的作用是为upsampling变大的图像丰富信息,使得在Pooling过程丢失的信息可以通过学习在Decoder得到。bn层对训练图像进行批标准化(BatchNormalization),加速模型的学习。

decoder中,对缩小后的特征图进行上采样,然后对上采样后的图像进行卷积处理,来完善图像中物体的几何形状,将encoder中获得的特征还原到原来图像的具体的像素点上

3. 带索引的最大池化上采样。

3.如何记录池化的位置?

Pooling在CNN中是使得图片缩小一半的手段,通常有max与mean两种Pooling方式,下图所示的是max Pooling。max Pooling是使用一个2x2的filter,取出这4个权重最大的一个,原图大小为4x4,Pooling之后大小为2x2,原图左上角粉色的四个数,最后只剩最大的6,这就是max的意思。

segnet,深度学习,人工智能
在SegNet中的Pooling与其他Pooling多了一个index功能(该文章亮点之一),也就是每次Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置,对于上图的6来说,6在粉色2x2 filter中的位置为(1,1)(index从0开始),黄色的3的index为(0,0)。同时,从网络框架图可以看到绿色的pooling与红色的upsampling通过pool indices相连,实际上是pooling后的indices输出到对应的upsampling(因为网络是对称的,所以第1次的pooling对应最后1次的upsamping,如此类推)。

Upsamping就是Pooling的逆过程(index在Upsampling过程中发挥作用),Upsamping使得图片变大2倍。我们清楚的知道Pooling之后,每个filter会丢失了3个权重,这些权重是无法复原的,但是在Upsamping层中可以得到在Pooling中相对Pooling filter的位置。所以Upsampling中先对输入的特征图放大两倍,然后把输入特征图的数据根据Pooling indices放入,下图所示,Unpooling对应上述的Upsampling,switch variables对应Pooling indices。
segnet,深度学习,人工智能
对比FCN可以发现SegNet在Unpooling时用index信息,直接将数据放回对应位置,后面再接Conv训练学习。这个上采样不需要训练学习(只是占用了一些存储空间)。反观FCN则是用transposed convolution策略,即将feature 反卷积后得到upsampling,这一过程需要学习,同时将encoder阶段对应的feature做通道降维,使得通道维度和upsampling相同,这样就能做像素相加得到最终的decoder输出.
segnet,深度学习,人工智能

1.Deconvolution

pooling&Upsampling示意图中右边的Upsampling可以知道,2x2的输入,变成4x4的图,但是除了被记住位置的Pooling indices,其他位置的权值为0,因为数据已经被pooling走了。因此,SegNet使用的反卷积在这里用于填充缺失的内容,因此这里的反卷积与卷积是一模一样,在网络框架图中跟随Upsampling层后面的是也是卷积层。

2.Output

在网络框架中,SegNet,最后一个卷积层会输出所有的类别(包括other类),网络最后加上一个softmax层,由于是end to end, 所以softmax需要求出所有每一个像素在所有类别最大的概率,最为该像素的label,最终完成图像像素级别的分类。

3.Bayesian SegNet

可以知道,在SeNet中最后每个像素都会对每一类的概率进行计算,再通过Softmat输出概率最大的一个,然后这个像素点就认为是这一类别,对应的概率就是这一像素属于该类的概率。这种由原因到结果的推导,可以称为先验概率,任何先验概率使用都会出现一个问题,不能知道这一结果的可靠性,即便先验概率非常大,但是对于不同的样本,先验概率无法保证一定正确。正是如此,才需要有从结果寻找原因的贝叶斯概率,即后验概率,它能给出结果的可信程度,即置信度。Bayesian SegNet正是通过后验概率,告诉我们图像语义分割结果的置信度是多少。Bayesian SegNet如下图所示。
segnet,深度学习,人工智能
对比两框架图,并没有发现Bayesian SegNet与SegNet的差别,事实上,从网络变化的角度看,Bayesian SegNet只是在卷积层中多加了一个DropOut层,其作用后面解释。最右边的两个图Segmentation与Model Uncertainty,就是像素点语义分割输出与其不确定度(颜色越深代表不确定性越大,即置信度越低)。

4.DropOut

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

因此,DropOut层服从二项分布,结果不是0,就是1,在CNN中可以设定其为0或1的概率来到达每次只让百分之几的神经元参与训练或者测试。在Bayesian SegNet中,SegNet作者把概率设置为0.5,即每次只有一半的神经元在工作。因为每次只训练部分权值,可以很清楚地知道,DropOut层会导致学习速度减慢。

5.Use Bayesian SegNet

在Bayesian SegNet中通过DropOut层实现多次采样,多次采样的样本值为最后输出,方差最为其不确定度,方差越大不确定度越大。所以在使用Bayesian SegNet预测时,需要多次向前传播采样才能够得到关于分类不确定度的灰度图,Bayesian SegNet预测如下图所示。
segnet,深度学习,人工智能
第一行为输入图像,第二行为ground truth,第三行为Bayesian SegNet语义分割输出,第四行为不确定灰度图。可以看到,
1.对于分类的边界位置,不确定性较大,即其置信度较低。
2.对于图像语义分割错误的地方,置信度也较低。
3.对于难以区分的类别,例如人与自行车,road与pavement,两者如果有相互重叠,不确定度会增加。文章来源地址https://www.toymoban.com/news/detail-737212.html

到了这里,关于深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Halcon 深度学习之语义分割 预处理 案例解析

    声明:本篇是个人针对于语义分割预处理案例的理解,有理解不到位或者错误的地方,还望各位能够给予指正,在此表示感谢! 例子名称: segment_pill_defects_deep_learning_1_preprocess ①:导入原图文件夹,标注文件夹,类别信息等 ②:通过Deep Learning Tool 工具创建的语义分割文件【

    2024年02月09日
    浏览(43)
  • 语义分割 | 基于 VGG16 预训练网络和 Segnet 架构实现迁移学习

    Hi,大家好,我是源于花海。 本文主要使用数据标注工具 Labelme 对猫(cat)和狗(dog)这两种训练样本进行标注,使用预训练模型 VGG16 作为卷积基,并在其之上添加了全连接层。基于标注样本的信息和预训练模型的特征提取能力以及 Segnet 架构,训练自己构建的 语义分割 网

    2024年01月25日
    浏览(52)
  • 深度学习之图像分类

    深度学习简介 深度学习是人工智能领域中的一个分支,目标是通过模拟人脑的神经网络实现智能化。在过去的几年中,深度学习已经被广泛应用于图像识别、语音识别、自然语言处理等领域。本文将对深度学习进行简要介绍。 深度学习 神经网络 图像分类 深度学习是一种基

    2024年02月15日
    浏览(38)
  • 深度学习之wandb的基本使用

    在深度学习训练网络的过程中,由于网络训练过程时间长,不可能一直关注训练中的每一轮结果,因此我们需要将训练过程中的结果可视化,留作后续的查看,从而确定训练过程是否出错。因此,我们需要使用到可视化工具,常用的几种可视化工具有: wandb (在线可视化)、

    2024年02月15日
    浏览(32)
  • 深度学习之图像分类识别(一):AlexNet

    本专栏介绍基于深度学习进行图像识别的经典和前沿模型,将持续更新,包括不仅限于:AlexNet, ZFNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,MobileNet,ShuffleNet,EifficientNet,Vision Transformer,Swin Transformer,Visual Attention Network,ConvNeXt, MLP-Mixer,As-MLP,ConvMixer,MetaFormer 2012年,Alex

    2024年02月04日
    浏览(33)
  • 基于深度学习的图像分割

    摘要 遥感图像分割是利用遥感技术获取的高分辨率图像进行像素级别的分类,将图像中的不同物体或不同地物提取出来的过程。这个过程对于遥感应用具有重要意义,因为它能够提取出地物和地表特征,如河流、道路、建筑、植被、水体等,并且这些特征是地面实际存在的。

    2024年02月06日
    浏览(43)
  • 【深度学习】图像分割概述

    与目标检测不同,语义分割可以识别并理解图像中每一个像素的内容:其语义区域的标注和预测是像素级的。与目标检测相比,语义分割中图像有关狗、猫和背景的标签,语义分割标注的像素级的边框显然更加精细。 本文主要梳理基于深度学习的图像分割方法。按照任务不同

    2024年02月04日
    浏览(34)
  • 【深度学习:图像分割指南】计算机视觉中的图像分割指南:最佳实践

    图像分割是计算机视觉中的一项关键任务,其目标是将图像划分为不同的有意义且可区分的区域或对象。这是物体识别、跟踪和检测、医学成像和机器人等各种应用中的一项基本任务。 许多技术可用于图像分割,从传统方法到基于深度学习的方法。随着深度学习的出现,图像

    2024年01月23日
    浏览(90)
  • 机器学习之图像处理——基本概念知识介绍

    图像分析一般利用数学模型并结合图像处理的技术来分析底层特征和上层结构,到从而提取具有一定智能性的信息,其中对图片内容分析,图片内容识别和检测都离不开图像的分类。 图像分类目标:已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个

    2024年02月07日
    浏览(45)
  • 深度学习实验-3d医学图像分割

    实验四 基于nnU-Net模型的3D医学图像分割实验 腹部多器官分割一直是医学图像分析领域最活跃的研究领域之一,其作为一项基础技术,在支持疾病诊断,治疗规划等计算机辅助技术发挥着重要作用。近年来,基于深度学习的方法在该领域中获得了巨大成功。本实验数据集为多

    2024年02月07日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包