參考代碼:video_analyst
1. 概述
導讀:這篇文章指出之前的一些跟蹤算法沒有深入讨論針對跟蹤任務的實質,很多時候隻是在某些點上進行突破,因而最後方法的性能總是有局限性的。對此文章深入分析了跟蹤網絡的特性,因而對跟蹤網絡的設計提出了4點建議:G1(目标位置估計和目标判别需要接耦,分别具有各自的分支)/G2(目标判别置信度不能與實際相模糊)/G3(不能依賴資料分布等先驗知識,否則導緻泛化性魯棒性不強)/G4(目标位置的估計應該準确)。正是基于上的4點設計指導,文章設計了SiamFC++網絡,在5個VOT資料集(OTB2015/VOT2018/LaSOT/GOT-10k)上表現為state-of-art,并且在TrackingNet大型資料集上達到75.4的AUC,在2080Ti GPU上幀率為90FPS。
對于之前的一些跟蹤算法文章進行分析,大緻上可以将其劃分為3個大類:
- 1)以DCF(Discriminative Correlation Filter)和SiamFC為代表暴力使用多尺度測試,并且假設相鄰幀上目标的尺度和比例變化比例是固定,但是這在實際中卻不能成立;
- 2)以ATOM為代表使用多個bounding box進行初始化,之後疊代進行最終目标box,雖然極大提升了目标定位的準确度,但是卻帶來了計算量和額外的超參數(initial box的數量和分布等);
- 3)以SiamRPN++為代表使用RPN網絡進行目标位置估計,但RPN網絡是需要預先設定anchor超參數的,這就帶來了目标辨識的不确定性以及目标尺度的先驗知識(用于設計anchor的超參數);
就目前較好的跟蹤網絡SiamRPN文章将其與SiamFC++進行對比,見下圖所示:
可以看到SiamRPN中目标的判别分數和實際的anchor是并不比對的這就導緻了其性能的缺陷。通過探究跟蹤網絡的性質,文章對于跟蹤網絡的設計給出了下面的幾點指引:
- 1)G1:将目标位置估計和目标判别解耦,分别使用不同的分支進行預測;
- 2)G2:目标的置信度應該直接反應是否存在目标,而不是與預先定義的anchor之類的産生關聯;
- 3)G3:不應該使用尺度/比例等資料集上的先驗分布特性,進而導緻其在其它資料集上泛化性能下降;
- 4)G4:直接使用ATOM類似的目标位置估計度量,而不是使用目标判别置信度,進而更加直覺展現目标位置估計的準确性;
對此文章在章節“Comparison with Trackers that Do not Apply Our Guidelines”對其進行了讨論。其具體表現在SiamRPN++中主要由三點與文章提出的跟蹤網絡設計思路不相比對:
- 1)由于anchor的引入導緻目标判别置信度表達的是anchor和目标的相似性,而不是目标template和實際目标的相似性。這是由于這一點SiamRPN++網絡會帶來一定的假陽性結果,特别是當目标的外表發生較大變化時(如旋轉/形變)其在目标周圍物體和背景上産生無法解釋的高置信度預測結果,如圖1。文章認為RPN機制比對的是目标和anchor而不是目标和目标,因而比對的結果就是次優的。文章統計了SiamRPN++和SiamFC++在跟蹤正确與否(是否與GT有重合)的數量和目标判别置信度之間的分布關系,見圖3的第一行。可以看到在SiamRPN++中錯誤和正确的數量分布是呈現近似的分布,而SiamFC++中則是兩個較大差異的分布。此外,另一原因是特征進行比對的時候使用的是固定的尺寸并且與之比對的anchor也是設定好的超參數;
- 2)由于存在anchor超參數,這就導緻了SiamRPN++是與anchor的設計存在關聯的,進而與資料的分布存在關聯。這就導緻經過訓練之後SiamRPN++的預測結果與anchor box有更佳高的重合度(見圖3的第二行),這就導緻了新能的下降;
- 3)沒有直接使用目标定位的置信度而是使用目标判别的置信度,這樣的方式在IoU-Net中就已經指出了其弊端,因而SiamFC++采用了預測IoU的形式;
2. 方法設計
2.1 跟蹤方法pipline
2.2 基于Siamese的特征抽取與比對
文章的網絡pipeline已經在圖2中給出了,可以很明顯的看到其将目标判别分支和目标位置估計分支做了隔離,則其特征抽取和比對的過程可以描述為下式:
f i ( z , x ) = ψ i ( ϕ ( z ) ) ∗ ψ i ( ϕ ( x ) ) f_i(z,x)=\psi_i(\phi(z))*\psi_i(\phi(x)) fi(z,x)=ψi(ϕ(z))∗ψi(ϕ(x))
其中, ∗ * ∗代表cross-correlation操作, ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)代表的siamese backbone輸出的特征, ψ i ( ⋅ ) \psi_i(\cdot) ψi(⋅)代表對應的具體的任務分支,實作從普通的特征到特定任務空間特征的轉變, i ∈ { c l s , r e g } i\in\{cls,reg\} i∈{cls,reg}代表目标判别任務和目标位置估計任務。
2.3 依據指引設計的預測頭
2.3.1 指引:G1
在圖2中可以清楚看到文章已經将目标判别和目标位置估計使用不同的預測頭進行區分。
目标判别分支:
對于判别分支輸出特征圖上的一點 ( x , y ) (x,y) (x,y),其在原圖的位置經過映射為 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor\frac{s}{2}\rfloor+xs,\lfloor\frac{s}{2}\rfloor+ys) (⌊2s⌋+xs,⌊2s⌋+ys),要是這個點落在了GT框的内部,那麼就算做是正樣本,反之就是負樣本了,其中 s = 8 s=8 s=8是網絡的stride。
目标位置估計:
對于位置預測特征圖上的一點 ( x , y ) (x,y) (x,y),其在原圖上對應的點為 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor\frac{s}{2}\rfloor+xs,\lfloor\frac{s}{2}\rfloor+ys) (⌊2s⌋+xs,⌊2s⌋+ys),而對應的該點出的位置GT預測值描述為 t ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) t^{*}=(l^{*},t^{*},r^{*},b^{*}) t∗=(l∗,t∗,r∗,b∗), ( x 0 , y 0 ) (x_0,y_0) (x0,y0)和 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)代表GT的左上角和右下角點的坐标,則對應各個GT分量的計算過程描述為:
l ∗ = ( ⌊ s 2 ⌋ + x s ) − x 0 , t ∗ = ( ⌊ s 2 ⌋ + y s ) − y 0 l^{*}=(\lfloor\frac{s}{2}\rfloor+xs)-x_0,\ t^{*}=(\lfloor\frac{s}{2}\rfloor+ys)-y_0 l∗=(⌊2s⌋+xs)−x0, t∗=(⌊2s⌋+ys)−y0
r ∗ = x 1 − ( ⌊ s 2 ⌋ + x s ) , b ∗ = y 1 − ( ⌊ s 2 ⌋ + y s ) r^{*}=x_1-(\lfloor\frac{s}{2}\rfloor+xs),\ b^{*}=y_1-(\lfloor\frac{s}{2}\rfloor+ys) r∗=x1−(⌊2s⌋+xs), b∗=y1−(⌊2s⌋+ys)
2.3.2 指引:G2/G3
對于G2文章的方法是采用密集預測的方式也就是整個特征圖(每個坐标位置預測一個sample)參與,因而每個位置上是能夠代表與目标位置的對應關系的,滿足G2。而且正式這種不借用任何外部參數進行的預測(直接進行回歸)避免了外部先驗參數的引入,進而滿足G3。
2.3.3 指引:G4
這裡需要對目标位置估計的品質進行評估,不過這裡不同于ATOM的方法(其采用IoU-Net的方法預測IoU值),這裡是通過預測PSS值得到的(通過與目标判别分支的預測結果相乘使得那些背景區域的置信度更低,進而容易将其排除),這是通過在目标判别分支旁邊平行加一個預測分支,其結構可以參考圖2中的對應部分。其對應的标注生成過程可以描述為:
P S S ∗ = m i n ( l ∗ , r ∗ ) m a x ( l ∗ , r ∗ ) ∗ m i n ( t ∗ , b ∗ ) m a x ( t ∗ , b ∗ ) PSS^{*}=\sqrt{\frac{min(l^{*},r^{*})}{max(l^{*},r^{*})}*\frac{min(t^{*},b^{*})}{max(t^{*},b^{*})}} PSS∗=max(l∗,r∗)min(l∗,r∗)∗max(t∗,b∗)min(t∗,b∗)
2.4 訓練和預測
文章采用的損失函數為:
L ( { p x , y } , q x , y , { t x , y } ) = 1 N p o s ∑ x , y L c l s ( p x , y , c x , y ∗ ) + λ N p o s 1 { c x , y ∗ > 0 } ∑ x , y L q u a l i t y ( q x , y , q x , y ∗ ) + λ N p o s 1 { c x , y ∗ > 0 } ∑ x , y L r e g ( t x , y , t x , y ∗ ) L(\{p_{x,y}\},q_{x,y},\{t_{x,y}\})=\frac{1}{N_{pos}}\sum_{x,y}L_{cls}(p_{x,y},c_{x,y}^{*})+\frac{\lambda}{N_{pos}}\mathcal{1}_{\{c_{x,y}^{*}\gt 0\}}\sum_{x,y}L_{quality}(q_{x,y},q_{x,y}^{*})+\frac{\lambda}{N_{pos}}\mathcal{1}_{\{c_{x,y}^{*}\gt 0\}}\sum_{x,y}L_{reg}(t_{x,y},t_{x,y}^{*}) L({px,y},qx,y,{tx,y})=Npos1x,y∑Lcls(px,y,cx,y∗)+Nposλ1{cx,y∗>0}x,y∑Lquality(qx,y,qx,y∗)+Nposλ1{cx,y∗>0}x,y∑Lreg(tx,y,tx,y∗)
其中, 1 { ⋅ } \mathcal{1}_{\{\cdot\}} 1{⋅}代表的是該點是否為正樣本,也就是是不是在GT框内部, L c l s L_{cls} Lcls表示為focal loss, L q u a l i t y L_{quality} Lquality表示為BCE loss, L r e g L_{reg} Lreg表示為IoU loss。
在測試的過程中參考了SiamRPN類的infer優化方法,使得預測的結果更加魯棒,可以參考文章附錄章節“B Test Phase Behavior”
3. 實驗結果
按照文章提出的網絡設計指引,其各個分量對最後性能的貢獻和影響:
TrackingNet資料集上的性能表現與比較: