Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPP-net) 筆記

作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

SPP—Net

提出背景:

         由於CNN的輸入需要固定大小的圖片(比如224*224),而固定大小的圖片是通過將原始圖片crop或者wrap得到的,這樣,會使原始圖片幾何失真,最終會使網絡訓練的準確率下降。

         crop或者wrap產生的圖片效果如下:


         CNN分爲卷積層(convolutionallayer)和全連接層(fully-connected layer)。卷積層不需要固定大小的輸入,可以產生任意大小的feature map,而全連接層需要固定大小/長度的輸入。所以上面提到的CNN需要固定大小的輸入就是因爲全連接層。

         因此,作者提出了空間金字塔池化(spatial pyramid pooling,即SPP),這種方法可以解除CNN對於固定大小輸入的限制。作者將這個SPP層放在CNN中最後一個卷積層的後面,全連接層前面。如下圖:


上面那個是傳統的CNN模式,下面那個是作者提出的新方法。

 

空間金字塔池化層(SpatialPyramid pooling Layer)



 

         上圖是一種SPP層的結構。上圖中,其實就是對最後一層卷積層同時進行4x4,2x2,1x1的池化,然後將3個池化後“矩陣”轉換成“向量”連接起來。由於池化是按比例下采樣上一層圖像,故對於任意大小的出入,經過4x4池化後總是得到4x4的輸出。所以對於上圖,對於任意大小的輸入,最後經過SPP層之後,總是得到21x256維的輸出(21=4*4+2*2+1*1)。

         另外,作者還提出1x1的池化成爲“globalpooling”,有以下幾個優點:1)可以減小模型大小和減小過擬合 2)一個global average pooling可以提高準確率 3)一個global max pooling可以用於弱監督物體識別(weakly supervised object recognition)。

 

實驗

作者在實驗的時候,發現以下幾種方法可以提高準確率。

1)  Multi-level Pooling Improves Accuracy. 比如4-levelpyramid其中一個例子就是(6x6,3 x 3,2x2,1x1)。

2)  Multi-size Training Improves Accuracy. 比如訓練的時候輸入圖片爲224x224和180x180,測試的時候仍然爲224x224.

3)  Full-image Representations Improves Accuracy.

4)  Multi-view Testing on Feature Maps

詳細的說明可以看看論文。

 

其他說明

圖像分類(Image Classification)的大致流程如下:



物體檢測(Object Detection)的簡略流程如下:


說明:

1)使用SPP進行檢測,先用提候選proposals方法(selective search)選出候選框,不過不像RCNN把每個候選區域給深度網絡提特徵,而是整張圖提一次特徵再把候選框映射conv5,因爲候選框的大小尺度不同,映射到conv5後仍不同,所以需要再通過SPP層提取到相同維度的特徵,再進行分類和迴歸,後面的思路和方法與RCNN一致。實際上這樣子做的話就比原先的快很多了,因爲之前RCNN也提出了這個原因就是深度網絡所需要的感受野是非常大的,這樣子的話需要每次將感興趣區域放大到網絡的尺度才能卷積到conv5層。這樣計算量就會很大,SPP只需要計算一次特徵,剩下的只需要在conv5層上操作就可以了。

2)映射說的簡單一點其實就是:輸入圖片與卷積層conv5是對應的,而region proposal與輸入圖像也是對應的,所以region proposal與conv5也是對應的。通過某種映射關係,就可以求出region proposal具體對應conv5的哪個部分。這樣,對應每個region proposal不需要進行卷積運算,只需要求一個映射關係就可以,所以速度快樂很多。

3)其實具體流程還涉及到其他的,比如對region proposal重新調整大小等,具體細節參照論文。

 

 

參看文獻:

RCNN學習筆記(3):Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition(SPP-net)

 

目標檢測——從RCNN到Faster RCNN 串燒

 






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章