Ross、何愷明等人提出:渲染思路做圖像分割,提升Mask R-CNN性能

2020-12-23 機器之心Pro

機器之心報導

參與:魔王、一鳴

Facebook FAIR 實驗室再次創新圖像分割算法,這回使用的是圖像渲染的思路。算法可作為神經網絡模塊集成,顯著提升 Mask R-CNN 和 DeepLabV3 性能。

實例分割是計算機視覺任務中一個重要的任務。傳統的示例分割方法輸入圖像,並對圖像的每個像素點進行預測,推斷像素點所屬的實例標籤,並區分屬於不同實例的像素點。然而,現有的方法可能會對光滑的像素點區分邊界進行過度計算,導致本應當具有清晰、連續邊界的實例邊緣像素點被分錯。為了解決這一問題,何愷明等提出了一種新的實例分割的方法,用來優化解決這個問題。

提到何愷明,讀者們都不會陌生。近年來,他在語義分割和實例分割領域做了很多開創性的工作,用來提升分割效果。例如,在實例分割方面提出全景分割的方法,在語義分割上則提出了效果驚人的 TensorMask。最近,Alexander Kirillov(一作)、吳育昕、何愷明等又從計算機渲染的角度出發,提出了一個名為 PointRend 的方法,更好地提升圖像分割過程中的平滑性和分割細節效果。

這一方法是否會對現有的網絡架構帶來很大影響?研究者表示,這一方法可作為已有的圖像分割架構的一個模塊來使用。他們在 Mask R- CNN 和 DeepLabV3 等模型上進行了測試,性能提升明顯,而且算力佔用很小。

這篇論文的作者包括我們熟悉的何愷明和吳育昕,他們多次在一些研究中合作。此外還有與何愷明在 TensorMask 等論文中合作的 Ross Girshick。

論文地址:https://arxiv.org/pdf/1912.08193.pdf

這篇論文的具體方法和效果如何?機器之心對其進行了編譯整理。

引言

圖像分割任務涉及到了將從規則的網格中採樣的像素映射到同一網格上的(一個或一組)標籤圖(label map)。對於語義分割任務來說,標籤圖表示對每個像素的預測類別。而在實例分割任務中,每個被檢測對象需要預測二元前景背景圖。這些任務所使用的方法基本上都是基於卷積神經網絡(CNN)構建的。

用於圖像分割任務的 CNN 通常基於規則網格運行:輸入的是圖像像素的規則網格,隱藏表徵則是基於規則網格的特徵向量,而輸出則是基於規則網格的標籤圖。規則網格很方便,但在計算方面對圖像分割而言未必完美。這些網絡預測的標籤圖應當是基本平滑的,即鄰近的像素通常使用同一個標籤,因為高頻區域限制在對象之間的稀疏邊界。

規則網格可能對平滑區域過採樣,同時卻對對象邊界的欠採樣。這樣一來,在平滑區域進行過度計算,使得預測結果的輪廓變得模糊(見圖 1 左上)。這樣一來,圖像分割方法通常基於低解析度規則網格來預測標籤,如在語義分割任務中輸入的 1/8,或實例分割中的 28×28,以此作為欠採樣和過採樣之間的妥協。

圖 1:使用 PointRend 執行實例分割和使用傳統方法的對比。傳統方法(左)分割的時候圖像解析度低,分割效果差。

數十年來,計算機圖形學領域研究了很多類似的採樣問題。例如,渲染器將模型(如 3D 網格)映射到點陣圖像,即像素的規則網格。儘管輸出是基於規則網格的,但計算並不按照網格來均勻分配。常見的圖形學策略是,對圖像平面中被自適應選擇點的不規則子集計算出像素值。例如,[48] 中的典型細分(subdivision)技術獲得了類四叉樹採樣模式,從而高效渲染出抗鋸齒(anti-aliased,即邊緣柔化)的高解析度圖像。

遵循類似的思路,何愷明等研究者在研究中將圖像分割視為渲染問題,並利用計算機圖形學中的經典思想來高效地「渲染」高質量標籤圖(見圖 1 左下)。研究者將這種思想實現為一個新型神經網絡模塊——PointRend,該網絡使用細分策略來自適應地選擇一組非均勻點,進而計算標籤。PointRend 可被納入到常用的實例分割元架構(如 Mask R-CNN [19])和語義分割元架構(如 FCN [35])。其細分策略利用比直接密集計算少一個數量級的浮點運算,高效地計算高解析度分割圖。

PointRend 是通用模塊,允許多種可能實現。抽象來看,PointRend 模塊接受一或多個典型 CNN 特徵圖 f(x_i , y_i) 作為輸入,這些特徵圖基於規則網格定義,輸出基於更細粒度網格的高解析度預測結果 p(x'_i , y'_i )。PointRend 不對輸出網格上的所有點執行過度預測,而是僅對精心選擇的點執行預測。為此,PointRend 對 f 執行內插,提取所選點的逐點特徵表示,使用一個小型 point head 子網絡基於這些逐點特徵預測輸出標籤。本文將展示一種簡單高效的 PointRend 實現。

研究者在 COCO [29] 和 Cityscapes [9] 基準數據集上評估 PointRend 在實例分割和語義分割任務上的性能。定性來看,PointRend 能夠高效計算對象之間的清晰邊界,見圖 2 和圖 8。

圖 2:Mask R-CNN [19] + 標準掩碼頭的結果示例(左側圖像)vs Mask R-CNN + PointRend 的結果示例(右側圖像)。模型使用 ResNet-50 和 FPN。

圖 8:模型在 Cityscapes 樣本上的實例分割和語義分割結果。

研究者還觀察到定量級別的性能提升,儘管這些任務基於的標準 IoU 度量指標(mask AP 和 mIoU)會偏向於對象內部像素,對邊界改進相對不那麼敏感。但是 PointRend 依然顯著提升了 Mask RCNN 和 DeepLabV3 [5] 的性能。

方法

研究者將計算機視覺中的圖像分割類比為計算機圖形學中的圖像渲染。所謂渲染,即是將模型(如 3D 網格)顯示為像素的規則網格,即圖像。儘管輸出表示為規則網格,但其底層物理實體(如 3D 模型)是連續的,使用物理和幾何推理(如光線追蹤)可在圖像平面的任意真值點查詢其物理佔用(physical occupancy)等屬性。

類似地,在計算機視覺中,我們可以將圖像分割看作底層連續實體的佔用圖,而分割輸出(預測標籤的規則網格)基於它的「渲染」得到。該實體被編碼為網絡特徵圖,可以通過內插在任意點進行評估。訓練參數化函數,並基於這些內插點的特徵表示,進而預測佔用。而這些參數化函數即等同於計算機圖形學中的物理和幾何推理。

基於這種類比,研究者提出 PointRend(Pointbased Rendering,「基於點的渲染」),用點的表徵來解決圖像分割問題。PointRend 模塊接受一或多個包含 C 個通道的典型 CNN 特徵圖 f ∈ R^(C×H×W),每一個特徵圖都基於規則網格定義(其粗糙程度通常是圖像網格的 4-16 倍),輸出預測結果共有 K 個類別標籤 p ∈ R^(K×H'×W'),輸出基於不同解析度(大概率解析度更高)的規則網格。

PointRend 模塊包含三個主要組件:

1. 點選擇策略:選擇少量真值點執行預測,避免對高解析度輸出網格中的所有像素進行過度計算;2. 對選中的每個點提取逐點特徵表示:使用每個選中點在 f 規則網格上的 4 個最近鄰點,利用 f 的雙線性內插計算真值點的特徵。因此,該方法能夠利用 f 的通道維度中編碼的子像素信息,來預測比 f 解析度高的分割;3. point head:一個小型神經網絡,用於基於逐點特徵表示預測標籤,它獨立於每個點。

PointRend 架構可應用於實例分割(如 Mask R-CNN [19])和語義分割(如 FCN [35])任務。在實例分割任務中,PointRend 應用於每個區域,通過對一組選中點執行預測,以從粗糙到細粒度的方式計算掩碼(見圖 3)。在語義分割任務中,整個圖像被看作一個區域,因而我們可以在不損失通用性的情況下,在實例分割語境中描述 PointRend。

下面我們來看 PointRend 三個主要組件的細節。

圖 3:PointRend 應用於實例分割任務。

選擇點來執行推斷和訓練

該方法的核心思想是靈活和自適應地在圖像平面中選擇點,進而預測分割標籤。直觀來看,這些點的位置應該較稠密地鄰近高頻區域,如對象邊界,類似於光線追蹤中的抗鋸齒問題。研究者將這一想法應用於推斷和訓練。

推斷:用於推斷的點選擇策略受到計算機圖形學中自適應細分(adaptive subdivision)這一經典技術的啟發。該技術通過計算與其近鄰的值顯著不同的位置,來高效渲染高解析度圖像(如通過光線追蹤);其他位置的值則通過內插已經計算好的輸出值來獲得(從粗糙網格開始)。

訓練:在訓練過程中,PointRend 還需要選擇點來構建訓練 point head 所需的逐點特徵。原則上,點選擇策略類似於推斷過程中使用的細分策略。但是,細分策略使用的順序步驟對於利用反向傳播訓練神經網絡不那麼友好。因此,訓練過程使用基於隨機採樣的非迭代策略。

逐點表示和 Point Head

PointRend 通過結合細粒度和粗細度預測特徵這兩種特徵類型,來構建所選點的逐點特徵。

實驗:實例分割

表 1 對比了 PointRend 和 Mask R-CNN 中默認 4x 卷積 head 的性能。PointRend 在 COCO 和 Cityscapes 數據集上的性能均超過 Mask R-CNN 默認 head。

表 1:PointRend vs Mask R-CNN 默認 4×卷積掩碼 head 的性能對比。

細分推斷策略使用的浮點數和內存是默認 4×卷積 head 的 1/30 不到,但它讓 PointRend 能夠獲得高解析度預測結果(224×224),見下表 2。PointRend 忽略對象中粗粒度預測就已足夠的區域,從而在計算量大幅減少的情況下輸出與 Mask R-CNN 框架一樣的高解析度結果。

表 2:224×224 輸出解析度掩碼的浮點數(乘加)和激活計數。

下表 3 展示了在不同輸出解析度和每個細分步驟不同選擇點數量的情況下,PointRend 的細分推斷性能。

表 3:細分推斷參數。

預測更高解析度的掩碼能夠改進結果。儘管 AP 飽和,但當輸出解析度從低到高(比如從 56×56 到 224×224)時,視覺上的提升仍然很明顯,參見圖 7。

圖 7:PointRend 的抗鋸齒效果。

表 4 展示了 PointRend 在訓練過程中使用不同點選擇策略時的性能。

表 4:訓練時不同點選擇策略的性能,每個邊界框中有 142 個點。

下表 5 展示了 PointRend 和基線的對比情況,PointRend 性能超過基線模型,且基線模型的訓練時間比 PointRend 長,模型規模也比 PointRend 大。

表 5:基線模型和 PointRend 性能對比。基線模型比 PointRend 大,且其訓練時間是 PointRend 的 3 倍。

實驗:語義分割

下表 6 展示了 DeepLabV3 和 DeeplabV3 + PointRend 的對比情況。

表 6:DeeplabV3 + PointRend 在 Cityscapes 語義分割任務上的性能超過基線 DeepLabV3。

在 res_4 階段使用空洞卷積可以將推斷時的輸出解析度提升二倍,參見 [5]。與之對比,PointRend 具備更高的 mIoU。定性提升也非常明顯,參見圖 8。

圖 8:模型在 Cityscapes 樣本上的實例分割和語義分割結果。

通過自適應地採樣點,PointRend 對 32k 個點執行預測,並達到了 1024×2048 的解析度(即 2M 點),參見圖 9。

圖 9:PointRend 在語義分割任務中的推斷。

下表 7 展示了,在 8 倍和 4 倍輸出步幅變化的情況下,SemanticFPN+PointRend 的性能較 SemanticFPN 有所提升。

表 7:在 Cityscapes 語義分割任務中,SemanticFPN+PointRend 的性能超過基線 SemanticFPN

相關焦點

  • 渲染思路做圖像分割:何愷明等人提出PointRend
    為了解決這一問題,何愷明等提出了一種新的實例分割的方法,用來優化解決這個問題。提到何愷明,讀者們都不會陌生。近年來,他在語義分割和實例分割領域做了很多開創性的工作,用來提升分割效果。例如,在實例分割方面提出全景分割的方法,在語義分割上則提出了效果驚人的 TensorMask。
  • 用於圖像分割的卷積神經網絡:從R-CNN到Mask R-CNN
    在本文中,我們將看到卷積神經網絡(CNN)如何在圖像實例分割任務中提升其結果。自從 Alex Krizhevsky、Geoff Hinton 和 Ilya Sutskever 在 2012 年贏得了 ImageNet 的冠軍,卷積神經網絡就成為了分割圖像的黃金準則。事實上,從那時起,卷積神經網絡不斷獲得完善,並已在 ImageNet 挑戰上超越人類。
  • 何愷明團隊開源圖像分割新算法PointRend:性能顯著提升,算力僅需Mask R-CNN的2.6%
    論文作者 | Alexander Kirillov,Yuxin Wu,Kaiming He等 PointRend 是何愷明團隊對圖像分割領域的又一最新探索,該項工作創新地採用計算機圖形學的渲染思路來解決計算機視覺領域的圖像分割問題。算法不僅提升了分割過程中的平滑性,實現了對圖像細節的準確分割,也大大節省了資源消耗,算力需求僅為 Mask R-CNN 的 2.6%。
  • Mask R-CNN
    Mask R-CNN是一種在有效檢測目標的同時輸出高質量的實例分割mask。是對faster r-cnn的擴展,與bbox識別並行的增加一個預測分割mask的分支。Mask R-CNN 可以應用到人體姿勢識別。並且在實例分割、目標檢測、人體關鍵點檢測三個任務都取得了現在最好的效果。效果圖
  • 一文看懂近年火到不行的CNN圖像識別:從R-CNN到Mask R-CNN
    受多倫多大學Hinton實驗室研究成果的啟發,加州大學伯克利分校Jitendra Malik教授帶領的小團隊提出了一個不可避免的問題:如何將Krizhevsky等人的成果擴展到目標檢測?目標檢測從圖像中找到不同的物體並對其進行分類(如上圖所示)。
  • 卷積神經網絡在圖像分割中的進化史:從R-CNN到Mask R-CNN
    受到多倫多大學Hinton實驗室研究工作的啟發,加州大學伯克利分校Jitendra Malik教授領導的團隊,提出了一個在如今看來好像是不可避免的問題:能否將Krizhevsky等人提出的網絡模型泛化應用到對象檢測上?對象檢測技術是一項通過標出圖像中不同對象並對其進行分類的任務。
  • 何愷明團隊:從特徵金字塔網絡、Mask R-CNN到學習分割一切
    圖來自Learning to Segment Everything來源:skrish13.github.io作者:krish 編譯:肖琴【新智元導讀】這篇文章介紹了FAIR何愷明、Tsung-Yi Lin等人的團隊在計算機視覺領域最新的一些創新
  • 滑動窗口也能用於實例分割,陳鑫磊、何愷明等人提出圖像分割新範式
    選自arXiv作者:Xinlei Chen、Ross Girshick、Kaiming He、Piotr Dollar機器之心編譯滑動窗口在目標檢測中非常重要,然而最近何愷明等研究者表明,這個範式同樣可以用於實例分割。
  • 愷明大神 Mask R-CNN 超實用教程
    對象檢測器,如yolo、faster r-cnn和ssd,生成四組(x,y)坐標,表示圖像中對象的邊界框。從獲取對象的邊界框開始挺好的,但是邊界框本身並不能告訴我們(1)哪些像素屬於前景對象,(2)哪些像素屬於背景。是否可以為圖像中的每個對象生成一個MASK,從而允許我們從背景分割前景對象?
  • 愷明大神 Mask R-CNN 超實用教程
    在上周的博客文章中,你學習了如何使用Yolo物體探測器來檢測圖像中物體(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/)。對象檢測器,如yolo、faster r-cnn和ssd,生成四組(x,y)坐標,表示圖像中對象的邊界框。
  • (附代碼)| 從特徵金字塔網絡、Mask R-CNN到學習分割一切
    本文介紹FAIR何愷明、Tsung-Yi Lin等人的團隊在計算機視覺領域最新的一些創新,包括特徵金字塔網絡、RetinaNet、Mask R-CNN以及用於實例分割的弱半監督方法。因此,可以使用圖像金字塔(圖像的多種縮小比例),以使CNN更易處理。但這太慢了。所以人們只使用一個單個scale的預測,也可以從中間層進行預測。這跟前一種方法有點像,但這是在特徵空間上進行的。例如,在幾個ResNet塊之後放一個Deconv,並獲得分割輸出(分類也類似,可以是1x1 Conv和GlobalPool)。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    而在 Faster R-CNN 的基礎上改進的 Mask R-CNN 在 2018 年被提出,並斬獲了 ICCV2017 年的最佳論文。Mask R-CNN 可以應用到人體姿勢識別,並且在實例分割、目標檢測、人體關鍵點檢測三個任務都取得了很好的效果。
  • CondInst:性能和速度均超越Mask RCNN的實例分割模型
    目前基於one-stage的物體檢測模型已經在速度和性能上超越two-stage模型,同樣地,大家也希望能找到one-stage的實例分割模型來替換Mask RCNN。和SOLO屬於此種類型,前者速度太慢,後者速度和效果都非常好;對於mask encoding方法,雖然實現起來比較容易,但是往往會造成2D mask的細節損失,所以性能上會差一點;分離檢測和分割,對於分割部分可以像語義分割那樣預測global mask,解析度上會更高(要知道Mask RCNN的mask解析度只有28x28),但是這種方法需要一種好的方式來產生
  • 港中文提出:GridMask 數據增廣新網絡(可提高分類/檢測/分割性能)
    ,在圖像分類、檢測、分割三個問題上都做了實驗,提升效果明顯,好於當前SOTA 的autoaugment。GridMask方法在分類、檢測、分割三個問題都做了實驗,效果提升明顯。檢測的實驗gridmask的參數r根據經驗設置成0.5,訓練的時候一張圖做不做gridmask增強也是一個超參數,上圖做對比實驗發現設置成0.7效果最好,有0.9的提升。
  • Mask R-CNN官方實現「又」來了!訓練速度是原來2倍
    10個月前Facebook曾發布過名叫Detecron的項目,也是一款圖像分割與識別平臺,其中也包含Mask R-CNN。不過它是基於Caffe 2深度學習框架編寫的。這一次,在Caffe2項目併入PyTorch半年之後,Facebook換上了更受歡迎的PyTorch框架。
  • 圖像分割深度學習從零開始學習路線
    另外整理脈絡建議讀該領域的survey,最近Amusi整理了一個不錯的分割survey。Amusi:大盤點 | 2019年5篇圖像分割算法最佳綜述。理論搞的差不多,我們開始上一些code部分。這裡推薦幾個優秀的分割的repo,供入門的同學學習。語義分割立夏之光的EMANet,代碼風格簡潔易懂。
  • 算法| 超Mask RCNN速度4倍,僅在單個GPU訓練的實時實例分割算法
    在過去的幾年中,在實例分割方向取得了很大進展,部分原因是借鑑了物體檢測領域相關的技術。比如像 mask RCNN 和 FCIS 這樣的實例分割方法,是直接建立在像Faster R-CNN 和 R-FCN 這樣的物體檢測方法之上。然而,這些方法主要關注圖像性能,而較少出現 SSD,YOLO 這類關注實時性的實例分割算法。因此,本文的工作主要是來填補這一空白。
  • 【從零開始學Mask RCNN】一,原理回顧&&項目文檔翻譯
    (c)和(d)顯示ROIAligin效果有提升,特別是AP75提升最明顯,說明對精度提升很有用。(e)顯示mask banch採用全卷積網絡效果較好(因為全卷積網絡沒有破壞空間關係)。作者將其歸結為多任務訓練的提升,由於加入了mask分支,帶來的loss改變,間接影響了主幹網絡的效果。
  • 學界 | Facebook何愷明等人最新論文提出非局部神經網絡
    Facebook何愷明和RGB兩位研究者最近提出非局部操作non-local operations為解決視頻處理中時空域的長距離依賴打開了新的方向。文章採用圖像去噪中常用的非局部平均的思想處理局部特徵與全圖特徵點的關係。這種非局部操作可以很方便的嵌入已有模型,在視頻分類任務中取得的很好的結果,並在在靜態圖像識別的任務中超過了何愷明本人ICCV最佳論文的Mask R-CNN。
  • 何愷明團隊計算機視覺最新進展:從特徵金字塔網絡、Mask R-CNN到...
    圖來自Learning to Segment Everything  新智元編譯來源:skrish13.github.io作者:krish 編譯:肖琴  【新智元導讀】這篇文章介紹了FAIR何愷明、Tsung-Yi Lin等人的團隊在計算機視覺領域最新的一些創新,包括特徵金字塔網絡