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