TransCenter解读
本文介紹這篇出自MIT的多目標跟蹤方向的新論文,其將transformer和基于Center的目標檢測與跟蹤聯合到一起,設計了一個全新的多目標跟蹤框架,超越了此前的TransTrack和TrackFormer,一舉沖到了SOTA方法精度的最前列,不過這篇文章從MOT Challenge上的指標來看,速度并不快。
簡介
此前transformer方法已經被引入了多種任務并取得了很好的表現,計算機視覺當然也不例外,已經出現了很多在視覺中很不錯的transformer結構并且有愈發流行的趨勢。然而transformer結構仍然與多目標跟蹤任務存在某種不兼容,這篇論文作者認為標準的邊界框表示不適用于transformer的學習。受到最近研究的啟發,作者提出了第一個基于transformer并且以點(center)的形式進行多個目標跟蹤的MOT框架,名為TransCenter。方法論方面,作者提出在雙解碼器網絡中使用密集query,這樣可以非常可靠地推理目標中心heatmap并且沿著時間對其進行關聯。實驗證明,TransCenter在多個基準數據集上均獲得了SOTA表現,包括典型地MOT17和MOT20。
-
論文標題
TransCenter: Transformers with Dense Queries for Multiple-Object Tracking
-
論文地址
http://arxiv.org/abs/2103.15145
-
論文源碼
暫未開源
介紹
多目標跟蹤任務(Multiple Object Tracking,MOT)簡單來說,就是在一個場景中同時推理出不同目標的位置和ID,其在計算機視覺中屬于一個核心任務。大量的基礎數據集和評估方法的提出有助于MOT領域的快速發展,世界范圍內的研究者可以通過MOT Challenge來評估自己團隊提出的算法。
最近這段時間,大量的任務開始使用transformer來實現自己的框架,如行人檢測、行人重識別、圖像超分辨率等。基于transformer的結構是否適用于MOT還是一個值得斟酌的問題,TransTrack和TrackFormer已經對此進行了嘗試并獲得了不錯的效果。然而,論文作者認為至今為止的基于transformer的MOT方法采用的行人表示方法是不適用于transformer結構的學習的。TransTrack和TrackFormer均采用邊界框(bounding box,bbox),bbox表示法是非常直觀的,它可以很好地和概率學方法和深度卷積神經網絡相結合,因而在MOT中也廣泛使用。在處理非常擁擠的場景時,使用bbox來跟蹤多個目標的一個突出缺點就體現出來了,因為GT框經常相互重疊,所以遮擋很難處理。這是有問題的,因為這些bbox會在訓練中使用,它不僅返回每個人的位置、寬度和高度,而且區分與每個軌跡相關的視覺外觀。然而,在這種情況下,重疊bbox意味著訓練一個視覺外觀表示,該表示結合了兩個甚至更多的人的外觀信息,這就會造成關聯的歧義。 當然,聯合處理跟蹤和分割任務(即進行MOTS任務)可以部分解決遮擋問題。然而,這需要有額外的像素級標注,這是非常繁瑣和昂貴的。目前MOT的幾個比較公認的基準數據集并沒有分割標注。
那么,有沒有緩解這種由bbox帶來的混淆問題呢,其實此前的CenterTrack和FairMOT已經證明了用點來表示目標的高效性,因此論文作者提出了一種新的基于transformer的使用行人中心點進行跟蹤的框架,即TransCenter。因此,相比于直接從transformer目標檢測器Deformable DETR和DETR發展而來的TransTrack和TrackFormer,TransCenter的主要區別在于,它可以緩解bbox跟蹤固有的遮擋問題,而不需要額外的分割級別標注。 雖然這種設計靈感非常簡單,但是設計一個高效的基于transformer的結構來實現這種靈感還需要很多的路要走。
事實上,第一個挑戰就是密集表示的推理,即中心熱力圖(center heatmaps)的生成。對此,作者提出了像素級的密集多尺度query,這個策略不僅僅實現了基于heatmap的MOT,同時也克服了只用少量query對decoder進行查詢的限制(DETR和Deformable DETR就是使用的少量可學習的query)。和TransTrack類似,TransCenter也有兩個不同的decoder,一個負責檢測任務另一個負責跟蹤任務。這兩個decoder的query都是源于當前幀圖像,不過通過不同的層學習得到。不過,當前幀的memory(transformer結構encoder的輸出)會傳給檢測decoder,前一幀的memory才會傳給跟蹤decoder。基于這些設計,作者設計的TransCenter達到了目前MOT方法的SOTA精度,幾種基于transformer或者center表示的MOT方法跟蹤結果的比較如下圖,可以看到基于transformer的結構采用稀疏query的話會造成粉色箭頭那樣的漏檢,嚴重遮擋下也會造成綠色箭頭那樣的誤檢。以前的基于center的幾個MOT方法有著同樣的問題,因為center是相互獨立進行估計的。TransCenter則通過使用密集的(像素級)多尺度query來實現基于熱圖的推理,并利用注意機制來引入預測center點之間的相互依賴(也就是每個center都和其他center通過自注意力建立了依賴),從而緩解這兩種不利影響。
TransCenter
針對此前transformer在MOT中的嘗試,它們都將邊界框作為目標的表示方式進行推理,作者認為這個選擇是不合適的,并且探索了最近很流行的基于中心熱力圖的表示。但是,相比于bbox這種稀疏表示,熱度圖是一種密集表示,因此,作者引入了密集多尺度query到計算機視覺中的transformer結構中。事實上,據作者所知,這是第一個提出使用隨輸入圖像大小縮放的密集query特征圖的工作。在TransCenter這個工作中,query大概由14k個,因此使用密集query的一個缺點是相關的巨大內存消耗。為了減輕這種不良的影響,作者提出采用可變形的decoder,其靈感來自可變形卷積(DCN)。
具體而言,TransCenter將多目標跟蹤問題分為兩個獨立的子任務:在ttt時刻的目標檢測任務,以及在t?1t?1t?1時刻的與檢測到的目標的數據關聯任務。不過,和此前的原題相同的其他工作相比,TransCenter采用了不同的處理思路,通過一個全可變雙解碼器結構并行完成了這兩個任務。detection decoder的輸出用來估計目標的中心和大小,結合tracking decoder的輸出來估計目標相對于前一幀圖像的位移。將中心熱圖與雙解碼器架構結合使用的一個好處是,沿著時間的目標關聯不僅取決于幾何特征(如IoU),還取決于來自解碼器的視覺特征(即外觀特征)。
結構簡述
整個TransCenter的架構如下圖所示,第ttt幀和第t?1t-1t?1幀的圖像被送入提取特征的backbone中來產生多尺度特征并和Deformable DETR那樣捕獲更細粒度的細節信息,然后,這些特征進入可變自注意力encoder中,獲得多尺度memory特征圖MtM_tMt?和Mt?1M_{t-1}Mt?1?,它們分別對應第ttt幀圖像和第t?1t-1t?1幀圖像。接著,MtM_tMt?被送入一個query學習網絡,這是一個像素級的全連接網絡,它輸出一個包含密集多尺度檢測query的特征圖DQtDQ_tDQt?。同時,DQtDQ_tDQt?被送入另一個query學習網絡產生密集多尺度跟蹤query特征圖TQtTQ_tTQt?。接著,后面是兩個可變decoder結構,圖上從上向下分別是可變跟蹤解碼器(Deformable Tracking Decoder)和可變檢測解碼器(Deformable Detection Decoder)。我們先來看檢測解碼器,它通過檢測query DQtDQ_tDQt?從memory MtM_tMt?中查詢當前幀信息從而輸出多尺度檢測特征DFtDF_tDFt?,跟蹤解碼器則利用跟蹤query TQtTQ_tTQt?從memory Mt?1M_{t-1}Mt?1?中查詢得到多尺度跟蹤特征TFtTF_{t}TFt?。接著,檢測多尺度特征DFtDF_tDFt?被用來進行中心熱力圖CtC_tCt?的估計和邊框尺寸StS_tSt?估計。另一個分支上,跟蹤多尺度特征TFtTF_tTFt?和上一幀的中心熱力圖Ct?1C_{t-1}Ct?1?以及多尺度檢測特征圖DFtDF_tDFt?用來進行跟蹤位移TtT_tTt?的估計。
上文整體上講了講TransCenter的pipeline,下文會更具體分別講解各個組件,包括密集多尺度query的設計、全可變雙解碼器結構、三個任務分支以及訓練損失。
密集多尺度query
傳統的transformer結構中,輸出的元素數目和decoder輸入的query數目相同,而且,每個輸出對應一個尋找的實體(如行人檢測框)。當推斷中心熱力圖時,在給定像素處有一個人的中心的概率成為這些尋求的實體之一,因此要求transformer解碼器接受密集的query。這些query可以通過多尺度encoder生成的memory來生成,一個query learning network(QLN)通過像素級的前饋操作獲得DQtDQ_tDQt?,使用不同的query用于;兩個不同的decoder,因此另有一個QLN通過DQtDQ_tDQt?生成TQtTQ_tTQt?,這兩個query會送入兩個不同的decoder中,這個decoder的設計后文詳解,首先來分析一波這個密集query的好處。
事實上,密集query特征圖的分辨率與輸入圖像的分辨率成正比有兩個突出的優點。首先,query可以是多尺度的,并利用encoder的多分辨率結構,允許非常小的目標被這些query捕獲。其次,密集query也使網絡更加靈活,能夠適應任意大小的圖像。更普遍而言,QLN的使用避免了以前的視覺transformer架構中所做的那樣進行手工調整query大小和預先選擇最大檢測數量。
全可變雙解碼器
為了找到目標的軌跡,一個MOT方法不僅僅需要檢測出目標還需要進行跨幀關聯。為此,TransCenter提出了一個全可變雙解碼器結構,這兩個解碼器并行處理檢測和跟蹤兩個子任務。detection decoder利用注意力關聯DQtDQ_tDQt?到MtM_tMt?上對第ttt幀的圖像ItI_tIt?進行目標檢測,tracking decoder關聯TQtTQ_tTQt?與Mt?1M_{t-1}Mt?1?來將檢測到的目標根據它們在前一幀圖像It?1I_{t-1}It?1?的位置來進行數據關聯。
具體來看,detection decoder利用多尺度DQtDQ_tDQt?在多尺度特征圖MtM_tMt?上進行搜索,得到多尺度檢測特征DFtDF_tDFt?,它被后續head用于目標中心點定位和邊框尺寸回歸。tracking decoder做的事則不太一樣,它在Mt?1M_{t-1}Mt?1?特征圖上尋找目標,并和幀ttt上的目標進行關聯,要想實現這個功能,tracking decoder中的多頭可變注意力其實是一個時序互相關模塊,它尋找多尺度query TQtTQ_tTQt?和Mt?1M_{t-1}Mt?1?特征圖之間的互相關系,并輸出多尺度跟蹤特征TFtTF_tTFt?,這個特征包含了跟蹤分支進行ttt到t?1t-1t?1的偏移預測需要的時序信息。
這兩個decoder輸入的都是密集query特征圖所以輸出的同樣是密集信息,因此如果使用原始Transformer中的多頭注意力模塊在TransCenter中的話,意味著內存和復雜性增長是輸入圖像尺寸的二次方倍,即O(H2W2)O\left(H^{2} W^{2}\right)O(H2W2)。當然,這是不可取的,并且會限制方法的可伸縮性和可用性,尤其是在處理多尺度特性時。自然,作者考慮到可變形的多頭注意力,從而形成了完全可變形的雙解碼器架構。
中心、尺存和跟蹤分支
兩個解碼器的輸出是兩個多尺度特征集,分別為檢測特征DFtDF_tDFt?和跟蹤特征TFtTF_tTFt?,具體而言,它們包含四個分辨率的特征圖,分別是原圖尺寸的1/64,1/32,1/161 / 64,1 / 32,1 / 161/64,1/32,1/16和1/81 / 81/8,對于中心點定位和尺寸回歸兩個分支,不同分辨率的特征圖通過可變形卷積核雙線性插值組合到一起,結構如下圖所示,可以看到,四個尺度的特征圖輸出進去通過逐漸上采樣融合到一起,得到最大的特征圖Ct∈[0,1]H/4×W/4\mathbf{C}_{t} \in[0,1]^{H / 4 \times W / 4}Ct?∈[0,1]H/4×W/4,它用于中心熱力圖的生成。類似下圖,尺寸回歸也會產生一個類似的最終特征圖St∈RH/4×W/4×2\mathbf{S}_{t} \in \mathbb{R}^{H / 4 \times W / 4 \times 2}St?∈RH/4×W/4×2,它擁有兩個通道,分別表示寬度核高度兩個方向的尺寸。
接著考慮跟蹤分支,和上面兩個分支的處理思路一樣(參數不同)得到兩個多尺度特征圖,尺寸也為1/41/ 41/4的原圖分辨率。接著這兩個特征圖和上一幀中心熱力圖縮放后的結構聯結到一起,依據這個特征圖,類似其他分支,通過卷積操作計算最終輸出即目標的位移Tt∈RH/4×W/4×2\mathbf{T}_{t} \in \mathbb{R}^{H / 4 \times W / 4 \times 2}Tt?∈RH/4×W/4×2,它也是兩個通道的,表示水平方向和垂直方向的位移預測。
訓練損失
TransCenter的訓練是中心熱力圖分類、目標尺寸回歸和跟蹤位移回歸三個任務聯合訓練的,下面分別來看這三個分支。
首先是中心預測分支,為了訓練這個分支首先需要構建GT熱力圖C?∈[0,1]H/4×W/4\mathbf{C}^{*} \in[0,1]^{H / 4 \times W / 4}C?∈[0,1]H/4×W/4,這里的思路和CenterTrack一致,通過考慮以每KKK個GT目標為中心的高斯核的最大響應來構建C?\mathbf{C}^{*}C?。公式層面看,對每個像素位置(x,y)(x,y)(x,y)而言,它的GT熱力圖通過下式計算,這里的(xk,yk)(x_k,y_k)(xk?,yk?)為GT目標中心,G(?,?;σ)G(\cdot, \cdot ; \sigma)G(?,?;σ)是擴展為σ\sigmaσ的高斯核函數,在該工作中,σ\sigmaσ與目標的大小成比例,如CornerNet的策略。
Cxy?=max?k=1,…,KG((x,y),(xk,yk);σ)\mathbf{C}_{x y}^{*}=\max _{k=1, \ldots, K} G\left((x, y),\left(x_{k}, y_{k}\right) ; \sigma\right) Cxy??=k=1,…,Kmax?G((x,y),(xk?,yk?);σ)
有了GT熱力圖C?\mathbf{C}^{*}C?和預測熱力圖C\mathbf{C}C,就可以計算中心focal loss LCL_{\mathrm{C}}LC?了,計算式如下,縮放因子α=2\alpha = 2α=2,β=4\beta = 4β=4。
LC=1K∑xy{(1?Cxy)αlog?(Cxy)Cxy?=1(1?Cxy?)β(Cxy)αlog?(1?Cxy)otherwise?L_{\mathrm{C}}=\frac{1}{K} \sum_{x y}\left\{\begin{array}{ll} \left(1-\mathbf{C}_{x y}\right)^{\alpha} \log \left(\mathbf{C}_{x y}\right) & \mathbf{C}_{x y}^{*}=1 \\ \left(1-\mathbf{C}_{x y}^{*}\right)^{\beta}\left(\mathbf{C}_{x y}\right)^{\alpha} \log \left(1-\mathbf{C}_{x y}\right) & \text { otherwise } \end{array}\right. LC?=K1?xy∑?{(1?Cxy?)αlog(Cxy?)(1?Cxy??)β(Cxy?)αlog(1?Cxy?)?Cxy??=1?otherwise??
接著,來看兩個回歸分支,從整個pipeline那個圖上看,其實尺寸回歸和位移回歸分別對應St\mathbf{S}_tSt?和Tt\mathbf{T}_tTt?,下面為了敘述方便簡稱為S\mathbf{S}S和T\mathbf{T}T。對S\mathbf{S}S和T\mathbf{T}T的監督只發生在目標中心點上,即Cxy?=1C_{x y}^{*}=1Cxy??=1處,對尺寸的回歸采用L1L_1L1?損失,公式如下。
LS=1K∑xy{∥Sxy?Sxy?∥1Cxy?=10otherwise?L_{\mathrm{S}}=\frac{1}{K} \sum_{x y}\left\{\begin{array}{ll} \left\|\mathbf{S}_{x y}-\mathbf{S}_{x y}^{*}\right\|_{1} & \mathbf{C}_{x y}^{*}=1 \\ 0 & \text { otherwise } \end{array}\right. LS?=K1?xy∑?{∥∥?Sxy??Sxy??∥∥?1?0?Cxy??=1?otherwise??
跟蹤分支的損失計算式LTL_TLT?和LSL_SLS?是類似的,但它作用于跟蹤輸出和相應的GT而不是目標的尺寸。同時,為了保證LSL_SLS?和LTL_TLT?的稀疏性,作者額外加了一個L1L_1L1?損失,記為LRL_RLR?,它是一個邊框損失,邊框來源于尺寸特征圖StS_tSt?和GT中心點。
所以,整個TransCenter的訓練損失如下式所示,它是各個損失的加權求和的結果,權重稀疏依據損失的數值尺度確定。
L=LC+λSLS+λTLT+λRLRL=L_{\mathrm{C}}+\lambda_{\mathrm{S}} L_{\mathrm{S}}+\lambda_{\mathrm{T}} L_{\mathrm{T}}+\lambda_{\mathrm{R}} L_{\mathrm{R}} L=LC?+λS?LS?+λT?LT?+λR?LR?
實驗
關于數據集的選擇、優化器等參數的設置、推理的具體配置我這里就不多贅述,詳細可以參考原論文,關于訓練流程我簡單說一下,作者這里首先使用COCO上的行人類別預訓練,然后在具體的MOT數據集上fine-tuning。具體的,在兩張RTX Titan GPU上以2為batch size,在MOT20和MOT17上一輪分別需要1h30min和1h。
下面兩個表分別是TransCenter在MOT17和MOT20上和SOTA方法的對比,其中Data欄表示是否使用額外數據加入訓練,CH表示使用CrownHuman數據集,PT表示使用PathTrack數據集,RE表示組合Market1501、CUHK01和CUHK03三個重識別數據集,5D1表示使用CrowdHuman, Caltech Pedestrian, CityPersons, CUHK-SYS,和PRW數據集,5D2表示同5D1只是將CrowdHuman換為ETH數據集,No則表示不使用額外數據。不難發現,忽略速度不談,TransCenter在不使用額外數據集的情況下已經超越了很多SOTA方法,達到先進水平。
此外,作者還進行了幾個消融實驗,包括單解碼器、重識別模塊、純檢測、不加LRL_RLR?等策略的效果,具體可以查看論文原文,下面放幾張MOT20測試集上的跟蹤可視化結果。
總結
TransCenter開創性地將基于Transformer的MOT和基于center的MOT結合到一起,構建了一個雙解碼器的跟蹤框架,超越了諸多當前的SOTA方法,是很值得關注的工作。當然,論文里很多細節創新點很多,單從整體上來看,其實還是使用Transformer進行更好的特征提取,包括時序信息。本文也只是我本人從自身出發對這篇文章進行的解讀,想要更詳細理解的強烈推薦閱讀原論文。最后,如果我的文章對你有所幫助,歡迎一鍵三連,你的支持是我不懈創作的動力。
總結
以上是生活随笔為你收集整理的TransCenter解读的全部內容,希望文章能夠幫你解決所遇到的問題。