OpenTLD 未完成 - 虎头
TLD是一種算法的簡(jiǎn)稱,原作者把它叫做Tracking-Learning-Detection。搞視覺(jué)的人看到這個(gè)名字都會(huì)嚇一跳,很ambitious的計(jì)劃。是09年的工作,不算太久,不過(guò)也不太新。網(wǎng)上關(guān)于這個(gè)的資源其實(shí)很多,很大程度和作者開(kāi)放源代碼有關(guān)。
學(xué)習(xí)過(guò)程中碰到的第一個(gè)問(wèn)題就是資源太多---當(dāng)然是相對(duì)這個(gè)領(lǐng)域而言,一般能找到一個(gè)忠實(shí)再現(xiàn)算法的源碼就已經(jīng)很好了。所以把找到的list一下,雖然有點(diǎn)浪費(fèi)時(shí)間,希望可以對(duì)其他人有所幫助。具體的細(xì)節(jié)就不多說(shuō)了,有很多很棒的分析也列在下面,比如zouxy09寫的源碼注釋,實(shí)在不能再詳細(xì)了。如果硬要找茬,那就是大段的文字讓人頭暈,也沒(méi)怎么排版。我倒想畫幾個(gè)簡(jiǎn)單的圖補(bǔ)充一下,不知有什么好點(diǎn)的畫圖程序推薦(latex, or GNUPlot?沒(méi)用過(guò))
源代碼資源:
1. 原作者 Zdenek Kalal
作者主頁(yè): http://info.ee.surrey.ac.uk/Personal/Z.Kalal/
源代碼頁(yè): https://github.com/zk00006/OpenTLD
編程語(yǔ)言:Matlab + C
2. Alan Torres版
源代碼頁(yè):https://github.com/alantrrs/OpenTLD
實(shí)現(xiàn)語(yǔ)言:C++
3. arthurv版
源代碼頁(yè):https://github.com/arthurv/OpenTLD
實(shí)現(xiàn)語(yǔ)言:C++
注:和上面的沒(méi)有發(fā)現(xiàn)任何區(qū)別
4. jmfs版
源代碼頁(yè):https://github.com/jmfs/OpenTLD
實(shí)現(xiàn)語(yǔ)言:C++
注:和上面兩個(gè)沒(méi)有區(qū)別,只不過(guò)加入了VS2010工程文件,理論上可以直接在Windows下編譯通過(guò)。不過(guò)opencv檢測(cè)不到作者的webcam(!!!),所以他用了另一個(gè)VideoInput類來(lái)handle攝像頭輸入。
5. Georg Nebehay版 (終于有個(gè)不一樣的了。。。。)
源代碼頁(yè):http://gnebehay.github.com/OpenTLD/
注1:這個(gè)的好處是提供可執(zhí)行文件下載(Ubuntu 10.04和Windows)。BUT, as you would expect,基本上到了你的機(jī)器上都跑不了。還是自己老老實(shí)實(shí)build吧。
注2:這個(gè)版本需要安裝Qt。不過(guò)好像作者關(guān)掉了Qt的選項(xiàng)(相關(guān)代碼還在),所以可以編譯,但無(wú)法顯示結(jié)果
注3:CSDN下載上有個(gè)“openTLD Qt 版“,就是這個(gè)版本。不過(guò)加了VS的工程文件---在我的機(jī)器上還是不能PnP, don't bother
http://download.csdn.net/download/muzi198783/4111915
6. Paul Nader版(又一個(gè)Qt 版!)
QOpenTLD: http://qopentld.sourceforge.net/
源代碼頁(yè): http://sourceforge.net/projects/qopentld/
注1:需要OpenCV和Qt。 原系統(tǒng)要求Qt 4.3.7OpenCV 2.2。
注2:Windows和Linux下都提供了編譯工程或makefile。估計(jì)也是唯一一個(gè)移植到Android平臺(tái)下的TLD!
7. Ben Pryke版(又一個(gè)student project!)
源代碼頁(yè):https://github.com/Ninjakannon/BPTLD
注:依然是Matlab+C/C++的混合實(shí)現(xiàn)。亮點(diǎn)是有很詳細(xì)的Documentation(8頁(yè)),介紹了算法的理解和實(shí)現(xiàn)細(xì)節(jié)。可以幫助理解原算法
博客資源(中文):
1. ?庖丁解牛TLD (yang_xian521)
http://blog.csdn.net/yang_xian521/article/details/6952870
注1:從文章看作者是基于原作者的matlab版分析的。從函數(shù)名看上面的2/3/4應(yīng)該是matlab--->C++的"直譯",函數(shù)名都沒(méi)變。這樣最好,可以和下面的對(duì)照著看,同時(shí)學(xué)matlab和C++
2. ?TLD(Tracking-Learning-Detection)學(xué)習(xí)與源碼理解 (zouxy09)
http://blog.csdn.net/zouxy09/article/details/7893011
注1: 用的是<<arthurv版>>,前面說(shuō)過(guò),不能再詳細(xì)了!
注2: 下面三個(gè)是從這篇copy的
3. 《再談PN學(xué)習(xí)》:
http://blog.csdn.net/carson2005/article/details/7647519
4. 《比微軟kinect更強(qiáng)的視頻跟蹤算法--TLD跟蹤算法介紹》
http://blog.csdn.net/carson2005/article/details/7647500
5. 《TLD視覺(jué)跟蹤技術(shù)解析》
http://www.asmag.com.cn/number/n-50168.shtml
想說(shuō)的話:
1. 分享:前段時(shí)間把 TLD::init(...)看完了,本想一鼓作氣,其他的事太多只好放下。不過(guò)我對(duì)detection和tracking比較熟,init中已經(jīng)把learning作了一遍,看懂了剩下的就容易了。現(xiàn)在重新?lián)炱?#xff0c;無(wú)意中發(fā)現(xiàn)了zouxy09的注釋,省了太多力氣,半天就看完了。很多細(xì)節(jié)不用自己去摳--- 我們常抱怨這資源那文檔太少,羨慕老外能力強(qiáng),動(dòng)作快,和他們?cè)敢夥窒黻P(guān)系太大。經(jīng)常看到一些不錯(cuò)的文章收藏起來(lái),過(guò)幾天去看居然刪了!
可以理解可能是開(kāi)公司要保密,但如果害怕別人知道了自己的思路就做不下去,那還是不要在這個(gè)領(lǐng)域做了。算法只是思想,誰(shuí)也壟斷不了。算法也一定是不斷更新的, 抱著一個(gè)算法不放也存活不了幾年。原作者也基于這個(gè)技術(shù)開(kāi)公司了,也沒(méi)見(jiàn)他們基于這個(gè)限制別人使用。SIFT,SURF都patent了也沒(méi)聽(tīng)說(shuō)賺了大錢,kinect告訴你算法也實(shí)現(xiàn)不了。要保密的是實(shí)現(xiàn)細(xì)節(jié)
2. 比較: 終于看完了實(shí)現(xiàn),總的感覺(jué)這個(gè)算法還是更象工程應(yīng)用(engineering)而不是理論突破(也不能要求太多了是不是)。感覺(jué)這么結(jié)合后并不一定會(huì)比單個(gè)的跟蹤(tracking)或檢測(cè)(detection-by-classification)模塊作的更好,畢竟還是沒(méi)有解決外觀(appearence)和尺度(scale)變化這兩個(gè)根本難題。 不過(guò)這種框架反而應(yīng)該在實(shí)際中非常實(shí)用,因?yàn)?---------可調(diào)的參數(shù)太多了!
TLD相信很多人都試過(guò)了,實(shí)時(shí)性很多人都在抱怨,而且拿到自己的視頻上總要調(diào)些參數(shù)效果才好。
比較起來(lái)更喜歡今年ECCV上Kaihua Zhang的Compressive Tracking:理論高深的嚇人(開(kāi)玩笑),源碼簡(jiǎn)單的嚇人。而且是目前為止我試過(guò)的off-the-shelf的tracker中跟蹤效果最好的,不用調(diào)任何參數(shù),絕對(duì)實(shí)時(shí)----代碼那么少,想不實(shí)時(shí)都難吧(順便說(shuō)一句作者的blog就在上面提到過(guò))。這才是做研究的方法,有個(gè)強(qiáng)大的理論做支撐,實(shí)現(xiàn)可以很簡(jiǎn)單卻不會(huì)影響效果。所以如果搞數(shù)學(xué)的人愿意做應(yīng)用,很多人都會(huì)下崗
http://www4.comp.polyu.edu.hk/~cslzhang/CT/CT.htm
另一個(gè)PWP(Pixel-Wise Posteriors),publish時(shí)間和TLD差不多,性能看上去也很美,不過(guò)作者說(shuō)要開(kāi)源,一直沒(méi)有兌現(xiàn)。是個(gè)遺憾。個(gè)人覺(jué)得level set對(duì)部分遮擋效果應(yīng)該很好,做到實(shí)時(shí)也不是難事
http://www.robots.ox.ac.uk/~cbibby/research_pwp.shtml
3. 總結(jié):TLD其實(shí)是一個(gè)非常合適的入門和進(jìn)階算法:
a. 有理論,有高質(zhì)量的paper(BMVC, CVPR, ICPR, 最后PAMI)
b. 有源代碼!Matlab, C++, Windows, Linux, .....你還想要啥?
c. 有不同大牛小牛分享的詳細(xì)的介紹和詳細(xì)的代碼注釋(幾乎每一行都解釋到了)!
4. 牽涉面廣,涉及到detection, tracking, classifcation,傳統(tǒng)的視覺(jué)技術(shù)就是這么硬梆梆的劃分的三大類。研究完了對(duì)每一部分多少能有點(diǎn)心得。
總結(jié)
以上是生活随笔為你收集整理的OpenTLD 未完成 - 虎头的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。