庖丁解牛TLD(四)——Tracking解析

來源:互聯網
上載者:User

前幾節都是根據作者的程式流程一步步介紹作者的工作,感覺只是對代碼的一個注釋,這次換一個思路,一部分一部分啃,作者的工作主要就是3部分麼,tracking,learning,detection。

這次先介紹Tracking的工作。對於Tracking,作者主要使用的是他提出的Forward-Backward Error的辦法,使用Lucas-Kanade光流法跟蹤,對跟蹤的結果,用Forward-Backward Error做反饋,求FB error的結果與原始位置的歐式距離,把距離過大的跟蹤結果捨棄,他把這種利用FB
error捨棄壞值的跟蹤方法叫做Median Flow,是把歐式距離集合中較大的50%的那些跟蹤結果捨棄。作者在他的文章Forward-Backward Error:Automatic Detection of Tracking Failures裡提到用FB+NCC(交叉驗證)的方案,可以使跟蹤的結果最佳。作者的Tracking的辦法就是根據我以上介紹的流程實現的。接下來結合代碼再詳細剖析一下

先用bb_points函數在box中均勻採樣10*10個點,注意作者這裡設定了採樣點的地區比box的地區少一圈邊界,邊界為5,在後面我會介紹作者這裡的獨到用心。然後調用混合編程的lk函數實現lucas-Kanade光流法跟蹤,得到的結果有為這100個點的lk結果,前兩個參數為利用l-k方法得到的點當前的跟蹤位置座標,第三個參數是利用NCC把跟蹤預測的結果周圍取10*10的小圖片與原始位置周圍10*10(這裡取10*10,有心的朋友應該笑了,為什麼作者之前在bb_points函數裡要設定個邊界5,原來是防止越界哦)的小圖片(使用函數getRectSubPix得到)進行模板匹配(調用matchTemplate),再對匹配的結果歸一化,把這個結果儲存在第三個參數中,第四個參數為FB
error的歐氏距離。這個lk函數過程中有很多參數可以設定,對最終的結果我想應該應該也是有的,有待實驗驗證。接下來就是利用作者提出的Median Flow,得到NCC和FB error結果的中值,分別去掉中值一半的跟蹤結果不好的點,利用這一半(其實不到50%)的跟蹤點輸入函數bb_predict函數中預測bounding box在當前幀的位置和大小。

這基本就是Tracking工作的主要部分了,至於被遮擋的tracking(tldTrack_occlusion),作者進行了單獨處理,下一次再分析。

PS:很感謝最近有些網友與我一起研究TLD,不過本人能力不足,很多東西還是不理解,對於作者detection和learning的工作,感覺那部分的代碼實在好比天書,沒法拿出來和大家交流了,希望有識之士也能寫出來,和大家分享~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.