目标检测系列(三)——SPPnet
SPPNet
Spatial Pyramid Pooling(空間金字塔池化)
一般的CNN結(jié)構(gòu)中,對輸入大小要求固定,但在現(xiàn)實中通常會使用crop和warp來將大小統(tǒng)一,這樣做會破壞圖像的縱橫比,何凱明提出了SPP,連接在最后一層卷積層。
下圖中左邊為裁剪(crop),右邊為拉伸(crop)
SPP特點:
- SPP可以產(chǎn)生固定大小的輸出
- 使用多個pooling窗口
- SPP可以使用同一圖像不同尺寸作為輸入,得到同樣長度的池化特征
- 提高了尺度不變性,降低了過擬合
- 使用不同尺寸的圖像進(jìn)行網(wǎng)絡(luò)訓(xùn)練更容易使得網(wǎng)絡(luò)收斂
- SPP對于特定的CNN網(wǎng)絡(luò)設(shè)計和結(jié)構(gòu)是獨立的,只是替換了原來的pooling層
- 不僅可以用于圖像分類,也可以用于目標(biāo)檢測
1、結(jié)合空間金字塔方法實現(xiàn)CNNs對尺度輸入
一般CNN后連接全連接層或分類器,他們都需要固定的輸入尺寸,因此不得不對輸入數(shù)據(jù)進(jìn)行crop或warp,這些預(yù)處理會造成數(shù)據(jù)的丟失或幾何失真。
SPP Net的第一個貢獻(xiàn)就是將金字塔思想加入CNN,實現(xiàn)了數(shù)據(jù)的多尺度輸入。
如下圖所示,卷積層和全連接層中間加入了SPP layer,此時網(wǎng)絡(luò)的輸入可以是任意尺度的,在SPP layer 中每一個pooling的濾波器會根據(jù)輸入調(diào)整大小,使得SPP的輸出尺度始終是固定的。圖中的pooling窗口有多種(圖中藍(lán)色、綠色、灰色窗口),分別對feature maps進(jìn)行pooling,將分別得到的結(jié)果進(jìn)行合并就得到固定長度的輸出。
作者證明:
- 多個窗口的pooling會提高準(zhǔn)確率
- 輸入同一圖像的不同尺寸,會提高實驗準(zhǔn)確率,也就是提高了網(wǎng)絡(luò)的尺度不變性
- 多view會提高準(zhǔn)確率
- SPP替換了pooling層,對網(wǎng)絡(luò)結(jié)構(gòu)沒有影響,可以正常訓(xùn)練
2、只對原圖提取一次卷積特征
在R-CNN中,每個候選框先resize到同一大小,然后分別作為CNN的輸入,這樣是低效的,所以SPP對此作了優(yōu)化,只對原圖進(jìn)行一次卷積得到整張圖的feature map,然后找到每個候選框在feature map上的映射patch,將次patch作為每個候選框的卷積特征輸入到SPP layer后的層,節(jié)省了大量的計算時間,比R-CNN有100倍左右的提速。
總結(jié)
以上是生活随笔為你收集整理的目标检测系列(三)——SPPnet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法小白的自我总结
- 下一篇: 中国科大首次在固态体系实现保真度 99.