Mask Scoring R-CNN 論文學習

論文地址:https://arxiv.org/abs/1903.00241?context=cs
代碼地址:[https:// github.com/zjhuang22/maskscoring_rcnn](https:// github.com/zjhuang22/maskscoring_rcnn)

Abstract

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

1. Introduction

深度網絡極大地推進了計算機視覺的發展,在分類、目標檢測、語義分割等任務上都去得了一系列的突破。從CV領域深度學習的發展可以看出,深度網絡的能力正逐步從圖像級預測發展到區域/邊框級預測、像素級預測、實例/mask預測。細粒度預測的能力不僅僅需要更精細的標籤,也需要更多巧妙的網絡結構設計。

本文主要研究了實例分割問題,這是目標檢測從粗糙的邊框級實例識別到精準的像素級分類的自然演進。具體點,這篇論文提出了一種對實例分割假設進行評分的新方法,這對於實例分割的評價是十分重要的。究其原因,大部分的評價指標都是根據假設分數來定義的,更準確的分數有助於更好的表現模型的性能。例如,precision-recall curve 和 average precision(AP)經常用在實例分割數據集COCO。如果一個實例分割假設的分數不準確,它可能會被錯誤地認爲是 false positive 或 false negative,導致 AP 降低

然而,在大多數實例分割方法中,如 Mask R-CNN 和 MaskLab,實例mask的分數就是邊框的分類置信度,由分類器在候選邊框特徵上預測得到。使用分類置信度來衡量 mask 質量是不合適的,因爲它只用於區分候選邊框的語義類別,而不知道實例mask的實際質量和完整性。分類置信度與mask質量的偏差如圖1所示,其中實例分割假設得到準確的邊框級定位結果和較高的分類置信度,但是對應的mask卻不準確。顯然,使用這樣的分類分數對 mask 進行評分會降低評價的結果。

和之前的方法不同,它們目的是獲取更準確的實例定位或分割mask,本文的方法更加側重於對 mask 進行評分。因此,該模型對每個 mask 學習一個分數,而不是用它的分類分數。爲了清晰起見,我們稱之爲“mask score”

受實例分割中 AP 指標的啓發,它利用預測 mask 和 ground truth mask 之間的像素級的 IoU來表示實例分割的質量,作者提出了一種直接學習 IoU 的方法。本文中,這個 IoU 表示爲 MaskIoU。當我們在測試階段時得到了預測的 MaskIoU,就可以將 MaskIoU和分類分數相乘,重新評估 mask 分數。因此,mask 分數同時考慮了語義類別和實例 mask 的完整性

學習 MaskIoU不同於候選框分類或 mask 預測,它需要將預測的mask和物體特徵進行比較。在 Mask R-CNN框架中,作者實現了一個名爲 MaskIoU head 的 mask 預測網絡。它以 mask head 的輸出和 RoI 特徵作爲輸入,使用簡單的迴歸損失訓練。作者將這個帶有 MaskIoU head 的 Mask R-CNN 模型稱作爲 Mask Score R-CNN(MS R-CNN)。作者使用 MS R-CNN做了大量實驗,結果表明,該方法實現了 mask 質量和mask 分數之間的一致性,可以帶來顯著的性能提升。

總之,本文的主要貢獻如下:

  1. 提出了 Mask Score R-CNN,這是第一個解決實例分割假設評分問題的框架。爲提高實例分割模型的性能開闢了新的方向。考慮到實例 mask 的完整性,如果實例 mask 的分類分數較高,而 mask 沒那麼好,則可以對實例mask的分數進行懲罰
  2. MaskIoU head非常簡單有效。在COCO基準測試上的結果表明,當使用來自 MS R-CNN的 mask分數,而不是僅僅使用分類置信度時,AP 在不同的主幹網絡上可以提高約1.5%

2. Related Work

2.1 實例分割

目前實例分割的方法大致可以分爲兩類。一種是基於檢測的方法,另一種是基於分割的方法。基於檢測的方法利用 state of the art 的檢測器,如速度更快的 R-CNN,R-FCN,獲取每個實例的區域,然後預測每個區域的 mask。Pinheiro等人提出了 DeepMask,以滑動窗口的方式對中心對象進行分割和分類。Dai等人提出了實例敏感的FCNs來生成位敏圖,並將它們組裝起來獲得最終的 mask。FCIS 使用具有內/外分數的位敏圖來生成實例分割結果。He等人提出了一個基於 Faster R-CNN 的 Mask R-CNN,通過添加實例級別語義分割分支。Chen 等人在 Mask R-CNN 基礎上提出了 MaskLab,利用位敏得分來獲得更好的結果。然而,這些方法的一個潛在缺陷就是mask質量僅由分類分數而來,從而導致了上述問題。

基於分割的方法首先對每個像素的類別標籤進行預測,然後將其分組形成實例分割結果。Liang等人使用光譜聚類對像素進行聚類。其它的工作則在聚類過程中添加邊界檢測信息。Bai等人預測像素級的能量值,使用分水嶺算法進行分組。最近,有一些研究使用度量學習來學習embedding。具體來說,這些方法學習每個像素的 embedding,以確保相同實例的像素具有類似的 embedding。然後對於學到的 embedding 進行聚類,獲得最終的實例標籤。由於這些方法沒有直接的分數來衡量實例mask的質量,它們不得不使用平均像素級的分類分數作爲替代。

上述兩類方法都沒有考慮 mask 分數和mask質量之間的對齊。由於mask分數不可靠,如果一個mask假設和 groundtruth 的IoU較高,而 mask score較低,則該mask 假設的優先級就比較低。這樣,最終的AP會降低。

2.2 Detection Score Correction

針對檢測框的分類分數校正的方法有幾種,其目標與本文方法類似。Tychsen-Smith等人提出了 Fitness NMS,利用檢測到的邊框和groundtruth之間的 IoU 來校正檢測分數。它將邊框預測作爲分類任務。本文方法與它不同之處在於,作者將 MaskIoU估計作爲一項迴歸任務。Jiang等人提出了 IoU-Net,直接回歸出邊框的 IoU,將預測的 IoU 用於 NMS 和邊框細化。Cheng等人對 false positive 樣本進行了討論,並使用了一個單獨的網絡對這些樣本的分數進行校正。SoftNMS使用兩個邊框之間的重疊來糾正低分值的邊框。Neumann等人在標準的 softmax 中提出了 Relaxed Softmax 來預測 temperature scaling factor 值,用於安全關鍵行人檢測。

與這些側重於邊框級別檢測的方法不同,本文方法是爲實例分割設計的。在 MaskIoU head 中對實例mask進行了進一步處理,使得網絡可以感知實例 mask 的完整性,最終的 mask 分數能夠反映出實例分割假設的實際質量。這對提高實例分割性能提供了一個新的方向。

3. Method

3.1 Motivation

在當前的 Mask R-CNN 方法中,檢測(即實例分割)的分數由分類得分中最大的元素決定。由於背景遮擋等問題,分類分數可能較高,但 mask 質量較低,如圖1所示。爲了定量分析這個問題,我們將 Mask R-CNN 的 mask 分數,和預測的 mask與 ground truth mask 之間的 IoU 進行了比較(MaskIoU)。具體地說,作者使用 Mask R-CNN 和 ResNet-18 FPN 在 COCO2017 驗證數據集上進行實驗。然後在 SoftNMS 時選取 MaskIoU 和分類分數大於 0.5 的檢測假設。MaskIoU 和分類分數之間的分佈如圖2(a)所示,每個 MaskIoU 區間的平均分類分數如圖2©所示,藍色直方圖。這說明在 Mask R-CNN中,分類分數和 MaskIoU 相關性並不高

在大多數實例分割評估協議中,如COCO,檢測假設的 MaskIoU 較低而分類較高是有問題的。在許多實際應用中,我們需要確定檢測結果何時可信,何時不可信。這促使我們根據 MaskIoU 對每個檢測假設學習一個校正的 mask 分數。在不丟失通用性的前提下,作者研究了 Mask R-CNN 框架,提出了 Mask Score R-CNN(MS-RCNN),它帶有一個附加的 MaskIoU head 模塊,該模塊學習如何將 MaskIoU和 mask 分數對齊起來。本文方法預測的 mask 分數如圖2(b)所示,以及圖2©中的橙色直方圖。

3.2 Mask Scoring in Mask R-CNN

Mask Scoring R-CNN 概念簡單:加上 MaskIoU head 的 Mask R-CNN,將實例特徵和預測的 mask一起作爲輸入,預測輸入 mask 與 ground truth mask 之間的 IoU,如圖3所示。作者將在下面的章節中介紹該框架的詳細內容。

Mask R-CNN:我們首先回顧一下 Mask R-CNN。基於 Faster R-CNN, Mask R-CNN 由兩個階段組成。第一個階段是RPN,提出候選物體邊框,不用考慮物體的類別。第二個階段稱作R-CNN階段,對每個候選框使用 RoIAlign提取特徵,並進行候選框的分類、邊框迴歸和 mask預測。

Mask Scoring:作者將SmaskS_{mask}定義爲預測 mask 的分數。理想的SmaskS_{mask}等於預測mask和ground truth mask之間的像素級的 IoU,之前稱爲 MaskIoU。理想的SmaskS_{mask}也應該只對 ground truth 類別有正值,對其它的類爲0,因爲mask只屬於一個類別。這要求 mask 分數能夠妥善地解決兩個任務:將 mask 分類到正確的類別,以及對前景物體類別候選框的 MaskIoU進行迴歸。

僅僅使用一個目標函數來訓練這兩個任務很困難。爲了簡化,我們可以將 mask 分數學習任務分解爲 mask 分類和 IoU迴歸,對於所有類別,記爲Smask=SclsSiouS_{mask} = S_{cls} \cdot S_{iou}SclsS_{cls}側重於對候選框進行分類,SiouS_{iou}側重於迴歸 MaskIoU。

對於Scls,SclsS_{cls}, S_{cls}的目標是對候選框屬於哪一類進行分類,這已經在R-CNN階段的分類任務中完成了。所以我們可以直接取相應的分類分數。對SiouS_{iou}迴歸是本文的研究目的,下文將展開討論。

MaskIoU Head:它的目的是對預測 mask 和 ground truth mask 之間的IoU進行迴歸。我們將 RoIAlign 層的特徵與預測的 mask 連接起來作爲 MaskIoU head 的輸入。在拼接時,我們使用 kernel size 爲2,stride爲2的 max pooling 層,使得預測 mask 具有和 RoI相同的空間大小。我們只對 ground truth 類別迴歸 MaskIoU(測試時,我們選擇預測的類別),而非所有的類別。該 MaskIoU head 包含了4個卷積層,3個全連接層。在4個卷積層中,我們依據 Mask head 的設置,kernel size 設爲3,濾波器個數設爲256個。對於3個全連接層,我們遵循 R-CNN head,前2個FC層的輸出個數爲1024,最後一層的輸出個數爲類別的個數。

Training:對於 MaskIoU head 的訓練,我們將RPN候選框作爲訓練樣本。訓練樣本的候選框和 ground truth 邊框之間的 IoU必須大於0.5,這和 Mask R-CNN 中的 mask head 是一樣的。爲了生成每個訓練樣本的迴歸目標,我們首先得到目標類的預測 mask,並使用0.5的閾值來對預測mask進行二值化。

然後我們利用 binary mask 和 ground truth 之間的 MaskIoU 作爲目標。使用 l2l_2損失來回歸 MaskIoU,損失權重設爲1。MaskIoU head 整合入 Mask R-CNN,整個網絡可以做到端到端地訓練。

Inference:在推理時,我們只使用 MaskIoU head 對R-CNN生成的分類分數進行校正。具體地說,假設 R-CNN 階段輸出 NN個邊框,然後在SoftNMS之後,選擇其中 topktop-k得分的邊框。然後將這topktop-k個邊框輸入進 Mask head,產生多類別 masks。這就是標準的 Mask R-CNN 的推理操作。我們也遵循了這個步驟,將 topktop-k個目標 masks 輸入進去,預測 MaskIoU。然後將這個 MaskIoU乘上分類分數,便得到新的、校正後的 mask 分數,作爲最終的 mask 置信度。

4. Experiments

Pls read paper for more details.

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