1. 程式人生 > >影象語義分割(9)-DeepLabV3: 再次思考用於影象語義分割的空洞卷積

影象語義分割(9)-DeepLabV3: 再次思考用於影象語義分割的空洞卷積

論文地址 :Rethinking Atrous Convolution for Semantic Image Segmentation
論文程式碼:Github連結

1. 摘要

  文章主要的工作:

  • 使用空洞卷積來調整濾波器的感受野並控制特徵圖解析度
  • 使用不同空洞率的空洞卷積的串聯或者並行操作來分割不同尺度的目標,捕獲不同尺度的語義資訊
  • 擴充套件的ASPP
  • 實現和訓練的細節
  • 沒有了DesneCRF的後處理

2. 介紹

  使用DCNN做語義分割取得了一定的效果但是存在兩個問題。其一,為了使DCNN學習到更加抽象的特徵,採用了多次池化操作和帶步長的卷積,使得特徵圖解析度降低,但同時這不利於密集預測任務,因為後者需要空間位置資訊。為了克服這個問題,引入空洞卷積——通過去掉最後幾層的上取樣和下采樣來獲得更加密集的特徵圖,這樣還能在不適用額外引數的情況下控制解析度。
  其二,如何捕獲不同尺度的目標。目前主要有四種不同的方法,如下圖:
在這裡插入圖片描述

  • Image Pyramid:對輸入影象進行縮放分別輸入網路最後合在一起:小的輸入用於捕獲long-range context,大的輸入用於捕獲小物體。但是這樣做會使得深層的DCNN計算代價高
  • 編解碼結構:在編碼結構中獲取不同尺度的特徵並在解碼結構中復原
  • 額外的後處理以精細畫邊框,比如DenseCRF
  • 空間金字塔池化

3. 方法

  在模組串聯合金子塔池化的框架中應用帶有不同空洞率的空洞卷積和BN層。空洞卷積作為語義模組和SPP的工具,論文提出的模型具有較好的通用性,可以移植到其他網路中。這個模型將ResNet最後一個block多次複製並串聯,然後聯通ASPP模組,ASPP模組中包含幾個並行的空洞卷積,這幾個空洞卷積直接應用在特徵圖而不是信念圖上。訓練時層上加上BN層。而且,為了捕獲全域性語義,ASPP還疊加了了影象級別的特徵。

3.1 用於密集特徵提取的空洞卷積

  克服多次池化和帶步長的卷積對密集預測任務的影響。

3.2 使用空洞卷積設計更深的模型

在這裡插入圖片描述
  如上圖,簡單地複製ResNet最後一個block幾次並且並行起來並不利於網路獲取深層語義資訊,因為這樣使得影象的特徵集中在最後幾層比較小的特徵圖中,但是連續的帶步長卷積不利於語義分割,所以使用了空洞卷積來設計最終的output_stride(原始影象尺寸之於輸出特徵圖尺寸的倍數),如下圖所示:
在這裡插入圖片描述
  初次之外還引入了Multi-grid Method,上圖中Block4至7,採用Multi-grid來描述這三層的空洞率,比如,當output_stride=16時,Multi_Grid=(1,2,4),相應的空洞率為(2,4,8)。

3.3 ASPP

  ASPP中雖然包含幾個不同的空洞率的卷積操作,但是當空洞率越來越大時,有效的濾波器的權重數越來越小。比如在65 X 65的特徵圖上應用3 X 3的濾波器,非但不能捕獲全域性影象語義,其效果還退化到與1 X 1濾波器效果一致,因為僅有中心的濾波器權重是有效的。
  因此,ASPP模組中包含幾個並行的空洞卷積,這幾個空洞卷積直接應用在特徵圖而不是信念圖上。訓練時層上加上BN層。而且,為了捕獲全域性語義,ASPP還疊加了了影象級別的特徵。
在這裡插入圖片描述
  如上圖所示,ASPP模組中有一個1x1的卷積層和三個3x3的卷積層,空洞率分別為6,12,18,output_stride為16(每一層都有256個濾波器並且後跟BN層);而且ASPP中還增加了image-level特徵,最後在模型輸出的特徵圖上進行1x1的卷積(256個濾波器並且後跟BN層)並進行插值上取樣至所需的空間維度尺寸。

4. 實驗

4.1 ResNet50 v.s. ResNet101

在這裡插入圖片描述

4.2 block4中應用不同的Multi-grid

在這裡插入圖片描述

4.3 ASPP

  在block4中應用Multi-grid以及ASPP中使用不同的空洞率:
在這裡插入圖片描述

4.4 FINAL

在這裡插入圖片描述