SiamMOT解读
AWS的一篇新的MOT工作,將孿生跟蹤器引入多目標跟蹤中進行運動建模并獲得了SOTA表現。
簡介
通過引入一個基于區域的孿生多目標跟蹤網絡,設計了一個新的online多目標跟蹤框架,名為SiamMOT。SiamMOT包含一個運動模型來估計兩幀之間目標的移動從而關聯兩幀上檢測到的目標。為了探索運動建模如何影響其跟蹤能力,作者提出了孿生跟蹤器的兩種變體,一種隱式建模運動,另一種顯式建模運動。在三個MOT數據集上進行實驗,作者證明了運動建模對于多目標跟蹤的重要性并驗證了SiamMOT達到SOTA的能力。而且,SiamMOT是非常高效的,它可以在單個GPU上720P視頻上達到17的FPS。
-
論文標題
SiamMOT: Siamese Multi-Object Tracking
-
論文地址
http://arxiv.org/abs/2105.11595
-
論文源碼
https://github.com/amazon-research/siam-mot
介紹
多目標跟蹤(Multiple Object Tracking,MOT)任務指的是檢測出每一幀上的所有目標并跨幀在時間上將其關聯起來形成軌跡。早期的一些工作將數據關聯視為TBD范式下的圖優化問題,在這類方法中一個節點代表一個檢測框而一條邊則編碼兩個節點鏈接到一起的可能性(或者說相似度)。實際上,這些方法往往采用視覺線索和運動線索的組合來表示一個節點,這通常需要比較大的計算量。而且,他們通常會構建一個很大的離線圖,基于這個圖做求解并不容易,這就限制了這類方法在實時跟蹤上的可能性。
最近,online方法開始興起,它們在實時跟蹤場景中更受歡迎。它們更加關注于改進相鄰幀上的關聯而不是基于較多幀構建離線圖進行關聯。Tracktor等方法的誕生將online MOT的研究推向了一個新的高峰,使得這個領域的研究如火如荼了起來。
這篇論文中,作者探索了以SORT為基礎的一系列online多目標跟蹤方法中運動建模的重要性。在SORT中,一個更好的運動模型是提高跟蹤精度的關鍵,原始的SORT中采用基于簡單幾何特征的卡爾曼濾波進行運動建模,而最近的一些SOTA方法學習一個深度網絡來基于視覺和幾何特征進行位移預測,這極大地提高了SORT的精度。
作者利用基于區域的孿生多目標跟蹤網絡來進行運動建模的探索,稱其為SiamMOT。作者組合了一個基于區域的檢測網絡(Faster R-CNN)和兩個思路源于孿生單目標跟蹤的運動模型(分別是隱式運動模型(IMM)和顯式運動模型(EMM))。不同于CenterTrack基于點的特征進行隱式的目標運動預測,SiamMOT使用基于區域的特征并且開發了顯式的模板匹配策略來估計模板的運動,這在一些挑戰性的場景下更加具有魯棒性,比如高速運動的場景下。
作者還通過額外的消融實驗證明目標級別的運動建模對魯棒多目標跟蹤至關重要,特別是在一些挑戰性場景下。而且,實驗表明,SiamMOT的運動模型可以有效提高跟蹤的性能,尤其是當相機高速運動或者行人的姿態變化較大時。
最后,說明一下,論文中提到的孿生跟蹤器和通常所說的孿生網絡是不一樣的,孿生網絡的目的是學習兩個實例之間的親和度函數,而孿生跟蹤器則學習一個匹配函數,該函數用于在一個較大的上下文區域內找到一個匹配的檢測框。
SiamMOT
SiamMOT是基于Faster R-CNN構建的,Faster R-CNN是一個非常流行的目標檢測器,它包含一個區域推薦網絡(RPN)和一個基于區域的檢測網絡。在標準的Faster R-CNN上,SiamMOT添加了一個基于區域的孿生跟蹤器來建模實例級別的運動。下圖是整個SiamMOT的框架結構,它以兩幀圖像It,It+δ\mathbf{I}^{t}, \mathbf{I}^{t+\delta}It,It+δ作為輸入,并且已有第ttt幀上的檢測框集合Rt={R1t,…Rit,…}\mathbf{R}^{t}= \left\{R_{1}^{t}, \ldots R_{i}^{t}, \ldots\right\}Rt={R1t?,…Rit?,…}。在SiamMOT中,檢測網絡輸出第t+δt+\deltat+δ幀的檢測結果集Rt+δ\mathbf{R}^{t+\delta}Rt+δ,跟蹤器則將Rt\mathbf{R}^{t}Rt傳播到t+δt+\deltat+δ幀上以生成預測框集合R~t+δ\tilde{\mathbf{R}}^{t+\delta}R~t+δ。接著,ttt幀上的目標在t+δt+\deltat+δ幀上的預測框和t+δt+\deltat+δ幀上的檢測框進行匹配,從而關聯起來形成軌跡,這個思路和SORT中是一樣的。
從上面的敘述不難看出來,和SORT相比作者最核心的一個工作實際上是構建了一個更好的運動模型,因此下面我們首先來看看這個孿生跟蹤器是如何建模目標的運動的,以及它的兩種變種,接著再敘述一下訓練和推理的一些細節。
Motion modelling with Siamese tracker
給定第ttt幀的實例iii,孿生跟蹤器根據其在ttt幀中的位置在t+δt+\deltat+δ幀的一個局部窗口范圍內搜索對應的實例,形式上表述如下。這里的T\mathcal{T}T表示參數為Θ\ThetaΘ的孿生跟蹤器,fRit\mathbf{f}_{R_{i}}^{t}fRi?t?則是根據檢測框RitR_{i}^{t}Rit?在t+δt+\deltat+δ幀上獲得的搜索區域Sit+δS_{i}^{t+\delta}Sit+δ?提取的特征圖。而搜索區域Sit+δS_{i}^{t+\delta}Sit+δ?的獲得則通過按照比例因子rrr(r>1)來擴展檢測框RitR_{i}^{t}Rit?來獲得,拓展前后具有同樣的集合中心,如上圖中的黃色實線框到黃色虛線框所示。當然,不管是原來的檢測框還是拓展后的預測框,獲得其特征fRit\mathbf{f}_{R_{i}}^{t}fRi?t?和fSit+δ\mathbf{f}_{S_{i}}^{t+\delta}fSi?t+δ?的方式都是不受大小影響的RoIAlign層。孿生跟蹤器輸出的結果有兩個,其中R~it+δ\tilde{R}_{i}^{t+\delta}R~it+δ?為預測框,而vit+δv_{i}^{t+\delta}vit+δ?則是預測框的可見置信度,若該實例在區域Sit+δS_{i}^{t+\delta}Sit+δ?是可見的,那么T\mathcal{T}T將會產生一個較高的置信度得分vit+εv_{i}^{t+\varepsilon}vit+ε?,否則得分會較低。
(vit+δ,R~it+δ)=T(fRit,fSit+δ;Θ)\left(v_{i}^{t+\delta}, \tilde{R}_{i}^{t+\delta}\right)=\mathcal{T}\left(\mathbf{f}_{R_{i}}^{t}, \mathbf{f}_{S_{i}}^{t+\delta} ; \Theta\right) (vit+δ?,R~it+δ?)=T(fRi?t?,fSi?t+δ?;Θ)
這個公式的建模過程其實和很多孿生單目標跟蹤器的思路非常類似,因此在多目標跟蹤場景下只需要多次使用上式即可完成每個Rit∈RtR_{i}^{t} \in \mathbf{R}^{t}Rit?∈Rt的預測。重要的是,SiamMOT允許這些操作并行運行,并且只需要計算一次骨干特征(由于RoIAlign),這大大提高了在線跟蹤推理的效率。
作者發現,運動建模對于多目標跟蹤任務至關重要,一般在兩種情況下RtR^{t}Rt和Rt+δR^{t+\delta}Rt+δ會關聯失敗,一是R~t+δ\tilde{R}^{t+\delta}R~t+δ沒有匹配上正確的Rt+δR^{t+\delta}Rt+δ,二是對于t+δt+\deltat+δ幀上的行人得到的可見得分vit+δv_{i}^{t+\delta}vit+δ?太低了。
此前的很多工作為了實現RitR_{i}^{t}Rit?到R~t+δ\tilde{R}^{t+\delta}R~t+δ的預測,一般采用將兩幀的特征輸入網絡中,所以它們都是隱式建模實例的運動。然而,很多單目標跟蹤的研究表明,在極具挑戰性的場景下,細粒度的空間級監督對于顯式學習一個魯棒性的目標匹配函數是非常重要的。因此,作者提出了兩種不同的孿生跟蹤器,一個是隱式運動模型一個是顯式運動模型。
IMM
首先來看隱式運動模型(Implicit motion model,IMM),它通過MLP來估計目標兩幀間的運動。具體而言,它先將特征fRit\mathbf{f}_{R_{i}}^{t}fRi?t?和fSit+δ\mathbf{f}_{S_{i}}^{t+\delta}fSi?t+δ?按通道連接在一起然后送入MLP中預測可見置信度viv_ivi?和相對位置和尺度偏移,如下所示,其中(xit,yit,wit,hit)\left(x_{i}^{t}, y_{i}^{t}, w_{i}^{t}, h_{i}^{t}\right)(xit?,yit?,wit?,hit?)為目標框的四個值,通過RitR_{i}^{t}Rit?和mim_{i}mi?我們可以輕易解出R~t+δ\tilde{R}^{t+\delta}R~t+δ。
mi=[xit+δ?xitwit,yit+δ?yithit,log?wit+δwitlog?hit+δhit]m_{i}=\left[\frac{x_{i}^{t+\delta}-x_{i}^{t}}{w_{i}^{t}}, \frac{y_{i}^{t+\delta}-y_{i}^{t}}{h_{i}^{t}}, \log \frac{w_{i}^{t+\delta}}{w_{i}^{t}} \log \frac{h_{i}^{t+\delta}}{h_{i}^{t}}\right] mi?=[wit?xit+δ??xit??,hit?yit+δ??yit??,logwit?wit+δ??loghit?hit+δ??]
給定(Rit,Sit+δ,Rit+δ)\left(R_{i}^{t}, S_{i}^{t+\delta}, R_{i}^{t+\delta}\right)(Rit?,Sit+δ?,Rit+δ?),IMM的訓練可以采用下面的損失來進行,其中vi?v_{i}^{*}vi??和mi?m_{i}^{*}mi??是根據Rit+δR_{i}^{t+\delta}Rit+δ?計算的Gt標簽,1\mathbb{1}1為指示函數,?focal\ell_{focal}?focal?為分類損失,?reg?\ell_{\text {reg }}?reg??為常用的smooth l1回歸損失。
L=?focal?(vi,vi?)+1[vi?]?reg?(mi,mi?)\mathbf{L}=\ell_{\text {focal }}\left(v_{i}, v_{i}^{*}\right)+\mathbb{1}\left[v_{i}^{*}\right] \ell_{\text {reg }}\left(m_{i}, m_{i}^{*}\right) L=?focal??(vi?,vi??)+1[vi??]?reg??(mi?,mi??)
EMM
接著來看顯式運動模型(Explicit motion model,EMM)。具體而言,如上圖所示,它通過逐通道的互相關操作(*)來生成像素級別的響應圖ri\mathbf{r}_{i}ri?,該操作已被證明對于密集光流估計和實例級別的運動建模是很有效的。在SiamMOT中,這個操作用目標特征圖fRit\mathbf{f}_{R_{i}}^{t}fRi?t?和搜索圖像特征圖fSit+δ\mathbf{f}_{S_{i}}^{t+\delta}fSi?t+δ?的每個位置計算相關性,得到ri=fSit+δ?fRit\mathbf{r}_{i}=\mathbf{f}_{S_{i}}^{t+\delta} * \mathbf{f}_{R_{i}}^{t}ri?=fSi?t+δ??fRi?t?,所以每個ri[k,:,:]\mathbf{r}_{i}[k,:,:]ri?[k,:,:]表示一個相似程度。受到FCOS的啟發,EMM使用全卷積網絡ψ\psiψ來檢測ri\mathbf{r}_{i}ri?中匹配的目標。
詳細來看,ψ\psiψ預測一個密集的可見置信度圖vi\mathbf{v}_{i}vi?來表示每個像素包含目標圖像的可能性,再預測一個密集的定位圖pi\mathbf{p}_{i}pi?來編碼該像素位置到框的左上角和右下角的偏移量。因此,處在(x,y)(x,y)(x,y)的目標可以通過R(p(x,y))=[x?l,y?t,x+r,y+b]\mathcal{R}(\mathbf{p}(x, y))=[x-l, y-t, x+r, y+b]R(p(x,y))=[x?l,y?t,x+r,y+b]解出邊界框,其中p(x,y)=[l,t,r,b]\mathbf{p}(x, y)=[l, t, r, b]p(x,y)=[l,t,r,b](兩個角點的偏移)。最終,特征圖可以通過下面的式子解碼,此處的⊙\odot⊙表示逐元素相乘,ηi\boldsymbol{\eta}_{i}ηi?是一個懲罰圖,為每一個候選區域設置非負的懲罰得分。
R~it+δ=R(pi(x?,y?));vit+δ=vi(x?,y?)s.t.?(x?,y?)=argmax?x,y(vi⊙ηi)\begin{array}{r} \tilde{R}_{i}^{t+\delta}=\mathcal{R}\left(\mathbf{p}_{i}\left(x^{*}, y^{*}\right)\right) ; \quad v_{i}^{t+\delta}=\mathbf{v}_{i}\left(x^{*}, y^{*}\right) \\ \text { s.t. }\left(x^{*}, y^{*}\right)=\underset{x, y}{\operatorname{argmax}}\left(\mathbf{v}_{i} \odot \boldsymbol{\eta}_{i}\right) \end{array} R~it+δ?=R(pi?(x?,y?));vit+δ?=vi?(x?,y?)?s.t.?(x?,y?)=x,yargmax?(vi?⊙ηi?)?
懲罰得分的計算如下式,其中λ\lambdaλ是一個加權系數(0≤λ≤10 \leq \lambda \leq 10≤λ≤1),C\mathcal{C}C則是關于目標區域Rit\mathcal{R}_{i}^{t}Rit?幾何中心的余弦窗口函數,S\mathcal{S}S是關于候選區域p(x,y)\mathbf{p}(x, y)p(x,y)和RitR_{i}^{t}Rit?之間的相對尺度變化的高斯函數。懲罰圖ηi\boldsymbol{\eta}_{i}ηi?的引入是為了阻止跟蹤過程中劇烈的運動。
ηi(x,y)=λC+(1?λ)S(R(p(x,y)),Rit)\boldsymbol{\eta}_{i}(x, y)=\lambda \mathcal{C}+(1-\lambda) \mathcal{S}\left(\mathcal{R}(\mathbf{p}(x, y)), R_{i}^{t}\right) ηi?(x,y)=λC+(1?λ)S(R(p(x,y)),Rit?)
考慮(Rit,Sit+δ,Rit+δ)\left(R_{i}^{t}, S_{i}^{t+\delta}, R_{i}^{t+\delta}\right)(Rit?,Sit+δ?,Rit+δ?),EMM的訓練損失如下式子所示。其中(x,y)(x,y)(x,y)表示Sit+δS_{i}^{t+\delta}Sit+δ?中的所有有效位置,?req\ell_{r e q}?req?是用于回歸的IoU損失,?focal?\ell_{\text {focal }}?focal??是用于分類的損失。vi?\mathbf{v}_{i}^{*}vi??和pi?\mathbf{p}_{i}^{*}pi??是像素級的GT圖。如果(x,y)(x,y)(x,y)在Ri?t+δR_{i}^{* t+\delta}Ri?t+δ?的范圍內那么vi?(x,y)=1\mathbf{v}_{i}^{*}(x, y)=1vi??(x,y)=1,否則為0;pi?(x,y)=[x?x0?,y?y0?,x1??x,y1??y]\mathbf{p}_{i}^{*}(x, y)=\left[x-x_{0}^{*}, y-y_{0}^{*}, x_{1}^{*}-\right. \left.x, y_{1}^{*}-y\right]pi??(x,y)=[x?x0??,y?y0??,x1???x,y1???y],其中的(x0?,y0?)\left(x_{0}^{*}, y_{0}^{*}\right)(x0??,y0??)和(x1?,y1?)\left(x_{1}^{*}, y_{1}^{*}\right)(x1??,y1??)表示GT框的兩個角點的坐標。此外,作者還修改了回歸任務,添加了一個w(x,y)w(x, y)w(x,y)表示中心度,有w(x,y)=min?(x?x0,x1?x)max?(x?x0,x1?x)?min?(y?y0,y1?y)max?(y?y0,y1?y)w(x, y)=\sqrt{\frac{\min \left(x-x_{0}, x_{1}-x\right)}{\max \left(x-x_{0}, x_{1}-x\right)} \cdot \frac{\min \left(y-y_{0}, y_{1}-y\right)}{\max \left(y-y_{0}, y_{1}-y\right)}}w(x,y)=max(x?x0?,x1??x)min(x?x0?,x1??x)??max(y?y0?,y1??y)min(y?y0?,y1??y)??。
L=∑x,y?focal?(vi(x,y),vi?(x,y))+∑x,y1[vi?(x,y)=1](w(x,y)??reg(pi(x,y),pi?(x,y)))\begin{aligned} \mathbf{L} &=\sum_{x, y} \ell_{\text {focal }}\left(\mathbf{v}_{i}(x, y), \mathbf{v}_{i}^{*}(x, y)\right) +\sum_{x, y} \mathbb{1}\left[\mathbf{v}_{i}^{*}(x, y)=1\right]\left(w(x, y) \cdot \ell_{r e g}\left(\mathbf{p}_{i}(x, y), \mathbf{p}_{i}^{*}(x, y)\right)\right) \end{aligned} L?=x,y∑??focal??(vi?(x,y),vi??(x,y))+x,y∑?1[vi??(x,y)=1](w(x,y)??reg?(pi?(x,y),pi??(x,y)))?
相比于IMM,EMM有兩點改進。第一,它使用通道分離的相關性操作來允許網絡顯式學習相鄰幀上同一個目標的相似性;第二,它采用一個細粒度的像素級監督,這有效減少了錯誤匹配。
Training and Inference
訓練和推理就不多細說了,主要就是在Faster R-CNN的基礎上添加了一個運動預測損失,這里的運動損失上文已經說的很明白了,對多個樣本區域累計求和即可。
?=?rpn+?detect?+?motion?\ell=\ell_{r p n}+\ell_{\text {detect }}+\ell_{\text {motion }} ?=?rpn?+?detect??+?motion??
實驗
實驗作者采用MOT17、TAO-person和Caltech Roadside Pedestrians (CRP) ,分別獲得如下的實驗結果,具體的消融實驗可以參考原論文。
總結
設計了一種基于區域的多目標跟蹤框架SiamMOT,它可以同時完成檢測和關聯任務,這也是孿生結構在MOT領域的一次很不錯的嘗試,是很值得關注的工作。本文也只是我本人從自身出發對這篇文章進行的解讀,想要更詳細理解的強烈推薦閱讀原論文。最后,如果我的文章對你有所幫助,歡迎一鍵三連,你的支持是我不懈創作的動力。
總結
- 上一篇: 0005-Longest Palindr
- 下一篇: ResT解读