【目標追蹤】Learning Multi-Domain Convolutional Neural Networks for Visual Tracking閱讀筆記
motivation
視頻跟蹤是計算機視覺的基礎性問題,大多數演算法基於生產式和判別式方法。生產式演算法那方法通過生產模式描述目標的特徵,然後在視頻序列中尋找最佳匹配的區域,比如典型的各種CF濾波。而判別式演算法建模並從背景中區分目標。
本文提出的MDNnet演算法,是VOT競賽中第一個使用CNN脫穎而出奪得VOT2015冠軍的演算法(相比ILSVRC2012的AlexNet晚3年),但是即使到VOT2017,相關濾波演算法也佔有絕對的優勢。
VOT2015的數據集:The dataset comprises 60 short sequences showing various objects in challenging backgrounds.
Architecture
下圖是MDNnet演算法的網路結構,但是沒有完整敘述。在training和test環境,每幀圖片在目標區域以多維高斯分布採樣N=256個候選區域,scale到107*107的尺寸,送入MDnet。
MDnet只有5層網路結構,前三層CNN卷積,後兩層fc全連接層,fc6有k個分支,對應k個視頻序列。k個分支中每個分支包含一個二分類網路和softmax crossentropy loss,用來判別目標和背景。對於每個序列,conv1,con2,con3,fc4,fc5是共享參數,只有fc6是單獨訓練。
作者提出的MDNet的網路參數和規模是小於AlexNet和VGG-Nets,作者認為對於視頻跟蹤:
1、視頻跟蹤主要用來區分背景和目標兩個類別,而如ImageNet等分類是1000個類別。
2、隨著網路加深,空間信息區域稀釋, CNN更低效率去預測目標區域。
3、因為目標區域在視頻跟蹤中比較小,網路加深後目標區域更難以檢測。
筆者認為,Visual Tracking標註的數據集很少,不考慮時間的問題,根本不可能用ResNet之類的網路來訓練,很容易過擬合。
Tracking Control and Network Update
MDNnet更新策略採用long-term和short-term兩種方式。 long-term在跟蹤的過程中,會保存歷史跟蹤到的目標作為正樣本。long-term對應歷史的100個樣本(先進先出),固定時間間隔做一次網路的更新(程序中設置為每8幀更新一次), short-term對應20個,在目標得分低於0.5進行更新。負樣本都是用short-term的方式收集的。另外在訓練中負樣本的生成用到了hard negative mining,就是讓負樣本越來越難分,從而使得網路的判別能力越來越強。
Hard Minibatch Mining
在訓練階段的每一次迭代中,一個mini-batch包含n個正樣本和p個困難負樣本。如何選擇困難負樣本?用模型測試M(M >> p)個負樣本,取top p個困難負樣本。 Bounding Box Regression 根據給定的第一幀,訓練一個線性回歸模型(使用目標附近的樣本的conv3特徵)。在接下來的序列幀中,使用訓練好的回歸模型在估計好的可靠的候選目標中調整目標位置。作者提到Bounding Box Regression使用R-CNN一樣的演算法。
Experiment
作者在OTB,VOT2014等數據集評測(當然還有VOT2015數據集),MDNet具有明顯的綜合優勢,一舉奪得VOT2015的冠軍。
Our algorithm is implemented in MATLAB using MatConvNet toolbox ,and runs at around 1 fps with eight cores of 2.20GHz Intel Xeon E5-2660 and an NVIDIA Tesla K20m GPU。
Conclusion
整個MDNnet離線訓練,在線訓練時只更新fc6層,在 OTB 和VOT2014取得state-of-art小。
作者的源程序是通過matalb實現,在Tesla K20m GPU上只有1fps的速度,實在是快不起來。眾所周知,fc層佔用太多資源,如果用FCN來實現,效率應該更高一些。
返回CV-Object Tracking目錄
返回CV總目錄
推薦閱讀:
※形象易懂講解演算法II——壓縮感知
※通過把演算法導論的偽代碼抄成自己喜歡的語言來學習使用演算法對大家來說是不是足夠容易?
※焦李成寫的深度學習、優化與識別這本書怎麼樣?
※怎樣才能贏得這個2048遊戲?有沒有必勝的策略?有沒有可能同時製造出兩個2048來?
TAG:深度学习DeepLearning | 计算机视觉 | 算法 |