原創文章,轉載註明哦~C-COT是繼KCF後相關濾波演算法的又一大突破,不得不說Martin的數學功底實在太強了!

C-COT相比於KCF演算法,使用了深度神經網路VGG-net提取特徵,通過三次樣條函數進行插值處理,將不同解析度的特徵圖通過插值操作擴展到了同一週期的連續空間域,再應用Hessian矩陣可以求得亞像素精度的目標位置。確定插值方程之後,還解決了在連續空間域進行訓練的問題。

個人思考:Martin大神的思路很清晰,針對跟蹤過程中對於目標表觀模型的建立,我們自然是希望模型越精確越好,富含目標的信息越豐富越好。可是最簡單的來說,HOG特徵是基於cell和block的直方圖特徵(描述輪廓信息),而HOG和顏色空間的直方圖明顯不是一個解析度的特徵,傳統的KCF或者DCF演算法無法將不同解析度的特徵通道進行融合。Martin大神巧妙的將不同解析度的特徵圖通過插值方法,拓展到了週期的連續空間域,使得他們擁有相同的計算週期,這樣我們就可以很容易的實現多解析度特徵的融合計算。而且這樣得到的置信響應圖也會是連續的,這也使得演算法可以實現亞像素精度的定位。

1、運算元

M在論文中首先定義了復值函數g對應的 L^{2}(T) 空間,其中g是週期為T的函數,L^{2}(T) 是一個希爾伯特空間。定義了一下兩種運算元,第一個其實就是傅裏葉係數的求解公式,第二個就是週期卷積的公式。

2、多解析度插值處理

很明顯,對於不同池化層的特徵圖他們具有不同的解析度,通常淺層特徵富含圖像的輪廓和顏色以及結構信息,深層特徵富含語義和高級信息。

分析一維情況:對於一個樣本 x_j ,假設具有D個特徵通道,比如有10個卷積層描述一個目標,每個通道的解析度我們可以表示為 N_{d} ,我們可以用 x^{d}_{j}[n](nsubseteq[0,N_d-1]) 表達每一個特徵值。為了實現連續操作,引入插值模型,將離散空間 R^{N_d} 映射為[0,T)的特徵連續空間。定義內插運算元 J_d

進行以下插值運算,可以將不同解析度的特徵連續化,並且連續特徵的週期相同:

對於上面的圖像插值公式做簡單分析:

想想對一個連續週期函數的採樣操作,我們在時域上乘一個採樣函數,相當於在頻域將原函數和採樣函數的傅裏葉變化進行卷積,也就是將原函數的傅裏葉變化週期化,當符合採樣定理的時候我們可以通過以下的方式將從採樣函數中恢復原函數:

這個恢複函數在時域中的形式:

那麼恢復後的信號可以表示為:

可以看出這是一個離散序列和一個連續函數的線性卷積,這樣的話,用離散信號重構連續信號可以描述為一種線性卷積的操作。因此,我們可以把插值看作為離散函數g(u)和某一連續插值核函數做卷積的過程,內插運算元 J_d同樣就是這種形式下的插值運算元。由於Sinc(x)函數的無限性和其衰減所帶來的振鈴效應,在實際應用中,我們並不使用Sinc(x)作為其插值核函數。因此,實際應用中常常使用Sinc函數的截斷版本或Sinc函數的近似函數作為插值核函數。三次多項式插值一種常用的近似於Sinc截斷版本的卷積核函數,其卷積核函數是由三次多項式組成:

與Sinc函數相反,三次多項式插值卷積核函數取值範圍比較小,因此很方便計算。由於當x>=2的時候,其權重值為0,因此,在插值計算的時候只考慮一下四點即可:

有了上述的知識,再理解C-COT中的內插運算元 J_d就簡單了,具體效果:

和KCF中的週期拓撲一樣,週期拓撲也被應用到這裡的特徵圖上。

今天先寫到這裡。


接著寫:

3、卷積濾波器的訓練

有了上述連續的特徵圖,並且其為範圍是0到T的連續函數,我們可以將目標跟蹤的任務轉換為一個機器學習問題,利用濾波器將樣本x映射成一個定義為0到T的連續置信函數, S_{f}left{ x 
ight} ,我們訓練的目的就是得到一系列卷積濾波器 f=(f^1,f^2...f^D)in L^2(T) ,他們的定義公式如下:

這裡的S_{f}left{ x 
ight} f=(f^1,f^2...f^D)in L^2(T)J_d都是定義在連續空間 L^2(T) 上的週期信號。那麼我們就可以通過最小化以下泛函來求解濾波器:

這個公式和SRDCF的泛函是一樣的,都加入瞭解決邊界效應的w懲罰因子,只不過這裡的w也是定義在連續空間上的,具體效果如下:

上式中 y_j 是我們事先根據目標設定好的標籤函數,同樣是連續的。接下來對於上式的求解纔是體現Martin牛b的地方,我也推導了好幾天才搞懂其中的原理,逐步對上式進行分析:

首先將連續特徵信號變換到頻域裏,因為這裡的信號全部是週期連續的,所以他們的頻域傅裏葉級數的對應值是離散非週期的,利用傅裏葉級數的性質得到:

注意這裡 X^d[k]	ilde{b}_d[k] 實際上表示的是點乘(注意!),X^d是樣本特徵的DFT只有 N_d 維。

利用以下性質:

那麼,置信響應圖的傅裏葉級數:

注意這裡 	ilde{f}_d[k]X^d[k]	ilde{b}_d[k] 實際上表示的是點乘(注意!),作者也在原文中說了,f的級數是無窮維的,我們只是用有限子空間的維數 2K^d+1 對無限空間進行表示,於是可以將 	ilde{f}^d 表示成:

當然2K^d+1越大,f的模型也就越精確,可是也更加浪費計算空間,為了便於計算,我們令K^d=N_d/2向下取整,這樣的話	ilde{f}_d[k]X^d[k]	ilde{b}_d[k]的向量化後就變成了2K^d+1維了。

令:

那麼對於	ilde{f}_d.X^d.	ilde{b}_d這個向量(注意,這是一個向量!),我們將其2K^d+1 的維數擴展到2K+1,上下都補0就可以了。

利用非常熟悉的帕瑟瓦爾定理:

將目標函數轉換到頻域進行求解的具體過程如下,複雜的才開始:

將計算過程矩陣化:

其中:

對應上文的向量化過程。

W_d 就是託普利茲矩陣,他可以將離散卷積計算轉換成矩陣相乘。

先寫到這,另外這裡的有些計算引用了這位大神的文章rockking:視覺跟蹤(Visual Tracking)論文解讀之相關濾波(Correlation Filter)篇(2)C-COT放上鏈接,尊重原作。


接著寫,最後一部分了:

到這裡,其實約束函數已經非常簡單了,接下來再次將它向量化,得到:

對上式求導得零,即可得到極值點:

也就是文章中最後的公式:

4、期望置信度和插值函數,即 y_j b_d 的定義方式

5、跟蹤框架

(1)定位過程:

在空間離散點進行網格搜索,得到一個初始化值,然後利用牛頓迭代法和Hessian矩陣進行最值迭代。

(2)跟蹤流程:

1、從預訓練好的VGG網路中提取出多解析度特徵圖;

2、每幀中提取單個(一個)訓練樣本,從以目標位置為中心的圖像區域提取樣本,並將區域大小設置為目標框區域的25倍(程序是這樣設定的)。設置相應的權重為 alpha_j=(alpha_j-1)/(1-lambda) ,學習率參數 lambda=0.0075 ,然後將權重歸一化,即:

sum_{j}{alpha_j}=1

3、採用多尺度搜索策略(5個尺度 和 相對比例因子1.02),可以自適應目標尺度大小

4、最大化網格搜索後,進行 5 次牛頓迭代;

5、求解矩陣方程以訓練濾波器,採用共軛梯度法進行迭代,在第一幀中,使用100次迭代找到濾波器係數的初始估計,隨後的幀中,用當前的濾波器初始化CG(共軛梯度),每幀五次迭代就足夠。

以上部分內容參考這位大神blog.csdn.net/lixiaoton

推薦閱讀:

相關文章