目標跟蹤---ECO: Efficient Convolution Operators for Tracking
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,。ECO的計算複雜度降低為了.這個複雜度的由來:是共軛迭代的次數,優化問題(更新過程)用的Gauss-Newton和Conjugate Gradient共軛迭代方法;D是J(x)插入feature map的維度,也是對應濾波器的維度;代表每個維度濾波器傅立葉級數運算元的平均計算量;M是最大樣本數。根據複雜度表達式,可以從這幾方面考慮降低計算量:
1.用Factorized Convolution Operator降低D:
D是Factorized Convolution Operator因式分解中的參數,D是沒有降低維度前的濾波器維度,降低之後是C.因式分解方法如下,以計算的最後置信度推導,是濾波器的組合矩陣,和已經映射到空間連續域的特徵卷積(文章題目的卷積運算元就是這裡)。分解為就是D維度向C轉化,有個矩陣映射關係。
相對應的LOSS也變為了下面這個,比之前加 入了因式分解矩陣P的正則化。
解決這個最優化問題時,為了參數尺度靈活性,作者用的Gauss-Newton和Conjugate Gradient共軛迭代方法去優化.簡單介紹一下Gauss-Newton,用到泰勒展開的第一級,和來逐步迭代。
2.考慮Generative Sample Space Model降低M:
作者用壓縮模型,在CCOT中,更新過程的樣本是這樣產生的:每幀都有樣本,用來學習控制樣本,如果樣本數到達最大樣本數m,權重最小的樣本將會替代。eco中則是採用Gaussian Mixture Model(GMM)高斯混合模型來構造樣本集。之前的最大樣本數M變成現在的components數目L,L=M/8。構造高斯混合模型時,概率分布:
L是compents總數目,是compent的權重,是高斯分布的均值。如果components總數達到最大,拋棄權重低於閾值的component,如果沒有,就合併現有的component k 和component l 成一個component n,合併方法如下:
權重相加,均值平均。
3.從來降低計算量:
這個是更新過程的改變,很簡單,其實就是每隔6幀更新一次,減少共軛迭代次數。
這三個方面就是ECO可以加速並且達到好的效果的策略。
具體實驗中,components數目設為L=50,比之前的M=400 減小5倍。
更新濾波器參數=6 。迭代次數還是和CCOT保持一致為=5.
最後Eco可以達到vot2016 EAO 0.375水平,速度GPU 6fps(CNN)。
很強勢,很厲害。。
推薦閱讀:
※【目標跟蹤】使用深度特徵來跟蹤目標
※簡單易懂的講解深度學習(入門系列之陸)
※人臉識別中的活體檢測
※VOT2017結果分析及CFWCR經驗分享