最近忙著寫**,斷更很久,現在和大家分享一下我目前研究的多目標追蹤中的資料關聯問題。首先說明一下我本人目前是做基於船舶自動駕駛的資料融合和多目標追蹤,儘管和計算機視覺方向的多目標追蹤本質是一樣的,但是兩個領域的技術手段是不同的。具體說來,cv方向更側重於高質量高可靠的檢測結果的獲取和提純,而雷達方向則更關注資料關聯和狀態估計。很多文章中,一提到資料關聯就只有匈牙利演算法和卡爾曼濾波,並且也沒有介紹清楚資料關聯。所以,這篇文章想給大家介紹到底什麼是資料關聯,資料關聯難以突破的原因,目前最新的解決方案。
繆天磊:多目標追蹤(multi-object tracking)-船舶zhuanlan.zhihu.com
資料關聯,通俗易懂的解釋就是,確定你所獲取的每個資料的**。資料的**可以是真正的目標,也可以是錯誤的目標,即檢測到了不存在的目標。另外,對於真正的目標,探測器也可能在某些時刻出錯,沒有探測到該目標。我們從乙個如下簡單的資料關聯情景開始:假設有一艘船(或者一輛什麼都行),和乙個檢測器(可以是照相機+影象識別,或者是雷達,雷射雷達等等),以此進行單目標追蹤,如下圖:
一艘船,運動軌跡如虛線,它的五個時刻的真實狀態由船舶圖案表示,檢測結果由紅點表示。兩個時刻較特殊:時刻3,檢測器沒有檢測到目標;時刻5,檢測到了兩個結果。為了簡化問題,我們用單點目標假設,即每個目標同一時刻最多產生乙個檢測結果。因此,時刻5中就有乙個檢測結果是錯的。此時就是涉及到了資料關聯,關聯匹配我們收到的測量結果和真實目標。最後理想的結果當然是,通過資料關聯方法,我們能知道時刻3是探測結果有誤,沒有檢測到目標,時刻5有乙個結果是錯的,並且知道是哪乙個(例如e),其餘檢測結果a,b,c,d為時刻1,2,4,5的目標狀態相關聯。之後的狀態估計靠傳統卡爾曼濾波器和其變體基本上可以解決。
更深一步,對於時刻5,我們想知道具體怎麼確定哪個結果是錯的,對此我們先分別建立目標矩陣: [ o5 ], 和測量矩陣:[ d , e ],對於這個情況,理論上有四種關聯的可能性,
d 是對的
2. e 是對的
3. d, e 都對
4. d, e 都不對
因為之前的單點目標假設,其中第三種可以直接被剔除,剩下三種就都有可能,只是概率不同。而傳統的資料關聯演算法,第乙個功能就是提供了怎麼算這個概率的方法,最最簡單的是最近鄰(nn),顧名思義就是探測結果離我們自己理論**的結果越近,概率越大。然後我們就挑這個概率最大的結果。另一種就是概率資料關聯(pda),在nn的基礎上(計算出所有的概率),把每個測量結果假設是高斯分布,然後把所有結果合成乙個高斯分布。不管哪種方式,都意味著我們要把所有可能關聯的概率都算出來。因此,計算資料關聯的可能性是乙個組合問題,資料關聯的次數就是所有可能組合的數量,換句話說,計算的次數是所有可能組合的數量。
這樣一看,資料關聯好像也不是很難的亞子,那讓我們看乙個簡單的近距離多目標的情景。
其中
相比之前單目標時候的僅僅3種可能,現在計算次數一下變成了原先的76倍,計算時間當然也相應的變長。計算的次數是**型增長,下面的**顯示了目標數量(n)和檢測數量(m)在0到8時候的計算次數。可以看到在8個目標、8個檢測的時候,單個時間的資料關聯的可能性數量就超過了百萬。
上面的情景都還算相對簡單,現實中的情景可能更加複雜
因此,資料關聯的最大瓶頸是在計算量**的問題。
如果我們回顧一下資料關聯面對的問題,問題可以總結為:在所有可能關聯中,找到概率最大的乙個或者幾個。但很多時候,我們並不需要計算所有的可能性,只需要用乙個方法找到最優解即可。從這個角度,問題變成了乙個分配問題求最優解的過程。常用的求解演算法有:
單個最優:匈牙利演算法,拍賣演算法 等
多個最優:murty's 等
多個次優:gibbs 取樣 等
這裡已經提到多個解的情況了,意味著有些時候我們要保留多個結果,接下來我就會介紹資料關聯的最重要的兩個傳統方法:聯合概率資料關聯(jpda)和多重假說追蹤(mht)。gnn用貪婪演算法的思維,只保留乙個最優關聯,缺點就是拋棄了除了最優以外的所有資訊,當多個最優的關聯方式的概率相差不大的時候,很容易出錯。而jpda在pda的基礎上,選出多個關聯方式,並且用聯合概率的方式融合它們得到乙個新的聯合概率,以此來利用更多的資訊。但是融合也會產生問題,雖然利用了所有資訊,但是融合後的結果卻不是準確結果了。相比於jpda的融合,mht選擇直接保留多種關聯方式,來真正得到準確結果。但與此同時,當每個時刻保留超過一種關聯方式的時候,額外的基於各個時間的關聯步驟產生了,因此假說的概念被引入。舉個例子,總共兩個時刻1和2,時刻1有五個關聯方式保留下來,時刻2也是五個關聯方式,當描述對於時刻1和2整體的資料關聯時,我們必須從時刻1和2分別挑出一種關聯,組成對於整體關聯描述的一種方案。這樣的方案,被稱之為假說,總共的假說個數是
使用gnn和jpda時,隨著時間增長的計算次數的增長是加法:
儘管mht有著更精確的結果,但是計算量直接大到**。儘管實際情況中,應用了很多預處理和後處理步驟來刪減計算的數量,但是面對複雜的情景,要實現實時計算還是幾乎不可能。更別提,大多數傳統方法都假定目標的數量是固定的,關聯的過程不存在目標新生和消失的情況,即使有些考慮變化數量的目標,但也只是更大的計算量。
此時,資料關聯急需乙個新的理論框架,由此而生的是隨機有限集(rfs)理論。在rfs理論框架下,用集合來描述所有目標狀態空間和測量空間。集合中元素的數量和狀態都可以用乙個rfs概率密度來描述。基於rfs理論而產生的方法有 概率假說密度(phd),多重伯努利(mb),帶標籤的rfs濾波器,以及它們的各種變體。其中一種變體,廣義標籤多重伯努利(glmb),由多目標追蹤領域大佬ba-ngu vo提出,甚至可以實現長時間追蹤一百萬數量以上的目標。當然還有更新的,我本人也在做相關研究。具體關於rfs理論和相關濾波器的推導,不在本文詳細介紹了(由於真的並不好理解),有興趣的人可以自己找文獻(用我給的這些標籤找起來應該不困難)。
總結來說,資料關聯在多目標追蹤問題中是非常重要且困難的一步,傳統方法被計算量限制,新理論仍然處於乙個探索階段,相信隨著資料關聯研究的突破,多目標追蹤問題的處理可以被進一步完善。
多目標追蹤總結
多目標追蹤 multi object tracking,mot 有兩種思路 具體的一些演算法上文提到了,km匹配演算法 kcf 核相關濾波演算法 deep sort 針對自己的需要,可以有選擇性的選擇某類演算法。目前主流的多目標追蹤演算法為分三類 1.以匈牙利 km匹配的後端追蹤優化演算法。代表性的...
cv2多目標追蹤
本文主要介紹通過cv2的multitracker create 方法建立幾種不同的 用於實現多目標跟蹤,並給出跟蹤效果。import sys import cv2 from random import randint trackertypes boosting mil kcf tld medianf...
3 1多目標追蹤,3 2輔助函式
學習目標 dbt的方式就是典型的tracking by detection模式,即先檢測目標,然後將目標關聯進入跟蹤軌跡中。那麼就存在兩個問題,第一,該跟蹤方式非常依賴目標檢測器的效能,第二,目標檢測的實質是分類和回歸,即該跟蹤方式只能針對特定的目標型別,如 行人 車輛 動物。dbt則是目前業界研究...