SPP-Net翻譯理解

SPP-Net

參考鏈接:https://blog.csdn.net/u011534057/article/details/51219959

Title

Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition

Link

https://arxiv.org/pdf/1406.4729.pdf

Abstract

現有的卷積神經網絡都需要固定尺寸的輸入圖像,這種需求是人工制定的,強制的圖像大小或許會降低識別準確率。在研究中,我們爲網絡配備了另一種池化策略,“spatial pyramid pooling”—空間金字塔池化,爲了消除上述需求。這種新型網絡結構,我們稱之爲“SPP-Net”,它能夠在不管輸入圖像大小、縮放的情況下,將圖像池化爲固定長度的表示。空間金字塔池化對目標變形也有很好的魯棒性。

SPP-Net對目標檢測領域同樣有着重大意義,使用SPP-Net,我們可以一次計算得到整張圖像的特徵圖,然後對特徵的任意區域進行池化生成固定長度表示,並訓練目標探測器。這種方法避免了重複卷積計算提取特徵。

Introduction

現有技術要求,輸入圖像尺寸固定,對於尺寸不同的圖像,通常採取crop(裁剪)、wrap(拉伸)等操作處理。

1559117888546

裁剪得到的圖像,可能不包含整個目標;而拉伸,會改變目標的形狀特徵。

對於分類問題,都會導致分類效果不好。

而空間金字塔池化就可以消除這一問題。

爲什麼卷積神經網絡要固定輸入尺寸呢?

有兩個原因:

  1. 卷積層,卷積層本身不需要固定尺寸,但是在設計整體網絡結構時,需要對其尺寸進行定義。
  2. 全連接層,全連接層的輸入必須是固定大小,這是從定義上給予的約束。

在本文,我們介紹了空間金字塔池化結構,移除了網絡對於固定尺寸輸入圖像的約束。我們在最後一層卷積層的後面加入SPP層,由SPP層池化特徵圖並生成固定長度的輸出,給予全連接層。

SPP可以通俗的理解爲(spatial pyramid matching or SPM),是一個由BOW(Bag-of-Words)擴展而來的模型。

SPP-Net沒有考慮到CNN的上下文內容。

SPP有幾個閃光點:

  1. SPP能夠不管輸入圖像尺寸如何,生成固定長度的輸出。
  2. SPP使用多尺度空間序列,提高了對於變形目標的魯棒性。而普通滑窗池化只有一個尺寸。
  3. SPP能夠對任意尺度提取的特徵進行池化。

DEEP NETWORKS WITH SPATIAL PYRAMID POOLING

Convolutional Layer and Feature Maps

考慮流行的七層架構,前五層爲卷積層,其中一部分會連接一般的池化層。這些池化層也可以看做是“卷積”。最後兩層是全連接層,以及一個N維的Softmax作爲輸出,N是類別總數。

The Spatial Pyramid Pooling Layer

卷積層接受任意尺寸的輸入,但是分類器(SVM/Softmax)或全連接層都需要固定長度的向量作爲輸入。這些向量都可以通過BoW思想生成。空間金字塔池化改進了BoW,通過池化當前空間序列,保留了一定的空間信息。這些空間序列與圖像尺寸成比例,所以序列數量就是固定的,而不管實際圖像尺寸如何。與一般的池化層形成對比,池化層輸出的尺寸依賴於輸入尺寸。

爲了適配到深度神經網絡,我們替換了卷積層的最後一個池化層,Figure 3說明了我們的方法。

在這裏插入圖片描述

SPP的輸出是一個km維的向量

k是最後一層卷積層的卷積核個數,在上圖就是256

m是序列的總數,在上圖就是16+4+1=21

事實上,SPP是一個全局池化的操作。

[31], [32]全局平均池化用於減小模型尺寸,降低過擬合。

[33], 全局平均池化在測試階段連接到全連接層後,用於改進準確率。

[34], 全局最大池化用於弱監督的目標識別。

全局池化操作對應傳統算法中的BoW方法。

Training the Network

理論上,在上述網絡架構中,都能用標準的反向傳播算法進行訓練。但是在GPU上實現,最好還是選用固定尺寸的輸入圖像。下一步我們將描述我們的訓練方法以及如何在GPU上進行實現。

Single-size training

假設最後一個卷積層輸出爲a×a(13×13),金字塔等級n×n的序列

池化的窗口尺寸win=1559124291641,步長str=1559124314933

單一尺度訓練的主要目的是讓多尺度訓練成爲可能,實驗表明,這是提升準確率的原因之一。

Multi-size training

1559124098092

對於[pool3×3]

a=13,n=3,sizeX=13/3(向上取整)=5,stride=13/3(向下取整)=4

考慮兩種尺寸,180×180、224×224。

我們將上述224 x224區域縮放爲180x180,而不是裁剪更小的180x18(區域)。

因此,這兩種尺度下的區域僅在分辨率上不同,而在內容/佈局上完全相同。爲了接受180x180的輸入,我們實現了固定輸入尺寸爲 (180x180)的網絡。

在本例中,最後一個卷積層輸出的feature map大小爲axa=10x10。

180網絡的SPP層的輸出與224網絡的輸出具有相同的固定長度。

因此,這個180網絡在每一層都具有與224網絡完全相同的參數。換句話說,在訓練過程中,我們用兩個共享參數的固定大小網絡實現了可變輸入大小的SPP-Net。

爲了減少從一個網絡(例如,224)切換到另一個網絡(例如,180)的開銷,我們在一個網絡上訓練每個完整epoch,然後切換到另一個網絡(保留所有權重),以完成下一個完整epoch。這是迭代。在實驗中,我們發現這種多尺度訓練的收斂速度與單尺度訓練相似。

多尺度訓練的主要目的是模擬不同的輸入大小,同時仍然利用現有的固定大小的優化器實現。除了上述兩種尺度的實現外,我們還測試了一個變量,使用s x s作爲輸入,其中s在[180,224]中,對於每個epoch中隨機、均勻地採樣。

可以這麼說,pool level就是池化後產生的向量長度是多少,然後整個feature map根據這個pool level(比如3×3),等比例的將feature map分爲9份,執行最大池化操作。公式只是在控制池化結果數的基礎上,計算了每個池化窗口的大小而已。

Conclusion

SPP是一個靈活的解決方案,可以處理不同的規模、大小和縱橫比。這些問題在視覺識別中很重要,但在深度網絡環境中卻很少被考慮。

提出了一種利用空間金字塔池化層訓練深度網絡的方法。結果表明,SPP-net在分類/檢測任務中具有較高的精度,大大加快了基於dnn的檢測速度。

我們的研究還表明,在基於深度網絡的識別中,許多經過時間檢驗的計算機視覺技術/見解仍然可以發揮重要作用。

REFERENCES

[31] M. Lin, Q. Chen, and S. Yan, “Network in network,” arXiv:1312.4400, 2013.

[32] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, “Going deeper with convolutions,” arXiv:1409.4842, 2014.

[33] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” arXiv:1409.1556, 2014.

[34] M. Oquab, L. Bottou, I. Laptev, J. Sivic et al., “Learning and transferring mid-level image representations using convolutional neural networks,” in CVPR, 2014.

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