论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)
?
論文源址:https://arxiv.org/abs/1612.03144
代碼:https://github.com/jwyang/fpn.pytorch
摘要
? ? ? ?特征金字塔是用于不同尺寸目標(biāo)檢測(cè)中的基本組件。但由于金字塔表征的特征需要消耗較多的內(nèi)存及計(jì)算資源,因此,深度學(xué)習(xí)盡量避免使用金字塔特征。本文利用深度卷積網(wǎng)絡(luò)中自帶的多尺寸信息構(gòu)建特征金字塔。本文搭建了具有橫向連接的自上而下的結(jié)構(gòu)FPN,從而在所有尺寸上構(gòu)建高層次的語(yǔ)義特征。本文在Faster R-CNN的基礎(chǔ)結(jié)構(gòu)上增加了FPN結(jié)構(gòu),并在COCO數(shù)據(jù)集上取得了很好的結(jié)果。
介紹
? ? ? ?計(jì)算機(jī)視覺(jué)中尺寸的多樣性是一項(xiàng)研究熱點(diǎn),基于圖像金字塔構(gòu)建的特征金字塔作為一種基本解決方法。如下圖1,基于圖像金字塔搭建特征金金字塔。金字塔具有尺度不變性,實(shí)際中圖片的尺寸發(fā)生變化,可以通過(guò)在不同層之間進(jìn)行移動(dòng),來(lái)抵消尺寸大小上的變化。因此,模型可以通過(guò)掃描金字塔中的每個(gè)位置來(lái)最大范圍的尺寸檢測(cè)不同尺寸的目標(biāo)。
? ? ? ?特征圖像金字塔廣泛應(yīng)用于手工特征設(shè)計(jì)。對(duì)像DPM需要靠密集尺寸采樣的檢測(cè)器產(chǎn)生好的結(jié)果發(fā)揮著重要的作用。針對(duì)分類(lèi)任務(wù)來(lái)說(shuō),卷積網(wǎng)絡(luò)提取的特征代替手工設(shè)計(jì)的特征。卷積網(wǎng)絡(luò)可以表述更高層次的語(yǔ)義信息。對(duì)不同尺寸具有魯棒性,便于在單個(gè)尺寸輸入計(jì)算得到的特征進(jìn)行識(shí)別操作。如下圖b。但目前效果較好的目標(biāo)檢測(cè)網(wǎng)絡(luò)都采用多尺寸的信息進(jìn)行測(cè)試。
?
? ? ? ?從圖像金字塔中每層提取的特征主要優(yōu)勢(shì)在于多尺寸表示。其中包含較強(qiáng)語(yǔ)義信息和較高分的辨率。然而,對(duì)圖像金字塔每層特征提取需要消耗大量的計(jì)算資源,同時(shí),對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練需要占用大量的內(nèi)存資源。因此,圖像金字塔多用于測(cè)試階段,無(wú)法將訓(xùn)練/測(cè)試聯(lián)系起來(lái)。因此,Faster R-CNN選擇不適用特征圖像金字塔。
? ? ? ?圖像金字塔并不是計(jì)算多尺寸特征的唯一方法。深度卷積網(wǎng)絡(luò)逐層計(jì)算得到feature map。在網(wǎng)絡(luò)層中內(nèi)涵多尺寸信息,內(nèi)部網(wǎng)絡(luò)產(chǎn)生不同分辨率的feature maps。但層與層之間的語(yǔ)義信息會(huì)發(fā)生斷裂。高分辨率的feature map但包含的卻是低層次的信息,十分不利于目標(biāo)的識(shí)別。
? ? ? ?如上圖c所示,SSD首次在卷積網(wǎng)絡(luò)中金字塔特征層及上進(jìn)行嘗試,類(lèi)似于特征圖像金字塔。由于,SSD會(huì)重復(fù)利用前向傳播過(guò)程中得到的多尺寸的feature map,因此,不會(huì)消耗太多的計(jì)算資源。SSD為了避免低層次的特征,直接在網(wǎng)絡(luò)的較深層進(jìn)行金字塔的搭建(比如在VGG 網(wǎng)絡(luò)中的conv4-3層)并添加幾層網(wǎng)絡(luò)。從而無(wú)法得到較前層高分辨率的信息,不利于小目標(biāo)的檢測(cè)。
?? ? ? ?本文目標(biāo):利用卷積網(wǎng)絡(luò)特征層級(jí)的金字塔外形,建立一個(gè)在所有尺寸大小上都具有較強(qiáng)語(yǔ)義信息的特征金字塔。本文,將分辨率較低,語(yǔ)義信息較強(qiáng)的feature map與分辨率較高,語(yǔ)義信息較弱的feature map通過(guò)自上而下的路徑及連接結(jié)構(gòu)進(jìn)行結(jié)合。如上圖d,結(jié)果是得到了一個(gè)特征金字塔,每一層都含有較強(qiáng)的語(yǔ)義信息,而且可以從單一尺寸進(jìn)行快速搭建。本文展示了如何在不占用計(jì)算及內(nèi)存的條件下來(lái)建立特征金字塔。
? ? ? ??自頂而下帶有跳躍連接的結(jié)構(gòu)比較流行。這些網(wǎng)絡(luò)的目標(biāo)是得到單一的具有合適分辨率的高層次特征的feature map用于預(yù)測(cè)。如下圖上面,而本文利用特征金字塔結(jié)構(gòu)并在每一層進(jìn)行預(yù)測(cè)。FPN編碼得到了一個(gè)特征圖像金字塔。
?
? ? ? ? 該文在不同的檢測(cè)及分割結(jié)構(gòu)上進(jìn)行實(shí)驗(yàn),在COCO數(shù)據(jù)集上取得了較好的結(jié)果?;赽ounding box proposals,AR(average recall)提高了8.0個(gè)點(diǎn),對(duì)于目標(biāo)檢測(cè),COCO類(lèi)型的AP提高了2.3個(gè)點(diǎn),PASCAL提高了3.8個(gè)點(diǎn)。超過(guò)了基于ResNet的單尺寸Faster R-CNN。另外,FPN可以進(jìn)行端到端的訓(xùn)練及測(cè)試。
? ? ? ??
特征金字塔網(wǎng)絡(luò)
? ? ? ?本文利用卷積網(wǎng)絡(luò)中的金字塔特征層,特征層具有由低至高的語(yǔ)義信息。同時(shí)建立一個(gè)具有高層次語(yǔ)義信息的特征金字塔。得到的FPN是通用的,本文致力于滑動(dòng)窗及區(qū)域候選框方法的檢測(cè)器(像Fast R-CNN)。
? ? ? ?本文網(wǎng)絡(luò)輸入任意單一尺寸,同時(shí)按每層比例大小以全卷積的方式輸出相應(yīng)的feature maps。此過(guò)程與作為backbone部分的卷積是獨(dú)立的。本文的backbone為Resnet,FPN結(jié)構(gòu)包括自頂向底,自底向頂及橫向連接結(jié)構(gòu)。
Bottom-up pathway?
? ? ? ?bottom-up是backbone卷積網(wǎng)絡(luò)前向過(guò)程的計(jì)算。 計(jì)算不同尺寸大小的feature map得到一個(gè)特征層級(jí)。將包含相同尺寸大小的層叫做stage,FPN對(duì)每一個(gè)stage頂一個(gè)一個(gè)特征金字塔的一層。選擇每個(gè)stage最后一層(每個(gè)stage最后一層的特征最強(qiáng))的輸出作為feature map的參考設(shè)置,并用于接下來(lái)金字塔的建立。
? ? ? ?對(duì)于ResNets,使用每個(gè)stage最后一個(gè)殘差模塊激活值的輸出。將其中的conv2,conv3,conv4,conv5的輸出表示為,stride分別為{4,8,16,32}。由于conv1占用大量的內(nèi)存,因此,金字塔中未包含conv1。
Top-down pathway and lateral connections
? ? ? ?自頂向底的路徑通過(guò)粗略的上采樣可以獲得更高分辨率的feature map,同時(shí),由于來(lái)自金字塔的較高層次,具有更強(qiáng)的語(yǔ)義信息。特征通過(guò)橫向連接與自底向上的特征進(jìn)行增強(qiáng)。每個(gè)橫向連接,將相同的自底向頂與自頂向底兩個(gè)路徑中相同尺寸的feature map進(jìn)行融合。自底向頂?shù)膄eature map帶有低層次的語(yǔ)義信息。但細(xì)節(jié)信息更多。部分結(jié)構(gòu)如下。
? ? ? ?將粗分辨率的feature map上采樣兩倍(基于最近鄰算法),上采樣得到的feature map與自底向上對(duì)應(yīng)的feature map及逆行相加。(通過(guò)1x1的卷積來(lái)降維)。此過(guò)程一直迭代進(jìn)行,知道生成合適分辨率的feature map。
? ? ? ?由于特征圖像金字塔中的所有層都共享分類(lèi)器和回歸器。本文將所有feature map的通道數(shù)進(jìn)行固定。設(shè)置為256因此,所有額外的卷積層都只有256個(gè)通道,而網(wǎng)絡(luò)中沒(méi)有非線(xiàn)性處理過(guò)程。
應(yīng)用
?? ? ? ?本文主要將FPN應(yīng)用到RPN用于region proposal的生成,及Fast R-CNN用于目標(biāo)檢測(cè)。
FPN for RPN
? ? ? ? RPN為一個(gè)基于滑動(dòng)窗的類(lèi)無(wú)關(guān)的目標(biāo)檢測(cè)器。在原始RPN網(wǎng)絡(luò)中,通過(guò)一個(gè)3x3的滑動(dòng)窗進(jìn)行密集的預(yù)測(cè)。在單尺寸大小的卷積feature map的輸出端進(jìn)行有類(lèi)別/無(wú)類(lèi)別的二分及邊界框的回歸。通過(guò)添加一個(gè)3x3的卷積層及一對(duì)1x1的卷積實(shí)現(xiàn)分類(lèi)和回歸。并將此部分作為網(wǎng)絡(luò)的頭部。目標(biāo)/非目標(biāo)的標(biāo)準(zhǔn)及邊界框的回歸目標(biāo)由一系列anchor生成的參考框。錨框具有不同大小及尺寸從而可以覆蓋不同形狀的目標(biāo)。
? ? ? ? 將RPN中的單一的feature map替換為FPN.相類(lèi)似的,將金字塔中的每一層都添加一個(gè)head(3x3的卷積及一對(duì)1x1的卷積用于分類(lèi)和回歸)。由于head在金字塔所有層的每個(gè)位置上都進(jìn)行密集的滑動(dòng)。因此,不需要在特定層上添加一個(gè)多尺寸的anchor。與之相反,本文在金字塔的每層都添加一個(gè)固定尺寸的anchor。分別在層上設(shè)計(jì)anchor的大小為。同時(shí),在每一層中仍使用多種縮放尺度。,因此整個(gè)特征金字塔包含15個(gè)anchors.
? ? ? ? 本文基于IOU進(jìn)行訓(xùn)練標(biāo)簽的生成。一般anchor被標(biāo)為正樣本的情況為:(1)對(duì)于一個(gè)給定的ground truth有最高的IOU(2)與任意ground trth 的IOU超過(guò)0.7。
anchor被標(biāo)記為負(fù)樣本的情況:與所有g(shù)round truth box的IOU低于0.3。
? ? ? ? 值得注意的是ground truth box的尺寸并未直接對(duì)應(yīng)金字塔對(duì)應(yīng)的層級(jí),而是與anchor進(jìn)行匹配,而anchor已經(jīng)對(duì)應(yīng)金字塔中的層次。同時(shí),FPN中head中的參數(shù)共享于金字塔的各個(gè)層。本文實(shí)驗(yàn)發(fā)現(xiàn)參數(shù)的共享和非共享對(duì)準(zhǔn)確率無(wú)太大影響,同時(shí)金字塔的所有層都具有相似的語(yǔ)義信息。head公共分類(lèi)器可以應(yīng)用于任意尺寸圖像的特征計(jì)算。
Feature Pyramid Networks for FastR-CNN
? ? ? ? Fast R-CNN是基于區(qū)域的目標(biāo)的特征檢測(cè)器。RoI pooling 用于特征提取。Fast R-CNN是執(zhí)行的大部分是單尺寸的操作。為了將RPN應(yīng)用至Fast R-CNN,將不同尺寸的RoI應(yīng)用至金字塔的各個(gè)層。將特征金字塔看作是有圖像金字塔生成而來(lái),因此,當(dāng)執(zhí)行圖像金字塔時(shí),可以調(diào)整基于區(qū)域的檢測(cè)器。將一個(gè)wxh大小的RoI放入金字塔的Pk層中。
? ? ? ? 224為ImageNet預(yù)訓(xùn)練圖片的尺寸。k0是大小224x224的ROI應(yīng)該所在的層級(jí)。類(lèi)似于基于ResNet的Faster R-CNN使用C4作為單尺寸特征圖,將k0設(shè)置為0.4.直覺(jué)上,上式表示如果Roi的尺寸變小,則會(huì)調(diào)整其進(jìn)入金字塔中的對(duì)應(yīng)層級(jí)中。將預(yù)測(cè)head附加到所有層的RoI中。而這些heads的參數(shù)是共享的,與層數(shù)無(wú)關(guān)。正常情況下,ResNet中的conv5作為conv4的head,而本文中conv5已經(jīng)基于conv5構(gòu)建了特征金字塔。因此,本文只是應(yīng)用RoIpooling提取7x7的特征,后接兩層1024維的全連接層,每一層后接ReLU。最后是分類(lèi)和回歸層。所有層隨機(jī)初始化。
實(shí)驗(yàn)部分
?
?
?
?
? ? ? ??
Reference
? ? ? ??[1] E. H. Adelson, C. H. Anderson, J. R. Bergen, P. J. Burt, and J. M. Ogden. Pyramid methods in image processing. RCA engineer, 1984.
? ? ? ??[2] S. Bell, C. L. Zitnick, K. Bala, and R. Girshick. Insideoutside net: Detecting objects in context with skip pooling and recurrent neural networks. In CVPR, 2016.
? ? ? ??[3] Z. Cai, Q. Fan, R. S. Feris, and N. Vasconcelos. A uni?ed multi-scaledeepconvolutionalneuralnetworkforfastobject detection. In ECCV, 2016.
? ? ? ??[4] J. Dai, K. He, Y. Li, S. Ren, and J. Sun. Instance-sensitive fully convolutional networks. In ECCV, 2016. [5] N.DalalandB.Triggs. Histogramsoforientedgradientsfor human detection. In CVPR, 2005. [6] P. Doll′ar, R. Appel, S. Belongie, and P. Perona. Fast feature pyramids for object detection. TPAMI, 2014.?
?
轉(zhuǎn)載于:https://www.cnblogs.com/fourmi/p/10137678.html
總結(jié)
以上是生活随笔為你收集整理的论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 类对象定义 三
- 下一篇: 使用随机数以及扩容表进行join代码