目標跟蹤是計算機視覺領域中研究的熱點之一,分為單目標跟蹤與多目標跟蹤。前者跟蹤視頻畫面中的單個目標,后者則同時跟蹤視頻畫面中的多個目標,得到這些目標的運動軌跡。
基于視覺的多目標跟蹤在近年來越來越多地成為計算機視覺領域的研究重點,主要是因為其在智能監(jiān)控、動作與行為分析、自動駕駛、虛擬現(xiàn)實和娛樂互動等領域都有重要的應用。例如,在自動駕駛系統(tǒng)中,目標跟蹤算法要對運動的車、行人、其他動物的運動進行跟蹤,對它們在未來的位置、速度等信息作出預判;在虛擬現(xiàn)實領域里,需要根據(jù)攝像頭捕捉到的人物動作和軌跡,實現(xiàn)人機交互的目的。
那么,跟蹤算法有哪些主要分支?不同的跟蹤算法是如何實現(xiàn)的呢?讓我們帶著這些問題開始多目標跟蹤領域的奇幻之旅吧!
|| 須知
多目標跟蹤算法按照軌跡生成的順序可以分為離線的多目標跟蹤和在線的多目標跟蹤算法。
離線方式的多目標跟蹤算法通常構造為圖模型。其中,設計和計算檢測之間的相似度或者距離度量是決定圖模型構造正確性的關鍵。在線方式的多目標跟蹤算法根據(jù)當前檢測觀測,計算與已有軌跡的匹配關系。
綜上,計算合適的匹配度量決定了匹配的正確性。因此,無論是離線方式的多目標跟蹤還是在線方式的多目標跟蹤算法,學習檢測結果的特征并計算匹配相似度或者距離度量都是多目標跟蹤算法的關鍵步驟。
基于深度學習的多目標跟蹤算法的主要任務是優(yōu)化檢測之間相似性或距離度量的設計。根據(jù)學習特征的不同,基于深度學習的多目標跟蹤可以分為基于深度表觀特征學習的多目標跟蹤,基于深度相似性度量學習的多目標跟蹤,以及基于深度高階特征匹配的多目標跟蹤,如圖1所示。
深度表觀特征:利用圖像識別任務中學習到的深度特征直接替換現(xiàn)有多目標跟蹤算法框架中的表觀特征,或者采用深度神經(jīng)網(wǎng)絡學習光流運動特征,計算運動相關性。
深度相似性度量:學習檢測之間的特征相似性,比如設計深度網(wǎng)絡計算不同檢測的距離函數(shù),相同目標的檢測距離小,不同目標的檢測距離大,從而構造關于檢測距離的代價函數(shù)。也可以設計二類分類代價,使相同目標的檢測特征匹配類型為1,而不同目標的檢測特征匹配類型為0,從而學習并輸出(0,1)之間的檢測匹配度。
深度高階特征匹配:如果考慮已有軌跡與檢測之間的匹配或者軌跡之間的匹配,采用深度學習方法可以用于設計并計算軌跡之間的匹配相似度,這種方法可以認為是基于深度學習的高階特征匹配方法。采用深度學習計算高階特征匹配可以學習多幀表觀特征的高階匹配相似性,也可以學習運動特征的匹配相關度。
下面我將對一些比較重要的基于深度學習的多目標跟蹤算法進行概述,想要詳細了解的小伙伴還是要多讀源碼、多看論文,細細體會這些算法背后的深刻含義了,文章的最后我會給出我看過的一些關鍵性的論文與源碼傳送門,莫慌!
|| 算法
基于Siamese對稱網(wǎng)絡的多目標跟蹤算法
Siamese對稱卷積網(wǎng)絡是一種檢測匹配度量學習方法,如圖2所示。以兩個尺寸相同的檢測圖像塊作為輸入,輸出為這兩個圖像塊是否屬于同一個目標的判別。
原始的檢測特征包括正則化的LUV圖像I1和I2,以及具有x,y方向分量的光流圖像O1和O2,把這些圖像縮放到121x53,并且疊加到一起構成10個通道的網(wǎng)絡輸入特征。卷積網(wǎng)絡由三個卷積層(C1、C2、C3)、三個全連接層(F4、F5、F6)以及一個2元分類損失層(F7)組成,如圖2所示。
圖2 Siamese對稱網(wǎng)絡結構
學習過程采用經(jīng)典的帶有動量的隨機梯度反向傳播算法。minibatch大小選擇為128,學習率初始為0.01。通過50個回合的訓練,可以得到較為優(yōu)化的網(wǎng)絡參數(shù)。在Siamese網(wǎng)絡學習完成之后,作者采用第六層全連接網(wǎng)絡的輸出作為表觀特征,為了融合運動信息,作者又設計了6維運動上下文特征:尺寸相對變化,位置相對變化,以及速度相對變化。
基于Siamese對稱網(wǎng)絡的多目標跟蹤算法在計算機視覺跟蹤領域有著十分重要的地位,由于采用孿生的網(wǎng)絡結構,使得其能夠更好地利用一套參數(shù)來對相似的圖像進行擬合,達到快速學習跟蹤的目的。這種網(wǎng)絡結構為后續(xù)的研究工作提供了一個十分有效的網(wǎng)絡模板與思路,推動了計算機視覺領域跟蹤算法的發(fā)展。
基于全連接孿生(Siamese-FC)網(wǎng)絡的目標跟蹤
Siamese-FC與之前提到的Siamese CNN都采用了孿生結構,Siamese-FC的算法結構如圖3所示。
圖中z代表的是模板圖像,算法中使用的是第一幀的groundtruth,x代表的是search region,即在后面的待跟蹤幀中的候選框搜索區(qū)域,φ代表的是一種特征映射操作,將原始圖像映射到特定的特征空間,文中采用的是CNN中的卷積層和pooling層,6×6×128代表z經(jīng)過φ后得到的特征,是一個128通道6×6大小feature,同理,22×22×128是x經(jīng)過φ后的特征,最后的*代表卷積操作,讓22×22×128的feature被6×6×128的卷積核卷積,得到一個17×17×1的score map,代表著search region中各個位置與模板的相似度值。
算法本身是比較搜索區(qū)域與目標模板的相似度,最后得到搜索區(qū)域的score map。從原理上來說,這種方法和相關性濾波的方法很相似。都是在搜索區(qū)域中與目標模板進行逐點匹配,Siamese-FC算法將這種逐點平移匹配計算相似度的方法看成一種卷積操作,然后在卷積結果中找到相似度值最大的點,作為新的目標中心。
MDNet的改進網(wǎng)絡——Real-Time MDNet
首先簡單介紹MDNet, MDNet是一個純深度的目標跟蹤方法,訓練時首先在每一個視頻中根據(jù)目標的位置用高斯分布,均勻分布和隨機分布結合的方法采樣取得ROI框,提取對應圖像patch;然后輸入網(wǎng)絡最后一層(全連接層)后,利用softmax輸出目標和背景的概率,然后根據(jù)groundtruth計算loss反傳,訓練時僅最后一層FC層根據(jù)不同類的視頻而不同,即僅有前面的層共享參數(shù),目的是學習到更魯棒的參數(shù),檢測的時候去掉最后一層,用新的FC層使用第一幀的信息finetune,MDNet的缺點是太慢,FPS~ 1。Real-TimeMDNet提升至FPS~40。
Real-Time MDNet[12]的貢獻是:
1、受Mask R-CNN的啟發(fā),提出了一種自適應的ROIAlign;
2、對損失函數(shù)進行了改進,引入了一個內(nèi)嵌實例的loss。
自適應的ROIAlign:
如果把MDNet比作tracking版的R-CNN,那么RT-MDNet就可以近似的認為是tracking版的Mask R-CNN。
原始的MDNet像R-CNN一樣,是先產(chǎn)生proposal,然后用proposal在原圖上摳圖提特征,這就會像R-CNN一樣在提特征時產(chǎn)生很多冗余的部分,很自然的,可以像Faster那樣,先提原圖的特征,然后在featuremap上去找RoI,這樣可以大大加快速度。但是普通的RoI Pooling會在兩次量化的過程中積累很多誤差,這些誤差再積累到tracking的時序上,最后很可能會讓模型漂掉。所以自然的又想到了用RoI Pooling的改進版,RoIAlign。
然而,當RoIAlign中的采樣點間隔太大,會損失掉featuremap上一些有用的信息。比如,一個feature map grid上是5×5的點,但是RoIAlign在每個grid上只采2×2共4個點,這必然會導致featuremap上的信息被丟失。所以作者根據(jù)feature map grid的size自適應的調(diào)整網(wǎng)格里samplepoints的數(shù)量,來減少信息的損失。這就是自適應的ROIAlign。
對損失函數(shù)的改進:
對Loss的改進如圖4所示,引入了內(nèi)嵌實例的loss,使不同域的目標在特征空間的距離相互更遠,這樣能學到更有判別力的特征。MDNet僅僅是在每一個域中區(qū)分目標和背景,而當目標們有相似的外觀時就不能有效判別不同域中的目標,所以作者loss中嵌入了其他視頻中的目標來使相互之間更有判別力。
基于時空域關注模型的多目標跟蹤算法
除了采用解決目標重識別問題的深度網(wǎng)絡架構學習檢測匹配特征,還可以根據(jù)多目標跟蹤場景的特點,設計合適的深度網(wǎng)絡模型來學習檢測匹配特征。Chu等人對行人多目標跟蹤問題中跟蹤算法發(fā)生漂移進行統(tǒng)計分析,發(fā)現(xiàn)不同行人發(fā)生交互時,互相遮擋是跟蹤算法產(chǎn)生漂移的重要原因。如圖5。
圖5 互相遮擋導致識別不準
針對這個問題,他們提出了時空域關注模型(STAM)來學習遮擋情況,并判別可能出現(xiàn)的干擾目標。如圖6所示,空間關注模型用于生成遮擋發(fā)生時的特征權重,對候選檢測特征加權之后,通過分類器進行選擇,得到估計的目標跟蹤結果。時間關注模型加權歷史樣本和當前樣本,從而得到加權的損失函數(shù),用于在線更新目標模型。
圖6 基于時空域關注模型
在這個模型中每個目標獨立管理并更新自己的時空域關注模型,并選擇候選檢測進行跟蹤,因此本質上,這種方法是對單目標跟蹤算法在多目標跟蹤中的擴展。為了區(qū)分不同的目標,關鍵的步驟是如何對遮擋狀態(tài)進行建模和區(qū)分接近的不同目標。
空間注意模型用于對每個時刻的遮擋狀態(tài)進行分析,空間關注模型如圖7所示。主要分為三步。第一步是學習特征可見圖(visibility map);第二步是根據(jù)特征可見圖,計算空間關注圖(Spatial Attention);第三步根據(jù)空間關注圖加權原特征圖。對生成的加權特征圖進行卷積和全連接網(wǎng)絡操作,生成二元分類器判別是否是目標自身。最后用得到分類打分,選擇最優(yōu)的跟蹤結果。
圖7 空間關注模型步驟
基于LSTM判別融合表觀的多目標跟蹤算法
前面介紹的幾個算法采用的深度網(wǎng)絡模型都是基于卷積網(wǎng)絡結構,由于目標跟蹤是通過歷史軌跡信息來判斷新的目標狀態(tài),因此,設計能夠記憶歷史信息并根據(jù)歷史信息來學習匹配相似性的網(wǎng)絡結構,也是比較可行的算法框架。Sadeghian等人設計了基于長短期記憶循環(huán)網(wǎng)絡模型(LSTM)的特征融合算法來學習軌跡歷史信息與當前檢測之間的匹配相似度。如圖8,首先,軌跡目標與檢測的匹配需要用到三種特征(表觀特征、運動特征、交互特征)(左);然后,采用分層的LSTM模型(中)來實現(xiàn)三種特征的融合;最后,通過相似度的二部圖匹配算法實現(xiàn)最終的匹配結果(右)。
圖8 基于LSTM特征融合進行跟蹤
對于表觀特征,首先采用VGG-16卷積網(wǎng)絡生成500維的特征,以這個特征作為LSTM的輸入計算循環(huán)網(wǎng)絡的輸出,根據(jù)與當前時刻檢測到的特征匹配的情況來學習分類器,并預訓練這個網(wǎng)絡,如圖9所示。
圖9 基于CNN模型和LSTM模型的軌跡與檢測表觀特征匹配架構
對于運動特征,取相對位移為基本輸入特征,直接輸入LSTM模型計算每個時刻的輸出。對于下一時刻的檢測,同樣計算相對位移,通過全連接網(wǎng)絡計算特征,得到500維的特征,并利用二元匹配分類器進行網(wǎng)絡的預訓練。整個過程如圖10所示。
圖10 基于LSTM模型的軌跡運動特征匹配架構
對于交互特征,取以目標中心位置周圍矩形鄰域內(nèi)其他目標所占的相對位置映射圖作為LSTM模型的輸入特征,計算輸出特征。同樣通過全連接網(wǎng)絡計算500維特征,進行分類訓練,如圖11所示。
圖11 基于LSTM模型的目標交互特征匹配架構
當三個特征都計算之后拼接為完整的特征,輸入到上層的LSTM網(wǎng)絡,對輸出的向量進行全連接計算,然后用于匹配分類,匹配正確為1,否則為0。
|| 總結
目前的基于深度學習的多目標跟蹤框架在以下兩個方向取得了較好的進展:
(1)結合多目標跟蹤場景對網(wǎng)絡進行優(yōu)化,這種考慮跟蹤場景的網(wǎng)絡設計對于跟蹤結果有明顯的提升效果。
(2)采用循環(huán)神經(jīng)網(wǎng)絡,利用歷史信息來表達跟蹤中的軌跡特征,這是研究跟蹤問題的又一個重要的方向。
算法的發(fā)展是飛快的,目前也一直有新的優(yōu)秀的跟蹤算法噴涌而出,對這個方向比較感興趣的小伙伴們加油了,大家一起來參與到多目標跟蹤的領域中來吧!同時,希望這篇文章能夠幫助那些對這個方向還不太了解的小伙伴盡快入門,下面是我列出的一些個人認為比較好的論文和源碼。
|| 論文
[1].C. Kim, F. Li, A. Ciptadi, andJ. Rehg. Multiple Hypothesis Tracking Revisited. In ICCV, 2015.
[2].S. Tang, B. Andres, M.Andriluka, and B. Schiele. Multi-person tracking by multicut and deep matching.In ECCV Workshops, 2016.
[3].L. Lealtaixe, C. Cantonferrer, andK. Schindler, Learning by tracking: Siamese CNN for robust targetassociation, in Proceedings of Computer Vision and Pattern Recognition. 2016.
[4].Bertinetto L,Valmadre J, Henriques, Jo?o F, et al. Fully-Convolutional Siamese Networks for Object Tracking, 2016.
[5].Q. Chu, W. Ouyang, H. Li, X.Wang, B. Liu, N. Yu. Online Multi-Object Tracking Using CNN-based SingleObject Tracker with Spatial-Temporal Attention Mechanism, ICCV 2017.
[6].Sadeghian, A. Alahi, and S.Savarese. Tracking the untrackable: Learning to track multiple cues withlong-term dependencies, ICCV2017.
[7].K. Fang, Y. Xiang, X. Li and S.Savarese, Recurrent Autoregressive Networks for Online Multi-ObjectTracking, In IEEE Winter Conference on Applications of Computer Vision2018.
[8].M. Keuper, E. Levinkov, N.Bonneel, G. Lavou′e, T. Brox, B. Andres. Efficient decomposition of imageand mesh graphs by lifted multicuts, ICCV 2015.
[9].P. Weinzaepfel, J. Revaud, Z.Harchaoui, C. Schmid. DeepFlow: large displacement optical flow with deepmatching, In ICCV 2013.
[10].S. Tang, M. Andriluka, B.Andres, and B. Schiele. Multiple People Tracking with Lifted Multi-cut andPerson Re-identification. In CVPR, 2017.
[11].C. Kim, F. Li, and J. M. Rehg,Multi-object Tracking with Neural Gating Using Bilinear LSTM, inECCV 2018.
[12].Jung I, Son J, Baek M, et al.Real-Time MDNet, European Conference on Computer Vision. 2018.
|| 源碼
http://votchallenge.net/vot2016/trackers.html
https://zhuanlan.zhihu.com/p/37856765
https://github.com/martin-danelljan/ECO
https://github.com/huanglianghua/siamrpn-pytorch
https://github.com/zkisthebest/Siamese-RPN
https://github.com/marsmarcin/Da-SiamRPN_No_vot-toolkit
https://github.com/foolwood/DaSiamRPN
https://www.cnblogs.com/wangyong/p/8523814.html
https://handong1587.github.io/deep_learning/2015/10/09/tracking.html
https://blog.csdn.net/StayFoolish_Fan/article/details/80432531
https://github.com/makalo/Siamese-RPN-tensorflow
來源:計算機視覺life