實例分割是計算機視覺中的基礎問題之一。雖然靜態圖像中的實例分割已經有不少的研究,對視頻的實例分割(Video Instance Segmentation,簡稱VIS)的研究卻相對較少。而真實世界中的攝像頭所接收的,不管自動駕駛背景下車輛實時感知的周圍場景,仍是網絡媒體中的長短視頻,大多數爲視頻流的信息而非純圖像信息。於是研究對視頻建模的模型有着十分重要的意義,本文系美團無人配送團隊在CVPR 2021發表的一篇論文解讀。
實例分割是計算機視覺中的基礎問題之一。目前,靜態圖像中的實例分割業界已經進行了不少的研究,可是對視頻的實例分割(Video Instance Segmentation,簡稱VIS)的研究卻相對較少。而真實世界中的攝像頭所接收的,不管是自動駕駛背景下車輛實時感知的周圍場景,仍是網絡媒體中的長短視頻,大多數都是視頻流信息而非純圖像信息。於是研究對視頻建模的模型有着十分重要的意義,本文系美團無人配送團隊在CVPR2021發表的一篇Oral論文: 《End-to-End Video Instance Segmentation with Transformers》的解讀。本屆CVPR大會共收到7015篇有效投稿,最終共1663篇論文被接收,論文錄用率爲23.7%,Oral的錄用率僅爲4%。前端
圖像的實例分割指的是對靜態圖像中感興趣的物體進行檢測和分割的任務。視頻是包含多幀圖像的信息載體,相對於靜態圖像來講,視頻的信息更爲豐富,於是建模也更爲複雜。不一樣於靜態圖像僅含有空間的信息,視頻同時含有時間維度的信息,於是更接近對真實世界的刻畫。其中,視頻的實例分割指的是對視頻中感興趣的物體進行檢測、分割和跟蹤的任務。如圖1所示,第一行爲給定視頻的多幀圖像序列,第二行爲視頻實例分割的結果,其中相同顏色對應同一個實例。視頻實例分割不光要對單幀圖像中的物體進行檢測和分割,並且要在多幀的維度下找到每一個物體的對應關係,即對其進行關聯和跟蹤。git
現有的視頻實例分割算法一般爲包含多模塊、多階段的複雜流程。最先的Mask Track R-CNN[1]算法同時包含實例分割和跟蹤兩個模塊,經過在圖像實例分割算法Mask R-CNN[2]的網絡之上增長一個跟蹤的分支實現,該分支主要用於實例特徵的提取。在預測階段,該方法利用外部Memory模塊進行多幀實例特徵的存儲,並將該特徵做爲實例關聯的一個要素進行跟蹤。該方法的本質仍然是單幀的分割加傳統方法進行跟蹤關聯。Maskprop[3]在Mask Track R-CNN的基礎上增長了Mask Propagation的模塊以提高分割Mask生成和關聯的質量,該模塊能夠實現當前幀提取的mask到周圍幀的傳播,但因爲幀的傳播依賴於預先計算的單幀的分割Mask,所以要獲得最終的分割Mask須要多步的Refinement。該方法的本質仍然是單幀的提取加幀間的傳播,且因爲其依賴多個模型的組合,方法較爲複雜,速度也更慢。github
Stem-seg[4]將視頻實例分割劃分爲實例的區分和類別的預測兩個模塊。爲了實現實例的區分,模型將視頻的多幀Clip構建爲3D Volume,經過對像素點的Embedding特徵進行聚類實現不一樣物體的分割。因爲上述聚類過程不包含實例類別的預測,所以須要額外的語義分割模塊提供像素的類別信息。根據以上描述,現有的算法大多沿襲單幀圖像實例分割的思想,將視頻實例分割任務劃分爲單幀的提取和多幀的關聯多個模塊,針對單個任務進行監督和學習,處理速度較慢且不利於發揮視頻時序連續性的優點。本文旨在提出一個端到端的模型,將實例的檢測、分割和跟蹤統一到一個框架下實現,有助於更好地挖掘視頻總體的空間和時序信息,且可以以較快的速度解決視頻實例分割的問題。算法
首先,咱們對視頻實例分割這一任務進行了從新的思考。相較於單幀圖像,視頻含有關於每一個實例更爲完備和豐富的信息,好比不一樣實例的軌跡和運動模態,這些信息可以幫助克服單幀實例分割任務中一些比較困難的問題,好比外觀類似、物體鄰近或者存在遮擋的情形等。另外一方面,多幀所提供的關於單個實例更好的特徵表示也有助於模型對物體進行更好的跟蹤。所以,咱們的方法旨在實現一個端到端對視頻實例目標進行建模的框架。爲了實現這一目標,咱們第一個思考是:視頻自己是序列級別的數據,可否直接將其建模爲序列預測的任務?好比,借鑑天然語言處理(NLP)任務的思想,將視頻實例分割建模爲序列到序列(Seq2Seq)的任務,即給定多幀圖像做爲輸入,直接輸出多幀的分割Mask序列,這時須要一個可以同時對多幀進行建模的模型。後端
第二個思考是:視頻的實例分割實際同時包含實例分割和目標跟蹤兩個任務,可否將其統一到一個框架下實現?針對這個咱們的想法是:分割自己是像素特徵之間類似度的學習,而跟蹤本質是實例特徵之間類似度的學習,所以理論上他們能夠統一到同一個類似度學習的框架之下。安全
基於以上的思考,咱們選取了一個同時可以進行序列的建模和類似度學習的模型,即天然語言處理中的Transformer[5]模型。Transformer自己能夠用於Seq2Seq的任務,即給定一個序列,能夠輸入一個序列。而且該模型十分擅長對長序列進行建模,所以很是適合應用於視頻領域對多幀序列的時序信息進行建模。其次,Transformer的核心機制,自注意力模塊(Self-Attention),能夠基於兩兩之間的類似度來進行特徵的學習和更新,使得將像素特徵之間類似度以及實例特徵之間類似度統一在一個框架內實現成爲可能。以上的特性使得Transformer成爲VIS任務的恰當選擇。除此以外,Transformer已經有被應用於計算機視覺中進行目標檢測的實踐DETR[6]。所以咱們基於transformer設計了視頻實例分割(VIS)的模型VisTR。網絡
遵守上述思想,VisTR的總體框架如圖2所示。圖中最左邊表示輸入的多幀原始圖像序列(以三幀爲例),右邊表示輸出的實例預測序列,其中相同形狀對應同一幀圖像的輸出,相同顏色對應同一個物體實例的輸出。給定多幀圖像序列,首先利用卷積神經網絡(CNN)進行初始圖像特徵的提取,而後將多幀的特徵結合做爲特徵序列輸入Transformer進行建模,實現序列的輸入和輸出。框架
不難看出,首先,VisTR是一個端到端的模型,即同時對多幀數據進行建模。建模的方式即:將其變爲一個Seq2Seq的任務,輸入多幀圖像序列,模型能夠直接輸出預測的實例序列。雖然在時序維度多幀的輸入和輸出是有序的,可是單幀輸入的實例的序列在初始狀態下是無序的,這樣仍然沒法實現實例的跟蹤關聯,所以咱們強制使得每幀圖像輸出的實例的順序是一致的(用圖中同一形狀的符號有着相同的顏色變化順序表示),這樣只要找到對應位置的輸出,即可天然而然實現同一實例的關聯,無需任何後處理操做。爲了實現此目標,須要對屬於同一個實例位置處的特徵進行序列維度的建模。針對性地,爲了實現序列級別的監督,咱們提出了Instance Sequence Matching的模塊。同時爲了實現序列級別的分割,咱們提出了Instance Sequence Segmentation的模塊。端到端的建模將視頻的空間和時間特徵當作一個總體,能夠從全局的角度學習整個視頻的信息,同時Transformer所建模的密集特徵序列又可以較好的保留細節的信息。運維
VisTR的詳細網絡結構如圖3所示,如下是對網絡的各個組成部分的介紹:ide
根據前面的描述,網絡學習中須要計算損失的主要有兩個地方,一個是Instance Sequence Matching階段的匹配過程,一個是找到監督以後最終整個網絡的損失函數計算過程。
Instance Sequence Matching過程的計算公式如式1所示:因爲Matching階段只是用於尋找監督,而計算Mask之間的距離運算比較密集,所以在此階段咱們只考慮Box和預測的類別c兩個因素。第一行中的yi表示對應第i個實例的Ground Truth序列,其中c表示類別,b表示Boundingbox,T表示幀數,即T幀該實例對應的類別和Bounding Box序列。第二行和第三行分別表示預測序列的結果,其中p表示在ci這個類別的預測的機率,b表示預測的Bounding Box。序列之間距離的運算是經過兩個序列對應位置的值兩兩之間計算損失函數獲得的,圖中用Lmatch表示,對於每一個預測的序列,找到Lmatch最低那個Ground Truth序列做爲它的監督。根據對應的監督信息,就能夠計算整個網絡的損失函數。
因爲咱們的方法是將分類、檢測、分割和跟蹤作到一個端到端網絡裏,所以最終的損失函數也同時包含類別、Bounding Box和Mask三個方面,跟蹤經過直接對序列算損失函數體現。公式2表示分割的損失函數,獲得了對應的監督結果以後,咱們計算對應序列之間的Dice Loss和Focal Loss做爲Mask的損失函數。
最終的損失函數如公式3所示,爲同時包含分類(類別機率)、檢測(Bounding Box)以及分割(Mask)的序列損失函數之和。
爲了驗證方法的效果,咱們在普遍使用的視頻實例分割數據集YouTube-VIS上進行了實驗,該數據集包含2238個訓練視頻,302個驗證視頻以及343個測試視頻,以及40個物體類別。模型的評估標準包含AP和AR,以視頻維度多幀Mask之間的IOU做爲閾值。
相對於現有的方法,VisTR的最大區別是直接對視頻進行建模,而視頻和圖像的主要區別在於視頻包含着豐富的時序信息,若是有效的挖掘和學習時序信息是視頻理解的關鍵,所以咱們首先探究了時序信息的重要性。時序包含兩個維度:時序的多少(幀數)以及有序和無序的對比。
表1中展現了咱們利用不一樣幀數的Clip訓練模型最終的測試效果,不難看出,隨着幀數從18提高至36,模型的精度AP也在不斷提高,證實多幀提供的更豐富的時序信息對模型的學習有所幫助。
表2中展現了利用打亂物理時序的Clip以及按照物理時序的Clip進行模型訓練的效果對比,能夠看出,按照時間順序訓練的模型有一個點的提高,證實VisTR有學到物理時間下物體變化和規律,而按照物理時間順序對視頻建模也有助於視頻的理解。
第二個實驗是對於Query的探究。因爲咱們的模型直接建模的36幀圖像,對每幀圖像預測10個物體,所以須要360個Query,對應表3最後一行的結果(Prediction Level)。咱們想探究屬於同一幀或者同一個實例的Query之間是否存在必定的關聯,便是否能夠共享。針對這個目標,咱們分別設計了Frame Level的實驗:即一幀只使用一個Query的特徵進行預測,以及Instance level的實驗:一個實例只使用一個Query的特徵進行預測。
能夠看到,Instance Level的結果只比Prediction Level的結果少一個點,而Frame Level的結果要低20個點,證實不一樣幀屬於同一個Instance的Query能夠共享,而同一幀不一樣Instance的Query信息不可共享。Prediction Level的Query是和輸入的圖像幀數成正比的,而Instance Level的Query能夠實現不依賴輸入幀數的模型。只限制模型要預測的Instance個數,不限制輸入幀數,這也是將來能夠繼續研究的方向。除此以外,咱們還設計了Video Level的實驗,即整個視頻只用一個Query的Embedding特徵進行預測,這個模型能夠實現8.4的AP。
如下是實驗過程當中咱們發現有效的其餘設計。
因爲在特徵序列化的過程當中會損失原有的空間和時間信息,咱們提供了原始的Positional Encoding特徵以保留原有的位置信息。在表5中進行了有無該模塊的對比,Positional Encoding提供的位置信息能夠帶來約5個點的提高。
在分割的過程當中,咱們經過計算實例的Prediction與Encoded以後特徵的Self-Attention來獲取初始的Attention Mask。在表6中,咱們進行了利用CNN-Encoded的特徵和利用Transformer-Encoded的特徵進行分割的效果對比,利用Transformer的特徵能夠提高一個點。證實了Transformer進行全局特徵更新的有效性。
表6中展現了在分割模塊有無3D卷積的效果對比,使用3D卷積能夠帶來一個點的提高,證實了利用時序信息直接對多幀mask分割的有效性。
VisTR在YouTube-VIS的可視化效果如圖4所示,其中每行表示同一個視頻的序列,相同顏色對應同一個實例的分割結果。能夠看出不管是在 (a).實例存在遮擋(b).實例位置存在相對變化 (c).同類緊鄰易混淆的實例 以及 (d).實例處於不一樣姿態情形下,模型都可以實現較好的分割個跟蹤,證實在有挑戰性的狀況下,VisTR仍具備很好的效果。
表7是咱們的方法和其餘方法在YoutubeVIS數據集上的對比。咱們的方法實現了單一模型的最好效果(其中MaskProp包含多個模型的組合),在57.7FPS的速度下實現了40.1的AP。其中前面的27.7指的是加上順序的Data Loading部分的速度(這部分能夠利用並行進行優化),57.7指的是純模型Inference的速度。因爲咱們的方法直接對36幀圖像同時進行建模,所以相對於一樣模型的單幀處理,理想狀況下能帶來大約36倍的速度提高,更有助於視頻模型的普遍應用。
視頻實例分割指的是同時對視頻中感興趣的物體進行分類,分割和跟蹤的任務。現有的方法一般設計複雜的流程來解決此問題。本文提出了一種基於Transformer的視頻實例分割新框架VisTR,該框架將視頻實例分割任務視爲直接端到端的並行序列解碼和預測的問題。給定一個含有多幀圖像的視頻做爲輸入,VisTR直接按順序輸出視頻中每一個實例的掩碼序列。該方法的核心是一種新的實例序列匹配和分割的策略,可以在整個序列級別上對實例進行監督和分割。 VisTR將實例分割和跟蹤統一到了類似度學習的框架下,從而大大簡化了流程。在沒有任何trick的狀況下,VisTR在全部使用單一模型的方法中得到了最佳效果,而且在YouTube-VIS數據集上實現了最快的速度。
據咱們所知,這是第一個將Transformers應用於視頻分割領域的方法。但願咱們的方法可以啓發更多視頻實例分割的研究,同時也但願此框架將來可以應用於更多視頻理解的任務。關於論文的更多細節,請參考原文:《End-to-End Video Instance Segmentation with Transformers》,同時代碼也已經在GitHub上開源:https://github.com/Epiphqny/VisTR,歡迎你們來了解或使用。
美團無人車配送中心大量崗位持續招聘中,誠招算法/系統/硬件開發工程師及專家。歡迎感興趣的同窗發送簡歷至:ai.hr@meituan.com(郵件標題註明:美團無人車團隊)。
閱讀美團技術團隊更多技術文章合集
前端 | 算法 | 後端 | 數據 | 安全 | 運維 | iOS | Android | 測試
| 在公衆號菜單欄對話框回覆【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。
| 本文系美團技術團隊出品,著做權歸屬美團。歡迎出於分享和交流等非商業目的轉載或使用本文內容,敬請註明「內容轉載自美團技術團隊」。本文未經許可,不得進行商業性轉載或者使用。任何商用行爲,請發送郵件至tech@meituan.com申請受權。