多目標(biāo)跟蹤的作用是獲取目標(biāo)在整個圖像/LiDAR序列上的完整軌跡和狀態(tài),這兩年在SLAM、導(dǎo)航、規(guī)劃任務(wù)上應(yīng)用很多。多目標(biāo)跟蹤的基本框架就是預(yù)測+關(guān)聯(lián),很多MOT使用學(xué)習(xí)方法進(jìn)行預(yù)測,但是計算量很大。實時方法一般使用卡爾曼濾波進(jìn)行狀態(tài)更新,但會受限于選擇的是勻速模型還是勻加速模型。
筆者最近閱讀了IROS 2023的開源方案Poly-MOT,來源于哈工大機(jī)器人國重實驗室。這個方案也是基于EKF進(jìn)行更新,但是為不同目標(biāo)建立了不同的物理模型,實現(xiàn)了nuScenues上的跟蹤SOTA效果。因為沒有使用學(xué)習(xí)方案,也就不需要GPU,降低了硬件要求。
今天筆者將為大家分享這項工作,當(dāng)然筆者水平有限,如果有理解不當(dāng)?shù)牡胤綒g迎大家一起討論~
1、效果展示
Poly-MOT跟蹤效果的直接對比,也體現(xiàn)了文章的核心思想,就是為不同類別建立不同的運動模型。汽車使用他們設(shè)計的CTRA模型,摩托車使用他們設(shè)計的Bicycle模型,CA表示勻速模型??梢园l(fā)現(xiàn)引入專用模型后的跟蹤軌跡明顯變好了。
Poly-MOT和CBMOT的跟蹤性能對比,Poly-MOT對于小目標(biāo)和密集目標(biāo)的跟蹤魯棒性更高。CBMOT是2021 IROS提出的相機(jī)-雷達(dá)融合方案,同時使用了CenterPoint和CenterTrack兩個檢測器。
代碼已經(jīng)開源了,感興趣的小伙伴可以實際運行一下。
2、導(dǎo)讀
三維多目標(biāo)跟蹤(MOT)通過提供周圍物體的運動軌跡,使移動機(jī)器人能夠完成明智的運動規(guī)劃和導(dǎo)航任務(wù)。然而,現(xiàn)有的3D MOT方法通常采用單個相似性度量和物理模型來對所有對象執(zhí)行數(shù)據(jù)關(guān)聯(lián)和狀態(tài)估計。在大規(guī)?,F(xiàn)代數(shù)據(jù)集和真實場景中,有各種各樣的對象類別,它們通常表現(xiàn)出獨特的幾何屬性和運動模式。這樣,這種區(qū)分將使各種物體類別在同一標(biāo)準(zhǔn)下表現(xiàn)不同,導(dǎo)致軌跡和探測之間的錯誤匹配,并危及下游任務(wù)(導(dǎo)航等)的可靠性。為此,我們提出了Poly-MOT,一種基于檢測跟蹤框架的高效3D MOT方法,使跟蹤器能夠為每個對象類別選擇最合適的跟蹤標(biāo)準(zhǔn)。具體來說,Poly-MOT利用各種對象類別的不同運動模型來準(zhǔn)確描述不同類型的運動。我們還將物體剛性結(jié)構(gòu)的約束引入到具體的運動模型中,以準(zhǔn)確描述物體的高度非線性運動。此外,我們引入了一個兩階段的數(shù)據(jù)關(guān)聯(lián)策略,以確保對象可以從三個自定義度量中找到其類別的最佳相似性度量,并減少丟失的匹配。在nuScenes數(shù)據(jù)集上,我們提出的方法達(dá)到了75.4% AMOTA的最高性能。
3、算法解析
重新梳理一下問題:
給定每幀LiDAR的3D目標(biāo)檢測結(jié)果,跟蹤多個目標(biāo)在整個序列上的軌跡和狀態(tài)。
現(xiàn)有方法是怎么做的?
現(xiàn)有框架基本就是預(yù)測+關(guān)聯(lián),基于勻速或者勻加速模型,使用卡爾曼濾波預(yù)測當(dāng)前幀目標(biāo)在下一幀的位置和狀態(tài),然后和下一幀目標(biāo)檢測結(jié)果計算IoU,如果超過閾值則認(rèn)為匹配成功,重復(fù)這個過程實現(xiàn)整個序列的關(guān)聯(lián)。
這么做有什么問題?
現(xiàn)有方法是對所有目標(biāo)類別都建立相同的預(yù)測和關(guān)聯(lián)模型,但顯然不同目標(biāo)的運動規(guī)律是不一樣的,通用模型肯定會降低精度。
如何解決?
Poly-MOT將不同目標(biāo)分為CTRA和Bicycle兩類,依據(jù)物理規(guī)律建立兩個不同的預(yù)測模型,并建立多個度量函數(shù)來進(jìn)行重復(fù)性數(shù)據(jù)關(guān)聯(lián)。
具體原理是啥?
Poly-MOT的pipeline包括四個部分:預(yù)處理模塊、多類別軌跡運動模塊、多類別數(shù)據(jù)關(guān)聯(lián)模塊和軌跡管理模塊。
(1)、預(yù)處理
這部分主要是做目標(biāo)檢測的NMS,為了降低計算量在NMS之前還加了一步分?jǐn)?shù)閾值處理(SF),直接過濾掉低置信度的檢測結(jié)果。后面也證明了SF不僅可以提高速度,也可以提高精度。感覺如果能用GPU來算NMS會再快一些。
Poly-MOT主要在nuScenes上跑,因此得到的3D目標(biāo)檢測結(jié)果是[x, y, z, w, l, h, θ, vx, vy],xyz表示box中心坐標(biāo),wlh表示box的寬長高,θ是航向角,vx和vy是物體速度,注意有些數(shù)據(jù)集是沒有速度真值的。
(2)、多類別軌跡運動建模
這部分是文章的主要創(chuàng)新點,放棄了恒速或恒加速模型,將目標(biāo)分為CTRA和Bicycle 兩類模型,并引入剛體結(jié)構(gòu)約束來建模目標(biāo)的非線性。
CTRA(汽車和人):角速度ω和加速度a視為常量,航向角θ、速度v和加速度a的方向共線。CTRA類的目標(biāo)狀態(tài)為10維向量[x, y, z, v, a, θ, ω, w, l, h]。
Bicycle(摩托車、自行車等類似物體):速度方向和航向角可變,轉(zhuǎn)向角和速度不變。Bicycle類的目標(biāo)狀態(tài)也是10維向量[x′, y′, z, v, a, θ, δ, w, l, h],x′和y′表示重心坐標(biāo),δ為轉(zhuǎn)向角。注意兩類模型都假設(shè)加速度a、坐標(biāo)z和box尺寸wlh不變。
目標(biāo)狀態(tài)更新使用的是擴(kuò)展卡爾曼濾波:
其中T表示目標(biāo)狀態(tài),P表示協(xié)方差矩陣,F(xiàn)表示雅可比矩陣,Q表示噪聲,f表示狀態(tài)轉(zhuǎn)移方程。x和y的轉(zhuǎn)移方程為:
其中η表示速度和x軸的夾角,其轉(zhuǎn)移方程為:
β表示速度和航向夾角,其轉(zhuǎn)移方程為:
其中γ表示物體軸距和車體長度的比值,lr表示物體重心到后輪的距離,β也是CTRA和Bicycle的最主要區(qū)別,物理意義是自行車模型的瞬心不在物體主體上。
速度、航向角、角速度的轉(zhuǎn)移方程依次為:
這也就是完整的狀態(tài)更新模型。
(3)、多類別數(shù)據(jù)關(guān)聯(lián)
Poly-MOT數(shù)據(jù)關(guān)聯(lián)部分的核心思想是,為不同類別設(shè)計不同的度量來降低假陽性匹配,并設(shè)計兩階段關(guān)聯(lián)減少假陰性匹配。兩階段關(guān)聯(lián)維護(hù)了兩個大的代價矩陣,主要是為了使用不同的度量來進(jìn)行重復(fù)關(guān)聯(lián)。
B表示預(yù)測或者檢測的狀態(tài),第一級關(guān)聯(lián)包括并集上的3d廣義IoU、并集上的BEV廣義IoU以及歐氏距離:
第二級關(guān)聯(lián)是給所有類別的目標(biāo)再計算一次BEV的gIoU。進(jìn)行兩階段匹配之后,獲得的是匹配對、當(dāng)前檢測中的未關(guān)聯(lián)目標(biāo)、當(dāng)前預(yù)測中的未關(guān)聯(lián)目標(biāo)。
(4)、軌跡管理
這部分包括軌跡更新、軌跡初始化、軌跡刪除和輸出文件,軌跡更新就是對匹配對應(yīng)用EKF更新狀態(tài),軌跡初始化就是連續(xù)跟蹤幀數(shù)超過閾值就認(rèn)為是活躍軌跡,同理軌跡刪除。
4、實驗結(jié)果
實驗是在nuScenes數(shù)據(jù)集進(jìn)行,主要使用AMOTA來評估。Poly-MOT運行設(shè)備是Intel 9940X,沒有使用深度學(xué)習(xí)也就不需要GPU。運行速度是3 FPS,看起來不快,如果能設(shè)計CUDA加速在GPU上應(yīng)該會跑的很快,而且已經(jīng)超過了同類方案SimpleTrack(0.51 FPS)、Minkowski Tracker(1.7 FPS)。
在nuScenes測試集上的定量對比結(jié)果,截止今天,還是以75.4%的性能實現(xiàn)了nuScenes多目標(biāo)跟蹤的第一!注意Poly-MOT只使用了LiDAR數(shù)據(jù),而第二的CAMO-MOT是多模態(tài)的MOT方案。
在nuScenes測試集上的定量對比結(jié)果,同樣實現(xiàn)SOTA。
Pipeline各部分的消融實驗,Os是原始狀態(tài),Pre是預(yù)處理模塊,Mo是軌跡運動模塊,Ass是數(shù)據(jù)關(guān)聯(lián)模塊。特別注意Os和Os+Pre之間的差距,說明預(yù)處理模塊很重要。
預(yù)處理模塊中閾值處理和NMS的消融實驗,驗證預(yù)處理模塊不僅可以提高精度,還可以提高運行速度,因為低置信度的box都被濾掉了。
最后一個消融實驗,驗證對于不同目標(biāo),建模合適的運動規(guī)律可以很大程度提高跟蹤性能。不知道為啥兩個測試對象都是Bicycle類。
5、總結(jié)
今天筆者為大家分享了Poly-MOT跟蹤方案,不需要GPU就可以實現(xiàn)SOTA精度,文章寫得很好,各種實驗做得也很全。更有意義的是提出了一種新的設(shè)計思想,而不是單純的堆砌模塊。感興趣的小伙伴可以運行一下代碼~
-
模塊
+關(guān)注
關(guān)注
7文章
2655瀏覽量
47292 -
目標(biāo)檢測
+關(guān)注
關(guān)注
0文章
200瀏覽量
15578 -
卡爾曼濾波
+關(guān)注
關(guān)注
3文章
162瀏覽量
24622
原文標(biāo)題:IROS'23開源,nuScenes跟蹤第一!無需學(xué)習(xí)的超強(qiáng)多目標(biāo)跟蹤!
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論