論文提出增量式少樣本目標檢測算法ONCE,與主流的少樣本目標檢測算法不太一樣,目前很多性能高的方法大都基於比對的方式進行有目標的檢測,並且需要大量的數據進行模型訓練再應用到新類中,要檢測所有的類別則需要全部進行比對,十分耗時。而論文是增量式添加類別到模型,以常規的推理形式直接檢測,十分高效且數據需求十分低,雖然最終的性能有點難看,但是這個思路還是可以有很多工作可以補的
來源:曉飛的算法工程筆記 公眾號
論文: Incremental Few-Shot Object Detection
Introduction
論文研究了非常有意義的增量式少樣本目標檢測場景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都比目前的方法要好
Methodology
增量式少樣本目標檢測算法(Incremental Few-Shot Detection, iFSD)的目標為獲得能夠僅使用少量樣本就能進行增量式學習新類別學習器,將目標類別分為足夠樣本的基礎類別和少量樣本的新類別,分別用於系統初始化和增量式學習,注意在增量式學習期間不能使用基類數據
Object Detection Architecture
常規的目標檢測算法由於兩階段設計以及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的類可知特征提取器$f$,使用正常的CentreNet訓練方法進行完整訓練,目標定位器$h$不用於階段二,但后面基類的class code會復用階段一的
對於訓練圖片$I\in \mathcal{R}^{h\times w\times 3}$,提取類可知特征圖$m=f(I)$, $m\in \mathcal{R}^{\frac{h}{r}\times \frac{w}{r}\times c}$,目標定位器結合學習到的與類$k$相關的卷積核(class code)$c_k\in \mathcal{R}^{1\times 1\times c}$得到類$k$的中心點heatmap$Y_k$
對於目標的定位,先確定局部峰值$\mathcal{P}k={(x_i,y_i)}{i=1}^n$,局部峰值為bbox輸出位置,要求大於等於所有臨界像素,最終的bbox結果如公式2,$(\delta x_i,\delta y_i)=O_{x_i, y_i}\in \mathcal{R}^{1\times 1\times 2}$為中心偏移,$(h_i,w_i)=S_{x_i,y_i}\in \mathcal{R}^{1\times 1\times 2}$為尺寸預測,結合offset code和size code獲得,具體方法與上面的類別heatmap獲取類似,使用$L_1$回歸損失對$f$的參數和$h$的參數$c$進行優化
-
Stage II: Class Code Generator Learning
在階段一學習到的參數$c$僅包含基類,是固定的。為了適應iFSD場景,使用class code生成器$g$來根據樣本圖片在線生成新類別的class code。生成器的訓練使用matching network的meta-learning策略,從基類中采樣大量的少樣本訓練數據子集,模擬測試時的場景
定義單個iFSD任務$T$為在基類上平均采樣獲得的類標簽集$L$,標簽集僅包含一個或幾個類別,將標簽集中的每個類的圖片隨機分為輔助集合(meta-training)$S$和查詢集(meta-valudation)$Q$
在推理階段,輔助集$S$用於為每個類別$k$生成class code
基於class code集合${\hat{c}_k}$,按照公式4和公式5在查詢圖片$I$上進行目標檢測,通過最小化在$Q$上的平均預測誤差來優化class code生成器的參數,誤差計算使用$L_1$損失$|\hat{Y}-Z|$,$Z$為GT heatmap
-
Meta Testing: Enrolling New Classes
給予少量的標注樣本,新類別的meta-testing流程如下:
- 使用少量的標注樣本通過公式3獲取class code
- 通過公式4獲取測試圖片的特征
- 通過公式1定位新類別的目標實例
- 找到heatmap中局部最大位置,通過公式2獲取所有bbox的坐標進行輸出
對於基類的測試在第一步直接使用階段一學習到class code,通過上述步驟,可以簡單且獨立地將新類別加入到iFSD中
-
Architecture
特征提取器$f$使用主干為ResNet的Simple baseline,結構如上圖,包含encoder-decoder對。首先提取圖片$I$的低分辨率的3D特征圖,然后通過可學習的上采樣卷積輸出高分辨率的特征圖$f(I)$。class code生成器使用相同的encoder主干,在進行階段二之前,生成器的權重拷貝特征提取器的權重進行初始化,最終通過global average pooling輸出256維的class code $c_k$。鑒於輔助集的數量可能各不一樣,最終的class code為類所有輔助圖片$I_i^{k,s}$的class code的平均值
Experiments
Non-Incremental Few-Shot Detection
將樣本少的新類(10 shot)和樣本充足的基類(all)混在一起進行訓練,結果如表1
Incremental Few-Shot Object Detection
-
Experimental setup
same-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
Conclusion
在研究了現實的增量少樣本目標檢測問題后,論文提出了一個不錯的快速解決算法ONCE,能夠以推理的形式將新類別進行注冊而不需要再使用舊的訓練數據,相比其它類似的方法更有效
這里需要注意的是,論文的方法與主流的少樣本目標檢測算法不太一樣,目前很多性能高的方法大都基於比對的方式進行有目標的檢測,並且需要大量的數據進行模型訓練再應用到新類中,要檢測所有的類別則需要全部進行比對,十分耗時。而論文是增量式添加類別到模型,以常規的推理形式直接檢測,十分高效且數據需求十分低,雖然最終的性能有點難看,但是這個思路還是可以有很多工作可以補的
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】