TLD跟踪算法图文流程.pptx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TLD跟踪学习报告概述:TLD算法,即Tracking,Learning,Detection的简称,最初由捷克籍博士生Zdenek Kalal提出,用于对一个长时间对运动目标进行跟踪。TLD跟踪系统最大的特点就在于能对锁定的目标进行不断的学习,以获取目标最新的外观特征,从而及时完善跟踪,以达到最佳的状态。也就是说,开始时只提供一帧静止的目标图像,但随着目标的不断运动,系统能持续不断地进行探测,获知目标在角度、距离、景深等方面的改变,并实时识别,经过一段时间的学习之后,目标就再也无法躲过。TLD算法在运行时,三个模块同时进行运算,相互补充,跟踪模块负责跟踪并预测目标可能出现的位置,检测模块负责寻找目标,检测跟踪模块的准确性,学习模块对跟踪目标进行学习,对目标可能出现的形变进行适应,及时更新跟踪器与检测器的参数,保证跟踪的准确性。深入解读TLD代码TLD算法的整体结构:综合模块跟踪模块更新参数视频输入学习模块目标模型更新参数检测模块TLD算法VC版本代码的源文件如下:FerNNClassifier.cpp,LKTracker.cpp,run_tld.cpp,TLD.cpp,tld_utils.cpp。FerNNClassifier的功能:实现集合分类器与最近邻分类器;LKTracker.cpp的功能:实现金字塔LK光流法的目标跟踪并且评估跟踪结果;run_tld.cpp的功能:实现与用户的交互,反馈鼠标的操作,完成跟踪框的读入;TLD.cpp的功能:TLD算法框架,包括了初始化以及对帧的处理过程。TLD的运行过程。一、读取并初始化参数void TLD::read(const FileNode file)函数完成了图像片大小 min_win参数的读取、初始化正样本参数以及正样本更新需要的的参数。二、TLD系统初始化void TLD::init(const Mat frame1,const Rect box,FILE* bb_file)(1)调用buildGrid(frame1,box)函数,根据输入的box在输入的帧frame中构建全部的扫描窗口;buildGrid()函数声明如下:void TLD::buildGrid(const cv::Mat img, const cv::Rect box){ const float SHIFT = 0.1; const float SCALES[] = {0.16151,0.19381,0.23257,0.27908,0.33490,0.40188,0.48225, 0.57870,0.69444,0.83333,1,1.20000,1.44000,1.72800, 2.07360,2.48832,2.98598,3.58318,4.29982,5.15978,6.19174}; int width, height, min_bb_side; BoundingBox bbox; Size scale; int sc=0; for (int s=0;s21;s++) { width = round(box.width*SCALES[s]); height = round(box.height*SCALES[s]); min_bb_side = min(height,width); if (min_bb_side min_win || width img.cols || height img.rows) continue; scale.width = width; scale.height = height; scales.push_back(scale);检测器采用扫描窗口的策略,其中SHIFT是扫描窗口移动步长(宽和高的10%),SCALES[]数组存放的是扫描窗口的尺度缩放比例。即:产生不同尺度的扫描窗口(共21个)进行扫描,扫描窗的大小是目标框的一定比例。依次判断扫描窗口的大小,排除小于min_win的窗口将对应尺度的窗口存入scale中,避免在扫描时计算,加快检测速度 for (int y=1;yimg.rows-height;y+=round(SHIFT*min_bb_side)) { for (int x=1;ximg.cols-width;x+=round(SHIFT*min_bb_side)) { bbox.x = x; bbox.y = y; bbox.width = width; bbox.height = height; bbox.overlap = bbOverlap(bbox,BoundingBox(box)); bbox.sidx = sc; grid.push_back(bbox); } } sc++; }}按步长移动扫描窗口,进而遍历整个视频帧计算与输入的

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档