Tracking 的SimTrack 以及 4D seg
本文主要介紹兩篇工作:SimTrack 以及 4D Panoptic LiDAR Segmentation(后續(xù)簡稱 4D seg)。主要是由于近期項目與 tracking 有一些交集,在調研的時候發(fā)現(xiàn)這兩篇工作還是比較有意思,所以專門記錄一下。
在大部分 MOT (Multi-Object Tracking) 的工作中,基本是參考 tracking-by-detection 的范式,這類方法不可避免的會需要 heuristic matching 的步驟,通常的做法是對兩幀檢測到的物體做匈牙利匹配或者貪心匹配,然后根據一些匹配準則去篩選。
本文介紹的兩篇工作都是基于連續(xù)幀的3D tracking 的工作,有傳統(tǒng)工作的影子也有一些新的思考。
SimTrack
Motivation
匹配是一個很麻煩的事情,不可微而且需要調超參,在一個數據上表現(xiàn)好了在另一個數據集上可能表現(xiàn)的就沒那么好了。所以 simTrack 想做的事就是,能不能把這個手工匹配的過程整合成端到端的形式,像下圖這個樣子。

Method
SimTrack 把物體關聯(lián)、新增物體以及失蹤物體去除統(tǒng)一到了一起,形成一個端到端可訓練的模型,大部分的內容還是基于現(xiàn)有的 SOTA 檢測和tracking 模型CenterPoint。
第一步一般是統(tǒng)一的,稱為 ego-motion compensation,所有幀的坐標系統(tǒng)一到當前幀的坐標系下。這一步的結果是每個點被表示為 (x, y, z, r, △t), 這里 △t表示距離當前幀的相對時間。接下來對于每一幀,我們將點云輸入到統(tǒng)一個 backbone 中來提取我們所要的信息,也就是我們的輸出。
具體地,有三個輸出,為了便于解釋,我們把原文的一個圖搬過來:

1、Hybrid-Time Centerness Map: 這是本文的核心概念之一,假設一個物體在 BEV 視角下可以用這個物體的中心來表示,我們把感知范圍限定為一個方形的map,物體落在這個點則有對應的值來表示。
在有連續(xù)兩幀的輸入時,對于追蹤到的物體,我們將這個物體在前一幀的位置響應到 heatmap 上(比如紅色和藍色);對于前一幀追蹤到而后一幀沒追蹤到的物體,不做任何操作(比如紫色);對于后一幀新檢測出的物體,將這個物體在后一幀的位置響應到 heatmap 上(比如黃色)。
可以結合上圖的Centerness Map 顯示再過一遍。因此對于物體是否追蹤到,我們只要在相同位置做查詢即可,按照原文的說法是 read off,我更傾向于 look up。
2、The offset of an object. 當然在上一步我們已經有了對應關系,但是對于tracking任務而言,我們還是要知道物體在當前幀的位置。因此 SimTrack 還有一個 Motion Updating 分支,用來預測上一幀到下一幀的位置偏移。
3、檢測相關的輸出。有了位置之后還是要對 bounding box 做回歸,即物體的高度,大小以及朝向。
我本人是第一次做 tracking,也做了一些簡單的 survey ,但是本文確實是最好懂并且實驗效果也很好的一篇工作,邏輯也很清晰。當然也有一些比較好奇的點,當前物體的位置是通過前一陣的位置的預測加上對offset 的預測得到的,那這樣會不會有累積誤差?這是我的一點擔心。
4D seg
4D Segmentation 指的是帶時序的點云分割。為什么帶時序呢?一方面能獲取更豐富的場景信息,單幀的點云過于稀疏,另一方面,在有時序信息之后,可以對動態(tài)物體做更好的感知。這是我的理解。而既然有時序了就少不了 tracking 任務。
和圖像不太一樣,圖像的實例分割或者全景分割往往還帶有檢測的結果(e.g. MaskRCNN),所以tracking的時候直接可以使用 tracking-by-detection 的范式,而點云的全景分割往往是沒有檢測結果輸出的,一種思路是加上檢測的輸出,這意味著要有更豐富的標注,而分割結果本身就帶有實例信息,因此另一種思路就是拋棄tracking-by-detection 而選擇tracking-by-segmentation 的路線。

首先第一步操作還是根據 SLAM 的位姿,將所有幀對其到當前幀。但是由于點云數量不能過多,出于效率考慮,我們將可能移動的物體點保留下來,其他的靜態(tài)點做采樣。在在線推理時可以根據之前的估計結果,將可移動物體周圍的點盡可能保留。
接下來的一部是基于密度的聚類,這一步是使用高斯分布對物體實例進行建模。假設一個物體的中心點的估計值為 p_i,我們把這樣的點稱為種子點---- seed point. 那么每個物體都可以用一個高斯分布來表示。對于點云數據中的一個點p_j,我們可以通過下面的公式來計算 p_j屬于物體 i 的概率:

這里e_i, e_j表示兩個點的embedding.
最后的loss function包含四個部分:

L_{var}是一個平滑項,用一個二范數即可。L_{class}是類別預測。

這一項是對點的

接下來就是如何做tracking了,具體分為兩種類型,一種是針對已經處理好的4D volume, 一種是對相鄰兩個4D volume 做關聯(lián)。第一種我們可以根據上面的公式 p_{ij} 根據一定閾值來做篩選,第二種我們可以根據 overlap 來做篩選。
這里要注意的點是,{t, t+1, t+2}volume 和 {t+1, t+2, t+3}的 overlap 還是很高的,所以這樣做是簡單且合理的。對于已經處理好的一個4D volume而言,動態(tài)物體我們會把它聚成一個統(tǒng)一的實例。
Summary
MOT 的工作發(fā)展至今也有很久的歷史了,這兩篇工作雖然可能并不是目前 Tracking 主流的方法,但是卻充滿新意,并且其實難度并不高,還是很有啟發(fā)的,我個人還是比較喜歡這類風格的工作的。