基於多尺度全卷積孿生網絡的目標跟蹤算法

基於多尺度全卷積孿生網絡的目標跟蹤算法

一.背景技術介紹

      傳統的跟蹤算法大多從物體的外觀出發,只能在線學習,從當前的視頻中在線抓取數據進行學習跟蹤的算法,如:TLD、Struck、KCF,這類算法必須足夠簡單才行,否則耗時嚴重。當然現在也有人使用卷積網絡進行離線訓練,在線跟蹤,但是當跟蹤目標未知時,需要利用隨機梯度下降法(SGD)在線微調網絡權重,從而使得速度下降,做不到實時跟蹤。

     綜上,淺層學習方式,如相關濾波,利用網絡內部參數作爲特徵,這樣不能充分發揮“端對端”的優勢。而利用SGD微調多層網絡參數的方式無法實時跟蹤。

近期的研究工作有:

     1.利用RNN網絡進行訓練,通過預測目標在各幀中的位置來跟蹤,同時加入了可區分的“注意力機制”。雖然該方法目前無法在現有的標準測試集上取得顯著的結果,但是有足夠的潛力;

     2.利用粒子濾波的方式,通過訓練好的距離矩陣比較當前幀與第一幀的區別,其中距離矩陣是利用了首先玻爾茲曼機(RBM)和隨機點的方式訓練所得。此方法與本文中的方法差異太大,因此沒有使用該方法。

     3.離線預訓練+在線微調方式,其中SO-DLT和MDNet均離線訓練了一個相似性檢測的卷積網絡,並在線使用SGD算法進行微調。利用這種方法的Deep SRDCF和 FCNT均取得了很好的結果,但是在速度上依舊不行。

     4.GOTURN算法也採用了YCNN的結構,但是該算法無法控制下一幀的變換形式,不具有變換的內在不變性,除非樣本集包含所有種類所有位置的變換。並且不能自適應調節搜索區域的大小。

     5.SINT(Siamese Instance search Tracker)算法從名字上看像是從Instance級別上去搜索,它採用非全卷積的結構,在圖像中均勻分佈着類似Struck算法中的圓形區域,然後利用光流和標記框的修正來提升效果,並通過ROI區域來提升速度,最終達到了2fps。

二.算法原理

     該算法採用了全卷積式的Siamese網絡,作者在文中給出了簡化版的網絡結構,其中卷積層分別是對模板圖像和搜索圖像進行的操作,共5層,然後利用一種相似性度量函數將兩個矩陣合併成一個得分矩陣。如圖:


   由表可以看到網絡的卷積層部分結構和參數是一致的,並且前兩層卷積層後都接有池化層:


       1.輸入圖像

    對於輸入圖像的處理,該算法類似於GOTURN算法,都對目標區域作了擴充。如果目標區域尺寸爲wh,那麼則對其邊界各擴增p,其中p=(w+h)/4。而對於模板圖像A=1272,則利用以尺度變換s使得新的區域面積等於其面積:



       s的變換方式是在原有尺寸不變的前提下填充原圖RGB各通道均值像素,而待搜索圖像則也是以目標區域爲中心,都是從視頻中選取的與模板圖像相差不超過T幀的圖像。

      另外,作者還在文中提到,對於待搜索圖像,選取了多個尺度。其中初始的SiamFC採用了5種尺度,分別是1.025{-2,-1,0,1,2},針對這些尺度採用了以0.35爲步長的線性函數作爲抑制。另外SiamFC-3s則是採用了3種尺度。

       2.卷積層

       作者在文中只給出了卷積層的簡單表示,通過查閱文獻可知,實際上作者是採用的Hinton的學生Krizhevsky設計的網絡結構:


    從圖中可以看到,一共有5層卷積,各層的參數可以簡化說明如下:

        C19611113的卷積核,步長爲4

        C22565548的卷積核,步長爲1

        C338433256的卷積核,步長爲1

        C438433192的卷積核,步長爲1

        C525633192的卷積核,步長爲1

    並且作者使用了雙GPU並行的方式,在第三層處還同時使用了兩個GPU的結果。其中前兩個卷積層後面都接有最大池化層,前四個卷積層都用了Relu激勵函數。作者在文中還提到,前兩個卷積層(Conv)後都直接進行了mini-batch normalization即批規範化,爲了防止梯度擴散。查閱文獻可知原理如下:


       其中表示第k批樣本的卷積層輸出標準差,表示第k批樣本的卷積層輸出均值,即:


    而對於卷積層中的參數,作者是借鑑了MSRA何愷明的文章,查閱其文章可知參數均服從高斯分佈:



        其中k爲當前層卷積核邊長,c爲通道數。

       3.相似性度量(這部分等調試完代碼再更正)

        在Siamese網絡尾部,作者依舊是採用了一種相似性度量的方式,類似立體匹配。這個地方作者沒有詳細說明,不過通過網絡輸出可以看出,是將模板函數輸出看作一個66128卷積核,然後利用3維卷積的方式實現相似性度量。

        4.損失函數

        這裏作者定義了一個損失函數,對於得分矩陣中的每一個點u有:


    其中v實際輸出,y是真實標籤{+1-1},而標籤的製作方式如下:


    其中,c指的目標區域中心,k指的是最後一層的步長,本文取得8(但是跟我想象中不一樣,我推導的結果是1,這個需要調試完代碼之後來看)。

        5.定位目標區域(tracking中進行)

    在訓練完後,通過獲取圖像得到相似性矩陣,然後直接利用雙三次插值將1717的矩陣變爲255255的矩陣,從而定位目標區域。雙三次插值的原理如下:

         對於每個待求像素點x,其像素值可由其相鄰左右各兩個像素加權求得:


         其中,,對於不同的s值有三次插值基函數如下:


三.樣本集的準備

     訓練集是從ImageNet中的4417部視頻,包含200w+帶標記的目標框。其中去除了snake、train、whale、lizard等的圖像,因爲他們的體積太小或者太大,又或是離邊界太近,因此總是不以完整的形態出現在圖像中。

      測試集分別使用了The OTB-13、VOT-14、VOT-15、VOT-16等數據集,採用了監測評價函數IoU,其計算原理如下:


      其中Detection result指的是通過該算法得到的目標框,將其與真實框座交併集運算。除此之外,還引入了OPE、TRE、SRE等評價標準,分別評價了算法跟蹤的連續性、時空魯棒性。同時還在測試VOT-14時,通過引入GOTURN中使用的accuracy和robustness來評價效果。

     作者所使用的計算機設備是NVIDIA GeForce GTX Titan X顯卡和Intel Core i7-4790K 4.0GHz處理器。

四.結果與分析

     作者通過MatConvNet工具箱使用mini-batch SGD算法展開訓練。一共做了超過50代訓練,每代訓練50000對樣本,另外mini-batch中每批8對樣本,而學習速率則是分別取了10-2,10-3,10-4,10-5也就是說作者做了四次大循環,每次循環50代。

1.The OTB-13 benchmark

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


2.The VOT-14 results

      在VOT-14的測試中,作者加入了CVPR2016和ECCV2016中的Stable和GOTURN算法,並引入精確度和魯棒性兩個參數,其中精確度用平均IoU值代替,魯棒性則與總的失敗率有關。結果如下:


3.The VOT-15 results

       VOT-15的結果如下:


       可以發現SiamFC和SiamFc-3s均排名較高,其中前者可達58fps,後者可達86fps。具體見表:


       作者後面還通過不斷改變數據集大小來觀察測試效果的不同,發現數據集越大,目標預測效果越好結果見表:


4.The VOT-16 results

    作者在寫這篇文章的時候,2016的官方結果還沒出,作者自己測試的結果是SiamFcSiamFc-3s的預測重疊率分別是0.38760.4051


原文及代碼鏈接:原文及代碼鏈接
相關算法鏈接:    卷積層網絡結構-AlexNet
                           Xavier網絡參數初始化
                           mini-batch normalization
        
發佈了32 篇原創文章 · 獲贊 29 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章