閱讀筆記
論文貢獻:
1. 提出了一個加權的雙向特徵金字塔結構 ,用於快速的特徵融合工作;
2. 提出了一個新的聯合縮放方法,將進行了統一處理;
3. 以作爲,結合上述兩點,生成了高效快速,適用於不同計算條件的檢測網絡;
論文方法:
1. BiFPN
作者觀察到,PANet在精度上的表現其實是優於傳統FPN和NAS-FPN的,所以這一規約工作是基於PANet的結構進行。考慮如下假設:
1) 如果一個節點僅接受單一輸入,則可以認爲它對特徵融合的貢獻很小,因此可以刪除這一節點,由此得到上圖中的(e)子圖
2) 如果原輸入和輸出屬於同一個level(擁有相同尺度的分辨率),則將原輸入直接與輸出相加,可以起到一個類似於殘差連接的效果,相當於增強了融合的特徵;
3) 在PANet中使用了一次Bottom-Up和Up-Bottom,作者認爲{Bottom-Up & Up-Bottom}可以作爲一個層,在此基礎上,可以重複疊加多次來強化特徵融合;
基於以上三點,在PANet的基礎上生成了新的特徵融合網絡 。
2. 加權特徵融合
在之前的類金字塔模塊中,對於不同尺度的特徵融合,往往採用的是雙線性插值採樣。作者認爲,對於不同的尺寸特徵直接相加是不公平的,考慮它們最終的貢獻應該不同。因此,一個常規的想法是加入權重參數來自動學習重要性。
基於這一分析,作者提出了三種加權的融合方式:
1) 無邊界限制: , 即爲學習的對象。這裏對應的輸入可以是不同的級別,比如特徵級別,通道級別或是像素級別。不同的輸入級別將使得權重的表徵形式不同,分別可能是標量、向量或矩陣形式。作者通過實驗發現,標量形式在不明顯損失精度的情況下能夠取得最小的計算成本,因此將選用標量形式;但應當注意,此時各個之間沒有約束限制,容易導致訓練的不穩定。
2) 融合: 如果對不同的進行約束限制,最常用的想法是使用函數,這樣做能夠較好地比較不同輸入的重要性,但在實驗中發現指數運算會耗費較高的計算成本。
3) 快速正則化融合: 作者利用一個簡單的公式來替換操作,即
表格中的結果顯示,使用上述公式代替操作帶來的精度損失很小。
3. 新的聯合放縮方法
在構建整體的檢測網絡框架時,backbone模塊選擇了系列,並在該基礎上進行了聯合的放縮。
在backbone部分的放縮因數coefficients與保持一致
在部分,針對channel採用了指數增長,對於深度採用了線性增長,具體的公式爲:
在head模塊,保持channel width與BiFPN傳遞過來的一致,約束head的深度,具體的公式爲:
由於輸入圖片在BiFPN處需要分爲5個level,所以圖片的分辨率需要被128整除(最大的stride爲128),所以在分辨率上使用了線性增長公式:
由此得到一系列模型及其配置如下所示:
論文結果:
結論:
通過構建新的雙向加權FPN,與聯合參數約束的方法,本文得到了一系列高效的檢測模型。在讀完論文之後,給人的感覺是想法上很直接簡單,效果也驚人地好,和Google Brain的一貫風格相似。