自由Man

TLD源码深度分析:初始化模块(一)

   对于TLD的研究,已有些时日。最开始的时候看Zdenek Kalal的论文,但是有很多啃不动的地方。看完只觉得了解了个大体框架,很多地方都不明白。后来,又看完了各位牛人的分析及讲解(大部分已转载到本博客,大家可以查阅),受益匪浅!但是觉得对很多问题还是不明白!好在网友【冷月无心】给我推荐了C++版本作者的论文,作者分析得很细,看完很受用,解除了很多困惑!最近,打算再根据C++源码深入地走一遍,并把源码功能详细分享给大家!希望后面学习使用TLD算法的朋友通过我的分析,能够不走那么多弯路,也欢迎朋友们和我一起讨论!废话就说到这里,开始分享。。。

1.       buildGrid(frame1box)

输入:

      当前帧图像:frame1

      初始边界框:box

输出:

          所有边界框及其信息:vector<BoundingBox> grid

    描述:

使用滑动窗法对整帧图像,按从上到下、从左到右的顺序,取边界框并记录其大

小、位置、尺度、与初始边界框(第一帧中手工所取)重叠度。其中,尺度取初

始边界框的1.2(S次方)倍,S取值为-10-9910

 

2.       getOverlappingBoxes(box,num_closest_init)

输入:

      初始边界框:box

      欲得到good_box(与初始边界框最相似的box)的个数:num_closest_init

输出:

      最相似边界框:best_box

         最相似的num_closest_init个边界框:vector<int> good_boxes

          不重叠边界框:vector<int> bad_boxes

描述:

将所有边界框中,与初始框box重叠度最高的边界框信息赋给best_box。把所有重

叠度高于0.6的边界框归类到good_boxes;把所有重叠度低于阈值bad_overlap(读

取自parameters.yml,论文中为0.2)的边界框归类到bad_boxes。如果good_boxes

中边界框个数多于num_closest_init个,则从中取重叠率最高num_closest_init

个边界框good_boxes。

函数末尾调用getBBHull()函数的目的是,得到good_boxes中所有边界框能覆盖到

的最大边界。

 

3.       classifier.prepare(scales)函数位于FerNNClassifier.cpp中。

输入:

所有有效尺度:scales

   输出:

         所有待获取2bitBP特征(位置):features

         阈值:0.5*nstructs

         初始化PosteriorspCounternCounter

   描述:

对特征提取的位置(均匀任选图像块中两点)进行选取(共计:蕨个数*特征位数

(二进制数位数)*尺度大小(21 个),声明并初始化每个蕨的可信度、正样


本计数器、负样本计数器。


下一节见《TLD源码深度分析:初始化模块(二)》


注:若存在说法看不明白的,请留言询问!

原发文章很多朋友回复问我要文章,这里发到百度网盘供大家下载!

论文下载:Robust Object Tracking Based on Tracking-Learning-Detection.pdf (提取密码:6sfx)

                 链接: http://pan.baidu.com/s/13yfWq 密码: 6sfx

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero Theme By 爱墙纸

Copyright ZiYouMan.cn. All Rights Reserved. 蜀ICP备15004526号