https://blog.csdn.net/victoriaw/article/details/62416759

ASEF相关滤波器:

Average of Synthetic Exact Filters 
David S. Bolme, Bruce A. Draper, J. Ross Beveridge 
CVPR, 2009

相关滤波器可以用于物体定位。相关滤波器算法的思想是学习一个滤波器hh,然后和图像fifi进行卷积操作

 
  1. $$
  2. f(n) =
  3. \begin{cases}
  4. n/2, & \text{if $n$ is even} \\
  5. 3n+1, & \text{if $n$ is odd}
  6. \end{cases}
    $$
\( gi=fi∗hgi=fi∗h \)

得到相关信息图,图中值最大的点就是物体的位置。

训练数据中要提供图片对应的相关图gigi,怎么生成呢?最粗暴的办法就是把目标的中心位置设成1,其他为0。本文中作者将gg看作是以目标位置(xi,yi)(xi,yi)为中心的二维高斯分布:

 
gi(x,y)=e(x−xi)2+(y−yi)2σ2gi(x,y)=e(x−xi)2+(y−yi)2σ2

那么现在有了一组图片fifi及相关图gigi,怎么学习hh呢?

我们知道,空间上的卷积操作经过傅里叶变换在频域上就变成按元素相乘的操作(关于卷积)。所以对上式左右两边进行离散傅里叶变换DFT:

 
G(ω,ν)=F(ω,ν)⋅H∗(ω,ν)G(ω,ν)=F(ω,ν)⋅H∗(ω,ν)

这里不知道为什么是H的共轭??????? 
所以对每幅图片就有:

 
H∗i(ω,ν)=Gi(ω,ν)Fi(ω,ν)Hi∗(ω,ν)=Gi(ω,ν)Fi(ω,ν)

这里的除也是按元素相除。 
ASEF最终得到的滤波器为

 
H∗(ω,ν)=1N∑i=1NH∗i(ω,ν)=1N∑iGiFi(1)(1)H∗(ω,ν)=1N∑i=1NHi∗(ω,ν)=1N∑iGiFi
 
h(x,y)=1N∑i=1Nhi(x,y)h(x,y)=1N∑i=1Nhi(x,y)

MOSSE相关滤波器:

Visual objecting tracking using adaptive correlation filters 
David S. Bolme, J. Ross Beveridge, Bruce A. Draper, Yui Man Lui 
CVPR, 2010

这篇文章也出自ASEF的作者之手。本文作者针对的问题是目标跟踪,并且构造滤波器的方法和上文有所差别。 
对一幅图片,仍然有:

 
H∗i(ω,ν)=Gi(ω,ν)Fi(ω,ν)Hi∗(ω,ν)=Gi(ω,ν)Fi(ω,ν)

但是最终的滤波器不是采用平均,而是通过最小化误差平方和:

 
H=minH∑i|Fi⋅H∗−Gi|2H=minH∑i|Fi⋅H∗−Gi|2

怎么求解这个最优化问题?HH的每个元素都是独立的,所以可以单独求解:

 
Hων=minHων∑i|Fiων⋅H∗ων−Giων|2Hων=minHων∑i|Fiων⋅Hων∗−Giων|2

这个误差函数是凸函数,所以有一个最小值,那么可以令:

 
∂∂H∗ων∑i|Fiων⋅H∗ων−Giων|2=0∂∂Hων∗∑i|Fiων⋅Hων∗−Giων|2=0

于是:

 
∂∂H∗ων∑i(Fiων⋅H∗ων−Giων)(Fiων⋅H∗ων−Giων)∗=0∂∂Hων∗∑i(Fiων⋅Hων∗−Giων)(Fiων⋅Hων∗−Giων)∗=0

展开后得到:

 
∂∂H∗ων∑iFiωνF∗iωνHωνH∗ων−FiωνG∗iωνH∗ων−F∗iωνGiωνHων+GiωνG∗iων=0∂∂Hων∗∑iFiωνFiων∗HωνHων∗−FiωνGiων∗Hων∗−Fiων∗GiωνHων+GiωνGiων∗=0
 
∑iFiωνF∗iωνHων−FiωνG∗iων=0∑iFiωνFiων∗Hων−FiωνGiων∗=0
 
Hων=∑iFiωνG∗iων∑iFiωνF∗iωνHων=∑iFiωνGiων∗∑iFiωνFiων∗

于是有

 
H=∑iFi⋅G∗i∑iFi⋅F∗iH=∑iFi⋅Gi∗∑iFi⋅Fi∗
 
H∗=∑iGi⋅F∗i∑iFi⋅F∗i(2)(2)H∗=∑iGi⋅Fi∗∑iFi⋅Fi∗

上式用于在处理一个视频时对滤波器进行初始化,具体做法是对首帧图片,对跟踪窗口做仿射变换得到8个图片fifi,并得到对应的相关图片gigi。而在跟踪的时候,需要不断根据当前帧来调整滤波器,即在线更新:

 
H∗i=AiBi(3)(3)Hi∗=AiBi
 
Ai=ηGi⋅F∗i+(1−η)Ai−1Ai=ηGi⋅Fi∗+(1−η)Ai−1
 
Bi=ηFi⋅F∗i+(1−η)Bi−1Bi=ηFi⋅Fi∗+(1−η)Bi−1

本文取η=0.125η=0.125。训练和测试过程都要进行滤波器初始化和在线更新。

那么ASEF是否可以用在跟踪问题上呢?作者告诉你是可以滴。不同之处在于初始化使用的是公式(1),并且在线更新使用的是下面的公式:

 
H∗i=ηGiFi+(1−η)H∗i−1(4)

[转]计算机视觉之跟踪算法——相关滤波器Correlation Filter的更多相关文章

  1. 【目标跟踪】相关滤波算法之MOSSE

    简要 2010年David S. Bolme等人在CVPR上发表了<Visual Object Tracking using Adaptive Correlation Filters>一文 ...

  2. KCF跟踪算法 入门详解

    一.算法介绍 KCF全称为Kernel Correlation Filter 核相关滤波算法.是在2014年由Joao F. Henriques, Rui Caseiro, Pedro Martins ...

  3. 目标跟踪之相关滤波:CF及后续改进篇

    一. 何为相关滤波? Correlation Filter 最早应用于信号处理,用来描述两个信号之间的相关性,或者说相似性(有点像早期的概率密度),先来看定义: 对于两个数据 f 和 g,则两个信号的 ...

  4. 视觉目标跟踪算法——SRDCF算法解读

    首先看下MD大神2015年ICCV论文:Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Learning Spa ...

  5. Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解

    视频目标跟踪问题分析         视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...

  6. Real-Time Compressive Tracking,实时压缩感知跟踪算法解读

    这是Kaihua Zhang发表在ECCV2012的paper,文中提出了一种基于压缩感知(compressive sensing)的单目标跟踪算法,该算法利用满足压缩感知(compressive s ...

  7. 挑战目标跟踪算法极限,SiamRPN系列算法解读

    商汤科技智能视频团队首次开源其目标跟踪研究平台 PySOT.PySOT 包含了商汤科技 SiamRPN 系列算法,以及刚被 CVPR2019 收录为 Oral 的 SiamRPN++.此篇文章将解读目 ...

  8. 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍

    转自:http://blog.csdn.net/carson2005/article/details/7647500 TLD(Tracking-Learning-Detection)是英国萨里大学的一 ...

  9. TLD视觉跟踪算法(转)

    源:TLD视觉跟踪算法 TLD算法好牛逼一个,这里有个视频,是作者展示算法的效果,http://www.56.com/u83/v_NTk3Mzc1NTI.html.下面这个csdn博客里有人做的相关总 ...

随机推荐

  1. 二叉树 Java 实现 前序遍历 中序遍历 后序遍历 层级遍历 获取叶节点 宽度 ,高度,队列实现二叉树遍历 求二叉树的最大距离

    数据结构中一直对二叉树不是很了解,今天趁着这个时间整理一下 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显 ...

  2. 2018 桂林ccpc现场赛 总结

    Day 0 5个小时的火车,坐的昏昏欲睡.桂林站出来没有地铁,而是出租车排成长队依次上车,也算是某种意义上的地铁吧.到了酒店才发现学校那边又给我们换了,又拖着行李找新的酒店,途中路过一家餐馆,所有人都 ...

  3. hdu6438 Buy and Resell

    多少年不写题了... (我把每一天看作是一个商品,第i天是第i个商品) 一开始看了半天看出来一个性质:买的所有商品中最贵的不会比卖的所有商品中最便宜的贵,然后似乎没有什么用处.... 所以最后还是看题 ...

  4. C++模式学习------工厂模式

    工厂模式属于创建型模式,大致可以分为简单工厂模式.抽象工厂模式. 简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品. enum PTYPE { ProdA = , ProdB = ...

  5. java的break跳出多层循环

    记得大一的时候,语言学的不好,碰到了需要跳出双层循环的时候,就没有了办法.因为老师讲了goto然后说不要用goto...  自己就一直感觉这种跳出多层循环的想法是不可取的(好蠢) 下面用java代码的 ...

  6. Digits of Factorial LightOJ - 1045(数学题?)

    原文地址: https://blog.csdn.net/fenghoumilin/article/details/52293910 题意:求 n 的阶乘在 base 进制下的位数,这里有一个简单的方法 ...

  7. variant conversion error for variable v23

    excel数据导入到oracle数据库出现的问题 V23指的是excel列.,这列的数据长度超出或者类型与数据库表不一致导致的 解决方法,1.清空该列,再建个新列 2.用access  SQL查出长度 ...

  8. PHP 字符串数组按照拼音排序的问题

    拼音排序的规则: 字符串包括特殊字符.数字.英文字符.中文字符等等,排序结果要求,特殊字符排在第一梯队,将其按照首个字符ascii码表进行排序,数字字符排在第二梯队,将首个字符数字按照数字大小排序,英 ...

  9. 【BZOJ3675】【Apio2014】序列分割

    Description 传送门 Solution ​ 之前我也遇到过一次这种"两段之和乘积作为贡献"的问题:考虑把这一种\((\sum) *(\sum)\)的形式拆括号,就可以发现 ...

  10. 【IOI 2018】Highway 高速公路收费

    这是一道极好的图论题,虽然我一开始只会做$18$分,后来会做$51$分,看着题解想了好久才会做(吐槽官方题解:永远只有一句话),但这的确是一道好题,值得思考,也能启发思维. 如果要讲这道题,还是要从部 ...