读DL论文心得之SPP
這篇論文是Kaiming He等發表在ECCV2014上面的Spatial pyramid pooling in deep convolutional networks for visual recognition。?
本篇論文的代碼也是開源的,還有一個很棒的slides。
Introduction
傳統CNN中,直接對圖像剪切和變形來達到需要的尺寸。雖然卷積的過程不要求固定尺寸,但全連接層需要固定尺寸,因為從卷積層到全連接層間的參數維數必須是固定的。這樣或多或少會影響分類與檢測的效果,于是本文就針對這一事實,提出一種解決方案:在卷積層和全連接層之間加一層SPP層,即spatial pyramid pooling,用于池化特征,生成固定長度的輸出,送入全連接層。?
這樣的明顯優點是速度非常快,準確率有提高(依然用了selective search來提取區域建議,因此整體檢測速度并不是很快)。
SPP
流行的7層CNN由5個卷積層(有些帶pooling層)、2個全連接層、1個softmax層組成。SPP是在卷積層后,用空間盒將卷積特征池化到一起,這張圖中的256是conv5的濾波器數量,每個格子都是256維的。下面是詳細的說明:
單一尺度的訓練
在訓練中,conv5有axa的輸出,金字塔有nxn個盒(bins)。?
窗口??
步長??
金字塔有l?級,輸入到fc6的是這l?級輸出連接起來。?
eg. conv5是13x13的,有pool3x3、pool2x2、pool1x1這樣3種size的盒,共有256個13x13的濾波器。?
多個尺度的訓練
假設有224x224和180x180兩種尺度的輸入圖像(其中180x180是由224x224縮放所得)。conv5的特征分別為224x224->13x13,180x180->10x10。?
相應的win和str都不同,但bin的數量是相同的都是(9+4+1)x256,后面連著全連接層。
detection
先在每張圖上生成候選窗口,縮放圖像,提取conv5特征,對每個候選窗口對應到conv5的特征用4層空間金字塔進行池化,生成12800-d(256x(1x1+2x2+3x3+6x6))特征表示,輸入全連接層,再用這些特征對每個種類訓練線性SVM分類器。即特征是從整張圖上計算的,而池化是在候選窗口上執行的,可由下圖看出SPP與RCNN的不同:?
一種多尺度特征提取的改進方法
簡而言之,這種方法是將圖片縮放到多個尺度(eg.{480, 576, 688, 864, 1200}),得到6組特征映射(還有一組是原本的尺度),對于每個候選窗口,選擇讓它最接近224x224的尺度對應的特征映射來進行提取。
results
| mAP | 58.0 | 59.2 | 58.5 |
| GPU time/img | 0.14s | 0.38s | 9s |
| speed-up | 64x | 24x | - |
總結
以上是生活随笔為你收集整理的读DL论文心得之SPP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅析string 与char* char
- 下一篇: 计算机视觉与模式识别(1)—— A4纸边