CVPR 2021 | 基於Transformer的端到端視頻實例分割方法

實例分割是計算機視覺中的基礎問題之一。雖然靜態圖像中的實例分割已經有很多的研究,對視頻的實例分割(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所示,第一行爲給定視頻的多幀圖像序列,第二行爲視頻實例分割的結果,其中相同顏色對應同一個實例。視頻實例分割不光要對單幀圖像中的物體進行檢測和分割,而且要在多幀的維度下找到每個物體的對應關係,即對其進行關聯和跟蹤。

圖1 視頻實例分割任務示意

相關工作

現有的視頻實例分割算法通常爲包含多模塊、多階段的複雜流程。最早的Mask Track R-CNN[1]算法同時包含實例分割和跟蹤兩個模塊,通過在圖像實例分割算法Mask R-CNN[2]的網絡之上增加一個跟蹤的分支實現,該分支主要用於實例特徵的提取。在預測階段,該方法利用外部Memory模塊進行多幀實例特徵的存儲,並將該特徵作爲實例關聯的一個要素進行跟蹤。該方法的本質仍然是單幀的分割加傳統方法進行跟蹤關聯。Maskprop[3]在Mask Track R-CNN的基礎上增加了Mask Propagation的模塊以提升分割Mask生成和關聯的質量,該模塊可以實現當前幀提取的mask到周圍幀的傳播,但由於幀的傳播依賴於預先計算的單幀的分割Mask,因此要得到最終的分割Mask需要多步的Refinement。該方法的本質仍然是單幀的提取加幀間的傳播,且由於其依賴多個模型的組合,方法較爲複雜,速度也更慢。

Stem-seg[4]將視頻實例分割劃分爲實例的區分和類別的預測兩個模塊。爲了實現實例的區分,模型將視頻的多幀Clip構建爲3D Volume,通過對像素點的Embedding特徵進行聚類實現不同物體的分割。由於上述聚類過程不包含實例類別的預測,因此需要額外的語義分割模塊提供像素的類別信息。根據以上描述,現有的算法大多沿襲單幀圖像實例分割的思想,將視頻實例分割任務劃分爲單幀的提取和多幀的關聯多個模塊,針對單個任務進行監督和學習,處理速度較慢且不利於發揮視頻時序連續性的優勢。本文旨在提出一個端到端的模型,將實例的檢測、分割和跟蹤統一到一個框架下實現,有助於更好地挖掘視頻整體的空間和時序信息,且能夠以較快的速度解決視頻實例分割的問題。

VisTR算法介紹

重新定義問題

首先,我們對視頻實例分割這一任務進行了重新的思考。相較於單幀圖像,視頻含有關於每個實例更爲完備和豐富的信息,比如不同實例的軌跡和運動模態,這些信息能夠幫助克服單幀實例分割任務中一些比較困難的問題,比如外觀相似、物體鄰近或者存在遮擋的情形等。另一方面,多幀所提供的關於單個實例更好的特徵表示也有助於模型對物體進行更好的跟蹤。因此,我們的方法旨在實現一個端到端對視頻實例目標進行建模的框架。爲了實現這一目標,我們第一個思考是:視頻本身是序列級別的數據,能否直接將其建模爲序列預測的任務?比如,借鑑自然語言處理(NLP)任務的思想,將視頻實例分割建模爲序列到序列(Seq2Seq)的任務,即給定多幀圖像作爲輸入,直接輸出多幀的分割Mask序列,這時需要一個能夠同時對多幀進行建模的模型。

第二個思考是:視頻的實例分割實際同時包含實例分割和目標跟蹤兩個任務,能否將其統一到一個框架下實現?針對這個我們的想法是:分割本身是像素特徵之間相似度的學習,而跟蹤本質是實例特徵之間相似度的學習,因此理論上他們可以統一到同一個相似度學習的框架之下。

基於以上的思考,我們選取了一個同時能夠進行序列的建模和相似度學習的模型,即自然語言處理中的Transformer[5]模型。Transformer本身可以用於Seq2Seq的任務,即給定一個序列,可以輸入一個序列。並且該模型十分擅長對長序列進行建模,因此非常適合應用於視頻領域對多幀序列的時序信息進行建模。其次,Transformer的核心機制,自注意力模塊(Self-Attention),可以基於兩兩之間的相似度來進行特徵的學習和更新,使得將像素特徵之間相似度以及實例特徵之間相似度統一在一個框架內實現成爲可能。以上的特性使得Transformer成爲VIS任務的恰當選擇。除此之外,Transformer已經有被應用於計算機視覺中進行目標檢測的實踐DETR[6]。因此我們基於transformer設計了視頻實例分割(VIS)的模型VisTR。

VisTR算法流程

圖2 VisTR算法框架

遵照上述思想,VisTR的整體框架如圖2所示。圖中最左邊表示輸入的多幀原始圖像序列(以三幀爲例),右邊表示輸出的實例預測序列,其中相同形狀對應同一幀圖像的輸出,相同顏色對應同一個物體實例的輸出。給定多幀圖像序列,首先利用卷積神經網絡(CNN)進行初始圖像特徵的提取,然後將多幀的特徵結合作爲特徵序列輸入Transformer進行建模,實現序列的輸入和輸出。

不難看出,首先,VisTR是一個端到端的模型,即同時對多幀數據進行建模。建模的方式即:將其變爲一個Seq2Seq的任務,輸入多幀圖像序列,模型可以直接輸出預測的實例序列。雖然在時序維度多幀的輸入和輸出是有序的,但是單幀輸入的實例的序列在初始狀態下是無序的,這樣仍然無法實現實例的跟蹤關聯,因此我們強制使得每幀圖像輸出的實例的順序是一致的(用圖中同一形狀的符號有着相同的顏色變化順序表示),這樣只要找到對應位置的輸出,便可自然而然實現同一實例的關聯,無需任何後處理操作。爲了實現此目標,需要對屬於同一個實例位置處的特徵進行序列維度的建模。針對性地,爲了實現序列級別的監督,我們提出了Instance Sequence Matching的模塊。同時爲了實現序列級別的分割,我們提出了Instance Sequence Segmentation的模塊。端到端的建模將視頻的空間和時間特徵當做一個整體,可以從全局的角度學習整個視頻的信息,同時Transformer所建模的密集特徵序列又能夠較好的保留細節的信息。

VisTR網絡結構

圖3 VisTR網絡結構

VisTR的詳細網絡結構如圖3所示,以下是對網絡的各個組成部分的介紹:

  • Backbone:主要用於初始圖像特徵的提取。針對序列的每一幀輸入圖像,首先利用CNN的Backbone進行初始圖像特徵的提取,提取的多幀圖像特徵沿時序和空間維度序列化爲多幀特徵序列。由於序列化的過程損失了像素原始的空間和時序信息,而檢測和分割的任務對於位置信息十分敏感,因此我們將其原始的空間和水平位置進行編碼,作爲Positional Encoding疊加到提取的序列特徵上,以保持原有的位置信息。Positional Encoding的方式遵照Image Transformer[7]的方式,只是將二維的原始位置信息變爲了三維的位置信息,這部分在論文中有詳細的說明。
  • Encoder:主要用於對多幀特徵序列進行整體的建模和更新。輸入前面的多幀特徵序列,Transformer的Encoder模塊利用Self-Attention模塊,通過點和點之間相似度的學習,進行序列中所有特徵的融合和更新。該模塊通過對時序和空間特徵的整體建模,能夠對屬於同一個實例的特徵進行更好的學習和增強。
  • Decoder:主要用於解碼輸出預測的實例特徵序列。由於Encoder輸入Decoder的是密集的像素特徵序列,爲了解碼出稀疏的實例特徵,我們參考DETR的方式,引入Instance Query進行代表性的實例特徵的解碼。Instance Query是網絡自身學習的Embedding參數,用於和密集的輸入特徵序列進行Attention運算選取能夠代表每個實例的特徵。以處理3幀圖像,每幀圖像預測4個物體爲例,模型一共需要12個Instance Query,用於解碼12個實例預測。和前面的表示一致,用同樣的形狀表示對應同一幀圖像的預測,同樣的顏色表示同一個物體實例在不同幀的預測。通過這種方式,我們可以構造出每個實例的預測序列,對應爲圖3中的Instance 1...Instance 4,後續過程中模型都將單個物體實例的序列看作整體進行處理。
  • Instance Sequence Matching:主要用於對輸入的預測結果進行序列級別的匹配和監督。前面已經介紹了從序列的圖像輸入到序列的實例預測的過程。但是預測序列的順序其實是基於一個假設的,即在幀的維度保持幀的輸入順序,而在每幀的預測中,不同實例的輸出順序保持一致。幀的順序比較容易保持,只要控制輸入和輸出的順序一致即可,但是不同幀內部實例的順序其實是沒有保證的,因此我們需要設計專門的監督模塊來維持這個順序。在通用目標檢測之中,在每個位置點會有它對應的Anchor,因此對應每個位置點的Ground Truth監督是分配好的,而在我們的模型中,實際上是沒有Anchor和位置的顯式信息,因此對於每個輸入點我們沒有現成的屬於哪個實例的監督信息。爲了找到這個監督,並且直接在序列維度進行監督,我們提出了Instance Sequence Matching的模塊,這個模塊將每個實例的預測序列和標註數據中每個實例的Ground Truth序列進行二分匹配,利用匈牙利匹配的方式找到每個預測最近的標註數據,作爲它的Groud Truth進行監督,進行後面的Loss計算和學習。
  • Instance Sequence Segmentation:主要用於獲取最終的分割結果序列。前面已經介紹了Seq2Seq的序列預測過程,我們的模型已經能夠完成序列的預測和跟蹤關聯。但是到目前爲止,我們爲每個實例找到的只是一個代表性的特徵向量,而最終要解決的是分割的任務,如何將這個特徵向量變爲最終的Mask序列,就是Instance Sequence Segmentation模塊要解決的問題。前面已經提到,實例分割本質是像素相似度的學習,因此我們初始計算Mask的方式就是利用實例的預測和Encode之後的特徵圖計算Self-Attention相似度,將得到的相似度圖作爲這個實例對應幀的初始Attention Mask特徵。爲了更好的利用時序的信息,我們將屬於同一個實例的多幀的Attention Mask 作爲Mask序列輸入3D卷積模塊進行分割,直接得到最終的分割序列。這種方式通過利用多幀同一實例的特徵對單幀的分割結果進行增強,可以最大化的發揮時序的優勢。

VisTR損失函數

根據前面的描述,網絡學習中需要計算損失的主要有兩個地方,一個是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序列作爲它的監督。根據對應的監督信息,就可以計算整個網絡的損失函數。

公式1 Instance Sequence Matching計算過程

由於我們的方法是將分類、檢測、分割和跟蹤做到一個端到端網絡裏,因此最終的損失函數也同時包含類別、Bounding Box和Mask三個方面,跟蹤通過直接對序列算損失函數體現。公式2表示分割的損失函數,得到了對應的監督結果之後,我們計算對應序列之間的Dice Loss和Focal Loss作爲Mask的損失函數。

公式2 分割損失函數

最終的損失函數如公式3所示,爲同時包含分類(類別概率)、檢測(Bounding Box)以及分割(Mask)的序列損失函數之和。

公式3 VisTR整體損失函數

實驗結果

爲了驗證方法的效果,我們在廣泛使用的視頻實例分割數據集YouTube-VIS上進行了實驗,該數據集包含2238個訓練視頻,302個驗證視頻以及343個測試視頻,以及40個物體類別。模型的評估標準包含AP和AR,以視頻維度多幀Mask之間的IOU作爲閾值。

時序信息的重要性

相對於現有的方法,VisTR的最大區別是直接對視頻進行建模,而視頻和圖像的主要區別在於視頻包含着豐富的時序信息,如果有效的挖掘和學習時序信息是視頻理解的關鍵,因此我們首先探究了時序信息的重要性。時序包含兩個維度:時序的多少(幀數)以及有序和無序的對比。

表1 不同幀數模型的訓練效果對比

表1中展示了我們利用不同幀數的Clip訓練模型最終的測試效果,不難看出,隨着幀數從18提升至36,模型的精度AP也在不斷提升,證明多幀提供的更豐富的時序信息對模型的學習有所幫助。

表2 打亂時序vs.按照時序訓練的效果對比

表2中展示了利用打亂物理時序的Clip以及按照物理時序的Clip進行模型訓練的效果對比,可以看出,按照時間順序訓練的模型有一個點的提升,證明VisTR有學到物理時間下物體變化和規律,而按照物理時間順序對視頻建模也有助於視頻的理解。

Query探究

第二個實驗是對於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。

表3 不同類型Query的效果對比

其他設計

以下是實驗過程中我們發現有效的其他設計。

表4 有無positional encoding的實驗效果對比

由於在特徵序列化的過程中會損失原有的空間和時間信息,我們提供了原始的Positional Encoding特徵以保留原有的位置信息。在表5中進行了有無該模塊的對比,Positional Encoding提供的位置信息可以帶來約5個點的提升。

表5 CNN-encoded的特徵vs.Transformer-Encoded的特徵對分割的效果對比

在分割的過程中,我們通過計算實例的Prediction與Encoded之後特徵的Self-Attention來獲取初始的Attention Mask。在表6中,我們進行了利用CNN-Encoded的特徵和利用Transformer-Encoded的特徵進行分割的效果對比,利用Transformer的特徵可以提升一個點。證明了Transformer進行全局特徵更新的有效性。

表6 有無3D卷積的實驗效果對比

表6中展示了在分割模塊有無3D卷積的效果對比,使用3D卷積可以帶來一個點的提升,證明了利用時序信息直接對多幀mask分割的有效性。

可視化結果

圖4 VisTR可視化效果

VisTR在YouTube-VIS的可視化效果如圖4所示,其中每行表示同一個視頻的序列,相同顏色對應同一個實例的分割結果。可以看出無論是在 (a).實例存在遮擋(b).實例位置存在相對變化 (c).同類緊鄰易混淆的實例 以及 (d).實例處於不同姿態情形下,模型都能夠實現較好的分割個跟蹤,證明在有挑戰性的情況下,VisTR仍具有很好的效果。

方法對比

表7 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,歡迎大家來了解或使用。

作者

  • 美團無人車配送中心: 鈺晴、昭良、保山、申浩等。
  • 阿德萊德大學:王鑫龍、沈春華。

參考文獻

招聘信息

美團無人車配送中心大量崗位持續招聘中,誠招算法/系統/硬件開發工程師及專家。歡迎感興趣的同學發送簡歷至:[email protected](郵件標題註明:美團無人車團隊)。

閱讀美團技術團隊更多技術文章合集

前端 | 算法 | 後端 | 數據 | 安全 | 運維 | iOS | Android | 測試

| 在公衆號菜單欄對話框回覆【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。

| 本文系美團技術團隊出品,著作權歸屬美團。歡迎出於分享和交流等非商業目的轉載或使用本文內容,敬請註明“內容轉載自美團技術團隊”。本文未經許可,不得進行商業性轉載或者使用。任何商用行爲,請發送郵件至[email protected]申請授權。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章