CSTrack解读
CSTrack 解讀
簡介
自從 FairMOT 的公開以來,MOT 似乎進入了一個高速發展階段,先是 CenterTrack 緊隨其后發布并開源 ,然后是后來的 RetinaTrack、MAT、FGAGT 等 SOTA 方法出現,它們不斷刷新著 MOT Challenge 的榜單。最近,CSTrack 這篇文章則在 JDE 范式的基礎上進行了改進,獲得了相當不錯的跟蹤表現(基本上暫時穩定在榜單前 5),本文就簡單解讀一下這篇短文(目前在 Arxiv 上開放的是一個 4 頁短文的版本)。
-
論文標題
Rethinking the competition between detection and ReID in Multi-Object Tracking
-
論文地址
https://arxiv.org/abs/2010.12138
-
源碼
https://github.com/JudasDie/SOTS
介紹
為了追求速度和精度的平衡,聯合訓練檢測模型和 ReID 模型的 JDE 范式(如下圖,具體提出參考 JDE 原論文 Towards Real-Time Multi-Object Tracking)受到了學術界和工業界越來越多的關注。這主要是針對之前的 two-stage 方法先是使用現有的檢測器檢測出行人然后再根據檢測框提取對應行人的外觀特征進行關聯的思路,這種方法在精度上的表現不錯,然而由于檢測模型不小且 ReID 模型需要在每個檢測框上進行推理,計算量非常之大,所以 JDE 這種 one-shot 的思路的誕生是一種必然。
然而,就像之前 FairMOT 分析的那樣,檢測和 ReID 模型是存在不公平的過度競爭的,這種競爭制約了兩個任務(檢測任務和 ReID 任務 )的表示學習,導致 了學習的混淆。具體而言,檢測任務需要的是同類的不同目標擁有相似的語義信息(類間距離最大),而 ReID 要求的是同類目標有不同的語義信息(類內距離最大)。此外,目標較大的尺度變化依然是 MOT 的痛點。在 ReID 中圖像被調整到統一的固定尺寸來進行查詢 ,而在 MOT 中,提供在 ReID 網絡的特征需要擁有尺度感知能力,這是因為沿著幀目標可能會有巨大的 size 變化。
為了解決上述的過度競爭問題,論文提出了一種新的交叉相關網絡(CCN)來改進單階段跟蹤框架下 detection 和 ReID 任務之間的協作學習。作者首先將 detection 和 ReID 解耦為兩個分支,分別學習。然后兩個任務的特征通過自注意力方式獲得自注意力權重圖和交叉相關性權重圖。自注意力圖是促進各自任務的學習,交叉相關圖是為了提高兩個任務的協同學習。而且,為了解決上述的尺度問題,設計了尺度感知注意力網絡(SAAN)用于 ReID 特征的進一步優化,SAAN 使用了空間和通道注意力,該網絡能夠獲得目標 不同尺度的外觀信息,最后 不同尺度外觀特征融合輸出即可。
框架設計
整體的思路還是采用 JDE 的框架,下圖的右圖是整體 pipeline 的設計,和左側的 JDE 相比,中間增加了一個 CCN 網絡(交叉相關網絡)用于構建 detection 和 ReID 兩個分支不同的特征圖(這里解釋一下為什么要解耦成兩個特征圖送入后續的兩個任務中,其實原始的 JDE 就是一個特征圖送入檢測和 ReID 分支中,作者這邊認為這會造成后續的混淆,所以在這里分開了,FairMOT 也發現了這個問題,只是用另一種思路解決的而已)。構建的兩個特征圖分別送入 Detection head 和 SAAN(多尺度+注意力+ReID)中,Detection head 將 JDE 的 YOLO3 換為了更快更準的 YOLO5,其他沒什么變動,下文檢測這邊我就不多提了。檢測完成的同時,SAAN 也輸出了多尺度融合后的 ReID 特征,至此也就完成了 JDE 聯合檢測和 ReID 的任務,后續就是關聯問題了。
所以,從整個框架來看,CSTrack 對 JDE 的改動主要集中在上圖的 CCN 和 SAAN,而這兩部分都是在特征優化上做了文章,且主要是基于注意力手段的特征優化(不知道是好是壞呢)。
CCN
CCN(Cross-correlation Network)用于提取更適合 detection 和 ReID 任務的一般特征和特定特征。在特定性學習方面,通過學習反映不同特征通道之間相互關系的自聯系,增強了每個任務的特征表示。對于一般性學習,可以通過精心設計的相互關系機制來學習兩個任務之間的共享信息。
CCN 的結構如上圖,我們對著這個圖來理解 CCN 的思路。從檢測器的 backbone 得到的特征圖為F∈RC×H×W\mathbf{F} \in R^{C \times H \times W}F∈RC×H×W,首先,這個特征經過平均池化降維獲得統計信息(更精煉的特征圖)F′∈RC×H′×W′\mathbf{F}^{\prime} \in R^{C \times H^{\prime} \times W^{\prime}}F′∈RC×H′×W′。然后,兩個不同的卷積層作用于F′\mathbf{F}^{\prime}F′生成兩個特征圖T1\mathbf{T_1}T1?和T2\mathbf{T_2}T2?,這兩個特征圖被 reshape 為特征{M1,M2}∈RC×N′\left\{\mathbf{M}_{\mathbf{1}}, \mathbf{M}_{\mathbf{2}}\right\} \in R^{C \times N^{\prime}}{M1?,M2?}∈RC×N′(N′=H′×W′N^{\prime}=H^{\prime} \times W^{\prime}N′=H′×W′)。下面的上下兩個分支操作是一致的,先用矩陣M1\mathbf{M_1}M1?或者M2\mathbf{M_2}M2?和自己的轉置矩陣相乘獲得各自的自注意力圖{WT1,WT2}∈RC×C\left\{\mathbf{W}_{\mathrm{T}_{1}}, \mathbf{W}_{\mathrm{T}_{2}}\right\} \in R^{\mathrm{C} \times \mathrm{C}}{WT1??,WT2??}∈RC×C,然后M1\mathbf{M_1}M1?和M2\mathbf{M_2}M2?的轉置進行矩陣乘法獲得互注意力圖{WS1,WS2}∈RC×C\left\{\mathbf{W}_{\mathrm{S}_{1}}, \mathbf{W}_{\mathrm{S}_{2}}\right\} \in R^{\mathrm{C} \times \mathrm{C}}{WS1??,WS2??}∈RC×C(這是M1\mathbf{M_1}M1?的,轉置之后 softmax 就是M2\mathbf{M_2}M2?的)。然后,對每個分支,自注意力圖和互注意力圖相加獲得通道級別的注意力圖,和原始的輸入特征圖F\mathbf{F}F相乘再和F\mathbf{F}F相加得到輸出特征圖FT1\mathrm{F}_{\mathrm{T} 1}FT1?和FT2\mathrm{F}_{\mathrm{T} 2}FT2?。
上述學到的FT1\mathrm{F}_{\mathrm{T} 1}FT1?用于 Detection head 的檢測處理,后者則用于下面的 SAAN 中 ReID 特征的處理。
上圖就是作者設計的 ReID 分支,用于對 ReID 特征進行多尺度融合,這個設計挺簡單的,不同分支采用不同的下采樣倍率獲得不同尺度的特征圖(其中通過空間注意力進行特征優化),然后融合產生的特征通過空間注意力加強,最終輸出不同目標的 embeddingE∈R512×W×H\mathbf{E} \in R^{512 \times W \times H}E∈R512×W×H(特征圖每個通道對應不同的 anchor 的 embedding)。
這樣,整個 JDE 框架就完成了。
實驗
在 MOT16 和 MOT17 上實驗結果如下圖,比較的方法都比較新,MOTA 也是刷到了 70 以上,不過速度稍許有點慢了,總的精度還是很不錯的。
總結
CSTrack 在 JDE 的基礎上使用了更強的檢測器也對 ReID 特征進行了優化,獲得了相當不錯的表現。不過,從結果上看這種暴力解耦還是會對整個跟蹤的速度有影響的。
總結
- 上一篇: DCN RepPoints解读
- 下一篇: EfficientDet解读