Tracking算法:Discriminative Correlation Filter (DCF)

基本框架

Minimum Output Sum of Squared Error Filter (MOSSE)

t个目标区域样本分别为 f1,f2,,ft ,通过滤波器 ht ,期望输出 gi (通常为二维高斯函数,峰值位于目标区域中心),最小化均方误差:

Ht 求导,令导数为0,得:


对于t+1帧,假设其在第t帧的目标区域内提取得到特征图z,那么计算 ht 与z的相关值

y的最大值的位置即被认为是t+1帧中目标区域的中心点.
我们保持目标区域尺寸不变,将其中心点进行移动相应位置,就得到了在新帧中的目标区域。对该区域进行特征提取,然后加入到训练集中对模型进行更新得到 ht+1 后,即可进行下一帧
中的目标检测了。

在实际的tracking过程中,一般使用如下方法来更新模型:

其中 η 为学习率。

缺点

  • 只使用了灰度作为特征,模型所使用的特征维数太低,难以很好地反映目标的特性。
  • 只估算了目标区域中心点在帧间的平移运动,而没有考虑目标在运动过程中反映在画面上的尺度变化,在目标尺度发生改变时难以适应。

Discriminative Scale Space Tracking Filter (DSST)

对MOSSE的改进:

  • 使用fHoG替代灰度(通常fHoG为31dims,而DSST实际使用28dims)
  • 考虑目标尺度变化

不考虑尺度变化

设特征维数为d,则特征图可记作 fl,l=1,2,,d 。滤波器应和特征图匹配,误差函数:

引入 λ 项是为了控制滤波器频域参数求解过程中的除0,另一方面也可以控制滤波器参数变化范围, λ 越小,滤波器参数变化范围越大。
对上式做傅里叶变换,求导,令导数为0,得:

在实际操作中,可以用下式更新模型:

新帧预测:

考虑尺度变化

滤波器和特征图由 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 划定区域提取特征,得到 flocat fscalet
    • 更新位置滤波器得到 Alocat,Blocat
    • 更新尺度滤波器得到 Ascalet,Bscalet

复杂度 O(dMN×logMN+dMNS×logS)

缺点

  • 难以适应大幅度形变、遮挡等
  • 循环卷积边缘效应

    SRDCF对此做出了改进。

Spatially Regularized Discriminative Correlation Filter (SRDCF)

将滤波器模板参数主要集中在一个搜索区域中的目标区域(即中心附近),在目标区域以外的背景区域处滤波器模板参数应尽可能地小或者为0(示意图如下)。

定义新的误差函数形式:

其中 w 是我们指定的权重函数,由于我们希望hlt在目标区域尽可能大,在其他搜索区域尽可能小,因此 w 的取值应该在目标区域尽可能小,而在其他搜索区域尽可能大,如下图:

一般可取:

对误差函数做傅里叶变换(对于某个变量a a^ 表示 a 的傅里叶变换):

经过一系列变换:

其中,对于某个变量a a⃗  表示 a 向量化的结果。向量化的步骤是:

  • a原本为 M×N 的二维矩阵,经过傅里叶变换得到 a^

    • a^ 的每一列被依次连接起来,形成一个 MN×1 维的列向量 a⃗ 
    • 特别地:

      • f^ 向量化后,填充在一个 MN×MN 矩阵的对角线上,构成对角阵 D(f^)
      • w^ 向量化后,转置填充在矩阵 C(w^) 的第一行,接下来的每一行是前一行向右循环移动1位的结果

      (To be continued…)

  • 16
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值