《Libra R-CNN: Towards Balanced Learning for Object Detection》筆記

Introduction

這篇論文針對目標檢測訓練過程中的不平衡問題,提出了一種平衡化學習方法。關於目標檢測中的不平衡問題,這篇博客有更詳細的介紹。

這篇論文討論的不平衡問題包括三種:

  • 樣本級別的不平衡:對於二階段的目標檢測算法,樣本是通過隨機採樣得到的,這會導致大多數樣本都是容易樣本(容易學習),缺乏難樣本。
  • 特徵級別的不平衡:由於低層的特徵層主要包含內容描述信息,高層特徵層主要包含語義信息,不同特徵層的特徵信息不平衡。
  • 目標級別的不平衡:目標檢測是多任務學習任務,有識別和定位兩個目標,對應兩種目標函數,這兩種目標函數的損失值是不平衡的。

論文針對上述的3中不平衡問題,分別提出了3中解決方法:IoU-balanced sampling, balanced feature pyramid 和 balanced L1 loss。三種方法結合在一起,組成了Libra R-CNN。

IoU-balanced sampling

IoU平衡採樣提出來的思路是這樣的。首先,論文統計了一下隨機採樣和Hard Negative採樣得到的樣本與gt的IoU,並製作了相應的統計直方圖,如下
IoU distribution
作者發現,超過60%的難負樣本的IoU大於0.05,而隨機採樣的樣本中只有30%的樣本的IoU大於0.05。這種極端的樣本不平衡使得大量的難樣本替換成了容易樣本。

爲了使得采樣樣本的IoU分佈接近難負樣本採樣樣本的IoU分佈,作者提出了IoU平衡採樣。假設我們需要從M個候選樣本中選擇N個負樣本,那麼每個樣本隨機被選擇的概率是p=NMp = \frac{N}{M}。爲了提高難負樣本被選擇的概率,作者根據IoU平均地劃分採樣區間成K個bin。將N個所需的負樣本平均分配到到每個bin中。我們再從這些bin中統一選擇樣本。這就是IoU平衡採樣。現在,每個樣本的採樣概率是
pk=NK1Mk,k[0,K) p_k = \frac{N}{K} * \frac{1}{M_k}, k \in [0, K)
前一項表示bin被選擇的概率,後一項表示再bin中被選擇的概率,MkM_k表示第k個bin的候選樣本數量。因爲難負樣本被平均分配到每個bin,難負樣本在bin中被選擇的概率變大,而設置好K值,難負樣本被選擇的概率變大了。通過IoU平衡採樣得到的樣本的IoU分佈如上圖所示,可以看到和難負樣本採樣的IoU分佈近似了。論文中K默認設置爲3。

Balanced Feature Pyramid

作者的平衡特徵金字塔的每一層的特徵信息來自不同級別的特徵層,不同級別的特徵層的貢獻度都一樣,平衡特徵金字塔的構造方式如下圖所示
Balanced Feature Pyramid
如上圖所示,作者先把所有的特徵層聚合起來,低級別的層下采樣,高級別的層上採樣,大小變成C4的大小,然後所有層的特徵進行平均,得到Integrate,再由Integrate反向操作生成不同級別的特徵層。也可以對Integrate進行refine,加些卷積層,或者加入高斯non-local模塊。

通過這種方法生成的Balanced Feature Pyramid的每個特徵層都包含相等的低級和高級特徵信息,達到特徵平衡。

Balanced L1 Loss

目標檢測使用的smooth L1 loss有些缺點,首先它還是很容易受到outlier的影響,作者發現,相比於outliers,inliers平均每樣本只貢獻30%的梯度。作者把smooth L1 loss大於等於1的樣本稱爲outlier,其他是inlier。作者希望在迴歸損失中把inliers和outliers分開,截斷outliers的大梯度爲1,同時增大inliner的梯度,使得inliers和outliers的貢獻的梯度平衡。樣本的梯度貢獻如下圖a所示
balanced L1 loss的梯度和loss曲線圖
regression error指樣本的smooth L1損失,縱座標表示Balanced L1 Loss的梯度和損失。

Balanced L1 Loss的公式如下
Lloc=Lb(tiuvi) L_\text{loc} = \sum L_b(t_i^u - v_i)
其中LbL_b表示每個樣本的平衡L1損失。爲了達到作者想要的梯度效果,作者設置了單個樣本的損失梯度:
Lbx={αln(bx+1) if x<1γotherwise \frac{\partial L_b}{\partial x} = \begin{cases} \alpha \ln (b |x|+1) & \text{ if } |x| \lt 1 \\ \gamma & \text{otherwise} \end{cases}
其中γ\gamma控制着梯度的上限,論文默認設置爲1.5。α\alpha控制着inliers的梯度,α\alpha越小,inliers梯度越大,如上圖a所示。論文默認設置α=0.5\alpha=0.5

由上如的梯度公式可以推導出單個樣本的平衡L1損失:
Lb(x)={αb(bx+1)ln(bx+1)αx if x<1γx+Cotherwise L_b(x) = \begin{cases} \frac{\alpha}{b} (b |x|+1) \ln (b |x|+1) - \alpha |x| & \text{ if } |x| \lt 1 \\ \gamma |x| + C & \text{otherwise} \end{cases}
參數的約束是
αln(b+1)=γ \alpha \ln (b + 1) = \gamma

Experiments

experiments

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章