SPP-net閱讀筆記

成就

  • 相比於深度卷積神經網絡,可以不管圖像的大小而生成固定長度的表示
  • 對變形的物體也很有效
  • 在準確性相當的前提下,速度比R-CNN更快(24-64× faster overall)

做法

在R-CNN實現思路的基礎上,在最後一個卷積層和全連接層之間添加一個SPP層,由SPP層生成固定長度的輸出,並將其輸入到全連接層中。

SPP的特性

  • 無論輸入的大小,SPP都能生成固定長度的輸出
  • SPP使用多級spatial bins(多個尺寸的pooling)
  • SPP能夠對以任意比例提取的特徵進行池化
    在這裏插入圖片描述

SPP-net工作原理
在對圖片提取特徵時,使用的是如上圖所示的多級bin塊(1122441*1,2*2,4*4),就是將一張圖片分別用1122441*1,2*2,4*4的方式分割提取特徵,然後對每個區域做Max pooling,這樣就可以獲得1+4+16中特徵向量。由於conv5層filter的數目是256,所以每個特徵向量的維度是256。再將這1×256d,4×256d,16×256d1\times256-d,4\times256-d,16\times256-d的特徵向量拼接起來,得到21×256d21\times256-d的特徵向量。
即不論圖片的尺寸和大小,只要固定了spatial bins,最後得到的特徵向量的維度都是相同的。

使用SPP層訓練網絡

單一規格訓練
首先使用固定輸入(224×224224\times 224)。
對於一個給定了大小的圖像,需要先計算SPP所需的bin的大小。假如conv5conv_5之後feature maps的大小爲a×aa\times a,並且pyramid的等級爲n×nn\times n的bins,那麼window size=a/n\lceil a/n \rceil,stride=a/n\lfloor a/n \rfloor.
這一步的目的是爲了實現多級池化的行爲。(Ps:不理解)
多規格訓練
本文使用了兩種規格(180×180180 \times 180224×224224\times 224),本文是將原來的224×224224\times 224調整到180×180180 \times 180,而且這兩個網絡在每一層的參數是相同的,即在訓練過程中,利用共享參數的兩個輸入大小固定的網絡來實現輸入大小可變的SPP-net.
(無法體會到下面步驟的獨特意義不寫了)

SPP-net應用於目標識別

  • R-CNN的弊端:對於每張圖片提取出來的2000個窗口,R-CNN都要在每個窗口上重複的應用深度神經網絡,時間耗費很大。
  • SPP-net實現:本文在整張圖片上只提取一次feature maps,然後在每個feature map的每個候選窗口上應用SPP,對這個候選窗口池化一個固定長度的表示。在此過程中,由於神經網絡只應用了一次,所以時間耗費大大減少。

需要學習

  • 實驗部分沒有看(P12P_{12}之後)
  • SPP-net的ROI映射

如有問題 請多多指正

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