論文拋棄以往根據IoU硬性指定anchor和GT匹配關係的方法,提出FreeAnchor方法來進行更自由的匹配,該方法將目標檢測的訓練定義為最大似然估計(MLE)過程,端到端地同時學習目標分類、目標檢測以及匹配關係,從實驗來看,效果十分顯著
來源:曉飛的演算法工程筆記 公眾號
論文: FreeAnchor: Learning to Match Anchors for Visual
Object Detection
Introduction
常規的目標檢測網路基於IoU來進行anchor與GT間的匹配,但會面臨以下問題:
- 對於非中心特徵的物體,比如細長的物體,空間上的對齊並不能保證anchor覆蓋足夠多的物體特徵,從而造成分類和檢測效能的下降。
- 當檢測目標密集時,以IoU作為匹配的準則是不可行的。
以上的問題都來源於預先設定的anchor與GT的匹配,沒有考慮到網路的輸出情況。為此,論文提出基於學習的匹配方法,將匹配過程定義為最大化似然估計的過程,端到端地同時學習目標分類、目標檢測以及匹配關係,取得了很不錯的效果,論文的主要貢獻如下:
- 將檢測演算法的訓練過程定義為最大似然估計的過程,並將手工設定anchor與GT匹配改為自由的anchor匹配,打破IoU的約束,允許GT根據最大似然的準則選擇anchors。
- 定義檢測定製似然,並且實現端到端的檢測和分類訓練機制,最大化似然能夠促進網路學習如何匹配最優的anchor,並保證與NMS演算法的相容。
The Proposed Approach
為了學習anchor和GT的匹配關係,先將目標檢測演算法的訓練轉換為最大似然估計過程,從最大似然地角度優化分類和檢測,然後定義檢測定製似然,通過保證召回率和準確率進行匹配關係的優化,在訓練階段,將檢測定製似然轉換為檢測定製損失,有效地端到端同時學習目標分類、目標檢測以及匹配關係。
Detector Training as Maximum Likelihood Estimation
常規one-stage檢測演算法的損失函式如公式1,$\mathcal{L}(\theta){ij}{cls}=BCE(a_j{cls},b_i^{cls}, \theta)$,$\mathcal{L}(\theta){ij}{loc}=SmoothL1(a_j{loc},b_i^{loc}, \theta)$,$\mathcal{L}(\theta){ij}{bg}=BCE(a_j{cls},\vec{0}, \theta)$,$\theta$為網路學習到的引數,$C{i,j}$是指代anchor $a_j$是否匹配GT $b_i$,只有兩者的IoU大於閾值才為1,當anchor符合多個GT時,選擇IoU最大的Gt,$A_{+}={a_j | \sum_i C_{ij}=1} \in A$,$A_{-}={a_j | \sum_i C_{ij}=0} \in A$。
從最大似然估計(MLE)的角度來看,將損失函式$\mathcal{L}(\theta)$轉換為公式2的似然概率,$\mathcal{P}(\theta){ij}{cls}$和$\mathcal{P}(\theta)_{ij}{bg}$為分類置信度,$\mathcal{P}(\theta){ij}^{loc}$為定位置信度,最小化$\mathcal{L}(\theta)$即最大化似然概率$\mathcal{P}(\theta)$。
雖然公式2嚴格從最大似然估計的角度來優化anchor的分類和定位,但是忽略瞭如何學習匹配矩陣$C_{ij}$,目前的檢測演算法通過IoU指標進行匹配來解決這一問題,沒有考慮優化GT和anchor的匹配關係。
Detection Customized Likelihood
為了優化GT和anchor間的匹配規則,論文在CNN目標檢測框架上加入檢測定製似然(detection customized likelihood),揉合準確率和召回率,並保持對NMS的適配。
首先構造每個GT $b_i$的IoU較高的anchor作為候選集$A_i\in A$,然後學習如何達到最好的匹配的同時最大化檢測定製似然。
為了優化召回率,先保證每個GT都有至少一個對應的anchor,如公式3,選擇每個GT的候選集中分類和檢測表現最好的anchor。
為了優化準確率,檢測器需要將定位較差的anchor歸為背景類,目標函式如公式4,這裡意味著top anchor儘可能不為背景。$P{a_j \in A_{-}}=1-max_i P{a_j \to b_i }$為$a_j$與所有GT不匹配的概率,$P{a_j \to b_i }$為anchor $a_j$正確預測GT $b_i$的概率。為了相容NMS,$P{a_j \to b_i }$需滿足以下屬性:
- $P{a_j \to b_i }$為IoU相關的單調遞增函式
- 當anchor與GT小於閾值時,$P{a_j \to b_i }$接近0
- 對於每個GT,僅存在一個anchor滿足$P{a_j \to b_i }=1$
$P{a_j \to b_i }$的屬性可以歸納為Saturated linear函式,即$P{a_j \to b_i }=Saturated linear(IoU_{ij}^{loc}, t, max_j(IoU_{ij}^{loc}))$。
根據上面的定義,檢測定製似然定義如公式5,揉合了召回率和準確率,並且與NMS相容。通過優化似然,可以同時最大化召回率和準確率,達到自由地匹配GT和anchor。
Anchor Matching Mechanism
為了有效地學習匹配關係,將公式5的檢測定製似然轉換成檢測定製損失函式,如公式5,$max$函式用來選擇每個GT最適合的anchor。在訓練期間,從候選集$A_i$中選擇一個anchor進行網路引數$\theta$的更新。
在訓練初期,由於隨機初始化,每個anchor的置信度都很小,不能代表anchor的好壞,為此使用Mean-max函式進行anchor的選擇。
在訓練不充分時,Mean-max函式能夠接近均值函式,即幾乎所有的anchor都能用於訓練,隨著訓練越充分後,Mean-max函式則接近max函式,最終等同於max函式,即選擇最好的anchor用於訓練。
將公式6的max函式替換為Mean-max函式,對第二項加入focal loss,同時,兩項分別進行$w_1$和$w_2$加權,最終的檢測定製損失函式如公式7,$X_i={\mathcal{P}(\theta){ij}^{cls} \mathcal{P}(\theta){ij}^{loc} | a_j \in A_i}$為候選集$A_i$的似然集,$w_1=\frac{\alpha}{||B||}$,$w_2=\frac{1-\alpha}{n||B||}$,$FL_(p)=-p^{\gamma}log(1-p)$。
結合檢測定製損失函式,檢測器的訓練過程如演算法1。
Experiments
實驗的FreeAnchor實現基於RetinaNet,簡單地將損失函式修改為論文提出的檢測定製損失函式。
Learning-to-match
Compatibility with NMS
Parameter Setting
超引數的實驗如下:
- Anchor bag size $n$,對比${40, 50, 60, 100 }$,其中,50的效果最好。
- Background IoU threshold $t$,$P{a_j \to b_i }$的置信度,對比${0.5, 0.6, 0.7 }$,0.6效果最好。
- Focal loss parameter,對比$\alpha \in {0.25, 0.5, 0.75 }$和$\gamma \in {1.5, 2.0, 2.5 }$,$\alpha=0.5$和$\gamma=2,0$組合的效果最好。
- Loss regularization factor $\beta$,公式1的用於平衡分類和定位損失的權重,0.75效果最好。
Detection Performance
CONCLUSION
論文拋棄以往根據IoU硬性指定anchor和GT匹配關係的方法,提出FreeAnchor方法來進行更自由的匹配,該方法將目標檢測的訓練定義為最大似然估計(MLE)過程,端到端地同時學習目標分類、目標檢測以及匹配關係,從實驗來看,效果十分顯著。
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】