论文笔记:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

1 摘要

本文提出一种可用于端到端训练的语义分割网络结构——SegNet,它是一种编码器—解码器结构。编码器结构类似于VGG16的前13层,而本文的重点介绍在于解码器部分,其创新性地使用了一种池化索引的上采样方法,不仅消耗更小的内存,而且在上采样部分避免了学习。该网络主要运用于道路场景分割任务和室内场景分割任务,并且在CamVid数据集和SUN RGB-D数据集中达到了当时的最好效果。

2 亮点

2.1 网络结构

2.1.1 编码器结构

编码器结构是在VGG16的基础上进行的改进:去掉了后3层的全连接层,只取前13层。这样大大地减少了全连接层带来的参数的增加(从134M到14.7M),另外,在编码器阶段,进行最大池化操作时候把滑动窗口时最大特征的位置记录下来(作用后面在解码器结构会讲),只需要2个bit。总体来说,编码器结构在跟语义分割中的变化不是非常大,本文重点介绍解码器结构。

2.1.2 解码器结构

在这里插入图片描述
在解码器结构中,需要对图像的大小进行恢复,在FCN网络和SegNet网络中,为了使得上采样的时候能够恢复一些前面编码结构下采样时丢失的细节信息,二者都会将编码阶段的特征图与解码阶段的特征图进行融合(叠加或者拼接),这样的好处当然是提高了准确率,而带来的缺点是需要保存多层编码阶段的图像然后再进行叠加或者拼接,会浪费了一大部分内存。而本文中,作者通过在编码结构时记录了下采样时最大特征的索引而不是整张图,然后在进行解码阶段上采样就直接利用记录的位置信息进行恢复,记录的是池化最大的索引,这样可以使得特征图边界更加清晰,如下图。
在这里插入图片描述
左边显示的为SegNet进行上采样的方法,右边显示的是FCN进行上采样的方法(叠加)。SegNet的上采样方法还有一个好处就是在上采样阶段,不需要学习而直接利用编码阶段时每次下采样中保存池化索引恢复,当然,每一层的池化索引对应于每一层的上采样,而使用池化索引进行上采样得到的特征图是稀疏的,因此在池化层后面接了一系列的卷积核使特征图变稠密,加上BN层避免过拟合。

3 效果

在这里插入图片描述在这里插入图片描述
上图为SegNet在CamVid数据集与其它网络结构的效果对比,可见SegNet的效果更佳。
在这里插入图片描述
在这里插入图片描述
上图为SegNet在SUN RGB-D数据集与其它网络结构的效果对比,可见SegNet的效果更佳。

4 结论

文章提出,这种池化索引的上采样方法有三大优点:
① 可以使得特征图边界更清晰。
② 大量减少了可训练的参数。
③ 可以广泛适用于编码—解码结构的语义分割网络,提高其性能。

5 参考资料

(1)SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
(2)【阅读笔记】《SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation》
(3)论文阅读笔记八:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (IEEE2017)

发布了24 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gyyu32g/article/details/104315185