图像语义分割(2)- SegNet

SegNet【1】是FCN 的一个改进版,由 Cambridge 提出,旨在解决自动驾驶或智能机器人的图像语义分割

      这里写图片描述
                        图1. SegNet 分割效果

这里是官方的项目主页,上面介绍了 SegNet 的两个版本(标准版 + 实现准度预估的贝叶斯版【2】)


标准版SegNet

FCN 一样,SegNet 也基于 VGG-16。不同的是,SegNet 将后面 3 个全连接层删掉而不是像 FCN 一样,将其转换为卷积层

此外,SegNet 明确将反卷积(上采样)组织为 解码器,将卷积(下采样)组织为 编码器。提出了一个结构上很有对称美感的网络(图2)

          这里写图片描述
               图2. 网络左边由卷积+池化组成,右边由反卷积+卷积(same卷积,不改变尺寸)

1)卷积单元(图2蓝色)
可以看到,SegNet 的编码和解码都有卷积模块

这个卷积模块包含:same 卷积(卷积前后尺寸不变)、BN批归一化、ReLU激活

其中关于 same 卷积可以参考文章《 卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)》,里面总结了 same 卷积、full 卷积和 valid 卷积 3 种形式

Batch Normalisition 通过对输入激活函数的数据做归一化处理可以在一定程度上改善梯度弥散的问题。详细分析推荐这篇文章

同样,作为 Sigmoid 的改进版,ReLU 可以通过避免输出进入饱和区域而改善梯度弥散问题

2)池化与上采样
编码与解码模块最大的不同在于,前者通过池化缩小尺寸,后者通过上采样恢复尺寸

SegNet 中使用最大池化,并且同时输出最大点的 index。同一层次的上采样根据 index 确定池化前 max 值的点的位置,并对其他丢失的点做插值

             这里写图片描述
                   图3. SegNet里池化和反池化的过程

关于反卷积,从这里看到一张比较形象的图片

       这里写图片描述
                          图4. 反卷积

如图4所示,输入为 22 ,反卷积核为 44 ,一个像素被其“散射”成 44 的结构,结构和结构之间按照 stride 排列,重叠的部分做累加
按照《图像语义分割(1)- FCN》里的计算公式,最终的尺寸为 (21)3+4=7

3)Softmax 输出
网络最后一层通过 Softmax 选择概率最大的为该像素的类别


贝叶斯版SegNet

标准版SegNet输出的是每个像素关于类别的先验概率,为了评价其准确性,贝叶斯SegNet利用 DropOut给出结果的置信度(后验概率)

       这里写图片描述
                   图5. 贝叶斯版SegNet在每个卷积前加了一个dropout

传统的 DropOut 层是作为正则化技术被引入的,通过随机的将某些神经元权重置0,降低学习速率,避免模型过拟合

本质上,DropOut 是一个 二项分布,文章【2】里将概率设为0.5,相当于以这个概率对卷积结果做随机采样,然后统计 均值方差,方差越大说明不确定性越大,结果越不可信

             这里写图片描述
              图6. 第2行为groundtruth,第3行为分割结果,第4行为方差图

  • 可以看到,边缘部分的不确定性最大
  • 为了得到统计结果,贝叶斯版需要多次前向采样

代码实现

官方给出了基于 CAFFE 的代码
文章《图像语义分割代码实现(2)》使用官方代码做训练和测试


【1】Badrinarayanan V, Kendall A, Cipolla R. Segnet: A deep convolutional encoder-decoder architecture for image segmentation[J]. arXiv preprint arXiv:1511.00561, 2015.

【2】 Kendall A, Badrinarayanan V, Cipolla R. Bayesian segnet: Model uncertainty in deep convolutional encoder-decoder architectures for scene understanding[J]. arXiv preprint arXiv:1511.02680, 2015.


  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值