深度長文:計算機視覺中,目前有哪些經典的目標跟蹤算法?

2021-01-15 機器視覺前沿

第一部分:目標跟蹤速覽

先跟幾個SOTA的tracker混個臉熟,大概了解一下目標跟蹤這個方向都有些什麼。一切要從2013年的那個資料庫說起。。如果你問別人近幾年有什麼比較niubility的跟蹤算法,大部分人都會扔給你吳毅老師的論文,OTB50和OTB100(OTB50這裡指OTB-2013,OTB100這裡指OTB-2015,50和100分別代表視頻數量,方便記憶):

Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.

Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015.

頂會轉頂刊的頂級待遇,在加上引用量1480+320多,影響力不言而喻,已經是做tracking必須跑的資料庫了,測試代碼和序列都可以下載: Visual Tracker Benchmark,OTB50包括50個序列,都經過人工標註:

兩篇論文在資料庫上對比了包括2012年及之前的29個頂尖的tracker,有大家比較熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是頂會轉頂刊的神作,由於之前沒有比較公認的資料庫,論文都是自賣自誇,大家也不知道到底哪個好用,所以這個database的意義非常重大,直接促進了跟蹤算法的發展,後來又擴展為OTB100發到TPAMI,有100個序列,難度更大更加權威,我們這裡參考OTB100的結果,首先是29個tracker的速度和發表時間(標出了一些性能速度都比較好的算法):

接下來再看結果(更加詳細的情況建議您去看論文比較清晰):

直接上結論:平均來看Struck, SCM, ASLA的性能比較高,排在前三不多提,著重強調CSK,第一次向世人展示了相關濾波的潛力,排第四還362FPS簡直逆天了。速度排第二的是經典算法CT(64fps)(與SCM, ASLA等都是那個年代最熱的稀疏表示)。如果對更早期的算法感興趣,推薦另一篇經典的survey(反正我是沒興趣也沒看過):

Yilmaz A, Javed O, Shah M. Object tracking: A survey [J]. CSUR, 2006.

2012年以前的算法基本就是這樣,自從2012年AlexNet問世以後,CV各個領域都有了巨大變化,所以我猜你肯定還想知道2013到2017年發生了什麼,抱歉我也不知道(容我賣個關子),不過我們可以肯定的是,2013年以後的論文一定都會引用OTB50這篇論文,藉助谷歌學術中的被引用次數功能,得到如下結果:

這裡僅列舉幾個引用量靠前的,依次是Struck轉TPAMI, 三大相關濾波方法KCF, CN, DSST, 和VOT競賽,這裡僅作示範,有興趣可以親自去試試。(這麼做的理論依據是:一篇論文,在它之前的工作可以看它的引用文獻,之後的工作可以看誰引用了它;雖然引用量並不能說明什麼,但好的方法大家基本都會引用的(表示尊重和認可);之後還可以通過限定時間來查看某段時間的相關論文,如2016-2017就能找到最新的論文了,至於論文質量需要仔細甄別;其他方向的重要論文也可以這麼用,順藤摸瓜,然後你就知道大牛是哪幾位,接著關注跟蹤一下他們的工作 )這樣我們就大致知道目標跟蹤領域的最新進展應該就是相關濾波無疑了,再往後還能看到相關濾波類算法有SAMF, LCT, HCF, SRDCF等等。當然,引用量也與時間有關,建議分每年來看。此外,最新版本OPENCV3.2除了TLD,也包括了幾個很新的跟蹤算法 OpenCV: Tracking API:

TrackerKCF接口實現了KCF和CN,影響力可見一斑,還有個GOTURN是基於深度學習的方法,速度雖快但精度略差,值得去看看。tracking方向的最新論文,可以跟進三大會議(CVPR/ICCV/ECCV) 和arXiv。

第二部分:背景介紹

接下來總體介紹下目標跟蹤。這裡說的目標跟蹤,是通用單目標跟蹤,第一幀給個矩形框,這個框在資料庫裡面是人工標註的,在實際情況下大多是檢測算法的結果,然後需要跟蹤算法在後續幀緊跟住這個框,以下是VOT對跟蹤算法的要求:

通常目標跟蹤面臨幾大難點(吳毅在VALSE的slides):外觀變形,光照變化,快速運動和運動模糊,背景相似幹擾:

平面外旋轉,平面內旋轉,尺度變化,遮擋和出視野等情況:

正因為這些情況才讓tracking變得很難,目前比較常用的資料庫除了OTB,還有前面找到的VOT競賽資料庫(類比ImageNet),已經舉辦了四年,VOT2015和VOT2016都包括60個序列,所有序列也是免費下載 VOT Challenge | Challenges:

Kristan M, Pflugfelder R, Leonardis A, et al. The visual object tracking vot2013 challenge results [C]// ICCV, 2013.

Kristan M, Pflugfelder R, Leonardis A, et al. The Visual Object Tracking VOT2014 Challenge Results [C]// ECCV, 2014.

Kristan M, Matas J, Leonardis A, et al. The visual object tracking vot2015 challenge results [C]// ICCV, 2015.

Kristan M, Ales L, Jiri M, et al. The Visual Object Tracking VOT2016 Challenge Results [C]// ECCV, 2016.

OTB和VOT區別:OTB包括25%的灰度序列,但VOT都是彩色序列,這也是造成很多顏色特徵算法性能差異的原因;兩個庫的評價指標不一樣,具體請參考論文;VOT庫的序列解析度普遍較高,這一點後面分析會提到。對於一個tracker,如果論文在兩個庫(最好是OTB100和VOT2016)上都結果上佳,那肯定是非常優秀的(兩個庫調參你能調好,我服,認了~~),如果只跑了一個,個人更偏向於VOT2016,因為序列都是精細標註,且評價指標更好(人家畢竟是競賽,評價指標發過TPAMI的),差別最大的地方,OTB有隨機幀開始,或矩形框加隨機幹擾初始化去跑,作者說這樣更加符合檢測算法給的框框;而VOT是第一幀初始化去跑,每次跟蹤失敗(預測框和標註框不重疊)時,5幀之後重新初始化,VOT以short-term為主,且認為跟蹤檢測應該在一起不分離,detecter會多次初始化tracker。

補充:OTB在2013年公開了,對於2013以後的算法是透明的,論文都會去調參,尤其是那些只跑OTB的論文,如果關鍵參數直接給出還精確到小數點後兩位,建議您先實測(人心不古啊~被坑的多了)。VOT競賽的資料庫是每年更新,還動不動就重新標註,動不動就改變評價指標,對當年算法是難度比較大,所以結果相對更可靠。(相信很多人和我一樣,看每篇論文都會覺得這個工作太好太重要了,如果沒有這篇論文,必定地球爆炸,宇宙重啟~~所以就像大家都通過歷年ILSVRC競賽結果為主線了解深度學習的發展一樣,第三方的結果更具說服力,所以我也以競賽排名+是否公開源碼+實測性能為標準,優選幾個算法分析)

目標視覺跟蹤(Visual Object Tracking),大家比較公認分為兩大類:生成(generative)模型方法和判別(discriminative)模型方法,目前比較流行的是判別類方法,也叫檢測跟蹤tracking-by-detection,為保持回答的完整性,以下簡單介紹。

生成類方法,在當前幀對目標區域建模,下一幀尋找與模型最相似的區域就是預測位置,比較著名的有卡爾曼濾波,粒子濾波,mean-shift等。舉個例子,從當前幀知道了目標區域80%是紅色,20%是綠色,然後在下一幀,搜索算法就像無頭蒼蠅,到處去找最符合這個顏色比例的區域,推薦算法ASMS vojirt/asms:

Vojir T, Noskova J, Matas J. Robust scale-adaptive mean-shift for tracking [J]. Pattern Recognition Letters, 2014.

ASMS與DAT並稱「顏色雙雄」(版權所有翻版必究),都是僅顏色特徵的算法而且速度很快,依次是VOT2015的第20名和14名,在VOT2016分別是32名和31名(中等水平)。ASMS是VOT2015官方推薦的實時算法,平均幀率125FPS,在經典mean-shift框架下加入了尺度估計,經典顏色直方圖特徵,加入了兩個先驗(尺度不劇變+可能偏最大)作為正則項,和反向尺度一致性檢查。作者給了C++代碼,在相關濾波和深度學習盛行的年代,還能看到mean-shift打榜還有如此高的性價比實在不容易(已淚目~~),實測性能還不錯,如果您對生成類方法情有獨鍾,這個非常推薦您去試試。(某些算法,如果連這個你都比不過。。天台在24樓,不謝)

判別類方法,OTB50裡面的大部分方法都是這一類,CV中的經典套路圖像特徵+機器學習, 當前幀以目標區域為正樣本,背景區域為負樣本,機器學習方法訓練分類器,下一幀用訓練好的分類器找最優區域:

Hare S, Golodetz S, Saffari A, et al. Struck: Structured output tracking with kernels[J]. IEEE TPAMI, 2016.

Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection [J]. IEEE TPAMI, 2012.

長江後浪推前浪,前面的已被排在沙灘上,這個後浪就是相關濾波和深度學習。相關濾波類方法correlation filter簡稱CF,也叫做discriminative correlation filter簡稱DCF,注意和後面的DCF算法區別,包括前面提到的那幾個,也是後面要著重介紹的。深度學習(Deep ConvNet based)類方法,因為深度學習類目前不適合落地就不瞎推薦了,可以參考Winsty的幾篇 Naiyan Wang - Home,還有VOT2015的冠軍MDNet Learning Multi-Domain Convolutional Neural Networks for Visual Tracking,以及VOT2016的冠軍TCNNhttp://www.votchallenge.net/vot2016/download/44_TCNN.zip,速度方面比較突出的如80FPS的SiamFC SiameseFC tracker和100FPS的GOTURN davheld/GOTURN,注意都是在GPU上。基於ResNet的SiamFC-R(ResNet)在VOT2016表現不錯,很看好後續發展,有興趣也可以去VALSE聽作者自己講解 VALSE-20160930-LucaBertinetto-Oxford-JackValmadre-Oxford-pu,至於GOTURN,效果比較差,但優勢是跑的很快100FPS,如果以後效果也能上來就好了。做科研的同學深度學習類是關鍵,能兼顧速度就更好了。

維護的benchmark_results foolwood/benchmark_results:大量頂級方法在OTB庫上的性能對比,各種論文代碼應有盡有,大神自己C++實現並開源的CSK, KCF和DAT,還有他自己的DCFNet論文加源碼,找不著路的同學請跟緊。

維護的相關濾波類資源 HakaseH/CF_benchmark_results ,詳細分類和論文代碼資源,走過路過別錯過,相關濾波類算法非常全面,非常之用心!

第三部分:相關濾波

介紹最經典的高速相關濾波類跟蹤算法CSK, KCF/DCF, CN。很多人最早了解CF,應該和我一樣,都是被下面這張圖吸引了:

CSK和KCF都是Henriques J F(牛津大學)Joo F. Henriques 大神先後兩篇論文,影響後來很多工作,核心部分的嶺回歸,循環移位的近似密集採樣,還給出了整個相關濾波算法的詳細推導。還有嶺回歸加kernel-trick的封閉解,多通道HOG特徵。

Martin Danelljan大牛(林雪平大學)用多通道顏色特徵Color Names(CN)去擴展CSK得到了不錯的效果,算法也簡稱CN Coloring Visual Tracking 。

MOSSE是單通道灰度特徵的相關濾波,CSK在MOSSE的基礎上擴展了密集採樣(加padding)和kernel-trick,KCF在CSK的基礎上擴展了多通道梯度的HOG特徵,CN在CSK的基礎上擴展了多通道顏色的Color Names。HOG是梯度特徵,而CN是顏色特徵,兩者可以互補,所以HOG+CN在近兩年的跟蹤算法中成為了hand-craft特徵標配。最後,根據KCF/DCF的實驗結果,討論兩個問題:

1. 為什麼只用單通道灰度特徵的KCF和用了多通道HOG特徵的KCF速度差異很小?

第一,作者用了HOG的快速算法fHOG,來自Piotr's Computer Vision Matlab Toolbox,C代碼而且做了SSE優化。如對fHOG有疑問,請參考論文Object Detection with Discriminatively Trained Part Based Models第12頁。

第二,HOG特徵常用cell size是4,這就意味著,100*100的圖像,HOG特徵圖的維度只有25*25,而Raw pixels是灰度圖歸一化,維度依然是100*100,我們簡單算一下:27通道HOG特徵的複雜度是27*625*log(625)=47180,單通道灰度特徵的複雜度是10000*log(10000)=40000,理論上也差不多,符合表格。

看代碼會發現,作者在擴展後目標區域面積較大時,會先對提取到的圖像塊做因子2的下採樣到50*50,這樣複雜度就變成了2500*log(2500)=8495,下降了非常多。那你可能會想,如果下採樣再多一點,複雜度就更低了,但這是以犧牲跟蹤精度為代價的,再舉個例子,如果圖像塊面積為200*200,先下採樣到100*100,再提取HOG特徵,解析度降到了25*25,這就意味著響應圖的解析度也是25*25,也就是說,響應圖每位移1個像素,原始圖像中跟蹤框要移動8個像素,這樣就降低了跟蹤精度。在精度要求不高時,完全可以稍微犧牲下精度提高幀率(但看起來真的不能再下採樣了)。

2. HOG特徵的KCF和DCF哪個更好?

大部分人都會認為KCF效果超過DCF,而且各屬性的準確度都在DCF之上,然而,如果換個角度來看,以DCF為基準,再來看加了kernel-trick的KCF,mean precision僅提高了0.4%,而FPS下降了41%,這麼看是不是挺驚訝的呢?除了圖像塊像素總數,KCF的複雜度還主要和kernel-trick相關。所以,下文中的CF方法如果沒有kernel-trick,就簡稱基於DCF,如果加了kernel-trick,就簡稱基於KCF(劇透基本各佔一半)。當然這裡的CN也有kernel-trick,但請注意,這是Martin Danelljan大神第一次使用kernel-trick,也是最後一次。。。

這就會引發一個疑問,kernel-trick這麼強大的東西,怎麼才提高這麼點?這裡就不得不提到Winsty的另一篇大作:

Wang N, Shi J, Yeung D Y, et al. Understanding and diagnosing visual tracking systems[C]// ICCV, 2015.

一句話總結,別看那些五花八門的機器學習方法,那都是虛的,目標跟蹤算法中特徵才是最重要的(就是因為這篇文章我粉了WIN叔哈哈),以上就是最經典的三個高速算法,CSK, KCF/DCF和CN,推薦。

第四部分:14年的尺度自適應

VOT與OTB一樣最早都是2013年出現的,但VOT2013序列太少,第一名的PLT代碼也找不到,沒有參考價值就直接跳過了。直接到了VOT2014競賽 VOT2014 Benchmark 。這一年有25個精挑細選的序列,38個算法,那時候深度學習的戰火還沒有燒到tracking,所以主角也只能是剛剛展露頭角就獨霸一方的CF,下面是前幾名的詳細情況:

前三名都是相關濾波CF類方法,第三名的KCF已經很熟悉了,這裡稍微有點區別就是加了多尺度檢測和子像素峰值估計,再加上VOT序列的解析度比較高(檢測更新圖像塊的解析度比較高),導致競賽中的KCF的速度只有24.23(EFO換算66.6FPS)。這裡speed是EFO(Equivalent Filter Operations),在VOT2015和VOT2016裡面也用這個參數衡量算法速度,這裡一次性列出來供參考(MATLAB實現的tracker實際速度要更高一些):

其實前三名除了特徵略有差異,核心都是KCF為基礎擴展了多尺度檢測,概要如下:

尺度變化是跟蹤中比較基礎和常見的問題,前面介紹的KCF/DCF和CN都沒有尺度更新,如果目標縮小,濾波器就會學習到大量背景信息,如果目標擴大,濾波器就跟著目標局部紋理走了,這兩種情況都很可能出現非預期的結果,導致漂移和失敗。

SAMF ihpdep/samf,浙大Yang Li的工作,基於KCF,特徵是HOG+CN,多尺度方法是平移濾波器在多尺度縮放的圖像塊上進行目標檢測,取響應最大的那個平移位置及所在尺度:

Li Y, Zhu J. A scale adaptive kernel correlation filter tracker with feature integration [C]// ECCV, 2014.

Martin Danelljan的DSST Accurate scale estimation for visual tracking,只用了HOG特徵,DCF用於平移位置檢測,又專門訓練類似MOSSE的相關濾波器檢測尺度變化,開創了平移濾波+尺度濾波,之後轉TPAMI做了一系列加速的版本fDSST,非常+非常+非常推薦:

Danelljan M, Hger G, Khan F, et al. Accurate scale estimation for robust visual tracking [C]// BMVC, 2014.

Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017.

簡單對比下這兩種尺度自適應的方法:

DSST和SAMF所採用的尺度檢測方法哪個更好?

首先給大家講個笑話:Martin Danelljan大神提出DSST之後,他的後續論文就再沒有用過(直到最新CVPR的ECO-HC中為了加速用了fDSST)。

雖然SAMF和DSST都可以跟上普通的目標尺度變化,但SAMF只有7個尺度比較粗,而DSST有33個尺度比較精細準確;

DSST先檢測最佳平移再檢測最佳尺度,是分步最優,而SAMF是平移尺度一起檢測,是平移和尺度同時最優,而往往局部最優和全局最優是不一樣的;

DSST將跟蹤劃分為平移跟蹤和尺度跟蹤兩個問題,可以採用不同的方法和特徵,更加靈活,但需要額外訓練一個濾波器,每幀尺度檢測需要採樣33個圖像塊,之後分別計算特徵、加窗、FFT等,尺度濾波器比平移濾波器慢很多;SAMF只需要一個濾波器,不需要額外訓練和存儲,每個尺度檢測就一次提特徵和FFT,但在圖像塊較大時計算量比DSST高。

所以尺度檢測DSST並不總是比SAMF好,其實在VOT2015和VOT2016上SAMF都是超過DSST的,當然這主要是因為特徵更好,但至少說明尺度方法不差。總的來說,DSST做法非常新穎,速度更快,SAMF同樣優秀也更加準確。

DSST一定要33個尺度嗎?

DSST標配33個尺度非常非常敏感,輕易降低尺度數量,即使你增加相應步長,尺度濾波器也會完全跟不上尺度變化。關於這一點可能解釋是,訓練尺度濾波器用的是一維樣本,而且沒有循環移位,這就意味著一次訓練更新只有33個樣本,如果降低樣本數量,會造成訓練不足,分類器判別力嚴重下降,不像平移濾波器有非常多的移位樣本(個人看法歡迎交流)。總之,請不要輕易嘗試大幅降低尺度數量,如果非要用尺度濾波器33和1.02就很好。

以上就是兩種推薦的尺度檢測方法,以後簡稱為類似DSST的多尺度和類似SAMF的多尺度。如果更看重速度,加速版的fDSST,和僅3個尺度的SAMF(如VOT2014中的KCF)就是比較好的選擇;如果更看重精確,33個尺度的DSST,及7個尺度的SAMF就比較合適。

第五部分:邊界效應

接下來到了VOT2015競賽 VOT2015 Challenge | Home ,這一年有60個精挑細選的序列,62個tracker,最大看點是深度學習開始進擊tracking領域,MDNet直接拿下當年的冠軍,而結合深度特徵的相關濾波方法DeepSRDCF是第二名,主要解決邊界效應的SRDCF僅HOG特徵排在第四:

隨著VOT競賽的影響力擴大,舉辦方也是用心良苦,經典的和頂尖的齊聚一堂,百家爭鳴,多達62個tracker皇城PK,華山論劍。除了前面介紹的深度學習和相關濾波,還有結合object proposals(類物體區域檢測)的EBT(EBT:Proposal與Tracking不得不說的秘密 - 知乎專欄)排第三,Mean-Shift類顏色算法ASMS是推薦實時算法,還有前面提到的另一個顏色算法DAT,而在第9的那個Struck已經不是原來的Struck了。除此之外,還能看到經典方法如OAB, STC, CMT, CT, NCC等都排在倒數位置, 經典方法已經被遠遠甩在後面。

在介紹SRDCF之前,先來分析下相關濾波有什麼缺點。總體來說,相關濾波類方法對快速變形和快速運動情況的跟蹤效果不好。

快速變形主要因為CF是模板類方法。容易跟丟這個比較好理解,前面分析了相關濾波是模板類方法,如果目標快速變形,那基於HOG的梯度模板肯定就跟不上了,如果快速變色,那基於CN的顏色模板肯定也就跟不上了。這個還和模型更新策略與更新速度有關,固定學習率的線性加權更新,如果學習率太大,部分或短暫遮擋和任何檢測不準確,模型就會學習到背景信息,積累到一定程度模型跟著背景私奔了,一去不復返。如果學習率太小,目標已經變形了而模板還是那個模板,就會變得不認識目標。

快速運動主要是邊界效應(Boundary Effets),而且邊界效應產生的錯誤樣本會造成分類器判別力不夠強,下面分訓練階段和檢測階段分別討論。

訓練階段,合成樣本降低了判別能力。如果不加餘弦窗,那麼移位樣本是長這樣的:

除了那個最原始樣本,其他樣本都是「合成」的,100*100的圖像塊,只有1/10000的樣本是真實的,這樣的樣本集根本不能拿來訓練。如果加了餘弦窗,由於圖像邊緣像素值都是0,循環移位過程中只要目標保持完整,就認為這個樣本是合理的,只有當目標中心接近邊緣時,目標跨越了邊界的那些樣本是錯誤的,這樣雖不真實但合理的樣本數量增加到了大約2/3(一維情況padding= 1)。但我們不能忘了即使這樣仍然有1/3(3000/10000)的樣本是不合理的,這些樣本會降低分類器的判別能力。再者,加餘弦窗也不是「免費的」,餘弦窗將圖像塊的邊緣區域像素全部變成0,大量過濾掉了分類器本來非常需要學習的背景信息,原本訓練時判別器能看到的背景信息就非常有限,我們還加了個餘弦窗擋住了背景,這樣進一步降低了分類器的判別力(是不是上帝在我前遮住了簾。。不是上帝,是餘弦窗)。

檢測階段,相關濾波對快速運動的目標檢測比較乏力。相關濾波訓練的圖像塊和檢測的圖像塊大小必須是一樣的,這就是說你訓練了一個100*100的濾波器,那你也只能檢測100*100的區域,如果打算通過加更大的padding來擴展檢測區域,那樣除了擴展了複雜度,並不會有什麼好處。目標運動可能是目標自身移動,或攝像機移動,按照目標在檢測區域的位置分四種情況來看:

如果目標在中心附近,檢測準確且成功。

如果目標移動到了邊界附近但還沒有出邊界,加了餘弦窗以後,部分目標像素會被過濾掉,這時候就沒法保證這裡的響應是全局最大的,而且,這時候的檢測樣本和訓練過程中的那些不合理樣本很像,所以很可能會失敗。

如果目標的一部分已經移出了這個區域,而我們還要加餘弦窗,很可能就過濾掉了僅存的目標像素,檢測失敗。

如果整個目標已經位移出了這個區域,那肯定就檢測失敗了。

以上就是邊界效應(Boundary Effets),推薦兩個主流的解決邊界效應的方法,其中SRDCF速度比較慢,並不適合實時場合。

Martin Danelljan的SRDCF Learning Spatially Regularized Correlation Filters for Visual Tracking,主要思路:既然邊界效應發生在邊界附近,那就忽略所有移位樣本的邊界部分像素,或者說限制讓邊界附近濾波器係數接近0:

Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]// ICCV. 2015.

SRDCF基於DCF,類SAMF多尺度,採用更大的檢測區域(padding = 4),同時加入空域正則化,懲罰邊界區域的濾波器係數,由於沒有閉合解,採用高斯-塞德爾方法迭代優化。檢測區域擴大(1.5->4),迭代優化(破壞了閉合解)導致SRDCF只有5FP,但效果非常好是2015年的baseline。

另一種方法是Hamed Kiani提出的MOSSE改進算法,基於灰度特徵的CFLM Correlation Filters with Limited Boundaries 和基於HOG特徵的BACF Learning Background-Aware Correlation Filters for Visual Tracking,主要思路是採用較大尺寸檢測圖像塊和較小尺寸濾波器來提高真實樣本的比例,或者說濾波器填充0以保持和檢測圖像一樣大,同樣沒有閉合解,採用ADMM迭代優化:

Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries[C]// CVPR, 2015.

Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017.

CFLB僅單通道灰度特徵,雖然速度比較快167FPS,但性能遠不如KCF,不推薦;最新BACF將特徵擴展為多通道HOG特徵,性能超過了SRDCF,而且速度比較快35FPS,非常推薦。

其實這兩個解決方案挺像的,都是用更大的檢測及更新圖像塊,訓練作用域比較小的相關濾波器,不同點是SRDCF的濾波器係數從中心到邊緣平滑過渡到0,而CFLM直接用0填充濾波器邊緣。

VOT2015相關濾波方面還有排在第二名,結合深度特徵的DeepSRDCF,因為深度特徵都非常慢,在CPU上別說高速,實時都到不了,雖然性能非常高,但這裡就不推薦,先跳過。

第六部分:顏色直方圖與相關濾波

VOT2016競賽 VOT2016 Challenge | Home,依然是VOT2015那60個序列,不過這次做了重新標註更加公平合理,今年有70位參賽選手,意料之中深度學習已經雄霸天下了,8個純CNN方法和6個結合深度特徵的CF方法大都名列前茅,還有一片的CF方法,最最最重要的是,良心舉辦方竟然公開了他們能拿到的38個tracker,部分tracker代碼和主頁,下載地址:VOT2016 Challenge | Trackers (以後媽媽再也不用擔心我找不到源碼了~),注意部分是下載連結,部分是源碼壓縮包,部分源碼是二進位文件,好不好用一試便知,方便對比和研究,需要的趕快去試試。馬上來看競賽結果(這裡僅列舉前60個):

高亮標出來了前面介紹過的或比較重要的方法,結合多層深度特徵的相關濾波C-COT排第一名,而CNN方法TCNN是VOT2016的冠軍,作者也是VOT2015冠軍MDNet,純顏色方法DAT和ASMS都在中等水平(其實兩種方法實測表現非常接近),其他tracker的情況請參考論文。再來看速度,SMACF沒有公開代碼,ASMS依然那麼快,排在前10的方法中也有兩個速度比較快,分別是排第5的Staple,和其改進算法排第9的STAPLE+,而且STAPLE+是今年的推薦實時算法。首先恭喜Luca Bertinetto的SiamFC和Staple都表現非常不錯,然後再為大牛默哀三分鐘(VOT2016的paper原文):

This was particularly obvious in case of SiamFC trackers, which runs orders higher than realtime (albeit on GPU), and Staple, which is realtime, but are incorrectly among the non-realtime trackers.

VOT2016竟然發生了烏龍事件,Staple在論文中CPU上是80FPS,怎麼EFO在這裡只有11?幸好公開代碼有Staple和STAPLE+,實測下來,雖然我電腦不如Luca Bertinetto大牛但Staple我也能跑76FPS,而更可笑的是,STAPLE+比Staple慢了大約7-8倍,竟然EFO高出4倍,到底怎麼回事呢?

首先看Staple的代碼,如果您直接下載Staple並設置params.visualization = 1,Staple默認調用Computer Vision System Toolbox來顯示序列圖像,而恰好如果您沒有這個工具箱,默認每幀都會用imshow(im)來顯示圖像,所以非常非常慢,而設置params.visualization = 0就跑的飛快(作者你是孫猴子派來的逗逼嗎),建議您將顯示圖像部分代碼替換成DSST中對應部分代碼就可以正常速度運行和顯示了。

再來看STAPLE+的代碼,對Staple的改進包括額外從顏色概率圖中提取HOG特徵,特徵增加到56通道(Staple是28通道),平移檢測額外加入了大位移光流運動估計的響應,所以才會這麼慢,而且肯定要慢很多。

所以很大可能是VOT舉辦方把Staple和STAPLE+的EFO弄反了,VOT2016的實時推薦算法應該是排第5的Staple,相關濾波結合顏色方法,沒有深度特徵更沒有CNN,跑80FPS還能排在第五,這就是接下來主要介紹的,2016年最NIUBILITY的目標跟蹤算法之一Staple (直接讓排在後面的一眾深度學習算法懷疑人生)。

顏色特徵,在目標跟蹤中顏色是個非常重要的特徵,不管多少個人在一起,只要目標穿不用顏色的一幅就非常明顯。前面介紹過2014年CVPR的CN是相關濾波框架下的模板顏色方法,這裡隆重介紹統計顏色特徵方法DAT Learning, Recognition, and Surveillance @ ICG ,幀率15FPS推薦:

Possegger H, Mauthner T, Bischof H. In defense of color-based model-free tracking [C]// CVPR, 2015.

DAT統計前景目標和背景區域的顏色直方圖並歸一化,這就是前景和背景的顏色概率模型,檢測階段,貝葉斯方法判別每個像素屬於前景的概率,得到像素級顏色概率圖,再加上邊緣相似顏色物體抑制就能得到目標的區域了。

如果要用一句話介紹Luca Bertinetto(牛津大學)的Staple Staple tracker,那就是把模板特徵方法DSST(基於DCF)和統計特徵方法DAT結合:

Bertinetto L, Valmadre J, Golodetz S, et al. Staple: Complementary Learners for Real-Time Tracking [C]// CVPR, 2016.

前面分析了相關濾波模板類特徵(HOG)對快速變形和快速運動效果不好,但對運動模糊光照變化等情況比較好;而顏色統計特徵(顏色直方圖)對變形不敏感,而且不屬於相關濾波框架沒有邊界效應,快速運動當然也是沒問題的,但對光照變化和背景相似顏色不好。綜上,這兩類方法可以互補,也就是說DSST和DAT可以互補結合:

兩個框架的算法高效無縫結合,25FPS的DSST和15FPS的DAT,而結合後速度竟然達到了80FPS。DSST框架把跟蹤劃分為兩個問題,即平移檢測和尺度檢測,DAT就加在平移檢測部分,相關濾波有一個響應圖,像素級前景概率也有一個響應圖,兩個響應圖線性加權得到最終響應圖,其他部分與DSST類似,平移濾波器、尺度濾波器和顏色概率模型都以固定學習率線性加權更新。

另一種相關濾波結合顏色概率的方法是17CVPR的CSR-DCF,提出了空域可靠性和通道可靠性,沒有深度特徵性能直逼C-COT,速度可觀13FPS:

Lukei A, Vojí T, ehovin L, et al. Discriminative Correlation Filter with Channel and Spatial Reliability [C]// CVPR, 2017.

CSR-DCF中的空域可靠性得到的二值掩膜就類似於CFLM中的掩膜矩陣P,在這裡自適應選擇更容易跟蹤的目標區域且減小邊界效應;以往多通道特徵都是直接求和,而CSR-DCF中通道採用加權求和,而通道可靠性就是那個自適應加權係數。採用ADMM迭代優化,可以看出CSR-DCF是DAT和CFLB的結合算法。

高置信度更新,只有在跟蹤置信度比較高的時候才更新跟蹤模型,避免目標模型被汙染,同時提升速度。 第一個置信度指標是最大響應分數Fmax,就是最大響應值(Staple和LCT中都有提到)。 第二個置信度指標是平均峰值相關能量(average peak-to correlation energy, APCE),反應響應圖的波動程度和檢測目標的置信水平,這個(可能)是目前最好的指標,推薦:

跟蹤置信度指標還有,MOSSE中的峰值旁瓣比(Peak to Sidelobe Ratio, PSR), 由相關濾波峰值,與11*11峰值窗口以外旁瓣的均值與標準差計算得到,推薦:

還有CSR-DCF的空域可靠性,也用了兩個類似指標反映通道可靠性, 第一個指標也是每個通道的最大響應峰值,就是Fmax,第二個指標是響應圖中第二和第一主模式之間的比率,反映每個通道響應中主模式的表現力,但需要先做極大值檢測:

第八部分:卷積特徵

最後這部分是Martin Danelljan的專場,主要介紹他的一些列工作,尤其是結合深度特徵的相關濾波方法,代碼都在他主頁Visual Tracking,就不一一貼出了。

SRDCFdecon在SRDCF的基礎上,改進了樣本和學習率問題。以前的相關濾波都是固定學習率線性加權更新模型,雖然這樣比較簡單不用保存以前樣本,但在定位不準確、遮擋、背景擾動等情況會汙染模型導致漂移。SRDCFdecon選擇保存以往樣本(圖像塊包括正,負樣本),在優化目標函數中添加樣本權重參數和正則項,採用交替凸搜索,首先固定樣本權重,高斯-塞德爾方法迭代優化模型參數,然後固定模型參數,凸二次規劃方法優化樣本權重。

Danelljan M, Hager G, Shahbaz Khan F, et al. Convolutional features for correlation filter based visual tracking [C]// ICCVW, 2015.

DeepSRDCF是VOT2015的第二名,將SRDCF中的HOG特徵替換為CNN中單層卷積層的深度特徵(也就是卷積網絡的激活值),效果有了極大提升。這裡用imagenet-vgg-2048 network,VGG網絡的遷移能力比較強,而且MatConvNet就是VGG組的,MATLAB調用非常方便。論文還測試了不同卷積層在目標跟蹤任務中的表現:

第1層表現最好,第2和第5次之。由於卷積層數越高語義信息越多,但紋理細節越少,從1到4層越來越差的原因之一就是特徵圖的解析度越來越低,但第5層反而很高,是因為包括完整的語義信息,判別力比較強(本來就是用來做識別的)。

注意區分這裡的深度特徵和基於深度學習的方法,深度特徵來自ImageNet上預訓練的圖像分類網絡,沒有fine-turn這一過程,不存在過擬合的問題。而基於深度學習的方法大多需要在跟蹤序列上end-to-end訓練或fine-turn,如果樣本數量和多樣性有限就很可能過擬合。

Ma C, Huang J B, Yang X, et al. Hierarchical convolutional features for visual tracking [C]// ICCV, 2015.

值得一提的還有Chao Ma的HCF,結合多層卷積特徵提升效果,用了VGG19的Conv5-4, Conv4-4和Conv3-4的激活值作為特徵,所有特徵都縮放到圖像塊解析度,雖然按照論文應該是由粗到細確定目標,但代碼中比較直接,三種卷積層的響應以固定權值1, 0.5, 0.02線性加權作為最終響應。雖然用了多層卷積特徵,但沒有關注邊界效應而且線性加權的方式過於簡單,HCF在VOT2016僅排在28名(單層卷積深度特徵的DeepSRDCF是第13名)。

Danelljan M, Robinson A, Khan F S, et al. Beyond correlation filters: Learning continuous convolution operators for visual tracking [C]// ECCV, 2016.

第二減少樣本數量, compact generative model(緊湊的樣本集生成模型),採用Gaussian Mixture Model (GMM)合併相似樣本,建立更具代表性和多樣性的樣本集,需要保存和優化的樣本集數量降到C-COT的1/8。

在SiamFC的基礎上,將相關濾波也作為CNN中的一層,最重要的是cf層的前向傳播和反向傳播公式推導,兩層卷積層的CFNet在GPU上是75FPS,綜合表現並沒有很多驚豔,可能是難以處理CF層的邊界效應吧,持觀望態度。

第九部分:2017年CVPR和ICCV結果

下面是CVPR 2017的目標跟蹤算法結果:可能MD大神想說,一個能打的都沒有!

仿照上面的表格,整理了ICCV 2017的相關論文結果對比ECO:哎,還是一個能打的都沒有!

第十部分:大牛推薦

湊個數,目前相關濾波方向貢獻最多的是以下兩個組(有創新有代碼):

牛津大學:Joao F. Henriques和Luca Bertinetto,代表:CSK, KCF/DCF, Staple, CFNet (其他SiamFC, Learnet).

林雪平大學:Martin Danelljan,代表:CN, DSST, SRDCF, DeepSRDCF, SRDCFdecon, C-COT, ECO.

國內也有很多高校的優秀工作就不一一列舉了。

深圳辰視智能科技有限公司是一家集機器視覺、工業智能化於一體的高新技術企業,是由一支中國科學院機器視覺技術研究的精英團隊在深圳創立。

辰視智能擁有基於深度學習的三維視覺引導、機器人運動控制、視覺檢測、三維建模等方面的核心技術,並研發了機器人三維視覺引導系統 、機器人二維視覺引導系統、三維檢測系統、產品外觀檢測系統等可根據客戶需求定製化的智能產品。以高效·低成本·模塊化的方式為自動化集成商、自動化設備廠商、機器人廠家提供機器視覺的相關解決方案。

辰視智能致力於技術的不斷研究、創新、突破,為合作夥伴提供世界領先的機器視覺產品及技術。

相關焦點

  • 計算機視覺中,有哪些比較好的目標跟蹤算法?(上)
    《計算機視覺中,目前有哪些經典的目標跟蹤算法?》相信很多來這裡的人和我第一次到這裡一樣,都是想找一種比較好的目標跟蹤算法,或者想對目標跟蹤這個領域有比較深入的了解,雖然這個問題是經典目標跟蹤算法,但事實上,可能我們並不需要那些曾經輝煌但已被拍在沙灘上的tracker(目標跟蹤算法),而是那些即將成為經典的,或者就目前來說最好用、速度和性能都看的過去tracker。
  • 計算機視覺中,究竟有哪些好用的目標跟蹤算法(下)
    【計算機視覺中,目前有哪些經典的目標跟蹤算法?】上部分內容請查閱計算機視覺中,究竟有哪些好用的目標跟蹤算法(上)五VOT2015競賽 VOT2015 Challenge | Home(http://votchallenge.net/vot2015/) 如期而至,這一年有60個精挑細選的序列,62個tracker,最大看點是深度學習開始進擊tracking,MDNet
  • 計算機視覺方向簡介 | 多視角立體視覺MVS
    儘管MVS與經典立體視覺算法具有相同的原理,但MVS算法旨在處理視角變化更多的圖像,例如圍繞目標拍攝的圖像集,並且還處理甚至數百萬數量的大量圖像。MVS問題的差異最終會產生與經典立體視覺相應功能明顯不同的算法。
  • 【新智元乾貨】計算機視覺必讀:目標跟蹤、圖像分類、人臉識別等
    本文以計算機視覺的重要概念為線索,介紹深度學習在計算機視覺任務中的應用,包括網絡壓縮、細粒度圖像分類、看圖說話、視覺問答、圖像理解、紋理生成和風格遷移、人臉識別、圖像檢索、目標跟蹤等。網絡壓縮(network compression)儘管深度神經網絡取得了優異的性能,但巨大的計算和存儲開銷成為其部署在實際應用中的挑戰。
  • 一文全覽深度學習在計算機視覺領域的應用
    3-D、基於多視角(MVS)/運動(SFM)的重建這部分就是經典的計算機視覺問題:3-D重建。基本上可以分成兩種路徑:一是多視角重建,二是運動重建。前一個有一個經典的方法MVS(multiple view stereo),就是多幀匹配,是雙目匹配的推廣,這樣採用CNN來解決也合理。
  • AR算法原理及深度學習在計算機視覺中的應用
    去年以來,越來越多的AR技術被用在各大網際網路公司APP的營銷場景中,其中最多的便是AR識別和追蹤。
  • 臉書開源Detectron計算機視覺算法
    【網易智能訊 1月26日消息】Facebook本周宣布Detectron開放原始碼正式向大眾公開,該項目也是Facebook基於深度學習框架進行設計的關於計算機視覺對象檢測算法平臺。該公司表示,開放該項目的動機是加速計算機視覺研究,並且Facebook公司內部團隊正在使用該代碼進行各種應用測試,其中就包括針對增強現實技術的研究。
  • 基於機器視覺的典型多目標追蹤算法應用實踐
    視頻目標追蹤算法是機器視覺中一項很實用重要的算法,視頻目標追蹤算法應用場景很廣,比如智能監控、機器人視覺系統、虛擬實境(人體跟蹤)、醫學診斷(細胞狀態跟蹤)等。本文由滴普科技2048團隊AI產品部算法工程師朱曉麗介紹基於機器視覺的典型多目標追蹤算法應用實踐。
  • 移動機器人的幾種視覺算法 | 雷鋒網公開課
    因此在光路中加上IR濾光片,是為了去除太陽光線中紅外光對CMOS的幹擾。加上濾光片後,通常圖像的對比度會得到顯著的提升。Q:計算機視覺中還會用到什麼傳感器?除了RGB相機,計算機視覺中常用的還有其他種類的特殊相機。例如有一種相機的濾光片是只允許通過紅外光波段的。
  • 滴普技術薈:基於機器視覺的典型多目標追蹤算法應用實踐
    視頻目標追蹤算法是機器視覺中一項很實用重要的算法,視頻目標追蹤算法應用場景很廣,比如智能監控、機器人視覺系統、虛擬實境(人體跟蹤)、醫學診斷(細胞狀態跟蹤)等。本文由滴普科技2048團隊AI產品部算法工程師朱曉麗介紹基於機器視覺的典型多目標追蹤算法應用實踐。
  • 怎樣在樹莓派上輕鬆實現深度學習目標檢測?
    翻譯 | 小哥哥  狒狒      校對 | 老趙     整理 | 凡江這個現實世界造成了很多挑戰,比如數據有限、只有微型的計算機硬體(像手機、樹莓派)所造成的無法運行複雜深度學習模型等。這篇文章演示了如何使用樹莓派來進行目標檢測。就像路上行駛的汽車,冰箱裡的橘子,文件上的籤名和太空中的特斯拉。
  • 加速AR對象分類,Facebook開源計算機視覺算法Detectron
    文章相關引用及參考:roadtovrFacebook今天正式開源基於深度學習框架的計算機視覺對象檢測算法平臺Detectron(映維網 2018年01月24日>)Facebook今天正式開源基於深度學習框架的計算機視覺對象檢測算法平臺Detectron。
  • 大華股份AI視頻跟蹤算法榮獲VOT2020國際競賽冠軍
    從美通社獲知,近日,由計算機視覺會議ECCV聯合舉辦的視覺目標跟蹤國際競賽VOT2020落下帷幕,大華股份基於AI的RPT視覺跟蹤算法憑藉優異的評測成績,從全球知名企業、高校研究所共37支團隊中脫穎而出,奪得VOT2020 challenge主賽道,(VOT-ST2020 Winner),取得標誌性突破,彰顯了大華在視覺目標跟蹤領域深厚的技術積澱
  • 視覺感知-從人類視覺到計算機視覺
    人們可以從少量信息中獲取相關環境的大量信息。例如給定一幅圖像,我們可以利用上下文和先驗知識得知整個故事。 但是,使計算機感知視覺世界有多困難?截至2019年,我們才取得了一定進展,但依舊還有很長的路要走。計算機視覺是計算機科學的一個相對較新的領域,大約有60年的歷史。
  • 加速AR對象分類 Facebook開源計算機視覺算法Detectron
    Facebook今天正式開源基於深度學習框架的計算機視覺對象檢測算法平臺Detectron。Facebook表示,開源項目是為了加速計算機視覺的研究。目前Facebook內部團隊正把Detectron平臺用於一系列的研究,比如增強現實。
  • 盤點中國十大計算機視覺公司
    本文引用地址:http://www.eepw.com.cn/article/201608/296294.htm  計算機視覺與機器視覺  計算機視覺是一門研究如何使機器「看」的科學,更進一步的說,就是是指用攝影機和電腦代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖形處理,使電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像
  • 王棟:著力目標追蹤,打造數位化獵鷹
    通過深入挖掘深度神經網絡的局部結構,提出局部敏感回歸跟蹤算法,在國際標準測評VOT2017公開數據集上獲得第一名。而後他們更是提出了聯合判決性和可靠性學習的相關濾波跟蹤算法,進一步提升了跟蹤算法的精度,在國際標準測評OTB2015和VOT2017均取得當時最高精度。王棟及其團隊在深度視覺跟蹤方面的最新進展和突破為之後的多項關於目標跟蹤方面的國家及省部級研究課題奠定了堅實基礎。
  • 無需標註數據集,自監督注意力機制就能搞定目標跟蹤
    想要了解什麼是自監督注意力機制,我們可能需要先去了解什麼是光流估計(optical flow estimation),以及它為何被人類和計算機視覺系統作為一種目標跟蹤方法。一般來說,嬰兒在 2 至 3 個月大的早期階段就具有目標跟蹤的本能。然而,從神經生理學的層面上講,人類視覺系統的實際工作機制仍然有些模糊。
  • 反思深度學習與傳統計算機視覺的關係
    如今,深度學習在眾多領域都有一席之地,尤其是在計算機視覺領域。大量有關深度學習的成功或失敗事例給我們上了寶貴的一課,教會我們正確處理數據。在這篇文章中,我們將深入剖析深度學習的潛力,深度學習與經典計算機視覺的關係,以及深度學習用於關鍵應用程式的潛在危險。視覺問題的簡單與複雜首先,我們需要就視覺/計算機視覺問題提出一些看法。
  • 計算機視覺及智能影像行業深度研究報告
    ——感知智能和認知智能,通過兩大能力,計算機將 感知到圖像中包括哪些物體、人、物,並識別表達。  能力 1 ——感知智能:圖像中有什麼  感知能力既通過方法,機器可知道影像中有什麼,主要是局部像素分類及識別,如物體和人的識別、 分類、定位等。以下圖為例,計算機視覺的感知智能即為識別出圖像中包括了狗、貓、花朵、籃子、 綠葉這些物體。