CorrTracker解读
其實這篇文章早就在MOT Challenge的Leaderboard上名列前茅了,不過方法名那時候叫TLR。最近論文開放了出來,是Alibaba Group的工作,被收錄于CVPR2021,在精度很高的前提下速度還不低,是名副其實的一個MOT新SOTA方法。
簡介
近段時間MOT領域的工作表明,卷積神經網絡通過同時學習檢測和外觀特征可以帶來較大的性能收益,然而,由于卷積神經網絡結構上的局部感知特性,不能有效獲得空間和時間上的長程依賴。因此,CorrTracker這篇文章中,為了整合空間布局,作者提出利用局部相關模塊(correlation module)對目標及其周圍環境之間的拓撲關系進行建模,以增強模型在擁擠場景中的判別能力。具體來說,該方法建立每個空間位置及其上下文的密集對應關系,并通過自監督學習顯式地約束correlation volumes(相關性空間)。為了利用時間上下文信息,現有的方法通常利用兩個或多個相鄰幀來構建更強的特征表示,但是卷積神經網絡很難刻畫動態運動場景。針對此,論文作者提出了一種可學習的相關性算子來在不同層的卷積特征圖上建立幀與幀的匹配,從而對齊并傳播時間上下文信息。以這些設計為基礎構建的CorrTracker在多個基準數據集上達到了SOTA表現,在MOT17上以76.5的MOTA和73.6的IDF1得分成為新的SOTA,這也是目前MOT17榜單上所有有論文的方法中的第一名。
-
論文標題
Multiple Object Tracking with Correlation Learning
-
論文地址
http://arxiv.org/abs/2104.03541
-
論文源碼
暫未開源
介紹
多目標跟蹤(Multiple Object Tracking,MOT)作為計算機視覺的一個重要任務,可以使用在監控視頻分析、自動駕駛等領域,它的任務目標是在視頻的多幀中確定多個目標的軌跡。
傳統的MOT方法多遵循Tracking-by-Detection范式(TBD),該范式將MOT任務自然地分為了目標檢測和數據關聯兩個步驟進行。這些方法根據檢測框來在patch內提取外觀特征并且記錄目標的位置信息以進行后續的數據關聯。這種范式使得研究者主要去關注優化檢測、特征表示以及數據關聯,隨著目標檢測算法的巨大進展,MOT也取得了極大的突破,但是在處理確定性的干擾和頻繁遮擋
仍然存在巨大的挑戰,尤其在復雜的交互場景下。此外,這種級聯結構其實效率低下,也阻礙了各階段之間的聯合優化。
如何聯合優化多個階段呢,一個可行的方法就是擴展端到端的檢測框架來聯合學習檢測和外觀特征,這個思路就是JDT范式,該思路極大地推動了MOT的發展。然而,就像下圖所示,當出現外觀很類似的遮擋物的情況下,外觀特征會產生模糊不定的匹配置信度(這里白叉表示匹配目標,高亮區域表示匹配置信度高,顯然圖(a)的結果很糟糕),這會嚴重干擾關聯的表現。這些方法受限于局部描述符的特性,很難區分相似目標。但是基于圖?的相關性表示所查詢得到的目標位置具有唯一的較高值(如圖(b)所示),這證明相關性學習有助于區分不同的目標。
基于此,論文作者提出了一種相關性網絡來學習目標和上下文的拓撲信息。具體而言,通過一個空間相關性層來記錄目標和相對空間位置的關系。雖然為所有位置類似non-local那樣構建完全相關性在計算上無法實現實時MOT,但是這篇論文通過構建局部相關性空間(correlation volume)來限制每層特征金字塔上的搜索范圍。此外,論文這種相關性學習不限于感興趣類別的目標,車輛這些背景信息也被建模用于輔助目標的識別和關系推理。最終建立每個空間位置及其上下文的密集對應關系,并通過自監督學習顯式約束相關量。
而且,目前MOT中的檢測器通常使用單幀圖像輸入,因此并沒有充分利用時序信息(MOT里如何在不損失速度的情況下利用好時間信息其實非常重要),這就造成了密集場景下的漏檢嚴重,增加了后續數據關聯的難度。最近的一些方法開始采用相鄰兩幀甚至三幀來增強時序一致性,它們在遮擋場景下獲得了一定程度的性能改善,但還是受限于幀數。CenterTrack使用更多的數據增強來增強目標對齊的能力,但是卷積神經網絡本身受到局部感受野的限制,為了解決這個問題,作者將空間相關性模塊拓展到時間維度并結合歷史信息以減少目標檢測中的歧義。
綜上所述,這篇論文的貢獻可以總結如下。
- 提出了CorrTracker,這是一個統一的相關性跟蹤器,可以對目標之間的關聯關系密集建模并通過關聯傳輸信息。
- 提出了一個局部結構感知網絡并以自監督學習的方式增強相似性目標的判別能力。同時,將局部關系網絡進行拓展,從而有效建模時序信息。
- 通過在MOT基準數據集上測試,CorrTracker在當前SOTA結果得基礎上有了進一步改善。
CorrTracker方法
整個CorrTracker的pipeline如下圖所示,它可以被精簡為三個階段:(1)通用特征提取;(2)從時空依賴中同時學習相關性并進行檢測預測;(3)將檢測結果關聯到最接近的軌跡上。其中階段(1)和階段(2)是可微的,并組成了一個端到端的可訓練結構。關聯方面,作者采用了一個比較精簡的關聯策略,與DeepSORT中控制軌跡的初始化和終止的策略類似。因此,CorrTracker的主要貢獻是對特征圖上的密集位置和其上下文之間的相關性進行高效建模,這有助于抑制復雜場景中的干擾因素。
下面的敘述按照論文結構進行,首先是方法提出的動機,然后是作者為了提取時空相關性信息而設計的幾個模塊以及自監督的判別性特征學習方式,最后再闡述這些組件構建的整個跟蹤框架。
動機
對每個輸入的視頻幀It∈RH×W×3\mathbf{I}_{t} \in \mathbb{R}^{H \times W \times 3}It?∈RH×W×3,目標檢測器對其檢測得到當前幀所有的候選檢測框Dt={dti}i=1N,dti=(xti,yti,wti,hti)\mathcal{D}_{t}= \left\{\mathbfze8trgl8bvbq_{t}^{i}\right\}_{i=1}^{N}, \mathbfze8trgl8bvbq_{t}^{i}=\left(x_{t}^{i}, y_{t}^{i}, w_{t}^{i}, h_{t}^{i}\right)Dt?={dti?}i=1N?,dti?=(xti?,yti?,wti?,hti?)。現在已有軌跡集Tt?1={Tt?1j}j=1M,Tt?1j={d1j,…,dt?2j,dt?1j}\mathcal{T}_{t-1}=\left\{\mathbf{T}_{t-1}^{j}\right\}_{j=1}^{M}, \mathbf{T}_{t-1}^{j}= \left\{\mathbfze8trgl8bvbq_{1}^{j}, \ldots, \mathbfze8trgl8bvbq_{t-2}^{j}, \mathbfze8trgl8bvbq_{t-1}^{j}\right\}Tt?1?={Tt?1j?}j=1M?,Tt?1j?={d1j?,…,dt?2j?,dt?1j?},它表示到上一幀為止的軌跡集合。現在有MMM個軌跡和NNN個檢測框,因此可以計算出相似度矩陣A∈RN×M\mathbf{A} \in \mathbb{R}^{N \times M}A∈RN×M,其中檢測框使用依據檢測框裁剪的圖像塊提取的外觀特征。這個相似度矩陣同時考慮了外觀特征f(?)∈Rd\mathbf{f}(\cdot) \in \mathbb{R}^ze8trgl8bvbqf(?)∈Rd和幾何表示,計算式如下。
Aij=dist?(f(dti),f^(Tt?1j))+αIoU?(dti,d^tj)\mathbf{A}_{i j}=\operatorname{dist}\left(\mathbf{f}\left(\mathbfze8trgl8bvbq_{t}^{i}\right), \hat{\mathbf{f}}\left(\mathbf{T}_{t-1}^{j}\right)\right)+\alpha \operatorname{IoU}\left(\mathbfze8trgl8bvbq_{t}^{i}, \hat{\mathbfze8trgl8bvbq}_{t}^{j}\right) Aij?=dist(f(dti?),f^(Tt?1j?))+αIoU(dti?,d^tj?)
上面式子中的f^(Tt?1j)\hat{\mathbf{f}}\left(\mathbf{T}_{t-1}^{j}\right)f^(Tt?1j?)表示一個軌跡的判別性特征,它通常隨著軌跡的更新采用一個常數加權的策略進行更新。外觀特征的每個置信度值都是通過距離度量獲得的,如內積空間。但是,僅依靠人與人之間的特征比較通常不足以消除圖像中多個相似區域的歧義。這也是基于外觀特征進行匹配的核心局限所在,因為共同出現的相似目標在MOT里幾乎無處不在。
基于圖像塊的特征提取在MOT里非常流行,因為它很直觀,檢測框框出哪部分就對那部分的像素區域進行高級語義特征的提取。但是,各個目標區域之間的相關性信息就直接丟失了,空間關系也只保留在dti\mathbf{d_t^i}dti?中了。盡管隨后的數據關聯將得到全局優化,但不考慮上下文而直接使用ReID特征往往會引入更多的ID交換,從而使跟蹤的魯棒性下降。為了解決這個問題,作者對目標的局部結構進行建模從而從干擾因素中區分它。
在FlowNet中,correlation volume中的一個置信度值建模了每個目標的幾何結構信息。受此啟發,作者設計了一個新的密集相關性模塊來探索MOT中上下文信息的有效性。此外,相對位置也被編碼在correlation volume中,這可以用作輔助判別信息。
空間局部相關性層
在這篇論文中,作者采用Spatial Local Correlation Layers來建模將目標和其鄰居關聯的關系結構。在這個局部相關性層中,僅在目標和其坐標周圍鄰居之間進行特征相似度評估。令lll表示特征金字塔的層級,Cl\mathbf{C}^lCl表示query特征Fql∈RHl×Wl×dl\mathbf{F}_{q}^{l} \in \mathbb{R}^{H_{l} \times W_{l} \times d_{l}}Fql?∈RHl?×Wl?×dl?和參考特征Frl∈RHl×Wl×dl\mathbf{F}_{r}^{l} \in \mathbb{R}^{H_{l} \times W_{l} \times d_{l}}Frl?∈RHl?×Wl?×dl?之間的correlation volume,那么Cl\mathbf{C}^lCl的計算式如下所示。
Cl(Fq,Fr,x,d)=Fql(x)TFrl(x+d),∥d∥∞≤R\mathbf{C}^{l}\left(\mathbf{F}_{q}, \mathbf{F}_{r}, \mathbf{x}, \mathbfze8trgl8bvbq\right)=\mathbf{F}_{q}^{l}(\mathbf{x})^{T} \mathbf{F}_{r}^{l}(\mathbf{x}+\mathbfze8trgl8bvbq),\|\mathbfze8trgl8bvbq\|_{\infty} \leq R Cl(Fq?,Fr?,x,d)=Fql?(x)TFrl?(x+d),∥d∥∞?≤R
在這個式子中,x∈Z2\mathbf{x} \in \mathbb{Z}^{2}x∈Z2是query特征圖上的一個坐標,d∈Z2\mathbfze8trgl8bvbq \in \mathbb{Z}^{2}d∈Z2則表示從當前位置的位移。這個位移受到約束為∥d∥∞≤R\|\mathbfze8trgl8bvbq\|_{\infty} \leq R∥d∥∞?≤R,即在任何方向的最大運動就是RRR。雖然直觀上,這里使用四維張量更合適一些,但是在CNN中為了簡化處理一般兩個位移維度會被量化為一個。因此,產生的3Dcorrelation volume Cl\mathbf{C}^lCl因此尺寸為Hl×Wl×(2R+1)2H^{l} \times W^{l} \times(2 R+1)^{2}Hl×Wl×(2R+1)2。同時,作者這里也采用了膨脹殘差網絡的技巧來無傷增大感受野。使用逐元素加法將correlation feature合并到統一的外觀表示中,為了實現這個操作,需要對context correlation feature編碼以匹配外觀特征Ftl\mathbf{F}_{t}^{l}Ftl?的通道數dld_ldl?,編碼結構采用MLP。合并后的特征如下表示。
FCl=Ftl+MLPl(Cl(Ftl,Ftl))\mathbf{F}_{\mathbf{C}}^{l}=\mathbf{F}_{t}^{l}+\mathbf{M L P}^{l}\left(\mathbf{C}^{l}\left(\mathbf{F}_{t}^{l}, \mathbf{F}_{t}^{l}\right)\right) FCl?=Ftl?+MLPl(Cl(Ftl?,Ftl?))
和作者提出的相關性結構類似,non-local模塊旨在顯式地建模特征圖Ftl∈RHl×Wl×dl\mathbf{F}_{t}^{l} \in \mathbb{R}^{H^{l} \times W^{l} \times d^{l}}Ftl?∈RHl×Wl×dl上每個元素之間的逐對交互,它會生成一個四維的correlation volume NL(Ftl)∈RHl×Wl×Hl×WlN L\left(\mathbf{F}_{t}^{l}\right) \in \mathbb{R}^{H^{l} \times W^{l} \times H^{l} \times W^{l}}NL(Ftl?)∈RHl×Wl×Hl×Wl。它在單個尺度上建立了全連接的volume,這在計算上開銷巨大并且非常消耗內存。相比之下,這篇論文的方法表明構建一個局部的correlation volume既有效又高效,該結構對模型的延時影響不大。
多層金字塔相關性
為了盡可能捕獲長程依賴,作者提出在特征金字塔上進行correlation的學習,其示意圖如下所示。一方面,作者希望correlation module能夠捕獲盡可能遠距離的依賴,但是隨著局部區域尺寸RRR的增大,計算量和內存占用也會極具增加,這有損于模型的實時推理。另一方面,多目標跟蹤天然需要處理多尺度目標。二階段檢測通過RoI pooling來估計目標尺度的不同,但是這種方法處理較慢。
為了解決上述問題,作者使用卷積神經網絡中通用的金字塔結構并且在特征金字塔上進行相關性學習。這里的多尺度金字塔相關性也可以看作多粒度特征的比較,其覆蓋的空間上下文范圍達到了[0,R×D×2l]\left[0, R \times D \times 2^{l}\right][0,R×D×2l],這里的DDD表示膨脹率。接著,將這個相關性結果自頂向下傳遞,傳遞方式如下。
F^Cl?1=Conv(Upsample(FCl))+FCl?1\hat{\mathbf{F}}_{\mathbf{C}}^{l-1}=\mathbf{C o n v}\left(\mathbf{U p s a m p l e}\left(\mathbf{F}_{\mathbf{C}}^{l}\right)\right)+\mathbf{F}_{\mathbf{C}}^{l-1} F^Cl?1?=Conv(Upsample(FCl?))+FCl?1?
這樣,可以在保持緊湊性和效率的同時,獲得目標與整個全局上下文之間的近似相關性。pyramid correlation利用了視頻中自然的時空連貫性。MOT可以分解為多個獨立的SOT。論文的方法可以等效于特征金字塔上的密集孿生網絡跟蹤。另一方面,從集合匹配的角度來看,需要考慮全局特征。多尺度關聯考慮了信息傳輸的兩個方面。
時序相關性學習
在MOT領域,不同幀之間的相關性常常被忽略,跟蹤器一般通過數據關聯來克服遮擋問題。單幀檢測器很難確保良好的時間一致性,這使得算法在遮擋、運動模糊和小目標場景下的性能顯著下降,這也成為MOT的瓶頸。作者拓展了上文設計的空間局部相關性到時間維度上,建立了不同幀上目標的相關性。兩個幀之間的相關性可以看作是運動信息的學習。作者使用這種相關性來增強特征表示,從而可以提高檢測精度。
具體來看,作者在不同的幀之間建立多尺度相關性并且使用參考圖像作為memory來增強圖像特征,這個方法幫助跟蹤器克服目標遮擋和運動模糊等問題,并且增強了檢測和識別特征的一致性。
F^q(x)=∑?∥d∥∞<RCl(Fq,Fr,x,d)(2R+1)2Fr(x+d)\hat{\mathbf{F}}_{q}(\mathbf{x})=\sum_{\forall\|\mathbfze8trgl8bvbq\|_{\infty}<R} \frac{\mathbf{C}^{l}\left(\mathbf{F}_{q}, \mathbf{F}_{r}, \mathbf{x}, \mathbfze8trgl8bvbq\right)}{(2 R+1)^{2}} \mathbf{F}_{r}(\mathbf{x}+\mathbfze8trgl8bvbq) F^q?(x)=?∥d∥∞?<R∑?(2R+1)2Cl(Fq?,Fr?,x,d)?Fr?(x+d)
Cl(Fq,Fr,x,d)=Fql(x)TFrl(x+d),∥d∥∞≤R\mathbf{C}^{l}\left(\mathbf{F}_{q}, \mathbf{F}_{r}, \mathbf{x}, \mathbfze8trgl8bvbq\right)=\mathbf{F}_{q}^{l}(\mathbf{x})^{T} \mathbf{F}_{r}^{l}(\mathbf{x}+\mathbfze8trgl8bvbq),\|\mathbfze8trgl8bvbq\|_{\infty} \leq R Cl(Fq?,Fr?,x,d)=Fql?(x)TFrl?(x+d),∥d∥∞?≤R
上面的式子是時間correlation volume的計算方式,類似多頭注意力,這里采用嵌入特征和點積相似度。標準化因子設置為(2R+1)2(2 R+1)^{2}(2R+1)2并且局部進行特征聚合。這種縮小區域的設計也源于MOT場景下的運動先驗。為了最小化內存消耗和最快的運行時間,作者只能將以前的特征Ft?1\mathbf{F}_{t-1}Ft?1?保存在內存中。 為了獲得最大的準確性,長程模型默認情況下會保存最新的5幀圖像特征。
自監督特征學習
在上面的幾節中,介紹了如何在空間和時間維度上建模相關性。correlation module可以作為一個插件模塊,在不需要顯式引入約束的前提下嵌入網絡中,類似non-local模塊。作者研究了一種多任務學習方法,該方法實施了一種來自視覺目標跟蹤的語義監督和來自correspondence flow的基于correlation的自監督訓練。這里的correlation module是可解釋的,它評估不同目標之間的相似性。實際上,論文的方法會密集進行M×NM \times NM×N次孿生跟蹤操作以增加判別度。從這個角度來看,可以顯式施加跟蹤監督。具體來看,GT標簽設置如下,其中的y\mathbf{y}y是特征圖中相應位置的ID標簽。忽略沒有目標的位置即yq(x)<0\mathbf{y}_{q}(\mathbf{x})<0yq?(x)<0并且使用類平衡交叉熵損失進行訓練。
C~l(Fq,Fr,x,d)={1if?yq(x)=yr(x+d)0if?yq(x)!=yr(x+d)?1if?yq(x)<0\tilde{C}^{l}\left(\mathbf{F}_{q}, \mathbf{F}_{r}, \mathbf{x}, \mathbfze8trgl8bvbq\right)=\left\{\begin{array}{c} 1 \text { if } \mathbf{y}_{q}(\mathbf{x})=\mathbf{y}_{r}(\mathbf{x}+\mathbfze8trgl8bvbq) \\ 0 \text { if } \mathbf{y}_{q}(\mathbf{x}) !=\mathbf{y}_{r}(\mathbf{x}+\mathbfze8trgl8bvbq) \\ -1 \text { if } \mathbf{y}_{q}(\mathbf{x})<0 \end{array}\right. C~l(Fq?,Fr?,x,d)=????1?if?yq?(x)=yr?(x+d)0?if?yq?(x)!=yr?(x+d)?1?if?yq?(x)<0?
受到最近的自監督跟蹤的啟發,作者使用著色作為代理任務來訓練局部相關性模塊,在將顏色空間量化為離散類別之后,使用交叉熵分類損失。從reference圖像到query圖像的的變換如下。
I^q(x)=∑?∥d∥∞<RCl(Fq,Fr,x,d)(2R+1)2Ir(x+d)\hat{\mathbf{I}}_{q}(\mathbf{x})=\sum_{\forall\|\mathbfze8trgl8bvbq\|_{\infty}<R} \frac{\mathbf{C}^{l}\left(\mathbf{F}_{q}, \mathbf{F}_{r}, \mathbf{x}, \mathbfze8trgl8bvbq\right)}{(2 R+1)^{2}} \mathbf{I}_{r}(\mathbf{x}+\mathbfze8trgl8bvbq) I^q?(x)=?∥d∥∞?<R∑?(2R+1)2Cl(Fq?,Fr?,x,d)?Ir?(x+d)
跟蹤框架
最后,介紹了這么多模塊、這么多訓練方法,再來回顧一下整個pipeline,這里的backbone作者采用和FairMOT類似的設計,只是在IDA模塊前加了個correlation模塊。保持原有的檢測和ReID分支的前提下,增加了一個correlation loss來進行多任務學習。使用匈牙利算法基于相似度矩陣對當前幀檢測和歷史軌跡進行匹配。未匹配的檢測用來初始化新的軌跡,為了減少假陽性,將這些新軌跡標記為"inactive"知道下一幀依然匹配上才確認為"active"。未匹配的軌跡設置為"lost"狀態,當連續lost時間tlosst_{loss}tloss?達到閾值τloss\tau_{loss}τloss?時,將其移入移出集中。如果在移入前重新匹配上,則恢復這個軌跡。使用卡爾曼濾波來建模運動,這和FairMOT類似。
實驗
作者設計了不少實驗,具體的實驗配置詳見原文,基本上保持和FairMOT一直,不過在特征圖上采樣之前使用了3x3的可變形卷積進行變換,這是最近特征圖融合的一個常見技巧。
作者先是進行了一些消融實驗,驗證空間相關性模塊、時間相關性模塊、長程依賴、自監督訓練以及局部區域尺寸的影響,實驗結果如下圖。
當然,也要和sota比一比,對比結果如下圖,多個精度指標上都顯示SOTA表現,速度上也不算很慢。
做了一些相應的可視化,對比幾個方法的軌跡如下,其他方法的都會出現IDS,CorrTracker依賴強大的關系建模不會出現嚴重的IDS。
總結
這篇論文中,作者提出了新的相關性跟蹤框架CorrTracker,設計的correlation模塊對每個位置及其局部上下文之間密集匹配構建correlation volume并從中學習判別性的embedding,并將該模塊從空間維度拓展到時間維度上。此外,作者還采用了自監督方法對correlation volume施加判別性約束預測實例流。總的來說,這篇文章的干貨還是非常多的,本文也只是我本人從自身出發對這篇文章進行的解讀,想要更詳細理解的強烈推薦閱讀原論文。最后,如果我的文章對你有所幫助,歡迎一鍵三連,你的支持是我不懈創作的動力。
總結
以上是生活随笔為你收集整理的CorrTracker解读的全部內容,希望文章能夠幫你解決所遇到的問題。