• TLD演算法回顧

TLD(Tracking-Learning-Detection)是英國薩里大學的一個捷克籍博士生Zdenek Kalal在其攻讀博士學位期間提出的一種新的單目標長時間(long term tracking)跟蹤演算法。該演算法與傳統跟蹤演算法的顯著區別在於將傳統的跟蹤演算法和傳統的檢測演算法相結合來解決被跟蹤目標在被跟蹤過程中發生的形變、部分遮擋等問題。同時,通過一種改進的線上學習機制不斷更新跟蹤模組的“顯著特徵點”和檢測模組的目標模型及相關引數,從而使得跟蹤效果更加穩定、魯棒、可靠。

TLD演算法詳細描述參見:http://www.cnblogs.com/liuyihai/p/8306419.html

  • 基於TLD的多目標跟蹤框架

現實的場景中,對於一個拍攝的視訊序列,只跟蹤視訊序列的一個目標越來越不能滿足實際需求。  因此,探討TLD演算法在多目標跟蹤中的應用研究很有必要。與單目標跟蹤相比, 多目標跟蹤的整體流程依然是跟蹤、檢測、學習和綜合輸出,唯一的區別是隨時可以新增新的跟蹤目標。 基於以上分析,多目標跟蹤演算法總過程如下圖所示。

上圖整個框架實現過程如下:(1)讀入視訊序列。(2) 用滑鼠標定或者輸入矩形框引數的形式定位跟蹤的目標框(就是畫一個矩形框)。(3)初始化引數,生成樣本。樣本用來得到檢測模組的樣本庫。(4) 跟蹤的目標框分別進入跟蹤模組和檢測模組, 通過相關條件判斷在下一幀是否存在跟蹤到目標。(5)通過學習模組反饋作用檢測模組,更新檢測模組的樣本庫。並用檢測模組對跟蹤模組進行更新。(6)對於每一幀跟蹤模組和檢測模組的結果在綜合模組中進行處理輸出定位下一幀中目標出現的位置方位。(7)如果在執行的過程中,新增新的目標,則重複上述過程,依次處理每一個跟蹤目標,這樣就實現了多個目標的跟蹤。

  • TLD多目標跟蹤原理詳解

-----------------------------------------------------多目標跟蹤模組---------------------------------------------

跟蹤單個目標只需要四個引數(橫座標,縱座標,長度,寬度)就能確定被跟蹤目標的資訊位置。但是跟蹤多個目標時候,需要對不同目標加以區分, 所以目標矩形框的資料結構略作改變, 在以前的資料結構中新增一個序號用來表示不同的目標,這樣用五個引數就可以很好地區分多個目標。如下圖所示。

存在多個目標時,同一幀影象中同時存在多個目標要被跟蹤,多個目標是以結構體陣列的形式存放的。這時候跟蹤模組需要使用LK中值流法(方法原理同TLD單目標跟蹤)以迴圈的方式反覆跟蹤結構體陣列中的每個目標,直到所有目標被跟蹤完畢。

-----------------------------------------------------多目標檢測模組---------------------------------------------

目標檢測模組也是讓待測的滑動矩形框依次通過方差分類器、集合分類器和最近鄰分類器,過濾掉不滿足條件的滑動矩形框,找出最近似的矩形框。

多目標時滑動視窗的形成過程

對於單目標 TLD 演算法,滑動視窗是這樣產生的。以跟蹤目標框在視訊中的長寬為基數, 以一定尺度比例縮放; 每縮放一次遍歷一次整個影象片,最終得到大量的滑動視窗。 每一個目標框為基數產生的滑動視窗都達到了幾萬個,每一幀影象多要產生滑動視窗。如果同時有多個目標,也按照這種方式分別產生各自跟蹤視窗的滑動矩形框,數量將成倍增加,並且在後面檢測這些視窗的時候處理速度也非常緩慢。這就導致不能用簡單的迴圈重複實現TLD演算法檢測模組對多目標的檢測改進。 當有多個目標產生滑動矩形框時,滑動視窗成倍增加的主要原因是不同尺寸生成的滑動視窗不一致所致。 為了減少生成滑動視窗的數量,在視訊序列中跟蹤多個目標的時,讓標定的跟蹤目標矩形框間長寬比固定,這樣生成的滑動視窗是與初始目標框成比例縮放的。 那麼處理每一幀視訊時,不同的跟蹤目標只需要生成一次滑動視窗便可。

寬度和長度歸一化過程具體如下:

a)計算出第一個被跟蹤的目標框的寬度和長度的比率,如下式所示,w0 表示第一個目標框的寬度, h0 表示第一個目標框的高度, p 表示寬度和長度比的值。

b)那麼對於第n(n=2,3,...,N)個被跟蹤的目標框,我們令其寬度保持不變,可以通過下式計算出第n個被跟蹤的目標框的歸一化高度.

下圖給出了新新增目標後(藍色目標),進行歸一化處理後的跟蹤過程:

綜上所述,當視訊序列要新增新的目標的時(新目標滑鼠框定的目標與第一個目標的長寬比一般不一致),根據第一個目標框的長寬比歸一化處理新新增的目標,這樣新新增的目標與初始的目標長寬比一致只是大小不一樣。這樣跟蹤多個目標也只需要生成一組滑動視窗即可,計算量大大降低。

多目標時的方差濾波過程

方差分類器篩選滑動視窗的依據是方差閾值,大於該閾值則通過方差分類器,小於該閾值丟棄。影象中有多個目標時,採取如下策略確定方差閾值大小:如果只跟蹤一個目標,就得到該目標的方差,然後讓該目標框方差大小的一半作為方差分類器的閾值;如果存在多個目標的時候,就選擇最小 跟蹤目標框方差的一半作為方差分類器的閾值。通過上述分析得知,如果同時跟蹤的目標越多,並且多個目標最大方差與最小的方差相差很大的時, 方差分類器篩選出來的滑動視窗數量較多。反之,多個目標框方差較為接近的時候,方差分類器篩選出來的滑動視窗數量相對較少。

多目標時的集合分類器過程
        因此, 多目標集合分類器主要完成兩項工作,其一, 進一步過濾掉不符合條件的待測滑動視窗,其二,對於篩選出來視窗進行分類,使得不同滑動視窗屬於不同的跟蹤目標。 隨機森林有良好的特性, 多目標集合分類器依然基於隨機森林。在集合分類器中,每增加一個新的目標,就以該目標框長度、 寬度、編號和方差引數條件來進行仿射變換等生成正樣本。由於每一個目標框都是帶有編號的,這樣正樣本通過隨機森林時,訓練出來的結果都帶有編號的, 以區分其屬於不同的目標。另一個方面,上一步待測的滑動矩形框也會通過隨機森林, 通過隨機森林也會得到 2bitBP 編碼的特徵碼,根據特徵碼與上述訓練出來的庫進行對比,如果在庫中比對,比對的結果滿足閾值條件,則認為含有前景目標,予以保留。樣本庫中的樣本都是根據不同目標有編號的,這樣比對成功的滑動視窗就可以編號。否
則丟棄。  從上述過程中可以看出,一個待測視窗開始進入集合分類器的時候,是沒有加以區分的,通過集合分類器後,被保留下來的滑動視窗已經帶有特定編號了,並且該編號與跟蹤目標框的編號是一致的。多個待測視窗通過該集合分類器後,被篩選出來的滑動視窗已經被標有不同的編號了,從而達到過濾和分類的目的。 當然,同時跟蹤多個目標時,一個待測視窗可能同時被打上多個不同編號,但他們之間並不矛盾。
        多目標時的最近鄰分類器過程


        對於多個目標,最近鄰分類器主要完成兩個功能。其一是,將跟蹤模組跟蹤到的影象片與上一幀的影象片進行匹配比對,若相似度大於指定閾值則認為。最終跟蹤模組跟蹤的結果成功。其二是,將通過集合分類器的滑動視窗與各自的的影象片進行比對,其相似度大於一定的閾值則認為,滑動視窗時該矩形框的最終檢測視窗。


-----------------------------------------------------多目標學習模組---------------------------------------------
        傳統的 TLD 演算法,學習模組分為線上模型和 P-N 學習模組。因為在實驗中,在上述多目標最近鄰分類器已經充當了線上模型的作用,故多目標學習模組主要完成兩部分的內容。其一是,最近鄰樣本庫的訓練;其二是,集合分類器的訓練。擴充套件的多目標最近鄰分類器充當了與線上模型類似的功能,故對於多個目標學習模組只需要訓練更新集合分類器和最近鄰分類器的總樣本庫。對於集合分類器中正樣本產生是在新增目標的時產生的。最近鄰分類器中的正樣本庫由各自在上一幀中跟蹤到的目標加上編號生成的,負樣本只有一個庫,是與被跟蹤目標相似度都小的影象片組成的樣本。 正樣本和負樣本的產生來源於兩部分。其一,每增加一個目標,會在樣本庫中新增屬於該的目標的正樣本和更新負樣本庫。其二, 每一次檢測模組最終的得到的滑動視窗也會作為新的樣本存入各自樣本庫中, 並更新負樣本。 學習樣本庫如下圖所示。

-----------------------------------------------------多目標綜合模組---------------------------------------------

多目標綜合模組與單目標的策略是一致的,只是這時候有多個目標,迴圈處理每一個目標即可。

  • TLD多目標跟蹤演算法原始碼
  • TLD多目標跟蹤參考文獻

[1]http://tldvision.com/pdf/tld2_spec_sheet.pdf

[2]姚沛. 基於TLD多目標跟蹤演算法研究

  • TLD多目標跟蹤演示視訊

多動靜目標跟蹤:http://www.miaopai.com/show/kQQI-zVHpomC-MQ7JiMaA0d1SjZeeZxpdO8ryw__.htm

無人機航拍多目標跟蹤 :

  • 程式安裝及執行答疑

[email protected]       [email protected]

  • 博文預告

下一篇博文將詳細講述深度學習(人工智慧)演算法在視訊目標跟蹤中的應用情形-----歡迎閱讀