官术网_书友最值得收藏!

第1章 雙階段檢測

1.2.1 空間金字塔池化

1.算法動機

SPP-Net通過可視化CNN的最后一個卷積層,發現卷積操作其實保存了輸入圖像的空間特征,且不同的卷積核可能響應不同的圖像語義特征。如圖1.5所示,通過對圖1.5(a)中左側輸入圖像的特征圖的可視化,第175個卷積核傾向于響應多邊形特征,第55個卷積核傾向于響應圓形特征;通過對圖1.5(b)中左側輸入圖像的特征圖的可視化,第66個卷積核傾向于響應^形狀,而第118個卷積核則傾向于響應 形狀。上面這些響應與輸入圖像的尺寸沒有關系,只取決于圖像的內容。

在傳統的計算機視覺方法中,我們首先可以通過SIFT或者HOG等方法提取圖像特征,然后通過詞袋或者空間金字塔池化的方法聚集這些特征。同樣我們也可以用類似的方法聚集CNN得到的特征[12][13],這便是SPP-Net的算法思想。


[12] 參見Kristen Grauman、Trevor Darrell等人的論文“The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features”。

[13] 參見Svetlana Lazebnik、Cordelia Schmid、Jean Ponce的論文“Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories”。

圖1.5 特征圖響應圖像特征示意

2.SPP-Net的結構

SPP的思想與多尺度輸入圖像的思想類似,不同的是SPP基于特征圖的金字塔的特征提取。它首先通過CNN提取輸入圖像(尺寸無要求)的特征,然后通過SPP的方法將不同的特征圖聚集成相同尺寸的特征向量,這些尺寸相同的特征向量便可以用于訓練全連接層或者SVM。與傳統的詞袋方法相比,SPP保存了圖像的空間特征。得到尺寸相同的特征向量后,便可以將其輸入全連接層了。圖1.6所示是SPP-Net的結構。

在圖1.6中,骨干網絡的最后一個卷積層(Conv5層)共有256個卷積核,SPP-Net的論文中使用了4×4、2×2、1×1這3個尺度的金字塔,在每個尺度的柵格(grid,其大小和輸入圖像的尺寸有關)上使用最大池化得到特征向量。最后將所有尺度的特征向量拼接在一起,就得到長度為5376的特征向量。該特征向量便是全連接層的輸入。通過分析可以看出,雖然輸入圖像的尺寸不一樣,但經過SPP-Net后都會得到相同長度的特征向量。

SPP是可以通過標準的反向傳播進行訓練的,然而在實際訓練過程中,GPU更傾向于尺寸固定的輸入圖像(例如小批次訓練)。為了能夠使用當時的框架(Caffe)并同時考慮多尺度的因素,SPP-Net使用了多個不同輸入尺寸的網絡,這些網絡是共享參數的。對于任意不同輸入尺寸的卷積網絡,經過卷積層得到特征向量的大小是a×a,如果我們要使用金字塔的某層取一個n×n的特征向量,則池化層的窗口大小是,步長是。可見,參數和輸入圖像的尺寸是沒有關系的,因此不同的輸入圖像尺寸對應的網絡之間權值是可以共享的。

圖1.6 SPP-Net的結構

在實驗中,SPP-Net使用了輸入圖像尺寸分別是224×224和180×180的兩個不同的網絡。在將圖像縮放到其中一個尺寸后訓練該網絡,并將學到的參數共享到另一個網絡中。也就是說,SPP-Net會每隔一個epoch更換一種圖像尺寸,訓練結束后共享參數。SPP-Net的多尺度輸入的訓練策略是提升檢測效果的十分常見的技巧,尤其是在小目標檢測的場景。

在測試時,由于不存在小批次,因此輸入圖像的尺寸是任意的,在推理時并不存在圖像扭曲的問題。但是這里的“任意”也不是完全任意的輸入,因為過小的圖像輸入模型會無法進行多次降采樣。

主站蜘蛛池模板: 台中县| 济南市| 宕昌县| 佛山市| 永顺县| 五莲县| 晴隆县| 洛扎县| 永济市| 恩施市| 明水县| 胶南市| 八宿县| 泽普县| 广安市| 武穴市| 略阳县| 竹北市| 清苑县| 祁连县| 昌江| 汽车| 连平县| 松潘县| 启东市| 贵定县| 湘潭市| 抚顺县| 瑞丽市| 南城县| 邵武市| 蓬溪县| 灌阳县| 蒙城县| 酉阳| 闽清县| 平远县| 泸州市| 宝清县| 吴忠市| 蚌埠市|