再談PN學習(Tracking-Learning-Detection)

本文轉自http://blog.csdn.net/carson2005/article/details/7647519算法

以前翻譯過一篇PN學習的文章:http://blog.csdn.net/carson2005/article/details/7483027,但該文章的內容仍是略顯生澀,不太容易理解。尤爲是在TLD跟蹤算法中,PN學習又是一個很重要的模塊。若是不能很好理解該部分,是很難徹底掌握TLD算法精髓的。因此,這裏我在上次翻譯的基礎上,結合TLD算法中的PN學習的具體應用,再次講述PN學習的原理。函數

 

PN學習即PN learning, P指代Positive Constraint,也稱之爲P-expert或者growing event,N指代Negative Constraint,也稱之爲N-expert或者pruning event性能

P-expert的做用是發現目標的新的外觀(形變),並以此來增長正樣本的數量,從而使得檢測模塊更具魯棒性;學習

N-expert的做用是生成負的訓練樣本。N-expert的前提假設是,(被跟蹤的)前景目標僅可能出如今視頻幀中的一個位置,所以,若是前景目標的位置是肯定的,那麼其周圍必然是負樣例。spa

       TLD模塊中的PN學習做用是經過對視頻序列的在線處理來逐步改善檢測模塊(TLD中的Detection)的性能。對視頻中的每一幀而言,咱們但願評估檢測模塊在當前幀中的誤檢,並以此來更新目標模型,從而使得在之後的視頻幀處理過程當中避免相似的錯誤再次發生。PN學習的關鍵在於兩種類型的「專家(experts)」:P-experts檢查那些被檢測模塊錯誤分類爲正樣本(前景目標)的數據;N-experts檢查哪些被檢測模塊錯誤分類爲負樣本(背景)的數據;須要提醒的是,不管P-experts仍是N-experts都會產生必定的誤差。那麼,若是用這些存在誤差的數據來更新檢測模塊(目標模型),是否會形成檢測模型的性能惡化呢?做者通過研究發現,儘管存在偏差,在必定條件下,偏差是容許的,而且檢測模塊的性能會所以獲得改善。.net

        PN學習包含四個部分:(1)一個待學習的分類器;(2)訓練樣本集--一些已知類別標籤的樣本;(3)監督學習--一種從訓練樣本集中訓練分類器的方法;(4P-N experts--在學習過程當中用於產生正(訓練)樣本和負(訓練)樣本的表達函數;這四個部分之間的關係以下圖所示:翻譯

 

再談PN學習 - 爲@追逐 - BeyondEgo

 

 

        首先根據一些已有類別標記的樣本,藉助監督學習方法來訓練,從而獲得一個初始分類器。以後,經過迭代學習,利用上一次迭代獲得的分類器對全部的未賦予標籤的樣本數據進行分類,而P-N experts則找出那些錯誤分類的樣本,並依此來對訓練樣本集作出修正,使得下一次迭代訓練以後獲得的分類器的性能有所改善。P-experts將那些被分類器標記爲負樣本,但根據結構性約束條件應該爲正樣本的那些樣本賦予「正」的標籤,並添加到訓練樣本集中;而N-experts則將那些被分類器標記爲正樣本,但根據結構性約束條件應該爲負樣本的那些樣本賦予「負」的標籤,並添加到訓練樣本集當中;這也就意味着,P-experts增長了分類器的魯棒性,而N-experts則增長了分類器的判別能力。視頻

       下面咱們就舉例來講明PN學習的運行機制:假設存在三個連續的視頻幀以下所示,每一個視頻幀之上都有若干個掃描窗口如(a)所示;blog

 

再談PN學習 - 爲@追逐 - BeyondEgo

 

 

每個掃描窗口就表示一個圖像片(image patch),圖像片的類別標籤用(b)(c)中的彩色圓點來表示。檢測模塊對每一個圖像片的類別賦值過程是彼此獨立的,所以,N個掃描窗口就存在個類別標籤的組合。而(b)則顯示了其中一種可能的類別標籤形式,這種類別標籤標明,待檢測目標在一個視頻幀中可能同時出如今好幾個區域,而且,待檢測目標在相鄰視頻幀之間的運動沒有連續性(例如(b)中最前面的圖像中右上角的紅色圓點在後面的兩個圖像中均沒有出現),顯然,這種類別標籤形式是錯誤的。相反,(c)所示的類別標籤形式則顯示,每一個視頻幀中,目標只可能出如今一個區域,而且,相鄰視頻幀之間檢測到的目標區域是連續了,構成了一個目標的運動軌跡。這種性質,咱們稱之爲「結構性」的。PN學習的關鍵就是找到這種結構性的數據,從而來判別檢測模塊所產生的錯誤標籤;get

      剛纔的例子代表:P-experts尋找視頻序列中的時域上的結構性特徵,而且假設目標是沿着軌跡線移動的,即,相鄰幀之間的移動很小,且存在必定的相關性。P-experts記錄目標在上一幀中的位置,並根據幀與幀之間的跟蹤算法(這裏採用的是LK光流法)來預測目標在當前幀中的位置。若是檢測模塊將跟蹤算法預測到的目標在當前幀中的位置標記爲負標籤,那麼P-experts就產生一個正的訓練樣本;N-experts尋找視頻序列中的空間域上的結構性特徵,而且假設目標在一個視頻幀中只可能出如今一個位置。N-experts對檢測模塊在當前幀中的全部輸出結果以及跟蹤模塊的輸出結果進行分析,並找到具備最大可能性的那個區域。當前幀中全部目標可能出現的區域當中,若是某個區域同最大可能性區域之間沒有重疊,就將其認定爲負樣本。另外,具備最大可能性的那個區域,被用於從新初始化跟蹤模塊;

        下面,再給出一個例子來講明狀況:

 

再談PN學習 - 爲@追逐 - BeyondEgo

 

 

        上圖所示爲三個連續的視頻幀,PN學習須要處理的是t時刻那個黃色框所在區域的那個小車。跟蹤模塊在相鄰幀之間給出小車的位置,從前面的分析咱們知道,跟蹤模塊給出的區域能夠被P-experts用來產生正的訓練樣本;但因爲遮擋,在t+2時刻,P-experts產生了錯誤的正(訓練)樣本;與此同時,N-experts則找出目標最可能出現的位置(用紅色的星號來標記),而且將全部其餘的區域標記爲負的訓練樣本;這裏,N-expertst+2時刻很好的修正了P-experts的錯誤;

相關文章
相關標籤/搜索