博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
目标跟踪系列十一:Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路...
阅读量:5018 次
发布时间:2019-06-12

本文共 1183 字,大约阅读时间需要 3 分钟。

Tracking学习系列原创,转载标明出处: 

这篇文章非常赞啊!非常有必要将其好好的学习,今天首先记录它的代码思路(具体的推导过程后面会给出的)。

首先,这篇文章使用的决策函数是一个结构风险最小化的函数:

                                                            

这个函数中:前面是一个损失函数,损失函数里面的f(x)就是最后要求的判别函数;后面是一个结构化的惩处因子。对于SVM分类器来讲就是合页损失函数(Hinge loss)。可是实际上,採用核函数的最小二乘法(Regularized Least Squares(RLS) with Kernels)也能够相同的达到这种效果。于是文章就採用了这个方案来求解这个Function。得到的结果是:

                                                                                  

详细的细节后面再说。这里主要说代码的思路。

首先:     读入视频文件,得到groundtruth信息,也就得到了object的位置和大小的信息;然后得到一个在目标框图内目标的分布函数(高斯的分布,这一点我不是非常明确,和公式里面不一样);

接下来:  读入第一张图片,转化为灰度图,对框内的数据进行窗体滤波的处理,得到一个边缘效应比較小的数据。而且这个数据是被归一化到-0.5~05的;

然后:     通过以上数据求得核函数K;然后利用K再求出f(x)须要用到的 alpha(就是上面公式里面的c);(值得注意的是这里对于这两个重要的參数的求解都是从Fourier Domain求得的,这里是本文的一个创新点,也是速度如此快的原因

接下来:   对于后面的每一帧图像, 先转化为灰度图像,然后用hann窗预处理好输入的数据;接下来结合上一帧图像的信息再次计算K;然后由如今的alpha和K来计算出响应值,选出响应值最大的位置。(值得注意的是这里计算的出来的响应值是待处理的Frame里面的每个可能的目标区域

最后:  依据响应值最大的位置来计算如今的K,然后更新alpha。然后处理下一帧图像。(同一时候也要看到,计算响应值和更新alpha所用到的K的计算的方式是不一样的。代码里面,计算响应值的K是目标和待检測的目标img进行卷积的,而更新的时候是目标和自己卷积的)

存在的问题(慢慢的解决掉)

1. alpha里面的Y究竟是什么?依照原来的公式应该是标签的,但终于怎么成了一个高斯的分布?(好像有点懂了,由于他不是像别人那样直接给目标标签定为1或者是0,而是一个确信度,难道这就是回归的思想 O(∩_∩)O哈哈~

1' 一直没有对alpha里面的y进行更新的原因?(事实上和位置无关,仅仅和框的大小有关,有木有发现!)

2. 为什么这就代表了一个image里面全部的块和这个的响应值勒?  

3. 加hann窗对数据处理的原因?

iker  Cross

2014.10.17

转载于:https://www.cnblogs.com/gcczhongduan/p/4199292.html

你可能感兴趣的文章
nginx实现动静分离
查看>>
EV: 汽车驾驶技术与技巧
查看>>
svn revert
查看>>
弹性盒布局学习总结
查看>>
让声音更清晰,用PR去掉视频中的噪音
查看>>
四层架构设计模型驱动
查看>>
基于RDP开源许可rdesktop基本介绍
查看>>
CString——Left、Right、Find、ReverseFind
查看>>
【BZOJ 1355】 [Baltic2009]Radio Transmission
查看>>
详解软件工程之学习方法
查看>>
Redis命令
查看>>
bzoj千题计划239:bzoj4069: [Apio2015]巴厘岛的雕塑
查看>>
Jmeter(三十二)Jmeter Question 之 “自定义函数开发”
查看>>
Linux在Hyper-V下的安装
查看>>
Section 1.1 ride
查看>>
ORACLE下如何获得全部的索引创建语句
查看>>
使用Storm实现实时大数据分析(转)
查看>>
[备份]EntityFramework
查看>>
HTTP响应状态码参考
查看>>
MyBatis动态SQL标签用法
查看>>