一、Visual Tracking領域
最近因為團隊業務需要,涉及實時視頻流中Object Tracking技術,所以讀了一些Paper和前人寫的一些綜述性質的文章。
VOT領域目前要有三大技術分支:
1、圖像特征+分類器的傳統方法:如HOG+SVM等
2、CF(Correlation Filter):如DCF、KCF、SRDCF等
3、基于DL的End2End模型:如MDNet、TCNN等
MileStone:
1、~2013:傳統特征+分類
2、2013~2015:CF類模型出現
3、2015~:CNN 的end2end模型出現
目前DL類模型在效果上顯著超過CF類,但性能到目前為止還是落后于CF類“幾個世紀”。因此,目前效果和性能兼具的實用性Tracking模型還是CF類,如SRDCF。傳統方法無論在效果or性能上在VOT競賽中已經被遠遠落下。
二、MDNet
MDNet是在2015年VOT競賽的冠軍,這篇文章其實2015年底就出來了。MDNet是Korea的POSTECH這個團隊做的,與TCNN和CNN-SVM同一出處。
2015年底的時候,Visual Tracking領域繼Object Detection之后,陸續將CNN引入,但是大部分算法只是用在大量數據上訓練好的(pretrain)的一些網絡如VGG作為特征提取器,結果證明確實用了CNN深度特征對跟蹤結果是有較大的改進的。那么其實自己設計一個網絡來做跟蹤是大家都能夠想到的思路,Korea的POSTECH這個團隊就做了MDNet。
為什么直到2015年CNN才在目前跟蹤Tracking領域看到呢?
1、很難收集海量的訓練數據;
2、CF類的模型在效果和性能上,都取得了不錯的效果
3、在ImageNet上預訓練的深度特征方法,效果有提升但不明顯
三、MDNet Motivation
1、Prerain問題。在大規模數據上預訓練CNN做深度特征提取,顯然不如直接在視頻跟蹤數據上直接訓練跟蹤模型的CNN更合理。對于跟蹤目標,它們的類型雖然可能不同,但應該存在某些共性包括邊緣梯度等,是需要網絡去學習的。
2、Multi-Domain問題。直接用跟蹤數據來訓練CNN是比較困難的,統一個Object,在一個視頻幀序列中是目標,在另外一個序列中可能就是北京。另外,每個序列中目標的差異很大,還有一些額外的挑戰如background clutter、occlusions、illumination variations等。
3、網絡大小問題。在Detection、Classification、Segmentation中的CNN網絡都很大,因為Label的規模都很大。然而在Tracking中,Label只有兩類:目標 or 背景。模型太大會導致在數據在空間上太稀疏,也會導致計算耗時。
四、Multi-Domain NetWork(MDNet)
1、Network Architecture
輸入層:RGB3通道107??107大小的Bounding Box(目標框/候選框)
卷積層:VGG-M模型改造了Filter大小,保證conv-3輸出3??3的feature map
全連接層:fc4/fc5是兩個512的FC層分別含有Relu和Dropout
Domain-specific Layers:fc6是最終的二分類層,一共K個,對應K個Domain(其實就是K個標注的視頻),每次訓練的時候只有對應該視頻的fc6被使用,前面的層都是共享的。
2、Learning Algorithm
CNN采用SGD優化,為了學到不同視頻中目標的共性,采用Domain-specific的訓練方式:假設用K個視頻來做訓練,一共做N次循環,在第k個迭代,只用來自kmodK的視頻幀序列的正負樣本進行訓練,同時fc6中只有對應該視頻的branch才會被使用。
整個過程重復,直到網絡收斂或者預設的總迭代數達到。通過這個Offline的學習過程,domain-independent 信息在前面幾個共享層中將被有效的學習和建模。
五、Online Tracking And Learning using MDNet
將Offline 學習到的multi-domain模型,用于Tracking時,fc6層的K個分支,會用一個新的唯一的全連接層fc6替換掉。之后online fine-tune fc4~6 三個全連接層。
1、Tracking Control 和 Network Online Update
Tracking 策略比較簡單,主要兩個環節:選擇候選目標框集合+判斷每個目標框是目標的概率。最終最大概率的候選框即為預測的目標框。
Network Online update是相對略復雜的,分為Long-term 和 Short-term 更新,主要是為了從robustness 和 adaptiveness兩個角度權衡。
2、Bounding Box Regresssion
因為CNN深度特征的高度抽象性,以及模型篩選Positive樣本框中使用了Data augmentation 策略,導致最終預測最大概率的目標框不能準確的包含target。為了提升accuracy,借鑒在detection中的bbox regression 分支,將conv3的feature基礎上,通過linear regression對候選框做一個微調。做regression的基礎是候選框的打分>0.5。
Bbox regression僅在第一幀做一次訓練,一個原因是太耗時,另外一個是過度的調整也存在風險。
3、Tracking 和 Update的過程描述
核心環節包含:
1)訓練 Bbox regression model
按照高斯分布采樣10000個回歸樣本框,計算樣本框和ground truth的IoU,僅保留IoU>0.6的樣本,并從中隨機1000個作為最終樣本。計算樣本對應的conv3 特征,將512個3*3 feature map拉伸和拼接成一個向量,訓練線性回歸模型。
2)生成Positive 和Negative 樣本框
【Offline multi-domain模型的樣本】
每一幀生成50正樣本,200負樣本,要求正樣本IoU>=0.7,負樣本IoU<=0.5。
從全部序列包含的幀集合中隨機8幀,構成一個mini-batch,其中包含400(850)個正樣本,然后從中隨機32個作為mini-batch中最終的正樣本;將包含的1024(應該是8200?)個負樣本,送到CNN中并選擇打分最高的96個(Hard Negative Mining策略)作為mini-batch最終的負樣本。
【Online Learning模型的樣本】
每一幀生成50正樣本,200負樣本,要求正樣本IoU>=0.7,負樣本IoU<=0.3。正樣本最大集合500,負樣本最大集合5000。其他Hard Negative Mining 策略同Offine模型。
3)生成候選框
為每一幀生成候選目標框,按照Gaussian分布采樣出256個候選框。候選框用(x,y,s)表示。高斯分布mean是前一幀目標框的位置,covariance是diagonal matrix diag(0.09r^2, 0.09r^2, 0.25),其中r是前一幀目標框寬和高的均值。初始目標的scale乘以1.05^s作為每個候選框的scale(不是通過采樣得到?)
4)其他訓練細節
A)multi-domain 用K個序列訓練,迭代100K次,conv層的lr=0.0001,fc層lr=0.001。
B)Online Learning的第一幀,fc層迭代30次,fc4-5的lr=0.0001,fc6的lr=0.001。在后續的幀中,每次update模型時訓練迭代10次,lr是第一幀的3倍。
C)Momentum 和 weight decay分別是0.9和0.0005
六、實驗結論
1、OTB50和OTB100
2、VOT2014
3、結論
總結一下MDNet效果好的原因:
用了CNN特征,并且是專門為了tracking設計的網絡,用tracking的數據集做了訓練
有做在線的微調fine-tune,這一點雖然使得速度慢,但是對結果很重要
Candidates的采樣同時也考慮到了尺度,使得對尺度變化的視頻也相對魯棒
Hard negative mining和bounding box regression這兩個策略的使用,使得結果更加精確