Correlation Filter in Visual Tracking系列一

最近在看visual tracking部分的內容,看到別人總結的很不錯,做一次搬運工:

鏈接: http://www.cnblogs.com/hanhuili/p/4266990.html

Visual Object Tracking using Adaptive Correlation Filters 一文發表於2010的CVPR上,是筆者所知的第一篇將correlation filter引入tracking領域內的文章,文中所提的Minimum Output Sum of Squared Error(MOSSE),可以說是後來CSK、STC、Color Attributes等tracker的鼻祖。Correlation Filter(以下簡稱CF)源於信號處理領域,後被運用於圖像分類等方面。Correlation包含Cross-correlation和Auto-correlation,在這裏我們一般指的就是Cross-correlation。首先看看維基百科上Cross-correlation的定義,假設有fg兩個函數(信號),其cross-correlationfg定義爲

(fg)(τ)=deff(t)g(t+τ)dt(1)(fg)(n)=deff[m]g(m+n)

  其中f表示f的複共軛,correlation的直觀解釋就是衡量兩個函數在某個時刻τ的相似程度,如下圖所示。考慮一個最簡單的例子,假設fg的形狀一樣,但是相差了若干個時刻,那麼fg取得最大值的時候一定是fg對齊的時候(沒誰比自己和自己更像了吧…),但因爲兩者有時間差,所以要取得最大值,就要把其中一個在時間軸上進行平移,所以g(t+τ)就代表把g平移τ個時刻。其實Convolution和Cross-correlation在圖像處理的書裏一般都會提到,這裏就不多敘述了。


  而Correlation Filter應用於tracking方面最樸素的想法就是:相關是衡量兩個信號相似值的度量,如果兩個信號越相似,那麼其相關值就越高,而在tracking的應用裏,就是需要設計一個濾波模板,使得當它作用在跟蹤目標上時,得到的響應最大,如下圖所示:

 

  CF方法最大的優勢在於其速度之快,是任何其他跟蹤方法都無法比擬的,如本篇所寫的MOSSE,其速度可以到669幀每秒,把跟蹤算法從real time 級別提升到了high speed級別;而且其跟蹤準確率高,在wuyi他們的online benchmark上,帶核函數的CSK方法可以得到73%左右的準確率。有着如此明顯的優點,相信此類方法將會成爲跟蹤領域內繼sparse方法的又一重要分支。

   好,言歸正傳,我們先來介紹CF中的元老,MOSSE。按照我們剛剛的思路,我們需要尋找一個濾波模板,使得它在目標上的響應最大,那麼寫成公式就是如(2)所示

        g=h f(2)                                                            

  其中g表示響應輸出,f表示輸入圖像,h表示我們的濾波模板。 g可以爲任意形狀的響應輸出,在上圖的示意圖裏我們就假設它爲gaussian形狀。那麼顯然,我們只要求出h就可以了。這樣做看起來很簡單,但爲何CF類方法的速度如此之快呢?就是因爲在求解等一系列操作中,都利用了快速傅里葉變換FFT。由卷積定理的correlation版本可知,函數互相關的傅里葉變換等於函數傅里葉變換的乘積,即如(2)式所示:

        Fh f=(Fh)Ff(3)                                      

  其中F表示傅里葉變換,表示點乘。那麼假設f所含的像素個數爲n,而已知FFT的時間開銷爲O(nlogn),因此式(3)的計算開銷也爲O(nlogn)!遠比其他跟蹤算法要快!明白這一點後,本篇論文的精華你已經掌握了。剩下的就是如何計算h了,爲了表達的方便起見,我們設Ff=F(Fh)=HFg=G,那麼我們就有

        H=GF(4)                                                              

  但是在實際應用中,因爲目標的外觀變換等因素影響,我們需要同時考慮目標的m個圖像作爲參考,以提高模型的魯棒性,那麼就有如(5)的目標函數了:

        minHi=1m|HFiGi|2(5)

  求解式(5)並不困難,而且根據卷積定理,在頻率域的操作都是元素級別的,因此我們可以分別求解H中的每一個元素Hw,v,那麼(5)就可以變爲:

         minHw,vi=1m|Hw,vFw,v,iGw,v,i|2(6)  

   然後對(6)式求導並使其爲0即可求解,但要注意的是,論文中特別指出在複數域的求導與在實數域的有一點區別:

Hw,vi=1m(Hw,vFw,v,iGw,v,i)(Hw,v  Fw,v,iGw,v,i)=0Hw,vi=1mHw,vFw,v,iHw,vFw,v,iHw,vFw,v,iGw,v,iHw,vFw,v,iGw,v,i+Gw,v,iGw,v,i=0i=1mFw,v,iHw,vFw,v,iFw,v,iGw,v,i=0Hw,v=i=1mFw,v,iGw,v,ii=1mFw,v,iFw,v,i(7)

  按以上方式處理所有H中的所有元素,得到:

        H=i=1mFiG*ii=1mFiF*i(8)                                                                                          

  就可以開始跟蹤了。在跟蹤的過程中,我們只需要把以上模板與當前幀的圖像作相關操作,將得到的響應結果中最大的那點對應座標作爲目標在當前幀位置就可以了(相當於在2維上平移我們的模板)。然後,模板的更新方式可以按照如下的方式進行:

        Ht=(1η)Ht1+ηH(t)(9)                                            

  H(t)表示在第t幀求得的濾波模板,η爲一經驗常數。

  本文的內容大體就這樣了,剩下的就是在(8)上面進行一些修改,比如在分母裏引進一個ε作爲正則化的參數,或者分別求Hi然後作平均等,都是一些小的技巧。總得來說,MOSSE方法開創了CF在tracking方面的先河,而在後面的一系列文章裏,我們將介紹一系列用概率論、嶺迴歸等理論對其作進一步提升的文章。


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