空間金字塔池化技術,
厲害之處,在於使得我們構建的網絡,可以輸入任意大小的圖片,不需要經過裁剪縮放等操作。
是后續許多金字塔技術(psp,aspp等)的起源,主要的目的都是為了獲取場景語境信息,獲取上下文的聯系。
如圖所示,對於選擇的不同大小的區域對應到卷積之后的特征圖上,得到的也是大小不一致的特征圖區域,厚度為256,對於每個區域(厚度為256),通過三種划分方式進行池化:
(1)直接對整個區域池化,每層得到一個點,共256個點,構成一個1x256的向量
(2)將區域划分成2x2的格子,每個格子池化,得到一個1x256的向量,共2x2=4個格子,最終得到4個1x256的向量
(3)將區域划分成4x4的格子,每個格子池化,得到一個1x256的向量,共4x4=16個格子,最終得到16個1x256的向量
將三種划分方式池化得到的結果進行拼接,得到(1+4+16)*256=21*256的特征。
SPP做到的效果為:不管輸入的圖片是什么尺度,都能夠正確的傳入網絡.
具體思路為:CNN的卷積層是可以處理任意尺度的輸入的,只是在全連接層處有限制尺度——
換句話說,如果找到一個方法,在全連接層之前將其輸入限制到等長,那么就解決了這個問題.
具體實現方案如圖:
如果原圖輸入是224x224,對於conv5出來后的輸出,是13x13x256的,可以理解成有256個這樣的filter,每個filter對應一張13x13的activation map.如果像上圖那樣將activation map pooling成4x4 2x2 1x1三張子圖,做max pooling后,出來的特征就是固定長度的(16+4+1)x256那么多的維度了.如果原圖的輸入不是224x224,出來的特征依然是(16+4+1)x256;直覺地說,可以理解成將原來固定大小為(3x3)窗口的pool5改成了自適應窗口大小,窗口的大小和activation map成比例,保證了經過pooling后出來的feature的長度是一致的.
原文:https://blog.csdn.net/sinat_33486980/article/details/81902746