1 簡介
DeepSORT在SORT的基礎上做了一些改進,其中最重大的改進是在做數據(track和detection)關聯時利用了行人的外觀特征(feature embedding)。通過加入外觀特征,可以處理更長時間遮擋下的跟蹤[經過更長時間的遮擋,運動模型可能完全失效,無法關聯上detection,但是如果有外觀特征提供的信息,還有可能關聯上],以及減少ID切換。
什么是ID switch呢,加入我們跟蹤到了張三,並且把張三標記為ID1,張三經過一片廣告牌或一個小人群時被遮擋住了一段時間(無ID1對應的bbox),當張三(檢測bbox)再次出現時,它被賦予了一個新ID(關聯上的是別的track)。但我們希望,即使張三有一段時間被遮擋了,當他再次出現,仍能保持他上次出現的ID(bbox仍然和原track關聯上)。
我們可以再細致地分析一下ID Switch發生的情況:
1)被遮擋的幀數小於\(T_{max}\),但張三重新出現時,它的bbox被其它track匹配上了或者未被任何track匹配上(反正就沒被track A匹配上);
2)被遮擋的幀數大於\(T_{max}\),track A直接被注銷了。
通過加入外觀特征,可以減少情況1的發生概率。
2 算法介紹
在《多目標跟蹤算法——SORT》的基礎上,DeepSORT有如下變化。
2.1 運動估計
SORT的狀態定義為\([u, v, s, r, \dot{u}, \dot{v}, \dot{s}]^T\),前4個值分別表示物體中心坐標、bbox面積和縱寬比。DeepSORT的狀態定義為\((u, v, \gamma, h, \dot{x}, \dot{y}, \dot{\gamma}, \dot{h})\),前4個值分別表示物體中心坐標、縱寬比和高度。
2.3 數據關聯
2.3.1 基於運動信息的關聯
計算第\(j\)個檢測目標和第\(i\)個track的馬氏距離: \(\boldsymbol{d}_{j}\)是檢測結果\((u, v, \gamma, h)\),\(\boldsymbol{y}_{i}\)和\({\boldsymbol{s}_{i}}\)是Kalman預測得到的均值和協方差。
\(d^{(1)}(i, j)=\left(\boldsymbol{d}_{j}-\boldsymbol{y}_{i}\right)^{\mathrm{T}} \boldsymbol{S}_{i}^{-1}\left(\boldsymbol{d}_{j}-\boldsymbol{y}_{i}\right)\)
\(b_{i, j}^{(1)}=\mathbb{1}\left[d^{(1)}(i, j) \leq t^{(1)}\right]\)
2.3.2 基於外觀特征的關聯
計算第\(j\)個檢測目標和第\(i\)個track的外觀距離:這里使用的特征(人體ReID特征)都是經過歸一化的,計算track最近的100個特征來和檢測特征的距離,選擇其中的最小距離值。
\(d^{(2)}(i, j)=\min \left\{1-\boldsymbol{r}_{j}{ }^{\mathrm{T}} \boldsymbol{r}_{k}^{(i)} \mid \boldsymbol{r}_{k}^{(i)} \in \mathcal{R}_{i}\right\}\)
\(b_{i, j}^{(2)}=\mathbb{1}\left[d^{(2)}(i, j) \leq t^{(2)}\right]\)
2.3.3 結合運動信息和外觀特征
\(c_{i, j}=\lambda d^{(1)}(i, j)+(1-\lambda) d^{(2)}(i, j)\)
\(b_{i, j}=\prod_{m=1}^{2} b_{i, j}^{(m)}\)
2.3.3 Matching Cascade
核心想法就是讓age更小的track優先進行匹配。age = the number of frames since last successful measurement association. (只要track關聯上了detection,age就reset為0)如果某個被遮擋的物體,它被遮擋的幀數小於\(A_{max}\)(大於\(A_{max}\)該track就要被銷毀了),當它重新出現時,會優先(相比於失聯更久的track)為它匹配檢測結果。
如果不區分優先級,所有的tracks一起進來用匈牙利算法匹配,會出現什么問題呢?答案是如果有兩個tracks競爭地匹配同一個檢測結果,馬氏距離傾向於不確定性較大(遮擋時間較長)的track。
參考機器學習筆記-距離度量與相似度(二)馬氏距離,用下面這張圖來說明。雖然點A距分布1的中心為4,距分布2的中心為6,從歐式距離上看,應該選擇分布1對應的track。但是A點在分布2的\(3\sigma\)內,在分布1的\(3\sigma\)外,從概率上看,應該選擇分布2對應的track。在馬氏距離下,我們傾向於選擇分布2對應的track,這意味着當我們的bbox面臨兩個track,如果一個track被遮擋了更久,我們的分配算法會偏向將檢測結果分配給它。但是這一偏向並不合理,可能會導致跟蹤軌跡的碎片化和不穩定性。
后面還會繼續關注一些多目標跟蹤(MOT)算法。