Libra R-CNN——“平衡學習” by Rose


一、簡介

 Libra R-CNN: Towards Balanced Learning for Object Detection是發表於2019年CVPR的論文。文章中沒有太多改造網絡結構,計算成本也沒增加多少,只是通過三個方面的改進就能在MSCOCO數據集上AP值比FPN Faster RCNN高2.5%,比RetinaNet高2%。附上開源鏈接

二、參考文獻/博客

  1.   Libra R-CNN: Towards Balanced Learning for Object Detection
  2.   CVPR 2019 | Libra R-CNN 論文解讀
  3.   Feature Pyramid Networks for Object Detection

三、論文詳解

1、提出背景

三個不平衡

隨着深卷積網絡的發展,近年來,在目標檢測方面取得了顯著進展。一些檢測框架,如Fasetr R-CNN、Retinanet和Cascaded R-CNN已經開發出來,這大大推動了技術的發展。盡管管道體系結構存在明顯的差異,例如單階段與兩階段,但現代檢測框架大多遵循一種通用的訓練范式:

  • 采樣候選區域 sample level
  • 從中提取特征 feature level 
  • 在多任務目標函數的指導下識別目標和潤色邊界框 objective level

如fig1所示:

 

這個范式使得目標檢測是否成功取決於三方面:

  • 選擇的區域是否具有代表性
  • 提取的特征是否被充分利用
  • 多任務目標函數是否為最優的

sample level imbalance

 當訓練目標探測器時,難樣本(hard exsample)尤其有價值,因為它們更有效地提高了檢測性能。然而,隨機抽樣(random sampling)往往導致選擇樣本以簡單樣本為主。流行的難例方法,如OHEM,有助於將焦點轉向難樣本。然而,它們往往對噪聲標簽敏感,並產生相當大的內存和計算成本。在單級探測器中,focal loss也緩解了這一問題,但當擴展到R-CNN時,發現幾乎沒有改善,因為大多數易分負樣本是通過兩級過濾的。因此,這個問題需要更優雅地解決。

feature level imbalance

主干中深層次的高層次特征具有更多的語義意義,而深層次的低層次特征具有更多的描述性內容。最近,通過橫向連接在FPN和PANET中進行的特征集成促進了目標檢測的發展。這些方法啟發我們,低層次和高層次的信息是對目標檢測的補充。如何利用它們來集成金字塔表示的方法決定了檢測性能。但是,將它們集成在一起的最佳方法是什么?我們的研究表明,綜合特征應該具有來自每個分辨率的平衡信息。但前文所述方法中的順序方式將使集成特性更多地關注相鄰分辨率,而較少關注其他分辨率。在信息流中,非相鄰層次中包含的語義信息在每次融合時都會被稀釋一次。下圖是FPN論文中特征融合比較的圖:

可以看到FPN更關注於相鄰層間的特征融合。

objective level imbalance

檢測器需要執行兩個任務,即分類和定位。因此,訓練目標中包含兩個不同的目標。如果它們沒有得到適當的平衡,一個目標可能會受到影響,從而導致總體性能不理想。訓練過程中涉及的樣本情況相同。如果不適當平衡,易分樣本產生的小梯度可能會淹沒在難例產生的大梯度中,從而限制進一步細化。因此,我們需要重新平衡所涉及的任務和樣本,使其達到最佳收斂。

2、解決辦法

IoU-balanced sampling

根據它們和真值的IoU來挖掘難例。下圖為不同采樣的比較:

訓練樣本和真值的重疊和它是否難分有關?我們主要考慮難負樣本的問題,這是眾所周知的主要問題。我們發現超過60%的難負樣本重疊度大於0.05,但隨機抽樣只提供了超過相同閾值的30%的訓練樣本。這種極端的樣本不平衡將許多難樣本埋藏在成數千個易分樣本之中。基於這一觀察,我們提出了IOU平衡。

一種簡單而有效的難樣本方法,無需額外成本。假設我們需要從M個對應的候選樣本中抽取N個負樣本。隨機抽樣下每個樣本的選擇概率是:

 

為了提高難負樣本的選定概率,我們根據IOU將采樣間隔均勻地分成K個。N個需要的難負樣本平均分配到每個區間。然后我們從中均勻地選取樣本。因此,我們得到了IOU均衡抽樣下的選擇概率:

Mk是第k個區間中候選樣本的數量。K在論文中被設為3(經過實驗,只要更容易選擇IoU更高的樣本,結果對K不敏感)。

 

Balanced Feature Pyramid

我們的核心思想是使用相同的深度集成的平衡語義特征來增強多層次的特征。管道如圖所示。它由四個步驟組成:縮放、整合、潤色和強化。

Obtaining balanced semantic features 獲得平衡語義特征。分辨率級別l的特征表示為Cl。多級別特征的數量表示為L。涉及的最低和最高級別的索引表示為lmin和lmax。在圖中,C2的分辨率最高。為了同時集成多層次特性並保持其語義層次,我們首先將多層次特性C2、C3、C4、C5分別使用插值和最大值池化調整為中等大小,即與C4大小相同,。一旦特征被重新調整,通過簡單的平均得到平衡的語義特征:

在本步驟中,每個分辨率都從其他分辨率中獲得同等的信息。

Refining balanced semantic features 潤色平衡的語義特征。 我們發現直接使用卷積和non-local模塊都可以很好地工作。但non-local更穩定。因此,在本文中,我們使用embedded Gaussian non-local attention作為默認值。細化步驟有助於增強集成功能,進一步提高結果。使用這種方法,可以同時聚合從低級到高級的特征。輸出P2、P3、P4、P5用於在FPN中沿着同一管道檢測對象。值得一提的是,我們的平衡特性金字塔可以與最近的解決方案(如FPN和PAFPN)互補,而不會產生任何沖突。

 

Balanced L1 Loss

Faster R-CNN以來,分類和定位問題在多任務損失的指導下同時得到解決,定義為:

Lcls和Lloc分別是識別和定位的目標函數。Lcls中的預測和目標分別表示為p,u。tu是類別u相應的回歸結果,v是回歸目標。λ用於調整多任務學習下的權重。我們稱損失大於或等於1.0的樣本為outliers。其他樣本稱為inliers。

平衡多任務損失的常見的方法就是調整權重,但是由於回歸目標無界,直接增加定位損失會使得模型對outliers更加敏感。這些outliers可以被視為難樣本,會產生對訓練過程有害的過大梯度。與outliers相比,inliers對整體梯度的貢獻很小,可以看作是一個簡單的樣本。更具體地說,與outliers相比,每個樣本的平均梯度只有30%。考慮到這些問題,我們提出了平衡的L1損耗,用Lb表示。

首先我們看Smooth L1 Loss:

Lloc的Balanced L1 Loss為:

梯度計算遵循下面的准則:

 

 

 於是作者從需出發,設計了一個在|x|<1時梯度比較大的函數

 

 從下圖中可以看出,在|x|<1時,上式的梯度是大於x(Smooth L1 Loss的梯度)

根據梯度反求出Lb(x) 表達式:

還有很重要的一點就是為了函數的連續性,需要滿足x=1時,Lb(1)=γ。

 

四、實驗結果

  

 

五、總結

這篇論文結構清晰,從三個問題入手,分層次解決問題,在不太改動網絡結構和增加計算成本的條件下,就能獲得比較好的結果,是一篇比較好的baseline。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM