目標跟蹤---ECO: Efficient Convolution Operators for Tracking

ECO是cvpr2017中基於CCOT的提速版本,效果也比CCOT好,仍然是

Martin Danelljan在濾波這個方向做的工作。ccot的計算複雜度高,比如cnn特徵中卷積層濾波器維度就設置為默認的96,512,顯然參數過多會造成過擬合現象。下圖是eco和ccot的對比,可以看出ccot過擬合了。

相對於CCOT,ECO做了以下改進:

1,因式分解的操作,將hog,cn,cnn的特徵維度,通過projection_matrix這個矩陣,將高緯度feature轉換到壓縮後的維度,eco這裡hog壓縮到10,cn壓縮到3,cnn第1,5卷積層濾波器維度壓縮到16,64。這樣,訓練參數減少,既降低複雜度,又防止過擬合。下圖,ccot那些高維度存在的濾波器很多沒有響應,eco大部分有效響應。

2.在訓練樣本上,之前ccot是每幀都獲取樣本,但是隨著時間推移,很多樣本之間存在冗餘,因為前一幀後一幀之間的樣本相似度一般很大,eco採取了計算樣本之間的差異,設定存儲的最大樣本數是50,隨著時間推移,計算和存儲樣本之間的差異,差異小的將替換掉,保證存儲的50個樣本的多樣性,提高了速度,減少計算複雜度。

3.模型更新策略的改進,對於濾波方法,模型更新影響沒有很大,這裡dm用每隔5幀更新一次,反而效果比之前幀幀更新要好,更新的時候是一次一個mini -batch訓練樣本,而不是單個一個。

由於CCOT是直接將所有維度feature map直接計算最後所有維度相加得分,參數很多,每次更新800,000個參數,在線更新,複雜度高,速度慢。所以降低維度有必要。其次,在追蹤過程中,每幀都截取樣本存儲起來,且限定最大存儲樣本的話,一般採取的措施是拋棄之前的樣本,留取最新的樣本,這種做法會導致模型更加傾向於最近幀的樣本,而忘記了old samples,這樣很容易模型漂移,於是eco在給定最大存儲樣本數情況下,選取具有一定差異的樣本,保證多樣性。

相對於CCOT,O(N_{CG}DMar{K})  。ECO的計算複雜度降低為了O(N_{CG}CMar{K})  .這個複雜度的由來:N_{CG} 是共軛迭代的次數,優化問題(更新過程)用的Gauss-Newton和Conjugate Gradient共軛迭代方法;D是J(x)插入feature map的維度,也是對應濾波器的維度;ar{K} 代表每個維度濾波器傅立葉級數運算元的平均計算量;M是最大樣本數。根據複雜度表達式,可以從這幾方面考慮降低計算量:

1.用Factorized Convolution Operator降低D:

D是Factorized Convolution Operator因式分解中的參數,D是沒有降低維度前的濾波器維度,降低之後是C.因式分解方法如下,以計算的最後置信度推導,p_{f}  是濾波器的組合矩陣,和已經映射到空間連續域的J_{x} 特徵卷積(文章題目的卷積運算元就是這裡)。p_{f}  分解為{p_{d,c}} f^{c}就是D維度向C轉化,有個矩陣映射關係。

S_{pf}=P_{f}ast J{x}=sum_{c,d}^{}{p_{d,c}} f^{c}ast J_{d}left{ {x^{d}}     
ight} =fast P^{T} Jleft{ x 
ight}

相對應的LOSS也變為了下面這個,比之前加 入了因式分解矩陣P的正則化。

E(f,P)=|left|  Jleft{ x 
ight}Par{f} -ar{y}  
ight| |2+||sum_{c=1}^{C}{ar{w}*ar{f}  } ||+lambda ||P||^{2}

解決這個最優化問題時,為了參數尺度靈活性,作者用的Gauss-Newton和Conjugate Gradient共軛迭代方法去優化.簡單介紹一下Gauss-Newton,用到泰勒展開的第一級,ar{f}  _{i,Delta } Delta P^{*} 來逐步迭代。

2.考慮Generative Sample Space Model降低M:

作者用壓縮模型,在CCOT中,更新過程的樣本是這樣產生的:每幀都有樣本,用alpha _{j} 來學習控制樣本,如果樣本數到達最大樣本數m,權重alpha _{j} 最小的樣本將會替代。eco中則是採用Gaussian Mixture Model(GMM)高斯混合模型來構造樣本集。之前的最大樣本數M變成現在的components數目L,L=M/8。構造高斯混合模型時,概率分布:p(x)=sum_{l=1}^{L}{pi_{l}N(x;mu _{l};I )}

L是compents總數目,pi_{l}是compent的權重,mu_{l}是高斯分布的均值。如果components總數達到最大,拋棄權重低於閾值的component,如果沒有,就合併現有的component k 和component l 成一個component n,合併方法如下:

pi_{n}=pi_{k}+pi_{l}

mu_{n}=frac{pi_{k}mu_{k}+pi_{l}mu_{l}}{pi_{k}+pi_{l}}

權重相加,均值平均。

3.從N_{CG}來降低計算量:

這個是更新過程的改變,很簡單,其實就是每隔6幀更新一次,減少共軛迭代次數。

這三個方面就是ECO可以加速並且達到好的效果的策略。

具體實驗中,components數目設為L=50,比之前的M=400 減小5倍。

更新濾波器參數N_{S}=6 。迭代次數還是和CCOT保持一致為N_{CG}=5.

最後Eco可以達到vot2016 EAO 0.375水平,速度GPU 6fps(CNN)。

很強勢,很厲害。。


推薦閱讀:

【目標跟蹤】使用深度特徵來跟蹤目標
簡單易懂的講解深度學習(入門系列之陸)
人臉識別中的活體檢測
VOT2017結果分析及CFWCR經驗分享

TAG:跟踪 | 滤波算法 | 计算机视觉 |