Kernelized Correlation Filters (KCF) Tracking算法

来源:互联网 发布:反美颜的软件 编辑:程序博客网 时间:2024/06/05 06:51

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估计方法?
0 0
原创粉丝点击