論文位址:Spatial-Temporal Graph Transformer for Multiple Object Tracking
STGT
- 介紹與相關工作
- 概述
- 時空圖Transformer
-
- 時空圖Transformer編碼器
-
- 空間圖Transformer編碼層
- 時間Transformer編碼層
- 空間圖Transformer解碼器
- 訓練
- 級聯比對架構
- 實驗
介紹與相關工作
Transformer的成功證明了一種通過自注意力機制模組化時間獨立性的新範式的出現。最近有工作已經證明了直接使用Transformer模組化時空關系的可行性,但是實驗表現不是很好。
主要有幾個原因:
- 一個視訊包含大量目标,由于沒有考慮目标的時空結構,使用一般的Transformer來模組化這些目标的時空關系是低效的。
- 訓練一個Transformer去模組化長程時空獨立性需要很多計算資源以及資料。
- 基于DETR的檢測器對于MOT任務而言并非最優。
基于以上問題,作者提出了STGT網絡,通過将追蹤目标軌迹視作稀疏賦權圖來建構目标間的空間關系。基于此圖,STGT建構一個空間圖transformer編碼器、時間transformer編碼器和一個空間transformer解碼器。由于稀疏圖,是以訓練和推理時的計算十分高效。并且由于探索了目标間的結構資訊,是以比一般的transformer也更有效。
同時提出了一個級聯關聯架構來處理低的分的檢測和長程遮擋。通過此架構,STGT不需要訓練學習相關處理。
早期的工作如Transtrack,使用DETR進行目标檢測和特征提取,通過transformer模組化軌迹和檢測之間的時空關系。作者提出的STGT架構利用空間圖transformer模組化軌迹和檢測之間的時空關系,并且通過分解時空編碼器,實作模型有效建構。
概述
主要架構如上,基于DBT範式。架構中包含一個 N t − 1 N_{t-1} Nt−1的軌迹集合,每個軌迹代表一個追蹤目标。每個軌迹 L i t − 1 \mathcal L_i^{t-1} Lit−1包含一個狀态集合,如其在之前T幀上的位置資訊 { x ^ t ′ I } t ′ = t − T t − 1 \{\hat x^I_{t'}\}^{t-1}_{t'=t-T} {x^t′I}t′=t−Tt−1和外貌特征 { f ^ t ′ I } t ′ = t − T t − 1 \{\hat f^I_{t'}\}^{t-1}_{t'=t-T} {f^t′I}t′=t−Tt−1。對于新的一幀圖檔 I t I_t It,線上追蹤算法評估是否追蹤目标仍存在或者被遮擋,為已存在軌迹 X ^ t = { x ^ i t } i = 1 N t \hat X_t = \{\hat x^t_{i}\}^{N_t}_{i=1} X^t={x^it}i=1Nt計算新的位置資訊,為新目标産生新軌迹。
如上圖,架構主要包括兩部分:檢測和特征提取子網絡,時空圖transformer關聯子網絡。每一幀,檢測和特征提取子網絡會産生 M t M_t Mt個候選目标檢測proposal O t = { o j t } j = 1 M t O_t = \{o_j^t\}^{M_t}_{j=1} Ot={ojt}j=1Mt以及其對應的視覺特征。時空圖transformer會為每個軌迹找到最合适的proposal,并且為具體事件模組化。
對于每個軌迹 L i t − 1 L_i^{t-1} Lit−1,最好的比對是通過計算和proposal o t j o_t^j otj的最大親密度得分: φ ( L i t − 1 , o j t ) φ(L_i^{t-1},o_j^t) φ(Lit−1,ojt), φ ( ⋅ ) φ(·) φ(⋅)是一個得分公式,用于計算親密度。考慮所有的軌迹,則問題可以被公式化為一個優化問題: max A t = ( a i j t ) ∑ i = 1 N t − 1 ∑ j = 1 M t a i j t ϕ ( L i t − 1 , o j t ) (1) \max _{A^{t}=\left(a_{i j}^{t}\right)} \sum_{i=1}^{N_{t-1}} \sum_{j=1}^{M_{t}} a_{i j}^{t} \phi\left(\mathbf{L}_{i}^{t-1}, o_{j}^{t}\right) \tag{1} At=(aijt)maxi=1∑Nt−1j=1∑Mtaijtϕ(Lit−1,ojt)(1) s.t. { ∑ i a i j t = 1 , ∀ i = 1 , … , N t − 1 ∑ j a i j t = 1 , ∀ j = 1 , … , M t a i j t ∈ { 0 , 1 } , ∀ i = 1 , … , N t − 1 ; j = 1 , … , M t (2) \text { s.t. }\left\{\begin{array}{ll} \sum_{i} a_{i j}^{t}=1, & \forall i=1, \ldots, N_{t-1} \\ \sum_{j} a_{i j}^{t}=1, & \forall j=1, \ldots, M_{t} \\ a_{i j}^{t} \in\{0,1\}, & \forall i=1, \ldots, N_{t-1} ; j=1, \ldots, M_{t} \end{array}\right. \tag{2} s.t. ⎩⎨⎧∑iaijt=1,∑jaijt=1,aijt∈{0,1},∀i=1,…,Nt−1∀j=1,…,Mt∀i=1,…,Nt−1;j=1,…,Mt(2)
A t = ( a i j t ) A^t = (a^t_{ij}) At=(aijt)表示軌迹 L t − 1 = { L i t − 1 } i = 1 N t L^{t-1} = \{L^{t-1}_i\}^{N_t}_{i=1} Lt−1={Lit−1}i=1Nt和檢測候選 O t O^t Ot之間的關聯。公式2為限制。
公式1和2倍重新整合為一個單獨函數: A t = Φ ( L t − 1 , O t ) A^t = Φ(L^{t−1}, O^t) At=Φ(Lt−1,Ot), L t − 1 L^{t−1} Lt−1和 O t O^t Ot分别組成所有的軌迹和候選。
為模組化時空關聯,作者為每幀的proposals建構了一個賦權空間圖 Θ t Θ^t Θt,同時還有過去T幀的需追蹤目标的賦權空間圖集合 Ξ t − 1 = { ξ t − T , ξ 2 , . . . , ξ t − 1 } Ξ^{t−1} = \{ξ^{t−T}, ξ^2, . . . , ξ^{t−1}\} Ξt−1={ξt−T,ξ2,...,ξt−1}。時空圖神經網絡利用這些圖建構一個有效的時空圖transformer,來模組化追蹤目标和新産生的proposal之間的關系。最終會産生一個配置設定矩陣 A ‾ t \overline {A}^t At,用于更新追蹤目标,同時通過後處理模型對特殊事件(遮擋等)進行處理。
時空圖Transformer
時空圖Transformer通過圖 Ξ t − 1 Ξ^{t−1} Ξt−1和 Θ t Θ^t Θt學習一個映射 Φ ( ⋅ ) Φ(·) Φ(⋅)模組化時空關系,産生配置設定矩陣 A ‾ t \overline {A}^t At。該子產品包括三部分:空間圖Transformer編碼層、時間Transformer編碼層和一個空間圖Transformer解碼層。作者通過自注意力機制來提出圖多頭注意力來模組化軌迹和候選之間的空間關系。
時空圖Transformer編碼器
作者将Transformer分解為兩部分,一個為空間圖Transformer編碼層來模組化軌迹間的空間關系,一個為時間Transformer編碼層進一步融合和編碼軌迹的空間和時間資訊。
空間圖Transformer編碼層
該子產品的輸入為過去T幀的軌迹狀态,用包含軌迹特征的軌迹圖序列來表示 Ξ t − 1 = { ξ t − T , ξ 2 , . . . , ξ t − 1 } Ξ^{t−1} = \{ξ^{t−T}, ξ^2, . . . , ξ^{t−1}\} Ξt−1={ξt−T,ξ2,...,ξt−1},其中 ξ t − 1 = G ( { x i t − 1 } , E X t − 1 , w X t − 1 ) ξ^{t−1} = G(\{x_i^{t-1}\},E_X^{t-1},w_X^{t-1}) ξt−1=G({xit−1},EXt−1,wXt−1)表示t-1幀的軌迹空間圖,其中的 x i t − 1 x_i^{t-1} xit−1表示該幀第 i i i個軌迹的狀态,并且如果兩個節點相應的邊界框的IoU大于0,則存在一條邊 E X t − 1 E_X^{t-1} EXt−1将他們關聯,此 w X t − 1 w_X^{t-1} wXt−1中邊的權重設為IoU值。權重矩陣 w X t − 1 ∈ R N t − 1 × N t − 1 w_X^{t-1}\in R^{N_{t-1}\times N_{t-1}} wXt−1∈RNt−1×Nt−1,為一個稀疏矩陣, ( i , j ) (i,j) (i,j)表示連接配接節點 i i i和 j j j的邊的權重,未連接配接則為0。
軌迹的特征首先通過一個獨立于節點的線性層進行嵌入。所有節點特征組成一個特征張量 F s ∈ R N t − 1 × T × D F_s\in R^{N_{t-1}\times T\times D} Fs∈RNt−1×T×D,D表示該線性層的嵌入次元。将其傳入時空Transformer編碼層如下圖。該層内,一個多頭圖注意力子產品用來進行自注意力操作,子產品獲得特征圖 F s F_s Fs和圖權重 w X t − 1 w_X^{t-1} wXt−1,生成第 i i i個頭的自注意力權重: F i A W = softmax [ φ ( F s , W i Q , W i K ) ∘ w X t − 1 ] (3) \mathcal{F}_{i}^{A W}=\operatorname{softmax}\left[\varphi\left(\mathcal{F}_{s}, W_{i}^{Q}, W_{i}^{K}\right) \circ w_{X}^{t-1}\right] \tag{3} FiAW=softmax[φ(Fs,WiQ,WiK)∘wXt−1](3)
φ ( ⋅ ) φ(·) φ(⋅)表示正常縮放的點積,來獲得注意力權重,∘表示元素級别的乘法,可以看做是計算每個獨立時間戳的空間圖的自注意力。
多頭圖注意力利用圖權重 w X t − 1 w_X^{t-1} wXt−1為有空間互動的軌迹獲得非0注意力權重。通過将其注意力集中在一個更小的子集上,空間圖transformer編碼器層可以更有效地模組化互動,并且在訓練和推理過程中運作更快
同時對于鄰節點使用圖網絡來獲得聚集資訊,通過圖卷積網絡,獲得節點特征形成一個value張量 F i V F^V_i FiV。和公式3中的注意力全中組合,獲得最終的多頭注意力賦權特征: F a t t e n = Concate ( { F i A W ⊗ F i V } ) ⊗ W O \mathcal{F}_{a t t}^{e n}=\operatorname{Concate}\left(\left\{\mathcal{F}_{i}^{A W} \otimes \mathcal{F}_{i}^{V}\right\}\right) \otimes W^{O} Fatten=Concate({FiAW⊗FiV})⊗WO
{ ⋅ } \{·\} {⋅}表示疊代和聚合所有注意力頭的輸出,⊗表示張量mode乘。獲得的權重特征通過線性前饋和标準化層獲得最終的空間圖Transformer編碼層的輸出。
時間Transformer編碼層
軌迹特征會進一步通過一個時間transformer編碼層進行編碼。會将輸出張量的前兩個次元進行轉變,生成一個結果張量 F t m p e n ∈ R T × N t − 1 × D F^{en}_{tmp} \in R^{T\times N_{t-1}\times D} Ftmpen∈RT×Nt−1×D。時間transformer編碼層通過一個标準的Transformer編碼層對每個軌迹的時間次元進行獨立編碼,沿着時間次元計算自注意力權重,為每個軌迹計算時間注意力賦權特征。
時間transformer編碼層的輸出就是整個時空圖transformer的輸出 F o u t e n F^{en}_{out} Fouten。
空間圖Transformer解碼器
通過擷取候選圖 Θ t = G ( { o j t } , E O t , w O t ) Θ^t = G(\{o^t_ j\}, E^t_O,w^t_O) Θt=G({ojt},EOt,wOt)和上層輸出 F o u t e n F^{en}_{out} Fouten,生成配置設定矩陣 A ‾ t \overline A^t At。候選圖建構和軌迹圖相似,每個節點 o j t o_j^t ojt代表幀 t t t的一個候選。對應邊界框IoU大于0,則相連接配接,權重設為IoU。除了真實候選點,還加入虛拟的點,用于對目前幀遮擋或離開的目标負責。實踐中,在 Θ t Θ^t Θt中加入可學習的embedding f s n k ∈ R D f_{snk}\in R^D fsnk∈RD,并且和所有節點以0.5權重相連接配接。
和之前一樣輸入圖的候選節點的特征需要嵌入和聚集,加入補充節點 f s n k f_{snk} fsnk後,或者整體嵌入特征 F t g t d e ∈ R ( M t + 1 ) × 1 × D F^{de}_{tgt}\in R^{(M_t+1)\times 1\times D} Ftgtde∈R(Mt+1)×1×D。相似度,送入多頭圖注意力編碼特征,獲得最終的帶權注意力候選節點特征 F a t t d e ∈ R ( M t + 1 ) × 1 × D F^{de}_{att}\in R^{(M_t+1)\times 1\times D} Fattde∈R(Mt+1)×1×D。
對于輸入的軌迹embedding F o u t e n F^{en}_{out} Fouten,加入一個虛拟源,處理目前幀 t t t中初始化新軌迹的候選,形成一個拓展後的的軌迹embedding F o u t e n ′ ∈ R T × ( N t − 1 + 1 ) × D F^{en'}_{out}\in R^{T\times(N_{t-1}+1)\times D} Fouten′∈RT×(Nt−1+1)×D,加入的虛拟源也是個可學習參數。
注意之加入一個虛拟元節點,通過實驗證明了一個和多個效果差不多,但是計算效率一個更高。 F a t t d e F^{de}_{att} Fattde複制 N t − 1 + 1 N_{t-1}+1 Nt−1+1次,得到 F a t t d e ′ ∈ R ( M t + 1 ) × ( N t − 1 + 1 ) × D F^{de'}_{att}\in R^{(M_t+1)\times (N_{t-1}+1)\times D} Fattde′∈R(Mt+1)×(Nt−1+1)×D。對 F a t t d e ′ F^{de'}_{att} Fattde′和 F o u t e n ′ F^{en'}_{out} Fouten′進行多頭交叉注意力,生成非标準化注意力權重,輸出通過前饋網絡和标準化層獲得輸出張量 R ( M t + 1 ) × ( N t − 1 + 1 ) × D R^{(M_t+1)\times (N_{t-1}+1)\times D} R(Mt+1)×(Nt−1+1)×D,表示軌迹和候選之間的比對情況。
空間圖解碼器的輸出可以通過線性層和一個Softmax層獲得配置設定矩陣 A ‾ t ∈ R ( M t + 1 ) × ( N t − 1 + 1 ) \overline A^t\in R^{(M_t+1)\times (N_{t-1}+1)} At∈R(Mt+1)×(Nt−1+1)。
訓練
STGT端到端的訓練通過拓展的GT配置設定矩陣指導。放松公式限制2,實作每個檢測必會被和一個軌迹或者虛拟源關聯,且一個軌迹可以和多個候選關聯: s.t. ∑ j N t − 1 + 1 a ˉ i j t = 1 , i ∈ [ 1 , M t ] , a ˉ i j t ∈ { 0 , 1 } . \text { s.t. } \quad \sum_{j}^{N_{t-1}+1} \bar{a}_{i j}^{t}=1, i \in\left[1, M_{t}\right], \bar{a}_{i j}^{t} \in\{0,1\} \text { . } s.t. j∑Nt−1+1aˉijt=1,i∈[1,Mt],aˉijt∈{0,1} .
如此,配置設定矩陣的一行可以被認為是對于總量為 N t − 1 + 1 N_{t-1}+1 Nt−1+1分類的分布機率,使用交叉熵優化網絡。
在每輪訓練疊代過程中,從訓練集中随機采樣連續的T+1幀序列進行訓練,邊界框和他們相應ID從幀中擷取,通過比對IoU将GT邊界框替換檢測器獲得的檢測框。如此,STGT更加魯棒,一幀中的所有ID,重新映射為 { 0 , 1 , ⋅ ⋅ ⋅ , N t − 1 } \{0, 1, · · · ,N_{t−1}\} {0,1,⋅⋅⋅,Nt−1},顯示他們是否比對軌迹或者虛拟源。
比對矩陣 A ‾ t \overline A^t At的最後一行代表虛拟點,可能比對多個軌迹,如此使用一個多标簽軟邊界損失進行獨立優化。
總體訓練損失定義如下:
L = − 1 M t ∑ m = 1 ∞ t y m log ( a ‾ m ) + λ N t − 1 ∑ n = 1 N t − 1 y n s n k log ( 1 1 + e − a n ′ ) + λ N t − 1 ∑ n = 1 N t − 1 ( 1 − y n s n k ) log ( e − a n ′ 1 + e − a n ′ ) \begin{aligned} \mathcal{L}=&-\frac{1}{M_{t}} \sum_{m=1}^{\infty_{t}} y_{m} \log \left(\overline{\mathbf{a}}_{m}\right) \\ &+\frac{\lambda}{N_{t-1}} \sum_{n=1}^{N_{t-1}} y_{n}^{s n k} \log \left(\frac{1}{1+e^{-a_{n}^{\prime}}}\right) \\ &+\frac{\lambda}{N_{t-1}} \sum_{n=1}^{N_{t-1}}\left(1-y_{n}^{s n k}\right) \log \left(\frac{e^{-a_{n}^{\prime}}}{1+e^{-a_{n}^{\prime}}}\right) \end{aligned} L=−Mt1m=1∑∞tymlog(am)+Nt−1λn=1∑Nt−1ynsnklog(1+e−an′1)+Nt−1λn=1∑Nt−1(1−ynsnk)log(1+e−an′e−an′)
y m y_m ym和 y n s n k y_n^{snk} ynsnk表示檢測候選的ID和虛拟源的ID, a ‾ m \overline a_m am表示 A ‾ t \overline A^t At的一行, a ‾ M t + 1 = { a n ′ } \overline a_{{M_t}+1} = \{a_n^{'}\} aMt+1={an′}, λ \lambda λ為權重系數。
級聯比對架構
級聯比對架構如上圖:
第一步:使用運動資訊比對和過濾第置信度的候選框,實踐中使用卡爾曼濾波預測目前幀中強魯棒的追蹤軌迹,這些軌迹必須成功且連續在過去 K r K_r Kr幀比對。預測的邊界框和候選邊界框的IoU作為關聯得分,使用匈牙利算法進行比對,IoU高于門檻值的比對對進行關聯。剩餘的候選置信度低于門檻值的直接過濾,剩餘的送入STGT進行進一步關聯。
第二步:STGT為剩下的軌迹和候選計算拓展配置設定矩陣 A ‾ t \overline A^t At,其左上角矩陣 A ^ ∈ R M t × N t − 1 \hat A\in R^{M_t\times N_{t-1}} A^∈RMt×Nt−1表示真實的軌迹和候選之間的比對情況, A ^ ∈ [ 0 , 1 ] \hat A\in [0,1] A^∈[0,1]是軟配置設定,通過二分比對算法産生比對。相似的這步比對
時配置設定得分也需要高于門檻值。如此後,未解決的候選框将再次比對,以恢複遮擋或在第三階段啟動新的目标。
第三步:長程遮擋和重複檢測處理子產品,由于STGT隻模組化過去T幀軌迹,過去T幀遮擋軌迹就無法比對,對于這些軌迹,存儲其特征和邊界框坐标,當他們可見時,用于計算和候選檢測的關聯代價。關聯代價定義為視覺特征的歐氏距離及被遮擋的軌迹和候選框的歸一化頂距離的相加。
D t o p = ∥ ( u i + w i 2 − u j − w j 2 , v i − v j ) ∥ / h i \mathcal{D}_{t o p}=\left\|\left(u_{i}+\frac{w_{i}}{2}-u_{j}-\frac{w_{j}}{2}, v_{i}-v_{j}\right)\right\| / h_{i} Dtop=∥∥∥(ui+2wi−uj−2wj,vi−vj)∥∥∥/hi
[ u , v ] [u,v] [u,v]表示邊界框左上角的坐标,[w,h]表示邊界框大小。
重複檢測處理過程中,未關聯的候選和所有關聯的候選進行比對,這步的關聯代價為關聯邊界框和未關聯邊界框在未關聯邊界框的面積的交集,使用此代價為了删除可能重複進行檢測的子邊界框,這步的比對候選檢測會被直接去除。
最後,每個保留的候選初始化為新的軌迹,未比對的軌迹超過 K p K_p Kp幀未比對則直接删除,為超過 K p K_p Kp定義為遮擋狀态。