DeepLab_v3+:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
谷歌出品的deeplabv3+,一般谷歌的论文都是实验做得好,比如mobile net系列的,毕竟人家的服务器多。
在图像语义分割中,ASPP(Spaital pyramid pooling)和 encoder decoder的结构是十分常见,前者可以encode 多尺度的context信息,后者可以获取物体的边界及空间信息。所以作者的想法是把它们两者结合起来看能不能work。
核心贡献:
1,在deeplab-v3的基础上加了一个decoder端来refine输出的结果。
2,用了Xception model并且在做ASPP的时候使用了depth-wise convolution(mobile net),以实现网络的加速。
文章首先对比了PSP net 和常见的Encoder和Decoder的架构,以及Deeplabv3+的结构。
可以看出Deeplabv3+是结合了两者的结构。
模型
整个模型结构如下图:
1,Deeplabv3 做为encoder,如文中所说,We use the last feature map before logits in the original DeepLabv3 as the encoder output in our proposed encoder-decoder structure.
它的output feature map是一个256维度的,可以包含很强的语义信息。ps:目前的大多是分割网络都是在使劲地把encoder 端做好,因为特征很重要,而很多decoder就是直接8倍上采样。
2,Decoder:
decoder端的操作相对简单把底层的特征经过1*1卷机concat到4倍upsample 层的后面,再经过一层卷积和上采样输出最终的预测结果。
3,修改版本的Xception版本,卷积时使用了depth wise convolution并且用stride=2的卷积代替了max pooling的操作。文章说这种做法可以使用带孔卷积,增大感受野,同时由于时depth wise 卷积又不会增加太多计算量。
实验
1,而在这篇工作中,作者采用了Xception 和 Resnet-101架构做为network的encdoer的骨架,大体上Xcetion的效果要比Resnet要好。
2,下采样16倍比下采样32倍的效果要好。
3,Imagenet pretrain, JFT dataset pretrain 的model(0.8%到1%的提升)达到了新的state of art
PS:Deeplab 系列的,包括很多分割的论文都很难复现出作者提出的效果,作者在训练的时候使用的tricks 太多了,并且优化本身也具有随机性,google的服务器多,所以人家炼丹就厉害。