Kernelized Correlation Filters (KCF) Tracking算法

Correlation Filter-based Tracking Frame

Discriminative Correlation Filter(DCF),即判別相關濾波器,是Visual Tracking領域應用最爲廣泛的跟蹤算法。其核心思想是:由於每一幀中被良好檢測的目標都提供了描述該目標的信息,因此完全可以通過用每一幀中的目標區域作爲訓練樣本來進行模型的訓練,具體做法是通過已經跟蹤的若干幀中目標的位置,提取出我們關心的特徵,訓練出一個濾波器模板,對於新幀中可能的目標區域,提取出該區域特徵,與濾波器模板作相關,根據相關值得到在新幀中目標的預測位置,並在以該位置爲中心提取出特徵,反過來進一步訓練濾波器模型,並重覆上述步驟進行後續的目標跟蹤與模型訓練。通過這種方法,就實現了模型的在線訓練與目標的實時跟蹤。

Adaptive Correlation Filters

Minimum Output Sum of Squared Error (MOSSE)

Minimum Output Sum of Squared Error (MOSSE) developed by Bolme et al.的提出極大地改善了相關濾波器跟蹤算法的performance,在提升精度的同時降低了求解的複雜度。

t個目標區域樣本分別爲f1,f2,,ft ,通過濾波器ht ,期望輸出gi (通常爲二維高斯函數,峯值位於目標區域中心),最小化均方誤差:

ε=j=1t||htfjgi||2=1MNj=1t||H¯¯¯tFjGj||2

Ht 求導,令導數爲0,得:
Ht=tj=1G¯¯¯jFjtj=1F¯¯¯jFj

對於t+1幀,假設其在第t幀的目標區域內提取得到特徵圖z,那麼計算ht 與z的相關值

y=F1{H¯¯¯tZ}

y的最大值的位置即被認爲是t+1幀中目標區域的中心點.

我們保持目標區域尺寸不變,將其中心點進行移動相應位置,就得到了在新幀中的目標區域。對該區域進行特徵提取,然後加入到訓練集中對模型進行更新得到ht+1 後,即可進行下一幀
中的目標檢測了。

在實際的tracking過程中,一般使用如下方法來更新模型:

A1B1AtBtHt=====G¯¯¯1F1F¯¯¯1F1(1η)At1+ηG¯¯¯tFt(1η)Bt1+ηF¯¯¯tFtAtBt

其中η 爲學習率。

缺點

  • 只使用了灰度作爲特徵,模型所使用的特徵維數太低,難以很好地反映目標的特性。
  • 只估算了目標區域中心點在幀間的平移運動,而沒有考慮目標在運動過程中反映在畫面上的尺度變化,在目標尺度發生改變時難以適應。

Discriminative Scale Space Tracking Filter (DSST)

對MOSSE的改進:

  • 使用fHoG替代灰度(通常fHoG爲31dims,而DSST實際使用28dims)
  • 考慮目標尺度變化

不考慮尺度變化
只考慮單個目標,設特徵維數爲d,則特徵圖可記作fl,l=1,2,,d 。濾波器應和特徵圖匹配,誤差函數:

ε=||l=1dhlflg||2+λl=1d||hl||2

引入λ 項是爲了控制濾波器頻域參數求解過程中的避免除0,另一方面也可以控制濾波器參數變化範圍,λ 越小,濾波器參數變化範圍越大。

對上式做傅里葉變換,求導,令導數爲0,得:

Hl=G¯¯¯Fldk=1Fk¯¯¯¯Fk+λ

在實際操作中,可以用下式更新模型:

AltBtHlt===(1η)Alt1+ηG¯¯¯tFlt(1η)Bt1+ηk=1dFkt¯¯¯¯FktAltBt+λ

新幀預測:

y=F1{dl=1Alt¯¯¯¯ZlBt+λ}


考慮尺度變化
濾波器和特徵圖由d×M×N 改爲d×M×N×S ,S = num of scales,即構造金字塔。這導致複雜度增大爲O(dMNS×logMNS)

改進思路,兩組濾波器模板:

  • d個大小爲M×N 的二維位置濾波器
  • d×M×N 個大小爲S的一維尺度濾波器

位置濾波器的訓練方法同前,而尺度濾波器則是在確定了目標區域中心後,對於尺度因子s,提取出其對應區域的d個M×N 的二維矩陣後,將其拉成一條向量,作爲尺度因子s下的d×M×N 維特徵,構成尺度濾波器。

完整算法

  • 估算位置
    • 在幀It 中根據前一幀的位置pt1 和尺度因子st1 劃定區域提取特徵zlocat
    • zlocat 與位置濾波器Alocat1,Blocat1 做相關得到ylocat
    • ylocat 最大值點設爲當前幀的目標中心pt
  • 估算尺度
    • 在幀It 中根據位置pt 和前一幀的尺度因子st1 劃定區域,縮放後得到S個區域,提取特徵zscalet
    • 將徵zscalet 與尺度濾波器Ascalet1,Bscalet1 做相關得到yscalet
    • yscalet 最大值點設爲當前幀的目標尺度st
  • 更新模型
    • 在幀It 中根據估算出的位置pt 和尺度st 劃定區域提取特徵,得到flocatfscalet
    • 更新位置濾波器得到Alocat,Blocat
    • 更新尺度濾波器得到Ascalet,Bscalet

複雜度O(dMN×logMN+dMNS×logS)

缺點

  • 難以適應大幅度形變、遮擋等
  • 循環卷積邊緣效應
    這裏寫圖片描述
    SRDCF對此做出了改進。

Kernelized Correlation Filters

The overall performance may be limited because the MOSSE filters can be viewed as simple linear classifiers. By taking advantage of kernel trick, correlation filters are supposed to be more powerful.

Building Blocks

Linear Regression

考慮:

minwt(f(xi)yi)2+λ||w||2

λ 是一個控制過擬合的參數,則w 的解爲:
w=(XTX+λI)1XTy

在複數域中,上是中的轉置(T)替換爲共軛轉置(H)。

Circulant Matrices

僅考慮一維單通道信號x 的情形,二維可以類推。x 的輪換矩陣爲:

X=C(x)=x1xnxn1x2x2x1xnx3x3x2x1x4xnxn1xn2x1

輪換矩陣X 有一個重要性質:
X=F diag(x^) FH

其中F 是DFT矩陣(constant),x^=F(x)

Putting it all together

考慮XHX

XHX==F diag(x^) FHFdiag(x^)FHF diag(x^) diag(x^) FH

定義 爲element-wise product,則上式可表示爲:
XHX=F diag(x^x^) FH

Linear regression的解的傅里葉變換可以表示爲:
w^=diag(x^x^x^+λ)y^=x^y^x^x^+λ

Non-linear Regression

Kernel Trick

將線性問題轉換爲ϕ(x) 空間中的非線性問題可以使用核函數,即:

  • 將解w 表示爲ϕ(x) 的線性組合:
    w=iαiϕ(xi)

    求解w 的過程變爲對偶空間(Dual Space)中求解α 的過程。
  • 將點積表示爲:
    ϕT(x)ϕ(x)=κ(x,x)

核函數不需要給出高維空間中的向量的具體表達式,就可以實現從低維到高維的映射。

Fast Kernel Regression

核函數迴歸在對偶空間的理論解:

α=(K+λI)1y

其中Ki,j=κ(xi,xj)

定理:Kernel Matrix K 輪迴的條件
給定輪換矩陣C(x) ,如果核函數對任意的置換陣M 均滿足κ(x,x)=κ(Mx,Mx) ,那麼相應的核矩陣K 也是輪迴的。

滿足上述定理的核函數有:

  • Ridial Basis Function kernels - e.g., Gaussian.
  • Dot-product kernels - e.g., linear, polynomial.
  • Additive kernels - e.g., intersection, χ2 and Hellinger kernels.
  • Exponentiated additive kernels.

這時可以將α 在頻域的解表示爲:

α^=y^k^xx+λ

其中kxx 是kernel matrix K=C(kxx) 的第一行,其物理意義是
kxxi=κ(x,Pi1x)

的傅里葉變換。

Fast Detection

我們希望評估的image patch爲z ,則kernel matirx:

Kz=C(kxz)

其中kxzx, z 的kernel correlation。
迴歸函數:
f(z)=(Kz)Tα

它等價於:
f^(z)=k^xzα^

Fast Kernel Correlation

Radial Basis Function and Gaussian Kernels

RBF kernels通常具有下列形式:

kxxi=κ(x,Pi1x)=h(||xPi1x||2)=h(||x||2+||x||22xTPi1x)

由於置換陣不影響x 的模,因此可以寫成:
kxx=h(||x||2+||x||22F1(x^x^))

特別地,高斯核:
kxx=exp(1σ2(||x||2+||x||22F1(x^x^)))

Dot-product and Polynomial Kernels

To be continued.

Multiple Channels

A dotproduct can be computed by simply summing the individual dot-products for each channel. By linearity of the DFT, this allows us to sum the result for each channel in the Fourier domain.

以高斯核爲例:

kxx=exp(1σ2(||x||2+||x||22F1(cx^cx^c)))

Algorithms

實際使用中,Tracking模板的更新可以用學習率控制,參考Danelljan, Martin, et al. “Adaptive color attributes for real-time visual tracking.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2014.

αp=pj=1βjy^ju^jxpj=1βju^jx(u^jx+λ)

分子和分母αp=ApNApD 分別按下述策略更新:
ApNApDx^p===(1γ)Ap1N+γy^pu^px(1γ)Ap1D+γu^px(u^px+λ)(1γ)x^p1+γx^p

Experiments

Benchmark: Y. Wu, J. Lim, and M. H. Yang, “Online object tracking: A benchmark,” in CVPR, 2013.

  • KCF=Gaussian Kernel
  • DCF=Linear Kernel

Detection-Tracking System

The Combinition of Detection & Tracking

Target Lost

定義:Peak to Sidelobe Ratio (PSR)
設濾波器模板與目標區域特徵作相關後得到響應爲G,其最大值爲Gmax ,以Gmax 的位置中心11×11 的區域內響應平均值爲μ ,方差爲σ2 ,則PSR=Gmaxμσ2

一般而言,當目標區域和模型較爲相符時,PSR>20 ;而PSR<10 時基本可以認爲目標已經丟失。

問題:
仍然缺少自動學習PSR 閾值的相關算法。

Re-detection

當目標丟失、重新detect時,對於得到的所有候選區域,用原先的tracking模板與候選區域逐個作相關,取響應值最大值最大的候選區域,若候選區域的PSR大於跟蹤時的PSR閾值,則可以認爲原先跟蹤的目標區域已經重新出現。

Anti-deformation

KCF略優於DSST。

問題:
可以通過調整核函數的參數,提高Anti-deformation的能力,但是會造成跟蹤到錯誤的目標,通過Colorname Distance解決?

Scale Estimation

KCF只能實現位置追蹤,不能估計尺度變化,目前有兩種解決方案:

  • 使用DSST Scale Estimator(Danelljan, Martin, et al. “Accurate scale estimation for robust visual tracking.” British Machine Vision Conference, Nottingham, 2014.)。
  • 構建一個三層的金字塔,分別是scale變大、不變、變小,和tracking模板做相關,取最大的Response峯值(或PSR)對應的scale。

後者在scale快速變化時會出現斜率過載,但速度快於DSST Scale Estimator (33 scale proposals)。

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