[論文閱讀] Multiple Object Tracking with Correlation Learning

How哥
9 min readJul 7, 2021

--

Correlation Learning

CVPR 2021

Introduction

以往實作物件追蹤時,為了要有好的辨別能力,大家會把物件的外觀特徵也加入模型中運算,利用外觀特徵把目標從一群物件中找出來

但如果遇到下圖 (a) 的狀況,要追蹤的物件是白色十字的物件,顏色越深代表跟欲追蹤物件的外觀相似程度高,(a) 的狀況是很多物間跟目標物件外觀相似,模型無法分辨出到底哪個是目標

這篇論文提出的模型 CorrTracker 能夠分析目標物件周圍場景與目標的相關性,讓 feature map 像是上圖 (b) 一樣,能夠輕鬆找出目標

Related Work

Real-time Tracking

人們一開始做物件追蹤時,使用 IOU 追蹤法,觀察這一幀跟下一幀的 bounding box,哪個距離近就判斷這兩個 bounding box 屬於同個物件,這方法雖然很快,但如果畫面中有很多物件錯綜複雜的混在一起,就無法追蹤

後來有人想到可以用 Person Re-Identification (紀錄物件表面特徵,簡稱Re-ID) 的方式追蹤,雖然追蹤變準確但計算表面特徵也讓計算量飆增

接著又有人想到能把 Re-ID 放在 one-stage 的模型中訓練 (JDE),使計算量變少,過不久 FairMOT 提出 anchor free 的方式追蹤,不但把 Re-ID 放在 one-stage 訓練,也免除 anchor 帶來的缺點,本篇論文的模型就是以 FairMOT 來做更改

Tracking with Graph Model

Graph neural network 也有人做在物件追蹤當中,特點是能在空間中傳遞特徵,同時擁有前景和背景的特徵,傳遞時減少損失

Tracking with Optical Flow

光流追蹤法 : 觀察 pixel 在各個 frame 之前的移動,如果有一些 pixel 在移動的速度和路徑都一樣,這一組 pixel 可能屬於同一個物件上

這方法相當耗時,模型不但要去計算每個 pixel 的移動當量,在資料上的蒐集和製作也不容易

Attention Mechanism

在圖片的局部相關性做 attention,或相似於 Transformer 的方式都能獲得很好的效果,但建議只要針對一個軸 attention 就好,以免計算量過大

Methodology

下圖是 CorrTracker piplilne

此方法分成三的步驟

  1. 一般的特徵抽取
  2. 從時空相關性中學習,並預測出檢測結果
  3. 執行數據關聯,並將檢測結果分配到最可能的路徑中

步驟 1、2 是可以分割的,他們同時放在 end-to-end 的訓練架構裡,主要的貢獻在於對複雜的位置極其複雜的訊息建模,幫助追踪器在復雜的場景中抑制干擾

Motivation

在 frame t 中的每一個物件的表示法

還有一個物件在前幾幀移動的軌跡

藉由這兩樣能夠算出 affinity matrix

  • f (.) 是特徵抽取 function
  • 前幾幀移動的軌跡會隨著往後的每一幀去更新

像上面這種配對時只要找到物件的外觀特徵,容易在物件多且重疊的狀況下表現欠佳,因此作者提出要把物件附近的特徵也考慮進去的做法

Spatial Local Correlation Layers

剛才提到,我們必須要考慮目標以及目標鄰近區域的關係,這邊的鄰近區域以座標的遠近作為參考

  • l 代表 FPN 裡面的第 l
  • C¹ 表示 query feature Fq 和 reference feature Fr 之間的 correlation volume
  • x 是 query feature 的座標,2 維
  • d 是偏移量,2 維

如此我們就能有這個區域附近的 correlation 資訊,接著我們把 C¹ 放進具有 dilation convolution 的 MLP 中消化,再把這皆經過消化的 correlation 資訊和最簡單的表面資訊加起來,就成了以下的式子

具有附近資訊的物件特徵

Correlation at Multiple Pyramid Levels

為了獲得更大範圍的周邊資訊,直觀的想法就是增加 R (鄰近座標範圍的區域),但直接把 R 調大會讓計算變得沉重,不同的物件大小也會讓偵測增加難度,所以作者使用特徵金字塔 FPN

維度是 W x H x (2R+1)²,因為座標可以左右或者上下偏移,還有原地不動,這樣就是 2R(左右或上下)+1(不動)

透過上採樣往下一層傳播

如此我們可以獲得大的視野(receptive),讓我們了解目標物件旁邊的狀況,有了 FPN 也讓我們把這些資訊整合在一起

Temporal Correlation Learning

很多現有的模型在輸入圖片時,往往使用單個 frame 輸入,這對模型來說資訓練實在有限,且更難掌控物件的追蹤

如果像上面提到的,一次可以輸入兩個 frame,模型就能獲得更多資訊,對解決遮擋問題也有幫助

用前一幀計算後的結果跟當前一幀的結果計算 correlation,這種作法就有一點像 attention,通常模型都是用前一幀來計算,如果要獲得最大精準度,可以採用前五幀

Self-supervised Feature Learning

在 groundTruth 方面,C¹ 採用以下方式

y 代表在 x 座標上的物件ID,如果是一樣就標註為 1,反之標註為 0,背景標註為 -1,使用 class-balanced cross-entropy loss

下面這個很酷,他說使用一個叫做 colorization 作為一個代理任務來訓練相關性,顏色越相近就越相關

Tracking Framework

我們現在有 FairMOT 模型作為框架,把上面講的那些 correlation module 插入進去,loss也改用 Self-supervised Feature Learning 的 loss

在 inference time 中,會把當前跟前一幀的 C¹ 做比較,比較的方式使用匈牙利演算法,如果發現差很多,那就設定為新物件,如果發現物件消失了,等物件消失一定的時間就把他移除

Experiments

為了要證明上面的 correlation module 是有效率且準確的,作者做了一些 module 之間的比較

證明使用兩幀當輸入且使用他們提出的板模可以達到最高準確度

下面是 CorrTracker 跟其他現有模型的比較

準確度竟然比 tubeTK還要高,tubeTK 的計算難度超高,而且我覺得超準,只是 FPS 好像不到1,CorrTracker 還有到 14,好像真的很強

接著是 R(位移) 的大小跟準確度之間的關係,看得出來 R 在 5 的時候準確度最高,少一點速度也沒有快很多,所以最後設定 R = 5

最後是一些視覺化的圖

Conclusion

我覺得他沒有解釋清出他的 correlation 詳細一點的實作內容,在 Self-supervised Feature Learning 那邊的解釋也有點含糊帶過,但不得不說,他實驗的準確度高得驚人,所以他提出的體論是有道理的,如果能夠把目標附近的特徵也學進去,對目標追蹤來說會有很大的幫助

雖說 CorrTracker 的準確度很高,ID switch 也發生的很少,但速度還是有點偏慢,反觀 FairMOT 雖然精準度和其他都輸 CorrTracker 一點,可是速度卻可以是他的接近兩倍

另外他的模型架構圖也沒有很清楚,我還不是很確定這些 correlation module 到底要放在 FairMOT 的哪邊,真希望他能補一張完整的架構圖

他沒有 Code,我好生氣,也找不到其他人實做出來,真的很好奇為什麼不提供程式碼還可以發論文,這樣對學術界一點幫助也沒有(還有我的畢業也沒幫助) : (

Code

沒有 Code!!!!!(生氣)

: (((((

--

--

How哥

台灣科技大學資工所研究生,把有趣的電腦視覺論文整理上來,希望能幫助到有需要的人,聯絡信箱 b10515007@gmail.com