cvpr2017-branchout——基於CNN的線上整合跟蹤
1、引言
2017年CVPR上有不少關於跟蹤的paper。CF方面最引人矚目的應該是ECO了,CNN方面也有一些新的進展。Branchout是一個基於CNN用bagging整合的線上跟蹤方法。
contributions:
(1)提出了一種簡單有效的正則化技術branchout,減少了整合學習方法在模型多樣化和訓練樣本中噪聲標籤較少的限制。
(2)網路中每個獨立的branch有不同數量的FC,並保留了多層級特徵。
(3)驗證了方法的有效性,並在沒有pretraining的情況下也取得了start-of-the-art的成果。
2、框架
notations:
D = { (xi,yi)| i = 1,2,...,M }為更新模型的訓練樣本集。其中xi表示image patch,
框架如下圖:
從圖中可以看出,輸入圖片,大小為3*107*107,之後經過三層卷積層,得到512*3*3的特徵圖,之後進入branches。每個獨立的branch中有多個fc層,論文在實驗階段採用了1層或兩層。之後進入average pool,最後再經過fc6層,計算softmax得到最後的結果。
當訓練網路時,用伯努利分佈來選擇一個branches子集,假設有K個branches,則有下面的分佈 ak ~ Bernoulli(Pk),其中ak表示第k個branch被選中更新的二進位制結果,Pk是分佈的一個引數。Loss如下:
Mb是mni-batch的size,F是softmax輸出的結果。梯度是直接對theta求導。只對FC層更新,而且只更新一到兩個FC層。理由是很難在有限訓練樣本的情況下線上學習兩個以上的全連線層。
對第一幀首先標出正負樣本,也就是前景和後景,之後開始跟蹤第一幀標出的目標。從上一幀中獲取目標中心的xi高斯分佈,改變維度,計算所有branches的softmax結果。目標狀態由下面的公式得到:
為了提高定位的精確度,採用bounding box regression,用1000個訓練樣例訓練 (at the first frame only),意思是由第一幀進行資料增大得到的?然後應用model到所有後續幀。因為學習目標框很耗時,而且因為沒有gt,使用其他幀學習到的特徵不一定可靠。
另外一個線上學習的要素是如何構造訓練樣例。由於沒有gt,只能依靠預測得到的目標位置。從第t幀得到的正樣本要包含IoU值高於0.7的bounding box。
更新策略:(1)每10幀整個model更新一次,(2)當xt*的值小於0.5時更新一次。
演算法流程如下:
尋找每幀的目標時,提取256個樣本用於觀察。如果連續10幀從CNN獲得的分類結果低於閾值就擴大搜索空間。當模型需要更新時,基於ak(Pk = 0.5)選擇一個branches子集。每個mini-batch的大小是128.包含36個正樣本和92個負樣本。線上學習時,學習率設定為0.0001,迭代30次,momentum為0.9,weight decay為0.0005。
3、實驗結果
與MDNet相比:
在VOT2015資料集上結果:
C-COT的結果出乎意料的不太好,不過ECO在robustness、EAO、EFO這些指標領先,在acc上SSAT最高(VOT2016)。