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)對特徵進行分類從而預測目標位置。c++

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

一、隨機投影(Random Projection)github

經過矩陣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。dom

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)。同時保存矩陣時只須要考慮非零元素,故空間複雜度也減小不少。3d

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

相關文章
相關標籤/搜索