TLD(0)

一、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 array



Error 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 point

Error 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 41
    tld = tldProcessFrame(tld,i); % process frame i

Error 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       

         


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值