如何理解SiamRPN++?

  • 2020 年 3 月 18 日
  • 筆記

如何理解SiamRPN++?

目標跟蹤:

  • 使用影片序列第一幀的影像(包括bounding box的位置),來找出目標出現在後序幀位置的一種方法。

孿生網路結構:

在進入到正式理解SiamRPN++之前,為了更好的理解這篇論文,我們需要先了解一下孿生網路的結構。

  • 孿生網路是一種度量學習的方法,而度量學習又被稱為相似度學習

  • 孿生網路結構被較早地利用在人臉識別的領域(《Learning a Similarity Metric Discriminatively, with Application to Face Verification》)。其思想是將一個訓練樣本(已知類別)和一個測試樣本(未知類別)輸入到兩個CNN(這兩個CNN往往是權值共享的)中,從而獲得兩個特徵向量,然後通過計算這兩個特徵向量的的相似度,相似度越高表明其越可能是同一個類別。在上面這篇論文中,衡量這種相似度的方法是L1距離。

  • 在目標領域中,最早利用這種思想的是SiamFC,其網路結構如上圖。輸入的z 是第一幀ROI(也就是在手動在第一幀選擇的bounding box),x則是後一幀的圖片。兩者分別通過兩個CNN,得到兩張特徵圖。再通過一次卷積操作(L=(22-6)/1+1=17),獲得最後形狀為17*17*1的特徵圖。在特徵圖上響應值越高的位置,代表其越可能有目標存在。其想法就類似於對上面的人臉識別孿生網路添加了一次卷積操作。獲得特徵圖後,可以獲得相應的損失函數。y={-1,+1}為真實標籤,v是特徵圖相應位置的值。下列第一個式子是特徵圖上每一個點的loss,第二個式子是對第一個式子作一個平均,第三個式子就是優化目標。

  • However, both Siamese-FC and CFNet are lack of boundingbox regression and need to do multi-scale test which makesit less elegant. The main drawback of these real-time track-ers is their unsatisfying accuracy and robustness comparedto state-of-the-art correlation filter approaches.但是,Siamese-FC和CFNet都沒有邊界框回歸,因此需要進行多尺度測試,這使得它不太美觀。這些實時跟蹤器的主要缺點是,與最新的相關濾波器方法相比,它們的精度和魯棒性不令人滿意。

  • 為了解決SiamFC的這兩個問題,就有了SiamRPN。可以看到前半部分Siamese Network部分和SiamFC一模一樣(通道數有變化)。區別就在於後面的RPN網路部分。特徵圖會通過一個卷積層進入到兩個分支中,在Classification Branch中的4*4*(2k*256)特徵圖等價於有2k4*4*256形狀的卷積核,對20*20*256作卷積操作,於是可以獲得17*17*2k的特徵圖,Regression Branch操作同理。而RPN網路進行的是多任務的學習。17*17*2k做的是區分目標和背景,其會被分為k個groups,每個group會有一層正例,一層負例。最後會用softmax + cross-entropy loss進行損失計算。17*17*4k同樣會被分為k groups,每個group有四層,分別預測dx,dy,dw,dh。而k的值即為生成的anchors的數目。而關於anchor box的運行機制,可以看下方第二張圖(來自SSD)。

SiamRPN++

進入主題:

Abstract & Introduction

However, Siamese track-ers still have an accuracy gap compared with state-of-the-art algorithms and they cannot take advantage of features from deep networks, such as ResNet-50 or deeper.(以往的siamese網路無法處理較深的網路)

We observe that all these trackers have built their network upon architecture similar to AlexNet [23] and tried several times to train a Siamese tracker with more sophisticated architecture like ResNet[14] yet with no performance gain. (用的都是AlexNet,而在ResNet上效果不佳)

Since the target may appear at anyposition in the search region, the learned feature representation for the target template should stay spatial invariant,and we further theoretically find that, among modern deep architectures, only the zero-padding variant of AlexNet satisfies this spatial invariance restriction.(只有AlexNet沒有padding層才滿足spatial invariance平移不變性)

  • 由於padding層會破壞平移不變性,而越深的網路像ResNet-50等具備大量padding(這裡簡要解釋一下,卷積層中的參數有stride、padding等。對於stride,只有在目標位移量(shift)是stride的整數倍時,才滿足平移不變性。對於padding,同一目標在圖片邊緣和在圖片內部的響應值不同)。因此需要解決平移不變性問題。於是作者提出了一種打破平移不變性限制的取樣策略。

By analyzing the Siamese network structure for cross-correlations, we find that its two network branches are highly imbalanced in terms of parameter number; thereforewe further propose a depth-wise separable correlation struc-ture which not only greatly reduces the parameter numberin the target template branch, but also stabilizes the trainingprocedure of the whole model. (分類分支和回歸分支參數量嚴重不平衡)

  • 這一點從SiamRPN的結構圖中即可看出。

Siamese Tracking with Very Deep Networks

  • 對於原來siamese網路的分析:原先的孿生跟蹤網路可以視為以下的式子:

[ f(z,x)=sigma(z)*sigma(x)+b ]

​ 而這種設計,會導致兩個限制:

The contracting part and the feature extractor used inSiamese trackers have an intrinsic restriction forstricttranslation invariance,f(z,x[4τj]) =f(z,x)[4τj],where[4τj]is the translation shift sub window opera-tor, which ensures the efficient training and inference.(只用某個ROI的區域作為x進行運算應該和總體進行運算後取該ROI的結果一致)

The contracting part has an intrinsic restriction forstructure symmetry,i.e.f(z,x′) =f(x′,z), which isappropriate for the similarity learning.(即根據相似性度量的思想,用z作為卷積核和用x的目標位置作為卷積核效果一致)

​ 前者也就是嚴格平移不變性限制,後者就是目標相似限制。

Spatial Aware Sampling Strategy

  • 如果特徵提取網路不具有良好的平移不變性的時候(也就是採用ResNet或者MobileNet等擁有padding層的網路),此時再按照SiamFC的訓練方式,即將所有正樣本都放在中心,那麼此時會學習到位置偏見,也就是對在中心的目標響應值最大。測試方式為,使用三種目標位置按照不同均勻分布的數據集進行訓練,shift值越大表示均勻分布的範圍越大,可視化結果如下圖:

  • 而這一設置均勻分布不同偏移量的策略被稱為spatial aware sampling strategy。作者為了確定這一策略的有效性,又在VOT2016和VOT2018上做了測試,發現隨著shift範圍的變大,EAO指標(簡單來說就是影片每一幀的跟蹤精度a的均值,而a使用的是lOU)總體呈現上升趨勢。在這些測試中,64 pixels是一個良好的偏移量。

  • 而一旦消除了深層網路對中心位置的學習偏見,就可以根據需要利用任何結構的網路以進行視覺跟蹤。

SiamRPN對ResNet的transfer

既然解決了位置偏見問題,就可以上手使用ResNet網路了。作者在這裡主要是對ResNet-50結構進行修改。ResNet-50結構如下:

其中CONV BLOCK(輸入輸出維度不同,shortcut用1*1 kernel改變維度):

ID BLOCK(輸入輸出尺寸一致,便於加深網路):

The original ResNet has a large stride of 32 pixels,which is not suitable for dense Siamese network prediction.As shown in Fig.3, we reduce the effective strides at the last two block from 16 pixels and 32 pixels to 8 pixels by modifying the conv4 and conv5 block to have unit spatial stride, and also increase its receptive field by dilated convo-lutions [27]. An extra 1×1 convolution layer is appended to each of block outputs to reduce the channel to 256.

Reset常見的stride值為32,但對於跟蹤任務,前後幀物體差距可能很小,因此作者將最後兩個block的stride改成了8 pixels,而且會加入一個額外的1*1 convolution layer將通道數變為256。網路會將stage 3/4/5的結果放入到SiamRPN網路中進行Layer-wise Aggregation。

Layer-wise Aggregation多層特徵融合

In the previous works which only use shallow networkslike AlexNet, multi-level features cannot provide very dif-ferent representations. However, different layers in ResNetare much more meaningful considering that the receptivefield varies a lot. Features from earlier layers will mainlyfocus on low level information such as color, shape, are es-sential for localization, while lacking of semantic informa-tion; Features from latter layers have rich semantic informa-tion that can be beneficial during some challenge scenarioslike motion blur, huge deformation.The use of this rich hierarchical information is hypothesized to help tracking.

對於ResNet這種很深的網路,不同stage所獲得的特徵也不同。淺層stage獲得的是Low-level影像特徵,而較深的block則偏向於獲取語義資訊。因此,使用好不同層次的特徵有助於跟蹤任務。

Since the output sizes of the three RPN modules have thesame spatial resolution, weighted sum is adopted directly onthe RPN output. A weighted-fusion layer combines all theoutputs.

上面已說,網路會提取後三個block的結果放入SiamRPN網路,而這三個RPN模組的輸出結果形狀是相同的,所以作者這裡採用的是直接加權求和各個結果:

Depthwise Cross Correlation

在Siamese網路中,後面衡量相似度的是十分重要的。如SiamFC的方式就是上圖(a)的方式,來預測一個單通道的Response Map。而SiamRPN使用的是上圖(b)的方式,由於引入了anchor,通過多個獨立模板層對一個檢測層的卷積操作來獲得多通道獨立的張量。而這就導致了RPN層的參數量要遠大於特徵提取層。因此引入了本文的方法——DW-XCorr。

之所以(b)會產生那麼多參數,原因在於在進入SiamRPN的RPN層時,存在一個用於提升通道數的卷積層。而(c)使用的是DW卷積操作(下面第二張圖),也就是一個channel負責對一個channel進行卷積操作。如下第一張圖,輸入兩個從ResNet獲得的特徵層(channel數目是一致的),先同樣分別通過一個卷積層(由於需要學的任務不同,所以卷積層參數不共享),再分別進行DW卷積操作,然後兩分支再分別通過一層不同的卷積層改變通道數以獲得想要的分類和回歸結果。這樣一來,就可以減少計算量,且使得兩個分支更加平衡。

而通過這種方式,在不同的通道對其相應的類會有不錯的響應,而其他類則會有所抑制,也就是這種方式能夠記住一些不同類別的語義資訊。而(2)的up-channel方式卻沒有這種性質。

實驗結果

在成功識別率,SiamRPN++位於第一位,在精度(識別框中心位置)方面,位於第三。

EAO值位於第一,遠超第二名。

對於比較長的影片序列,SiamRPN++也位居第一的位置。