1. 程式人生 > >cvpr2017:branchout——基於CNN的在線集成跟蹤

cvpr2017:branchout——基於CNN的在線集成跟蹤

... png 耗時 not -c weight mini 目的 out

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,技術分享

表示xi對應的二進制標簽,其中(1,0)表示positive,(0,1)表示negative。

框架如下圖:

技術分享

從圖中可以看出,輸入圖片,大小為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)。

cvpr2017:branchout——基於CNN的在線集成跟蹤