論文提出增量式少樣本目標檢測演算法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,能夠以推理的形式將新類別進行註冊而不需要再使用舊的訓練資料,相比其它類似的方法更有效
這裡需要注意的是,論文的方法與主流的少樣本目標檢測演算法不太一樣,目前很多效能高的方法大都基於比對的方式進行有目標的檢測,並且需要大量的資料進行模型訓練再應用到新類中,要檢測所有的類別則需要全部進行比對,十分耗時。而論文是增量式新增類別到模型,以常規的推理形式直接檢測,十分高效且資料需求十分低,雖然最終的效能有點難看,但是這個思路還是可以有很多工作可以補的
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】