论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)
?
論文源址:https://arxiv.org/abs/1612.03144
代碼:https://github.com/jwyang/fpn.pytorch
摘要
? ? ? ?特征金字塔是用于不同尺寸目標檢測中的基本組件。但由于金字塔表征的特征需要消耗較多的內存及計算資源,因此,深度學習盡量避免使用金字塔特征。本文利用深度卷積網絡中自帶的多尺寸信息構建特征金字塔。本文搭建了具有橫向連接的自上而下的結構FPN,從而在所有尺寸上構建高層次的語義特征。本文在Faster R-CNN的基礎結構上增加了FPN結構,并在COCO數據集上取得了很好的結果。
介紹
? ? ? ?計算機視覺中尺寸的多樣性是一項研究熱點,基于圖像金字塔構建的特征金字塔作為一種基本解決方法。如下圖1,基于圖像金字塔搭建特征金金字塔。金字塔具有尺度不變性,實際中圖片的尺寸發生變化,可以通過在不同層之間進行移動,來抵消尺寸大小上的變化。因此,模型可以通過掃描金字塔中的每個位置來最大范圍的尺寸檢測不同尺寸的目標。
? ? ? ?特征圖像金字塔廣泛應用于手工特征設計。對像DPM需要靠密集尺寸采樣的檢測器產生好的結果發揮著重要的作用。針對分類任務來說,卷積網絡提取的特征代替手工設計的特征。卷積網絡可以表述更高層次的語義信息。對不同尺寸具有魯棒性,便于在單個尺寸輸入計算得到的特征進行識別操作。如下圖b。但目前效果較好的目標檢測網絡都采用多尺寸的信息進行測試。
?
? ? ? ?從圖像金字塔中每層提取的特征主要優勢在于多尺寸表示。其中包含較強語義信息和較高分的辨率。然而,對圖像金字塔每層特征提取需要消耗大量的計算資源,同時,對網絡進行訓練需要占用大量的內存資源。因此,圖像金字塔多用于測試階段,無法將訓練/測試聯系起來。因此,Faster R-CNN選擇不適用特征圖像金字塔。
? ? ? ?圖像金字塔并不是計算多尺寸特征的唯一方法。深度卷積網絡逐層計算得到feature map。在網絡層中內涵多尺寸信息,內部網絡產生不同分辨率的feature maps。但層與層之間的語義信息會發生斷裂。高分辨率的feature map但包含的卻是低層次的信息,十分不利于目標的識別。
? ? ? ?如上圖c所示,SSD首次在卷積網絡中金字塔特征層及上進行嘗試,類似于特征圖像金字塔。由于,SSD會重復利用前向傳播過程中得到的多尺寸的feature map,因此,不會消耗太多的計算資源。SSD為了避免低層次的特征,直接在網絡的較深層進行金字塔的搭建(比如在VGG 網絡中的conv4-3層)并添加幾層網絡。從而無法得到較前層高分辨率的信息,不利于小目標的檢測。
?? ? ? ?本文目標:利用卷積網絡特征層級的金字塔外形,建立一個在所有尺寸大小上都具有較強語義信息的特征金字塔。本文,將分辨率較低,語義信息較強的feature map與分辨率較高,語義信息較弱的feature map通過自上而下的路徑及連接結構進行結合。如上圖d,結果是得到了一個特征金字塔,每一層都含有較強的語義信息,而且可以從單一尺寸進行快速搭建。本文展示了如何在不占用計算及內存的條件下來建立特征金字塔。
? ? ? ??自頂而下帶有跳躍連接的結構比較流行。這些網絡的目標是得到單一的具有合適分辨率的高層次特征的feature map用于預測。如下圖上面,而本文利用特征金字塔結構并在每一層進行預測。FPN編碼得到了一個特征圖像金字塔。
?
? ? ? ? 該文在不同的檢測及分割結構上進行實驗,在COCO數據集上取得了較好的結果。基于bounding box proposals,AR(average recall)提高了8.0個點,對于目標檢測,COCO類型的AP提高了2.3個點,PASCAL提高了3.8個點。超過了基于ResNet的單尺寸Faster R-CNN。另外,FPN可以進行端到端的訓練及測試。
? ? ? ??
特征金字塔網絡
? ? ? ?本文利用卷積網絡中的金字塔特征層,特征層具有由低至高的語義信息。同時建立一個具有高層次語義信息的特征金字塔。得到的FPN是通用的,本文致力于滑動窗及區域候選框方法的檢測器(像Fast R-CNN)。
? ? ? ?本文網絡輸入任意單一尺寸,同時按每層比例大小以全卷積的方式輸出相應的feature maps。此過程與作為backbone部分的卷積是獨立的。本文的backbone為Resnet,FPN結構包括自頂向底,自底向頂及橫向連接結構。
Bottom-up pathway?
? ? ? ?bottom-up是backbone卷積網絡前向過程的計算。 計算不同尺寸大小的feature map得到一個特征層級。將包含相同尺寸大小的層叫做stage,FPN對每一個stage頂一個一個特征金字塔的一層。選擇每個stage最后一層(每個stage最后一層的特征最強)的輸出作為feature map的參考設置,并用于接下來金字塔的建立。
? ? ? ?對于ResNets,使用每個stage最后一個殘差模塊激活值的輸出。將其中的conv2,conv3,conv4,conv5的輸出表示為,stride分別為{4,8,16,32}。由于conv1占用大量的內存,因此,金字塔中未包含conv1。
Top-down pathway and lateral connections
? ? ? ?自頂向底的路徑通過粗略的上采樣可以獲得更高分辨率的feature map,同時,由于來自金字塔的較高層次,具有更強的語義信息。特征通過橫向連接與自底向上的特征進行增強。每個橫向連接,將相同的自底向頂與自頂向底兩個路徑中相同尺寸的feature map進行融合。自底向頂的feature map帶有低層次的語義信息。但細節信息更多。部分結構如下。
? ? ? ?將粗分辨率的feature map上采樣兩倍(基于最近鄰算法),上采樣得到的feature map與自底向上對應的feature map及逆行相加。(通過1x1的卷積來降維)。此過程一直迭代進行,知道生成合適分辨率的feature map。
? ? ? ?由于特征圖像金字塔中的所有層都共享分類器和回歸器。本文將所有feature map的通道數進行固定。設置為256因此,所有額外的卷積層都只有256個通道,而網絡中沒有非線性處理過程。
應用
?? ? ? ?本文主要將FPN應用到RPN用于region proposal的生成,及Fast R-CNN用于目標檢測。
FPN for RPN
? ? ? ? RPN為一個基于滑動窗的類無關的目標檢測器。在原始RPN網絡中,通過一個3x3的滑動窗進行密集的預測。在單尺寸大小的卷積feature map的輸出端進行有類別/無類別的二分及邊界框的回歸。通過添加一個3x3的卷積層及一對1x1的卷積實現分類和回歸。并將此部分作為網絡的頭部。目標/非目標的標準及邊界框的回歸目標由一系列anchor生成的參考框。錨框具有不同大小及尺寸從而可以覆蓋不同形狀的目標。
? ? ? ? 將RPN中的單一的feature map替換為FPN.相類似的,將金字塔中的每一層都添加一個head(3x3的卷積及一對1x1的卷積用于分類和回歸)。由于head在金字塔所有層的每個位置上都進行密集的滑動。因此,不需要在特定層上添加一個多尺寸的anchor。與之相反,本文在金字塔的每層都添加一個固定尺寸的anchor。分別在層上設計anchor的大小為。同時,在每一層中仍使用多種縮放尺度。,因此整個特征金字塔包含15個anchors.
? ? ? ? 本文基于IOU進行訓練標簽的生成。一般anchor被標為正樣本的情況為:(1)對于一個給定的ground truth有最高的IOU(2)與任意ground trth 的IOU超過0.7。
anchor被標記為負樣本的情況:與所有ground truth box的IOU低于0.3。
? ? ? ? 值得注意的是ground truth box的尺寸并未直接對應金字塔對應的層級,而是與anchor進行匹配,而anchor已經對應金字塔中的層次。同時,FPN中head中的參數共享于金字塔的各個層。本文實驗發現參數的共享和非共享對準確率無太大影響,同時金字塔的所有層都具有相似的語義信息。head公共分類器可以應用于任意尺寸圖像的特征計算。
Feature Pyramid Networks for FastR-CNN
? ? ? ? Fast R-CNN是基于區域的目標的特征檢測器。RoI pooling 用于特征提取。Fast R-CNN是執行的大部分是單尺寸的操作。為了將RPN應用至Fast R-CNN,將不同尺寸的RoI應用至金字塔的各個層。將特征金字塔看作是有圖像金字塔生成而來,因此,當執行圖像金字塔時,可以調整基于區域的檢測器。將一個wxh大小的RoI放入金字塔的Pk層中。
? ? ? ? 224為ImageNet預訓練圖片的尺寸。k0是大小224x224的ROI應該所在的層級。類似于基于ResNet的Faster R-CNN使用C4作為單尺寸特征圖,將k0設置為0.4.直覺上,上式表示如果Roi的尺寸變小,則會調整其進入金字塔中的對應層級中。將預測head附加到所有層的RoI中。而這些heads的參數是共享的,與層數無關。正常情況下,ResNet中的conv5作為conv4的head,而本文中conv5已經基于conv5構建了特征金字塔。因此,本文只是應用RoIpooling提取7x7的特征,后接兩層1024維的全連接層,每一層后接ReLU。最后是分類和回歸層。所有層隨機初始化。
實驗部分
?
?
?
?
? ? ? ??
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.?
?
轉載于:https://www.cnblogs.com/fourmi/p/10137678.html
總結
以上是生活随笔為你收集整理的论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类对象定义 三
- 下一篇: 使用随机数以及扩容表进行join代码