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

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

    SegNet利用了VGG网络的前13层,后13层是和前13层对称的将pooling 换成了upsample,用caffe的可视化工具
<http://ethereon.github.io/netscope/quickstart.html>查看SegNet效果如下:




论文里面的结构示意图:




    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预测如下图所示。



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


可视化Bayesian SegNet:





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

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信