谷歌开源语义图像分割模型DeepLab-v3+ 中

理解DeepLab V3+的构架首先需要理解DeepLab V3,V3+基本上可以理解成在原始的基础上增加了encoder-decoder模块,进一步保护物体的边缘细节信息。除此之外,也展示了在Xception网络上构架的优势。

  1. Motivation 
    可以发现DeepLab V3版本ASPP得到的特征分辨率即使在采用atrous convolution的情况下,依然有8倍的缩小。个人认为为什么不采用resolution-presevation策略的原因在于,GPU内存的限制,不能够确保卷积过程中每个特征具有那么大的维度。然而在DeepLab v3的最后直接对1/8分辨率的结果图进行上采样,恢复成原始分辨率大小,得到逐项素的分割结果。 
    可想而知,这样直接上采样操作(可以理解成naive decoder)并不能充分恢复在降采样为1/8分辨率过程中损失的细节信息,所以造成了分割的不精确。所以这篇文章在DeepLab V3的基础上,类似于FCN、SegNet、U-Net的形式,加入decoder的形式恢复原始分辨率的分割结果,使得边缘细节信息能够较好的保留。

  2. 创新点

    • DeepLab V3作为编码器(利用atrous convolution生成任意维度的特征,并采用ASPP策略),在其后面级联解码器进而恢复边界细节信息。
    • 探究了ResNet-101替换成Xception模型的可行性,采用depthwise separable convolution进一步提高分割算法的精度和速度。
  3. 算法细节 
    这里写图片描述

    主要看一下decoder部分,首先采用1*1的卷积核主要是为了对low-level特征通道进行压缩(一般压缩到48),这样能够使得后面的特征对于encoder得到的特征(256通道)有一个偏重,这样可以保证更好的high-level语义信息。然后这边的话也仅仅融合了一个low-level的特征,并没有像FCN、U-Net一样在解码过程中融合很多low-level信息。                                       

======================

简述一下变动 
使用Xception+ASPP的强encoder 
deeplabv3的output stride = 16 再通过双线性插值恢复至原图大小但这丢失了许多细节信息 
这里改成上采样×4 和一个low-level的信息结合来decoder 

下面是Xception 的变动 

这里写图片描述
未改动entry flow 

用步长不为1的深度可分离卷积取代池化层

=====================


参考:https://blog.csdn.net/JYZhang_CVML/article/details/79594940

扫描二维码关注公众号,回复: 1819962 查看本文章

         https://blog.csdn.net/qrfaction/article/details/79333959


猜你喜欢

转载自blog.csdn.net/fu6543210/article/details/80731691