1. 程式人生 > >Fully-Convolutional Siamese Networks for Object Tracking基於全卷積孿生網路的目標跟蹤演算法SiameseFC

Fully-Convolutional Siamese Networks for Object Tracking基於全卷積孿生網路的目標跟蹤演算法SiameseFC

1.論文相關

Bertinetto, Luca, et al. "Fully-convolutional siamese networks for object tracking." European conference on computer vision. Springer, Cham, 2016.

之前寫的論文總結更多的偏向於論文翻譯,以後寫的論文總結要更偏向於總結

2.論文內容

2.1摘要

        任意目標的跟蹤問題,傳統方法實施起來基本上是使用單獨的視訊本身作為訓練集,然後學習一個目標的表觀模型。儘管這種方法很成功,但是這種線上學習方式限制了可以學到模型的豐富性。近來,很多人嘗試探索深度卷積網路強大的表達能力。然而,由於目標跟蹤中目標事先是不知道的,所以每次都需要線上執行一次隨機梯度下降演算法來調整網路權重,這嚴重影響了跟蹤系統的速度。在這篇論文裡,我們使用了一種新穎的全卷積孿生網路來做為基本的跟蹤演算法,網路以端到端的形式在用來進行目標檢測的視訊資料集ILSVRC15上訓練而成。我們的跟蹤器遠遠超過了實時性的要求,操作起來還很簡單,並且在多個benchmark上都達到了當前最優的效能。

2.2引入

        跟蹤問題是在視訊的第一幀確定一個單獨的目標來進行跟蹤,目標是任意給定的,所以這就無法收集資料來訓練一個特定的檢測器來進行跟蹤。

        今年來,很多成功的範例基本都是使用視訊裡提取出來的例子,以線上的形式學習一個目標的表觀模型出來。這種方法的盛行很大程度上歸功於一些已有演算法的成功,比如TLD,Struck,KCF。然而,很明顯的一個效率不高的地方在於,使用當前視訊派生出來的資料僅僅能學習到相對簡單的模型。儘管計算機視覺中深度卷積網路的應用無處不在,但是由於缺乏監督資料以及跟蹤的實時性要求,通過深度學習在每一個視訊學到一個簡單的檢測器這種方法都難以應用。

        最近很多工作志在通過使用預訓練模型來解決上述問題。這些方法中,要麼是使用網路內部某一層作為特徵,然後再使用淺顯的方法來跟蹤,比如相關濾波;要麼是使用SGD方法來微調多層網路。淺顯的方法不能充分利用端到端學習的益處,而使用SGD微調雖然能到達時下最優效果,但是卻難以達到實時性的要求。

       我們提倡另一種替代性的方法。這個方法在初始離線階段把訓練網路更多地看成一個通用的相似性學習問題。這篇論文的關鍵貢獻就在於證明這個方法在benchmark上可以達到非常有競爭性的效能,並且執行時的幀率遠超實時性的要求。具體點講,我們訓練了一個孿生網路在一個較大的搜尋區域搜尋樣本圖片。本文另一個貢獻在於,孿生網路是一個關於搜尋區域的全卷積網路,而最後目標位置的估計我們通過計算兩個輸入的交叉相關,然後再進行插值得到,密集而且高效。

        這種相似度學習方法之前是被忽略的,因為跟蹤領域難以獲得大量的標記資料集。事實上,直到最近,我們能獲得的資料集也僅僅包含幾百個標註視訊。然而,我們相信ILSVRC視訊目標檢測資料集的出現讓訓練這麼一個模型成為可能。為了公平起見,VOT委員會禁止既使用視訊來訓練網路,又用這個視訊來驗證網路。而我們證明了我們模型從ImageNet視訊到ALOV/OTB/VOT視訊的泛化能力,我們保留跟蹤的benchmarkmark視訊單獨用來測試我們的效能。

3.跟蹤中的深度相似性學習

        跟蹤一個任意目標可以被當做一種相似性學習。我們要學習到一個函式,函式比較樣本z和搜尋區域x,然後返回一個得分圖。得分圖和搜尋區域x尺寸相同。得分高,說明這個區域和z相似,反之說明不相似。要找到z在新一幀中的位置,我們只需要把所有的可能位置都計算一下相似度即可。在實驗中,我們使用目標初始的表觀作為z就足夠了。

******************上面還是像翻譯,下面我要多總結**********************

        那麼用什麼來模擬這麼一個函式f呢?當然是最近很火的深度卷積網路了,因為他早已經在計算機視覺領域取得了廣泛成功。而使用深度卷積的相似性度量函式可以作為一個很典型的孿生結構。孿生網路如同一個特徵提取器,同時提取z和x圖片的特徵,然後將提取到的特徵送入另一個函式g,那麼我們這個相似性度量函式其實就是。函式g可以是一個很簡單的距離度量或者相似度度量。這種深度孿生網路早已被廣泛應用與人臉確認,關鍵描述點學習,one-shot字元識別。

3.1網路的總體結構


網路總體結構如上圖所示,孿生網路其實就是一個特徵提取器,它提取z和x特徵之後,送到相似度函式裡計算一下相似度。本文的相似度函式是使用交叉相關,公式如下,


其實就是將作為一個卷積核,在上進行卷積,相似度大的地方,那麼自然響應值就大,那自然也就可以當做是目標z在x中的位置了。

        那豈不是隨便找一個特徵提取器,提取一個特徵一做,然後再一卷積都可以了?也許可以,但是由於本文的孿生網路是以端到端的形式學習出來的,那麼可以認為,它訓練出來的這個特徵提取器,提取的特徵更適合做卷積來獲得最後的相似度得分圖。而其他的特徵提取器提取到的特徵可能就不太適合用卷積來獲得相似度響應圖。

        跟蹤的方法就很好想到了,把上一幀目標的位置作為中心,在下一幀附近計算響應圖。響應值最大的位置相對於中心的偏移再乘以步長,那就是目標在下一幀的真實位置了。為了應對尺度變化,作者在進行跟蹤的時候也同時使用了多種尺寸來進行搜尋。

3.2使用圖片來訓練

        作者的訓練方式是非常有創意的。網路最後的輸出,其實相當於一個判別式方法,用正負樣本對來訓練網路。搜尋圖片x中的每一個候選子視窗,其實相當於一個樣本,而它的得分,輸出的就是它是正/負樣本的概率。使用邏輯迴歸來表示的話,這就是一個應用邏輯迴歸的典型二分類問題,那麼邏輯損失就可以表示為下式:


其中,v是候選位置的得分,而y是它的真實類別,y屬於{1,-1}。這個推導其實很簡單,分別表示出來邏輯迴歸分類時正負樣本對應的概率,那麼損失函式就是,結合y屬於{1,-1}稍微整理一下就可以把這兩個式子統一為作者給出的形式。

        而訓練的時候網路的最終損失函式如下,


        簡單來說就是搜尋區域x的所有候選位置的平均損失。

        訓練樣本對(z,x)從標註視訊資料集中獲得,如下圖


只要x和z在視訊裡相隔不超過T幀,那麼都可以作為一個訓練對。圖片要進行歸一化,但是不能破壞長寬比,而是用背景補充。至於y怎麼確定呢,也就是說什麼叫做正樣本什麼叫做負樣本呢?定義如下


R是我們定義的半徑,c是目標的中心,k是網路最終總步長。上面的意思就是說在255*255這張圖片上,只要和目標的距離不超過R,那就算正樣本,否則就是負樣本。

3.3孿生網路部分的結構

pooling是最大值pooling,每個線性層之後都batch normalization,除了conv5每個卷積層之後都有relu,等等,具體設定可以檢視論文。

4.總結

網路的總體思路如上,但是在訓練的時候資料集還有些其他處理,比如填充背景的大小,等等。總之網路速度快,效能好。有什麼缺點呢?