文献1:Badrinarayanan, Vijay, Alex Kendall, and Roberto Cipolla. "Segnet: A deep convolutional encoder-decoder architecture for image segmentation." IEEE transactions on pattern analysis and machine intelligence 39.12 (2017): 2481-2495.
摘要:Segnet是用于进行像素级别图像分割的全卷积网络,分割的核心组件是一个encoder 网络,及其相对应的decoder网络,后接一个象素级别的分类网络。encoder网络:其结构与VGG16网络的前13层卷积层的结构相似。decoder网络:作用是将由encoder的到的低分辨率的feature maps 进行映射得到与输入图像featuremap相同的分辨率进而进行像素级别的分类。Segnet的亮点:decoder进行上采样的方式,直接利用与之对应的encoder阶段中进行max-pooling时的polling index 进行非线性上采样,这样做的好处是上采样阶段就不需要进行学习。 上采样后得到的feature maps 是非常稀疏的,因此,需要进一步选择合适的卷积核进行卷积得到dense featuremaps 。作者与FCN,DeepLab-LargeFOV, DenconvNet结构进行比较,统筹内存与准确率,Segnet实现良好的分割效果。SegNet主要用于场景理解应用,需要在进行inference时考虑内存的占用及分割的准确率。同时,Segnet的训练参数较少(将前面提到的VGG16的全连接层剔除),可以用SGD进行end-to-end训练。
本文主要贡献:
在decoder 网络中重用encder 网络中对应max pooling index的三点好处
(i)提高边界划分
(ii)减少训练的参数
(iii)这种形式可以广泛的应用在其他encoder-decoder结构。
本文重点是分析SegNet的decoding模块和FCN网络,目前的分割网络都有相似的编码结构(VGG16)但是decoder网络的结构各异,同时训练和推理形式等也有所不同。由于大量训练参数导致进行end-to-end training困难度较大。因此产生多步训练方式,将预训练好的网络添加到FCN后进行再训练,同时,使用一些辅助性操作,如用于inference的region proposals,用于分类网络和分割网络的不相交训练,使用额外的训练数据作为预训练或者全局训练,另外,提升预处理技术也比较流行。
训练:
数据集:CamVid (训练:367张,测试:233,图片尺寸:360X480,11个类别)
对于RGB输入采用Local Contrast Normalization(局部对比标准化)
优化方法:SGD
learning_rate: 固定的0.1
momentum: 0.9
mini-batch: 12
loss: cross-entropy