FoveaBox:細節差別,另一種DenseBox+FPN的Anchor-free方案 | IEEE TIP 2020

曉飛的演算法工程筆記發表於2022-03-07

作為與FCOS和FSAF同期的Anchor-free論文,FoveaBox在整體結構上也是基於DenseBox加FPN的策略,主要差別在於FoveaBox只使用目標中心區域進行預測且迴歸預測的是歸一化後的偏移值,還有根據目標尺寸選擇FPN的多層進行訓練,大家可以學習下

來源:曉飛的演算法工程筆記 公眾號

論文: FoveaBox: Beyound Anchor-Based Object Detection

Introduction


  論文認為anchor的使用不一定是最優的搜尋目標的方式,且受人眼視網膜中央凹(fovea)的啟發:視覺區域的中部有最高的視覺敏銳度,所以提出了anchor-free目標檢測方法FoveaBox。

  FoveaBox聯合預測每個有效位置為目標中心的可能性及其對應目標的尺寸,輸出類別置信度以及用以轉化目標區域的尺寸資訊。如果大家看過很多Anchor-free的檢測方案,可能覺得論文的實現方案很常見,的確,其實這篇文章也是Anchor-free井噴初期的作品,整體思路很純粹,也是很多大佬都想到的思路,在閱讀時需要關注以下細節:

  • 以目標的中心區域進行分類預測與迴歸預測
  • 將回歸預測的是歸一化後的偏移值
  • 訓練時可指定FPN多層同時訓練
  • 提出特徵對齊模組,使用迴歸的輸出來調整分類的輸入特徵

FoveaBox


Object Occurrence Possibility

  給定GT目標框\((x_1, y_1, x_2, y_2)\),將其對映到特徵金字塔層\(P_l\)

\(s_l\)為特徵層相對於輸入的stride,正樣本區域\(R^{pos}\)為大致為對映框的縮小版本:

\(\sigma\)為人為設定縮放因子。在訓練階段,正樣本區域內的特徵點標記為對應的目標類別,其餘的區域為負樣本區域,特徵金字塔每層的輸出為\(C\times H\times W\)\(C\)為類別總數。

Scale Assignment

  網路的目標是預測目標的邊界,直接預測是不穩定的,因為目標尺寸的跨度很大。為此,論文將目標尺寸歸為多個區間,對應特徵金字塔各層,各層負責特定尺寸範圍的預測。給予特徵金字塔\(P_3\)\(P_7\)基礎尺寸\(r_l=2^{l+2}\),則層\(l\)負責的目標尺寸範圍為:

\(\eta\)為人工設定的引數,用於控制特徵金字塔每層的迴歸尺寸範圍,不在該層尺寸範圍內的訓練目標則忽略。目標可能落到多個層的尺寸範圍內,這時使用多層進行訓練,多層訓練有以下好處:

  • 鄰接的特徵金字塔層通常有類似的語義資訊,可同時進行優化。
  • 大幅增加每層的訓練樣本數,使得訓練過程更穩定。

Box Prediction

  在預測目標尺寸時,FoveaBox直接計算正樣本區域\((x,y)\)到目標邊界的歸一化的偏移值:

  公式4先將特徵金字塔層的畫素對映回輸入圖片,再進行偏移值的計算,訓練採用L1損失函式。

Network Architecture

  網路結構如圖4所示,主幹網路採用特徵金字塔的形式,每層接一個預測Head,包含分類分支和迴歸分支。論文采用較簡單的Head結構,使用更復雜的Head可以獲得更好的效能。

Feature Alignment

  論文提出了特徵對齊的trick,主要是對預測Head進行改造,結構如圖7所示,

Experiment


  與SOTA方法進行對比。

Conclusion


  作為與FCOS和FSAF同期的Anchor-free論文,FoveaBox在整體結構上也是基於DenseBox加FPN的策略,主要差別在於FoveaBox只使用目標中心區域進行預測且迴歸預測的是歸一化後的偏移值,還有根據目標尺寸選擇FPN的多層進行訓練。由於FoveaBox的整體實現方案太純粹了,與其它Anchor-free方法很像,所以一直投稿到現在才中了,作者也是相當不容易。



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】

work-life balance.

相關文章