本文主要是介绍KCF论文阅读笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
清晰易懂的伪代码如下:
Inputs
• x: training image patch, m×n×c
• y: regression target, Gaussian-shaped, m×n
• z: test image patch, m×n×c
Output
• responses: detection score for each location, m×n
function alphaf = train(x, y, sigma, lambda)
k = kernel_correlation(x, x, sigma);
alphaf = fft2(y) ./ (fft2(k) + lambda);
end
function responses = detect(alphaf, x, z, sigma)
k = kernel_correlation(z, x, sigma);
responses = real(ifft2(alphaf .* fft2(k)));
end
function k = kernel_correlation(x1, x2, sigma)
c = ifft2(sum(conj(fft2(x1)) .* fft2(x2), 3));
d = x1(:)’*x1(:) + x2(:)’*x2(:) - 2 * c;
k = exp(-1 / sigma^2 * abs(d) / numel(d));
end
作者主页:http://www.robots.ox.ac.uk/~joao/
代码有matlab版本和C++版本:http://www.robots.ox.ac.uk/~joao/circulant/
我对High-Speed Tracking with Kernelized Correlation Filters(KCF)作者的C++多尺度目标跟踪代码稍作修改,设置好初始化目标框参数、视频图像路径以及配置好opencv2411后,经调试可以VS2012上运行,附上下载链接
补充说明:
1、为什么要加窗?
对数字信号进行快速傅里叶变换,可得到数字信号的分析频谱。分析频谱是实际频谱的近似。傅里叶变换是对延拓后的周期离散信号进行频谱分析。如果采样不合适,某一频率的信号能量会扩散到相邻频率点上,出现频谱泄漏现象。
为了减少频谱泄漏,通常在采样后对信号加窗。常见的窗函数有矩形窗(即不加窗)、三角窗、汉宁窗、汉明窗、高斯窗等。除了矩形窗外,其他的窗在时域上体现为中间高,两端低。
傅里叶分析的频率分辨率主要是受窗函数的主瓣宽度影响,而泄漏的程度则依赖于主瓣和旁瓣的相对幅值大小。矩形窗有最小的主瓣宽度,但是在这些最常见的窗中,矩形窗的旁瓣最大。因此,矩形窗的频率分辨率最高,而频谱泄漏则最大。不同的窗函数就是在频率分辨率和频谱泄漏中作一个折中选择。
2、x对应于生成循环矩阵X的向量,就是X的第一行矩阵,其傅里叶变化后的值可以用来实现循环矩阵傅里叶对角化。具体证明推导详见[5]
原博客链接:http://blog.csdn.net/u011285477/article/details/53861850
参考资料:
[1]Henriques J F, Caseiro R, Martins P, et al. High-speed tracking with kernelized correlation filters[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI 2015, 37(3): 583-596. Cited:348
[2]Henriques J F, Caseiro R, Martins P, et al. Exploiting the circulant structure of tracking-by-detection with kernels[C]//European conference on computer vision. Springer Berlin Heidelberg, ECCV 2012: 702-715. Cited:406
[3]KCF目标跟踪方法分析与总结http://www.cnblogs.com/YiXiaoZhou/p/5925019.html
[4]汉宁窗的性质http://blog.csdn.net/xinhuasz/article/details/51405737
[5]循环矩阵傅里叶对角化http://blog.csdn.net/shenxiaolu1984/article/details/50884830
[6]【目标跟踪】KCF高速跟踪详解http://blog.csdn.net/shenxiaolu1984/article/details/50905283
[7]傅里叶变换终极解释https://mp.weixin.qq.com/s?__biz=MzAwODY4Njg2OA==&mid=2652010631&idx=1&sn=30504fd93589376f80e574608f3c0a36&chksm=808dc4fcb7fa4deaa9f3bb73f1d42fefaedabd0ff2280c899e0d8bbd7b7d94fcd16b102646e0&mpshare=1&scene=25&srcid=12214NFxjOr60HPpWhv0D38n&pass_ticket=68abAckEj7BQuSgtLQi9P2D51ddgtYJmewmgplajBNE%3D#wechat_redirect
这篇关于KCF论文阅读笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!