1. 程式人生 > >Mask RcNN論文翻譯

Mask RcNN論文翻譯

Mask Rcnn英文版論文連結:https://arxiv.org/pdf/1703.06870.pdf

Mask Rcnn專案地址(caffe2):https://github.com/facebookresearch/Detectron


摘要

我們提出了一個概念上簡單,靈活和通用的目標分割框架。我們的方法有效地檢測影象中的目標,同時為每個例項生成高質量的分割掩碼。稱為Mask R-CNN的方法通過新增一個與現有目標檢測框迴歸並行的,用於預測目標掩碼的分支來擴充套件Faster R-CNN。Mask R-CNN訓練簡單,相對於Faster R-CNN,只需增加一個較小的開銷,執行速度可達5 FPS。此外,Mask R-CNN很容易推廣到其他任務,例如,允許我們在同一個框架中估計人的姿勢。我們在COCO挑戰的所有三個專案中取得了最佳成績,包括目標分割,目標檢測和人體關鍵點檢測。在沒有使用額外技巧的情況下,Mask R-CNN優於所有現有的單一模型,包括COCO 2016挑戰優勝者。我們希望我們的簡單而有效的方法將成為一個促進未來目標級識別領域研究的堅實基礎。我們稍後將提供程式碼。

簡介

目標檢測和語義分割的效果在短時間內得到了很大的改善。在很大程度上,這些進步是由強大的基線系統驅動的,例如,分別用於目標檢測和語義分割的Fast/Faster R-CNN 和全卷積網路(FCN)框架。這些方法在概念上是直觀的,提供靈活性和魯棒性,以及快速的訓練和推理。我們在這項工作中的目標是為目標分割開發一個相對有力的框架。

目標分割是具有挑戰性的,因為它需要正確檢測影象中的所有目標,同時也精確地分割每個目標。因此,它結合了來自經典計算機視覺任務目標檢測的元素,其目的是對目標進行分類,並使用邊界框定位每個目標,以及語義分割(通常來說,目標檢測來使用邊界框而不是掩碼來標定每一個目標檢測,而語義分割以在不區分目標的情況下表示每畫素的分類。然而,目標分割既是語義分割,又是另一種形式的檢測。)鑑於此,人們可能認為需要一種複雜的方法才能取得良好的效果。然而,我們的研究表明,使用非常簡單,靈活和快速的系統就可以超越先前的最先進的目標分割結果。

我們稱之為Mask R-CNN的方法通過新增一個用於在每個感興趣區域(RoI)上預測分割掩碼的分支來擴充套件Faster R-CNN [34],這個分支與用於分類和目標檢測框迴歸的分支並行執行,如下圖(圖1)所示(用於目標分割的Mask R-CNN框架):

Figure 1

掩碼分支是作用於每個RoI的小FCN,以畫素到畫素的方式預測分割掩碼。Mask R-CNN易於實現和訓練,它是基於Faster R-CNN這種靈活的框架的。此外,掩碼分支只增加了很小的計算開銷。

原理上,Mask R-CNN是Faster R-CNN的直接擴充套件,而要獲得良好的結果,正確構建掩碼分支至關重要。最重要的是,Faster R-CNN不是為網路輸入和輸出之間的畫素到畫素對齊而設計的。在《how RoIPool》 

 中提到,實際上,應用到目標上的核心操作執行的是粗略的空間量化特徵提取。為了修正錯位,我們提出了一個簡單的,量化無關的層,稱為RoIAlign,可以保留精確的空間位置。儘管是一個看似很小的變化,RoIAlign起到了很大的作用:它可以將掩碼準確度提高10%至50%,在更嚴格的位置度量下顯示出更大的收益。其次,我們發現解耦掩碼和分類至關重要:我們為每個類獨立地預測二進位制掩碼,這樣不會跨類別競爭,並且依賴於網路的RoI分類分支來預測類別。相比之下,FCN通常執行每畫素多類分類,分割和分類同時進行,基於我們的實驗,對於目標分割效果不佳。

Mask R-CNN超越了COCO例項分割任務[28]上所有先前最先進的單一模型結果,其中包括COCO 2016挑戰優勝者。作為副產品,我們的方法也優於COCO物件檢測任務。在消融實驗中,我們評估多個基本例項,這使我們能夠證明其魯棒性並分析核心因素的影響。

我們的模型可以在GPU上以200毫秒每幀的速度執行,使用一臺有8個GPU的機器,在COCO上訓練需要一到兩天的時間。我們相信,快速的訓練和測試速度,以及框架的靈活性和準確性將促進未來目標分割的研究。

最後,我們通過COCO關鍵點資料集上的人體姿態估計任務來展示我們框架的通用性。通過將每個關鍵點視為one-hot二進位制掩碼,只需要很少的修改,Mask R-CNN可以應用於人體關鍵點檢測。不需要額外的技巧,Mask R-CNN超過了COCO 2016人體關鍵點檢測比賽的冠軍,同時執行速度可達5 FPS。因此,Mask R-CNN可以被更廣泛地看作是用於目標級識別的靈活框架,並且可以容易地擴充套件到更復雜的任務。

我們將釋出程式碼以促進未來的研究。

相關工作

R-CNN:R-CNN方法是通過找到一定數量的候選區域 ,並獨立地在每個RoI上執行卷積 來進行目標檢測的。 基於R-CNN的改進 ,使用RoIPool在特徵圖上選取RoI,實現了更快的速度和更好的準確性。Faster R-CNN通過使用RPN學習注意機制來產生候選框。還有後續的對Faster R-CNN靈活性和魯棒性的改進(例如  )。這是目前在幾個基準測試中領先的框架。

目標分割:在R- CNN的有效性的推動下,目標分割的許多方法都是基於segment proposals的。先前的方法   依賴自下而上的分割 。 DeepMask 通過學習提出分割候選,然後使用Fast R-CNN分類。在這些方法中,分割先於識別,這樣做既慢又不太準確。同樣,Dai等人提出了一個複雜的多級聯級聯,從候選框中預測候選分割,然後進行分類。相反,我們的方法並行進行掩碼和類標籤的預測,更簡單也更靈活。

最近,Li等人中的分割候選系統與中的目標檢測系統進行了“全卷積目標分割”(FCIS)的融合。 在  中的共同想法是用全卷積得到一組位置敏感的輸出通道候選。這些通道同時處理目標分類,目標檢測和掩碼,這使系統速度變得更快。但FCIS在重疊例項上出現系統錯誤,併產生虛假邊緣(圖5)。

Mask R-CNN

Mask R-CNN在概念上是簡單的:Faster R-CNN為每個候選目標輸出類標籤和邊框偏移量。為此,我們添加了一個輸出目標掩碼的第三個分支。因此,Mask R-CNN是一種自然而直觀的點子。但是,附加的掩碼輸出與類和框輸出不同,需要提取物件的更精細的空間佈局。接下來,我們介紹Mask R-CNN的關鍵特點,包括畫素到畫素對齊,這是Fast/Faster R-CNN的主要缺失。

Faster R-CNN:我們首先簡要回顧一下Faster R-CNN檢測器。Faster R-CNN由兩個階段組成。稱為區域提議網路(RPN)的第一階段提出候選目標邊界框。第二階段,本質上是Fast R-CNN ,使用RoIPool從每個候選框中提取特徵,並進行分類和邊界迴歸。兩個階段使用的特徵可以共享,以便更快的推理。可以參考,瞭解Faster R-CNN和其他框架之間的最新綜合比較。

Mask R-CNN:Mask R-CNN採用相同的兩個階段,具有相同的第一階段(即RPN)。在第二階段,與預測類和框偏移量並行,Mask R-CNN還為每個RoI輸出二進位制掩碼。這與最近的其它系統相反,其分類取依賴於掩碼預測(例如  )。我們的方法遵循Fast R-CNN [12],預測類和框偏移量並行(這在很大程度上簡化了R-CNN的多級流水線)。

在訓練期間,我們將在每個取樣後的RoI上的多工損失函式定義為L=Lcls+Lbox+LmaskL=Lcls+Lbox+Lmask。分類損失LclsLcls和檢測框損失LboxLbox中定義的相同。掩碼分支對於每個RoI的輸出維度為Km2Km2,即KK個解析度為m×mm×m的二進位制掩碼,每個類別一個,KK表示類別數量。我們為每個畫素應用Sigmoid,並將LmaskLmask定義為平均二進位制交叉熵損失。對於真實類別為kk的RoI,僅在第kk個掩碼上計算LmaskLmask(其他掩碼輸出不計入損失)。

我們對LmaskLmask的定義允許網路為每個類獨立地預測二進位制掩碼,這樣不會跨類別競爭。我們依靠專用分類分支預測用於選擇輸出掩碼的類標籤。這將解耦掩碼和類預測。這與通常將FCN 應用於畫素級Softmax和多重交叉熵損失的語義分段的做法不同。在這種情況下,掩碼將在不同類別之間競爭。而我們的方法,使用了其它方法沒有的畫素級的Sigmod和二進位制損失。我們通過實驗發現,這種方法是改善目標分割效果的關鍵。

掩碼錶示:掩碼錶示輸入目標的空間佈局。因此,與通過全連線(fc)層不可避免地縮成短輸出向量的類標籤或框偏移不同,提取掩碼的空間結構可以通過由卷積提供的畫素到畫素對應自然地被解決。

具體來說,我們使用FCN來為每個RoI預測一個m×mm×m的掩碼。這允許掩碼分支中的每個層顯式的保持m×mm×m的物件空間佈局,而不會將其縮成缺少空間維度的向量表示。與以前使用fc層掩碼預測的的方法不同  ,我們的全卷積表示需要更少的引數,並且如實驗所證明的更準確。

這種畫素到畫素的行為需要RoI特徵,它們本身就是小特徵圖。為了更好地對齊,以準確地保留顯式的畫素空間對應關係,我們開發出在掩模預測中發揮關鍵作用的以下RoIAlign層。

RoIAlign:RoIPool是從每個RoI提取小特徵圖(例如,7×77×7)的標準操作。 RoIPool首先將浮點數表示的RoI縮放到與特徵圖匹配的粒度,然後將縮放後的RoI分塊,最後彙總每個塊覆蓋的區域的特徵值(通常使用最大池化)。例如,對在連續座標系上的xx計算[x/16][x/16],其中16是特徵圖步幅,[][⋅]表示四捨五入。同樣地,當對RoI分塊時(例如7×77×7)時也執行同樣的計算。這樣的計算使RoI與提取的特徵錯位。雖然這可能不會影響分類,因為分類對小幅度的變換具有一定的魯棒性,但它對預測畫素級精確的掩碼有很大的負面影響。

為了解決這個問題,我們提出了一個RoIAlign層,可以去除RoIPool的錯位,將提取的特徵與輸入準確對齊。我們提出的改變很簡單:我們避免避免計算過程中的四捨五入(比如,我們使用x/16x/16代替[x/16][x/16])。我們選取分塊中的4個常規的位置,使用雙線性插值來計算每個位置的精確值,並將結果彙總(使用最大或平均池化)。(我們抽取四個常規位置,以便我們可以使用最大或平均池化。事實上,在每個分塊中心取一個值(沒有池化)幾乎同樣有效。我們也可以為每個塊取樣超過四個位置,我們發現這些位置的收益遞減。)

如我們在中所示,RoIAlign的改進效果明顯。我們還比較了中提出的RoIWarp操作。與RoIAlign不同,RoIWarp忽略了對齊問題,並在的實現中,有像RoIPool那樣的四捨五入計算。因此,即使RoIWarp也採用提到的雙線性重取樣,如實驗所示(更多細節見表格2c),它與RoIPool效果差不多。這表明了對齊起到了關鍵的作用。

網路架構:為了證明我們的方法的普適性,我們構造了多種不同結構的Mask R-CNN。詳細來說就是,我們使用不同的:(i)用於整個影象上的特徵提取的下層卷積網路,以及(ii)用於檢測框識別(分類和迴歸)和掩碼預測的上層網路。

我們使用”網路-深度-特徵輸出層”的方式命名底下層卷積網路。我們評估了深度為50或101層的ResNet和ResNeXt網路。使用ResNet的Faster R-CNN從第四階段的最終卷積層提取特徵,我們稱之為C4。例如,使用ResNet-50的下層網路由ResNet-50-C4表示。這是   中常用的選擇。

我們還探討了Lin等人 最近提出的另一種更有效的下層網路,稱為特徵金字塔網路(FPN)。 FPN使用具有橫旁路連線的自頂向下架構,以從單尺度輸入構建網路中的特徵金字塔。使用FPN的Faster R-CNN根據其尺度提取不同級別的金字塔的RoI特徵,不過其它部分和平常的ResNet類似。使用ResNet-FPN進行特徵提取的Mask R-CNN可以在精度和速度方面獲得極大的提升。有關FPN的更多細節,參見

對於上層網路,我們基本遵循了以前論文中提出的架構,我們添加了一個全卷積的掩碼預測分支。具體來說,我們擴充套件了 ResNet和FPN中提出的Faster R-CNN的上層網路。詳細資訊如下圖(圖3)所示:(上層網路架構:我們擴充套件了兩種現有的Faster R-CNN上層網路架構 ,分別添加了一個掩碼分支。圖中數字表示解析度和通道數,箭頭表示卷積、反捲積或全連線層(可以通過上下文推斷,卷積減小維度,反捲積增加維度。)所有的卷積都是3×33×3的,除了輸出層,是1×11×1的。反捲積是2×22×2的,步進為2,,我們在隱藏層中使用ReLU。左圖中,“res5”表示ResNet的第五階段,簡單起見,我們修改了第一個卷積操作,使用7×77×7,步長為1的RoI代替14×1414×14,步長為2的RoI。右圖中的“×4×4”表示堆疊的4個連續的卷積。)

Figure 3

ResNet-C4的上層網路包括ResNet的第五階段(即9層的“res5”