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