CVPR2020 oral | 解決目標檢測長尾問題簡單方法:Balanced Group Softmax

2021-02-21 AI算法修煉營

代碼地址:https://github.com/FishYuLi/BalancedGroupSoftmax

視頻講解地址:https://www.youtube.com/watch?v=ikdVuadfUo8

使用基於深度學習的模型來解決長尾 large vocabulary目標檢測是一項具有挑戰性而艱巨的任務,然而,這項工作尚未得到充分研究。在本文的工作中,首先對針對長尾分布問題所提出SOTA模型的性能進行了系統分析,找出其不足之處。發現當數據集極度偏斜時,現有的檢測方法無法對few-shot類別進行建模,這可能導致分類器在參數大小上的不平衡。由於檢測和分類之間的內在差異,將長尾分類模型直接應用於檢測框架無法解決此問題。因此,在這項工作中,提出了一個新穎的balanced group softmax (BAGS)模塊,用於通過逐組訓練來平衡檢測框架內的分類器。它隱式地調整了頭和尾類的訓練過程,並確保它們都得到了充分的訓練,而無需對來自尾類的instance進行任何額外採樣。

在最近的長尾large vocabulary目標識別任務數據集 LVIS上的大量實驗表明,本文提出的BAGS大大提高了具有各種主幹和框架的檢測器在目標檢測和實例分割上的性能。它擊敗了從長尾圖像分類中轉移過來的所有最新方法,並建立了新的方法。

LVIS 是由facebook AI研究院的研究人員們發布的一個大規模的詞彙實例分割數據集(Large Vocabulary Instance Segmentation ),包含了164k圖像,並針對超過1000類物體進行了約200萬個高質量的實例分割標註。數據集中包含自然圖像中的物體分布天然具有長尾屬性。


受《Decou-pling representation and classifier for long-tailed recognition》的啟發,首先將檢測框架中的representation 和分類模塊解耦,發現不同類別相對應的proposal 分類器的weight norm嚴重失衡,因為low-shot類別被激活的機會很少。通過分析,這是長尾檢測器性能差的直接原因,而長尾檢測器性能本質上是由數據不平衡引起的。

如圖1所示,分別根據訓練集中實例的數量對在COCO和LVIS上訓練的模型的類別分類器權重範數進行排序。對於COCO,除了背景類(類別ID = 0)以外,相對平衡的數據分布導致所有類別的weight norm相對平衡。而對於LVIS,很明顯類別weigh norm是不平衡的,並且與訓練實例的數量呈正相關。這種不平衡將使low-shot 類別(尾類)的分類分數比many-shot 類別(頭部類)的分類分數小得多。在標準softmax函數之後,這種不平衡會被進一步放大,因此分類器錯誤地抑制了預測為low-shot 類別的proposal 。

圖1. COCO和LVIS訓練集中類別的訓練實例(#ins)的排序數量,以及在COCO和LVIS上訓練的Faster R-CNN模型的相應分類器權重範數「 w」。x軸表示COCO和LVIS的分類索引。將80類COCO與1230類LVIS對齊,以獲得更好的可視化效果。類別0表示背景。


在實際的視覺相關任務中,數據都存在如上圖所示的長尾分布少量類別佔據了絕大多少樣本,如圖中Head部分,大量的類別僅有少量的樣本,如圖中Tail部分。解決長尾問題的方案一般分為4種:

1、Re-sampling:主要是在訓練集上實現樣本平衡,如對tail中的類別樣本進行過採樣,或者對head類別樣本進行欠採樣。基於重採樣的解決方案適用於檢測框架,但可能會導致訓練時間增加以及對tail類別的過度擬合風險。

2、Re-weighting:主要在訓練loss中,給不同的類別的loss設置不同的權重,對tail類別loss設置更大的權重。但是這種方法對超參數選擇非常敏感,並且由於難以處理特殊背景類(非常多的類別)而不適用於檢測框架。

3、Learning strategy:有專門為解決少樣本問題涉及的學習方法可以借鑑,如:meta-learning、metric learning、transfer learing。另外,還可以調整訓練策略,將訓練過程分為兩步:第一步不區分head樣本和tail樣本,對模型正常訓練;第二步,設置小的學習率,對第一步的模型使用各種樣本平衡的策略進行finetune。

4、綜合使用以上策略

在本文中,為了解決分類器的不平衡問題,將一個簡單而有效的balanced group softmax(BAGS)模塊引入到檢測框架的分類head中。本文建議將訓練實例數量相似的目標對象類別放在同一組中,並分別計算分組的softmax交叉熵損失。分別處理具有不同實例編號的類別可以有效地減輕head類對tail類的控制。但是,由於每次小組訓練都缺乏不同的負樣本,結果模型會有太多的誤報。因此,BAGS還在每個組中添加了一個其他類別,並將背景類別作為一個單獨的組引入,這可以通過減輕head類對tail類的壓制來保持分類器的類別平衡,同時防止分類背景和其他類別的false positives。

實驗發現BAGS的效果非常好。在長尾目標識別任務數據集LVIS上,使用各種框架包括Faster R-CNN、CascadeR-CNN、Mask R-CNN和HTC與ResNet-50-FPN和ResNeXt-101-x64x4d-FPN,其tail類性能提升了9%-19%,整體mAP提升了約3%-6%。

當訓練集遵循長尾分布時,當前表現良好的檢測模型通常無法識別尾巴類別。本文通過對代表性示例(COCO和LVIS)進行對比實驗,嘗試研究從均衡數據集到長尾數據集這種性能下降的背後機制。

通過所設計的對比實驗發現(具體的實驗細節可以參考論文原文),tail類的預測得分會先天性地低於head類,tail類的proposals 在softmax計算中與head類的proposals 競爭後,被選中的可能性會降低。這就解釋了為什麼目前的檢測模型經常在tail類上失效。由於head類的訓練實例遠多於tail類的訓練實例(例如,在某些極端情況下,10000:1),tail類的分類器權重更容易(頻繁)被head類的權重所壓制,導致訓練後的weight norm不平衡。

因此,可以看出為什麼重採樣方法能夠在長尾目標分類和分割任務中的使得tail類受益。它只是在訓練過程中增加了tail類proposals 的採樣頻率,從而可以平等地激活或抑制不同類別的權重,從而在一定程度上平衡tail類和head類。同樣,損失重新加權方法也可以通過類似的方式生效。儘管重採樣策略可以減輕數據不平衡的影響,但實際上會帶來新的風險,例如過度擬合tail類和額外的計算開銷。同時,損失重新加權對每個類別的損失加權設計很敏感,通常在不同的框架,backbone和數據集之間會有所不同,因此很難在實際應用中進行部署。而且,基於重新加權的方法不能很好地處理檢測問題中的背景類。因此,本文提出了一種簡單而有效的解決方案,無需繁重的超參數工程即可平衡分類器weight norm。

本文方法:Balanced Group Softmax

圖2.Balanced Group softmax模塊的框架。(a)訓練:將包含類似訓練實例的類別分組在一起。類別 others被添加到每個組。G0表示背景組。Softmax交叉熵損失函數(CE)損失分別應用於每個組。(b)測試:使用新的預測z,將softmax應用於每個組,並按其原始類別ID的概率排序,並用前景概率重新縮放,從而為後續的後期處理環節生成新的概率向量。

1、Group softmax

如前所述,weight norm與訓練樣本數之間的正相關關係損害了檢測器的性能。為了解決這個問題,本文將類別劃分為幾個不相交的組,並分別執行softmax操作,以使只有具有相似訓練實例數量的類在每個組中彼此競爭。這樣,可以在訓練期間將包含大量不同實例的類彼此隔離。head類將基本上不抑制tail類的分類器權重。

根據訓練實例數量將所有類別分為N組:

其中N(j)是訓練集中類別J的標籤中邊界框的數量,而sl和sh是確定每組的最小和最大實例數的超參數。文中,分為四組N = 4,sl1 = 0,sl2 = 10,sl3 = 102,sl4 = 103,sh4 = +∞。

此外,手動將G0設置為僅包含背景的類別,因為它擁有最多的訓練實例(通常比目標類別多10-100倍)。對G0採用sigmoid cross entropy損失,因為它僅包含一個預測,而對於其他組採用softmax cross entropy,選擇softmax的原因是softmax函數具有將每個類彼此抑制的能力,並且很少會產生大量的誤報。

2、Calibration via category 「others」

但是,發現上述group softmax設計存在以下問題:在測試過程中,對於一個proposal,由於其類別未知將使用所有組進行預測,因此,每個組至少有一個類別將獲得較高的預測分數,並且很難決定我們應該採用哪種分組預測,從而導致大量誤報。為了解決這個問題,在每個組中添加了一個類別,以校準組之間的預測並抑制誤報。此類別包含當前組中未包含的類別,可以是其他組中的背景類別或前景類別。

3、Balancing training samples in groups

在以上處理中,新添加的類別others將通過抑制眾多實例,再次成為佔主導地位的outlier 。為了平衡每組的訓練樣本數,僅對一定數量的others proposals進行訓練,由採樣率β控制。

在包含標籤真值的類別組中,將根據mini-batch of K proposals來按比例採樣others實例。如果一組中沒有激活正常類別,則所有others實例都不會激活,該組則被忽略。這樣,每個組都可以保持平衡,且誤報率低。添加others類別會使baseline提高2.7%。

4、Inference

在推理過程中,首先使用訓練好的模型生成z,然後在每個組中應用softmax。 除G0外,其他所有節點均被忽略,所有類別的概率均按原始類別ID排序。G0中的p0可被視為前景proposals的概率。最後,使用重新縮放正常類別的所有概率。這個新的概率向量將被送到後續的後處理步驟(如NMS),以產生最終的檢測結果。應該注意的是,從概念上來說不是真正的概率向量,因為它的總和不等於1,但它起著原始概率向量的作用,該向量通過選擇最終boxes框來指導模型。

數據集:LVIS,根據訓練實例數量將LVIS驗證集中的類別劃分為4個等級,以更清楚地評估頭和尾類的模型性能。

評價指標:mAP,APr(APfor rare classes), APc(AP for common classes),  APf(AP for frequent classes)

1、Main results on LVIS

將長尾分類的多種最新方法轉移至Faster R-CNN框架,包括對tail類進行微調,重複因子採樣(RFS),類別損失重新加權,Focal Loss,NCM 和τ歸一化。


採用以ResNet-50-FPN為主幹網絡的FasterR-CNN作為baseline(表中的模型(1)),可達到20.98%的mAP但0%的AP1。baseline模型由於其他類別的支配而錯過了大多數tail類別。針對tail訓練樣本對模型(1)微調後得到的模型(3)僅將AP2顯著增加,而將AP4減少2.5%,並且AP1保持為0。這表明當訓練次數增加時,原始softmax分類器不能很好地適應於實例數量太小的情況。

為了進一步驗證方法的通用性,將FasterR-CNN主幹更改為ResNeXt-101-64x4d,結果展示於表2。在這個更強大的主幹上,本文的方法仍然獲得了3.2%的改進。然後,將本文的方法應用於最新的Cascade R-CNN框架,並在3個階段將所有3個softmax分類器更改為BAGS模塊。總體mAP顯著提高了5.6%。

2、Results for instance segmentation

更多實驗細節,可以參考原文。

參考:

https://zhuanlan.zhihu.com/p/127791648

相關焦點

  • Balanced-Meta Softmax: 長尾視覺識別方案解讀
    在NeurIPS 2020上,商湯新加坡團隊提出的Balanced-Meta Softmax (BALMS), 針對真實世界中常見的長尾數據分布提出了新的視覺識別方案。在優化目標方面,BALMS 提出一種新的損失函數,Balanced Softmax,來修正長尾設定下因訓練與測試標籤分布不同而導致的偏差。
  • 港中文等提出Seesaw Loss:一種面向長尾目標檢測的平衡損失函數
    在此之前,我們主要研究 COCO 這類均衡分布的目標檢測數據集,並提出了一系列方法來提高檢測精度(例如 Hybrid Task Cascade,Guided Anchoring,Libra R-CNN, CARAFE, Prime Sample Attention, Side-Aware Boundary Localization)。
  • CVPR 2017 全部及部分論文解讀集錦
    論文主要解決的是semantic segmentation中imbalanced training data distributions問題。在semantic segmentation數據集包括現實世界中存在明顯的長尾分布的問題,即大多數的數據組成了小部分的類別,因此會導致學習器更偏向於這些類別。
  • 一種嶄新的長尾分布下分類問題的通用算法|NeurIPS 2020
    (往期) 長尾分布下分類問題簡介與基本方法2. (往期) 長尾分布下分類問題的最新研究3. (往期) 長尾分布下的物體檢測和實例分割最新研究(https://zhuanlan.zhihu.com/p/163186777)4.
  • 一種嶄新的長尾分布下分類問題的通用算法 | NeurIPS 2020
    而且實現非常簡單,能夠廣泛適用於各種不同類型的任務。  之前幾期介紹了很多過往的工作,然而有幾個問題(缺陷)卻一直縈繞在我的腦中沒有被解決:    雖然利用數據集分布的re-sampling和re-weighting訓練方法可以一定程度上緩解長尾分布的問題。
  • ECCV 2020 Spotlight | 多標籤長尾識別前沿進展
    本文關注的是長尾分布下的多標籤分類問題,並提出了一種分布平衡損失函數 (Distribution-Balanced Loss),在COCO-MLT和VOC-MLT這兩個人工構造的多標籤長尾數據集上進行實驗驗證,取得了很好的效果。文章和代碼均已公開。
  • 做目標檢測,這6篇就夠了:CVPR 2020目標檢測論文盤點
    CVPR 2020 會議上,有哪些目標檢測論文值得關注?目標檢測是計算機視覺中的經典問題之一。憑藉大量可用數據、更快的 GPU 和更好的算法,現在我們可以輕鬆訓練計算機以高精度檢測出圖像中的多個對象。前不久結束的 CVPR 2020 會議在推動目標檢測領域發展方面做出了一些貢獻,本文就為大家推薦其中 6 篇有價值的目標檢測論文。
  • Facebook AI的DETR:一種基於Transformer的目標檢測方法
    前不久,Facebook開源了一個這樣的框架,DETR(DEtection TRansformer)在本文中,我們將快速了解目標檢測的概念,然後研究DETR及其帶來的好處。目標檢測在計算機視覺中,目標檢測是一項將對象與背景區分開,並預測圖像中存在的對象的位置和類別的任務。當前的深度學習方法試圖將其作為分類問題或回歸問題或綜合兩者的目標檢測任務來解決。
  • CVPR 2019 | 天秤座R-CNN:全面平衡的目標檢測器
    其實如果不對 detector 的結構做功夫的話,針對這些 imbalance 改進的其實就是為了把 detector 的真正功效給展現出來,就是如果把一個目標檢測器 train 好的問題。,但是這種方法對噪音數據會比較敏感。
  • CVPR 2020 目標檢測論文精選
    字幕組雙語原文:CVPR 2020 目標檢測論文精選英語原文:CVPR 2020: The Top Object Detection Papers翻譯:雷鋒字幕組(李珺毅、沫年惜雪)一、基於在點雲上的這個網絡通過處理原始點雲,直接預測目標的3 d邊界框。對於檢測目標,HGNet能夠捕捉這些點之間的關係並且使用多層次語義。
  • CVPR 2020 Oral|曠視研究院提出Circle Loss,統一優化視角
    使用類標籤時,一般需要用分類損失函數(比如 softmax + cross entropy)優化樣本和權重向量之間的相似度;使用樣本對標籤時,通常用度量損失函數(比如 triplet 損失)來優化樣本之間的相似度。這兩種學習方法之間並無本質區別,其目標都是最大化類內相似度(s_p)和最小化類間相似度(s_n)。
  • 3D目標檢測深度學習方法數據預處理綜述
    作為本篇博文的引言,我們先給一種博主製作的比較重要的3D檢測方法圖鑑,如下,就筆者的個人理解,今年的CVPR出現了很多的one-stage的方法,同時出現了很多融合的方法,這裡的融合有信息融合,有representation融合,同時根據近兩年的發展來看,voxel-based的方法佔據了主導地位,這是得益於卷積結構優越性(point-based方法採用pointnet++結構,是MLP搭建的),但是今年的or
  • ECCV 2020 Spotlight | 清華&港中文提出多標籤長尾識別前沿進展
    因此長尾分布下的多標籤分類任務是這篇文章主要關注的問題。二、動機從單標籤向多標籤的轉換,有幾個自然的思路:對前者有效的方法對後者來說是否仍適用?兩種設定在訓練時的主要區別有哪些,又有怎樣的影響呢?1.三、方法針對上述問題,我們分別提出了 Re-balanced weighting 和 Negative-tolerant regularization 兩個策略,並最終整合為一個損失函數的形式。1.
  • SSD目標檢測
    但是在SSD300中prior box設置並不能完全和上述公式對應:不過依然可以看出:SSD使用感受野小的feature map檢測小目標,使用感受野大的feature map檢測更大目標。而mbox_conf後接reshape,再進行softmax(為何在softmax前進行reshape,Faster RCNN有提及)。最後這些值輸出detection_out_layer,獲得檢測結果可以看到,SSD一次判斷priorbox到底是背景 or 是20種目標類別之一,相當於將Faster R-CNN的RPN與後續proposal再分類進行了整合。
  • 漫談詞向量之基於Softmax與Sampling的方法
    每個詞語有一個d維的輸入詞向量vW(即embedding層的詞向量)和輸出詞向量v』W(即softmax層的權重矩陣所表示的詞語)。最後,針對模型參數θ來優化目標函數Jθ。若指定上下文c,用softmax方法計算詞語w出現的概率可以用公式表示為:h是網絡倒數第二層的輸出向量。為了簡化表示,上式中用c表示上下文內容,並且省略了目標詞語wt的下標t。
  • 歷年 CVPR 最佳論文盤點
    >核心內容:作者提出一種簡單的「無先驗」方法來解決非剛性結構的運動因子分解問題。除了基本的低秩條之外,該方法無需任何關於非剛性場景或相機運動的先驗知識。即便如此,它依然得以穩定運行,並產生最佳結果,且不受許多傳統非剛性分解技術的基礎 - 模糊性問題(basis-ambiguity issue)困擾。   該方法易於實現,可以解決包括小型與固定大小的 SDP(半定規劃)、線性最小二乘或範數最小化追蹤等問題。
  • CVPR 2018:阿里提出新零樣本學習方法,有效解決偏置問題
    論文地址:http://arxiv.org/abs/1803.11320 大多數現有的零樣本學習(Zero-Shot Learning,ZSL)方法都存在強偏問題:訓練階段看不見(目標)類的實例在測試時往往被歸類為所看到的(源)類之一。因此,在廣義ZSL設置中部署後,它們的性能很差。在本文,我們提出了一個簡單而有效的方法,稱為準完全監督學習(QFSL),來緩解此問題。
  • 四篇入選oral,深睿醫療8篇科研論文被國際學術會議IEEE CVPR、ISBI...
    CVPR 2020本次收錄四篇科研論文,其中三篇為oral。從IEEE CVPR 2020公布的論文接收結果來看,在6656篇有效投稿中有1470篇論文被接收,接收率僅為22%,相比去年又降低3個百分點,oral按照往年經驗,一般只有5-7%,競爭越發激烈。
  • 視頻目標檢測大盤點
    因為目標的外觀可能在某些幀中惡化,通常使用其他幀的特徵或檢測來增強預測效果。解決這一問題的方法有很多: 如動態規劃、跟蹤、循環神經網絡、有/無光流的特徵聚合以跨幀傳播高層特徵。有些方法採用稀疏方式進行檢測或特徵聚合,從而大大提高推理速度。主流的多幀無光流特徵聚合和 Seq-NMS 後處理結合精度最高,但速度較慢(GPU 上小於10 FPS)。在準確率和速度之間需要權衡: 通常更快的方法準確率較低。
  • CVPR2019| 05-17更新11篇論文及代碼合集(含一篇oral,視覺跟蹤/實例分割/行人重識別等)
    目前官方已公布了接收論文列表,極市已匯總目前公開的所有論文連結及code(目前已更新612篇),今日更新論文如下:CVPR2019 全部論文匯總:https://github.com/extreme-assistant/cvpr2019CVPR2019 論文解讀