庖丁解牛TLD(四)——Tracking解析

原创 2011年12月17日 13:28:53

前几节都是根据作者的程序流程一步步介绍作者的工作,感觉只是对代码的一个注释,这次换一个思路,一部分一部分啃,作者的工作主要就是3部分么,tracking,learning,detection。

这次先介绍Tracking的工作。对于Tracking,作者主要使用的是他提出的Forward-Backward Error的办法,使用Lucas-Kanade光流法跟踪,对跟踪的结果,用Forward-Backward Error做反馈,求FB error的结果与原始位置的欧式距离,把距离过大的跟踪结果舍弃,他把这种利用FB error舍弃坏值的跟踪方法叫做Median Flow,是把欧式距离集合中较大的50%的那些跟踪结果舍弃。作者在他的文章Forward-Backward Error:Automatic Detection of Tracking Failures里提到用FB+NCC(交叉验证)的方案,可以使跟踪的结果最佳。作者的Tracking的办法就是根据我以上介绍的流程实现的。接下来结合代码再详细剖析一下

先用bb_points函数在box中均匀采样10*10个点,注意作者这里设置了采样点的区域比box的区域少一圈边界,边界为5,在后面我会介绍作者这里的独到用心。然后调用混合编程的lk函数实现lucas-Kanade光流法跟踪,得到的结果有为这100个点的lk结果,前两个参数为利用l-k方法得到的点当前的跟踪位置坐标,第三个参数是利用NCC把跟踪预测的结果周围取10*10的小图片与原始位置周围10*10(这里取10*10,有心的朋友应该笑了,为什么作者之前在bb_points函数里要设置个边界5,原来是防止越界哦)的小图片(使用函数getRectSubPix得到)进行模板匹配(调用matchTemplate),再对匹配的结果归一化,把这个结果保存在第三个参数中,第四个参数为FB error的欧氏距离。这个lk函数过程中有很多参数可以设置,对最终的结果我想应该应该也是有的,有待实验验证。接下来就是利用作者提出的Median Flow,得到NCC和FB error结果的中值,分别去掉中值一半的跟踪结果不好的点,利用这一半(其实不到50%)的跟踪点输入函数bb_predict函数中预测bounding box在当前帧的位置和大小。

这基本就是Tracking工作的主要部分了,至于被遮挡的tracking(tldTrack_occlusion),作者进行了单独处理,下一次再分析。

PS:很感谢最近有些网友与我一起研究TLD,不过本人能力不足,很多东西还是不理解,对于作者detection和learning的工作,感觉那部分的代码实在好比天书,没法拿出来和大家交流了,希望有识之士也能写出来,和大家分享~~

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数独解迷程序

前两天才接触到了这个游戏,高级难度的迷题快把我逼疯了.错综复杂的逻辑关系像蜘蛛网一样.所心干脆编个解迷的程序.....这个解迷的思路完全是线性的,等想到好的算法再贴一版.......package q...

TLD(Tracking-Learning-Detection)学习与源码理解之(六)

下面是自己在看论文和这些大牛的分析过程中,对代码进行了一些理解,但是由于自己接触图像处理和机器视觉没多久,另外由于自己编程能力比较弱,所以分析过程可能会有不少的错误,希望各位不吝指正。而且,因为编程很...

自定义标签tld的使用

在JSP中使用标签是很平常的事情,在制作自定义标签时,通常都需要写tld文件来定义标签的各种属性,对应的java类,前缀等等。标签与tld文件紧紧相连,那么,到底应该怎么放置tld文件?在web.xm...

庖丁解牛TLD(三)——算法初始化

上一讲我提到对于算法的初始化工作主要是在tldInit这个函数里实现的。主要分为如下几大步骤,1)初始化Detector。2)初始化Trajectory。3)训练Detector 1)初始化Dete...

OpenCV 3.2 Tracking 物体跟踪

跟踪就是在连续视频帧中定位物体,通常的跟踪算法包括以下几类: 1. Dense OpticalFlow 稠密光流 2. Sparse OpticalFlow 稀疏光流 最典型的如KLT算法(Kanad...
  • BBZZ2
  • BBZZ2
  • 2017-07-20 15:09
  • 251

OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪

kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方差最小。具体它的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)