簡體   English   中英

用於多目標跟蹤的粒子濾波器

[英]Particle filter for multi object tracking

我在跟蹤計算機視覺的人。 我有觀察結果(blob作為背景扣除后blob檢測的輸出),我想推斷產生這些觀察結果的對象。

我對一些卡爾曼濾波器代碼感到困擾。 這對我來說很清楚,但我的問題是多目標跟蹤:我的問題是有時觀察結果不完整/嘈雜。 讓我更好地解釋一下 - 在一個有明確觀察的測試中,每個人都有1個blob。 卡爾曼濾波器可以幫助我將人的嘈雜路徑平滑成平滑的曲線。 但是,這不是我的問題; 問題是,有時blob檢測並不完美,我有1個人的2個blob(例如,如果我想跟蹤的人穿着與背景相同顏色的T恤)或有時我有2個blob for 2人(例如,如果兩個人擁抱自己或彼此太近)。

我搜索了一些理論,我發現很多論文都是用粒子濾波器來解決物體跟蹤問題。 所以我研究了貝葉斯濾波器,蒙特卡羅方法,重要性抽樣,它有點清晰(我沒有關於概率的數學知識來理解一切,但這個想法很清楚)。

無論如何,我還不明白粒子濾波器如何幫助我檢測2個blob對應1個對象或1個blob對應2個對象的情況。

有人可以幫助理解這個問題嗎?

首先, OpenCV VideoSurveillance項目是開始處理您的問題的好方法。

它執行檢測響應的數據關聯,正如您所說的那樣。它還通過簡單的機制處理誤報(如您所說,2個blob到1個對象)(初始化基於幀閾值和刪除)。 正如你所提到的,另一個問題是,對應於2個對象的1個blob通常稱為遮擋(使用VideoSurveillance項目中的術語“碰撞”,但現在它已經過時了)。 VideoSurveillance使用基於3D顏色直方圖建模的粒子濾鏡實現來解決這種情況。

簡單解釋:如何根據外觀(他們的衣服)區分兩個不同的目標? 您可以存儲它們的顏色直方圖,並在以后的幀中使用它,對嗎? 但是,你如何進行搜索? 您可以在下一幀中搜索所有可能的質心,或者使用假設分散在您認為對象所在區域周圍的200個隨機點。 這200個點是粒子。 他們是如何工作的? 他們比較他們關注的區域並產生物體存在的概率。 它們越接近,可能性就越大。 最后,您總結了所有可能性並找到了“均值”質心。

簡單來說,每個目標的服裝在概率函數內建模,並且由於粒子濾波的想法,實現了近實時計算。

最后,卡爾曼濾波器是一個預測器,它僅使用運動數據幫助跟蹤器。 它會“過濾”極端運動行為,以防粒子濾波器結果比應有的更瘋狂。 VideoSurveillance也包括這一點。 它與外觀互補,當使用兩者時,跟蹤器更加復雜。

編輯 :如何對多目標跟蹤有用? 假設我們有一個簡單的數據關聯跟蹤器,假設兩個對象即將“碰撞”。 跟蹤器工作正常,直到對象合並為止。 在“合並”期間,跟蹤器只能看到一個對象。 另一個丟了。 過了一會兒,他們分開了,跟蹤器將舊物體檢測為新物體! 我們該如何解決這個問題? 讓我們重新開始粒子過濾和外觀建模:

  • 在合並之前,我們有2個物體相互移動。 對象是獨立的,跟蹤器可以清楚地看到它們。 在此期間,外觀建模器(一種“記住”對象如何看起來的機制)正在學習這兩個對象的外觀。 當然,隨着框架的流逝,兩個物體都會略微改變它們的外觀。 這就是為什么,建模師有一個“學習率”,讓他隨着時間的推移調整他的“記憶”。

  • 在合並期間,這次我們將跟蹤器設置得更耐心,並且不像以前那樣容易殺死第二個對象。 跟蹤器允許兩個對象都處於活動狀態。 像以前一樣成功地跟蹤非遮擋對象,而另一個對象邊界框嘗試再次重新定位它的目標。 如果我們幸運*,在很短的時間之后,被遮擋的(隱藏的)物體將重新出現(分裂),並且由於粒子,邊界框將被吸引到那里。

*如上所述,遮擋目標的邊界框仍然由建模者建模。 如果被遮擋的人隱藏得太長,建模者將忘記舊對象並了解遮擋區域前面的內容(即非遮擋對象)或將像孤兒框一樣四處游盪(這稱為漂移)。 VideoSurveillance沒有相應的機制。 一個簡單的解決方案可以是在遮擋期間停止建模器適應。 怎么樣? 當兩個邊界框重疊時。

卡爾曼濾波器或粒子濾波器無法處理數據關聯問題(多個跟蹤問題,其中幾個檢測必須與多個磁道匹配)。

您需要的是聯合概率數據關聯過濾器(JPDAF),它將每個檢測與一個軟軌道相關聯(一個檢測屬於X%到第一個軌道,Y%到第二個軌道......)。

基礎跟蹤算法可以是粒子濾波器或卡爾曼濾波器。

看一下C#中的JPDAF實現 - 為Kalman和粒子濾波器實現。 此時工作樣本用於卡爾曼和粒子濾波器,JPDAF將在稍后出現 - 但它已實現並准備就緒。

Accord.NET Extensions庫: https//github.com/dajuric/accord-net-extensions

我認為關鍵字是“碎片化”。 一篇示例論文

http://people.csail.mit.edu/cielbleu/pubs/BoseEtalCVPR07Multiclass.pdf

在這種情況下,卡爾曼濾波器是背景減法器方法。 它不能處理數據關聯和高斯噪聲。

最后,我重新實現了由對象檢測激活的基於直方圖的粒子濾波器。

如果有人對此感興趣,請發表評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM