zoukankan      html  css  js  c++  java
  • TLD视觉跟踪算法(转)

    源:TLD视觉跟踪算法

    TLD算法好牛逼一个,这里有个视频,是作者展示算法的效果,http://www.56.com/u83/v_NTk3Mzc1NTI.html。下面这个csdn博客里有人做的相关总结,感觉挺好的,收藏了!下面有个Compressive Tracking的网址,提供的代码很少,但实时性很好,matlab代码下下来就能用。

    以下博文转自:http://blog.csdn.net/windtalkersm/article/details/8018980

    TLD是一种算法的简称,原作者把它叫做Tracking-Learning-Detection。搞视觉的人看到这个名字都会吓一跳,很ambitious的计划。是09年的工作,不算太久,不过也不太新。网上关于这个的资源其实很多,很大程度和作者开放源代码有关。

    学习过程中碰到的第一个问题就是资源太多---当然是相对这个领域而言,一般能找到一个忠实再现算法的源码就已经很好了。所以把找到的list一下,虽然有点浪费时间,希望可以对其他人有所帮助。具体的细节就不多说了,有很多很棒的分析也列在下面,比如zouxy09写的源码注释,实在不能再详细了。如果硬要找茬,那就是大段的文字让人头晕,也没怎么排版。我倒想画几个简单的图补充一下,不知有什么好点的画图程序推荐(latex, or GNUPlot?没用过)

    源代码资源:

    1. 原作者 Zdenek Kalal

    作者主页: http://info.ee.surrey.ac.uk/Personal/Z.Kalal/

    源代码页: https://github.com/zk00006/OpenTLD

    编程语言:Matlab + C

    2. Alan Torres版

    源代码页:https://github.com/alantrrs/OpenTLD

    实现语言:C++

    3. arthurv版

    源代码页:https://github.com/arthurv/OpenTLD

    实现语言:C++

    注:和上面的没有发现任何区别

    4. jmfs版

    源代码页:https://github.com/jmfs/OpenTLD

    实现语言:C++

    注:和上面两个没有区别,只不过加入了VS2010工程文件,理论上可以直接在Windows下编译通过。不过opencv检测不到作者的webcam(!!!),所以他用了另一个VideoInput类来handle摄像头输入。

     This is an adaptation of arthurv's fork of OpenTLD (https://github.com/arthurv/OpenTLD) to be immeadiately runnable in Visual Studio 2010.

    5. Georg Nebehay版 (终于有个不一样的了。。。。)

    源代码页:http://gnebehay.github.com/OpenTLD/

    注1:这个的好处是提供可执行文件下载(Ubuntu 10.04和Windows)。BUT, as you would expect,基本上到了你的机器上都跑不了。还是自己老老实实build吧。

    注2:这个版本需要安装Qt。不过好像作者关掉了Qt的选项(相关代码还在),所以可以编译,但无法显示结果

    注3:CSDN下载上有个“openTLD Qt 版“,就是这个版本。不过加了VS的工程文件---在我的机器上还是不能PnP, don't bother

    http://download.csdn.net/download/muzi198783/4111915

    6. Paul Nader版(又一个Qt 版!)

    QOpenTLD: http://qopentld.sourceforge.net/

    源代码页: http://sourceforge.net/projects/qopentld/

    注1:需要OpenCV和Qt。 原系统要求Qt 4.3.7OpenCV 2.2。

    注2:Windows和Linux下都提供了编译工程或makefile。估计也是唯一一个移植到Android平台下的TLD!

    7. Ben Pryke版(又一个student project!)

    源代码页:https://github.com/Ninjakannon/BPTLD

    注:依然是Matlab+C/C++的混合实现。亮点是有很详细的Documentation(8页),介绍了算法的理解和实现细节。可以帮助理解原算法

    博客资源(中文):

    1.  庖丁解牛TLD (yang_xian521)

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

    注1:从文章看作者是基于原作者的matlab版分析的。从函数名看上面的2/3/4应该是matlab--->C++的"直译",函数名都没变。这样最好,可以和下面的对照着看,同时学matlab和C++

    2.  TLD(Tracking-Learning-Detection)学习与源码理解 (zouxy09)

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

    注1:用的是<<arthurv版>>,前面说过,不能再详细了!

    注2: 下面三个是从这篇copy的

    3. 《再谈PN学习》:
    http://blog.csdn.net/carson2005/article/details/7647519
    4. 《比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍》
    http://blog.csdn.net/carson2005/article/details/7647500
    5. 《TLD视觉跟踪技术解析》
    http://www.asmag.com.cn/number/n-50168.shtml

    想说的话:

    1. 分享:前段时间把 TLD::init(...)看完了,本想一鼓作气,其他的事太多只好放下。不过我对detection和tracking比较熟,init中已经把learning作了一遍,看懂了剩下的就容易了。现在重新捡起,无意中发现了zouxy09的注释,省了太多力气,半天就看完了。很多细节不用自己去抠--- 我们常抱怨这资源那文档太少,羡慕老外能力强,动作快,和他们愿意分享关系太大。经常看到一些不错的文章收藏起来,过几天去看居然删了!

    可以理解可能是开公司要保密,但如果害怕别人知道了自己的思路就做不下去,那还是不要在这个领域做了。算法只是思想,谁也垄断不了。算法也一定是不断更新的,抱着一个算法不放也存活不了几年。原作者也基于这个技术开公司了,也没见他们基于这个限制别人使用。SIFT,SURF都patent了也没听说赚了大钱,kinect告诉你算法也实现不了。要保密的是实现细节

    2. 比较:终于看完了实现,总的感觉这个算法还是更象工程应用(engineering)而不是理论突破(也不能要求太多了是不是)。感觉这么结合后并不一定会比单个的跟踪(tracking)或检测(detection-by-classification)模块作的更好,毕竟还是没有解决外观(appearence)和尺度(scale)变化这两个根本难题。不过这种框架反而应该在实际中非常实用,因为----------可调的参数太多了!

    TLD相信很多人都试过了,实时性很多人都在抱怨,而且拿到自己的视频上总要调些参数效果才好。

    比较起来更喜欢今年ECCV上Kaihua Zhang的Compressive Tracking:理论高深的吓人(开玩笑),源码简单的吓人。而且是目前为止我试过的off-the-shelf的tracker中跟踪效果最好的,不用调任何参数,绝对实时----代码那么少,想不实时都难吧(顺便说一句作者的blog就在上面提到过)。这才是做研究的方法,有个强大的理论做支撑,实现可以很简单却不会影响效果。所以如果搞数学的人愿意做应用,很多人都会下岗

    http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm

    另一个PWP(Pixel-Wise Posteriors),publish时间和TLD差不多,性能看上去也很美,不过作者说要开源,一直没有兑现。是个遗憾。个人觉得level set对部分遮挡效果应该很好,做到实时也不是难事

    http://www.robots.ox.ac.uk/~cbibby/research_pwp.shtml

    3. 总结:TLD其实是一个非常合适的入门和进阶算法:

    a. 有理论,有高质量的paper(BMVC, CVPR, ICPR, 最后PAMI)

    b. 有源代码!Matlab, C++, Windows, Linux, .....你还想要啥?

    c. 有不同大牛小牛分享的详细的介绍和详细的代码注释(几乎每一行都解释到了)!

    4. 牵涉面广,涉及到detection, tracking, classifcation,传统的视觉技术就是这么硬梆梆的划分的三大类。研究完了对每一部分多少能有点心得。

    The End
    楼下评论给的网址也很好啊: http://blog.csdn.net/zouxy09/article/details/7893022

  • 相关阅读:
    程序员的7中武器
    需要强化的知识
    微软中国联合小i推出MSN群Beta 不需任何插件
    XML Notepad 2006 v2.0
    Sandcastle August 2006 Community Technology Preview
    [推荐] TechNet 广播 SQL Server 2000完结篇
    《太空帝国 4》(Space Empires IV)以及 xxMod 英文版 中文版 TDM Mod 英文版 中文版
    IronPython 1.0 RC2 更新 1.0.60816
    Microsoft .NET Framework 3.0 RC1
    《Oracle Developer Suite 10g》(Oracle Developer Suite 10g)V10.1.2.0.2
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/4602173.html
Copyright © 2011-2022 走看看