SPP Net

SPPnet

R-CNNvsSPP net:

SPP net的優(yōu)勢:

1.SPP可以生成固定大小的向量,以此適應fc層所要求的固定輸入

2.多個pooling窗口,可以取出不同層次的特征

3.可以不再限制輸入圖片的尺寸

4.對于每張圖片只需要跑一遍CNN

SPP net的大體步驟:

1.假設原圖輸入是224*224,5個conv layers(以5層卷積為例)卷積出來的輸出是13*13*256(因為最后一層共256個filter),即13*13大小的共256張feature maps;

2.spp一共分3層:

第一層是對整張feature map做池化(最大、均值等);

第二層是將整張feature map劃分為2*2=4個塊,分別對每個塊做池化;

第三層是將整張feature map劃分為4*4=16個塊,分別對每個塊做池化。

注意!以上步驟每一步的max pooling的window size和stride都不同,具體的計算公式是:win= a/n(上舍入), str = a/n(下舍入),其中a是原圖經(jīng)過5層卷積后得到的feature map的大小,如果是第三層那么n = 3,以此類推。

舉個栗子:當a = 13時,win = 13/3 = 4.333 ~=5(因為上舍入),str = 13/3 = 4.3333 ~=4(因為下舍入)。所以了第三層的max pooling的sliding window大小就是5*5,stride就是4*4。以此類推。

當然了,每一張圖的max pooling也不一樣。

舉個栗子:當輸入圖像大小= 180*180時,經(jīng)過5層卷積后得到的feature map的大小就是10*10。那么第三層的max pooling的sliding window大小就是a/n = 10/3 = 3.333~=4,stide就是3。以此類推。

具體內容請參考原文:

當輸入是224*224大小的圖像時,5層conv后得到13*13:

當輸入是180*180大小的圖像時,5層conv后得到10*10:

通過以上步驟,最后可獲得1+4+16=21個池化后的特征。

總的來說,在固定spp層數(shù)的前提下,就是根據(jù)圖像的具體大小來設計具體的max pooling。最終保證輸入到fc層的結果是相同維度大小的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容