Real-Time Compressive Tracking,實時壓縮感知跟蹤算法解讀


這是Kaihua Zhang發表在ECCV2012的paper,文中提出了一種基於壓縮感知(compressive sensing)的單目標跟蹤算法,該算法利用滿足壓縮感知(compressive sensing)的RIP(restricted isometry property)條件的隨機測量矩陣(random measurement matrix)對多尺度(multiple scale)的圖像特征(features)進行降維,然后通過朴素貝葉斯分類器(naive Bayes classifier)對特征進行分類從而預測目標位置。

首先介紹下paper涉及的知識點:

1、隨機投影(Random Projection)

通過矩陣R(m*n維)將高維圖像空間的x(m維)投影到低維空間v(n維)表示為:

v=Rx (n<<m)

這就是我們常說的降維,但是降維不能只是降低維度,還要盡最大可能的保留高維度的信息,如何做呢?Johnso-Lindenstrauss指出如果將向量空間中兩個點能夠投影到一個隨機選取的合適的高維度的子空間中,則能夠以高概率保留兩點之間的距離關系,上一句中的“合適的高緯度”要比原先的維度要小,而且Baraniuk在論文中證明了滿足Johnso-Lindenstrauss推論的隨機矩陣同時滿足compressive sensing的restricted isometry property(RIP)條件,所以如果隨機矩陣R滿足Johnso-Lindenstrauss推論,並且x是諸如語音或者圖像這種可壓縮的信號的話,我們就能以最小誤差從低維的v中高概率的重構出高維的x。

2隨機測量矩陣(random measurement matrix)

一個典型的滿足RIP條件的隨機測量矩陣是隨機高斯矩陣(random Gaussian matrix)R,(R中的每個值rij服從N(0,1)),但是該矩陣有個缺點即一般是稠密的(dense),這樣會導致在存取和計算時開銷太大而難以忍受。

paper的亮點在於找到一個非常稀疏的隨機測量矩陣

Achlioptas證明當s=2 or3時該矩陣滿足Johnso-Lindenstrauss推論,而s=3時矩陣是非常稀疏的,因為矩陣中1-1/3=2/3的概率都是0,故減少了2/3的計算開銷, paper中設定s=m%4,m為為壓縮信號x的維度,這樣對於R中的每一行只需要計算c=s(c小於等於4)個元素,所以矩陣的計算復雜度變為O(cn)。同時保存矩陣時只需要考慮非零元素,故空間復雜度也減少很多。

3尺度不變性(scale invariant)

為了處理跟蹤中的尺度問題,對於每一個樣本,paper中采用一組多尺度矩陣濾波器對樣本進行卷積,濾波器表示如下:

其中i,j分別表示矩形濾波器的寬和高,卷積后一個圖像特征的維度為w*h,一共有w*h個濾波器,所以將所有的圖像特征 reshape,得到維度為(w*h)2的列向量,然后將這些列向量連接成一個高維的多尺度的圖像特征向量,維度為m= (wh)2,m的大小一般在106-1010,直接計算是難以忍受的,然后采用我們之前介紹的隨機測量矩陣R將x投影到v上實現降維,說白了就是減少計算量在實際計算時,隨機測量矩陣只需要在程序初始化時計算一次,然后矩陣相乘時只考慮非零的乘加,由於每行的非零數小於等於4,所以可以有效的計算矩陣乘法。

4.構建和更新分類器

假設v是獨立分布的,通過朴素貝葉斯分類器naive Bayes classifier建模。

 首先假設先驗概率,Diaconisand Freedman[3]指出高維隨機變量的隨機投影幾乎滿足高斯分布,所以分類器H(v)中的條件分布假設滿足

 我們接下來需要做的就是對這四個參數進行建模,每一幀更新分類器即更新上面四個參數

其中lamda>0表示學習速率。均值和方差初始化如下:

tracking的流程圖如下所示:

tracking algorithm如下:

1.     在第t幀時,以t-1幀的目標的位置為中心,r為半徑,采樣得到低緯度的特征。

2.     使用貝葉斯分類器H對采樣特征進行分類,響應值最高的為第t幀的目標位置。

3.     確定第t幀的目標位置后在其附近搜集正樣本,遠離目標位置搜集負樣本,更新分類器H用於下一幀目標位置的預測。

我驗證了compressive tracking后發現在實際測試時該算法經常出現跟丟或者偏移的情況,在之后發表的跟蹤文章的對比結果中也有相似結論,我分析了有以下幾點原因:

首先文章采用的類haar特征,總所周知,haar特征比較簡單,而且最為廣泛的應用是在人臉檢測,但是在跟蹤諸如行人或者手等變化豐富的物體時該特征表現不盡如人意,所以可以換一些表達更為豐富的特征來提高算法的性能。

其次作者在更新分類器時選取特征時是隨機在目標周圍的一個小圓中選取正樣本,一個圓環中選取負樣本,在選擇樣本時沒有考慮樣本之間的重要程度,譬如算法中離目標中心近的樣本和稍微遠一些的樣本在分類時的重要性是一樣的,這樣會導致分類不准確,在預測目標位置是隨機在目標周圍的一個小圓選取,這樣我感覺有可能選擇不到正確的位置。

總而言之壓縮感知跟蹤算法的優點在於快,這是文章的賣點,為了快作者選取了貝葉斯分類器,兩個概率直接一除一加得結果,但是隨着物體發生遮擋或者外觀發生變化時分類器無法及時更新,導致分類的效果下降。

作者的文章作為入門來說是極好不過的,認真閱讀之后容易理解,而且還有code直接上手實踐,再次感覺作者的工作讓我們覺得算法不是如此的高深莫測。

最后說說我的感想吧,目標跟蹤作為計算機視覺研究領域的一個重要的研究方向,在最近幾年可謂八仙過海,各顯神通,各種算法諸如多示例學習的、時空上下文的、卷積神經網絡的、結構化SVM的,FFT加速的、線性回歸的等等都展示了強大的實力,性能也是一直在飆升,剛看完這篇又出來一篇,感覺應接不暇,腦子要爆炸的趕腳,但是讓我有更大的興趣去學習,之后我會把最近讀的一些論文理解放上來和大家分享,如果有什么考慮不周之處還希望大家幫我指出。

大家如果有什么問題歡迎留言一起討論,我把自己寫的ct tracker的c++ code放到了我的github上,大家有興趣的可以下載來看看。

我的新浪微博:http://weibo.com/1270453892/profile?topnav=1&wvr=6

我的github:https://github.com/pbypby


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM