目標追蹤:FCNT、GOTURN、SiamFC、SiamRPN、SiamRPN++

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度學習實戰(不定時更新)


 

7.1 目標追蹤(Object Tracking)概述

學習目標

  • 目標
    • 知道目標追蹤的算法類型以及應用
    • 知道目標追蹤算法的任務類型以及挑戰
  • 應用

目標跟蹤是計算機視覺領域的一個重要分支。目前的目標跟蹤的通常任務是,在視頻的第一幀給定一個目標的矩形框,然後後續這個矩形框緊跟着要跟蹤的物體。不過,目標跟蹤與計算機視覺中的圖像識別,分割,檢測是分不開的,通常跟蹤是這些分割檢測的最後一步。

7.1.1 爲什麼使用目標追蹤(Object Tracking)

傳統的基於圖片的目標檢測方法已經非常成熟,對於視頻目標檢測來說,如果視頻流按幀一張一張使用圖片的目標檢測算法來處理會出現以下兩類問題:

  • 因爲視頻流的圖片信息具有時間和空間相關性,相鄰幀之間的特徵提取網絡會輸出有冗餘的特徵圖信息,會造成沒必要的計算浪費。
  • 圖片的目標檢測算法在目標物體運動模糊,拍攝焦距失調,物體部分遮擋,非剛性物體罕見變形姿態的情況下,很難獲得較爲準確的結果,而這些情況(如下圖)在視頻的拍攝中情況較爲多見。

我們以檢測爲例,實際檢測過程中,外界環境複雜(光照、遮擋等)、相機會抖動等多因素影響,僅依賴檢測的結果,檢測框是很不穩定的,這裏展示僅有檢測和追蹤的視頻結果的對比。

可以看到,加入追蹤後的檢測框極其穩定,輸出結果更平滑,幾乎不存在抖動,同時還給出了不同物體的label,和同一類型物體的不同的id信息,既對不同物體做了區分,又對同一類型物體做了區分,即實現了多目標追蹤

7.1.2 目標追蹤介紹

7.1.2.1 定義

視覺目標(單目標)跟蹤任務就是在給定某視頻序列初始幀的目標大小與位置的情況下,預測後續幀中該目標的大小與位置。

  • 輸入初始化目標框,在下一幀中產生衆多候選框(Motion Model),提取這些候選框的特徵(Feature Extractor),然後對這些候選框評分(Observation Model),最後在這些評分中找一個得分最高的候選框作爲預測的目標(Prediction A),或者對多個預測值進行融合(Ensemble)得到更優的預測目標。

7.1.2.2 研究內容:

目標跟蹤劃分爲5項主要的研究內容:

(1)運動模型(Motion Model):如何產生衆多的候選樣本。

生成候選樣本的速度與質量直接決定了跟蹤系統表現的優劣。常用的有兩種方法:粒子濾波(Particle Filter)和滑動窗口(Sliding Window)。粒子濾波是一種序貫貝葉斯推斷方法。通過遞歸的方式推斷目標的隱含狀態。而滑動窗口是一種窮舉搜索方法,它列出目標附近的所有可能的樣本作爲候選樣本。

(2)特徵提取:利用何種特徵表示目標。

鑑別性的特徵表示是目標跟蹤的關鍵之一。常用的特徵被分爲兩種類型:手工設計的特徵(Hand-crafted feature)和深度特徵(Deep feature)。常用的手工設計的特徵有灰度特徵(Gray),方向梯度直方圖(HOG),哈爾特徵(Haar-like),尺度不變特徵(SIFT)等。與人爲設計的特徵不同,深度特徵是通過大量的訓練樣本學習出來的特徵,它比手工設計的特徵更具有鑑別性。因此,利用深度特徵的跟蹤方法通常很輕鬆就能獲得一個不錯的效果。

(3)觀測模型:如何爲衆多候選樣本進行評分。

大多數的跟蹤方法主要集中在這一塊的設計上。根據不同的思路,觀測模型可分爲兩類:生成式模型(Generative Model)和判別式模型(Discriminative Model)生成式模型通常尋找與目標模板最相似的候選作爲跟蹤結果。判別式模型通過訓練一個分類器去區分目標與背景,選擇置信度最高的候選樣本作爲預測結果。判別式方法已經成爲目標跟蹤中的主流方法,因爲有大量的機器學習方法可以利用。常用的理論方法包括:邏輯迴歸,嶺迴歸,支持向量機,多示例學習,相關濾波等。

(4)模型更新:如何更新觀測模型使其適應目標的變化。

防止跟蹤過程發生漂移,模型更新沒有一個統一的標準,通常認爲目標的表觀連續變化,所以常常會每一幀都更新一次模型。但也有人認爲目標過去的表觀對跟蹤很重要,連續更新可能會丟失過去的表觀信息,引入過多的噪音,因此利用長短期更新相結合的方式來解決這一問題。

(5)集成方法:如何融合多個決策獲得一個更優的決策結果。

集成方法有利於提高模型的預測精度,也常常被視爲一種提高跟蹤準確率的有效手段。可以把集成方法籠統的劃分爲兩類:在多個預測結果中選一個最好的,或是利用所有的預測加權平均。

7.1.2.3 目標追蹤算法分類

  • 對於視覺目標跟蹤(即單目標跟蹤)任務而言
    • 在2017年之前,大量的跟蹤都是在相關濾波算法的基礎上做出改進的,經典的算法包括KCF、DSST等。
    • 隨着深度學習技術的興起,跟蹤領域中的學者們也開始去嘗試着將深度神經網絡應用該領域中,前期大家更多的是關注預訓練的神經網絡的使用;
    • 而從2017之後,以SINT和Siamese fc爲代表的孿生網絡跟蹤器受到了研究者們的關注
      • 主要的原因還是Siamese fc算法給大家展現了一個超快的跟蹤速度,而且跟蹤精度也不差

目標跟蹤最近幾年發展迅速,以基於相關濾波(Correlation Filter)和卷積神經網絡(CNN)的跟蹤方法已經佔據了目標跟蹤的大半江山。如下圖給出的2014-2017年以來表現排名靠前的一些跟蹤方法。可以看到前三名的方法不是基於相關濾波的方法就是基於卷積神經網絡的方法,或是兩者結合的方法。視覺目標跟蹤方法根據觀測模型是生成式模型或判別式模型可以被分爲生成式方法(Generative Method)和判別式方法(Discriminative Method)。

  • 傳統算法:在當前幀對目標區域建模,下一幀尋找與模型最相似的區域就是預測位置
    • 生成式:
      • 例子:從當前幀知道了目標區域80%是紅色,20%是綠色,然後在下一幀,到處去找最符合這個顏色比例的區域
      • 1、卡爾曼濾波、粒子濾波(Particle Filter)、Meanshift
      • 2、基於相關濾波的算法
        • 如KCF, CN, DSST
    • 判別式就是圖像特徵+機器學習,與生成類方法最大的區別是,分類器採用機器學習,訓練中用到了背景信息
      • 有兩種可以使用的基本網絡模型:堆疊自動編碼器( SAE )和卷積神經網絡( CNN )
      • 如:最流行的使用 SAE 進行目標跟蹤的網絡是 Deep Learning Tracker(DLT),它使用了離線預訓練和在線微調, TLD算法
      • 深度學習相關算法
  • 基於深度學習的跟蹤方法(重點需要去介紹的):
    • 具有代表性的基於卷積神經網絡的跟蹤算法有全卷積網絡跟蹤器( FCNT )和多域卷積神經網絡( MD Net )
    • 1、FCNT(ICCV15)
    • 1、VOT2015的冠軍MDNet
    • 2、VOT2016的冠軍TCNN
    • 3、速度方面比較突出的如80FPS的SiamFC和100FPS的GOTURN
    • 深度學習END2END的強大威力在目標跟蹤方向還遠沒有發揮出來,還沒有和相關濾波類方法拉開多大差
  • 總結:
    • 如果追求高準確度,又能忍受慢一些的速度,那麼就用CSRT
    • 如果對準確度的要求不苛刻,想追求速度,那麼就選KCF
    • 純粹想節省時間就用MOSSE

7.1.2.4 視覺目標跟蹤問題以及面臨的挑戰

1、任務類型

  • 單目標跟蹤(最多)
  • 多目標跟蹤
    • 與單目標跟蹤相比,多目標跟蹤的研究進展則緩慢得多,可用的數據集不夠豐富,可以參考的開源代碼也比較少。
    • 因爲相對來說實現難度更大,多目標跟蹤是一個更工程化的問題,深度學習在該問題上的潛力也尚未被很好地挖掘出來。
    • 注:一般提到“視覺目標跟蹤”或“VOT”,往往指的是單目標跟蹤。儘管看起來 SOT(Single Object Tracking)和 MOT(Multi Object Tracking)只是目標數量上的差異,但它們通用的方法實際上截然不同。

多目標追蹤需要的一些算法技術

  • 匈牙利、KM匹配的後端追蹤優化算法:SORT & DeepSORT
  • IOU Tracker & V-IOU Tracker
  • MOT-RNN

注:除了上述一些,還有跟蹤與分割,3D目標跟蹤等任務

2、挑戰

視覺運動目標跟蹤是一個極具挑戰性的任務,因爲對於運動目標而言,其運動的場景非常複雜並且經常發生變化,或是目標本身也會不斷變化。那麼如何在複雜場景中識別並跟蹤不斷變化的目標就成爲一個挑戰性的任務。

  • 遮擋(Occlusion)是目標跟蹤中最常見的挑戰因素之一:遮擋又分爲部分遮擋(Partial Occlusion)和完全遮擋(Full Occlusion)。解決部分遮擋通常有兩種思路:

  • 形變(Deformation)也是目標跟蹤中的一大難題:目標表觀的不斷變化,通常導致跟蹤發生漂移(Drift)。

  • 背景雜斑(Background Clutter):指得是要跟蹤的目標周圍有非常相似的目標對跟蹤造成了干擾,

    • 解決這類問題常用的手段是利用目標的運動信息,預測運動的大致軌跡,防止跟蹤器跟蹤到相似的其他目標上,或是利用目標周圍的大量樣本框對分類器進行更新訓練,提高分類器對背景與目標的辨別能力。
  • 尺度變換(Scale Variation):是目標在運動過程中的由遠及近或由近及遠而產生的尺度大小變化的現象。預測目標框的大小也是目標跟蹤中的一項挑戰,如何又快又準確的預測出目標的尺度變化係數直接影響了跟蹤的準確率。

    • 通常的做法有:在運動模型產生候選樣本的時候,生成大量尺度大小不一的候選框,或是在多個不同尺度目標上進行目標跟蹤,產生多個預測結果,選擇其中最優的作爲最後的預測目標。

當然,除了上述幾個常見的挑戰外,還有一些其他的挑戰性因素:光照(illumination),低分辨率(Low Resolution),運動模糊(Motion Blur),快速運動(Fast Motion),超出視野(Out of View),旋轉(Rotation)等。所有的這些挑戰因數共同決定了目標跟蹤是一項極爲複雜的任務。

7.1.3 目標檢測數據集

7.1.3.1 數據集與排行

OTB和VOT區別:OTB包括25%的灰度序列,但VOT都是彩色序列,所以對於一個tracker,如果論文在兩個庫(最好是OTB100和VOT2016)上都結果上佳,效果肯定是非常優秀的,如果只跑了一個,更偏向於VOT2016,因爲序列都是精細標註,且評價指標更好。

VOT競賽的數據庫是每年更新,經常就重新標註、改變評價指標,對當年算法是難度比較大,所以結果相對更可靠。

多目標跟蹤,即MOT(Multi-Object Tracking):就是在一段視頻中同時跟蹤多個目標。

MOT主要應用場景是安防監控和自動駕駛等,這些場景中我們往往需要對衆多目標同時進行追蹤。TBD(Tracking-by-Detecton)DFT(Detection-Free Tracking),也即基於檢測的多目標跟蹤與基於初始框無需檢測器的多目標跟蹤。TBD則是目前學界業界研究的主流。下圖比較形象地說明了兩類算法的區別。

7.1.3.2 評價指標

對於多目標跟蹤,最主要的評價指標就是MOTA。

7.1.4 目標追蹤的應用

  • 1、智能視頻監控:基於運動識別(基於步法的人類識別、自動物體檢測等),自動化監測(監視一個場景以檢測可疑行爲),交通監視(實時收集交通數據用來指揮交通流動);
  • 3、人機交互:傳統人機交互是通過計算機鍵盤和鼠標進行的,爲了使計算機具有識別和理解人的姿態、動作、手勢等能力,跟蹤技術是關鍵;
  • 4、機器人視覺導航:在智能機器人中,跟蹤技術可用於計算拍攝物體的運動軌跡;
  • 5、虛擬現實:虛擬環境中3D交互和虛擬角色動作模擬直接得益於視頻人體運動分析的研究成果,可給參與者更加豐富的交互形式,人體跟蹤分析是其關鍵技術;醫學診斷:跟蹤技術在超聲波和核磁序列圖像的自動分析中有廣泛應用,由於超聲波圖像中的噪聲經常會淹沒單幀圖像有用信息,使靜態分析十分困難,而通過跟蹤技術利用序列圖像中目標在幾何上的連續性和時間上的相關性,可以得到更準確的結果。

7.1.5 小結

  • 知道目標追蹤的算法類型以及應用
  • 知道目標追蹤算法的任務類型以及挑戰

7.2 FCNT

學習目標

  • 目標

    • 說明FCNT的算法結構

  • 應用

深度學習跟蹤算法之前誕生了許多優秀的方法,它們是基於構建外觀模型來進行跟蹤的,這些方法又可以分爲兩種,一種是生成式,通過最小化重建誤差來構建外觀模型,另一種是判別式,通過構建一個分類器區分前景和背景(就是目標檢測的思路),但是這些方法都是手工選取特徵的,手工選取特徵的種種不足就不多講了,於是採用深度學習方法來進行跟蹤。

7.2.1 FCNT(Visual Tracking with Fully Convolutional Networks)介紹

論文的貢獻主要有以下三點:

  • 1、分析了圖像分類上深度神經網絡上不同層的特徵的屬性,以及對跟蹤問題的影響。

  • 2、提出一種結合兩種層次特徵的跟蹤算法,更好的選擇特徵,實現更加魯棒的跟蹤。

    • 頂層的CNN layer編碼了更多的關於語義特徵的信息並且可以作爲類別檢測器;
    • 而底層的CNN layer關注了更多局部特徵,這有助於將目標從目標中分離出來。
    • a圖表示的是ground truth,b圖表示的是使用VGG的conv4-3,也就是第10層產生的熱力圖,c圖是通過conv5-3也就是第13層產生的熱力圖。

較低維的CNN layer(conv4-3)能夠更精準地表示目標的細粒度信息,而較高維的CNN layer(conv5-3)熱力圖顯示較模糊,但對同類別的人也做出了響應。

  • 3、提出一種 feature 選擇機制,剔除與跟蹤目標對象干擾或不相關的特徵圖;更進一步提升跟蹤精確度。

7.2.1.1 FCNT架構

跟蹤算法基於 VGG-19,16層卷積 以及 3層 fc

  • 過程如下:
    • 1、將輸入的視頻幀,首先利用 VGG-19提取feature,然後分別利用 高層的特徵,傳送給 SNet 以及 GNet,然後分別將這兩個特徵圖進行映射,最後根據一個干擾性判別器,選擇其中的一個 heap map 作爲最終的輸出,給出跟蹤目標的 bounding box。
    • 2、然後下一幀到來後,以上一幀預測結果爲中心crop出一塊區域,之後分別輸入GNet和SNet,得到兩個預測的heatmap,並根據是否有distractor決定使用哪個heatmap 生成最終的跟蹤結果

FCNT 設計了特徵選擇網絡,還爲這兩個層的選擇特徵映射單獨設計了兩個額外的通道(即 SNet 和 GNet ): GNet 捕獲對象的類別信息; SNet 將該對象從具有相似外觀的背景中區分出來。

  • 1、 先把GNet輸出的熱力圖作爲目標候選。這是因爲GNet使用的是頂層特徵,能夠更好地處理形變、旋轉和遮擋等目標跟蹤中的常見問題
  • 2、若畫面中出現同類物體時GNet不能很好的處理,因此還需要計算有沒有出現目標漂移的情況。其方法是計算在目標候選區域外出現相似目標的概率P,定義一個閾值,若P大於閾值時則認爲出現了同類目標,這時候才利用SNet來定位目標的最終位置,是結果更加準確。

1、Feature Map選擇:剔除與跟蹤目標對象擾或不相關的特徵圖

feature map選擇方法基於目標熱圖迴歸模型,命名爲sel-CNN,在VGG的conv4-3 和 conv5-3層獨立進行。sel-CNN由一個drop和一個卷積層構成,沒有非線性變換

  • 輸入是conv4-3或conv5-3,輸出目標熱圖M,是一個位於GT中心的2-維的高斯分佈,方差與目標的尺寸正比(如:Figure 1 (a)和(b))。模型的訓練是最小化預測前景熱圖\hat M​M​^​​

和目標熱圖的最平方差

2、目標定位:干擾feature maps通用feature map選擇排除後,更復雜的模型獲取更精確的跟蹤效果。

圖中 (c) 和 (d) 展示了目標定位的CNN設計。在第一幀feature map選擇完成後,使用conv4-3 和conv5-3層特徵分別構建SNet 和GNet。兩個網絡使用相同結構

  • 1、第一個卷積層的卷積核尺寸爲9×9,輸出36個feature maps
  • 2、第二個卷積層卷積核尺寸爲5×5,輸出前景熱圖
  • 3、兩個卷積層都使用ReLU做非線性變換

計算過程略

7.2.1.2 訓練以及使用

訓練

  • 1、在第一幀中使用反向傳播對50個迭代進行訓練,以進行用於特徵圖選擇和用於目標定位的GNet和SNet。
  • 2、在每個更新步驟對SNet進行3次迭代微調。
  • 3、學習率設置爲1e-9,GNet和SNet的學習率設置爲1e-7。對於conv4-3和conv5-3層,通過建議的特徵選擇方法選擇的特徵圖的數量均設置爲K = 384。以目標位置爲中心的輸入ROI區域的大小爲386×386 pixel-s。

7.2.1.3 效果對比

  • 平均精確率在不同的條件下:光照變化llumination variation (IV), 平面外旋轉out-of-plane rotation (OPR), 比例變化scale variation (SV), 遮擋occlusion (OCC), 形變deformation (DEF), 運動模糊motion blur (MB), 快速運動fast motion (FM), 平面內旋轉in-plane rotation (IPR), out-of-view (OV), 背景混亂background cluttered (BC) and解析度低 low resolution (LR).
    • 紅色和綠色是不同條件下的第一高和第二高的分數

7.2.2 總結

  • 瞭解FCNT的結構特點

7.3 GOTURN

學習目標

  • 目標
    • 說明GOTURN的算法結構
    • 掌握GOTURN的訓練過程
  • 應用

7.3.1 GOTURN介紹

7.3.1.1 背景

傳統通用目標跟蹤器(相對於特定目標跟蹤器)完全是通過在線抓取來訓練,而沒有離線訓練。這種跟蹤器性能不好的原因是獲取的信息太少,僅僅在線訓練不能利用大量視頻的優勢。而這些視頻有可能幫助跟蹤器處理旋轉,視點改變,光線改變等問題,進而提高跟蹤性能。而機器學習已經能夠從大量的離線數據中學習。

  • 在線更新:
    • 優點:隨時適應目標的變化,和背景信息的變化,對特徵的要求較低,低層特徵計算速度快分辨率高;
    • 缺點:模型更新會累計誤差,遮擋或失敗時會學到背景,丟失後再也找不回來。
  • 在線不更新:
    • 優點:不更新速度更快,跟蹤目標永遠不會被污染,long-term特性非常優秀;
    • 缺點:對特徵的要求非常高,必須是表達能力足夠強足夠魯棒的特徵,通常高層特徵計算速度慢、分辨率低。

論文提出了一種基於深度學習的目標跟蹤算法,有以下幾個特點:

  • 100fps,比之前大多數採用深度學習的跟蹤算法都快。

  • 基於線下訓練,不需要在線的學習。

  • 測試目標可以不同於線下訓練的數據集,當然,如果訓練集裏包含同樣的類別,跟蹤精度會有一定程度的提高。

7.3.1.2 結構

網絡模型取自CaffeNet的前5個卷積層,3個全連接層。每個全連接層有4096個節點,輸出層4個節點,代表輸出包圍盒。網絡必須獲得視頻中被跟蹤對象的信息。可以通過剪裁和調整前一幀跟蹤到的目標來獲得跟蹤對象,剪裁中心的目標就是跟蹤對象。剪裁的crop會在目標周圍留有餘地,會讓網絡學習到一些目標背景和環境信息。

過程:將上一幀的目標和當前幀的搜索區域同時經過CNN的卷積層(Conv Layers),然後將卷積層的輸出通過全連接層(Fully-Connected Layers),用於迴歸(regression)當前幀目標的位置。整個框架可以分爲兩個部分:

  • 1、卷積層,用於提取目標區域和搜索區域的特徵
  • 2、全連接層,被當成一個迴歸算法,用於比較目標特徵和搜索區域特徵,輸出新的目標位置

7.3.1.3 算法細節

  • 訓練與測試分離
    • 對網絡的訓練是offline的,在跟蹤的時候沒有online update的過程。算法足夠快,把耗時的計算過程都離線做好,跟蹤過程只有一個計算前饋網絡的過程。

  • 算法輸入輸出形式
    • 輸入:在第t-1幀中,假設目標所在位置爲(cx,cy),其大小爲(w,h),則提取一塊大小爲(2w,2h)的圖像塊輸入到CNN中。
      • 剪裁後的圖像的寬度和高度分別爲k1w和k1h,這裏的參數k1的作用是用於聯繫物體的背景(context),當k1值越大時,則截取的圖像範圍也越大,相應的,包含的背景信息也就越多。文中默認的值爲k1=2
      • 在第t幀中,也以(cx,cy)爲中心,提取大小爲(2w,2h)的圖像塊,輸入到CNN中。
    • 輸出:輸出目標在第t幀中左上角和右下角的座標。

7.3.1.4 網絡的訓練過程

對於跟蹤問題,一般的當前幀目標的位置和尺度都與上一幀是有關係。論文作者通過對視頻序列中的groundtruth進行研究發現,當前幀目標的位置和尺度變化與上一幀的目標存在着某種分佈關係。關係如下:

上述描述中,cx,cy,w,h代表的是上一幀目標的位置和大小,c′x,c′y,w′,h代表當前幀目標的位置和大小,Δx,Δy,γw,γh代表目標位置和大小變化的程度(比例)。

作者通過實驗發現,這四個變化因子都符合laplace分佈,laplace分佈的概率密度函數爲:

其中μ是位置參數,b是尺度參數,這個分佈的期望E(x)=μ,方差爲D(x)=2b^2。

7.3.1.5 實驗

data augmentation對算法的影響

論文作者做了非常多且非常細緻、嚴謹的實驗,

  • batch size取50,augmented data的個數可以去取0~49,至少保留一個真實樣本(因爲augmented data都是從這個真實樣本變換得來的)。
  • 觀察上圖可發現,性能最好的是batch中有49個augmented data只有一個real data,但是實際上當augmented data的數量高於20的時候,性能基本保持不變了。
  • 論文使用的batch size是50,作者對每個圖像進行了10倍的data augmentation。

多個因素對整體效果的影響

還做了損失函數、motion smoothness (data augmentation)、image data對整體性能的影響,最後發現使用L1 loss + motion smothness + image training + video training是效果最好的。

最終結果

  • 訓練集:ALOV++ 從314個視頻序列中去除7個。實際用307個。總共252個目標物體,共計13082張圖,平均每個物體52幀。
  • 驗證集 :56個物體 2795張圖。

訓練集和驗證集無重複:訓練集中也用了圖片來訓練。圖片來源自ImageNet 2014。測試集: VOT2014 上的25個序列,沒有使用VOT2015的原因是VOT2015的數據集中有大量視頻與測試集重複。評價參數:精確度(A),魯棒性(R),精確度誤差(1-A),魯棒性誤差(1-R),總誤差(1-(A+R)/2)。 實驗結果:

7.3.1.6 論文總結

  • 1、當前幀的跟蹤預測參考前一幀的跟蹤結果。
  • 2、採用視頻和圖片訓練的方式有較強的泛化能力。可以跟蹤訓練集中沒有出現的物體
  • 3、crop的方式採用了拉普拉斯分佈而不是高斯分佈。讓跟蹤器能夠更適應微小運動,進而實現跟蹤的連續性。
  • 4、文中對比的算法都是經典算法,沒有與目前基於深度學習的跟蹤算法的比較。
  • 5、不需要在線微調網絡參數,只需要一次前向傳播得到目標位置,所以很快,如題跟蹤可達100FPS.

7.3.2 小結

  • Goturn結構特點
  • Goturn的訓練過程

7.4 SiamFC

學習目標

  • 目標
    • 知道SiamFC的網絡結構特點
    • 掌握SiamFC的網絡訓練方式
  • 應用

任意對象跟蹤的問題是通過僅僅在線地學習對象外觀的模型來解決,使用視頻本身作爲唯一的訓練數據。 儘管這些方法取得了成功,但他們的在線方法本質上限制了他們可以學習的模型的豐富性。需要跟蹤的目標是通過起始幀的選擇框給出的。框中可能是任意物體,甚至只是物體的某個部分。由於給定跟蹤目標的不確定性,我們無法做到提前準備好數據,並且訓練出一個具體的(specific)detector。過去幾年出現了TLD,Struck和KCF等優秀的算法,但由於上述原因,用於跟蹤的模型往往是一個簡單模型,通過在線訓練,來進行下一幀的更新。

  • SiamFC可以使用ILSVRC目標檢測數據集來進行相似度學習的訓練,驗證了該數據集訓練得到的模型在ALOV/OTB/VOT等跟蹤數據集中擁有較好泛化能力。

7.4.1 SiamFC介紹

論文提出了一種全連接孿生網絡,實現了端到端的訓練。基於相似度學習(similarity learning)的跟蹤器SiamFC,通過進行離線訓練,線上的跟蹤過程只需預測即可。證明這種方法在速度遠遠超過幀速率要求的情況下在現代跟蹤基準測試中實現了非常有競爭力的性能。達到了超過實時的幀率(86 fps 在VOT-15上)

7.4.1.1 架構

SiameseFC的兩個子體神經網絡,分別輸入作爲跟蹤目標的模板圖像作爲搜索範圍的檢測圖像,過程如下:

  • 對於模板圖像:

    • 1、以目標中心爲裁剪中心,確定一個稍大的正方形(記邊長爲 C )裁剪區域(可能會超出原圖片,以圖片顏色均值填充)

    • 2、然後resize到127x127x3,然後通過卷積神經層,得到一個6x6x128的輸出feature map。

    • C 的計算公式如下(設目標框的大小爲w×h):

對於檢測圖像:首先統一resize到255x255x3,然後通過卷積神經層,得到一個22x22x128的輸出feature map。

圖示符號含義如下:

  • 將第一幀圖像目標作爲模板圖像𝑧,將後續個幀圖像作爲搜索圖像𝑥,通過一個學習好的相似性對比函數𝑓(𝑧,𝑥)在𝑥上找到和𝑧最爲相像的備選區域作爲預測的目標位置。相似度對比函數𝑓將會用一個標記好的數據集進行訓練。

    • 注:作者用深度網絡作爲相似度對比函數𝑓,將網絡作爲一種變換𝜑,首先將這種變換分別應用到模板和搜索圖像上,產生模板和搜索區域的特徵𝜑(𝑧),𝜑(𝑥),然後用另外一個相似度測量函數𝑔將他們結合起來

網絡最後的輸出就爲我們需要的響應圖。在響應圖中尋找響應值最高的一點,該點在候選區域中的對應部分,就是預測的目標位置。也可以用感受野來理解,上圖中輸出的小紅點和小藍點,對應在輸入層的感受野就是輸入圖像x中的紅色區域和藍色區域。

7.4.1.2 網絡結構與訓練過程

SiamFC設計的網絡結構將原始圖像縮小了8倍,即𝑘=8,並且,該網絡沒有padding。

  • 1、SiameseFC的卷積神經層是基於AlexNet架構的,其中的padding和全連接層被移去,加入batch normalization層,head改爲全卷積網絡層
  • 2、在經過卷積神經層提取特徵後,SiameseFC使用cross-correlation(交叉相關)作爲相似度的度量,計算兩個feature map各個位置(區域)上的相似度,得到一個score map(或者說heat map)
    • 相似度度量是cross-correlation交叉相關,計算每個位置的相似度得到score map,相當於拿輸入特徵6x6x128x1作爲卷積核,對22x22x128的feature map進行卷積操作,(22-6)/1+1 = 17,得到17x17x1的輸出
    • 注:在數學上,相關操作可以用於計算兩個數據之間的相似度。而在卷積神經網絡中, 對卷積操作的定義事實上就是相關操作,因此可以通過卷積操作來計算模板圖像和檢測圖像各個區域之間的相似度。

模型訓練過程

由於論文提出的Siamese結構是全卷積網絡結構,這樣的好處是能夠輸入輸出任意大小的結構。不用受限制於要輸入相同大小的圖片尺寸,可以在跟蹤的時候使用全圖作爲輸入去比較,找到目標的位置,保證目標不丟失。並且可以使用ImageNet數據集中的圖片,把標註的目標位置作爲模板樣本,把整張圖片作爲搜索樣本對網絡進行訓練,得到最終的參數。從標註的 video 數據集上,通過提取 exemplar 和 search images 得到的 Pairs,是在 target 中心的。從一個 video 的兩幀上得到的 images 包括物體。在訓練的過程中,不考慮物體的類別。

label標籤:

訓練網絡的輸出是一個 17×17x1 的預測response。SiamFC是全卷積網絡,我們不用關心物體在圖片中的位置,而是隻要得到物體位置的中心部分。所以直接將 ground truth 設爲中心響應最大的 17×17x1目標響應圖。根據輸入和網絡縮放情況,將GT response中心點及其 Manhattan Distance 距離爲2的點設爲1,其餘點設爲0(-1)。

  • Manhattan Distance = 16 / 8, 8是網絡stride的總步長, 16是超參數。
labels:
 [[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
  • 2、作者用大規模搜索圖像訓練模型,訓練數據是由樣本對組成的,視頻中的第一幀圖像中的目標和該視頻中的其他相差不超過T幀的圖像組成了若干樣本對(目標圖像和後續幀都組成一個樣本對)。
    • 每個樣本對經過孿生網絡生成響應圖𝑣[𝑢]後,u∈D(u表示響應圖中的每個位置),響應圖每個位置對應的標籤爲𝑦[𝑢],𝑦[𝑢]的定義遵循如下規定,表示當響應圖中某位置𝑢和響應圖中目標位置𝑐的距離乘以比例因子𝑘後小於𝑅則爲正樣本。

7.4.1.2 測試過程

  • 原crop邊長(記爲 C ) 乘以下面的尺度,得到三個新的crop邊長。輸入網絡得到三個score map(響應圖)

    • 尺度如下:

  • 1.0375這個超參數的由來論文作者並沒有特別說明。我們可以理解爲物體會出現的偏移係數

  • 確定物體中心和大小

如何確定輸入的搜索圖區域上目標框的中心和大小

1、確定預測的目標框的中心

  • 1、找到一號最大響應點

    • (1)確定尺度:三個17x17的responses響應圖分別經過16倍雙三次插值上採樣變成三個272x272大小的responses。
      • 原因:插值到 272 是爲了增大響應圖的分辨率:只要 272 響應圖和 255 輸入的位置對應關係計算正確是可以跟蹤的。
    • (2)對於第一個和第三個非正常尺度的responses乘以一個懲罰值(這裏是 0.9745 )。第二個是正常尺度可以將懲罰值看做 1.0 。
      • 對於三個尺度上的最大值,分別乘上 [0.9745, 1, 0.9745] 作爲懲罰,然後再比較三者中的最大值,作爲最終尺度。0.9745這個超參數的由來並沒有特別說明
    • (3)選取懲罰後的三個responses 中最大值所在的那一個responses 對應的尺度作爲目標的最佳尺度best scale ,將這個 response 稱爲 best responses (272×272)。
  • 2、找到二號最大響應點 :將此最大相應點對應到輸入的 search 區域,確定目標框的中心:

    • (1)對 best response (272×272) 進行歸一化處理,然後用一個對應大小的餘弦窗(hanning window)進行懲罰(餘弦窗中心位置的值最大,往四周方向的值逐漸減小。因爲目標物體靠近區域中心,這樣做可以看做是對預測時出現較大位移的懲罰)。
      • (2)找到處理後的 best response (272×272) 中最大值的座標將這個座標對應到輸入的 search 區域上的一個點(通過和中心的距離來對應),作爲下一幀搜索圖區域中預測的目標物體中心位置。

2、確定目標框的大小:

  • 由best scale和初始幀中的目標框大小確定當前預測框的大小,寬高比保持不變 。

這樣由中心位置和框的大小,就可以畫出輸入的這這一幀搜索圖的中心被跟蹤物體了。

如此鏈接所示:SiamFC跟蹤示例

7.4.1.2 算法特點

1、多尺度檢測:多尺度檢測通常是將目標先進行不同尺度的採樣(如生成圖像金字塔),再對不同尺度的圖像分別進行檢測。在SiameseFC中,對圖像先進行不同尺度的採樣、再resize到固定的分辨率,可以合併爲一個步驟,因此可以並行地生成多張分辨率相同但尺度不同的目標圖像(將尺度不同的目標圖像resize到同一分辨率即可),集合成一個mini-batch,送進網絡進行多尺度檢測,從而實現SiameseFC的尺度適應性。

2、在線不更新:SiamFC是非常優秀的long-term跟蹤算法。SiameseFC在預測的時候,不在線更新模板圖像。這使得SiameseFC的計算速度很快,以便在後續幀中能夠應對各種變換。而在另一方面,不在線更新模板圖像的策略,可以確保跟蹤目標的不變性和純淨性,在long-term跟蹤算法上具有天然的優勢。

7.4.1.3 算法細節

7.4.1.5 實驗

實驗設備是NVIDIA GeForce GTX Titan X顯卡和Intel Core i7-4790K 4.0GHz處理器。共做了兩種不同的算法版本,一種是5種尺度SiamFC,另一種是3種尺度SiamFC-3s,分別在OTB2013和VOT數據集上進行了測試。

1、OTB2013

在測試過程中,作者將25%對圖像樣本轉化爲灰度圖像,其餘不變,效果如下。可以看到SiamFC和SiamFC-3s的效果都居於前兩名。其中單次成功率OPE可達0.62,時間魯棒性TRE(將不同幀打亂)可達0.612,而空間魯棒性SRE(從幀內不同框位置開始)可達0.564。

2、VOT

VOT-2014結果:除了和VOT2014的前十名的跟蹤算法相比,還另外加入了Staple和GOTURN。算法主要兩個評價指標:accuracy和robustness,前者是計算平均IOU,後者是計算總是失敗幀數。下圖顯示了Accuracy-Robustness plot(按照accuracy和robustness分別進行排名,再進行平均)。

VOT-2015結果:下圖顯示了VOT-2015排名前41名的跟蹤算法,另外還用表格顯示出了排名前15的跟蹤算法的更加細節的比較(包括速度)

7.4.1.5.6 SiamFC的發展

SiamFC短短一年就有很多跟進paper,可以說開創了目標跟蹤的另一個方向。從VOT2017的結果來看,SiamFC系列位數不多的end2end離線訓練tracker,是可以得益於大數據和深度學習的最具發展潛力的方向。

注:有興趣可以看看相關論文

7.4.2 SiamRPN

商湯科技智能視頻團隊首次開源其目標跟蹤研究平臺 PySOT。PySOT 包含了商湯科技 SiamRPN 系列算法,以及剛被 CVPR2019 收錄爲 Oral 的 SiamRPN++。

由於存在遮擋、光照變化、尺度變化等一些列問題,單目標跟蹤的實際落地應用一直都存在較大的挑戰。過去兩年中,商湯智能視頻團隊在孿生網絡上做了一系列工作,包括將檢測引入跟蹤後實現第一個高性能孿生網絡跟蹤算法的 SiamRPN(CVPR 18),以及最新的解決跟蹤無法利用到深網絡問題的 SiamRPN++(CVPR 19)。其中 SiamRPN++ 在多個數據集上都完成了 10% 以上的超越,並且達到了 SOTA 水平,是當之無愧的目標跟蹤最強算法。

  • 主要貢獻
    • 1、提出了孿生區域建議網絡,能夠利用ILSVRC和Youtube-BB大量的數據進行離線端到端訓練。
    • 2、在線跟蹤時,將proposed framwork視爲單目標的檢測任務,這使得可以不用高耗時的多尺度測試就能精確的候選區域。
    • 3、在VOT2015, VOT2016 and VOT2017的實時比賽中達到了最優性能,並且可達到160FPS,同時具有精度的效率的優勢。

7.4.2.1 結構

Siamese子網絡和區域生成的候選區域子網絡組成

相比於SiameseFC的改進:

  • 1、引進了Region Proposal Network。並將模板圖像和檢測圖像經卷積神經層輸出的feature map都複製雙份,一份送到RPN中的分類分支,另一份送到RPN中的迴歸分支。
  • 2、在RPN的分類分支中
    • 模板圖像和檢測圖像的feature map,都將首先通過一個卷積層,該卷積層主要是對模板圖像的feature map進行channel上的升維
    • 維度變爲檢測圖像的feature map的維度的2k倍(k爲RPN中設定的anchor數)。將模板圖像的feature map在channel上按序等分爲2k份,作爲2k個卷積核,在檢測圖像的feature map完成卷積操作,得到一個維度爲2k的score map。該score map同樣在channel上按序等分爲k份,得到對應k個anchor的k個維度爲2的score map,兩個維度分別對應anchor中前景(目標)和後景(背景)的分類分數,是關於目標的置信度。
  • 3、在RPN的迴歸分支中
    • 其維度變爲檢測圖像的feature map的維度的4k倍(k爲RPN中設定的anchor數)。此後,將模板圖像的feature map在channel上按序等分爲4k份,作爲4k個卷積核,在檢測圖像的feature map完成卷積操作,得到一個維度爲4k的score map。該score map同樣在channel上按序等分爲k份,得到對應k個anchor的k個維度爲4的score map,四個維度分別對應anchor的(x,y,w,h),是關於目標的座標及尺寸。

RPN的引入,使得Siamese網絡自然擁有了多尺度檢測的能力(通過anchor機制cover各種size),並且可以準確地迴歸出目標的位置及大小。

Siamese feature extraction subnetwork

該子網絡由模板分支和檢測分支組成:模板分支將歷史幀的目標塊作爲輸入,用 z 表示;檢測分支用當前幀的目標塊作爲輸入,用 x表示。兩個網絡共享CNN參數,用 φ(z) 和 φ(x)表示網絡輸出。

Region proposal subnetwork

該子網絡由分類分支和迴歸分支組成,分類分支輸出有 2k個channels(前景和背景),迴歸分支有 4k個channels(x,y,w,h),其中 k表示anchors,即每個位置預測框的個數。分類分支使用cross-entropy損失,迴歸分支使用Faster R-CNN中的smooth L1損失。

7.4.2.2 訓練

  • 1、Siamese子網絡首先在ImageNet上進行預訓練,然後用SGD對Siamese-RPN進行端到端訓練
  • 2、由於在跟蹤任務中相鄰幀間的變化不會太大,所以選用的anchors個數比檢測任務要少。只選用了一個尺度的5種不同寬高比[0.33,0.5,1,2,3]
  • 3、正樣本:IOU >0.6,負樣本:IOU < 0.3。對每個樣本對限制最多16個正樣本和總共64個樣本

預測過程

模板分支在初始幀得到的輸出作爲檢測分支的卷積核,然後在整個跟蹤過程中固定不變。

7.4.2.3 實驗效果

在基線算法 SiamFC 的基礎上,讓tracker可以迴歸位置、形狀,可以省掉多尺度測試,進一步提高性能並加速。SiamRPN 實現了五個點以上的提升(OTB100,VOT15/16/17 數據集);同時還達到了更快的速度(160fps)、也更好地實現了精度與速度的平衡。

VOT2015效果

VOT2016效果

7.4.2.4 總結

與SiamFC對比

  • 視覺跟蹤領域主流的實時跟蹤方法是以SiameseFC爲代表的孿生網絡結構,Siamese FC網絡非常簡單,通過相同的網絡提取出圖像的特徵,通過類似卷積的相關操作方法,可以快速的實現模板與搜索區域中的17x17個小圖像進行比對,輸出的17x17的響應圖,相當於每個位置和模板幀的相似度。
    • 但SiameseFC有以下缺陷:1、首先由於沒有迴歸,網絡無法預測尺度上的變化,所以只能通過多尺度測試來預測尺度的變化,這裏會降低速度。其次,2、輸出的相應圖的分辨率比較低,爲了得到更高精度的位置,Siamese FC採用插值的方法,把分辨率放大16倍,達到與輸入尺寸相近的大小。
  • SiameseRPN通過引入物體檢測領域的區域推薦網絡(RPN),通過網絡迴歸避免多尺度測試,一方面提升了速度,另一方面可以得到更爲精準的目標框,更進一步,通過RPN的迴歸可以直接得到更精確地目標位置,不需要通過插值得到最終的結果。在訓練過程中,由於引入了大規模的視頻數據集Youtube-BB進行訓練,相比較SiameseFC使用的VID數據集,Youtube-BB在視頻數量上有大約50倍的提升,這保證了網絡能夠得到更爲充分的訓練。

7.4.3 SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks (SiamRPN++)

之前的孿生網絡,都是基於比較淺的卷積網絡 (比如AlexNet) 。但如果直接引入深度網絡,性能反而會大幅下降。

現存很多基於SiamNet算法的網絡深度基本與Alext相似,作者多次嘗試使用ResNet等深層網絡,但性能並沒有什麼提升。經分析知,由於paddingpadding導致特徵圖失去了嚴格的裁剪不變性,不能很好的根據響應圖位置反推目標的位置。爲了能夠使用深層網絡來提取更加魯棒的特徵,作者提出一種有效的採樣方式來打破空間不變的限制。

7.4.3.1 架構

使用ResNet-50作爲特徵提取的網絡構架,提出depthwise和layerwise操作針對特徵進行優化,提升SiamRPN網絡的性能。下圖爲該算法框架圖

上圖中顯示了SiamRPN模塊使用多層特徵作爲輸入,並且總共有16層卷積層,有利於提取深層卷積特徵。

1、不同層特徵應用

使用深層網絡作爲特徵提取結構,網絡的輸出是目標的深層語義特徵,而那些用於定位目標的淺層特徵則未被利用。爲了合理的結合深-淺層特徵,作者提出channel-wise模塊用於結合不同層特徵,最大化提升網絡的跟蹤性能。

上圖紅框框出了不同層間跟蹤性能,其中多層結合對極大地提升算法的跟蹤性能,大概3%左右

2、減少參數數量

針對SiamRPN網絡中UP-Channel操作帶來的巨大網絡參數量以及訓練時難以擬合,作者提出一種Channel-wise操作,針對通道間進行卷積,有效的減少了網絡參數量,同時加快了網絡的擬合。 普通卷積、UP-Channel卷積、Channel-wise卷積如下圖所示:

上圖(b)中,可以明顯的看出網絡的通道數增加了2k倍,不僅帶來了巨大的內存消耗,同時還難以擬合優化;圖(c)採用了Channel-wise則有效的減少了網絡的內存開銷以及網絡的優化參數。

3、添加Shift

針對padding帶來的裁剪不變性丟失的問題,作者引入了一種新的有效的採樣策略。深層網絡中使用padding會導致網絡習得隱藏的規律,目標所在的位置就在中心,從而導致響應圖的最大值在中心附近。爲了打破這種規律,作者在訓練時將樣本對中標籤樣本分佈添加一個shift,從而保證樣本中心的一種近似隨機分佈。

上圖中從左往右顯示了不同shift的響應圖可視化。可以看出添加shift後,響應圖的最大值分佈會往四周擴散,有效地減輕了網絡習得的中心化響應。

7.4.3.2 實驗

  • 性能比較

在VOT2018數據集上,Siam-RPN++在EAO、accuracy、AO指標上獲得最佳成績。

7.4.3.3 總結

  • Siam-RPN++從另一個角度解決深層網絡帶來的性能退化問題–標籤樣本的shift。
  • 利用Channel-wise和layer-wise來提升目標特徵的選擇,提升跟蹤性能。深淺層特徵結合在KCF相關論文裏早已提及,說明以後使用深層網絡時需注意不同層特徵之間的結合,以最大化利用淺層信息與深層信息。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章