Dense Structural Learning for Infrared Object Tracking - DSLT; 附UAV123_10fps和VIVID

Dense Structural Learning for Infrared Object Tracking - DSLT: winner of VOT-TIR2017   

    在剛剛過去的VOT-TIR2017紅外目標跟蹤挑戰賽中,我們的DSLT跟蹤算法獲得了冠軍。爲此,VOT組委會副主席Michael Felsberg教授邀請我去參加10月28日ICCV上舉辦的VOT-Workshop並作12分鐘的報告另加3分鐘的問答,但是因爲沒有來得及辦下籤證導致此次威尼斯旅行計劃泡湯,有點可惜。

    由於組委會認爲去年的TIR比賽結果並沒有達到令人滿意的高度,因此今年的TIR比賽依然沿用了去年的紅外圖像數據集,在比賽一開始官方就貼出了這樣的通知:


    VOT-TIR2017竟然把SRDCFir作爲baseline,確實有點嚇人。看看VOT-TIR2015和VOT-TIR2016的比賽結果就知道了,SRDCFir老大的地位一直沒人能撼動得了。。。所以這屆的TIR比賽註定是寂寞的:相較於前兩年20多個參賽算法,以及VOT2017(可見光(彩色)圖像目標跟蹤挑戰賽)50多個參賽算法,今年的TIR比賽僅有10個參賽算法,而且其中有4個跟蹤算法:EBT、SRDCFir、BST、LTFLO是參加過VOT-TIR2016的,因此今年TIR比賽新加入的算法只有6個。有點意思的是,上述4個算法在TIR2016和TIR2017的評分(EAO)不盡相同,這有多種可能的原因:(1)由於數據精度丟失或者一些因素的存在,導致不同的電腦運行相同的程序可能會給出不同的結果,但是這種變化應該是非常細微的;(2)今年的評測方法與往年有了些調整,vot-toolkit程序有了一些修改;(3)一些算法是有隨機性的,結果無法完全複製,但是好的算法在不同時刻運行的結果應該相差不大;(4)各個參賽者可能會對以往的代碼進行某些細微調整,比如調了參數、換個feature或者解決了一些程序上的bug等。

    我們拿到了今年的winner,但是並不是太值得高興的事,因爲參賽算法少,而且我們的綜合評分並沒有顯著高於SRDCFir。比賽後我改掉了代碼中的一個小小的bug,把EAO提高到了0.4018,即使如此,也沒有太大意思。

    只是我參加VOT-TIR比賽並不是瞄着第一去的,我的目的原本是跟蹤效果前三即可,然速度要做到最快。可惜今年的VOT比賽取消了往年常用的速度度量EFO,理由是官方認爲EFO受到硬件性能的影響。我使用vot-toolkit的過程中,發現EFO確實與平臺性能有關,但是EFO仍然具有借鑑意義:我在2.3GHz的筆記本上得出某個跟蹤器的EFO爲35,在一個4.2GHz的臺式機上得到對應的EFO爲50+,雖然有明顯差別,但是仍然在1倍以內。我們在提交完比賽結果的第二天就把DSLT算法寫成論文投給了PRLetter,現在已經在線出版了:Dense Structural Learning for InfraredObject Tracking at 200+ Frames Per Second. 我們在4.2GHz的win10臺式機上進行試驗,vot-toolkit給出的EFO是110,對比VOT-TIR2016的結果,我們的速度顯然已經遠遠超出大部分跟蹤算法了。然後我們在vot-tir2016所有序列上跑一遍,給出的平均跟蹤速度是215FPS(單線程,沒有omp,沒有gpu)。最近,我們對代碼進行了一些優化,EFO已經達到了160了。我們在論文中指出,DSLT平均每幀的計算量大概是DCF(使用線性核的KCF)的1.5倍,前提是二者使用相同大小的training/detection image以及相同的特徵表示。

   參賽用的DSLT算法的Matlab mex文件(Ubuntu x64 & Windows 7/10 x64)已經上傳到了我的csdn資源了:http://download.csdn.net/download/yu_xianguo/10142414。第三方依賴庫只有FFTW(一個Fortran語言寫的開源傅里葉變換庫)。代碼是工程用的,暫無開源打算。(ps:今天才發現csdn資源已經沒有0分的選項了,最少下載分是2分,其實我要這分數沒啥用,但是想下載資源的童鞋還是要搞點資源分才行。。。)


    下面介紹一下DSLT的基本原理:

    (1)結構學習建模跟蹤問題

    跟蹤算法分成generative和discriminative,2012年以後人們普遍認爲判別性方法更適合解決跟蹤問題,它把跟蹤問題建模爲前景&背景的分類問題。最開始人們將傳統的學習方法在線化,從而可以進行模型的迭代更新。這些方法一般是基於一個binary classifier,比如SVM、boosting、forest等,它們將目標看成1,將背景看成0,然後學習分類器,由此帶來一個問題——對於那些與目標有一定重疊率的樣本,不知道如何定義其標籤。爲了解決這個問題出現了MIL(多實例學習),但是解決得比較好的還是相關濾波器(CF)和結構學習方法(以Struck爲例)。CF使用連續標籤,每個樣本對應0~1之間的一個實數(一般用高斯函數生成),所以可以按照樣本與目標中心的遠近隨意分配標籤。Struck則是將樣本位置作爲樣本的標籤,這就是說我們不再需要labeling這個過程了。綜合來看,Struck與CF都解決了labelingnoise問題,但是Struck把樣本位置納入到待優化的目標函數中,相比CF,Struck的問題建模方式與跟蹤問題的本質(尋找正確的目標位置)更加契合。    

    (2)使用密集特徵地圖進行訓練和檢測

    在線跟判別學習面臨的一個主要問題是計算量受限,因此導致樣本數量少和特徵維度低,而密集特徵地圖(比如一副HOG圖像)的使用很容易使得樣本個數和特徵維度都能達到較高的水平。相關濾波器(CF)將密集特徵地圖用於跟蹤問題,取得了非常好的效果,但是人們應該意識到,常見的CF其實是非常簡單的嶺迴歸器,一個老早就有的簡單的學習算法如今能夠光彩照人,就是因爲使用了密集特徵表示。

    CF假設目標就是一個密集特徵地圖,而所有的訓練樣本都是由目標進行循環位移而得到,這就帶來了boundary effect問題:一方面循環位移產生的樣本不能代表真實的圖像信息;另一方面,循環樣本假設等同於將目標圖像的上邊緣和下邊緣連接起來,將左邊緣和右邊緣連接起來,爲了使得這些連接處過度平滑,必須要將邊緣像素0化處理,這就是爲什麼使用餘弦窗對目標圖像加權,因此目標圖像中僅僅只有中間一部分是有效的,這也是CF採集的樣本比目標本身要大一些的原因之一,而擴大目標框又導致了背景噪聲的引入,爲了防止分類器過於偏向背景,CF中padding的大小設置必須十分謹慎。CF還有搜索範圍小的問題,雖然這些問題陸陸續續得到了解決,但是新的解決方案無不犧牲了CF應有的令人羨慕的跟蹤速度。在此,我還想說說CF另一個常被忽視的缺陷,這也是(據我所知)到目前爲止未被解決的問題:CF不管是訓練還是檢測,採集樣本圖像時需要將目標至於樣本框的中心,如果目標靠近圖像的邊界,則需要對超出圖像範圍的像素進行virtual padding,一般是用圖像邊界位置的像素值來代替。Virtual padding不僅產生了更假的樣本,還將計算資源浪費在無意義的圖像位置上,甚至縮小了實際的目標搜索範圍。

    基於Structural-SVM(SSVM)的方法可以有效避免CF的諸多尷尬,但是隻有一個問題:如何保證計算效率?Struck使用LaRank來求解,我發現LaRank確實是個好東西:第一收斂速度非常快,不需要迭代很多次;第二它將一個大的SVM學習問題分解爲很多小的二次優化問題,二次優化是有解析解的,因此求解起來很方便。決定LaRank計算量的主要因素就是難樣本挖掘過程(hard-negative-mining),如同Deformable Part-based Models(DPM)裏的優化過程一樣,難樣本挖掘是要找到最難分類的那個樣本,在跟蹤問題中,這就意味着我們要將一個圖像中所有的樣本過一遍,找到每個樣本的得分,從而發現誰是那個最難分樣本。我發現在使用密集特徵表示和線性核函數的情況下,該過程等同於一次圖像濾波操作,可以藉助FFT快速求解。由此,問題就解決了大半了。

    由於ssvm的學習不像CF那樣每次更新時要求目標位於樣本框正中間,所以檢測時候用到的特徵地圖可以直接用於更新階段,而檢測過程得到的分類器響應地圖可以用於LaRank第一步的hard-negative-mining,這又幫我省了好多計算量。另外,我們對LaRank的優化過程進行細化,發現裏面很多變量的更新都可以用迭代的方式來解決,而不是每當分類器係數發生一點變化就要從頭算起。

    總而言之,我們將密集特徵表示高效率地融入到在線結構學習跟蹤框架中。

    (3)對目標樣本進行空間加權


    我們先回顧一下SIFT描述子的建立過程,如圖所示:(i)以特徵點爲中心選取一個圖像區域;(ii)計算每個像素位置的圖像梯度(幅值+方向);(iii)使用一個高斯函數對每個梯度幅值進行加權;(iv)統計各個subregin裏的梯度方向直方圖。文章Distinctive Image Features from Scale-InvariantKeypoints(IJCV04)中對高斯權值的描述是這樣的:


    簡言之,邊緣像素更易受到背景的污染,高斯加權可以減少邊緣像素的影響,降低描述子對特徵點定位精度的敏感性。

    在另外一些工作中,我也看到了對樣本進行空間加權所帶來的好處,受此啓發,我提出了一個加權核函數的概念:


    對兩個樣本向量 和 求(線性)內積,相當於是逐元素相乘然後求和。我們引入一個權值矩陣 ,將它插入到內積的公式裏去,如圖所示。可以證明當 的所有元素都非負時,K是一個有效的核函數。

    我們用一個與樣本相同大小的2D高斯函數來生成空間權重,高斯方差設置爲跟樣本的尺寸成正比,經驗來說,對於HOG特徵,這個比例係數設置在0.2~0.5之間都OK。然後把該二維權重複制擴展到D個平面,使得權值矩陣與樣本大小一致。

    很多人用SVM,一般要麼選線性核(快),要麼選高斯核(好),在跟蹤問題中我們優先使用更快的方法,但是線性核的表達能力較弱,對於非線性分佈的數據建模能力差。我們提出的加權核可以直接替換掉原來的線性核,在代碼實現上基本沒有變動,計算效率上也是跟線性核一樣快,而實驗結果表明使用加權核可以大大改善跟蹤器的魯棒性(精度沒有明顯變化)。注:魯棒性指跟蹤失敗的次數;精度指跟蹤成功時跟蹤框與groundtruth的重疊率。

    (4)特徵

    在CF(~2013年)以前,很多人覺得跟蹤問題是檢測問題的一個子問題,那時候人們喜歡把目標檢測中常用的方法往跟蹤領域搬,比如各種學習算法,各種特徵表示。CF的流行給人耳目一新,因爲這個方法並沒有先在目標檢測領域裏面火起來,CF是先在跟蹤領域大放異彩的,算是一個比較純正的跟蹤算法。但是長期以來,跟蹤算法中使用的特徵表示仍然是從檢測領域拿過來的,比如HOG,比如CNN features。最近的CFNet(End-to-end representation learning for Correlation Filter basedtracking,CVPR17)在這方面做出了突破,它使用一個端到端的訓練方法來同時學習特徵和相關濾波器(個人理解,如有錯誤,請指正)。

    DSLT要做到high FPS,我首先想到的還是傳統特徵表示,瀏覽一遍跟蹤方面的論文,發現基本上用的都是HOG和Color Names,因爲要做紅外圖像,所以Color Names就不用考慮了,剩下的HOG,那是經典的密集形狀描述子,從05年的Histograms of Oriented Gradients for Human Detection(CVPR05)開始,就在目標檢測領域一統江湖了。HOG代碼我寫過N個版本,我覺得它非常像CNN features的計算方式,比如其中計算完圖像梯度以後要做spatial pooling,通過累加的方式得到每個cell的梯度方向直方圖,再比如用block normalization來消除圖像亮度不均勻帶來的影響等。HOG特徵可以用於進行category level的檢測,說明它對各種各樣的類內變化是魯棒的。而跟蹤問題中我們需要做的是instance level的檢測,所以直接用HOG來表示目標是不夠合理的。而且紅外圖像與可見光圖像有很多不同:(i)紅外圖像中沒有陰影;(ii)噪聲水平更高;(iii)文理信息偏少;(iv)沒有銳利的邊緣。其中第(iii)和第(iv)是因爲紅外圖像主要受到物體熱輻射的影響,而物體的輻射特性以及熱量分佈一般是沿着物體表面緩慢變化的。要做好紅外跟蹤,顯然不應該毫不修改地選擇傳統的手工特徵來用。

   我設計特徵的出發點就是FHOG,這也是跟蹤算法中用的最多的特徵,最早來自於DPM(From Rigid Templates to Grammars: Object Detection with StructuredModels, Ross Brook Girshick的博士論文,2012),其中的F來自於芝加哥學的Felzensberg教授的名字的首字母,他是R.B.G.大神的博導。下面簡單介紹一下FHOG:

    在HOG的計算過程中,一個梯度幅值M和對應的梯度方向θ∈[0,360),將θ離散化成nOrients*2個值,可以得到nOrients*2個特徵平面,這些特徵叫作contrast-sensitive features;將所有的θ(θ>180)映射爲θ-180,則的θ範圍變成[0,180),再將θ離散化成nOrients個值,可以得到nOrients個特徵平面,這些特徵叫作contrast-insensitive features。HOG把sensitive與insensitive特徵合在一起,然後每個特徵用相鄰的4個block的能量(normalization factors)去歸一化,最終得到3*nOrients*4個特徵平面,當nOrients=9時,HOG有108層特徵。爲了減少計算量和增強抗干擾能力,很多應用都對HOG特徵進行PCA降維。PCA算法確實可以減少計算量,但是PCA投影過程需要一次大矩陣乘法運算,這其實也是很耗時的。在DPM中,作者對PASCAL-VOC數據集包含的各種圖像分別計算HOG-36(HOG-108中的contrast-insensitive部分),然後對所有的特徵向量進行PCA,得到的特徵向量和特徵值如Fig.2.2所示,每個36維特徵向量都重排成4*9的矩陣,使得每一行對應同一個normalization factor,每一列對應同一個orientation。注意其中前11個主方向,這些向量要麼沿着行方向保持不變,要麼沿着列方向保持不變。由此作者提出一個PCA-HOG的解析近似算法:將HOG特徵沿着各個orientation和各個normalization分別進行求和,則HOG-36就壓縮成nOrients+4=13維,類似地可以將HOG-108壓縮成3*nOrients+4=31維。

    我去年7月曾花了一些時間去測試不同的手工設計特徵在跟蹤中的表現,用的基準跟蹤算法是DCF,測試數據集是OTB50. 最後我發現:(i)RGB值和Gray值不穩定,會降低跟蹤性能,Color Names則能改善跟蹤性能;(ii)梯度特徵以及在圖像梯度上進行各種再處理、再組合得到的特徵,都能提升跟蹤器性能. 當時一時興起造了個120維的特徵表示(所有特徵的計算均用到了spatial pooling技巧),將DCF在OTB50上的評分刷到了接近SRDCF的水平,要知道DCF是不帶尺度的。

    在進行紅外特徵設計時,我有幾個思路:(i)將梯度幅值信息納入到特徵中來。短時目標跟蹤不像類別檢測問題,目標的梯度強度是不會劇烈變化的;(ii)僅僅用contrast-sensitive HOG就夠了。在跟蹤過程中,目標區域內以及背景中各個梯度的方向不會忽然從θ變成θ+π所以HOG中contrast-insensitive部分是沒有太大作用的。我通過在OTB50和TIR2016上的實驗驗證了這兩點;(iii)我在一般的圖像梯度(向右爲+x軸,向下爲+y軸)之外還計算了另一組圖像梯度(向右下角方向爲+x軸,向左下角方向爲+y軸),然後分別計算HOG,同樣地我在OTB50和TIR2016上驗證了增加的一組HOG可以提高跟蹤器性能。

    特徵是物體的穩定外觀描述。正是因爲圖像的像素值不夠穩定,所以我們把樣本變換到特徵空間,然後在特徵空間進行分類、聚類等各種操作會簡單得多。在HOG的計算中有一個truncation過程,當某個特徵量超出0.2時,就把它賦爲0.2,這麼做可以抑制特徵空間裏的噪聲。類似地,我將跟蹤算法最終用的特徵進行了一次開根號處理,這麼做雖然降低了特徵的辨識度,但是能較好地抑制噪聲。

    與檢測問題不一樣,跟蹤問題中不需要特徵具有那麼高的魯棒性,這是因爲跟蹤算法要處理的是連續圖像序列,圖像內容是連續緩慢變化的,而且檢測問題中分類器一般是不更新的,而跟蹤問題分類器需要在線調整,足夠應對目標外觀的變化。使用魯棒性更好的特徵肯定會提高跟蹤器性能,但是複雜的高維的特徵設計會造成額外的計算負擔。DSLT使用的特徵有28維,如果啓用了motion channel(由相鄰幀之間的絕對差計算而來,對靜態背景圖像非常有效),則是29維。我們從特徵設計的一開始,就是希望能找到維度低、計算簡單且跟蹤效果好的特徵表示。

    (5)實驗結果

    這是論文裏貼的圖,是vot-toolkit給出的DSLT在vot-tir2016數據集上的評測結果:


    我將DSLT與DSST裏的尺度濾波方法結合起來(Tracker稱爲DSLS,最後那個S表示Scale),將DSLT的motionchannel特徵去掉,其它28維特徵不變,然後跑了UAV123_10fps數據集(A Benchmark and Simulator for UAV Tracking,ECCV16),實驗是由tracker_benchmark_v1.1執行的,結果如下圖所示:


    DSLS在OTB2013數據集上的TRE實驗結果:


DSLS在OTB2013數據集上的SRE實驗結果:


DSLS在OTB2015(100個序列,但是仍用的是benchmark_v1.0工具包評測)上的OPE實驗結果:


注:

VOT-TIR2016實驗結果:https://share.weiyun.com/5qwtUEv

在UAV123數據集上的對比算法實驗結果由ECCV論文作者主頁下載;在OTB數據集上的對比實驗結果是從github上下載的。本文的所有OTB實驗結果(均是基於benchmark_v1.0,即CVPR13版benchmark評測的):https://share.weiyun.com/5wo90IB

因爲UAV123數據集需要翻牆才能下載,爲了方便大家使用該數據集,我把@10fps子數據集上傳至雲盤了,並分享給大家下載,如有問題請留言諮詢。下載鏈接: https://share.weiyun.com/5LakVzB
我還把UAV123數據集的評估工具也上傳至了雲盤。我把我們的DSLS算法的跟蹤器和對應的結果也放在了裏面。benchmark_toolkit下載鏈接: https://share.weiyun.com/5dyFSAp
---------

VIVID數據集: https://share.weiyun.com/5uwnUmG

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