1. 程式人生 > >CNN結構:SPP-Net為CNNs新增空間尺度卷積-神經元層

CNN結構:SPP-Net為CNNs新增空間尺度卷積-神經元層

        前幾個CNN檢測的框架要求網路的影象輸入為固定長寬,而SPP-Net在CNN結構中添加了一個實現影象金字塔功能的卷積層SPP層,用於在網路中實現多尺度卷積,由此對應多尺度輸入,以此應對影象的縮放變換和仿射變換。

一、文章的主要思想

       考慮到傳統的CNN構架的輸入影象的尺寸都是固定的(例如:256*256),這種人工改變輸入影象的尺寸破壞了輸入影象的尺度和長寬比例。作者認為卷積層的輸入的尺寸可以是任意,全連線層的輸入是固定不變。針對這個問題,作者提出了spatial pyramid pooling(SPP-net)結構,在目標檢測方面,比R-CNN快30-170倍。

            

二、spatial pyramid pooling(SPP-net)的優勢

        1、針對不同尺寸的輸入可以得到相同維度的輸出,而siding window pooling 做不到;

        2、SPP使用multi-level spatial bins, 而siding window pooling採用的單一的視窗,multi-level對目標變形非常魯棒;

        3、由於輸入尺寸的可變性,SPP可以提取不同尺度的特徵。

           這樣就可以省去對輸入影象進行標準化的麻煩,可以節省大量人力。

三、Deep Networks with Spatial Pyramid Pooling

特徵提取的過程其實很簡單,就是將SPP放在卷積層的最後一層,pooling層以前,將相當於用SPP代替最後一層pooling。假設最後一層卷積層有256個maps,每個maps的尺寸為a*a,n*n個bins。那麼採用視窗win=ceil(a/n)和步長str=floor(a/n)的max-pooling。最後將所有的特徵級聯起來作為全連線層的輸入。這樣就保證了無論輸入影象的尺寸,輸入全連線層的輸入都有同樣的大小。示意圖如下:

  

      

             

四、實驗結果


           從這個結果來看,確實有不少的提升。在ILSVRC比賽獲得了第二名?

五、論文總結

     本論文的思想主要還是基於SPM的思想,將CNN和SPM進行了結合,值得借鑑。並且提到了再訓練模型的時候,採用不同的尺寸輸入交替訓練,這種思想還是首次提到。

     增加一層神經元消畸變和尺度變換.