總結(jié) | CNN中的目標(biāo)多尺度處理
點(diǎn)擊左上方藍(lán)字關(guān)注我們

作者 | 點(diǎn)點(diǎn)點(diǎn)
鏈接 | https://zhuanlan.zhihu.com/p/70523190

圖像金字塔:經(jīng)典的基于簡(jiǎn)單矩形特征(Haar)+級(jí)聯(lián)Adaboost與Hog特征+SVM的DPM目標(biāo)識(shí)別框架,均使用圖像金字塔的方式處理多尺度目標(biāo),早期的CNN目標(biāo)識(shí)別框架同樣采用該方式,但對(duì)圖像金字塔中的每一層分別進(jìn)行CNN提取特征,耗時(shí)與內(nèi)存消耗均無(wú)法滿足需求。但該方式毫無(wú)疑問(wèn)仍然是最優(yōu)的。值得一提的是,其實(shí)目前大多數(shù)深度學(xué)習(xí)算法提交結(jié)果進(jìn)行排名的時(shí)候,大多使用多尺度測(cè)試。同時(shí)類似于SNIP使用多尺度訓(xùn)練,均是圖像金字塔的多尺度處理。 特征金字塔:這個(gè)概念早在ACF目標(biāo)識(shí)別框架的時(shí)候已經(jīng)被提出(PS: ACF系列這個(gè)我前兩年入過(guò)一段時(shí)間的坑,后來(lái)發(fā)現(xiàn)他對(duì)CPU內(nèi)存要求太大,不過(guò)確實(shí)是前幾年論文灌水利器,效果也還不錯(cuò),但還是不能落地的,我已果斷棄坑)。而在CNN網(wǎng)絡(luò)中應(yīng)用更為廣泛,現(xiàn)在也是CNN中處理多尺度的標(biāo)配。目前特征提取部分基本是FCN,F(xiàn)CN本質(zhì)上等效為密集滑窗,因此不需要顯示地移動(dòng)滑動(dòng)窗口以處理不同位置的目標(biāo)。而FCN的每一層的感受野不同,使得看到原圖中的范圍大小不同,也即可以處理不同尺度的目標(biāo)。因此,分析CNN中的多尺度問(wèn)題,其實(shí)本質(zhì)上還是去分析CNN的感受野,一般認(rèn)為感受野越大越好,一方面,感受野大了才能關(guān)注到大目標(biāo),另一方面,小目標(biāo)可以獲得更豐富的上下文信息,降低誤檢。

SSD中的多尺度處理


一般使用低層檢測(cè)小目標(biāo),但低層感受野小,上下文信息缺乏,容易引入誤檢;
使用簡(jiǎn)單的單一檢測(cè)層多尺度信息略顯缺乏,很多任務(wù)目標(biāo)尺度變化范圍十分明顯;
高層雖然感受野較大,但畢竟經(jīng)過(guò)了很多次降采樣,大目標(biāo)的語(yǔ)義信息是否已經(jīng)丟失;
多層特征結(jié)構(gòu),是非連續(xù)的尺度表達(dá),是非最優(yōu)的結(jié)果;

U-shape/V-shape型多尺度處理


由于decoder使用的通道數(shù)與encoder相同,導(dǎo)致了大量的計(jì)算量;
上采樣結(jié)構(gòu)不可能完全恢復(fù)已經(jīng)丟失的信息;

SNIP/SNIPER中的多尺度處理


訓(xùn)練與測(cè)試分辨率從不一致的時(shí)候性能會(huì)下降;
大分辨率輸入圖像雖然能提升小目標(biāo)檢測(cè)性能,但同時(shí)使得大目標(biāo)過(guò)大導(dǎo)致其很難分類,此消彼長(zhǎng),最終精度提升并不明顯;
多尺度訓(xùn)練(Mutil-Scale training),采樣到的圖像分辨率很大(1400x2000),導(dǎo)致大目標(biāo)更大,而圖像分辨率過(guò)小時(shí)(480x640),導(dǎo)致小目標(biāo)更小,這些均產(chǎn)生了非最優(yōu)的結(jié)果;
SNIP針對(duì)不同分辨率挑選不同的proposal進(jìn)行梯度傳播,然后將其他的設(shè)置為0。
即針對(duì)每一個(gè)圖像金字塔的每一個(gè)尺度進(jìn)行正則化表示;

空洞卷積處理多尺度


控制實(shí)驗(yàn)證明了感受野大小與目標(biāo)尺度呈現(xiàn)正相關(guān);
設(shè)計(jì)三個(gè)并行分支獲取不同大小的感受野,以分別處理不同尺度的目標(biāo),感受野使用空洞卷積表征;
每個(gè)分支采用Trident block構(gòu)建,取代ResNet-res4中的多個(gè)原始的Block;
訓(xùn)練類似于SNIP,三個(gè)分支分別采用不同尺度的目標(biāo)訓(xùn)練。

FPN中的多尺度處理

在上采樣時(shí)使用了比較粗糙的最近鄰插值,使得高層的語(yǔ)義信息不一定能有效傳播;
由于經(jīng)過(guò)多次下采樣,最高層的感受野雖然很豐富,但可能已經(jīng)丟失了小目標(biāo)的語(yǔ)義信息,這樣的傳播是否還合適;
FPN的構(gòu)建只使用了backbone的4個(gè)stage的輸出,其輸出的多尺度信息不一定足夠;
FPN中雖然傳播了強(qiáng)的語(yǔ)義信息到其他層,但對(duì)于不同尺度的表達(dá)能力仍然是不一樣的,因?yàn)楸旧砭吞崛×瞬煌琤ackbone的輸出。

FPN的各種改進(jìn)版本

Shu Liu, et al. Path Aggregation Network for Instance Segmentation.//CVPR 2018

Di Lin,et al. ZigZagNet: Fusing Top-Down and Bottom-Up Context for Object Segmentation.//CVPR 2019

Zheng Qin,et al. ThunderNet: Towards Real-time Generic Object Detection.//CVPR 2019

Wenbo Li, et al. Rethinking on Multi-Stage Networks for Human Pose Estimation.//arxiv 2019

Qijie Zhao,et al. M2Det: A Single-Shot Object Detector based on Multi-Level Feature PyramidNetwork.//AAAI 2019

Golnaz Ghaisi, et al. NAS-FPN: Learning Scalable Feature Pyramid Architecturefor Object Detection.//CVPR2019


上下文模塊加強(qiáng)多尺度信息

Liang-Chieh Chen, et al. Rethinking Atrous Convolution for Semantic Image Segmentation.//arxiv 2017
Hengshuang Zhao, et al. Pyramid Scene Parsing Network.//CVPR 2017


Tete Xiao,et al. Unified Perceptual Parsing for Scene Understanding.//ECCV 2018

Lu Yang,et al. Parsing R-CNN for Instance-Level Human Analysis. //CVPR 2019

END
整理不易,點(diǎn)贊三連↓
