作者 | VincentLee
來源 | 曉飛的算法工程筆記
該論文研究了非常有意義的增量式少樣本目標檢測場景iFSD(Incremental Few-Shot Detection),場景設置如下:
檢測模型可以在包含充足樣本的基礎類別上進行訓練訓練好後,iFSD能夠應用到真實世界中,任何新類別在任何時候都能通過少量標註樣本進行註冊對於無限的新類別的學習,在內存使用量、存儲用量和計算量上都應該是可行的,理想情況下,模型可以發布在資源有限的設備上,如手機和機器人目前的常規目標檢測算法大都難以適用於iFSD的場景設置,一般的做法是對新類別進行fine-tune,但這樣既耗時效果又一般。為此,論文提出無限制CentreNet(OpeN-ended Centre nEt, ONCE),在原CentreNet(CenterNet?)的基礎上,採用基於特徵的知識遷移策略,將網絡分成類可知和類不可知模塊進行增量式少樣本學習。首先使用基類訓練一個通用的特徵提取器,然後基於meta-learning學習class code生成器,最後通過結合特徵和class code進行目標定位。
論文的主要貢獻如下:
在增量式少樣本目標檢測問題上,論文首次嘗試減少常規需要深度訓練的目標檢測算法對大量訓練數據進行批量訓練的依賴提出無限制CentreNet(OpeN-ended Centre nEt, ONCE),將CentreNet適應到增量式少樣本場景中在目標檢測和服裝關鍵點檢測實驗上,ONCE都比目前的方法要好
方法論
增量式少樣本目標檢測算法(Incremental Few-Shot Detection, iFSD)的目標為獲得能夠僅使用少量樣本就能進行增量式學習新類別學習器,將目標類別分為足夠樣本的基礎類別和少量樣本的新類別,分別用於系統初始化和增量式學習,注意在增量式學習期間不能使用基類數據。
目標檢測架構
常規的目標檢測算法由於兩階段設計以及softmax分類器的使用,導致很難動態直接加入新類別。論文選擇了CentreNet作為基礎模型,出於以下兩點考慮:
高效的one-stage目標檢測pipeline類別獨立的建模範式(per-class heatmap centroid prediction),新類能夠以插件形式接入
CentreNet將目標檢測定義為point-attribute的回歸問題,結構如圖1,將中心點和空間大小(寬和高)作為回歸目標,每個目標使用2D heatmap進行表示,而heatmap是類間獨立的。
Incremental Few-shot Object Detection
由於CentreNet是批量學習的模型,不適合iFSD場景,在其結構上引入meta-learning的思想,即文中的無限制CentreNet(OpeN-ended Centre nEt , ONCE)
Model formulation:ONCE將CtreNet分為兩部分:(i) 通用的特徵提取器,將輸入轉化為3D特徵圖 (ii) 目標定位器,包含用於將特徵圖成heatmap的類特定編碼(class code)。為了脫離批量學習的形式,類特定編碼(class code)由meta-learned network(class code generator)根據輔助集生成Meta-Training: Learning a Few-Shot Detector,為了充分壓榨基礎類別的作用,將ONCE訓練分別兩個串行的階段。第一階段訓練類不可知的特徵提取器,第二階段固定特徵提取器,聯合訓練目標定位器和meta-network,meta-network根據給定的輔助集生成類特定編碼,目標定位器則結合類編碼和特徵進行少樣本目標定位學習Meta-Testing: Enrolling New Classes,給予包含少量標註圖片的新類別輔助集,直接使用學習到的特徵提取器、目標定位器和meta-network。先通過meta-network生成類特定編碼參數化目標定位器,然後直接進行圖2 stage I對應的推理,不需要模型再訓練。
Stage I: Feature Extractor Learning階段一主要訓練ONCE的類可知特徵提取器,使用正常的CentreNet訓練方法進行完整訓練,目標定位器不用於階段二,但後面基類的class code會復用階段一的。
對於訓練圖片,提取類可知特徵圖, ,目標定位器結合學習到的與類相關的卷積核(class code)得到類的中心點heatmapYk。
對於目標的定位,先確定局部峰值,局部峰值為bbox輸出位置,要求大於等於所有臨界像素,最終的bbox結果如公式2,為中心偏移,為尺寸預測,結合offset code和size code獲得,具體方法與上面的類別heatmap獲取類似,使用回歸損失對的參數和的參數進行優化。
Stage II: Class Code Generator Learning在階段一學習到的參數僅包含基類,是固定的。為了適應iFSD場景,使用class code生成器來根據樣本圖片在線生成新類別的class code。生成器的訓練使用matching network的meta-learning策略,從基類中採樣大量的少樣本訓練數據子集,模擬測試時的場景。
定義單個iFSD任務為在基類上平均採樣獲得的類標籤集,標籤集僅包含一個或幾個類別,將標籤集中的每個類的圖片隨機分為輔助集合(meta-training)和查詢集(meta-valudation)Q。
在推理階段,輔助集用於為每個類別生成class code
基於class code集合,按照公式4和公式5在查詢圖片上進行目標檢測,通過最小化在上的平均預測誤差來優化class code生成器的參數,誤差計算使用損失,為GT heatmap。
Meta Testing: Enrolling New Classes給予少量的標註樣本,新類別的meta-testing流程如下:
使用少量的標註樣本通過公式3獲取class code通過公式4獲取測試圖片的特徵通過公式1定位新類別的目標實例找到heatmap中局部最大位置,通過公式2獲取所有bbox的坐標進行輸出對於基類的測試在第一步直接使用階段一學習到class code,通過上述步驟,可以簡單且獨立地將新類別加入到iFSD中。
Architecture
特徵提取器使用主幹為ResNet的Simple baseline,結構如上圖,包含encoder-decoder對。首先提取圖片的低解析度的3D特徵圖,然後通過可學習的上採樣卷積輸出高解析度的特徵圖。class code生成器使用相同的encoder主幹,在進行階段二之前,生成器的權重拷貝特徵提取器的權重進行初始化,最終通過global average pooling輸出256維的class code 。鑑於輔助集的數量可能各不一樣,最終的class code為類所有輔助圖片的class code的平均值。
實驗
Non-Incremental Few-Shot Detection
將樣本少的新類(10 shot)和樣本充足的基類(all)混在一起進行訓練,結果如表1。
Incremental Few-Shot Object Detection
Experimental setupsame-dataset實驗,將COCO的60類作為基類,其餘20類作為新類別。對於meta-training,從基類隨機採樣32個任務,每個任務包含3個類別,每個類別包含5個標註的bbox。對於meta-testing,使用全部20個新類別,每個類別隨機採樣幾張圖片,有兩種測試方法,一種是一次性加入全部類別(incremental batch learning),另一種是逐步加入類別(continuous incremental learning)
cross-dataset實驗,跟上述類似,只是meta-training的基類從COCO採樣,meta-testing的新類從VOC採樣。
Object detection on COCO
ONCE的性能比其它方法優異,儘管在新類別上的準確率普遍較低,但ONCE算是一種不錯的快速解決增量式少樣本檢測的方法。
在逐漸增加類別的場景下,ONCE表現穩定,而其它方法的表現則逐漸變差。
Object detection transfer from COCO to VOC
與same-dataset的結果相差不大。
Few-Shot Fashion Landmark Detection
結論
在研究了現實的增量少樣本目標檢測問題後,論文提出了一個不錯的快速解決算法ONCE,能夠以推理的形式將新類別進行註冊而不需要再使用舊的訓練數據,相比其它類似的方法更有效。
這裡需要注意的是,論文的方法與主流的少樣本目標檢測算法不太一樣,目前很多性能高的方法大都基於比對的方式進行有目標的檢測,並且需要大量的數據進行模型訓練再應用到新類中,要檢測所有的類別則需要全部進行比對,十分耗時。而論文是增量式添加類別到模型,以常規的推理形式直接檢測,十分高效且數據量需求十分低,雖然最終的性能有點難看,但是這個思路還是可以有很多工作可以補的。
論文地址:https://arxiv.org/abs/2003.04668
【end】
有獎徵文
了解這4個重點,帶你探索未來將如何設計智能系統和機器人!IJCAI 2020滅霸式拒稿,AI審稿是否更公平?64% 的企業未實現智能化,5 成公司算法工程師團隊規模小於 10人,AI 工程師的機遇在哪裡?Docker 開發環境的滑坡比特幣Logo背後有哪些歷史及象徵意義?Logo 上的「B」為什麼會向右傾斜?抗住百萬人直播、被聯合國推薦,起底飛書技術演進之路!你點的每個「在看」,我都認真當成了AI