Mask Scoring R-CNN[詳解]

Mask Scoring R-CNN:Path Aggregation Network for Instance Segmentation(CVPR2019 oral)


(消息來源: 性能超越何愷明Mask R-CNN!華科碩士生開源圖像分割新方法 | CVPR19 Oral)

Mask R-CNN,一種簡潔、靈活的實例分割框架,大神何愷明的“拿手作”之一。自2017年一出場就驚豔了四方研究者,何愷明也藉此一舉拿下ICCV 2017最佳論文獎。Mask Scoring R-CNN,在COCO圖像實例分割任務上超越了何愷明的Mask R-CNN,拿下了計算機視覺頂會CVPR 2019的口頭報告。

新鮮出爐的Mask Scoring R-CNN,性能是怎樣超越前輩的呢?

關鍵就在名字裏的“打分”(Scoring)。這篇論文中,研究人員提出了一種給算法的“實例分割假設”打分的新方法。這個分數打得是否準確,就會影響實例分割模型的性能。而Mask R-CNN等前輩,用的打分方法就不太合適。這些模型在實例分割任務裏,雖然輸出結果是一個蒙版,但打分卻是和邊界框目標檢測共享的,都是針對目標區域分類置信度算出來的分數。這個分數,和圖像分割蒙版的質量可未必一致,用來評價蒙版的質量,可能就會出偏差。

於是,這篇CVPR 2019論文就提出了一種新的打分方法:給蒙版打分,他們稱之爲蒙版得分mask score)。


一、Abstract摘要&Introduction介紹

Abstract

讓一個深度網絡意識到自己預測的質量是一個有趣但重要的問題。在實例分割任務中,大多數實例分割框架都採用實例分類的置信度作爲Mask質量分數。然而,被量化爲mask實例與其地面實況之間的IoU的Mask質量通常與分類分數相關性不強。在本文中,我們研究了這個問題,並提出了包含一個網絡塊的Mask評分R-CNN來學習預測實例Mask的質量。提出的網絡塊將實例特徵和相應的預測Mask結合起來,對Mask IoU進行回溯。Mask評分策略校正Mask質量和Mask評分之間的偏差,通過在COCO AP評估過程中優先考慮更準確的Mask預測,提高實例分割性能。通過對COCO數據集的廣泛評估,Mask score R-CNN爲不同的模型帶來了一致和顯著的收益,並且優於最先進的Mask R-CNN。我們希望我們的簡單有效的方法將爲改進實例分割提供一個新的方向。

Introduction

深度網絡極大地推動了計算機視覺的發展,在分類[22,16,35]、目標檢測[12,17,32,27,33,34]、語義分割[28,4,37,18]等任務中取得了一系列的最新進展。從計算機視覺中深度學習的發展可以看出,深度網絡的能力正逐步從圖像水平預測[22]發展到區域/盒級預測[12]、像素級預測[28]、實例/Mask預測[15]。重新進行 詳細的預測的能力不僅僅需要更細節的標籤,也需要更多精細的網絡結構設計。

本文主要研究的是實例分割問題,這是目標檢測從粗糙的框級實例識別到精確像素級分類的自然下一步。具體地說,本文提出了一種對實例分割假設進行評分的新方法,這對於實例分割的評價是十分重要的。究其原因,大部分的評價指標都是根據假設分數來定義的,更精確的分數有助於更好的表徵模型的性能。例如,precision-recall curve和average precision (AP)常用於具有挑戰性的實例分割數據集COCO[26]。如果一個實例分割假說不是正確得分,可能會錯誤地認爲是假陽性或假陰性,從而導致AP的減少。

然而,在大多數實例分割管道,如Mask R-CNN[15]和MaskLab[3],實例Mask的分數與box-level分類置信度共享,由分類器應用於預測建議功能。使用分類置信度來度量Mask質量是不合適的,因爲它只用於區分proposal的語義類別,而不知道實例Mask的實際質量和完整性。分類置信度與Mask質量的偏差如圖1所示,其中實例分割假設得到準確的box-level定位結果和較高的分類分值,但對應的Mask不準確。顯然,使用這樣的分類分數對Mask進行評分會降低評價結果。

不像以前的方法,目的是獲得更準確的實例定位或分割Mask,我們的方法側重於評分的Mask。爲了實現這個目標,我們的模型學習每個Mask的一個分數,而不是使用它的分類分數。爲了清晰起見,我們稱之爲“習得分數蒙版分數”learned score mask score。

受AP指標的啓發,實例分割利用預測Mask與地面真值Mask之間的像素級相交過並(IoU)來描述實例分割質量,提出了一種直接學習IoU的網絡。在本文中,這個IoU表示爲MaskIoU。一旦我們在測試階段得到了預測的Mask分數,通過將預測的Mask分數與分類分數相乘來重新評估Mask分數。因此,Mask評分同時考慮語義類別和實例Mask的完整性。

學習MaskIoU不同於proposal classification或mask prediction,它需要將預測的mask與object feature進行比較。在Mask RCNN框架中,我們實現了一個名爲MaskIoU head的Mask預測網絡。它以MaskIoU head的輸出和RoI特徵作爲輸入,使用簡單的迴歸損耗進行訓練。我們將提出的模型命名爲帶MaskIoU head的Mask R-CNN,即Mask score R-CNN (MS R-CNN)。我們使用Mask R-CNN進行了大量的實驗,結果表明,我們的方法提供了一致和顯著的性能改進,這歸因於Mask質量和評分之間的一致性。

總而言之,這項工作的主要貢獻如下

1. 我們提出了蒙版評分R-CNN,這是第一個解決實例分割假設評分問題的框架。爲提高實例分割模型的性能開闢了新的方向。考慮到實例Mask的完整性,如果實例Mask的分類分數較高,而Mask不夠好,則可以對實例Mask的分數進行扣分。

2. 我們的MaskIoU head非常簡單有效。在具有挑戰性的COCO基準測試上的實驗結果顯示,當使用來自MS R-CNN的Mask評分而不是僅僅使用分類置信度時,AP在不同的主幹網絡上持續提高約1.5%。


二、Related Work

1. Instance Segmentation

目前的實例分割方法大致可以分爲兩類。一種是基於檢測的方法,另一種是基於分割的方法。基於檢測的方法利用最先進的檢測器,如速度更快的R-CNN [33], R-FCN[8],獲取每個實例的區域,然後預測每個區域的Mask。Pinheiro et al.[31]等人提出了深度Mask,以滑動窗口的方式對中心對象進行分割和分類。Dai et al.[6]等人提出了實例敏感FCNs來生成位置敏感的映射,並將它們組裝起來以獲得最終的Mask。FCIS[23]使用具有內/外分數的位置敏感映射來生成實例分割結果。He et al.[15]提出了一種基於更快的R-CNN的Mask R-CNN,通過添加instance level語義分割分支。Chen等人在Mask RCNN的基礎上提出了MaskLab,利用position sensitive scores來獲得更好的結果。然而,這些方法的一個潛在缺陷是Mask質量僅由分類分數來衡量,從而導致了上面討論的問題。

基於分割的方法首先對每個像素的類別標籤進行預測,然後將其分組形成實例分割結果。Liang等人使用光譜聚類對像素進行聚類。其他工作,如[20,21],在聚類過程中添加邊界檢測信息。Bai等人預測像素級的能量值,並使用分水嶺算法進行分組。最近,有一些研究[30,11,14,10]使用度量學習來學習嵌入。具體來說,這些方法學習每個像素的嵌入,以確保來自相同實例的像素具有類似的嵌入。然後,對學習到的嵌入進行聚類來獲取最終實例標籤。由於這些方法沒有顯式的分數來度量實例Mask質量,因此它們必須使用平均像素級分類分數作爲替代。上述兩類方法都沒有考慮Mask分數和Mask質量之間的對齊。由於Mask分數的不可靠性,如果一個Mask假設的借據對地面真值的比值較高,則該Mask假設的Mask分數較低,則該假設的優先級較低。在這種情況下,最終的AP因此降級。

2. Detection Score Correction

針對檢測框的分類分數校正方法有幾種,其目標與我們的方法相似。Tychsen-Smith等人[36]提出了適應度NMS,利用檢測到的邊界框和它們的ground truth之間的IoU來校正檢測分數。將箱型預測作爲分類任務。我們的方法與此方法的不同之處在於,我們將MaskIoU估計作爲一項迴歸任務。Jiang et al.[19]提出了直接regressed box IoU的IoU- net,並將預測的IoU用於NMS和bounding box細化。在[5]中,Cheng等人對假陽性樣本進行了討論,並使用一個單獨的網絡對這些樣本的分數進行校正。SoftNMS[2]使用兩個框之間的重疊來糾正低分值框。Neumann et al.[29]等人提出放寬Softmax來預測用於安全關鍵行人檢測的標準Softmax中的溫度比例因子值。與這些側重於邊界框級別檢測的方法不同,我們的方法是爲實例分割而設計的。在我們的MaskIoU head中對實例Mask進行了進一步的處理,使得網絡能夠感知到實例Mask的完整性,最終的Mask分數能夠反映出實例分割假設的實際質量。這是提高實例分割性能的一個新方向。


三、Method

1. Motivation

在當前的Mask R-CNN框架中,檢測的分數(即假設由分類得分中最大的元素決定。由於背景雜波、遮擋等問題,分類分數可能較高,但Mask質量較低,如圖1所示。爲了定量分析這個問題,我們將mask R-CNN的vanilla mask評分與預測的mask及其ground truth mask (MaskIoU)之間的實際IoU進行比較。具體來說,我們使用Mask R-CNN和ResNet-18 FPN對COCO 2017驗證數據集進行實驗。然後選取MaskIoU和classification scores均大於0.5的Soft-NMS檢測假設。MaskIoU在分類分數上的分佈情況如圖2 (a)所示,每個MaskIoU區間的平均分類分數如圖2 (c)所示爲藍色,說明在Mask R-CNN中,分類分數與MaskIoU的相關性並不好。

在大多數實例分割評估協議中,如COCO,檢測假設的MaskIoU低,分數高是有害的。在許多實際應用中,確定檢測結果何時可信以及何時不可用[29]非常重要。這促使我們根據MaskIoU爲每一個檢測假設學習一個校準過的Mask評分。在不喪失通用性的情況下,我們研究了Mask R-CNN框架,並提出了Mask評分R-CNN (MS R-CNN),這是一個帶有附加MaskIoU模塊的MaskR-CNN,該模塊學習Mask對齊的Mask評分。我們框架的預測Mask得分如圖2 (b)所示,橙色直方圖如圖2 (c)所示。

2. Mask scoring in Mask R-CNN

Mask scoring R-CNN概念簡單:Mask RCNN帶MaskIoU Head,將實例特徵與預測Mask一起作爲輸入,預測輸入Mask與ground truthMask之間的IoU,如圖3所示。我們將在下面的小節中介紹我們的框架的詳細信息。

Mask R-CNN:

我們首先簡要回顧一下Mask R-CNN[15]。在快速的R-CNN[33]之後,Mask R-CNN由兩個階段組成。第一階段是區域建議網絡(RPN)。它提出了候選對象邊界框,而不考慮對象類別。第二階段稱爲R-CNN階段,對每個proposal使用RoIAlign提取特徵,並進行proposal分類、包圍盒迴歸和Mask預測。

Mask scoring:

我們將·Smask定義爲預測Mask的評分。理想Smask等於預測Mask與其匹配的ground truth Mask之間的像素級IoU,之前稱爲MaskIoU。理想的Smask也應該只對ground truth類別有正的值,對其他類爲零,因爲Mask只屬於一個類。這要求Mask評分在兩項任務上都能很好地工作:將Mask分類到正確的類別,以及對前景對象類別的Mask進行迴歸。僅僅使用一個目標函數來訓練這兩個任務是很困難的。爲了簡化,我們可以將mask score學習任務分解爲mask分類和IoU迴歸,對於所有對象類別,記爲 。Scls側重於對proposal進行分類,Siou側重於迴歸MaskIoU。對於scls, scls的目標是對屬於哪個類的proposal進行分類,這已經在R-CNN階段的分類任務中完成。所以我們可以直接取相應的分類分數。迴歸siou是本文的研究目標,下文將對此進行討論。

MaskIoU head:

MaskIoU head的目的是將預測Mask與其基礎真值Mask之間的借據進行迴歸。我們將RoIAlign層的feature與預測的mask連接起來作爲MaskIoU head的輸入。在拼接時,我們使用kernel size爲2,stride爲2的max pooing layer使得預測的mask具有與RoI相同的空間尺寸。對於ground truth類,我們只選擇返回MaskIoU(對於測試,我們選擇預測的類),而不是所有的類。我們的MaskIoU head由4個卷積層和3個全連通層組成。對於4個卷積層,我們按照MaskIoU head,將所有卷積層的核大小和濾波器個數分別設置爲3和256。對於3個完全連接的(FC)層,我們遵循RCNN head,將前兩個FC層的輸出設置爲1024,最後一個FC層的輸出設置爲類的數量。

Training:

對於MaskIoU head的訓練,我們使用RPN proposal作爲訓練樣本。訓練樣本在proposal box和匹配的ground truth box之間需要有一個IoU大於0.5,與Mask R-CNN的Mask head的訓練樣本相同。爲了生成每個訓練樣本的迴歸目標,我們首先得到目標類的預測Mask,並使用0.5的閾值對預測Mask進行二值化,然後利用二進制Mask與其匹配的ground truth之間的Mask作爲目標Mask。我們使用l2損失來回歸MaskIoU,損失權重設置爲1。將提出的MaskIoU head集成到Mask R-CNN中,對整個網絡進行端到端訓練。

Inference:

在推理過程中,我們只使用MaskIoU head對R-CNN生成的分類分數進行校正。具體假設Mask R-CNN的R-CNN階段輸出N個邊框框,其中選取SoftNMS[2]後的top-k(即k = 100)計分框。然後將top-k盒輸入MaskIoU head,生成多類Mask。這是標準的Mask R-CNN推斷過程。我們也遵循這個過程,並輸入top-k目標Mask來預測Mask。將預測的Mask與分類分數相乘,得到新的校準Mask分數作爲最終Mask置信度。


Experiments

所有實驗均在COCO數據集[26]上進行,對象類別80個。我們遵循COCO 2017設置,使用115k圖像訓練分割進行訓練,5k驗證分割進行驗證,20k測試開發分割進行測試。我們使用COCO評估指標AP(平均超過IoU閾值)報告結果,包括[email protected][email protected]和APS、APM、APL(不同規模的AP)。[email protected](或[email protected])表示使用IoU閾值0.5(或0.75)來確定在評估中預測的邊框或Mask是否爲正。除非特別說明,AP使用mask IoU進行評估。

1. Implementation Details

我們使用複製的Mask R-CNN進行所有實驗。我們使用基於ResNet-18的FPN網絡進行消融研究,使用基於Faster RCNN/FPN/DCN+FPN[9]的ResNet-18/50/101與其他基線結果進行比較。對於resnet - 18fpn,輸入圖像將大小調整爲短軸爲600px,長軸爲最大1000px,以便進行培訓和測試。與標準FPN[25]不同,ResNet-18中RPN方案和feature extractor只使用C4, C5。對於ResNet-50/101,輸入圖像的短軸調整爲800px,長軸調整爲1333px,用於訓練和測試。ResNet-50/101的其餘配置遵循檢測器[13]。我們對所有網絡進行18次訓練,在14次和17次訓練後,學習率降低0.1倍。使用動量0.9同步SGD作爲優化器。在測試中,我們使用SoftNMS並保留每個圖像的前100分檢測。

2. Quantitative Results

我們在ResNet-18/50/101等不同的backbone網和更快的R-CNN/FPN/DCN+FPN[9]等不同的框架上報告了我們的結果,證明了我們方法的有效性。結果如表1、表2所示。我們使用APm報告實例分割結果,APb報告檢測結果。我們報告複製的Mask R-CNN結果和Mask R-CNN結果。如表1所示,與Mask R-CNN相比,我們的Mask R-CNN對backbone網不敏感,能夠在所有backbone網上實現穩定的改善:我們的Mask R-CNN能夠得到顯著的改善(約1.5 AP)。特別是對於[email protected],我們的方法可以將基線提高2個點左右。表2表明,我們的Mask R-CNN對不同的框架具有魯棒性,包括更快的R-CNN/FPN/DCN+FPN。此外,我們的Mask R-CNN不影響邊框檢測性能;實際上,它略微提高了邊界框檢測性能。test-dev的結果如表3所示,僅報告實例分割結果。

3. Ablation Study

我們對COCO的評價方法進行了綜合評價2017驗證集。我們使用ResNet-18 FPN進行所有消融研究實驗。

The design choices of MaskIoU head input:

我們首先研究MaskIoU head的設計選擇輸入,Mask的融合預測分數地圖(28×28×C)從mask head和RoI特徵。圖4所示爲幾種設計方案,說明如下:

(a)目標mask拼接RoI特徵:取目標類的分數映射,最大合併,與RoI特徵拼接。
(b)目標mask乘以RoI特徵:取目標類的分數圖,最大合併,與RoI特徵相乘。
(c)所有蒙版連接RoI特性:所有c類蒙版分數映射都是max-pooled並連接RoI特徵。
(d)目標mask連接高分辨率RoI特徵:分數的地圖目標類被連接和28×28 RoI特徵。

結果如表4所示。我們可以看到mask head的性能對不同的融合mask預測和RoI特徵的方法是魯棒的。在各種設計中都可以觀察到性能的提高。由於將目標分數圖和RoI特性連接起來可以得到最好的結果,所以我們將其作爲默認選擇。

The choices of the training target:

如前所述,我們將mask score learning任務分解爲mask classification和MaskIoU regression。有可能直接學習蒙版分數嗎?此外,RoI可能包含多個類別的對象。我們應該學習所有類別的MaskIoU嗎?如何設定MaskIoU head的培訓目標還有待探索。培訓目標有很多不同的選擇:

1. 學習目標類別的MaskIoU,同時忽略建議中的其他類別。這也是本文默認的訓練目標,也是這一段所有實驗的對照組。
2. 學習所有類別的MaskIoU。如果某個類別沒有出現在RoI中,則將其目標MaskIoU設置爲0. 此設置表示僅使用迴歸進行預測MaskIoU,它要求迴歸者意識到沒有不相關的類別。
3.學習所有正面類別的MaskIoU,其中正面類別指的是類別app

表5給出了上述訓練目標的結果。通過對比設置1和設置2,我們可以發現所有類別的訓練MaskIoU(迴歸僅基於MaskIoU預測)都會顯著降低性能,這驗證了我們認爲使用單一目標函數進行訓練分類和迴歸是困難的觀點。


設置3的性能不如設置1,這是合理的,因爲所有正面類別的迴歸MaskIoU會增加MaskIoU head的負擔。因此,學習目標類別的MaskIoU是我們的默認選擇。

How to select training samples:

由於所提出的MaskIoU head是建立在Mask R-CNN框架之上的,所以根據Mask R-CNN的設置,MaskIoU head的所有訓練樣本都有一個大於0.5的box-level IoU,其ground truth boundary box。然而,他們的Mask不能超過0.5。給定一個閾值τ,我們使用的樣本MaskIoU大於τ訓練MaskIoU head。表6顯示了結果。結果表明,所有實例的訓練效果最好。

4. Discussion

在本節中,我們將首先討論預測的mask質量,然後研究mask評分R-CNN的上界性能,如果預測的最後分析了mask head的計算複雜度。在討論中,所有結果在COCO 2017驗證集上同時使用weak backbone網,即, ResNet-18 FPN和強大的weak backbone網,即resnet - 101 DCN+FPN。

The quality of the predicted MaskIoU:

我們使用地面真值與預測mask之間的相關係數來衡量我們預測的質量。回顧我們的測試過程,我們根據分類分數選擇SoftNMS後的前100個評分框,將檢測到的框輸入mask head,得到預測mask,然後使用預測mask和RoI特性作爲Mask head的輸入。將mask head輸出和分類分數進一步整合到最終mask分數中。

在COCO 2017驗證數據集中,我們爲每張圖像保留100張預測MaskIoU,從所有5000張圖像中收集50萬張預測。我們在圖5中繪製了每個預測及其對應的基本事實。我們可以看到,MaskIoU預測與它們的ground truth有很好的相關性,尤其是對於MaskIoU較高的預測。ResNet-18 FPN和ResNet-101 DCN+FPN骨幹網預測結果與地面真值的相關係數均在0.74左右。結果表明,預測的質量對backbone網的變化不敏感。這一結論也與表1一致。由於之前沒有對MaskIoU進行預測的方法,我們參考了之前[19]對IoU邊界框進行預測的工作。[19]得到的相關係數爲0.617,低於我們的相關係數。

The upper bound performance of MS R-CNN:

在這裏,我們將討論方法的上界性能。對於每個預測的Mask,我們可以找到匹配的ground truthMask;然後我們用ground truth MaskIoU來代替ground truth MaskIoU大於0時的預測MaskIoU。結果如表7所示。結果表明,蒙版評分R-CNN始終優於蒙版R-CNN。與理想的Mask評分R-CNN預測相比,實際Mask評分R-CNN仍有提高的空間,ResNet-18 FPNb backbone net有2.2%的AP, ResNet-101 DCN+FPNb backbone net有2.6%的AP。

Model size and running time:

我們的MaskIoU head每套方案有0.39G的FLOPs, Mask head每套方案有0.53G的FLOPs。我們使用一個TITAN V GPU來測試速度(秒/圖像)。對於ResNet-18 FPN, Mask R-CNN和MS R-CNN的速度都在0.132左右。ResNet-101 DCN+FPN Mask R-CNN和MS R-CNN的速度都在0.202左右。Mask評分R-CNN中mask head的計算成本可以忽略不計。


Conclusion

本文研究了實例分割Mask的計分問題,提出了Mask計分RCNN。通過在Mask R-CNN中添加一個Mask head,幾十個Mask與MaskIoU對齊,這在大多數實例分割框架中通常被忽略。所建議的Mask head非常有效且易於實現。在COCO的基準測試中,大量的結果顯示Mask對R-CNN的評分一致且明顯優於Mask R-CNN。它還可以應用於其他實例分割網絡中,獲得更可靠的Mask分數。我們希望我們的簡單有效的方法可以作爲一個基準,並幫助未來的實例分割任務的研究。

 

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