哈喽,大家好,今天我們一起研讀2021 CVPR的一篇論文《Generalized Few-Shot Object Detection without Forgetting》,該論文由曠視研究團隊發表。今天的内容主要是梳理、總結該篇論文中每一部分的精華。閑言少叙,我們進入主題:
第一部分:Abstract
few-shot object detection(小樣本目标檢測)廣泛應用于資料有限的條件下,之前很多團隊的研究成果聚焦于小樣本種類(categories)的表現,曠視研究團隊認為在真實應用場景下,測試樣本可能包含任何目标物體,因而檢測所有類别(classes)至關重要,這需要小樣本檢測器能夠在沒有遺忘的條件下學習新的概念(目标)。曠視團隊提出了Retentive R-CNN(記憶強的R-CNN),它由Bias-Balanced RPN(偏置-平衡RPN) 對預訓練RPN進行反偏置,同時,在沒有遺忘之前知識的條件下,重新檢測、查找少樣本類别目标。該算法Retentive R-CNN目前獲得了state-of-the-art performance。
如圖-01所示:

【個人觀點:小樣本學習(few-shot learning)一直是一個研究的熱門領域,我們的很多模型都是基于已知的大規模資料集進行訓練,最後得到一個最優的模型。然後,對新的樣本集進行測試。這裡存在的問題是,假設模型訓練過程中,沒有訓練過此類新樣本,那麼,模型就很難有很好的表現。然而,現實世界中,往往很難包羅萬象、且每個類别的資料集都有人工标注,是以,如何基于小樣本學習,一直是很大的挑戰。】
第二部分:Introduction
這部分内容,作者首先指出了問題,即:在計算機視覺領域,深度卷積神經網絡基于大規模資料集進行訓練,往往很多資料需要事先進行人工标注,尤其是目标檢測,這往往不太可能做到面面俱到。同時,資料集中的不同類别的樣本分布存在長尾現象。作者提出few-shot learning如何能夠像人一樣具有通用能力,通過小樣本學習後,可以對目标物體進行檢測、識别。
目前已經有很多few-shot learning算法應用于目标檢測,不過仍然面臨很多挑戰。大多數算法聚焦于小樣本學習,往往造成對基類(base classes)檢測性能的下降或遺忘。檢測所有類别(classes)的問題被稱為通用少樣本檢測(Generalized Few-Shot Detection , G-FSD)。
目前流行的few-shot object detection算法有meta-leanring(元學習),該算法的缺點是計算複雜、耗時、慢。另一種替代算法是遷移學習(transfer learning),該算法能夠在單輪訓練後,檢測所有類别的性能大幅提升。不過,該算法在預訓練模型與基類性能之間仍然存在差距。
如圖-02所示(算法性能比較):
曠視團隊發現了兩種被忽視的特性:
1. 盡管預訓練模型性能優越,但是它無法在新類執行個體上預測很多假正樣本(false positives)。
2. RPN偏向于它所看到的類,而不是理想的class-agnostic,是以當機它而不暴露于新類可能是次優的。
Retentive R-CNN根據Bias-Balanced RPN和Re-detector整合了基類和新類檢測器,Bias-Balanced RPN能夠更好地适應新類目标(new class objects),同時對基類仍然保持強大,是以在訓練和推理階段,提供了更好的proposals。Re-detector在微調過程中(finetuning)利用了一緻性損失來調整适應過程(regularize the adaption),并利用基類的檢測特性在未遺忘的條件下提高檢測性能。
第三部分:Related Work
這部分内容,作者從三個領域的發展動向進行簡述,分别是:
1. Few-Shot learning(小樣本學習)
目前比較流行的方法有metric learning(度量學習) 和 meta-learning(元學習),這兩種方法廣泛應用于避免在小樣本資料上的過拟合。不過,近期的一些研究成果發現,基于預訓練的主幹網(pretrained backbone)進行特征提取,其性能優于之前的其它方法。不過,該最新方法的問題是在微調過程中,會對基類(base class)産生嚴重的遺忘。
2. Object Detection(目标檢測)
目标檢測算法(two-stage)的典型代表是R-CNN,很多few-shot object detection算法基于R-CNN架構進一步探索,目前已經取得不錯進展的方法包含:single-stage methods 和 anchor-free methods.
3. Few-Shot Object Detection(小樣本目标檢測)
對于Few-shot目标檢測算法的探索主要分成兩個方向:meta-learning(元學習) 和 transfer learning(遷移學習)。
【個人觀點:首先,本人對meta-learning沒有研究過,是以不予置評。對于遷移學習,之前在不少案例中都應用過該技術,分類的性能确實遠高于自己搭建的網絡性能。是以,通常在進行目标檢測或分類任務時,首選的技術手段便是遷移學習。】
第四部分:Approach
1. Problem Statement (問題陳述)
這裡作者提出了一個問題,簡述如下:
假設有兩個類别:base calsses(基類,簡寫 Cb)和 novel classes(新類,簡寫Cn),這兩個類别對應的子資料集分别是:Db 和 Dn。注意,Db包含帶有豐富标注資訊的訓練資料集,Dn僅包含少部分樣本資料。我們的目标是:在沒有遺忘從豐富的基類樣本中學到的能力的情況下,從少部分新類樣本中學習一個基于Cb和Cn的檢測模型。
作者提出了兩種解決該目标的方法,第一是meta traing(元學習),該方法被否決,主要是耗時且複雜;第二是tranfer learning(遷移學習),該方法獲得了非常好的性能和結果。最終,作者采取第二種方法,基于遷移學習解決G-FSD(通用小樣本檢測)的問題。
具體做法:
① 基于Db(基類子資料集)訓練,獲得一個基模型f_b:
② 然後,在Dn(新類子資料集)或Db與Dn整合在一起的資料集上進行微調基模型f_b,獲得一個新模型:f_n;
出現的問題:
① 由于遺忘效應(forgetting effect),在微調階段會降低基類的性能;
如圖-03所示:
2. Analysis on transfer learning based Few-Shot object detection (基于小樣本目标檢測的遷移學習分析)
首先,作者介紹了TFA(two-stage finetuning approach 兩階段微調方法)的實施流程:
① TFA首先在Db資料集上訓練,可以視為一個普通的R-CNN模型;
② 最後的分類和box回歸層的heads在Dn資料集上微調;
③ 微調後的新類head的權重與基類權重進行合并,作為基于合并資料集(Dn + Db)進行最終微調的初始化值。
3. Retentive R-CNN (記憶強的R-CNN)
對于G-FSD(通用小樣本檢測)提出的模型Retentive R-CNN,由Bias-Balanced RPN和Re-detector構成,然後利用基類檢測器(base class detector) f_b的特性。
模型架構如圖-04所示:
(3.1)Re-detector
Re-detector由2個檢測頭(detector heads)組成,并行用于預測目标proposals下Cb(基類)和Cb ∪ Cn (基類與新類的并集)。其中一個流stream儲存模型f_b中相同的權重用于預測Cb(基類)的目标(簡寫:Det_b)。另一個stream儲存微調後的權重用于檢測Cn和Cb的目标(簡寫:Det_n)。由于訓練資料的不均衡,檢測兩個類别能夠有效減緩假真樣本(false positive)。Det_b 利用全連接配接層用于分類,Det_n 使用consine分類器平衡特征的多樣性。
模型f_b基于大量基類資料訓練獲得,對于新類的檢測可以繼承模型f_b的可靠先驗知識。是以,作者提出了auxiliary consistency loss (輔助一緻性損失),該損失對Det_n進行正則化,以獲得對object proposal的評分。
如圖-05所示,輔助一緻性損失計算公式:
總的Re-detector損失計算公式如下,如圖-06所示:
(3.2)Bias-Balanced RPN
作者指出R-CNN算法在訓練過程中,基于RPN網絡生成object proposals,用于分類和其它後處理。是以,當訓練資料比較少的情況下,RPN生成的proposals的品質至關重要。
為了獲得在基類(base classes)上的性能,研究團隊提出了Bias-Balanced RPN用于整合預訓練RPN和微調後的RPN。具體操作如下:
如圖-07所示:
這裡需要注意幾點:
① 在微調階段,僅有finetuned RPN的objectness設定為unfrozen(解凍狀态);
② 在base RPN和finetuned RPN之間,共享box regression層和卷積層;
接下來,看一下在finetuning階段的總損失函數,如圖-08所示:
(3.3)訓練階段 Training
基于遷移學習方法,Retentive R-CNN的訓練分為兩個階段:
① 在D_b(基類資料集) 上預訓練,然後,在D_n(新類資料集)和D_b整合後的資料集上進行微調。
② 當機三層,finetuned RPN的objectness,分類層的最後一個線性層,Det_n的回歸層。
(3.4)推理階段 Inference
基于Bias-Balanced RPN提供的object proposals,相關聯的features并行輸入到Re-detector的兩個heads。兩個heads預測的boxes集合起來進行最終的NMS操作。在Bias-Balanced RPN中的backbone和特征轉換層,Re-detector在兩個detector heads之間共享,與普通的 R-CNN 相比,可以以很少的開銷保持基類性能。
第五部分:Experiments
該部分的實驗結果對比非常詳細,建議直接看論文。
(1)Few-shot object detection results on MS-COCO under 5,10,30-shot settings, best viewed in color. AP, bAP, nAP represents
mAP of MS-COCO for all classes, base classes, and novel classes, respectively.
如圖-09所示:
(2)Few-shot object detection results on Pascal VOC(07+12) all classes (AP50) under 1,2,3,5,10-shot settings, best viewed in color.
Best results and second-best are colored in red and blue, respectively.
如圖-10所示:
(3)Few-shot object detection results on Pascal VOC(07+12) novel classes (nAP50) under 1,2,3,5,10-shot settings, best viewed in
color. Best results and second-best are colored in red and blue, respectively.
如圖-11所示:
(4)Inference Time
如圖-12所示:
第六部分:Conclusion
研究團隊提出了 Retentive R-CNN 來解決 G-FSD 的問題,并證明了在目标檢測中可以實作無遺忘的小樣本學習。Retentive R-CNN簡單且有效地融合了base and novel detector,基于Bias-Balanced RPN降低了預訓練RPN和Re-detector可靠查詢基類和新類目标的偏差。通過實驗結果對比表明,Retentive R-CNN獲得了state-of-the-art performance。
論文下載下傳位址:
https://arxiv.org/pdf/2105.09491.pdf
目前,曠視沒有開源項目源碼。