基於深度學習的目標檢測方法:SPP-net

SPP-net

       論文:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

       在R-CNN中,要求輸入固定大小的圖片,因此需要對圖片進行crop、wrap變換。此外,對每一個圖像中每一個proposal進行一遍CNN前向特徵提取,如果是2000個propsal,需要2000次前向CNN特徵提取,這無疑將浪費很多時間。

       該論文對R-CNN中存在的缺點進行了改進,基本思想是,輸入整張圖像,提取出整張圖像的特徵圖,然後利用空間關係從整張圖像的特徵圖中,在spatial pyramid pooling layer提取各個region proposal的特徵。


-------------------------------------------------------------------------------------------------------------------------------------------------------  

spatial pyramid pooling layer      

       在傳統的CNN中,卷積層不需要輸入固定大小的圖像,並能產生任意大小的特徵圖,但是全連接層要求輸入固定大小的圖像。因此,該論文提出了將最後一個卷積層後的池化層替換爲spatial pyramid pooling layer(SPP層), 該層能夠生成長度固定的特徵,並輸入到全連接層。因此,SPP-net適合輸入大小不同的圖像。

     spatial pyramid pooling layer的結構如下圖,類似於金字塔:



 -----------------------------------------------------------------------------------------------------------------------------------------------------

多尺度訓練

     爲了能夠輸入任意大小的圖像,在訓練網絡時,採用了多尺度輸入,如:224*224, 180*180,其中,180*180圖像是從224*224圖像變換的到的。構建兩種CNN模型,一種模型的輸入大小爲224*224,另一種模型的輸入大小爲180*180,而且這兩個模型共享參數。


------------------------------------------------------------------------------------------------------------------------------------------------------

將圖像ROI映射到feature map上

     SPP-net 是把原始ROI的左上角和右下角映射到 feature map上的兩個對應點。有了feature map上的兩個角點,就確定了對應的 feature map 區域,如下圖:

     

       該模型從第一個卷積層到最後一個卷積層,包括中間的池化層,計算各個層stride的乘積s ;  (x’, y’)表示特徵圖上的座標點,(x , y)表示原輸入圖片上的座標點,那麼每個矩形候選框的左上角、右下角在特徵圖上的對應點:

左上角:  x’= ⌊x/s⌋ + 1    y’= ⌊y/s⌋ + 1 

右下角:  x’= x/s + 1    y’= y/s + 1


發佈了81 篇原創文章 · 獲贊 51 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章