目標跟蹤系列一:壓縮跟蹤(compressive tracking)
入坑滿兩年,決定開始寫關於目標跟蹤的部落格了,歡迎批評指正。
主要關注的是single-object, short-term, model-free visual tracking problem. 即單目標,短時,無模型目標跟蹤問題。
一開始是因為要做本科畢設,那時候毫無頭緒,也不知道該用什麼方法,對這個領域一無所知。就在網上隨便看,看到了當時很有名的一篇文章,叫壓縮跟蹤(CT):
Zhang K, Zhang L, Yang M H. Real-time compressive tracking[C]//European Conference on Computer Vision. Springer Berlin Heidelberg, 2012: 864-877.
這篇文章發表在2012年的ECCV,然後後來升級版又發到2014年PAMI,簡稱FCT,
Zhang K, Zhang L, Yang M H. Fast compressive
tracking[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(10): 2002-2015.
選擇這個方法,是因為他的速度很快,當時需要做的是要找到一種快速(實時),魯棒且簡單的跟蹤方法, 就用這種了。
就從這兩篇文章開始,開啟我的研究之路。方便起見,這裡直接就講FCT了。
一、基於壓縮感知(CS)的特徵表示
其實在這篇文章裡並沒有用到多少壓縮感知的東西,作者在文章中雖然介紹了一些,但是實際上只是在對特徵進行降維的時候用到了一個稀疏矩陣。
用一個隨機感知矩陣R去降維一個高維訊號X,得到的低維訊號V可以保持高維訊號的特性,V=RX。這個隨機感知矩陣要滿足RIP條件就可以從低維訊號重建高維訊號。
在文中,作者利用一個非常稀疏的measurement matrix R,其中每個元素是這樣的:
這個矩陣是漸進滿足JL lemma。
圖一 對特徵進行壓縮的直觀理解
這幅圖其實畫的很清楚。作者在程式中是讓R的每一行最多有四個元素不為0,像圖一中所畫的,每一行有四個元素的顏色非白色。然後這一行跟X相乘過後,相當於是有小於等於四個的小區域被加權相加了,程式中先計算了整個區域的積分圖,然後圖一中右邊這個人臉上的每個小方塊內的灰度值的和就代表了這個區域的特徵。有了積分圖後,算這個特徵就非常快了,具體的可以去看積分圖的概念,就會知道這樣的話就不用一個一個畫素點的去加了。那麼R有多少行,對應降維後的V
二、演算法流程
圖二 FCT主要流程圖
這幅圖是整個演算法的流程圖介紹,在兩個版本的文章裡都有。1. 模板更新
在確定了第t幀的目標位置後, 在目標周圍採正樣本和負樣本,正樣本是離目標很近的,負樣本是相對遠一些的。然後對這些正負樣本提取各自的特徵,再對分類器進行更新。
分類器用的是樸素貝葉斯分類,是一種弱分類器,對V的每個維度都進行分類,最後把所有的分類分數加起來,得到最終的分類分數。
分類器的更新採用增量更新策略,這是大家都會採用的一種這種方式,能夠使得跟蹤模型實時適應每一幀目標的變化,比如人體會有很多肢體的變化,同時能夠保留歷史的資訊,防止目標被遮擋時模型被破壞的太快。
2. 目標跟蹤
新來一幀t+1圖片,首先在上一幀目標的位置的基礎上,以某一半徑進行取樣,然後提取這些樣本各自的壓縮特徵,用訓練好的分類器對每個樣本進行分類,得到各自的分類分數,取分數最高的一個,認為是這一幀中的目標。
這裡作者提出了一種從粗糙到細緻的取樣方式,就是先設定一個比較大采樣半徑,比如25個畫素,搜尋的步長是4,就是每隔4個畫素採一個樣本,得到粗糙樣本後,找到一個最匹配的樣本,再進行細緻取樣,比如說這時候以10畫素為搜尋半徑,2個畫素為步長,再進一步找到一個更匹配的樣本,作為目標。這樣一來,首先使得采樣的效率變高,速度提升,其次使得目標的搜尋更細緻。
圖三 從粗糙到細緻的搜尋策略
作者還提出了一種多尺度表示,是通過將圖片與多個尺度的濾波器進行卷積得到不同尺度的目標的表示,將不同尺度的特徵都合在一起,拉成一個高維的特徵,然後再用一中提出的壓縮方法進行特徵降維表示。
三、總結
沒有進行特別詳細的介紹,只是做個簡單的介紹,如果想更深入的瞭解還是建議去看論文原文。總結一下,思路很巧妙,利用了壓縮感知的理論,前向的將特徵進行降維,但並沒有用到訊號重構的東西,給人的感覺就是給特徵降維。速度確實挺快的,畢竟降維後特徵簡單,積分圖的計算也方便,文中說的速度是有149幀每秒,每個人的裝置不一樣,速度可能也不一樣,這沒什麼好糾結的。
跟蹤的效果不是很魯棒,在OTB的各項指標OPE,TRE,SRE都很難排進前十,OTB是指視覺跟蹤這塊的一個包含100個視訊的公開資料集,他們排名了2012年及以前的很多tracking方法,參考文章[1]。但是整個方法簡單,速度快,這也是我一開始接觸這個領域會選擇CT的原因。
現在跟蹤這個領域發展迅速,每年都會有很好的新方法出現,CVPR,ECCV,ICCV每年都會有很多這方面的文章,我會慢慢更新下去。如果有新人要入這個領域,CT這個方法推薦去看,但是不推薦用,新的很多方法都可以又快又好,比如KCF,可以再聊。
微信公眾號code無涯同步更新,歡迎關注。
[1] Wu Y, Lim J, Yang M H. Object tracking benchmark[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9):
1834-1848.