CVPR 2019:中科院、牛津等提出SiamMask網路,視訊跟蹤最高精度
來源 | 知乎專欄
作者 | 王強,新智元整理編輯
【導讀】今年CVPR有一篇亮眼的視覺跟蹤方面的論文,作者提出新演算法SiamMask,在視訊跟蹤任務上達到最優效能,並且在視訊目標分割上取得了當前最快的速度。作者來自中科院自動化所、牛津大學等,本文帶來一作自動化所王強的解讀。
今年的 CVPR 的結果已經完全公佈,我參與的兩篇文章 SiamMask 和 SiamRPN++ 均被接收。遺憾的是 SiamMask 最終並沒有被 reviewer 認可,只取得了 poster。
SiamMask 的測試程式碼:foolwood/SiamMask
在兩年前,當我們提起視覺跟蹤(Visual Tracking),我們的腦海裡總是灌滿了相關濾波(KCF,SRDCF,CF2,CCOT,ECO... 等等經典工作在我的腦海裡飄蕩)。如果給這個時代擷取一篇最經典的工作,我想我會選擇 KCF。他是真的將視覺跟蹤推向流行,讓整個領域真的沸騰起來的工作。如果現在來分析他之所以能統治跟蹤領域的原因,我覺得主要是兩點:足夠高效 + 開源。高效到只需要 10 行以內的程式碼就可以實現核心計算,隨便一個 CPU 就可以跑到 200FPS 以上。這極大程度上拉低了視覺跟蹤領域的門檻,讓所有人很容易進入這個領域。開源,這個詞彙現在看已經是土的不能再土的詞彙。真的做起來卻也存在很多阻力。
當然,除了懷舊以外。我們也會經常反思甚至有些詫異,似乎視覺跟蹤和整個 CV 大領域走到了不同的方向,深度學習在跟蹤領域並沒有得到什麼用武之地。當然,所有新的方向的產生大都遵循著量變到質變的基本原則。下圖可以看到到 CVPR2018 時候的時間跟蹤發展,相關濾波的發展已經經過了幾代迭代,深度學習方向也在不斷積攢(廣度高而深度淺)。大家都在嘗試可行的方向。目前來看,應該是以 SiamFC 為代表的 Siamese Tracker 脫穎而出。
視覺跟蹤在 CVPR2018 時的發展分佈
而 Siamese 網路的概念應用於目標跟蹤的源頭應該從 SINT 這篇文章開始,但真正開始流行卻是從 SiamFC 開始。簡潔優雅的框架讓它得變得流行,像極了上一波的 KCF。
有關 SiamFC 的討論可以見上一篇:Qiang Wang:CVPR2018 視覺跟蹤 (RASNet)
https://zhuanlan.zhihu.com/p/34222060
Motivation: 視訊跟蹤到底是跟蹤什麼?
長久以來,我們的思維傾向於陷入舒適區。當 A 做了物體檢測,我們嘗試改網路,改 loss,別的領域 trick 拿來就是一篇。而我們常常忽略了更為重要的問題,到底這個問題的該如何定義,這點極為重要。
對於目標跟蹤而言,一般論文開篇通常都會說在第一幀給定目標位置,在後續幀中預測目標的位置。然而如何對後續幀中表述的定義直接影響了整個跟蹤領域的發展。
為了方便表述,早期的跟蹤演算法都是座標軸對齊的的矩形框。但隨著跟蹤精度的不斷提升,資料集的難度在不斷提升,在 VOT2015 時即提出使用旋轉矩形框來作為標記。在 VOT2016 的時候提出自動的通過 mask 來生成旋轉框的方法。更為本質的,我們會發現,這個旋轉的矩形框實際上就是 mask 的一種近似。我們所要預測的實際上就是目標物體的 mask。利用 mask 才能得到精度本身的上界。
我自己將 2013 年以後的跟蹤分為幾類,第一類是預測 score 的方法,這類演算法以相關濾波和 SiameFC 為代表。通過預測候選區域的 score map 來得到物體的位置,物體的尺度大小通常是通過影象金字塔得到。同時無法得到物體的長寬比變化。
第二類就是以 GOTURN 和 SiamRPN 為代表的做 boundingbox regression 的方法。這也是 SiamRPN 取得當前最好結果的核心所在,充分挖取精度方向的紅利。實際上並不是 SiamRPN 預測的有多穩定,而是在預測正確的時候,會給出更為精確的 box。利用網路預測長寬比可以調整 box,這個方向一直以來被大家所忽視,所以 SiamRPN 很快殺出重圍。
而在物體發生旋轉的時候,簡單的 box 的表述通常會產生極大的損失,這實際上就是表述本身存在的缺陷。而為了進一步探索在精度上存在的問題。我們更進一步,直接預測物體的 mask。這種表述使得我們可以得到最為準確的 box。最直觀的利用一個簡單的事例的視覺化就可以看出,這三種演算法的區別(左中右分別是 SiamFC | SiamRPN | SiamMask)。
同時,對於視訊目標分割(VOS)領域,之前普遍流行的演算法是利用語義分割網路線上進行一個二分類的訓練,然後再後續幀進行預測。這種方法在訓練過程中一般都會花費數分鐘,給人一種電腦假死的感覺。最近越來越多的不需要線上 finetune 的演算法被提出。但其速度仍然無法到達令人滿意的狀態,例如 FAVOS 和 OSMN 分別需要 1s / 幀,120ms / 幀。這距離真正的實時執行還是有一定差異。另一方面, VOS 演算法的第一幀需要給定目標的 mask,這在人機互動的場景中很難時間,這個 mask 獲取成本過高。
所以我們提出了對視覺目標跟蹤(VOT)和視訊目標分割(VOS)的統一框架 SiamMask。我們將初始化簡化為視訊跟蹤的 box 輸入即可,同時得到 box 和 mask 兩個輸出。
當有了上述的 motivation 之後,具體實現非常簡單,只需要在 siamese 網路架構中額外增加一個 Mask 分支即可。
但是相較於預測 score 和 box,mask 的預測會更為困難。我們這裡使用的表述方法,是利用一個 vector 來編碼一個 RoW 的 mask。這使得每個 prediction 位置具有非常高的輸出維度(63*63), 我們通過 depthwise 的卷積後級聯 1x1 卷積來升維來實現高效執行。這樣即構成了我們的主要模型框架。
但直接預測的 Mask 分支的精度並不太高。所以提出瞭如下圖所示的 Refine Module 用來提升分割的精度,refine module 採用 top-down 的結構。
這一部分借鑑了 SharpMask 的思路。deepmask 和 sharpmask 是 facebook 在 2015-2016 年提出的物體分割 proposal 框架。我進行了一個重現 foolwood/deepmask-pytorch。
https://github.com/foolwood/deepmask-pytorch
對照實驗(ablation study)結果方面,我們首先通過實驗分析驗證了所提出的 Mask 的輸出表達對於跟蹤問題的貢獻。通過進行 Oracle 實驗分析,可以明確得出,旋轉矩形框的平均 IoU 會遠好於只預測座標軸對齊的矩形框。尤其是在更高的 IoU 閾值下,旋轉矩形框的優勢更為明顯。當對比 SiamFC,SiamRPN 的時候,SiamMask 對於整體的精度提升非常顯著。對於輸出 mask 轉換為 box,有多重選擇,我們使用了較為容易生成的最小外包矩形(MBR)。按照 VOT 的優化方式生成的框的質量會更高,但按照優化演算法生成太慢。如果有編碼好的同學可以把這個加速,我相信我們演算法的精度至少可以再提升一個百分點,非常歡迎嘗試之後在我們的 github 上提 Pull Requests。
優化的 box 的 matlab:http://cmp.felk.cvut.cz/~vojirtom/dataset/votseg/data/optimize_bboxes.m
在視訊跟蹤領域(VOT),VOT2016 和 VOT2018 資料集上的效能,我們的方法已經到達到 SOTA 的結果,同時保持了 55fps 的超實時的效能表現。
在視訊目標分割領域(VOS),我們取得了當前最快的速度。在 DAVIS2017 和 Youtube-VOS 上,我們和最近發表的較為快速的演算法對比,我們的演算法可以取得可比較的分割精度,同時速度快了近一個數量級。對比經典的 OSVOS, 我們的演算法快了近三個數量級,使得視訊目標分割可以得到實際使用。
此外,我們需要強調的是,視訊分割任務目前的視訊片段都較短,我們的 decay 要遠小於其他演算法,這意味著在更長的視訊片段中,我們的演算法效能會保持的更好。
對比上述 VOS 演算法,我們的演算法更易於互動,只需要簡單的畫一個框,就可以實現自動的分割跟蹤:
自動駕駛場景中的視訊跟蹤分割簡單應用:
帶字幕表情包生成
Adobe MAX 2018 FastMask 專案
我也使用 SiamMask 做了一個類似的專案,當然精度上和 Adobe 的 FastMask 肯定存在差距。但我們的方法可以很容易的生成一些表情包或者 b 站的智慧防擋彈幕。
從今年接收的文章已經可以明顯看出來,跟蹤領域已經基本完成換代更新。接收的文章中 Siamese 網路的改進工作已經佔據了主導的地位。
SiamRPN++,CIR 兩篇都是圍繞如何使用深度網路主幹這個問題,兩篇文章都中了 oral。這個問題一直困擾著整個跟蹤圈子,在此之前的所有工作都採用的是 alexnet 為主的網路架構。不能使用現代網路架構一直困擾著整個跟蹤領域的發展。SiamRPN++ 通過資料增強的方法解決訓練的空間位置偏見。CIR 通過 crop 操作從網路架構上減弱網路 padding 帶來的學習偏見,通過大量的實驗分析了感受野等因素對學習的影響。總的來說,當網路問題被解決了之後直接導致了現在在幾乎所有的資料集上,SiamRPN++ 已經超過了相關濾波的方法。
在 SiamRPN++ 的基礎上,網路主幹問題已經被解決,我們可以做更多方向的探索。我們可以非常簡單的讓輸出做更復雜的預測,這就催生了 SiamMask 這篇文章。
SPM 和 C-RPN 兩篇都算是多階段的 SiamRPN 擴充套件。SPM 就是典型的 faster-RCNN 的思路做跟蹤,只是最後的 score fusion 的方式可以再優雅一些。C-RPN 當然就是 Cascade R-CNN: Delving into High Quality Object Detection 在跟蹤領域的翻版。兩者的思路都很直接,通過第二 / N 階段來學習更精細的判別。
Martin Danelljan 大神的 ATOM: Accurate Tracking by Overlap Maximization 這篇肯定也是重量級的文章。Martin 大神並沒有 fellow SiamRPN 的架構,轉而使用粒子濾波取樣搭配 IoU 預測,多次迭代得到目標結果。在多個庫上取得了非常驚人的結果。這項工作我覺得最突破的點是網路學習的問題實際上更 hard,更符合跟蹤的需求。
LaSOT 這個測評集的接收也是常規操作。希望各位大佬能繼續維護好這個庫。最近跟蹤的資料庫相當多,人們都意識到之前的資料已經無法滿足深度學習的跟蹤演算法。
當你閱讀了一定的文章以及有現成的程式碼之後,下面當然是如何著手改進。我自己總結了一些小的可以改進的方向,僅供參考。
1)高效的線上學習演算法:進展到目前為止,我的所有實驗研究表明。Siamese 網路無法真正意義上抑制背景中的困難樣本。離線的學習從本質上無法區分兩個長相相似的人或者車。而 CF 相關演算法可以通過分析整個環境的上下文關係來進行調整。如果對於提升整個演算法的上界(偏學術)的角度考慮,線上學習有必要。如果正常的工程使用,我認為目前的演算法只要在相應的場景中進行訓練就足夠了。
2)精確輸出表達:今年我們的工作提出額外的 mask 輸出。可直接擴充套件的思路為關鍵點輸出(CornerNet / PoseTrack),極點預測(ExtremeNet),甚至 6D pose 跟蹤。本質上是通過網路可以預測任何與目標相關的輸出。大家可以任意的發散思維。
3)定製網路架構:其中包含兩個子方向,一個是追求精度的去探索究竟什麼樣的網路架構會有利於當前的跟蹤框架的學習。另一個有價值的子方向是如何構建超快速的小網路用於實際工程。工程專案中有時並沒有 GPU 的資源供使用,如何提供 “廉價” 的高質量跟蹤演算法也具有很強的實際意義。當對網路進行裁剪之後,很容易達到 500FPS 的高效能演算法來對傳統的 KCF 進行真正的替換。
4)離線訓練學習優化:目前的跟蹤演算法在相似性學習方向還是過於簡單,如果去設計更為有效的度量學習方案,應該會有一定的提升。同時我們也並沒有很好的掌握網路的訓練。當前的訓練策略是將網路主幹的引數進行固定,先訓練 head。然後逐步放開。實際上我們發現,當直接將所有層全部放開一起訓練的時候,網路的泛化效能會顯著下降。另一個方面,train from scratch 的概念已經在檢測領域非常普遍了。跟蹤的網路目前我們的經驗在跟蹤方面並不 work。
5)更細粒度預測:這一條實際上是上一條的續集,就是專注於 score 分支的預測。現在大家的做法是 > 0.6 IoU 的都當做前景(正樣本),但實際上正樣本之間還是有較大的差異的。跟蹤本質上也是不斷預測一個非常細小物體幀間運動的過程,如果一個網路不能很好的分辨細小的差異,他可能並不是一個最優的設計選擇。這也是 ATOM 的 IoUNet 主攻的方向。
6)泛化效能提升:非常推薦自動化所黃凱奇老師組的 GOT-10k 資料集,資料組織的非常棒。黃老師組在 one-shot learning 領域有著深厚的積澱,所以站在這個領域的角度,他們提出了嚴格分離訓練集和測試集的物體類別來驗證泛化效能。所以原則上所有 one-shot learning 方向的一些嵌入學習方法都可以移過來用。同時,我覺得 Mask-X-RCNN,segment everything 這個思路可以借鑑。本質上我也不得不承認,基於深度學習的跟蹤演算法存在泛化效能問題。我們有理由懷疑跟蹤是否會在未知的類別上有較好的泛化效能,實際上肯定是會下降。
7)long-term 跟蹤框架:截止到目前為止,雖然 VOT 組委會以及牛津這邊的 OxUVA 都有專門的 long-term 的資料集,但 long-term 演算法並沒有一個較好的統一框架出來。關於這方面的研究似乎有點停滯,今年大連理工的文章非常可惜,我覺得質量非常不錯。
原標題《[CVPR2019] 我對 Siamese 網路的一點思考(SiamMask)》,作者Qiang Wang,原文地址:
https://zhuanlan.zhihu.com/p/58154634
今日學習推薦
【CV就業班 第一期】
個性化定製輔導 定製學習路線
簡歷與專案定製 面試輔導與內推
保就業 保高薪 先就業 後付費
助力金三銀四 跳槽轉行 斬獲高薪offer
長按識別下方二維碼
檢視更多課程詳情
☟
長按識別二維碼
▼
神經網路P圖新神器:摘墨鏡戴美瞳都能搞定,加首飾換髮型真假難分 | 程式碼開源
一文詳解機器學習中最好用的提升方法:Boosting 與 AdaBoost
點
諮詢,檢視課程,請點選“閱讀原文”
給我【好看】
你也越好看!
相關文章
- CVPR 2019 | 驚豔的SiamMask:開源快速同時進行目標跟蹤與分割演算法演算法
- CVPR 2018 目標跟蹤相關論文
- 膠囊網路與計算機視覺教程 @CVPR 2019計算機視覺
- 跟蹤Kubernetes中的網路流量路徑
- CVPR 2019 | 告別低解析度網路,微軟提出高解析度深度神經網路HRNet微軟神經網路
- ICCV 2019 | 港大提出視訊顯著物體檢測演算法MGA,大幅提升分割精度演算法
- CVPR 2019 | 曠視提出極輕量級年齡估計模型C3AE模型
- Zipkin — 微服務鏈路跟蹤.微服務
- Pixability:2019年網路視訊廣告報告
- Audience Project:2019年傳統電視、網路視訊和流視訊報告Project
- 每日安全資訊:Mozilla Firefox 開始預設阻止網路跟蹤器運作Firefox
- Mozilla Firefox開始預設阻止網路跟蹤器運作Firefox
- CVPR 2019「準滿分」論文:英偉達推出首個跨攝像頭汽車跟蹤資料集
- matlab練習程式(LQR路徑跟蹤)Matlab
- 快慢結合效果好:FAIR何愷明等人提出視訊識別SlowFast網路AIAST
- ASP.NET Core整合Zipkin鏈路跟蹤ASP.NET
- CVPR2016跟蹤演算法Staple的配置(Staple: Complementary Learners for Real-Time Tracking)演算法
- Session跟蹤機制是怎樣的?網路安全技術學習Session
- MnasNet:經典輕量級神經網路搜尋方法 | CVPR 2019神經網路
- ResNet架構可逆!多大等提出效能優越的可逆殘差網路架構
- 樹莓派利用OpenCV的影像跟蹤、人臉識別等樹莓派OpenCV
- ICCV2019 | 港科大、清華與曠視提出基於元學習的自動化神經網路通道剪枝網路神經網路
- 使用zipKin構建NetCore分散式鏈路跟蹤NetCore分散式
- 群邑智庫:2019年視訊網站國產網路動畫分析網站動畫
- CVPR 2024 | 位元組提出視覺基礎模型:ViTamin,實現多項SOTA!視覺模型
- 2019海信網際網路電視白皮書
- 多目標跟蹤全解析,全網最全
- [20200219]strace跟蹤設定ENABLE=BROKEN的情況(網路的情況).txt
- CVPR 2024 | 谷歌提出OmniGlue:特徵匹配新工作谷歌特徵
- 添趣網!搞笑, 視訊, 音樂 網站,wap跟pc模板!網站
- 遊戲、短視訊等成網路著作權糾紛新發領域遊戲
- 樂訊通雲通訊:物聯網路卡在寵物跟蹤器中的應用
- Pathmatics:網路視訊報告
- sp_trace_setfilter sqlserver篩選跟蹤或跟蹤過濾FilterSQLServer
- Google Chrome等瀏覽器不再允許關閉點選跟蹤GoChrome瀏覽器
- 基於人臉關鍵點修復人臉,騰訊等提出優於SO他的LaFIn生成網路
- 2019移動網際網路自律白名單公佈 高德地圖騰訊等入選地圖
- 使用 Solon Cloud 的 Jaeger 做請求鏈路跟蹤Cloud