自由Man

TLD源码深度分析:跟踪模块

跟踪模块track(img1,img2,points1,points2)

1.jpg

 

输入:

         上一帧图像:img1

         当前帧图像:img2

        前一帧边界框:lastbox

输出:

      跟踪结果边界框

      其可信度及有效性 


1.       bbPoints(points1,lastbox)

输入:

边界框:lastbox

   输出:

              点集:points1

   描述:

             在边界框lastbox中均匀采集10*10个点坐标,存于points1中。

 

2.       tracked = tracker.trackf2f(img1,img2,points,points2)

输入:

               上一帧图像:img1

              当前帧图像:img2

              前一帧边界框中的初始点:points(1中的points1)

   输出:

             得到前一帧中被有效跟踪的点集:points

             得到对当前帧有效跟踪点的点集:points2

描述:

               首先,使用LK光流法进行前向跟踪(calcOpticalFlowPyrLK( img1,img2, points1,

   points2, status,similarity, window_size, level, term_criteria, lambda, 0);),

   再进行后向跟踪(calcOpticalFlowPyrLK( img2,img1, points2, pointsFB, FB_status,

   FB_error, window_size, level, term_criteria, lambda, 0););然后,计算跟踪误差

 (FB_error[i] = norm(pointsFB[i]-points1[i]));最后,计算跟踪点与初始点周围

   10*10像素块的归一化互相关系数,滤除掉相似性低于均值的点,在滤除前后向误差

  高于均值的点,得到最终有效跟踪点。

 

3.       bbPredict(points,points2,lastbox,tbb)

输入:

         前一帧中被有效跟踪的点:points

        当前帧成功跟踪到的点:points2

        前一帧中初始(或有效最终结果)边界框:last_box

输出:

        跟踪结果边界框:tbb

描述:

根据这些成对对应点,计算它们位移变化的均值;根据原边界框内的点两两间距

离,与跟踪到的对应两个点间的距离,二者比值关系的均值,得到前后两帧中目

标的放缩变化。再根据前一边界框的大小及位置,预测当前跟踪框的大小及位置。

 

如果前后向误差均值大于10,或预测得到的边界框越界,则本次跟踪失败,得到跟踪结果无效。



详细流程说明见《关于TLD算法的跟踪模块的补充说明 》


注:如果图片无法显示,请访问我的网易博客:http://quandb2007.blog.163.com/blog/static/41878875201351241741534/

发表评论:

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

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

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