FoveaBox

FoveaBox是CVPR2019的一篇anchor free的目標檢測文章,其思想跟FCOS很相似,都是在RetinaNet的基礎上,在不同stage輸出的特徵圖上,直接得到目標類別並回歸出目標的位置,相比FCOS,FoveaBox要更簡單一些,FoveaBox在COCO的精度可以達到42.1。


作者:Tao Kong Fuchuan Sun 等

論文鏈接:https://arxiv.org/abs/1904.03797

代碼鏈接:https://github.com/taokong/FoveaBox


Introduction

  • 使用anchor的缺點
  1. 超參數的引入
  2. 泛化性不夠,對不同的任務需要設計不同的anchor
  3. 正負樣本不均勻
  • 靈感來源
  1. MetaAnchor
  2. Guided-Anchoring

FoveaBox

在介紹FoveaBox之前,首先展示一張FoveaBox的結構圖,如下。FoveaBox的整體結構跟RetinaNet基本一致,同樣採用FPN結構,同樣是不同的level分出兩個subnet,一個用於預測類別,一個用於預測座標框。不一樣的地方在於,class subnet最後的輸出這裏是W*H*K,而RetinaNet是W*H*A*K,沒有了anchor的參數A,box subnet的輸出也是同理。

在這裏插入圖片描述

在FoveaBox中,共有5個level分出subnet,分別是Pl,l=3,4,...,7P_{l},l=3,4,...,7,每個level輸出的特徵圖的大小爲12l\frac{1}{2^{l}}

Scale Assignment

由於目標尺寸變換範圍較大,FoveaBox跟SSD方法一致,同樣採用了不同的level預測不同尺寸的目標的方法,另外在FCOS中(一個跟FoveaBox很相似的anchor free目標檢測方法),解釋到,使用多level預測的目的是爲了解決anchor free的時候,目標重疊的問題,因爲重疊就沒有辦法分配正負樣本了,這樣可以有效減少目標重合。

這裏作者將7個level的尺寸設置成32232^{2}-5122512^{2},用公式表示就是Sl=4lS0S_{l}=4^{l}S_{0}其中S0=16,l=3,4,...,7S_{0}=16,l=3,4,...,7,並且,爲了控制不同level之間的重合度,作者增加了η\eta參數,進一步調節不同level的尺度範圍,[Slη2,Slη2][\frac{S_{l}}{\eta_{2}},S_{l}\eta^{2}],通過調節參數,一個目標可能會在多個level中進行檢測。

Object Fovea

接下來我們來看一下,Fovea在訓練中如何定義正負樣本。

Fovea是anchor free的,所以在計算正負樣本的時候,不需要想anchor那樣計算IOU,fovea直接將ground-truth映射到對應level的特徵圖上,公式如下:

在這裏插入圖片描述
另外,在Fovea中,並不是ground-truth對應的區域均是正樣本,如下圖所示,狗雖然很大,但是真正的正樣本,是中間紅色區域部分,這也是fovea的精華,這裏作者引入了個σ\sigma參數,可以根據參數,動態設置正樣本範圍。

在這裏插入圖片描述

在這裏插入圖片描述

至於負樣本,作者在上面公式中,設置σ2\sigma_{2},在σ2\sigma_{2}之外的數據均爲負樣本,在作者的實驗中σ1=0.3\sigma_{1}=0.3σ2=0.4\sigma_{2}=0.4,位於0.3-0.4之間的區域就不參與訓練了。由於仍然存在正負樣本不均的情況,所以作者在訓練分類的時候仍然採用了Focal Loss。

Box Prediction

在座標預測上,FoveaBox中,在座標預測方面,主要是通過學習了transformation函數來進行座標的變換,如下,其中z=Slz=\sqrt{S_{l}},x1等是Ground Truth,t代表網絡輸出,這裏作者使用的是Smooth L1 loss作爲計算座標的loss函數。

在這裏插入圖片描述

Inference

在inference的時候,首先使用閾值0.05,直接過濾掉不靠譜的點,然後在剩下的點中,選取得分排名前1000的點作爲候選點,再然後,使用非極大值抑制,對這1000個點再次進行過濾,最後留下的top100個點作爲最終的結果。

實驗部分

Various anchor densities and FoveaBox

首先,anchor-based網絡,一般跟anchor的選取有很大關係,那麼fovea是不是比anchor-based方法更好呢?作者進行了實驗,結果如下。可以發現,foveaBox比RetinaNet高的不是一點點。

在這裏插入圖片描述

Analysis of Scale Assignment

η\eta控制着金字塔網絡不同level的scale,到底選多少最爲合適呢?下面的實驗說明選擇2是最爲合適的。

在這裏插入圖片描述

Fovea對於box是不是更魯棒一些呢?

爲此作者進行了實驗,通過修改驗證集的長寬比等。

在這裏插入圖片描述

每個類別的差異

可見,大部分類別的效果都提升了。

在這裏插入圖片描述

Fovea當做RPN效果

如果採用FoveaBox方式提取RPN效果如何呢?實驗證明,效果要好於基於anchor的方法。

在這裏插入圖片描述

不同尺度與深度的Fovea效果對比

foveaBox效果還是不錯的。
在這裏插入圖片描述

在這裏插入圖片描述

總結

文章整體來看,跟FCOS很像,思路基本一樣,都是基於RetinaNet,同樣是每一個location預測一個類別和四個座標相關的數,只是FCOS預測到四個邊界的距離,Fovea預測一個座標轉換。再有一個就是FCOS以gt boxes中的全部像素作爲正例,而Fovea是採樣了一個portion。其他關於FPN尺度分配的問題都是大差不差。

發佈了68 篇原創文章 · 獲贊 62 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章