From: 目標跟蹤方法的發展概述算法
From: 目標跟蹤領域進展報告網絡
經典目標跟蹤方法框架
2010 年之前,目標跟蹤領域大部分採用一些經典的跟蹤方法,好比 Meanshift、Particle Filter 和 Kalman Filter,以及基於特徵點的光流算法等。性能
Meanshift 方法是一種基於機率密度分佈的跟蹤方法,使目標的搜索一直沿着機率梯度上升的方向,迭代收斂到機率密度分佈的局部峯值上。首先 Meanshift 會對目標進行建模,好比利用目標的顏色分佈來描述目標,而後計算目標在下一幀圖像上的機率分佈,從而迭代獲得局部最密集的區域。Meanshift 適用於目標的色彩模型和背景差別比較大的情形,早期也用於人臉跟蹤。因爲 Meanshift 方法的快速計算,它的不少改進方法也一直適用至今。學習
粒子濾波(Particle Filter)方法是一種基於粒子分佈統計的方法。以跟蹤爲例,首先對跟蹤目標進行建模,並定義一種類似度度量肯定粒子與目標的匹配程度。在目標搜索的過程當中,它會按照必定的分佈(好比均勻分佈或高斯分佈)撒一些粒子,統計這些粒子的類似度,肯定目標可能的位置。在這些位置上,下一幀加入更多新的粒子,確保在更大機率上跟蹤上目標。測試
Kalman Filter 常被用於描述目標的運動模型,它不對目標的特徵建模,而是對目標的運動模型進行了建模,經常使用於估計目標在下一幀的位置。大數據
另外,經典的跟蹤方法還有基於特徵點的光流跟蹤,在目標上提取一些特徵點,而後在下一幀計算這些特徵點的光流匹配點,統計獲得目標的位置。在跟蹤的過程當中,須要不斷補充新的特徵點,刪除置信度不佳的特徵點,以此來適應目標在運動中的形狀變化。本質上能夠認爲光流跟蹤屬於用特徵點的集合來表徵目標模型的方法。編碼
在深度學習和相關濾波的跟蹤方法出現後,經典的跟蹤方法都被捨棄,這主要是由於這些經典方法沒法處理和適應複雜的跟蹤變化,它們的魯棒性和準確度都被前沿的算法所超越,spa
可是,瞭解它們對理解跟蹤過程是有必要的,有些方法在工程上仍然有十分重要的應用,經常被看成一種重要的輔助手段。(新的舊的都要學,deep vision的坑 太深太深)設計
檢測與跟蹤相結合的方法
在 2010 年左右,目標跟蹤的方法一般分紅基於產生式模型的方法和基於鑑別式模型的方法。
人們開始採用一種在線學習的方法來訓練跟蹤的檢測器,好比,在第一幀目標出現的位置創建初始的檢測模型,並在後續幀更新模型以適應目標的變化,這裏介紹當時 Surrey 大學博士生 Z.Kalal 提出的一種長效跟蹤的 TLD(Tracking-Learning-Detection)方法。
TLD 方法的整個框架有三個模塊,其中
跟蹤器(Tracking)負責用經典的方法跟蹤目標,論文中採用基於光流的特徵點統計方法肯定目標在下一幀的跟蹤位置,
檢測器(Detection)負責在必定的範圍內檢測目標,而且與跟蹤結果綜合獲得最終的輸出結果。在肯定目標的最佳位置以後,
學習模塊(Learning)負責對跟蹤結果和檢測器進行修正,在目標的周圍選取更多的正負樣本在線更新檢測器的模型。
做者利用了多級分類器的方式來提升檢測器的檢測能力,下降誤檢,級聯了一個在線學習的隨機森林分類器和最近鄰的分類器。
爲了平衡整個檢測器的穩定性和學習能力,做者提出了一種半監督的學習方法,利用 P-N 限制條件更新模型,使檢測器可以收斂到一個穩定的狀態。
從整個框架的設計上看,TLD 的工程意義要大於算法自己,做者對每一個模塊都作了不少細節上的調整,好比利用 Backward-Forward 來過濾不可靠的光流特徵點,對物體的變化作了尺度上的估計,利用 P-N 樣本集更新隨機森林分類器等。
TLD 的代碼也公開了,人們能夠很容易重現論文的結果。這種跟蹤和檢測相結合的框架和思想,極大地推進了跟蹤算法的發展。那時對於跟蹤算法的評測尚未公認的數據集和評測標準,很難對不一樣跟蹤方法的進行比較。
因此,在 2013 年左右,人們開始創建公共的測試視頻集,定義了跟蹤的初始條件和評價指標,好比 OTB 數據集(Object Tracking Benchmark)和 VOT 競賽(Visual Object Tracking),其中 OTB 數據集至今已經有 100 多段視頻,以短時跟蹤爲主,裏面包含了各類複雜的變化場景,VOT 競賽每一年舉辦一次,迄今已經舉辦了 4 年,自此跟蹤的模型和算法突飛猛進,好比 2013 年的冠軍 Struck,利用結構化 SVM 方法在線學習的一個分類器,2014 年的冠軍 DSST,一種改進的基於相關濾波的多尺度跟蹤方法,以後陸續又出現了不少基於深度學習的方法。
基於相關濾波的跟蹤算法
相關濾波的跟蹤算法始於 2012 年 P.Martins 提出的 CSK 方法,做者提出了一種基於循環矩陣的核跟蹤方法,而且從數學上完美解決了密集採樣(Dense Sampling)的問題,利用傅立葉變換快速實現了檢測的過程。
在訓練分類器時,通常認爲離目標位置較近的是正樣本,而離目標較遠的認爲是負樣本。
回顧前面提到的 TLD 或 Struck,他們都會在每一幀中隨機地挑選一些塊進行訓練,學習到的特徵是這些隨機子窗口的特徵,而 CSK 做者設計了一個密集採樣的框架,可以學習到一個區域內全部圖像塊的特徵。
密集採樣的過程能夠經過做者提出的循環矩陣來實現,而且整個分類器的學習過程能夠用快速傅立葉變換轉化成頻域內的計算,不受 SVM 或 Boost 等學習方法的限制。
不管是用線性分類仍是核分類,整個學習過程十分高效,證實過程完備,易於理解。在論文中做者給出的算法實現只須要十幾行代碼。利用快速傅立葉變換,CSK 方法的跟蹤幀率能達到 100~400fps,奠基了相關濾波系列方法在實時性應用中的基石。
相關濾波系列的方法發展很快,好比 CSK 做者引用的 MOSSE 方法,後續他又提出了基於 HOG 特徵的 KCF 方法。後續還有考慮多尺度或顏色特徵(Color Name 表)的方法以及用深度學習提取的特徵結合 KCF 的方法(好比 DeepSRDCF 方法)等。
從它的發展過程來看,考慮的尺度愈來愈多,特徵信息也更加豐富,固然計算時間也會相應增長,但整體上說,相關濾波系列的跟蹤方法在實時性上優點明顯,採用哪一種改進版本的方法視具體的應用而定。
相關濾波的方法也有一些缺陷,好比目標的快速移動,形狀變化大致使更多背景被學習進來等都會對 CF 系列方法形成影響。雖而後續的研究也有一些針對性的改進,好比改進邊界效應,改善背景更新策略或提升峯值響應圖的置信度等,但普適性還須要進一步研究,特別是對不一樣的應用針對性地調整。
基於深度學習的跟蹤方法 (以後有進一步瞭解)
最近三年是深度學習技術的高速發展期,深度學習技術也被成功應用在計算機視覺的各個應用領域,跟蹤也不例外。在大數據背景下,利用深度學習訓練網絡模型,獲得的卷積特徵輸出表達能力更強。
在目標跟蹤上,初期的應用方式是把網絡學習到的特徵,直接應用到相關濾波或 Struck 的跟蹤框架裏面,從而獲得更好的跟蹤結果,好比前面提到的 DeepSRDCF 方法。
本質上卷積輸出獲得的特徵表達,更優於 HOG 或 CN 特徵,這也是深度學習的優點之一,但同時也帶來了計算量的增長。
目前不少研究跟蹤的框架和方法每每會同時比較兩種特徵,從而驗證跟蹤方法或框架的改進提升,
網絡不一樣層的卷積輸出均可以做爲跟蹤的特徵,對於如何有效地利用深度學習的特徵,Martin.D 也作了大量的工做,提出了一系列相關的方法,好比 C-COT 和 ECO 等。
深度學習的另外一大優點是端到端的輸出,咱們認爲這爲跟蹤開闢了一片光明的前景,這裏以 GOTURN 方法爲例,介紹來自斯坦福大學的 D.Held 發表 ECCV2016 上的文章,目前 GOTURN 方法已經 集成在 OpenCV 3.2.0 的開發版本中。
GOTURN 方法利用 ALOV300+視頻序列集和 ImageNet 檢測數據集訓練了一個基於圖像對輸入的卷積網絡,輸出在搜索區域內相對於上一幀位置的變化,從而獲得目標在當前幀上的位置。
爲了獲得網絡訓練所需的大數據集,做者不只利用了視頻序列集中的隨機連續幀對圖,並且利用了更多的單張圖片集進行數據加強。對於數據的擾動分佈,做者也作了大量的實驗,使得跟蹤的位置變化更加平滑。
從網絡結構中能夠看出,GOTURN 先從輸入的圖像對中分別提取前一幀和當前幀的卷積特徵,再送入三個全鏈接層,最後獲得預測的位置變化。其中卷積層是經過 ImageNet 預訓練獲得,而且在跟蹤網絡訓練中固定這部分參數(防止過擬合),學習全鏈接層的參數。本質上說,GOTURN 也利用了深度學習強大的特徵表達能力,可是,它創建了第一個基於深度學習的端到端輸出的跟蹤框架,並且在 GPU GTX680 上跟蹤速度在能達到 100fps。
基於深度學習的跟蹤框架目前還在不斷髮展中,好比牛津大學的 Luca Bertinetto 提出的端到端的跟蹤框架(另外一個框架),從 SiameseFC 到今年的 CFNet。雖然相比於相關濾波等傳統方法,在性能上還很是慢,可是這種端到端輸出能夠與其餘的任務一塊兒訓練,特別是和檢測分類網絡相結合,在實際應用中有着十分普遍的前景。
前面介紹的跟蹤方法都是對通用目標的跟蹤,沒有目標的類別先驗。在實際應用中,還有一個重要的跟蹤是特定物體的跟蹤,好比人臉跟蹤、手勢跟蹤和人體跟蹤等。特定物體的跟蹤與前面介紹的方法不一樣,它更多地依賴對物體訓練特定的檢測器。
人臉跟蹤因爲它的明顯特徵,它的跟蹤就主要由檢測來實現,好比早期的 Viola-Jones 檢測框架和當前利用深度學習的人臉檢測或人臉特徵點檢測模型。
手勢跟蹤在應用主要集中在跟蹤特定的手型,好比跟蹤手掌或者拳頭。設定特定的手型能夠方便地訓練手掌或拳頭的檢測器。
實際上,跟蹤和檢測是分不開的,好比傳統 TLD 框架使用的在線學習檢測器,或 KCF 密集採樣訓練的檢測器,以及當前基於深度學習的卷積特徵跟蹤框架。
一方面,跟蹤可以保證速度上的須要,而檢測可以有效地修正跟蹤的累計偏差。不一樣的應用場合對跟蹤的要求也不同,好比特定目標跟蹤中的人臉跟蹤,在跟蹤成功率、準確度和魯棒性方面都有具體的要求。
另外,跟蹤的另外一個分支是多目標跟蹤(Multiple Object Tracking)。多目標跟蹤並非簡單的多個單目標跟蹤,由於它不只涉及到各個目標的持續跟蹤,還涉及到不一樣目標之間的身份識別、自遮擋和互遮擋的處理,以及跟蹤和檢測結果的數據關聯等。
從 2015 年開始,MOT 競賽每一年會舉辦一次,在基於深度學習的目標檢測成功率大幅提升的背景下,MOT 的成功率也處於快速發展的通道中。
目標跟蹤領域進展報告,重點關注:基於深度學習的目標跟蹤
較早運用深度學習方法進行目標跟蹤的是王乃巖在NIPS2013的工做。
當時卷積神經網絡在計算機視覺領域尚未徹底開展起來,當時他們使用一種自動編碼器,在100萬張的32*32的圖像上離線訓練目標的表示,而後運用到目標跟蹤任務上。
在2015年,王乃巖繼續將卷積神經網絡運用到目標跟蹤任務中,採用卷積神經網絡輸出50*50的heatmap來表示每一個像素是否處於目標以內的機率。
卷積神經網絡模型運用的是ImageNet數據集預訓練的模型,而後在線進行更新,跟蹤時運用兩個卷積神經網絡,採用不一樣的更新策略。
在OTB50數據集上,與傳統採用手工設計的方法相比較,該方法性能有了極大的提高。
隨着深度學習的火熱,從2015年開始,利用深度學習進行目標跟蹤的研究工做愈來愈多。
馬超在ICCV2015的工做是將卷積神經網絡中不一樣層的特徵圖結合起來,在相關濾波框架下進行跟蹤。
在淺層的網絡中,空間的分辨率較高,可是特徵的語義信息比較少;
隨着卷積神經網絡層數的增長,從深層網絡提取的特徵語義信息愈來愈豐富,可是空間的分辨率就會越低,不利於對目標的定位。
因此融合不一樣層的特徵,有利於提升目標跟蹤的精度。
這是大連理工大學盧湖川老師在ICCV2015的工做,將全卷積網絡用在目標跟蹤上,運用卷積神經網絡不一樣層之間的特性,對網絡中不一樣層的特徵進行融合,提升了目標跟蹤的性能,該網絡在OTB50上取得了不錯的結果。
CVPR2016上提出的MDNet方法在多個數據集上都取得了很是好的結果,該網絡具有以下特色:
MDNet經過卷積神經網絡學習性能很強的分類器,將目標和背景分開。
其網絡結構輸出K個全鏈接層,對應K個用來訓練的序列。
訓練的時候每次選出一個序列,更新對應的分支全鏈接層和內部共享的隱含層。
爲了提升分類性能,該模型挖掘有難度的負樣原本構造訓練的minibatch。
在跟蹤時,採用邊框迴歸來提升網絡的精度,定位時經過在上一幀採樣N個候選,而後將分類結果最好的一個候選做爲目標位置。
該網絡的缺點是速度慢,在NVIDIA Tesla K20 GPU上速度是1幀/秒。
雖然運行時間慢,可是該網絡的精度很是高,在OTB50和OTB100上都取得了很是好的結果。
近期美國天普大學凌海濱老師對MDNet模型進行了改進,在網絡中採用循環神經網絡對目標自身結構進行建模。
該網絡在OTB100上取得了不錯的跟蹤結果。
孿生網絡
CVPR2016上提出了一種經過類似性學習的方式進行目標跟蹤的孿生網絡。
其最大的特色是,該方式訓練好的網絡直接在跟蹤上使用,不須要更新。網絡一樣採用了不一樣層的特徵融合和邊框迴歸來提高目標跟蹤的性能。
該網絡也是取得了不錯的結果。
在ECCV2016上也有一篇採用孿生網絡的工做,與上一篇不一樣之處在於,這篇採用全卷積網絡。
其優點在於:只須要一次前向操做,經過cross-correlation layer就能夠獲得全部卷積區域的得分;對於搜索圖像也不要求必須和目標的圖像大小一致。
該網絡在VOT2015數據集上取得了不錯的結果,因爲採用了全卷積網絡的結構,和其餘基於深度學習的方法相比,速度具備很大的優點。
在ECCV2016上還有一個採用深度迴歸網絡進行目標跟蹤的工做,與目標檢測中基於迴歸方法的卷積網絡有些相似,這個方法直接對目標位置進行迴歸。
與其餘基於深度學習方法的目標跟蹤相比,該方法具備以下特色:
因爲直接對目標位置進行迴歸,其速度上會有更大的優點。
改變了其餘方法提取第一幀的做爲參考模型方式,而在前一幀的目標位置提取參考模型,提取的目標patch裏還含有必定的背景context信息
在線跟蹤的時候網絡模型不用進行更新
在訓練的時候不只採用了視頻輸入,同時還採用了靜態圖像輸入,圖像採用的是ImageNet檢測挑戰的數據集來進行訓練,所以特徵提取更加細膩。
與其餘基於深度學習的方法相比,該模型主要的優點是速度快,在GTX Titan X GPU上運行超過100幀/秒。
最近發表的另一些基於深度學習的目標跟蹤工做,例如:採用CNN和LSTM進行結合的方式。