SiamMask:视频跟踪最高精度 (中科院王强大神作品)
論文水平:CVPR 2019??https://arxiv.org/pdf/1812.05050.pdf
測試代碼:https://github.com/foolwood/SiamMask
跟蹤算法近年的發(fā)展(中科院王強博士維護)。?相關(guān)濾波的發(fā)展已經(jīng)經(jīng)過了幾代迭代,發(fā)展到了瓶頸期。深度學(xué)習(xí)應(yīng)該是以 SiamFC 為代表的 Siamese Tracker 脫穎而出。
?1. 背景
今年CVPR有一篇亮眼的視覺跟蹤方面的論文,作者提出新算法SiamMask,在視頻跟蹤任務(wù)上達到最優(yōu)性能,并且在視頻目標分割上取得了當前最快的速度。
此篇文章一出,基本就是一個細分領(lǐng)域的終結(jié)。所有做單目標、短視頻追蹤的同學(xué)要么早點畢業(yè),要么盡快轉(zhuǎn)方向...如多目標跟蹤問題、長時間穩(wěn)定跟蹤、3D目標實時跟蹤、6D姿態(tài)跟蹤。或者是在子領(lǐng)域做出卓有建樹的工作,如筆者從事計算機輔助導(dǎo)航中的2D/3D/4D超聲視頻跟蹤,融合了復(fù)雜樣本、奇異分布、多目標標聯(lián)合、長時間跟蹤(15-25min)難題。
在兩年前,當我們提起視覺跟蹤(Visual Tracking),我們的腦海里總是灌滿了相關(guān)濾波(KCF,SRDCF,CF2,CCOT,ECO... 等等經(jīng)典工作在我的腦海里飄蕩)。如果給這個時代截取一篇最經(jīng)典的工作,我想我會選擇 KCF。他是真的將視覺跟蹤推向流行,讓整個領(lǐng)域真的沸騰起來的工作。如果現(xiàn)在來分析他之所以能統(tǒng)治跟蹤領(lǐng)域的原因,我覺得主要是兩點:足夠高效 + 開源。高效到只需要 10 行以內(nèi)的代碼就可以實現(xiàn)核心計算,隨便一個 CPU 就可以跑到 200FPS 以上。這極大程度上拉低了視覺跟蹤領(lǐng)域的門檻,讓所有人很容易進入這個領(lǐng)域。
當然,除了懷舊以外。我們也會經(jīng)常反思甚至有些詫異,似乎視覺跟蹤和整個 CV 大領(lǐng)域走到了不同的方向,深度學(xué)習(xí)在跟蹤領(lǐng)域并沒有得到什么用武之地。當然,所有新的方向的產(chǎn)生大都遵循著量變到質(zhì)變的基本原則。
?2. SiamMask算法創(chuàng)新與結(jié)構(gòu)
跟蹤分割結(jié)果(恐怕難以突破了) 跟蹤實例Siamese 網(wǎng)絡(luò)的概念應(yīng)用于目標跟蹤的源頭應(yīng)該從 SINT 這篇文章開始,但真正開始流行卻是從 SiamFC 開始。簡潔優(yōu)雅的框架讓它得變得流行,像極了上一波的 KCF。
而SiamMask像極了結(jié)合SiameseFC和MaskCNN的優(yōu)勢,所以取得了最佳跟蹤結(jié)果令很多學(xué)術(shù)界人士感覺在情理之中。
- 視頻跟蹤到底是跟蹤什么?
長久以來,我們的思維傾向于陷入舒適區(qū)。當 A 做了物體檢測,我們嘗試改網(wǎng)絡(luò),改 loss,別的領(lǐng)域 trick 拿來就是一篇。而我們常常忽略了更為重要的問題,到底這個問題的該如何定義,這點極為重要。
對于目標跟蹤而言,一般論文開篇通常都會說在第一幀給定目標位置,在后續(xù)幀中預(yù)測目標的位置。然而如何對后續(xù)幀中表述的定義直接影響了整個跟蹤領(lǐng)域的發(fā)展。
為了方便表述,早期的跟蹤算法都是坐標軸對齊的的矩形框。但隨著跟蹤精度的不斷提升,數(shù)據(jù)集的難度在不斷提升,在 VOT2015 時即提出使用旋轉(zhuǎn)矩形框來作為標記。在 VOT2016 的時候提出自動的通過 mask 來生成旋轉(zhuǎn)框的方法。更為本質(zhì)的,我們會發(fā)現(xiàn),這個旋轉(zhuǎn)的矩形框?qū)嶋H上就是 mask 的一種近似。我們所要預(yù)測的實際上就是目標物體的 mask。利用 mask 才能得到精度本身的上界。
mask生成以及矩形近似視頻跟蹤算法有兩類代表:
第一類是預(yù)測score的方法,這類算法以相關(guān)濾波和SiameFC為代表。通過預(yù)測候選區(qū)域的score map來得到物體的位置,物體的尺度大小通常是通過圖像金字塔得到。同時無法得到物體的長寬比變化。
第二類就是以GOTURN和SiamRPN為代表的做boundingbox regression的方法。這也是SiamRPN取得當前最好結(jié)果的核心所在,充分挖取精度方向的紅利。實際上并不是SiamRPN預(yù)測的有多穩(wěn)定,而是在預(yù)測正確的時候,會給出更為精確的box。利用網(wǎng)絡(luò)預(yù)測長寬比可以調(diào)整box,這個方向一直以來被大家所忽視,所以SiamRPN很快殺出重圍。
而在物體發(fā)生旋轉(zhuǎn)的時候,簡單的box的表述通常會產(chǎn)生極大的損失,這實際上就是表述本身存在的缺陷。而為了進一步探索在精度上存在的問題。更進一步,直接預(yù)測物體的mask。這種表述使得我們可以得到最為準確的box。最直觀的利用一個簡單的事例的可視化就可以看出,這三種算法的區(qū)別。
左中右分別是SiamFC | SiamRPN |?SiamMask同時,對于視頻目標分割(VOS)領(lǐng)域,之前普遍流行的算法是利用語義分割網(wǎng)絡(luò)在線進行一個二分類的訓(xùn)練,然后再后續(xù)幀進行預(yù)測。這種方法在訓(xùn)練過程中一般都會花費數(shù)分鐘,給人一種電腦假死的感覺。最近越來越多的不需要在線finetune的算法被提出。但其速度仍然無法到達令人滿意的狀態(tài),例如FAVOS和OSMN分別需要1s/幀,120ms/幀。這距離真正的實時運行還是有一定差異。另一方面,VOS算法的第一幀需要給定目標的mask,這在人機交互的場景中很難時間,這個mask獲取成本過高。
所以王強博士提出了對視覺目標跟蹤(VOT)和視頻目標分割(VOS)的統(tǒng)一框架SiamMask。我們將初始化簡化為視頻跟蹤的box輸入即可,同時得到box和mask兩個輸出。
視覺目標跟蹤 、 視頻目標分割 統(tǒng)一框架- 具體實現(xiàn)
但是相較于預(yù)測score和box,mask的預(yù)測會更為困難。這里使用的表述方法,是利用一個vector來編碼一個RoW的mask。這使得每個prediction位置具有非常高的輸出維度(63*63), 通過depthwise的卷積后級聯(lián)1x1卷積來升維來實現(xiàn)高效運行。這樣即構(gòu)成了主要模型框架。
但直接預(yù)測的Mask分支的精度并不太高。所以提出了如下圖所示的Refine Module用來提升分割的精度,refine module采用top-down的結(jié)構(gòu)。
- 關(guān)于Siamese Tracking 的未來研究方向(free ideas)
1)高效的在線學(xué)習(xí)算法:進展到目前為止,所有實驗研究表明。Siamese網(wǎng)絡(luò)無法真正意義上抑制背景中的困難樣本。離線的學(xué)習(xí)從本質(zhì)上無法區(qū)分兩個長相相似的人或者車。而CF相關(guān)算法可以通過分析整個環(huán)境的上下文關(guān)系來進行調(diào)整。如果對于提升整個算法的上界(偏學(xué)術(shù))的角度考慮,在線學(xué)習(xí)有必要。如果正常的工程使用,我認為目前的算法只要在相應(yīng)的場景中進行訓(xùn)練就足夠了。
2)精確輸出表達:王強博士的工作提出額外的mask輸出。可直接擴展的思路為關(guān)鍵點輸出(CornerNet / PoseTrack),極點預(yù)測(ExtremeNet),甚至6D pose跟蹤。本質(zhì)上是通過網(wǎng)絡(luò)可以預(yù)測任何與目標相關(guān)的輸出。
3)定制網(wǎng)絡(luò)架構(gòu):其中包含兩個子方向,一個是追求精度的去探索究竟什么樣的網(wǎng)絡(luò)架構(gòu)會有利于當前的跟蹤框架的學(xué)習(xí)。另一個有價值的子方向是如何構(gòu)建超快速的小網(wǎng)絡(luò)用于實際工程。工程項目中有時并沒有GPU的資源供使用,如何提供“廉價”的高質(zhì)量跟蹤算法也具有很強的實際意義。當對網(wǎng)絡(luò)進行裁剪之后,很容易達到500FPS的高性能算法來對傳統(tǒng)的KCF進行真正的替換。
4)離線訓(xùn)練學(xué)習(xí)優(yōu)化:目前的跟蹤算法在相似性學(xué)習(xí)方向還是過于簡單,如果去設(shè)計更為有效的度量學(xué)習(xí)方案,應(yīng)該會有一定的提升。同時我們也并沒有很好的掌握網(wǎng)絡(luò)的訓(xùn)練。當前的訓(xùn)練策略是將網(wǎng)絡(luò)主干的參數(shù)進行固定,先訓(xùn)練head。然后逐步放開。實際上我們發(fā)現(xiàn),當直接將所有層全部放開一起訓(xùn)練的時候,網(wǎng)絡(luò)的泛化性能會顯著下降。另一個方面,train from scratch的概念已經(jīng)在檢測領(lǐng)域非常普遍了。跟蹤的網(wǎng)絡(luò)目前我們的經(jīng)驗在跟蹤方面并不work。
5)更細粒度預(yù)測:這一條實際上是上一條的續(xù)集,就是專注于score分支的預(yù)測。現(xiàn)在大家的做法是>0.6 IoU的都當做前景(正樣本),但實際上正樣本之間還是有較大的差異的。跟蹤本質(zhì)上也是不斷預(yù)測一個非常細小物體幀間運動的過程,如果一個網(wǎng)絡(luò)不能很好的分辨細小的差異,他可能并不是一個最優(yōu)的設(shè)計選擇。這也是ATOM的IoUNet主攻的方向。
6)泛化性能提升:非常推薦自動化所黃凱奇老師組的GOT-10k數(shù)據(jù)集,數(shù)據(jù)組織的非常棒。黃老師組在one-shot learning領(lǐng)域有著深厚的積淀,所以站在這個領(lǐng)域的角度,他們提出了嚴格分離訓(xùn)練集和測試集的物體類別來驗證泛化性能。所以原則上所有one-shot learning方向的一些嵌入學(xué)習(xí)方法都可以移過來用。同時,我覺得Mask-X-RCNN,segment everything這個思路可以借鑒。本質(zhì)上我也不得不承認,基于深度學(xué)習(xí)的跟蹤算法存在泛化性能問題。我們有理由懷疑跟蹤是否會在未知的類別上有較好的泛化性能,實際上肯定是會下降。
7)long-term跟蹤框架:截止到目前為止,雖然VOT組委會以及牛津這邊的OxUVA都有專門的long-term的數(shù)據(jù)集,但long-term算法并沒有一個較好的統(tǒng)一框架出來。關(guān)于這方面的研究似乎有點停滯,今年大連理工的文章非常可惜,我覺得質(zhì)量非常不錯。
3.參考資料
中科院王強博士 :?https://zhuanlan.zhihu.com/p/58154634
總結(jié)
以上是生活随笔為你收集整理的SiamMask:视频跟踪最高精度 (中科院王强大神作品)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC实现 MSN QQ 窗口抖动
- 下一篇: 关于RSS技术 和应用