今年CVPR有一篇亮眼的視覺(jué)跟蹤方面的論文,作者提出新算法SiamMask,在視頻跟蹤任務(wù)上達(dá)到最優(yōu)性能,并且在視頻目標(biāo)分割上取得了當(dāng)前最快的速度。作者來(lái)自中科院自動(dòng)化所、牛津大學(xué)等,本文帶來(lái)一作自動(dòng)化所王強(qiáng)的解讀。
今年的 CVPR 的結(jié)果已經(jīng)完全公布,我參與的兩篇文章SiamMask和SiamRPN++均被接收。遺憾的是 SiamMask 最終并沒(méi)有被 reviewer 認(rèn)可,只取得了 poster。
SiamMask 的測(cè)試代碼:foolwood/SiamMask
視頻跟蹤經(jīng)典工作
在兩年前,當(dāng)我們提起視覺(jué)跟蹤(Visual Tracking),我們的腦海里總是灌滿了相關(guān)濾波(KCF,SRDCF,CF2,CCOT,ECO... 等等經(jīng)典工作在我的腦海里飄蕩)。如果給這個(gè)時(shí)代截取一篇最經(jīng)典的工作,我想我會(huì)選擇 KCF。他是真的將視覺(jué)跟蹤推向流行,讓整個(gè)領(lǐng)域真的沸騰起來(lái)的工作。如果現(xiàn)在來(lái)分析他之所以能統(tǒng)治跟蹤領(lǐng)域的原因,我覺(jué)得主要是兩點(diǎn):足夠高效 + 開(kāi)源。高效到只需要 10 行以內(nèi)的代碼就可以實(shí)現(xiàn)核心計(jì)算,隨便一個(gè) CPU 就可以跑到 200FPS 以上。這極大程度上拉低了視覺(jué)跟蹤領(lǐng)域的門(mén)檻,讓所有人很容易進(jìn)入這個(gè)領(lǐng)域。開(kāi)源,這個(gè)詞匯現(xiàn)在看已經(jīng)是土的不能再土的詞匯。真的做起來(lái)卻也存在很多阻力。
當(dāng)然,除了懷舊以外。我們也會(huì)經(jīng)常反思甚至有些詫異,似乎視覺(jué)跟蹤和整個(gè) CV 大領(lǐng)域走到了不同的方向,深度學(xué)習(xí)在跟蹤領(lǐng)域并沒(méi)有得到什么用武之地。當(dāng)然,所有新的方向的產(chǎn)生大都遵循著量變到質(zhì)變的基本原則。下圖可以看到到 CVPR2018 時(shí)候的時(shí)間跟蹤發(fā)展,相關(guān)濾波的發(fā)展已經(jīng)經(jīng)過(guò)了幾代迭代,深度學(xué)習(xí)方向也在不斷積攢(廣度高而深度淺)。大家都在嘗試可行的方向。目前來(lái)看,應(yīng)該是以 SiamFC 為代表的 Siamese Tracker 脫穎而出。
視覺(jué)跟蹤在 CVPR2018 時(shí)的發(fā)展分布
而 Siamese 網(wǎng)絡(luò)的概念應(yīng)用于目標(biāo)跟蹤的源頭應(yīng)該從 SINT 這篇文章開(kāi)始,但真正開(kāi)始流行卻是從 SiamFC 開(kāi)始。簡(jiǎn)潔優(yōu)雅的框架讓它得變得流行,像極了上一波的 KCF。
有關(guān) SiamFC 的討論可以見(jiàn)上一篇:Qiang Wang:CVPR2018 視覺(jué)跟蹤 (RASNet)
https://zhuanlan.zhihu.com/p/34222060
SiamMask:視頻跟蹤到底是跟蹤什么
Motivation:視頻跟蹤到底是跟蹤什么?
長(zhǎng)久以來(lái),我們的思維傾向于陷入舒適區(qū)。當(dāng) A 做了物體檢測(cè),我們嘗試改網(wǎng)絡(luò),改 loss,別的領(lǐng)域 trick 拿來(lái)就是一篇。而我們常常忽略了更為重要的問(wèn)題,到底這個(gè)問(wèn)題的該如何定義,這點(diǎn)極為重要。
對(duì)于目標(biāo)跟蹤而言,一般論文開(kāi)篇通常都會(huì)說(shuō)在第一幀給定目標(biāo)位置,在后續(xù)幀中預(yù)測(cè)目標(biāo)的位置。然而如何對(duì)后續(xù)幀中表述的定義直接影響了整個(gè)跟蹤領(lǐng)域的發(fā)展。
為了方便表述,早期的跟蹤算法都是坐標(biāo)軸對(duì)齊的的矩形框。但隨著跟蹤精度的不斷提升,數(shù)據(jù)集的難度在不斷提升,在 VOT2015 時(shí)即提出使用旋轉(zhuǎn)矩形框來(lái)作為標(biāo)記。在 VOT2016 的時(shí)候提出自動(dòng)的通過(guò) mask 來(lái)生成旋轉(zhuǎn)框的方法。更為本質(zhì)的,我們會(huì)發(fā)現(xiàn),這個(gè)旋轉(zhuǎn)的矩形框?qū)嶋H上就是 mask 的一種近似。我們所要預(yù)測(cè)的實(shí)際上就是目標(biāo)物體的 mask。利用 mask 才能得到精度本身的上界。
我自己將 2013 年以后的跟蹤分為幾類(lèi),第一類(lèi)是預(yù)測(cè) score 的方法,這類(lèi)算法以相關(guān)濾波和 SiameFC 為代表。通過(guò)預(yù)測(cè)候選區(qū)域的score map來(lái)得到物體的位置,物體的尺度大小通常是通過(guò)圖像金字塔得到。同時(shí)無(wú)法得到物體的長(zhǎng)寬比變化。
第二類(lèi)就是以 GOTURN 和 SiamRPN 為代表的做 boundingbox regression 的方法。這也是 SiamRPN 取得當(dāng)前最好結(jié)果的核心所在,充分挖取精度方向的紅利。實(shí)際上并不是 SiamRPN 預(yù)測(cè)的有多穩(wěn)定,而是在預(yù)測(cè)正確的時(shí)候,會(huì)給出更為精確的 box。利用網(wǎng)絡(luò)預(yù)測(cè)長(zhǎng)寬比可以調(diào)整 box,這個(gè)方向一直以來(lái)被大家所忽視,所以 SiamRPN 很快殺出重圍。
而在物體發(fā)生旋轉(zhuǎn)的時(shí)候,簡(jiǎn)單的 box 的表述通常會(huì)產(chǎn)生極大的損失,這實(shí)際上就是表述本身存在的缺陷。而為了進(jìn)一步探索在精度上存在的問(wèn)題。我們更進(jìn)一步,直接預(yù)測(cè)物體的 mask。這種表述使得我們可以得到最為準(zhǔn)確的 box。最直觀的利用一個(gè)簡(jiǎn)單的事例的可視化就可以看出,這三種算法的區(qū)別(左中右分別是SiamFC | SiamRPN |SiamMask)。
同時(shí),對(duì)于視頻目標(biāo)分割(VOS)領(lǐng)域,之前普遍流行的算法是利用語(yǔ)義分割網(wǎng)絡(luò)在線進(jìn)行一個(gè)二分類(lèi)的訓(xùn)練,然后再后續(xù)幀進(jìn)行預(yù)測(cè)。這種方法在訓(xùn)練過(guò)程中一般都會(huì)花費(fèi)數(shù)分鐘,給人一種電腦假死的感覺(jué)。最近越來(lái)越多的不需要在線 finetune 的算法被提出。但其速度仍然無(wú)法到達(dá)令人滿意的狀態(tài),例如 FAVOS 和 OSMN 分別需要 1s / 幀,120ms / 幀。這距離真正的實(shí)時(shí)運(yùn)行還是有一定差異。另一方面,VOS 算法的第一幀需要給定目標(biāo)的 mask,這在人機(jī)交互的場(chǎng)景中很難時(shí)間,這個(gè) mask 獲取成本過(guò)高。
所以我們提出了對(duì)視覺(jué)目標(biāo)跟蹤(VOT)和視頻目標(biāo)分割(VOS)的統(tǒng)一框架 SiamMask。我們將初始化簡(jiǎn)化為視頻跟蹤的 box 輸入即可,同時(shí)得到 box 和 mask 兩個(gè)輸出。
具體實(shí)現(xiàn)
當(dāng)有了上述的 motivation 之后,具體實(shí)現(xiàn)非常簡(jiǎn)單,只需要在 siamese 網(wǎng)絡(luò)架構(gòu)中額外增加一個(gè) Mask 分支即可。
但是相較于預(yù)測(cè) score 和 box,mask 的預(yù)測(cè)會(huì)更為困難。我們這里使用的表述方法,是利用一個(gè) vector 來(lái)編碼一個(gè) RoW 的 mask。這使得每個(gè) prediction 位置具有非常高的輸出維度(63*63), 我們通過(guò) depthwise 的卷積后級(jí)聯(lián) 1x1 卷積來(lái)升維來(lái)實(shí)現(xiàn)高效運(yùn)行。這樣即構(gòu)成了我們的主要模型框架。
但直接預(yù)測(cè)的 Mask 分支的精度并不太高。所以提出了如下圖所示的Refine Module用來(lái)提升分割的精度,refine module 采用 top-down 的結(jié)構(gòu)。
這一部分借鑒了 SharpMask 的思路。deepmask 和 sharpmask 是 facebook 在 2015-2016 年提出的物體分割 proposal 框架。我進(jìn)行了一個(gè)重現(xiàn)foolwood/deepmask-pytorch。
https://github.com/foolwood/deepmask-pytorch
實(shí)驗(yàn)結(jié)果
對(duì)照實(shí)驗(yàn)(ablation study)結(jié)果方面,我們首先通過(guò)實(shí)驗(yàn)分析驗(yàn)證了所提出的 Mask 的輸出表達(dá)對(duì)于跟蹤問(wèn)題的貢獻(xiàn)。通過(guò)進(jìn)行 Oracle 實(shí)驗(yàn)分析,可以明確得出,旋轉(zhuǎn)矩形框的平均 IoU 會(huì)遠(yuǎn)好于只預(yù)測(cè)坐標(biāo)軸對(duì)齊的矩形框。尤其是在更高的 IoU 閾值下,旋轉(zhuǎn)矩形框的優(yōu)勢(shì)更為明顯。當(dāng)對(duì)比 SiamFC,SiamRPN 的時(shí)候,SiamMask 對(duì)于整體的精度提升非常顯著。對(duì)于輸出 mask 轉(zhuǎn)換為 box,有多重選擇,我們使用了較為容易生成的最小外包矩形(MBR)。按照 VOT 的優(yōu)化方式生成的框的質(zhì)量會(huì)更高,但按照優(yōu)化算法生成太慢。如果有編碼好的同學(xué)可以把這個(gè)加速,我相信我們算法的精度至少可以再提升一個(gè)百分點(diǎn),非常歡迎嘗試之后在我們的 github 上提 Pull Requests。
優(yōu)化的 box 的 matlab:http://cmp.felk.cvut.cz/~vojirtom/dataset/votseg/data/optimize_bboxes.m
在視頻跟蹤領(lǐng)域(VOT),VOT2016 和 VOT2018 數(shù)據(jù)集上的性能,我們的方法已經(jīng)到達(dá)到SOTA 的結(jié)果,同時(shí)保持了 55fps 的超實(shí)時(shí)的性能表現(xiàn)。
在視頻目標(biāo)分割領(lǐng)域(VOS),我們?nèi)〉昧水?dāng)前最快的速度。在 DAVIS2017 和 Youtube-VOS 上,我們和最近發(fā)表的較為快速的算法對(duì)比,我們的算法可以取得可比較的分割精度,同時(shí)速度快了近一個(gè)數(shù)量級(jí)。對(duì)比經(jīng)典的 OSVOS,我們的算法快了近三個(gè)數(shù)量級(jí),使得視頻目標(biāo)分割可以得到實(shí)際使用。
此外,我們需要強(qiáng)調(diào)的是,視頻分割任務(wù)目前的視頻片段都較短,我們的 decay 要遠(yuǎn)小于其他算法,這意味著在更長(zhǎng)的視頻片段中,我們的算法性能會(huì)保持的更好。
Adobe MAX 2018 FastMask 項(xiàng)目
我也使用 SiamMask 做了一個(gè)類(lèi)似的項(xiàng)目,當(dāng)然精度上和 Adobe 的 FastMask 肯定存在差距。但我們的方法可以很容易的生成一些表情包或者 b 站的智能防擋彈幕。
CVPR2019 跟蹤領(lǐng)域發(fā)展
從今年接收的文章已經(jīng)可以明顯看出來(lái),跟蹤領(lǐng)域已經(jīng)基本完成換代更新。接收的文章中 Siamese 網(wǎng)絡(luò)的改進(jìn)工作已經(jīng)占據(jù)了主導(dǎo)的地位。
SiamRPN++,CIR兩篇都是圍繞如何使用深度網(wǎng)絡(luò)主干這個(gè)問(wèn)題,兩篇文章都中了 oral。這個(gè)問(wèn)題一直困擾著整個(gè)跟蹤圈子,在此之前的所有工作都采用的是 alexnet 為主的網(wǎng)絡(luò)架構(gòu)。不能使用現(xiàn)代網(wǎng)絡(luò)架構(gòu)一直困擾著整個(gè)跟蹤領(lǐng)域的發(fā)展。SiamRPN++ 通過(guò)數(shù)據(jù)增強(qiáng)的方法解決訓(xùn)練的空間位置偏見(jiàn)。CIR 通過(guò) crop 操作從網(wǎng)絡(luò)架構(gòu)上減弱網(wǎng)絡(luò) padding 帶來(lái)的學(xué)習(xí)偏見(jiàn),通過(guò)大量的實(shí)驗(yàn)分析了感受野等因素對(duì)學(xué)習(xí)的影響??偟膩?lái)說(shuō),當(dāng)網(wǎng)絡(luò)問(wèn)題被解決了之后直接導(dǎo)致了現(xiàn)在在幾乎所有的數(shù)據(jù)集上,SiamRPN++ 已經(jīng)超過(guò)了相關(guān)濾波的方法。
在 SiamRPN++ 的基礎(chǔ)上,網(wǎng)絡(luò)主干問(wèn)題已經(jīng)被解決,我們可以做更多方向的探索。我們可以非常簡(jiǎn)單的讓輸出做更復(fù)雜的預(yù)測(cè),這就催生了SiamMask這篇文章。
SPM和C-RPN兩篇都算是多階段的 SiamRPN 擴(kuò)展。SPM 就是典型的 faster-RCNN 的思路做跟蹤,只是最后的 score fusion 的方式可以再優(yōu)雅一些。C-RPN 當(dāng)然就是Cascade R-CNN: Delving into High Quality Object Detection在跟蹤領(lǐng)域的翻版。兩者的思路都很直接,通過(guò)第二 / N 階段來(lái)學(xué)習(xí)更精細(xì)的判別。
Martin Danelljan大神的ATOM: Accurate Tracking by Overlap Maximization這篇肯定也是重量級(jí)的文章。Martin 大神并沒(méi)有 fellow SiamRPN 的架構(gòu),轉(zhuǎn)而使用粒子濾波采樣搭配 IoU 預(yù)測(cè),多次迭代得到目標(biāo)結(jié)果。在多個(gè)庫(kù)上取得了非常驚人的結(jié)果。這項(xiàng)工作我覺(jué)得最突破的點(diǎn)是網(wǎng)絡(luò)學(xué)習(xí)的問(wèn)題實(shí)際上更 hard,更符合跟蹤的需求。
LaSOT這個(gè)測(cè)評(píng)集的接收也是常規(guī)操作。希望各位大佬能繼續(xù)維護(hù)好這個(gè)庫(kù)。最近跟蹤的數(shù)據(jù)庫(kù)相當(dāng)多,人們都意識(shí)到之前的數(shù)據(jù)已經(jīng)無(wú)法滿足深度學(xué)習(xí)的跟蹤算法。
關(guān)于 Siamese Tracking 的未來(lái)研究方向
當(dāng)你閱讀了一定的文章以及有現(xiàn)成的代碼之后,下面當(dāng)然是如何著手改進(jìn)。我自己總結(jié)了一些小的可以改進(jìn)的方向,僅供參考。
1)高效的在線學(xué)習(xí)算法:進(jìn)展到目前為止,我的所有實(shí)驗(yàn)研究表明。Siamese 網(wǎng)絡(luò)無(wú)法真正意義上抑制背景中的困難樣本。離線的學(xué)習(xí)從本質(zhì)上無(wú)法區(qū)分兩個(gè)長(zhǎng)相相似的人或者車(chē)。而 CF 相關(guān)算法可以通過(guò)分析整個(gè)環(huán)境的上下文關(guān)系來(lái)進(jìn)行調(diào)整。如果對(duì)于提升整個(gè)算法的上界(偏學(xué)術(shù))的角度考慮,在線學(xué)習(xí)有必要。如果正常的工程使用,我認(rèn)為目前的算法只要在相應(yīng)的場(chǎng)景中進(jìn)行訓(xùn)練就足夠了。
2)精確輸出表達(dá):今年我們的工作提出額外的 mask 輸出??芍苯訑U(kuò)展的思路為關(guān)鍵點(diǎn)輸出(CornerNet / PoseTrack),極點(diǎn)預(yù)測(cè)(ExtremeNet),甚至 6D pose 跟蹤。本質(zhì)上是通過(guò)網(wǎng)絡(luò)可以預(yù)測(cè)任何與目標(biāo)相關(guān)的輸出。大家可以任意的發(fā)散思維。
3)定制網(wǎng)絡(luò)架構(gòu):其中包含兩個(gè)子方向,一個(gè)是追求精度的去探索究竟什么樣的網(wǎng)絡(luò)架構(gòu)會(huì)有利于當(dāng)前的跟蹤框架的學(xué)習(xí)。另一個(gè)有價(jià)值的子方向是如何構(gòu)建超快速的小網(wǎng)絡(luò)用于實(shí)際工程。工程項(xiàng)目中有時(shí)并沒(méi)有 GPU 的資源供使用,如何提供 “廉價(jià)” 的高質(zhì)量跟蹤算法也具有很強(qiáng)的實(shí)際意義。當(dāng)對(duì)網(wǎng)絡(luò)進(jìn)行裁剪之后,很容易達(dá)到 500FPS 的高性能算法來(lái)對(duì)傳統(tǒng)的 KCF 進(jìn)行真正的替換。
4)離線訓(xùn)練學(xué)習(xí)優(yōu)化:目前的跟蹤算法在相似性學(xué)習(xí)方向還是過(guò)于簡(jiǎn)單,如果去設(shè)計(jì)更為有效的度量學(xué)習(xí)方案,應(yīng)該會(huì)有一定的提升。同時(shí)我們也并沒(méi)有很好的掌握網(wǎng)絡(luò)的訓(xùn)練。當(dāng)前的訓(xùn)練策略是將網(wǎng)絡(luò)主干的參數(shù)進(jìn)行固定,先訓(xùn)練 head。然后逐步放開(kāi)。實(shí)際上我們發(fā)現(xiàn),當(dāng)直接將所有層全部放開(kāi)一起訓(xùn)練的時(shí)候,網(wǎng)絡(luò)的泛化性能會(huì)顯著下降。另一個(gè)方面,train from scratch 的概念已經(jīng)在檢測(cè)領(lǐng)域非常普遍了。跟蹤的網(wǎng)絡(luò)目前我們的經(jīng)驗(yàn)在跟蹤方面并不 work。
5)更細(xì)粒度預(yù)測(cè):這一條實(shí)際上是上一條的續(xù)集,就是專(zhuān)注于 score 分支的預(yù)測(cè)?,F(xiàn)在大家的做法是 > 0.6 IoU 的都當(dāng)做前景(正樣本),但實(shí)際上正樣本之間還是有較大的差異的。跟蹤本質(zhì)上也是不斷預(yù)測(cè)一個(gè)非常細(xì)小物體幀間運(yùn)動(dòng)的過(guò)程,如果一個(gè)網(wǎng)絡(luò)不能很好的分辨細(xì)小的差異,他可能并不是一個(gè)最優(yōu)的設(shè)計(jì)選擇。這也是 ATOM 的 IoUNet 主攻的方向。
6)泛化性能提升:非常推薦自動(dòng)化所黃凱奇老師組的GOT-10k數(shù)據(jù)集,數(shù)據(jù)組織的非常棒。黃老師組在 one-shot learning 領(lǐng)域有著深厚的積淀,所以站在這個(gè)領(lǐng)域的角度,他們提出了嚴(yán)格分離訓(xùn)練集和測(cè)試集的物體類(lèi)別來(lái)驗(yàn)證泛化性能。所以原則上所有 one-shot learning 方向的一些嵌入學(xué)習(xí)方法都可以移過(guò)來(lái)用。同時(shí),我覺(jué)得 Mask-X-RCNN,segment everything 這個(gè)思路可以借鑒。本質(zhì)上我也不得不承認(rèn),基于深度學(xué)習(xí)的跟蹤算法存在泛化性能問(wèn)題。我們有理由懷疑跟蹤是否會(huì)在未知的類(lèi)別上有較好的泛化性能,實(shí)際上肯定是會(huì)下降。
7)long-term 跟蹤框架:截止到目前為止,雖然 VOT 組委會(huì)以及牛津這邊的 OxUVA 都有專(zhuān)門(mén)的 long-term 的數(shù)據(jù)集,但 long-term 算法并沒(méi)有一個(gè)較好的統(tǒng)一框架出來(lái)。關(guān)于這方面的研究似乎有點(diǎn)停滯,今年大連理工的文章非常可惜,我覺(jué)得質(zhì)量非常不錯(cuò)。
-
自動(dòng)化
+關(guān)注
關(guān)注
28文章
5436瀏覽量
78902 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1199瀏覽量
24592 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5439瀏覽量
120794
原文標(biāo)題:CVPR 2019:中科院、牛津等提出SiamMask網(wǎng)絡(luò),視頻跟蹤最高精度
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論