2019CVPR《Mask Scoring R-CNN》


題目:《Mask Scoring R-CNN》

CVPR 2019 Oral Paper(2017年783篇論文,獲得口頭報道的有215篇,oral paper很有含金量)

華中科技大學horizon.ai地平線計算機視覺技術研究中心

1.1 Abstract

讓深度網絡意識到自己的預測質量是一個有趣但重要的問題。在大多數實例分割的任務中,實例分類的置信度被當作mask的質量衡量指標。然而,mask的質量被量化為實例mask和它的ground truth之間的IOU,顯然,mask的質量和分類的質量其實沒有很強的相關性。在這篇文章中,我們研究了這個問題(如何研究,帶着這個問題去思考),並且提出了Mask Scoring R-CNN, 其實包含一個網絡塊network block去學習預測實例mask的質量(這個網絡塊怎么設計的)。這個網絡模塊利用實例特征和相應的預測的mask去回歸mask IOU。這個mask scoring策略可以解決的問題:mask score和mask quality不匹配的問題。 Mask Scoring R-CNN outperforms the state-of-art Mask R-CNN。

  • 針對instance segmentation中的掩碼質量不好提出解決。
  • network block去學習預測實例mask的質量,這個網絡模塊利用實例特征和相應的預測的mask去回歸mask IOU
  • 性能超過了Mask-RCNN

解釋mask score(通常是分類的分數)和mask quality不匹配

可以看到在Mask R-CNN中,分類得分很高,mask質量卻很不盡人意。

  • 第一張圖片男人左側身子mask沒有覆蓋,女人的腿mask缺失;
  • 第二張圖片貓的頭mask沒有覆蓋;
  • 第三張圖像小象的mask只有一點點;
  • 第四張圖片紅色衣服的人mask殘缺。

說明mask的質量和分類的質量在mask-rcnn中並沒有很好的關聯。

1.2 Introduction

在實例分割中,接下來很自然的一步就是目標檢測將會從粗糙的框級box-level實例識別到精確的像素級分類。本文的工作突出了一種新穎的方法對實例分割的假設進行打分。

更精確的打分將會更好地描述模型性能。原因:如果一個實例分割沒有合適的打分,它很可能被看做false positive或false negative,結果就是會導致AP下降(有待好好推敲這句話)。

對於大多數實例分割的pipeline,例如Mask R-CNN, instance mask 的score是與分類的置信度是共享的,都是通過特征作用於分類器進行預測。使用分類的置信度去衡量mask的質量是不合適的,因為它只能區分proposal的語義上的類別,並不能意識到實例mask的實際質量和完整性。

不像先前的方法我們努力地去獲得更准確的實例位置或分割掩碼,我們的方法側重於對masks進行評分。為了實現這個目標,我們的模型去學習每一個mask的得分,而不是使用它的分類得分。為了清楚起見,我們稱學習到的得分稱為mask score

可以看到,通過本文的評分,可以更好地解釋實際掩碼的質量。

受到AP指標的啟發,使用像素級的IOU(between the predicted mask and its ground truth mask)去描述實例分割的質量,我們提出了一個網絡去直接學習IOU。

補充知識

  • AP:PR曲線下的面積
  • PR曲線:橫坐標是recall(正確分類占應該正確被分類的比例),縱坐標是precision(分類正確的占總樣本的比例)。
  • IOU:全稱intersection-over-union,交/並。

我們稱這個IOU為MaskIou, 在測試階段一旦我們獲得MaskIoU,mask score會重新評估通過預測MaskIoU和分類的分數。於是,mask score既能識別語義類別,又能識別實例掩碼的完整性。

MaskIOU head:這是一個MaskIoU的預測網絡。輸入:RoIfeature;輸出:mask head

總而言之,這篇文章主要的貢獻如下:

  • 我們提出了Mask Scoring R-CNN,第一個解決對實例分割打分的問題。我們探討了一個提升實例分割模型性能的模型。通過考慮實例mask掩碼的完整性,如果一個實例具有高分類分數但是mask卻不足夠好,那么實例掩碼的分數將被扣分。
  • 我們的MaskIoU head 是非常簡單有效的。當我們使用mask score(from our MS R-CNN)而不是分類置信度,在coco上進行實驗結果表明AP提升有1.5%左右,該實驗效果在各種網絡框架下都是一致的。

在實例分割中,前人的工作主要Mask R-CNN, MaskLab。然而這些方法都有一個潛在的缺點就是mask的質量僅僅依靠分類分數去測量的。簡而言之,就是對已分類的特征進行上采樣填充為原圖相同的分辨率的圖片。(Specifically, these methods learn an embedding for each pixel to ensure that pixels from the same instance have similar embedding.)

從mask質量的角度來說,這些方法的AP會下降的原因:一個mask,有較高的IOU(higer IoU against ground truth), 如果它有很低的mask score,很容易被視為一個低優先級,這樣一來,AP就會相應的下降。(不是理解,這些方法中,mask score就是分類分數,如果分類分數很低,他的優先級就會降。於是乎,mask很好,但是分類分數較低的,我們就不會選擇,導致最終的AP有下降)

似乎有點繞,我畫了下面一幅沙雕圖,以便理解

softmax的分類的得分分別是100,99.5,99.2,差距不大,由於在實例分割之前的方法僅僅依靠分類得分去衡量,對於這幅圖會選擇score為100,但是mask不好的這一類,最終就會導致AP下降。

1.4 Motivation

在當前Mask R-CNN框架下,檢測的得分是由分類的得分決定的。由於背景信息混亂,分類分數很高但是mask質量很低是很有可能的。去量化分析這個問題,我們比較了mask-rcnn的實際得分和

作者使用ResNet-18 FPN主干網絡(保證主干網絡都一樣),在COCO 2017 驗證集上進行實驗,下入是mask IOU隨classification Score的分布。

看統計下圖,我們可以看到score 和 MaskIoU有更好的相關性。

解釋:看橫軸,當maskIoU在0.5-0.6時,對應的mask R-CNN的score卻沒有在這個范圍,在0.8-0.9,這說明mask不完整時,mask rcnn分類得分卻可以很高;而采用MS R-CNN,MaskIoU和score是很好對應的。

在大多數實例分割的評價體系中,例如COCO,檢測有high score,but low MaskIoU,是不好的。在實際應用中,mask的完整性也是很重要的。這個動機使我們想到了利用MaskIoU去校准mask score。

我們提出Mask Scoring R-CNN,就是 a Mask R-CNN with an additional MaskIoU head module that learns the Mask-IoU aligned mask score。

Mask Scoring R-CNN is conceptually simple: Mask R-
CNN with MaskloU Head, which takes the instance feature and the predicted mask together as input, and predicts the IoU between input mask and ground truth mask, as shown in Fig.3. We will present the details of our framework in the following sections.

mask score的學習任務表示為 Smask =Scls·Siou。我們直接提取相應的分類分數classification score,回歸mask是本文的目標。

怎么設計的這個網絡:

我們將RoIAlign層的feature與預測的mask連接起來作為MaskIoU head的輸入;

使用max pooling讓預測掩碼與RoI feature 具有相同空間大小;

MaskIOU包含4個卷積層和3個全連接層。

如何訓練

使用RPN proposals作為訓練樣本,訓練樣本要求proposal box與匹配的ground truth的IOU大於0.5。為了產生回歸目標,我們得到目標類的預測掩碼並將掩碼二值化(使用0.5的閾值)。

然后我們將輸入二值化的mask,以相應的ground truth作為回歸目標,使用L2 loss進行MaskIOU回歸。

L2 loss

具體假設掩碼R-CNN的R-CNN階段輸出N個邊框框,其中選取SoftNMS后的top-k(即k = 100)計分框。然后將前k個盒送入掩模頭,生成多類掩模。這是標准的掩碼R-CNN推斷過程。我們也遵循這個過程,並輸入top-k目標掩碼來預測掩碼。將預測的掩模與分類分數相乘,得到新的校准掩模分數作為最終掩模的可信度。

作者在Mask R-CNN的基礎上添加了一個MaskIoU分支用於預測當前輸出的mask和gt mask的IoU。MaskIoU的輸入由兩部分組成,一是ROIAlign得到的RoI feature map,二是mask分支輸出的mask。兩者concat之后經過3層卷積和2層全連接輸出MaskIoU。

training過程:

box分支和mask保持不變,輸出的mask先經過閾值為0.5的binarize,再計算binary mask和gt的IoU作為target,采用L2 loss作為損失函數,loss weight設為1,3個分支同時end-to-end訓練。

inference過程:

檢測分支輸出score最高的100個框,再送入mask分支,得到mask結果,RoI feature map再和mask送入MaskIoU分支得到mask iou,與box的classification score相乘就得到最后的mask score。

在不同主干網絡下的instance segmentation和檢測結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM