ECO: Efficient Convolution Operators for Tracking

轉載至 http://blog.csdn.net/zixiximm/article/details/54378397

Visual Tracking領域大牛(至少我認爲是這個領域的大牛)Martin Danelljan又出新作。繼C-COT之後又一刷新紀錄的作品。不管是從結果還是速度上都有提升,尤其是速度提升明顯。用傳統特徵HOG+CN的版本速度有60+FPS,用CNN+HOG+CN的速度有8FPS,從跟蹤效果來看,個人認爲可以算一個出色的作品。

C-COT是2016年ECCV的文章,下次有空再講。

ECO文章鏈接:https://arxiv.org/pdf/1611.09224.pdf

這篇文章的baseline是Martin Danelljan的另一篇文章,就是上面提到的C-COT。


1. Motivation

這篇文章的出發點其實就是提高時間效率和空間效率。近一兩年來,效果好的很多方法都是基於相關濾波來做的。最早用到相關濾波的是Bolme等人在2010年CVPR的MOSSE,速度非常快。在MOSSE之後,像KCF,DSST,CN,SRDCF,C-COT等等都是在相關濾波的基礎上做的。隨着特徵維度越來越高,算法越來越複雜,跟蹤效果雖然是在逐步提升,但是都是以犧牲跟蹤速度爲代價的。(Martin Danelljan在相關濾波這一系列方法上可謂是如魚得水啊,有非常多的成果,非常多!)

那麼Martin Danelljan(後面叫他DM好了)在相關濾波做跟蹤的算法上積累了豐富的經驗之後,分析了速度降低的三個最重要的因素:

(1) Model Size(模型大小)

也可以理解爲特徵的複雜度。比如說C-COT用了CNN+HOG+CN這樣非常全面的特徵組合,它每次更新模型的時候,需要更新的參數有800000個,速度當然很慢。實際上跟蹤問題中的訓練樣本非常少,這麼高的維度除了速度慢,還會引起過擬合(over-fitting)。

(2) Training Set Size(訓練集大小)

這裏所指的訓練集是指保存了每一幀的跟蹤結果的訓練集,也就是說,每一次進行model update的時候,要用在這一幀之前所有跟蹤到的樣本。那麼隨着視頻越來越長,這個訓練集就會越來越大。那麼一般的解決方案是保存比較新的樣本,丟棄老的樣本,具體策略每個方法都不一樣。這樣一來,模型還是容易過擬合。因爲當目標被遮擋或者丟失的時候,比較新的這些樣本本身就是錯的,那麼模型很容易有model drift,就是被背景或者錯誤的目標污染,導致跟蹤結果出錯。另外,樣本集的保存也會使得空間效率低下,增加計算負擔。

(3) Model Update

這個很顯然,模型如果每幀都更新,速度肯定比間歇更新要慢。我發現16年下半年開始,做tracking的人開始非常關注這個問題。而在此之前,很多方法基本都是每幀都更新的。另外每幀都更新也會有model drift問題,這個顯而易見不再贅述。


2. ECO Algorithm

好,那麼針對以上三個問題,DM分別給出了應對策略,從三方面進行改進。

2.1 Factorized Convolution Operator(因式分解的卷積操作)

先簡單介紹一下C-COT:

C-COT將特徵feature map通過插值轉換到連續的空間域了:


這裏就不具體介紹了,把(1) 式當成提取的特徵就行了,最後得到的特徵是J{x}。最後檢測目標的得分計算是:


(2)中的f就是每個維度的特徵。 那麼學習相關濾波器的目標函數是:


轉換到頻域是:


ECO在特徵提取上做了簡化。用了原來特徵的子集,從D維的特徵中選了其中的C維。C-COT是每個維度的特徵對應一個濾波器,D維的特徵就有D個濾波器,其實很多濾波器 的貢獻很小。如圖一所示,C-COT的大部分濾波器的能量很小。而ECO只選擇其中貢獻較多的C個濾波器,C<D,然後每一位特徵用這C個濾波器的線性組合來表示。這裏的C維如何選擇文中沒有具體說,我猜測是簡單的利用濾波器中大於某個閾值的元素個數來選擇。


圖一:濾波器對比


那麼新的檢測函數是:


(6)式中P是一個DxC的矩陣,每一行代表對一個維度的特徵對應的濾波器用所有C個濾波器的線性組合係數,也是一個未知數,需要在第一幀中進行學習,之後的跟蹤中保持不變就行。這是學習濾波器的目標函數與(4)有了一些變化,現在是這樣的:


在這個新的目標函數中,z=J{x},又在最後加了一項整定項,爲了約束P。(7)現在是一個非線性最小二乘問題,其中第一項的具有雙線性。因此DM把這個問題轉化爲一個矩陣的因式分解問題。用了Gauss-Newton和Conjugate Gradient來求解。具體的過程就不細講了,與理解文章沒有太大關係。


到此,第一個問題Model Size的解決就是這樣了,從D降到了C。相當於將特徵J{x} 換成了


2.2 Generative Sample Space Model

ECO簡化了訓練集,如圖二所示。


圖二:訓練集

圖二中下面一行是傳統的訓練集,每更新一幀就加一個進來,那麼連續的數幀後訓練集裏面的樣本都是高度相似的,即容易對最近的數幀樣本過擬合。上面一行是ECO的做法,ECO用了高斯混合模型(GMM)來生成不同的component,每一個component基本就對應一組比較相似的樣本,不同的component之間有較大的差異性。這樣就使得訓練集具有了多樣性。

通過樣本x和目標輸出y的聯合概率分佈p(x,y),將目標函數進一步完善爲:


(10)式是將(3)式的第一項換成了基於樣本的聯合概率分佈。(3)是(10)的一個特例。另外,由於目標輸出的y其實形狀都是一致的,是一個峯值在目標中心的高斯函數,只是峯值 的位置不一樣。那麼ECO將y都設置成一樣的,把峯值位置的平移量體現到x上,在頻域中可以簡單處理。那麼p(x,y)就簡化了,只需要計算p(x)就行了。這裏用GMM來建模:

,L表示component的個數,把之前的M個樣本減少爲L。

更新過程是這樣的:每次新來一個樣本,初始化一個component m,初始化,如果component的數量超過限制L,則丟棄一個權重最小的。否則,合併兩個最近的component k和l:


近似目標函數(10)爲:


(12)是把原來的M個樣本減少爲L個component的平均值。


在實際中,L設置爲M/8,再一次減少了計算量,即1中提到的第二點,訓練集大小。同時由於增加了樣本的多樣性,使得效果也有提升。


2.3 Model Update Strategy

ECO這裏的做法很簡單,就是簡單地規定每隔Ns幀更新一次。注意這裏的Ns只是對模型的更新,樣本的更新是每一幀都要做的。最後的實驗中,Ns設置爲6。


模型更新頻率降低,當然節約了時間,並且可以避免模型的漂移問題,一定程度上改進效果,但是也不可以把Ns取得太大,否則會使得模型跟不上目標的變化。


到此爲止,ECO針對1中的三個問題都提出瞭解決方案,從速度和效果上都有了改進。


3. Experiment

具體的參數設置就不介紹了,可以直接看文章。直接放效果了,做tracking的人應該都看得懂。不做tracking的人,反正一句話:都是第一名!

VOT2016


OTB100,Temple-color,UAV123


ECO通通第一,另外不用CNN的ECO-HC效果也很好,甚至比用CNN的DeepSRDCF還要好。用傳統特徵HOG+CN的版本速度有60+FPS,用CNN+HOG+CN的速度有8FPS。

總結一下ECO效果好的原因:

1. 特徵全面(CNN, HOG, CN),這個對結果的貢獻很高;

2. 相關濾波器經過篩選更具代表性(2.1做的),防止過擬合;

3. 訓練樣本具有多樣性(2.2做的),減少冗餘;

4. 非每幀更新模型,防止模型漂移;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章