视频跟踪学习——TLD

来源:互联网 发布:linux 发送arp请求 编辑:程序博客网 时间:2024/05/16 09:21

原文地址:http://blog.sina.com.cn/s/blog_5eeed69d01018wdq.html          作者:扁豆笑了

点击打开链接


再看了好多对tld研究的文章之后我总算把文章的全貌弄懂了。至于代码我还没有完全弄懂由于自己的matlab基础比较薄弱,matlab与C++混合编程不是特别精通,所以,在别人理解的基础之上,看了好多遍原文,总算能清楚文正的结构了。当然理解只是自己的,肯定存在遗漏和不准确的地方,还望牛人指导。

 

TLD主要就是三个部分的内容,跟踪,学习,检测。三者在TLD工作的时候同时交替进行。 

 

1. 跟踪部分

作者采用的算法是基于Median_Flow的跟踪失败检测算法。所谓Median_Flow就是采用Lucas-Kanade光流跟踪,文中作者选取10个点使用两层金字塔光流发跟踪,然后用对应的10*10的点表示10*10的patches,对跟踪结果采用Forward-Background做反馈,求FBerror的结果与原始结果位置的欧氏距离。把距离大于50%的结果舍弃。

光流法的跟踪前提是目标是可见的,并且不会消失在镜头之中。为了防止目标过快移动或者物体遮挡而引起的目标跟踪失败,作者定义了跟踪失败的检测算法:令di地表中值流跟踪中的某一特征点的位移,dm为所有特重点的位移的中值,残差|di-dm|>10pixes,这认为该跟踪是失败的。10pixes的选取也是经验值,没有严格界定。

 

2. 检测部分

检测部分作者也是分为三个部分检图像区方差检测模块、分类器集合显示模块、最邻近分类器。这三个部分是按着先后顺序来的。

  • 方差检测模块。

在整个TLD的模块中作者把方差看作是一个常数,即该模块中凡是灰度值变化小于50%就可以用到下一步的集合分类检测器。变化大于50%的部分就可以完全拒绝检测(比如天空、大地等)。

  • 集合分类器

集合分类器的基础是Random-fern。计算每一个fern的后验概率的均值,若均值大于0.5,则进行到下一步的检测,即NN检测。

  • NN检测

在经过前两步的处理之后,还存在一些不能判断的像素边框。NN检测中Sr大于θNN

Sr =S+/S++S-,θNN=0.6,事实上,θNN的取值只是一个经验值,取值在0.5~0.7之间的效果是一样的。

 

3. 学习部分

参考论文:P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints

学习主要初始化第一帧,并且在检测过程同通过P-N learning方法对检测器进行更新

要弄懂TLD,还必须弄懂作者的P-N Learning,我是反复多了好多遍,中间还有好多没有弄懂,还望高手指导。



0 0
原创粉丝点击