編者按:目標檢測與目標跟蹤這兩個任務有着密切的聯繫。針對目標跟蹤任務,微軟亞洲研究院提出了一種通過目標檢測技術來解決的新視角,採用簡潔、統一而高效的“目標檢測+小樣本學習”框架,在多個主流數據集上均取得了傑出性能。

目標跟蹤(Object tracking)與目標檢測(Object detection)是計算機視覺中兩個經典的基礎任務。跟蹤任務需要由用戶指定跟蹤目標,然後在視頻的每一幀中給出該目標所在的位置,通常由一系列的矩形邊界框表示。而檢測任務旨在定位圖片中某幾類物體的座標位置。對物體的檢測、識別和跟蹤能夠有效地幫助機器理解圖片視頻的內容,爲後續的進一步分析打下基礎。

圖1:目標檢測與目標跟蹤

跟蹤任務與檢測任務有着密切的關係。從輸入輸出的形式上來看,這兩個任務是極爲相似的。它們均以圖片(或者視頻幀)作爲模型的輸入,經過處理後,輸出一堆代表目標物體位置的矩形框。它們之間最大的區別體現在對“目標物體”的定義上。對於檢測任務來說,目標物體屬於預先定義好的某幾個類別,如圖1左圖所示;而對於跟蹤任務來說,目標物體指的是在第一幀中所指定的跟蹤個體,如圖1右圖所示。實際上,如果我們將每一個跟蹤的個體當成是獨立的一個類別的話,跟蹤任務甚至能被當成是一種特殊的檢測任務,稱爲個體檢測(Instance Detection)。

由於這種緊密的關係,近年來,許多目標檢測的技術同樣能在目標跟蹤領域大放異彩。例如檢測中的區域推薦網絡(RPN)模塊,就被雙路網絡跟蹤框架 SiamRPN 所借鑑;基於優化的 IoUNet 檢測模塊,也在 ATOM 等跟蹤框架中取得了非常驚豔的效果。這些成功的應用啓發我們:與其在跟蹤器中使用一些檢測器的模塊,我們能否直接將檢測器直接應用於目標跟蹤任務?

解決小樣本問題

用檢測器模型去解決跟蹤問題,遇到的最大問題是訓練數據不足。普通的檢測任務中,因爲檢測物體的類別是已知的,可以收集大量數據來訓練。例如 VOC、COCO 等檢測數據集,都有着上萬張圖片用於訓練。而如果我們將跟蹤視爲一個特殊的檢測任務,檢測物體的類別是由用戶在第一幀的時候所指定的。這意味着能夠用來訓練的數據僅僅只有少數幾張圖片。這給檢測器帶來了很大的障礙。

在深度學習中,解決訓練數據不足常用的一個技巧是“預訓練-微調”(Pretraining-finetune),即大數據集上面預訓練模型,然後在小數據集上去微調權重。但是,在訓練數據極其稀少的時候(僅有個位數的訓練圖片),這個技巧是無法奏效的。圖2展示了一個檢測模型預訓練過後,在單張訓練圖片上微調的過程:儘管訓練集上逐漸收斂,但是檢測器仍無法檢測出測試圖片中的物體。這反映出了“預訓練-微調”框架的泛化能力不足。

圖2:“預訓練-微調”框架的泛化能力不足

爲了解決訓練數據不足的問題,我們引入了“與模型無關的元學習”(Model-agnostic meta-learning, MAML)。這個算法是近年來比較主流的小樣本學習(few-shot learning)算法。它的核心思想是,學習一個好的模型初始化權重,使得模型能夠在極少量的數據上面做幾步更新就收斂到一個非常好的結果。

在大數據集上預訓練網絡權重的時候,MAML 算法採用了雙層優化(Bilevel optimization)的策略。在每一輪迭代中,我們將一組訓練樣本分爲支撐集(Support set)以及目標集(Target set)。檢測器模型先在支撐集上面去進行固定次數的梯度下降迭代(一般爲5步),再將更新過後的模型參數應用在目標集上,計算目標集上的誤差。整體流程如圖3所示。在支撐集上,固定次數的梯度下降過程稱爲裏層優化(Inner-level optimization);由目標集上的誤差去更新模型參數的過程,稱爲外層優化(Outer-level optimization)。與普通的 SGD 方法相比,MAML 算法並不要求找到一組參數,直接使得目標集上誤差最小;相反的,它希望找到一組參數,使其經過幾步梯度下降迭代之後,在目標集上誤差最小。這種雙層優化的方式,迫使檢測器能夠通過在支撐集上的訓練,泛化到目標集上。

圖3:算法流程

通過 MAML 算法訓練出來的初始化參數具有收斂快、泛化性能好的優點。圖4的可視化結果充分說明了這一點:僅僅經過1步梯度下降的更新,檢測器就能收斂到一個不錯的結果;更重要的是,它在測試圖片上仍然能夠工作得很好。

圖4:測試結果

訓練過程與實驗結果

解決了小樣本學習的問題,檢測器模型就能夠自然地應用在跟蹤任務上。

第一步,挑選一個目標檢測模型。MAML 算法對具體模型是沒有要求的,只需要滿足可用梯度下降更新的條件即可。

第二步,使用 MAML 算法,對該目標檢測模型進行預訓練,找到一組較好的初始化的參數。

第三步,每輸入一段視頻,根據用戶在第一幀上指定的跟蹤目標,構造訓練數據,並用這個訓練數據來訓練目標檢測模型。我們把這一步稱之爲域適應(Domain adaptation).

第四步,對於後續的每一幀圖片,用訓練好的檢測器去預測跟蹤目標的位置。

在實驗的過程中,我們選擇了 RetinaNet 和 FCOS 作爲目標檢測模型。它們分別是 Anchor-based 以及 Anchor-free 兩種類型檢測器的代表性工作。在 MAML 預訓練初始化參數的過程中,我們還加入了一些額外的技巧來輔助訓練。例如可學的學習率(Learnable learning rate)、多步梯度優化(Multi-step loss optimization)、梯度一階近似(First-order approximation)等等。這些技巧能夠有效地穩定訓練過程,提高模型的表達能力。感興趣的讀者可以參閱原始論文中的細節部分。

我們在實驗中驚訝地發現,通過這種簡單的方式將檢測器應用於目標跟蹤,已經能夠取得不錯的效果。在 OTB-100、VOT-18 等多個數據集上,MAML 預訓練的檢測器與普通 SGD 預訓練的檢測器(記爲 Baseline)進行了詳細的對比,結果如表1所示。在做 Domain adaptation 之前, Baseline 和 MAML 的性能都比較低,這是因爲此時還沒有學到任何跟目標物體相關的信息。經過 Domain adaptation 之後,baseline 的檢測器性能有了小幅度的改善,而用 MAML 預訓練的檢測器則遠遠優於 domain adaptation 之前的結果。這充分說明了元學習的有效性。

表1:MAML 預訓練的檢測器與 Baseline 的對比結果

在實驗中,我們還進一步探索了在線更新(online updating)策略的有效性。所謂在線更新,即利用之前跟蹤的結果,收集訓練數據,用來再次訓練檢測器。我們發現,通過在線更新的方式,能夠進一步地提升跟蹤的準確度。當然,正如表2所示,當在線更新檢測器的分類分支(cls)或者回歸分支(reg)的時候,均會帶來效率上的降低。

表2:在線更新策略有效性的驗證結果

我們將檢測器模型應用於跟蹤任務上,得到的準確率並不遜色於一些經過精心設計的跟蹤器。在多個主流數據集上,我們均取得了超過或者接近當時最好跟蹤器的性能。這些結果充分展示了“目標檢測+小樣本學習”這個框架的威力。

近年來,目標跟蹤技術的發展突飛猛進,在各大數據集的性能評測中有了長足的進步。一方面,目標檢測技術的進步給跟蹤器帶來了不小的幫助,許多目標檢測的優秀設計被應用到了跟蹤領域,使物體座標的預測更加精確,如 SiamRPN、SPM、SiamFC++ 等等。另一方面,不少工作深入研究瞭如何利用少量樣本去學習一個可靠的目標物體表徵,如 MDNet,MetaTracker,ATOM 等等。在這篇文章中,我們借鑑了這兩個方向的研究,提出了一個簡潔、統一而高效的框架“目標檢測+小樣本學習≈目標跟蹤”,希望能爲目標跟蹤的研究提供一個不一樣的視角。在這個框架下,還有許多問題仍值得探索,例如採用更好的小樣本學習算法、實例分割結合小樣本學習等等。我們也將在未來的工作進一步發掘這一框架的潛能,打造一個更好、更快的目標跟蹤算法。

更多技術細節以及代碼,請參考論文:

Tracking by Instance Detection: A Meta-Learning Approach

鏈接:https://arxiv.org/abs/2004.00830

相關文章