論文全名:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking(MDNet)
論文摘自CVPR 2016,由Hyeonseob Nam、Bohyung Han撰寫。
摘要
訓練:(1)使用大量視頻訓練CNN;(2)網絡由共享層和域特定層(二分類)組成。通過迭代訓練網絡中的每個域,獲得共享層中的通用目標表示。
測試:(1)在一個視頻序列中,作者將預訓練CNN中的共享層與新的二分類層(在線更新)組合來構建新網絡。(2)對於在線更新,對之前目標位置周圍進行隨機採樣獲得候選窗,通過評估來跟蹤。
1 前言
挑戰:
具有完全不同特徵的視頻序列來學習一個統一的CNN算法表示。其中:(1)單個序列的目標類型不同;(2)算法受到序列中特定的變化:遮擋,變形,光照條件變化,運動模糊等;(3)相同類型的對象在一個序列中視爲目標,而在另一箇中可能就是背景。
作者提出:Multi-Domain Network(MDNet)
訓練:(1)每個序列作爲單獨的Domain(單獨訓練)
(2)在網絡的最後,有一個Domain-specific層(也用於共享學習)的分支進行二分類,
(3)共享從之前層中的所有序列信息用於學習,共享層在每次迭代中都會更新。
特點:MDNet與分類任務的網絡(AlexNet、VGG)相比,網絡層數很少。
測試:(1)刪掉在訓練階段中使用的二分類層的所有分支,構建新的分支計算其目標分數。
(2)在線微調共享層中的新的分類層和全連接層。
(3)對目標長期和短期變化進行建模,並且在學習過程中結合了難分樣本挖掘(hard negative mining)思想。
主要貢獻:
•訓練:提出了一個基於CNN的多領域學習框架,它將域無關的與Domain-specific域的信息分開,以有效地捕獲共享表示。
•測試:預訓練的CNN在序列的上下文中在線更新,並自適應地學習Domain-specific域的信息。
•評估:在OTB2015與VOT2014表現出色。
本文的其餘部分安排如下。我們首先回顧第2節中的相關工作,並在第3節討論我們用於視覺跟蹤的多領域學習方法。第4節描述了我們的在線學習和跟蹤算法,第5節展示了兩個跟蹤基準數據集中的實驗結果。
2.相關工作
2.1 跟蹤算法
(1)生成方法(生成目標外觀建模):稀疏表示,密度估計和增量子空間學習;
(2)判別方法(區分目標和背景建模):MIL,TLD檢測跟蹤學習,在線提升,結構化輸出SVM 等。
(3)相關濾波算法:MOSSE,KCF,DSST ,MUSTer 。
2.2 卷積神經網絡
(1)AlexNet:通過使用大規模數據集和高效的GPU實現訓練深度CNN;(2)R-CNN:將CNN應用於訓練數據稀缺的目標檢測任務。(3)CNN在跟蹤之前已經進行了離線訓練並且之後被修復。(4)DeepTrack提出了一種基於CNN池的在線學習方法,但缺乏訓練數據導致準確性不好。(5)最近的一些方法[39,20]在大規模數據集上預訓練CNN,但分類和跟蹤之間存在差異,該表示不是很有效。
作者提出的算法用大規模跟蹤數據來預訓練CNN,結果很好。
2.3 Multi-Domain學習
MDNet的預訓練CNN屬於Multi-domain學習:訓練數據源自多個域,且域信息被併入學習過程中。
3.MDNet訓練
本節描述了我們的CNN架構和多域學習方法,以獲得視覺跟蹤的與域無關的表示。
3.1 網絡架構
網絡架構如上圖所示:
輸入:107×107×3
架構:
三個卷積層(conv1-3) | 兩個全連接層(fc4-5) | 一個(K分支)全連接層(fc61-fc6K) |
與VGG-M架構 (data:ImageNet)相同 | 與ReLU相同,防止過擬合 | softmax交叉熵損失的二分類層 |
隱藏層(共享層) | Domain-specific層(區分目標與背景) |
特點:
(1)視覺跟蹤僅區分目標和背景兩個類,模型複雜性小。
(2)選擇的網絡層數較少,原因:隨着網絡的深入,空間信息會逐漸消失。
(3)視覺跟蹤中的目標通常很小,從而減小了網絡的深度。
(4)訓練和測試是在線進行的,當使用更大的網絡時,算法不太準確並且變得更慢。
3.2 學習算法
目標:在任意域中訓練Multi-domain CNN來消除對目標和背景變化
域的共同特徵:對照明變化、運動模糊、尺度變化的魯棒性等
實施方式(將與域無關的信息與Domain-specific層分離出):CNN由隨機梯度下降(SGD)方法訓練。(1)對於Domain-specific層,在第k次迭代中,由第(kmod K)序列的一小批量訓練樣本來更新全連接層網絡,直到網絡收斂或達到預定義的迭代數;(2)對於共享層,對與域無關的信息進行建模,獲得通用特徵表示。
4.MDNet測試
測試階段,將訓練階段的Domain-specific層(fc61-fc6K)替換爲單個層(fc6),在線調整共享層和Domain-specific層。
【1】模型更新:Long-term update(長時間收集的目標的正樣本)+Short-term update(檢測到潛在目標跟蹤失敗【目標被誤認爲背景】時使用短期的正樣本)。對於負樣本:用Short-term時的負樣本。注意:通過目標外觀變化速度執行更新。
【2】實施過程:在之前目標周圍採N個候選:,用網絡來評估,得到正分數和負分數。找到x*滿足:(1)。
【3】提取負樣本:在測試時,檢測出目標的方法爲:難分負樣本挖掘(hard negative mining)思想
實施方式:在小批量(包括正樣本與難分負樣本)選取中,採用難分負樣本挖掘思想,其中,樣本是由測試中的負樣本產生,並選擇中分數最大的作爲難分負樣本。
特點:能有效地識別關鍵的負樣本,而無需明確地運行檢測器來提取誤報。
【4】邊界框迴歸:問題:基於CNN的特徵的高抽象+數據增強策略(在目標周圍採取多個正樣本),導致網絡有時無法找到目標
辦法:用檢測算法的邊界框迴歸方法,提高目標定位精度。
實施方式:(1)通過第一幀目標位置附近樣本的conv3特徵,訓練一個簡單的線性迴歸模型使定位精確;(2)在隨後的幀中,如果通過迴歸模型計算出的目標可靠(比如,其中x*滿足式(1)),則調整目標位置。
特點:(1)該回歸器僅在第一幀中訓練;(2)該回歸器與RCNN具有相同的參數(1000個訓練樣本)與方法。
【5】實施細節:
我們的跟蹤算法的整個過程在算法1中給出,設與分別爲短期和長期的幀大小。
初始化:(表示第j層的權重)爲MDNet預訓練的結果,爲隨機初始化的結果。
跟蹤測試階段:固定不變,在線更新
具體細節:
(1)生成目標候選:從前一幀中選擇服從高斯分佈的個樣本:,對應的協方差是對角陣,其中r是幀中目標的寬高的平均。每個候選框都將以倍的尺度放大。
(2)訓練數據:
訓練:在每個幀有50個正樣本(IOU0.7)和200個負樣本(IOU0.5);
測試:對第一幀有個正樣本和個負樣本,對後續每一幀個正樣本(IOU0.7)和個負樣本(IOU0.3)。
(3)網絡:
訓練:對於K個序列,網絡需要進行100K次迭代訓練,其中層的學習率爲0.0001,層的學習率爲0.001。
測試:【1】初始幀:全連接層進行30次迭代訓練,的學習率爲0.0001,層的學習率爲0.001。【2】後續幀:全連接層10次迭代,的學習率爲0.0003,層的學習率爲0.003。動量(0.9)和權重衰減(0.0005)。
5.實驗
評估數據集:OTB2015和VOT2014
平臺:MatConvNet工具箱,八核2.20GHz Intel Xeon E5-2660,一個NVIDIA Tesla K20m GPU
速度:約爲1fps
5.1 OTB2015
評估指標:中心位置誤差和邊界框重疊率。
評估標準:OPE
算法比較:MDNet(訓練集:VOT2013、2014、2015的58個序列),MUSTER,CNN-SVM,MEEM,TGPR,DSST,KCF,SCM和Struck
5.2 VOT2014
測試數據:VOT2014的25個序列
評估指標:精度(平均IOU)與魯棒性(跟蹤失敗次數)
算法比較:MDNet(訓練集:OTB100的89個序列),MUSTER,SAMF,MEEM,DSST,KCF,DGT和PLT_14。