SPP-Net、Atrous Convolution以及ASPP by Rose


一、簡介

  1. ​SPP-Net是出自2015年發表在IEEE上的論文-《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》。在此之前,所有的神經網絡都是需要輸入固定尺寸的圖片,比如224×224(ImageNet)、32×32(LenNet)、96×96等。這樣對於我們希望檢測各種大小的圖片的時候,需要經過crop,或者warp等一系列操作,這都在一定程度上導致圖片信息的丟失和變形,限制了識別精確度。而且,從生理學角度出發,人眼看到一個圖片時,大腦會首先認為這是一個整體,而不會進行crop和warp,所以更有可能的是,我們的大腦通過搜集一些淺層的信息,在更深層才識別出這些任意形狀的目標。
  2. ​ASPP是出自2016年發表在IEEE上的論文-《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》。ASPP(Atrous Spatial Pyramid Pooling)是DeepLab中用於語義分割的一個模塊。由於被檢測物體具有不同的尺度,給分割增加了難度。一種方法是通過rescale圖片,分別經過DCNN(Deep Convolutional Neural Network)檢測,然后融合,但這種方法計算量大。DeepLab就設計了一個ASPP的模塊,既能得到多尺度信息,計算量又比較小,其中還使用了空洞卷積(Atrous Convolution)的方法

二、參考文獻

  1. Chen L C , Papandreou G , Kokkinos I , et al. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 40(4):834-848.

    http://www.arxiv.org/pdf/1406.4729.pdf

  2. Chen L C , Papandreou G , Kokkinos I , et al. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 40(4):834-848.

    http://export.arxiv.org/pdf/1606.00915

博客:

三、模塊詳解

1.SPP-Net

主要內容

為了固定尺寸的輸入,裁剪和拉伸都會對物體造成或多多少的失真。

黑色圖片代表卷積之后的特征圖,接着我們以不同大小的塊來提取特征,分別是4×4,2×2,1×1,將這三張網格放到下面這張特征圖上,就可以得到16+4+1=21種不同的塊(Spatial bins),我們從這21個塊中,每個塊提取出一個特征,這樣剛好就是我們要提取的21維特征向量。這種以不同的大小格子的組合方式來池化的過程就是空間金字塔池化(SPP)。比如,要進行空間金字塔最大池化,其實就是從這21個圖片塊中,分別計算每個塊的最大值,從而得到一個輸出單元,最終得到一個21維特征的輸出。這樣對於不同的輸入總能得到需要的特征數量,而不用固定卷積層的輸入尺寸。

測試結果

2.ASPP

Atrous/Dilated Convolution

在介紹ASPP之前,首先要介紹Atrous Convolution(空洞卷積)。和之前的non-local一樣,都是為了增加感受野的方法。空洞卷積是是為了解決基於FCN思想的語義分割中,輸出圖像的size要求和輸入圖像的size一致而需要upsample,但由於FCN中使用pooling操作來增大感受野同時降低分辨率,導致upsample無法還原由於pooling導致的一些細節信息的損失的問題而提出的。為了減小這種損失,自然需要移除pooling層,因此空洞卷積應運而生。

先看標准卷積,stride=2,padding=1,得到7×7的感受野

再看空洞卷積,stride=1,padding=0,得到7×7的感受野

空洞卷積核

(a) 普通卷積,1-dilated convolution,卷積核的感受野為3x3
(b) 擴張卷積,2-dilated convolution,卷積核的感受野為7x7
(c) 擴張卷積,4-dilated convolution,卷積核的感受野為15x15

計算公式(空洞卷積dilated rate = n)

而對於標准卷積,需要級聯三個3×3的卷積核(計算公式為:(ksize-1)*layers + 1)

空洞卷積的問題

  1. The Gridding Effect

多次疊加dilation rate=2的3×3kernel,則會出現這個問題:

並不是所有的pixel都用來計算,這對 pixel-level dense prediction的任務來說是致命的。

  1. Long-ranged information might be not relevant

光采用大 dilation rate 的信息或許只對一些大物體分割有效果,而對小物體來說可能則有弊無利了。

解決辦法參見Hybrid Dilated Convolution (HDC) .

ASPP

論文中說:這種方法受到了R-CNN空間金字塔池方法的成功啟發,該方法表明,通過對單個尺度提取的卷積特征進行重采樣,可以對任意尺度的區域進行准確有效的分類。我們已經實現了他們的方案的一個變種,該方案使用具有不同采樣率的多個並行atrous convolutional layers。為每個采樣率提取的特征在單獨的分支中進一步處理,並融合以生成最終結果。提出的“atrous spatial pyramid pooling池”(DeepLab-ASPP)方法概括了我們的DeepLab-LargeFov變量,如下圖所示。

部分網絡結構圖:

使用和不使用ASPP以及使用不同dilated rates的ASPP的結果:

3.atrous/dilated convolution和deconvolution/transposed convolution

deconvolution(反卷積)為避免和數字信號處理的反卷積混淆,所以用tranposed convolution(轉置卷積)來代替。

使用場景:

  1. 在DCGAN中的生成器將會用隨機值轉變為一個全尺寸(full-size)的圖片,這個時候就需要用到轉置卷積。
  2. 在語義分割中,會使用卷積層在編碼器中進行特征提取,然后在解碼層中進行恢復為原先的尺寸,這樣才可以對原來圖像的每個像素都進行分類。這個過程同樣需要用到轉置卷積

具體原理為將卷積操作轉化為一個矩陣,要恢復更上一級的feature map就用當前的feature map乘以這個矩陣的轉置。需要注意的是:這里的轉置卷積矩陣的參數,不一定從原始的卷積矩陣中簡單轉置得到的,轉置這個操作只是提供了轉置卷積矩陣的形狀而已。具體內容參見博客

四、待改進

  1. ASPP是並行結構,如果將空洞卷積串行起來?
  2. 空洞卷積的rate需要特別設置,如果將non-local方法運用進來會怎樣?

五、討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM