深度学习语义分割(二)SegNet论文解读

    SegNet是是第一次在语义分割中应用编码器-解码器(encoder-decoder)的结构。其中,编码器使用池化层逐渐缩减输入数据的空间维度,而解码器通过反卷积层等网络层逐步恢复目标的细节和相应的空间维度。从编码器到解码器之间,通常存在直接的信息连接,来帮助解码器更好地恢复目标细节。

    不同于FCN的上采样方法,SegNet利用了unpooling在下采样的时候记住最大值的位置,在上采样的时候可以快速的进行扩张尺寸,也就是说上采样不涉及反卷积运算,大大加速训练时间.

    SegNet利用了VGG网络的前13层,后13层是和前13层对称的将pooling 换成了upsample,用caffe的可视化工具查看SegNet效果如下:

深度学习语义分割(二)SegNet论文解读_第1张图片

论文里面的结构示意图:

深度学习语义分割(二)SegNet论文解读_第2张图片

    SegNet网络结构如图1所示,Input为输入图片,Output为输出分割的图像,不同颜色代表不同的分类。语义分割的重要性就在于不仅告诉你图片中某个东西是什么,而且告知你他在图片的位置。我们可以看到是一个对称网络,由中间绿色pooling层与红色upsampling层作为分割,左边是卷积提取高维特征,并通过pooling使图片变小,SegNet作者称为Encoder,右边是反卷积(在这里反卷积与卷积没有区别)与upsampling,通过反卷积使得图像分类后特征得以重现,upsampling使图像变大,SegNet作者称为Decoder,最后通过Softmax,输出不同分类的最大值。这就是大致的SegNet过程,下面对这个过程里面使用到的方法进行介绍。

论文还提到了Bayesian SegNet

    在Bayesian SegNet中通过DropOut层实现多次采样,多次采样的样本值为最后输出,方差最为其不确定度,方差越大不确定度越大,如图6所示,mean为图像语义分割结果,var为不确定大小。所以在使用Bayesian SegNet预测时,需要多次向前传播采样才能够得到关于分类不确定度的灰度图,Bayesian SegNet预测如下图所示。

深度学习语义分割(二)SegNet论文解读_第3张图片

第一行为输入图像,第二行为ground truth,第三行为Bayesian SegNet语义分割输出,第四行为不确定灰度图。

可视化Bayesian SegNet:

深度学习语义分割(二)SegNet论文解读_第4张图片

其实就是在pooling3,pooling4和pooling5之后添加Dropout,在upsample5,upsample4和upsample3之后也添加Dropout.

你可能感兴趣的:(深度学习与机器学习)