最近需要學習計算機視覺中的目標跟蹤方面的內容,在學習前做了個調研,對該領域的主要發展做下總結。注意,這篇文章沒有牽扯到具體算法的用法,只是對整體的一個概括。
介紹
目標跟蹤是計算機視覺領域的一個重要分支,是模式識別,圖像處理,計算機視覺,機器學習等學科的交叉研究,有著廣泛的應用,如視頻監控,虛擬現實,人機交互,圖像理解,無人駕駛等。
目前的目標跟蹤的通常任務是,在視頻的第一幀給定一個目標的矩形框,然后后續這個矩形框緊跟著要跟蹤的物體。不過,目標跟蹤與計算機視覺中的圖像識別,分割,檢測是分不開的,通常跟蹤是這些分割檢測的最后一步。
研究
目標跟蹤方向的論文可以關注計算機視覺的三大頂會 CVPR (Computer Vision and Pattern Recognition)、ICCV (International Conference on Computer Vision) 、ECCV (European Conference on Computer Vision),另外網站 arXiv 也值得關注。
VOT Challenge是目標跟蹤領域的賽事,類似于圖形識別領域中的ImageNet挑戰賽。這些賽事通常都是標準數據集的來源,所以VOT數據集是一個常用的目標跟蹤數據集。此外,還有吳毅老師的論文出現的OTB數據集,包括OTB50 (指2013年的數據集,50個視頻序列)和 OTB100(指2015年的數據集,100個視頻序列),也是目標跟蹤重要的數據集。
通常目標跟蹤面臨幾大難點:物體變形,亮度變化,快速移動,背景干擾覆蓋等,通常不規則的變化都是目標跟蹤的難點,這也是在工業上未得到使用而需要解決的問題。其中最主要的三個難題分別是目標背景的變化、物體本身的變化、光照強度變化。
算法
目前公認的跟蹤算法按照是否需要檢測過程的參與,可以將其分為兩類,一類是生成式,另一類是判別式,這和機器學習算法的分類有相似之處。
生成式算法通過描述目標的表觀特征,處理當前幀與下一幀的關系。主要包括稀疏編碼(sparse coding)、在線密度估計(online density estimation)等。它的缺點是過于關注目標本身,忽略背景信息,容易產生漂移現象。
判別式算法區分目標和背景,表現比生成式算法更為魯棒,目前也是更為流行的研究方向。它包括目標的檢測和跟蹤,常被稱為tracking by detection,目標檢測指對于圖像而言找出目標物體的位置,而目標跟蹤對于視頻而言在每時每刻都能夠找出物體的位置,檢測是跟蹤的基礎,目標檢測是初始化目標,目標跟蹤是連續估計目標狀態。常見的算法包括多示例學習方法(multiple instance learning)、結構SVM(structured SVM)等。此外,大多數深度學習的算法也屬于判別式方法。
目標跟蹤算法也從傳統的自行設計特征和分類器,向著現在的基于深度學習的端到端(end to end)算法發展。對于一個完整的目標跟蹤流程來說,算法框架通常由檢測窗口的選擇,分類器的設計,特征的設計這三個來逐步進化的。
對于檢測窗口來說,一開始采用的是滑動窗口(即窮舉法),把一張圖片所有的位置都用候選框從上到下,從左到右遍歷,同時還要改變圖片的大小來檢測不同大小的物體。這種暴力方法效果不是很好,于是衍生出了 Selective Search 和 Region Proposal Network(RPN,區域候選網絡),這些方法首先去除不是目標物體的區域,減少了搜索范圍,同時減少了計算的時間消耗,并且精度更高。
而對于特征設計和分類器的設計來說,傳統算法使用的特征是工作人員自己設計特征提取方法。通常選用的特征提取算法包括Harris,Haar,SIFT,HOG,有時還需要組合使用。分類器則選用的是 SVM,Adaboost,決策樹等算法,選用分類器的原因是把目標跟蹤問題當作一個分類問題來看待的,把待檢測區域分為目標或者非目標。
深度學習不需要自己設計特征,它可以自己在數據中學習到目標的特征,同時也有自己的分類器,也就是說將尋找特征和分類結合在一起。深度學習的效果也是非常的好,在最近的圖像比賽中,冠軍都是使用深度學習來實現的。目前的深度學習算法包括R-CNN,Fast R-CNN,Faster R-CNN等深度分類方法,也包括 YOLO(you only look once) 和 SSD(single shot multibox) 等深度回歸方法。
除了通用的跟蹤算法外,還有對于特定物體的跟蹤,例如人臉檢測,行人檢測等。除了單目標跟蹤外,還有多目標跟蹤,對多個目標持續的進行跟蹤,目前也已經有針對多目標跟蹤的賽事MOT,這也使得跟蹤算法正在快速發展。
歡迎大家關注公眾號“計算機視覺與機器學習”