Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
来源:互联网 发布:沉降观测软件 编辑:程序博客网 时间:2024/05/22 14:13
转载:http://blog.csdn.net/ikerpeng/article/details/40144497
这篇文章很赞啊!很有必要将其好好的学习,今天首先记录它的代码思路(详细的推导过程后面会给出的)。
首先,这篇文章使用的决策函数是一个结构风险最小化的函数:
这个函数中:前面是一个损失函数,损失函数里面的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窗对数据处理的原因?
- 目标跟踪系列十一:Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
- Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
- Exploiting the Circulant Structure of Tracking-by-detection with Kernels 笔记
- 阅读笔记4:CSK:Exploiting the Circulant Structure of Tracking-by-detection with Kernels
- 目标跟踪系列十二:Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码关键记录
- 目标跟踪系列十三:Exploiting the Circulant Structure of Tracking-by-detection with Kernels 公式详细的推导
- structed_structured output tracking with kernels
- Struck: Structured Output Tracking with Kernels
- Large Margin Object Tracking with Circulant Feature Maps
- Large Margin Object Tracking with Circulant Feature Maps
- 目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架
- 目标跟踪学习系列十:Struck:Structured Output Tracking with Kernels 代码调试
- Struck: Structrued Output Tracking with Kernels 论文笔记
- Struck Structured Output Tracking with Kernels阅读笔记
- print the layout of the structure with graphic bar
- Android eye detection and tracking with OpenCV
- The Structure of CICS
- The structure of GetMessage()
- poj1258 Agri-Net 最小生成树水题
- io中的AutoCloseable,Closeable和Flushable接口
- spring ioc源码解析
- 随机生成不一样的字符串(java)
- javaee EL表达式
- Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
- seafile服务器安装
- C# 通过用application.startuppath+tmp创建图片存储临时虚拟文件
- 【Unity3D入门教程】Unity着色器基本使用方法
- 什么是this指针
- zxing生成bitmap方式,及bitmap优化释放内存
- Android实现双击退出
- 在Windows上安装、使用Git完全教程
- 压缩感知通俗解释