在學習r-cnn系列時,一直看到SPP-net的身影,許多有疑問的地方在這篇論文里找到了答案。
論文:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
轉自:http://blog.csdn.net/xzzppp/article/details/51377731
另可參考:http://zhangliliang.com/2014/09/13/paper-note-sppnet/
http://sinb.github.io/Whatyouknowabout/spp-net-1/
1、簡介
空間金字塔池化,使得任意大小的特征圖都能夠轉換成固定大小的特征向量,這就是空間金字塔池化的意義(多尺度特征提取出固定大小的特征向量),
送入全連接層。整體框架大致為:輸入圖像,卷積層提取特征,空間金字塔池化提取固定大小特征,全連接層。
具體的流程圖如下:
2、具體算法的大體流程
首先通過選擇性搜索(selective search),對待檢測的圖片進行搜索出2000個候選窗口。這一步和R-CNN一樣。
特征提取階段。這一步就是和R-CNN最大的區別了,同樣是用卷積神經網絡進行特征提取,但是SPP-Net用的是金字塔池化。這一步驟的具體操作如下:
把整張待檢測的圖片,輸入CNN中,進行一次性特征提取,得到feature maps,然后在feature maps中找到各個候選框的區域,再對各個候選框采用金字塔空間池化,
提取出固定長度的特征向量。而R-CNN輸入的是每個候選框,然后在進入CNN,因為SPP-Net只需要一次對整張圖片進行特征提取,速度是大大地快啊。江湖傳說可一個提高100倍的速度,
因為R-CNN就相當於遍歷一個CNN兩千次,而SPP-Net只需要遍歷1次。最后采用SVM算法進行特征向量分類識別,和R-CNN一樣。
3、關鍵步驟解釋
3.1 如何在feature maps中找到原始圖片中候選框的對應區域