TLD(0)

article/2025/9/22 4:43:37

一、TLD简介以及资源

其实TLD早在去年我就有听说了,之后看了一些视频,感觉很厉害哦。视频如下:

原作者演示的视频:http://www.tudou.com/programs/view/lQ3hPWFSefw/?resourceId=0_03_05_03

其他人做得视频: http://v.youku.com/v_show/id_XNDAzOTkwNzU2.html

之后,这个跟踪算法吵得很热,不过由于一直没研究这一块,所以没怎么接触,但是最近项目需要跟踪的部分,于是开始看TLD算法的东西了,不管怎么样先来认识一些这位大牛,下面是他的简介和TLD的相关资料:

 姓名:Zdenek Kalal

 国籍:捷克

 院校:英国萨里大学

 学位:博士

 电子邮件:zdenek.kalal@gmail.com

 主页:http://info.ee.surrey.ac.uk/Personal/Z.Kalal/index.html

 TLD项目:http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html

 TLD论文:

 1.P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints.CVPR[2010]

 2.Tracking-learning-detection.PAMI.2012

 TLD的Wiki:https://github.com/zk00006/OpenTLD/wiki

 TLD讨论:http://groups.google.com/group/opentld

 TLD matlab代码:http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html

 TLD matlab代码按照说明:https://github.com/zk00006/OpenTLD/wiki

 TLD C++代码:https://github.com/arthurv/OpenTLD

 TLD C++代码:http://www.gnebehay.com/tld/


其他的,国内有不少朋友也解读过,下面列举一些:

zouxy09 http://blog.csdn.net/zouxy09/article/details/7893011

yang_xian521 http://blog.csdn.net/yang_xian521/article/details/7091587

ChenLee_1 http://blog.csdn.net/carson2005/article/details/7647519

http://blog.csdn.net/carson2005/article/details/7647500

TLD视觉跟踪技术解析

二、有个TLD和matlab的配置问题

本人的平台是:XP + matlab2010a +VS2010 + Opencv2.2以上版本

问题1:关于matlab2010a找不到VS2010的编译器问题

答案:见博文vs2010+matlab2010a的那些事

问题2:在运行compile.m文件时的各种问题

配置include和libpath是十分重要的,对于opencv2.2以后的版本,通常会产生一个build的文件夹,如我的opencv2.3.1安装文件,如下:

 

需要注意的是,上图中3号和4号文件夹,即bin和lib文件,是从我一开始对下载解压后的源文件进行cmake后,得到一个文件夹(如opencv_build231),之后打开这个文件,里面有一个.sln文件,之后使用VS2010打开,然后分别在Debug和Release两种模式下编译,之后在opencv_build231这个文件夹下就有了bin和lib这两个文件,而这两个文件夹下,又有两个文件夹,即Debug和Release文件夹,如下图所示:


通常,情况下,我都会lib和bin把Debug和Release里面的文件全部都剪切出来,放在一起。之后我们将bin和lib这两个文件夹复制一份到我们已下好的Opencv2.3.1的源文件的中,当然啦,可以把opencv2.3.1源文件放在适当的位置,如我的位置是:D:\opencv\opencv231 ,之后需要我们配置系统环境变量,即将bin下的dll文件至于path路径中,(注意咯,因为我已经把debug和release中的文件都放在一起咯,否则必须将bin下的debug和release都至于path路径下)。

经过上面的步骤后,opencv就可以使用了,当然啦,具体到如vs2010中如何使用opencv,只要将lib至于依赖文件中,在源文件中加入h文件,一般就可以使用了。下面我们开始配置matlab中如何使用opencv了。

首先,在TLD源代码中的compile.m文件,有include和libpath,我们只要设置好路径就OK了,如我使用的opencv2.3.1,于是我配置如下:(这里需要注意的是,是将build(1号文件夹)下的include添加进去,而不是外面的那个include(2号文件夹)文件)

 include = ' -ID:\opencv\opencv231\build\include\opencv\ -ID:\opencv\opencv231\build\include\';libpath = 'D:\opencv\opencv231\lib\';

之后,我们运行compile.m就会成功了,但是接下了问题来了,那就是运行run_TLD.m时,出现如下错误:

??? Unexpected Standard exception from MEX file.
What() is:..\..\..\Documents and Settings\Administrator\My
Documents\Downloads\opencv\modules\core\src\matrix.cpp:1305: error: (-27)
create() called for the missing output arrayError in ==> tldTracking at 30
xFJ    = lk(2,tld.img{I}.input,tld.img{J}.input,xFI,xFI); % track all points by
Lucas-Kanade tracker from frame I to frame J, estimate Forward-Backward error,
and NCC for each pointError in ==> tldProcessFrame at 25
[tBB tConf tValid tld] = tldTracking(tld,tld.bb(:,I-1),I-1,I); % frame-to-frame
tracking (MedianFlow)Error in ==> tldExample at 41tld = tldProcessFrame(tld,i); % process frame iError in ==> run_TLD at 42
[bb,conf] = tldExample(opt);

我通过测验,使用opencv2.3.1和opencv2.4.3中都会出现这样的错误,但是opencv2.4.6竟然没有问题的。后来经过上网一查原来别人也遇到过同一的问题,原来需要修改一下lk.cpp文件的一个地方,那就是:(参考2)

		cvCalcOpticalFlowPyrLK( IMG[J], IMG[I], PYR[J], PYR[I], points[1], points[2], nPts, cvSize(win_size,win_size), Level, 0   , 0, cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03), CV_LKFLOW_INITIAL_GUESSES | CV_LKFLOW_PYR_A_READY | CV_LKFLOW_PYR_B_READY );

只要将上面那句中Level后面的第一个0,改为status就OK了,之后运行就可以了。

通常情况下,只要按我上面的步骤进行,一般不敢出错了。下面我列举一下错误

1...\OpenTLD-master\mex\lk.mexw32': 找不到指定的模块。

答案:这是因为opencv的bin没有配置(参考1)(事实上,我一开始就被这个问题困着,后纠结)


参考1:http://hi.baidu.com/200881503/item/21ee21db970b768a6cce3f72

参考2:  http://www.cnblogs.com/moondark/archive/2012/04/12/2444602.html       

         



http://chatgpt.dhexx.cn/article/YkeJp6FI.shtml

相关文章

TLD之跟踪篇(三)

TLD之跟踪篇(三) TLD之扯淡篇(一)、 TLD之检测篇(二) 、 TLD之学习篇(四) 目标跟踪的一般思想是跟踪目标中关键点。TLD也是跟踪点(但不是跟踪SIFT之类的关键点&#xff0…

项目中tld文件使用

原理及作用: TLD术语解释:标签库描述文件,如要在JSP页面中实现JSP标签,必须首先定义实现标签的类,然后在标签库描述文件(TLD)中 将写好的类映射成JSP标签,最后在JSP文件中使用定义好的标签&a…

什么是.tld文件

TLD术语解释:标签库描述文件. 如要在JSP页面中实现JSP标签,必须首先定义实现标签的类,然后在…

Tracking-Learning-Detection原理分析

转自http://johnhany.net/2014/05/tld-the-theory/ Tracking-Learning-Detection(TLD)是Zdenek Kalal提出的一种对视频中单个物体长时间跟踪的算法。我主要会根据他在2010年发表的论文《Tracking-Learning-Detection》来分析TLD算法的原理。该项目的首页…

TLD算法简介

TLD算法简介 TLD(Tracking-Learning-Detection)是 Zdenek Kalal 等人于 2009 至2012 年期间提出的单目标、长时间图像跟踪算法。与传统的单一跟踪算法相比,TLD 跟踪算法融合了跟踪器、检测器和学习模块三个部分,既能够对连续运动目…

行列式的逆序数定义

行列式的逆序数定义是一个直接定义,但并不直观。在实际计算中很少直接使用。因为计算逆序数的时间复杂度总是O(N^2), 总的时间复杂度确实O(n!), 所以计算机也不是用这个算法来计算的。 这个定义的好处是可以看清行列式的大概结构,用于定性计算&#xff0…

ACM 逆序对(逆序数)总结

最近做题遇到几次逆序数了,今天总结一下,以后遇到了再也不怕了。 首先说明一下什么是逆序数,下面是百度的定义: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么…

排列的逆序数

百度百科: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。也就是说,对于n个不同的元素,先规定各元素之…

逆序数算法

原题 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序…

C语言计算逆序数

从键盘任意输入一个3为整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由其百位1、十位2、个位3,然后计算3*1002*101 321,并输出321。 输入格式要…

迁移率随载流子浓度变化

载流子迁移率随载流子浓度变化,弱场下几乎保持恒定,然而随着载流子浓度变大,迁移率开始下降 从上面的公式可以得出,在浓度很小的时候,迁移率保持在最大值,当浓度比参考浓度大很多的时候,迁移率…

半导体器件物理 2022.10.13

漂移电流由两部分组成 扩散电流 扩散电流漂移电流就是总的电流,在实际问题中漂移电流远远大于扩散电流 空间电荷限制电流,对于本征半导体和一些绝缘体里面的电流,我们的作业 我们首先忽略我们的扩散电流,只考虑扩散电流 电流密度…

半导体材料参数介绍-很有用

上期文章我们最后提到了半导体参数,之所以专门挑一篇文章来说,因为它确实比较重要,可以让我们明白当前各种半导体材料的优势与劣势的原因。 不仅如此,还可以让我们明白一些东西,特别是二极管和三极管的一些特性。 其实…

silvaco-mobility models(1)

1.前一阶段的问题 大概接触了一段时间的silvaco,根据《InP基PIN开关二极管结构设计与制备》这篇文章提供的结构和一些简单的参数进行仿真。因为已经工作,没有老师在自己摸索,学习期间看到很多人写的心得或理解,或多或少都对我有所…

研究蛋白和DNA的相互作用—EMSA(凝胶迁移或电泳迁移率实验),可用于DAP-seq后续验证

技术简介 凝胶迁移或电泳迁移率实验(EMSA,Electrophoretic Mobility Shift Assay)是研究DNA结合蛋白和其相关的DNA结合序列相互作用的技术,可用于定性和定量分析。可用于DAP-seq后续验证实验。 EMSA实验,基于生物素标记探针与对应…

网络迁移学习率调整思路

在将HRNet从PyTorch框架向MindSpore迁移的过程中,由于初始学习率的选择不好,导致了最终精度没有达到预期要求。 文末有总结。 具体实验过程如下: 实验过程 优化器:SGD 初始学习率:0.01 学习率调整策略:p…

【迁移攻击笔记】数据集の变化→提高迁移率!Improving Transferability of Adversarial Examples with Input Diversity

1.作案动机 已知: 迭代攻击(eg.I-FGSM)过拟合且易陷入局部最优,不适合迁移。 单步攻击(eg.FGSM)欠拟合,不适合迁移。 对输入进行图像处理可以有效抵抗对抗攻击。 推测: 图像处理之后…

为什么NMOS管比PMOS管用得多--电子迁移率-宽禁带-半导体材料参数介绍

上期文章我们最后提到了半导体参数,之所以专门挑一篇文章来说,因为它确实比较重要,可以让我们明白当前各种半导体材料的优势与劣势的原因。 不仅如此,还可以让我们明白一些东西,特别是二极管和三极管的一些特性。 其实…

silvaco 第三章迁移率模型

记录模型都是什么 都用了什么 低场迁移率: 1 MUN and MUP parameters to set constant values for electron and hole mobilities and optionally specify temperature dependence. 2 using a look-up table model (CONMOB) to relate the low-field mobility at…

基于形变势理论计算载流子迁移率

载流子迁移率通常指半导体内部电子和空穴整体的运动快慢情况,是衡量半导体器件性能的重要物理量,例如对石墨烯、黑磷等二维材料展现出的高载流子迁移率的研究。由于电子在运动过程中不仅受到外电场力的作用,还会不断的与晶格、杂质、缺陷等发…