天天看點

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

文章位址:https://arxiv.org/abs/1706.05587

項目位址:https://github.com/NanqingD/DeepLabV3-Tensorflow

本篇文章作為使用空洞卷積解決語義分割全局context資訊與局部spatial資訊沖突的經典,提出Atrous Spatial Pyramid Pooling兼顧局部特征與global context,相較于之前的deeplab(v1、v2),deeplabv3不使用DenseCRF作為後處理操作。

主要貢獻:

1、本文重新讨論了空洞卷積的使用,這讓我們在級聯子產品和空間金字塔池化的架構下,能夠擷取更大的感受野進而擷取多尺度資訊。

2、改進了ASPP子產品:由不同采樣率的空洞卷積和BN層組成,我們嘗試以級聯或并行的方式布局子產品。

3、讨論了一個重要問題:使用大采樣率的3×3的空洞卷積,因為圖像邊界響應無法捕捉遠距離資訊,會退化為1×1的卷積, 我們建議将圖像級特征融合到ASPP子產品中。

4、闡述了訓練細節并分享了訓練經驗,論文提出的"DeepLabv3"改進了以前的工作,獲得了很好的結果

Abstract

In this work, we revisit atrous convolution, a powerful tool to explicitly adjust filter’s field-of-view as well as control the resolution of feature responses computed by Deep Convolutional Neural Networks, in the application of semantic image segmentation. To handle the problem of segmenting objects at multiple scales, we design modules which employ atrous convolution in cascade or in parallel to capture multi-scale context by adopting multiple atrous rates. Furthermore, we propose to augment our previously proposed Atrous Spatial Pyramid Pooling module, which probes convolutional features at multiple scales, with image-level features encoding global context and further boost performance. We also elaborate on implementation details and share our experience on training our system. The proposed ‘DeepLabv3’ system significantly improves over our previous DeepLab versions without DenseCRF post-processing and attains comparable performance with other state-of-art models on the PASCAL VOC 2012 semantic image segmentation benchmark.

首先用很簡短卻精煉的表述描述了暗黑卷積(就是空洞卷積)的功能:在控制特征分辨率的同時調整濾波器的感受野(adjust filter’s field-of-view as well as control the resolution of feature)。

然後講到文章工作,即提出一個級聯、平行的暗黑卷積去捕捉多尺度的context資訊通過使用多個atrous rates,這一結構被設計為Atrous Spatial Pyramid Pooling模型。摘要中提出,文章詳細寫到實施細則,并且DeepLabv3在PASCAL VOC 2012資料集上有着非常不錯的表現。

Introduction

深度卷積神經網絡的兩個挑戰:

1、由于連續的池運算或卷積步長導緻輸出特征圖分辨率降低,這使得DCNN能夠學習到更多抽象的特征,并且具有更大的感受野,然而,這種對局部圖像變換的不變性可能會阻礙需要詳細空間資訊的密集預測任務,即導緻空間細節資訊的丢失;

解決辦法:暗黑卷積

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

2、圖像中存在多尺度的目标物體

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

四種解決辦法:

1)圖像金字塔:輸入不同尺度的圖像,使得不同特征圖對多尺度目标有更大的相應;

2)編解碼結構:從編碼部分提取不同尺度特征,然後在解碼部分恢複分辨率;

3)級聯空洞卷積

4)空間金字塔池化:特征圖應用不同的rates進行空洞卷積,得到不同感受野,因而捕捉到不同尺度的目标物體

Method

使用Atrous Convolution使網絡更深且保持小的output_stride,即保持特征圖分辨率

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation
論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

對于在DeepLabv2中提出的ASPP子產品,其在特征頂部映射圖并行使用了四種不同采樣率的空洞卷積。這表明以不同尺度采樣是有效的,我們在DeepLabv3中向ASPP中添加了BN層。不同采樣率的空洞卷積可以有效的捕獲多尺度資訊,但是,發現随着rate的增加,有效的卷積核參數下降了,即3x3的卷積退化為1x1的卷積,隻有中心的權重有效。為此,采用了全局平均 池化,在最後的特征圖上,并采用1x1卷積和雙線性插值保留白間次元(得到下圖中的b),所有filter的個數都是256。

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

Deeplabv3 把在 ImagNet 上預訓練得到的 ResNet 作為它的主要特征提取網絡。但是,它為多尺度的特征學習添加了一個新的殘差塊。最後一個 ResNet 塊使用了空洞卷積(atrous convolution),而不是正常的卷積。此外,這個殘差塊内的每個卷積都使用了不同的擴張率來捕捉多尺度的語境資訊。

另外,這個殘差塊的頂部使用了空洞空間金字塔池化 (ASPP,Atrous Spatial Pyramid Pooling)。ASPP 使用了不同擴張率的卷積來對任意尺度的區域進行分類。

Experimental Evaluation

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

(轉自https://blog.csdn.net/u011974639/article/details/79144773)

更深的atrous convolution效果更好

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

應用不同政策通常比單倍數(r1,r2,r3)=(1,1,1)(r1​,r2​,r3​)=(1,1,1)效果要好

簡單的提升倍數是無效的(r1,r2,r3)=(2,2,2)(r1​,r2​,r3​)=(2,2,2)

最好的随着網絡的深入提升性能.即block7下(r1,r2,r3)=(1,2,1)(r1​,r2​,r3​)=(1,2,1)

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

!

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation
論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

VOC2012不同方法的比較:

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation

Cityscapes資料集上的比較:

論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation
論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation
論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation
論文筆記--deeplabv3--Rethinking Atrous Convolution for Semantic Image Segmentation論文筆記–deeplabv3–Rethinking Atrous Convolution for Semantic Image Segmentation