KCF原理学习
0. 目标跟踪综述类文章
https://zhuanlan.zhihu.com/p/95499141 CVer的推荐2019年的综述性文章
-
A Review of Visual Trackers and Analysis of its Application to Mobile Robot 2019年10月,中国矿业大学
- intro: 本目标跟踪综述共含185篇参考文献!从传统方法到最新的深度学习网络
- arXiv: https://arxiv.org/abs/1910.09761
-
Deep Learning in Video Multi-Object Tracking: A Survey 2019年10月
- intro: 38页目标跟踪综述,含30多种主流算法,共计174篇参考文献
- arXiv: https://arxiv.org/abs/1907.12740
- Deep Learning for Visual Tracking: A Comprehensive Survey 2019年12月
https://www.zhihu.com/question/355566860 2019年,计算机视觉领域,你推荐哪些综述性的文章?
A Review of Visual Trackers and Analysis of its Application to Mobile Robot 阅读笔记如下
----------------------------------------------------------------------------
1. KCF——kernelized correlation filters核相关滤波
资源:
-
英文原文下载:KCF PDF文章下载
-
video地址:http://cvlab.hanyang.ac.kr/tracker_benchmark/seq/
-
KCF详细公式的推导:https://www.cnblogs.com/jins-note/p/10215511.html
-
剖析KCF 文章写的比较好:https://zhuanlan.zhihu.com/p/56405827
----------------------------------------------------------
- (1)目标函数:假设是一个线性回归,回归问题。用
的线性表示来近似Y,这是最小二乘的角度。同时也可以写为:
,其中
,即每一行为一个样本,列为特征维度。
- 若X为n*N维度,则W为N*1维度,Y=n*1维度。所以W是表示特征维度的权重,即每一个特征所占的权重是多少。
- 这个就是最小二乘正则化下的解析解。
- (2)由于此处是用X的循环矩阵,即要将(x1,...xmn)平移mn次,即patch在整个patch里面全部平移一次,得到循环矩阵X。这个循环矩阵又可以用傅里叶基W来相似对角化。这个是循环矩阵的特殊性质,证明见1.1
- (3)很重要的就是卷积性质的理解:由于x*y == FxFy,这要求时域卷积是循环卷积才行。所以还差一个循环。参见1.2部分循环卷积
- (4)检测部分:我们用f(x)=xw,计算得到了w,也就是α。现在要用于检测:f(x)=zw,前面得到w,就得到了检测的公式
1.1 循环矩阵的傅里叶对角化
参考:https://zhuanlan.zhihu.com/p/56405827
- X可以表示成每一个元素的多项式形式,其中K为平移矩阵。P^TXP=diag(lambda_k),因为K是初等矩阵,K可相似对角化,其特征值为lamba_k,特征向量为Dk,D的每一列都是K的特征向量。
- 而diag(\lambda_k)=Dx,计算了K的特征值,要计算X的特征值为Dx。
-
这个结果就是X可以用傅里叶来表示,其中x^是对角元是傅里叶变换。
1.2 循环卷积部分
1.3 存在的问题
- (1)为什么会跟丢了?
- 原因一:patch太大了,padding=1.5,即patch为bounding box的2.5倍。由于初始化的第一帧中,背景的轮廓也较大,其HOG特征中背景占了主要部分,所以在做相关匹配时,跟踪在背景部分的响应大,就跟丢了。
- 所以在padding改为1或者0.5时,有所缓解。初始化第一帧中,目标与背景的比例,目标的特征是否在第一帧中突出
-
改变二:将正则化参数从lambda=1e-5改为1e-1了,alphaf从200~300的峰值,下降到60~80的峰值,然后检测不太会丢。加大了惩罚,才让相关滤波的匹配不失效。
- 在正则化中对参数的分析为:不加参数,是所有的特征向量具有相等的可能性(权重);但加了参数后,奇异值较大的成分的权重要大一些,自然地进行了特征选择。若是lambda越大,则重要性越区域均等。加大了惩罚才能让正确的匹配起来,就是限制了权重的可取到的最大值,达到权重均分。不允许有过大的权重值。
- 原因一:patch太大了,padding=1.5,即patch为bounding box的2.5倍。由于初始化的第一帧中,背景的轮廓也较大,其HOG特征中背景占了主要部分,所以在做相关匹配时,跟踪在背景部分的响应大,就跟丢了。
1.4 HOG与FHOG具有差异,需要另外研究
https%3A//huangpiao.tech/2019/02/04/%25E5%2589%2596%25E6%259E%2590KCF 中有介绍FHOG的原理
1.5 KCF的局限性
- patch的大小不能过大或过小,过大,导致背景过多,目标在总体的特征提取中不占主要成分,导致相关滤波很难正确匹配
- patch不能过小,循环位移后会导致目标被分割开了,不是完整的目标
- patch的大小又与目标的速度有关,因为速度过快的话,在patch里面就没有目标了。就匹配不到了,做不到了。
- 由于特征是与尺度、姿态变化、转弯灯有关的,所以特征的鲁棒性很重要,HOG对光照鲁棒,但是对尺度和平移不是不变的,所以对尺度和姿态变化就无法相关到。
- 相关滤波与特征关系非常大。