快速目標跟蹤方法總結

目錄

 

一、簡介

二、目標跟蹤基本流程與框架

三、快速目標跟蹤方法

模板匹配

TLD

光流法(Lucas-Kannade)

四、快速目標跟蹤方式的應用效果


一、簡介

目標跟蹤是計算機視覺研究領域的熱點之一,有着非常廣泛的應用,如:相機的跟蹤對焦、無人機的自動目標跟蹤等都需要用到目標跟蹤技術。此外,還有特定物體的跟蹤,比如人體跟蹤,交通監控系統中的車輛跟蹤,人臉跟蹤和智能交互系統中的手勢跟蹤等。

過去的幾十年來,目標跟蹤技術取得了長足的進步。特別是近幾年,隨着深度學習的目標跟蹤方法的出現,獲得了令人滿意的效果,也涌現了越來越多的方法,這都使得目標跟蹤技術取得了突破性的進展。

本文主要內容包括:目標跟蹤的基本流程與框架,快速目標跟蹤相關方法及其應用效果。

希望通過本文能幫助讀者對目標跟蹤領域有一個較爲全面的認識,對其中涉及到的方法及原理有進一步的瞭解。

 

二、目標跟蹤基本流程與框架

目標(單目標)跟蹤任務就是在給定某視頻序列初始幀的目標大小與位置的情況下,預測後續幀中該目標的大小與位置。

此基本任務大致流程可以根據框架進行如下劃分:

輸入初始化目標框(初始幀),在下一幀中產生衆多候選框(Motion Model),提取這些候選框的特徵(Feature Extractor),然後對這些候選框評分(Observation Model),最後在這些評分中找一個得分最高的候選框作爲預測的目標(Prediction A),或者對多個預測值進行融合(Ensemble)得到更優的預測目標。

根據如上框架,我們可以把目標跟蹤的主要研究內容歸納爲5個方面

(1)運動模型:如何產生衆多的候選樣本。

(2)特徵提取:利用何種特徵表示目標。

(3)觀測模型:如何爲衆多候選樣本進行評分。

(4)模型更新:如何更新觀測模型使其適應目標的變化。

(5)集成方法:如何融合多個決策從而獲得一個更優的決策結果。

下面分別簡要介紹這5項研究內容:

運動模型(Motion Model): 生成候選樣本的速度與質量直接決定了跟蹤系統表現的優劣。常用的有兩種方法:粒子濾波(Particle Filter)和滑動窗口(Sliding Window)。粒子濾波是一種序貫貝葉斯推斷方法,通過遞歸的方式推斷目標的隱含狀態。而滑動窗口是一種窮舉搜索方法,它列出目標附近的所有可能的樣本作爲候選樣本。

特徵提取(Feature Extractor): 鑑別性的特徵表示是目標跟蹤的關鍵之一。常用的特徵被分爲兩種類型:手工設計的特徵(Hand-crafted feature)和深度特徵(Deep feature)。常用的手工設計的特徵有灰度特徵(Gray),方向梯度直方圖(HOG),哈爾特徵(Haar-like),尺度不變特徵(SIFT)等。與人爲設計的特徵不同,深度特徵是通過大量的訓練樣本學習出來的特徵,它比手工設計的特徵更具有鑑別性。因此,利用深度特徵的跟蹤方法通常很輕鬆就能獲得一個不錯的效果。

觀測模型(Observation Model): 大多數的跟蹤方法主要集中在這一塊的設計上。根據不同的思路,觀測模型可分爲兩類:生成式模型(Generative Model)和判別式模型(Discriminative Model)。生成式模型通常尋找與目標模板最相似的候選作爲跟蹤結果,這一過程可以視爲模板匹配。常用的理論方法包括:子空間稀疏表示字典學習等。而判別式模型通過訓練一個分類器去區分目標與背景,選擇置信度最高的候選樣本作爲預測結果。因爲有大量的機器學習方法可以利用,判別式方法已經成爲目標跟蹤中的主流方法。常用的理論方法包括:邏輯迴歸,嶺迴歸,支持向量機,多示例學習,相關濾波等。

模型更新(Model Update): 模型更新主要是更新觀測模型,以適應目標表觀的變化,防止跟蹤過程發生漂移。模型更新沒有一個統一的標準,通常認爲目標的表觀連續變化,所以常常會每一幀都更新一次模型。但也有人認爲目標過去的表觀對跟蹤很重要,連續更新可能會丟失過去的表觀信息,引入過多的噪音,因此利用長短期更新相結合的方式來解決這一問題。

集成方法(Ensemble Method): 集成方法有利於提高模型的預測精度,也常常被視爲一種提高跟蹤準確率的有效手段。集成方法可以籠統的劃分爲兩類:在多個預測結果中選一個最好的,或是利用所有的預測加權平均。

 

三、快速目標跟蹤方法

模板匹配

模板匹配是目標跟蹤的經典方法,它的優點有:簡單準確,適用面廣,抗噪性好,而且計算速度快。缺點是不能適應劇烈光照變化和目標劇烈形變。

模板匹配法,就是指在一幀圖像內尋找目標模板的位置,其中和模板最像的地方就是目標。只要把全圖的所有子區域和目標模板比較一下,找到最像目標模板的子區域,它就是目標的位置。如何度量子區域和目標模板的相似程度呢?最簡單的辦法就是計算這二者的相關係數。

相關係數(r)是一種數學距離,可以用來衡量兩個向量的相似程度。它起源於餘弦定理:cos(A)=(a2+c2-b2)/2bc.如果兩個向量的夾角爲0度(對應r=1),說明它們完全相似,如果夾角爲90度(r=0),則它們完全不相似,如果夾角爲180度(r = -1),則它們完全相反。把餘弦定理寫成向量的形式:

cos(A) = <b,c>/(|b|*|c|),

即:cos(A) = (b1c1+b2c2+… bncn)/sqrt[(b12+b22+…+bn2) (c12+c22+…+cn2)]

其中分子表示兩個向量的內積,分母表示兩個向量的模相乘。

在實際應用中,更常用的是去均值相關係數,它在上式的基礎上還要在分子分母減去各個向量的均值:

 

這樣,兩個向量相似的部分被減掉,它們的相關性就被放大了。

假設目標模板是一個10*10的圖像,它就可以被看作是一個100維的向量,每一維是一個像素點的灰度值。然後把這個向量和圖像中的每一個子區域作比較,找出相關係數最大的子區域,目標的位置就找到了。

TLD

TLD算法主要由三個模塊構成:追蹤器(tracker),檢測器(detector)和機器學習(learning)。

對於視頻追蹤來說,常用的方法有兩種,一是使用追蹤器根據物體在上一幀的位置預測它在下一幀的位置,但這樣會積累誤差,而且一旦物體在圖像中消失,追蹤器就會永久失效,即使物體再出現也無法完成追蹤;另一種方法是使用檢測器,對每一幀單獨處理檢測物體的位置,但這又需要提前對檢測器離線訓練,只能用來追蹤事先已知的物體。

TLD是對視頻中未知物體的長時間跟蹤的算法。“未知物體”指的是任意的物體,在開始追蹤之前不知道哪個物體是目標。“長時間跟蹤”又意味着需要算法實時計算,在追蹤中途物體可能會消失再出現,而且隨着光照、背景的變化和由於偶爾的部分遮擋,物體在像素上體現出來的“外觀”可能會發生很大的變化。

追蹤器的作用是跟蹤連續幀間的運動,當物體始終可見時跟蹤器纔會有效。追蹤器根據物體在前一幀已知的位置估計在當前幀的位置,這樣就會產生一條物體運動的軌跡,從這條軌跡可以爲學習模塊產生正樣本(Tracking->Learning)。

檢測器的作用是估計追蹤器的誤差,如果誤差很大就改正追蹤器的結果。檢測器對每一幀圖像都做全面的掃描,找到與目標物體相似的所有外觀的位置,從檢測產生的結果中產生正樣本和負樣本,交給學習模塊(Detection->Learning)。算法從所有正樣本中選出一個最可信的位置作爲這一幀TLD的輸出結果,然後用這個結果更新追蹤器的起始位置(Detection->Tracking)。

學習模塊根據追蹤器和檢測器產生的正負樣本,迭代訓練分類器,改善檢測器的精度(Learning->Detection)。

光流法(Lucas-Kannade)

光流法的原理:利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關係,從而計算出相鄰幀之間物體的運動信息。

假設一:場景中物體被跟蹤的部分亮度保持不變;

假設二:運動相對於幀率是緩慢、連貫的數學表達指的是在上連續,可導;

假設三:相鄰的點保持近鄰δ鄰域內所有像素點的速度(U,V)相等;

對於大多數30Hz攝像機,大而不連貫的運動較多,所以LK光流法在實際中的跟蹤效果不好,通常一個大的窗口來捕獲大的運動,但往往違背運動連貫的假設,故引入圖像金字塔。

在圖像金字塔的最高層計算光流,用得到的運動估計結果作爲下一層金字塔的起始點,重複這個過程直到到達金字塔的最底層。這樣將不滿足運動假設的可能性降到最小從而實現對更快和更長的運動的跟蹤。

這個算法的不足在於它不能產生一個密度很高的流向量,例如在運動的邊緣和黑大的同質區域中的微小移動方面流信息會很快的褪去。它的優點在於有噪聲存在的魯棒性還是可以的。

四、快速目標跟蹤方式的應用效果

  • 原圖像大小爲640x480
  • Intel(R) Xeon(R) CPU X5660 @ 2.80GHz

目標跟蹤方式

原圖像大小

1/2

1/4

1/6

模板匹配

40ms

11ms

3.8ms

2ms

TLD

9ms

4.5ms

3.6ms

3.5ms(效果不佳)

光流法

4ms

2.5ms

1.8ms

1.2ms(效果不佳)

 


 

zeusee.com 智雲視圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章