點擊上方【AI人工智能初學者】,選擇【星標】公衆號node
期待您個人相遇與進步web
本文提出了一種用於目標檢測的隱式特徵金字塔網絡i-FPN。現有的FPN堆疊了多個跨尺度塊,以得到較大的感覺野。本文提出使用最近在深度均衡模型DEQ中引入的隱式函數對FPN的轉換進行建模。方法涉及了相似殘差的迭代來有效地更新隱藏狀態。
做者單位:曠視科技(張祥雨, 孫劍等人)
算法
1 簡介
咱們都知道一個典型的基於卷積神經網絡的目標檢測器主要由3個部分組成:Backbone、Neck和Head;主幹部分(如VGG、ResNet或EfficientNet等)主要是從輸入圖像中提取基本特徵,這些Backbone模型一般都會事先在ImageNet上進行預訓練。Neck主要是用來產生High-Level的語義特徵。檢測Head則是將Neck產生的Hight-level特徵進行最終分類與迴歸。微信
對於Neck現有的方法大多經過構造特徵金字塔網絡(FPN)來融合多尺度特徵進而擴大感覺野。FPN的設計遵循一種顯式的方式,經過堆疊跨尺度的鏈接塊。網絡
如圖(a)所示,骨幹網的多尺度特徵被輸入到幾個權重無關的塊中。每一個塊構建跨尺度鏈接,以融合來自不一樣Level的Feature。例如,FPN引入自頂向下的路徑來逐步融合特徵。在FPN的基礎上,PANet增長了一個自下而上的路徑,將Low-Level特徵傳遞到High-Level特徵。NAS-FPN則利用神經結構搜索(NAS)來得到最佳的鏈接拓撲。而EfficientDet提出了重複堆疊BiFPN Block,這簡化了PANet並增長了雙向跨尺度鏈接。
架構
綜上所述,顯式FPN能夠表示爲:app
其中
爲骨幹網絡的多尺度特徵。
是第
個跨尺度鏈接塊。
是特徵金字塔特徵融合以後的結果。
編輯器
上述顯式FPNs在提升檢測性能的同時,每每會得到有限的感覺野。簡單地增長塊的數量將致使較大的參數負擔和內存消耗。svg
例如,EfficientDet堆疊了7個權重無關的BiFPN Block以融合來自不一樣Level的特徵。一個簡單的減小參數量的方法是weight-sharing跨鏈接塊(這意味着 in Eq.1)。當堆疊的數量接近無窮時,這種weight-sharing塊的輸出會收斂到一個固定的點,這很相似於機器翻譯結果和序列建模。若是不動點確實存在,則它應知足:函數
其中
是平衡特徵金字塔。
是帶
參數的非線性變換,它在全部堆疊塊之間共享。這裏把求解不動點的過程稱爲隱式FPN。
爲了求解知足上式的不動點
,可使用兩種求解器。一個是展開權重共享塊。然而,它也會致使很是大的內存負擔。做爲一種替代方法,能夠採用黑箱尋根方法,如DEQ中引入的Broyden求解器,直接生成均衡特徵金字塔
。
後一種方法有2個優勢:
-
一、模擬了無限塊體疊加而只包含單個塊體參數的狀況; -
二、它產生了全局(很是大)接收場的均衡特徵,有利於目標檢測任務的完成。
DEQ中的隱式函數採用隱式序列與輸入序列以複雜的方式交互。這些相互做用可能致使梯度消失問題,並使隱函數的不動點難以用尋根法求解。
所以在本文中進一步開發了一種用於FPN設計的類殘差迭代,它簡化了複雜的設計。主幹特徵直接與初始金字塔特徵相加,並將其加和後做爲非線性變換的輸入。相似於ResNet,類殘差迭代得益於殘差學習,使信息傳播平滑進而加強了i-FPN的特徵學習能力。
2 前人鋪路
2.1 Object Detection
Two-Stage目標檢測器首先生成目標提議的候選對象,而後在第2階段對候選對象進行分類和迴歸。One-Stage方法直接對每一個位置設置的默認錨進行分類和迴歸。Anchor Free方法旨在擺脫預約義錨點的要求。
One-Stage
-
YOLO -
SSD -
YOLO V2 -
YOLO V3 -
YOLO V4 -
DSSD -
FSSD -
ESSD -
DES -
......
Two-Stage
-
RCNN -
SPPNet -
Fast RCNN -
Faster RCNN -
RetinaNet -
Mask RCNN -
Cascade RCNN
Anchor Free
-
CornorNet -
CenterNet -
FCOS
Transformer-Based
-
DERT
2.2 Pyramidal Representations
多尺度特徵表示是檢測不一樣尺度目標的有效方法。經過Neck的跨尺度鏈接來擴大語義特徵的感覺野。
-
FPN引入了自頂向下的Routing來融合特徵; -
PANet在FPN的頂部增長了一條額外的自底向上的路徑; -
Bi-FPN簡化了PANet,提出了一種新的跨尺度鏈接方式; -
NAS-FPN利用神經結構搜索得到最優的特徵拓撲方式; -
CBNet利用相鄰Backbone之間的複合鏈接來組裝多個Backbone,從而造成一個強大的Backbone。
在實現檢測結果的同時,這些方法傾向於經過顯式地堆疊跨尺度塊來擴大感覺野。在本文中做者開發了一種用於目標檢測的隱式特徵金字塔網絡。
2.3 Implicit Modeling
其實隱式模型已經研究了幾十年。
-
RBP經過微分技術隱式訓練遞歸系統; -
神經ODE採用黑箱ODE求解器隱式建模遞歸殘差塊,同時分析遞歸神經網絡(RNN)的穩定性。 -
在序列建模方面,TrellisNet以權重約束的方式疊加了大量的層,而DEQ則經過不動點迭代來模擬無限深度的網絡。 -
與TrellisNet相似,RAFT採用了大量改進的GRU塊來得到固定的流場。 -
在DEQ的基礎上,MDEQ開發了一個用於分類和分割的骨幹網絡。
i-FPN與MDEQ存在必定的類似之處,可是也存在一些主要差別包括:
-
1)多尺度特徵做爲強大的先驗信息用於學習有效學習隱藏states; -
2)residual-like迭代更新提出了隱狀態有效,避免i-FPN的消失梯度問題; -
3)在比較困難的檢測任務上驗證了i-FPN的有效性而MDEQ主要關注的是相對簡單的分類問題。
3 本文方法
本文首先對深層平衡模型(DEQ)進行了詳細的回顧。在此基礎上,提出了隱式特徵金字塔網絡和類殘差迭代算法。最後給出了整體優化過程。
3.1 回顧DEQ模型
深層序列模型可表示爲:

其中 爲Transformation Blocks。隱含序列 是參數爲 的第 個變換 的輸出。而最近的研究代表,在每一個塊上採用相同的變換仍然能夠達到至關的效果,這意味着:

當疊加無限次時,這種權重共享塊的輸出趨向於收斂到一個平衡狀態 :

在此基礎上,進一步提出DEQ來直接計算如下非線性系統的平衡點 :

平衡點對應於無限深度網絡的最終變換塊的輸出。DEQ建議用黑箱尋根方法來求解平衡點 ,而不是顯式地堆疊無限塊。理論上,給定初始隱藏狀態 ,任何黑盒尋根方法均可以用來訪問平衡點。
3.2 隱式特徵金字塔網絡
整體架構如圖所示,它由特徵提取、隱式特徵金字塔網絡和檢測頭組成:
這裏採用標準ResNet爲主幹網絡來提取特徵
,對於i-FPN,初始金字塔特徵
被初始化爲零,並與Backbone特徵
相加。而後求和特徵
做爲非線性變換
的輸入,這裏
爲隱函數;進一步經過利用均衡特徵求解器求解隱式模型的不動點能夠獲得均衡特徵金字塔
。最後,將產生的平衡特徵金字塔特徵送入檢測頭,生成最終的分類和迴歸預測結果。
3.2.1 Residual-Like Iteration
在這裏提出了以模擬無限深度的FPN模擬i-FPN的結構Residual-Like Iteration(類殘差迭代)。
如圖所示,首先將主幹網絡所提取的特徵
與初始化的特徵
求和,而後將獲得的特徵進一步輸入到非線性變換
中,生成中間特徵
。而後中間特徵和原始主幹網絡所提取的特徵反覆通過上述過程。當
細化求和特徵時,向無限次迭代這個過程帶來愈來愈小的貢獻,直到網絡達到一個平衡的特徵金字塔
。這樣就能夠總結類殘差迭代爲:

其不動點P能夠用DEQ中的展開解算器或Broyden解算器獲得。與ResNet相似,類殘差迭代也得益於經過shortcut進行殘差學習。主幹網絡提取的特徵做爲強先驗來指導非線性變換 的殘差學習。所以,類殘差迭代能夠避免i-FPN的梯度消失問題,理論上能夠獲得一個無限深度的FPN。
不一樣於MDEQ中複雜的交互設計類殘差迭代簡單而有效,簡潔的設計使信息傳播順暢,加強i-FPN的特徵學習。
3.2.2 Nonlinear Transformation
如前所述,利用非線性變換 構造i-FPN的隱函數。所以, 的結構決定了隱式建模的表示能力。對於 的設計,能夠採用文獻中已有的幾種策略。

與HRNet中的特徵融合模塊相似,一種直接的方法是構建密集的FPN(見圖4(a))。每一個輸出特徵都與全部輸入特徵相鏈接。若是輸入特徵與輸出特徵處於同一水平,則鏈接表示橫向鏈接(紫色線),能夠經過一個1×1的卷積層來實現。若是輸入特徵的level高於輸出,則輸入特徵經過操做進行處理,包括1×1卷積,而後是上採樣(藍線)。對於較低的輸入,輸入特徵以步幅爲2的幾個3×3卷積向下採樣(黃線)。

雖然每一層的輸出特徵從全部的輸入層收集信息,但每一層的非線性還遠遠不能使人滿意。爲了緩解這種狀況,每一個輸入特徵首先被注入Res-Block中。每一個級別的Res-Block包括一個shortcut和兩個3×3卷積,而後組規範化(GN)。

考慮到骨幹網絡提取的特徵僅與相鄰層次具備較高的相關性,做者進一步採用金字塔卷積(以下圖中的虛線所示)來減小計算冗餘,有效融合跨尺度特徵。所以,i-FPN中的非線性變換可表示爲:

其中, 爲第 級的輸入特徵。 是第 級的Res-Block。若是 , 表示單個的3x3卷積層。若是i<j, 表示包含一個3x3卷積層,而後是雙線性上採樣的操做。在 中可使用積分BN和deformable kernel。
3.3 Optimization
前面提到不動點能夠經過展開或黑箱解算獲得。對於展開解算器,整個優化過程遵循鏈式規則。利用梯度更新骨幹網絡參數和非線性變換。在部分主要描述使用黑盒解算器時的優化過程。對於黑箱求解器,i-FPN的總體優化過程包括正向求解和反向傳播。
正向求解
採用DEQ中引入的改進Broyden求解器來求解不動點。這裏定義函數 :

所以,不動點等於 的零點。給定骨幹網絡提取的特徵B, =0的根能夠用Broyden方法求解:

在 是雅可比矩陣的逆, 是步長。然而,在目標檢測中,因爲輸入維度很是高致使雅可比矩陣一般很是大而且很難計算。所以,能夠進一步採用一種有效的Broyden方法:

其中 是雅可比矩陣逆的低秩近似。
反向傳播
與傳統的遵循鏈式規則的反向傳播不一樣,做爲一種替代基於平衡特徵金字塔 更新骨幹網絡和 的參數:

式中L爲任意目標檢測器的總損失函數,包括分類損失和迴歸損失。它能夠由:

其中p是最終預測,y是ground-truth。H爲任意目標檢測器的檢測頭。
4 實驗
4.1 MS COCO 2017實驗結果
i-FPN的表現遠遠優於原始FPN。i-FPN提升了平均AP +3.4(RetinaNet)、+3.2(Faster RCNN)、+3.5(FCOS)、+4.2(ATSS)、+3.2(AutoAssign)。
下圖爲在COCO2017-val數據集的幾個示例圖像,顯示了使用FPN和i-FPN得到的特徵映射之間的比較結果:
能夠很容易地發現FPN產生的特徵圖是有限的接受野。相比之下,i-FPN得到的特徵圖具備全局感覺野,而且與FPN得到的相同級別的特徵相比,其關注的興趣區域相對較大。
4.2 消融實驗
兩種不一樣求解器的影響

對於展開解算器,當一次迭代展開權重共享塊時,i-FPN達到41.2,AP提高了2.4%。將展開迭代從1增長到2能夠進一步提升框AP 1.2%。若是繼續增長迭代,就會獲得較少的改進。
集成不一樣組件的影響

跨尺度鏈接設計
類殘差迭代的影響

4.3 State-of-the-art模型比較
參考
[1].Implicit Feature Pyramid Network for Object Detection
原文獲取方式,掃描下方二維碼
回覆【i-FPN】便可獲取論文
掃描下方二維碼便可加入【AI人工智能初學者】交流羣
聲明:轉載請說明出處
掃描下方二維碼關注【AI人工智能初學者】公衆號,獲取更多實踐項目源碼和論文解讀,很是期待你個人相遇,讓咱們以夢爲馬,砥礪前行!!!
點「在看」給我一朵小黃花唄
本文分享自微信公衆號 - AI人工智能初學者(ChaucerG)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。