SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

SegNet是一种用于图像分割的深度学习架构,包含编码器、解码器和最终的像素级分类层。其亮点在于利用max-pooling索引进行上采样,以减少参数并保持边界清晰。与FCN对比,SegNet在存储效率和精度间找到了平衡。

SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 
PAMI 2017  http://mi.eng.cam.ac.uk/projects/segnet/

下载下面两个代码合到一起 
https://github.com/alexgkendall/SegNet-Tutorial 
https://github.com/alexgkendall/caffe-segnet

SegNet has an encoder network and a corresponding decoder network, followed by a final pixelwise classification layer.

SegNet 有三个部分构成:一个 encoder network,一个对应的 decoder network,最后一个像素级别的分类层 
本文最大的亮点在: 在 encoder 阶段我们做 max-pooling时,我们将 pooling indices 记录下来,在decoder upsamples 使用这些 pooling indices 得到稀疏的 upsampled maps,再用 trainable filters 进行卷积得到 dense feature maps。 
和 DeconvNet 类似。

è¿éåå¾çæè¿°

系统结构示意图: 

è¿éåå¾çæè¿°
SegNet 和 FCN decoder 方式对比 

max-pooling indices的优势:

  • 使边界轮廓更准确。
  • 降低参数数量,实现end-to-end的训练。
  • 该结构可以很好的合并到各种encoder-decoder结构

为验证不同decoder结构的标线,作者针对SegNet以及FCN网络设计了不同的decoder结构,并进行了详细的实验分析,实验结果如图3所示。


                                                                  图3 不同decoder的实验对比结果
其中,网络介绍如下:

Bilinear-Interpolation : 双线性插值上采样。
SegNet-Basic: 4*(encodes[conv+bn+relu+maxpooling]+decoders[conv+bn]),kenel size: 7*7。
SegNet-Basic-SingleChannelDecoder: decoder采用单通道滤波器,可以有效减少参数数量。
SegNet-Basic-EncoderAddition: 将decoder与encoder对应的特征图相加。
FCN-Basic:与SegNet-Basic具有相同的encoders,但是decoders采用FCN的反卷积方式。
FCN-Basic-NoAddition:去掉特这天相加步骤,字学习上采样的卷积核。
FCN-Basic-NoDimReduction: 不进行降维。
通过表1分析,可以得到如下分析结果:

bilinear interpolation 表现最差,说明了在进行分割时,decoder学习的重要性。
SegNet-Basic与FCN-Basic对比,均具有较好的精度,不同点在于SegNet存储空间消耗小,FCN-Basic由于feature map进行了降维,所以时间更短。
SegNet-Basic与FCN-Basic-NoAddition对比,两者的decoder有很大相似之处,SegNet-Basic的精度更高,一方面是由于SegNet-Basic具有较大的decoder,同时说明了encoder过程中低层次的feature map的重要性。
FCN-Basic-NoAddition与SegNet-Basic-SingleChannelDecoder:证明了当面临存储消耗,精度和inference时间的妥协的时候,我们可以选择SegNet,当内存和inference时间不受限的时候,模型越大,表现越好。
作者总结到:

encoder特征图全部存储时,性能最好。 这最明显地反映在语义轮廓描绘度量(BF)中。
当限制存储时,可以使用适当的decoder(例如SegNet类型)来存储和使用encoder特征图(维数降低,max-pooling indices)的压缩形式来提高性能。
更大的decoder提高了网络的性能。
4、场景实验
作者分别在CamVid以及SUN RGB-D数据集进行实验,实验结果如下表:

è¿éåå¾çæè¿°
图4 CamVid数据集实验结果
由上表可以发现,当训练次数少的时候,SegNet的优势明显,但是当训练次数增加后,DeconvNet的BF精度已经超过了SegNet,但是总体而言,SegNet具有较好的精度。

è¿éåå¾çæè¿°
图5 SUNRGB-D数据集实验结果
在这个分类任务中,所有的模型的表现均较差,主要原因在于类别较小并且类别分布偏差,DeepLab-LargeFOV,具有较高的mIoU,但是SegNet具有较高的G,C,BF分数。

论文翻译及参考博客:

https://blog.youkuaiyun.com/u014451076/article/details/70741629

https://blog.youkuaiyun.com/Chunfengyanyulove/article/details/79418814

https://blog.youkuaiyun.com/zhangjunhit/article/details/72765847

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值