1. 程式人生 > >論文閱讀筆記二十四:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

論文閱讀筆記二十四:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)

分享圖片 介紹 bin con strong map com 提高 https

技術分享圖片

論文源址:https://arxiv.org/abs/1406.4729

tensorflow相關代碼:https://github.com/peace195/sppnet

摘要

深度卷積網絡需要輸入固定尺寸大小的圖片(224x224),這引入了大量的手工因素,同時,一定程度上,對於任意尺寸的圖片或者子圖會降低識別的準確率。SPP-net對於任意大小的圖片,可以生成固定長度的特征表述。SPP-net對於變形的圖片仍有一定的魯棒性。基於上述優點,SPP-net會提高基於CNN的圖像分類的效果。

SPP-net對於目標檢測任務也有一定的貢獻,只從整張圖片中計算一次獲得feature map,然後,通過從任意尺寸區域得到的池化特征中生成固定尺寸的特征表述用於檢測器的訓練。此模型避免重復的卷積特征提取過程,大大減輕了計算負擔。經測試,SPP-net要快於R-CNN 24-102倍。

介紹

對於輸入卷積網絡圖片的尺寸要求為固定尺寸,大多數做法是通過裁剪,或拉伸至目標尺寸中,裁剪過的圖片可能並未包含目標物體,而拉伸操作可能會使圖片的幾何失真。進而可能會對識別的準確率造成一定的影響。當目標物體的大小發生變化時,預訓練時的尺寸大小可能會發生矛盾,固定大小的輸入忽略了多尺度的問題。如下圖嗎,

技術分享圖片

卷積網絡要求輸入尺寸固定的原因:卷積網絡主要包含兩部分:卷積層和全連接層。卷積層通過一個滑動窗口並輸出代表空間分布的響應。實際上,卷積層並不需要固定的圖片尺寸,而且可以輸出任意大小的feature map。而全連接層根據定義要求輸入必須為固定的大小。

該文提出了空間金字塔池化層用於消除尺寸固定這個限制。具體實現是在最後一層卷積層後添加SPP層。SPP將特征池化處理,並產生一個固定長度的輸出,送入全連接層。一句話,SPP-net在網絡的較深層中(卷積層與全連接層之間)執行一些聚合不同層次信息的操作來減弱輸入時采用裁剪拉伸等操作產生的不良影響。SPP-net實現不同尺寸的輸入,這增加了模型尺寸的不變性及防止過擬合。

基於空間金字塔池化的深度網絡

卷積網絡與feature map:參考七層網絡結構,前5層為卷積層,每層參雜池化層,後接幾層池化層,最後兩層為全連接層,同時輸出N路soft-max,N代表類別數。此網絡結構需要輸入固定尺寸的圖片,而固定的性質是由全連接層決定的。卷積層執行滑動卷積操作,輸出與輸入之間的比是相似的。得到的feature map包含了響應值同時也包含了空間位置信息。

技術分享圖片

空間金字塔池化層:卷積層接受任意尺寸的輸入同時生成不同尺寸的輸出。SVM,全連接層分類器要求輸入固定尺寸的特征向量。通過詞袋方法將特征進行池化。相比詞袋,空間金字塔池化層可一個保留池化操作後的空間信息到局部空間bin中。spatial bin與輸入成比例的尺寸。而spatial bin的數量不受圖片大小的影響。而先前的池化操作滑動窗口的數量受輸入大小的影響。該文將最後一層池化層更改為SPP,通過使用不同的核對feature map進行池化操作。SPP層輸出kxM維的向量,k為最後一層卷積層核的個數。M為bin的個數,固定維度的向量送入全連接層中。在SPP中有一個全局池化操作,全局平均池化操作可以降低模型的復雜度,同時可以防止過擬合。在測試時,在卷積層後使用平均池化層利於提高準確率,而最大池化操作用於弱監督的目標識別。

技術分享圖片

網絡的訓練:分為單尺寸訓練和多尺寸訓練,單尺寸訓練,送入裁剪後固定大小的圖片(224x224),對於輸入的圖片,可以事先計算好bin的大小。conv5輸出的feature map大小為axa(13x13)。而一層含有nxn大小的金字塔層,將池化層看作滑動窗口,大小為[a/n], stride 為[a/n],對有l層金字塔層,將其l個輸出進行拼接。win中的[]代表向上取整,而stride中的[]代表向下取整。

技術分享圖片

多尺寸的訓練:該文除了考慮224x224大小的輸入,同時考慮了180x180大小的輸入,將224x224圖片resize至大小為180x180大小。 所以,兩者窗寬比相同,內容與外形相同,只有像素不同。 輸入圖片大小發生改變,通過改變金字塔池化層得到與224x224相同維度的向量輸入到全連接層中。網絡的參數量相同,這樣實現了不同尺寸的輸入。先用224x224的圖片訓練一輪,後使用180x180大小的圖片進行叠代,該文還使用[224x180]的進行實驗。

分類實驗

基於ZF-5,Convnet*-5,Overfeat-5/7五個網絡結構進行改造,結構如下

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

目標檢測實驗

首先將整幅圖像輸入網絡提取特征,采用快速的SS方法提取候選框,然後在每個候選框上應用SPP層進行特征提取,用訓練好的二分類SVM進行分類。

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

Reference

[1] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition,” Neural computation, 1989.

[2] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei, “Imagenet: A large-scale hierarchical image database,” in CVPR, 2009.

[3] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classi?cation with deep convolutional neural networks,” in NIPS, 2012.

論文閱讀筆記二十四:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)