何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升


何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

Facebook人工智能實驗室Alexander Kirillov、吳育昕、何愷明、Ross Girshick等研究人員近日發表新論文,提出一種高效、高質量的目標和場景圖像分割新方法。

通過將有效渲染的經典計算機圖形學方法與像素標記任務中遇到的過採樣和欠採樣問題進行類比,他們開發了一個獨特的視角,將圖像分割視為一個渲染問題

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

從這個角度出發,他們提出PointRend (Point-based Rendering)神經網絡模塊:該模塊基於迭代細分算法,在自適應選擇的位置執行基於點的分割預測。

建立在現有的最先進的模型之上,PointRend可以靈活地應用於實例分割和語義分割任務。

何愷明等人的研究表明,這個簡單的設計已經取得了出色的結果。在定性上,PointRend輸出清晰的對象邊界,而先前的方法會出現過度平滑。在定量上,無論是實例分割還是語義分割,PointRend在COCO和Cityscapes兩個數據集都獲得了顯著的結果。


PointRend:將圖像分割視作渲染問題

圖像分割任務涉及將在規則網格上採樣的像素映射到同一網格上的標籤映射或一組標籤映射。在語義分割的情況下,標籤映射表示每個像素處的預測類別。在實例分割的情況下,針對每個檢測到的對象預測一個二元的前景和背景圖。用於圖像分割任務的現代工具是建立在卷積神經網絡(CNN)上的。

用於圖像分割的CNN通常在規則網格(regular grids)上操作:輸入圖像是由像素組成的規則網格,它們的隱藏表示是規則網格上的特徵向量,它們的輸出是規則網格上的標籤映射。

規則網格很方便,但不一定是理想的圖像分割計算。這些網絡所預測的標籤映射應該基本上是平滑的,即由於高頻區域被限制在對象之間的稀疏邊界上,因此相鄰像素常常採用相同的標籤。一個規則的網格會不必要地對平滑區域進行過採樣,同時對對象邊界進行欠採樣。結果導致在平滑區域和模糊輪廓上進行了多餘的計算(圖1,左上角)。圖像分割方法在低分辨率規則網格上預測標籤,例如輸入的1/8用於語義分割,或28×28用於實例分割,作為欠採樣和過採樣之間的折衷。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖1:PointRend的實例分割。我們引入了PointRend(基於點的渲染)模塊,該模塊使用一種新的基於點的特徵表示對圖像上的自適應採樣點進行預測。當使用PointRend替換Mask R-CNN的默認Mask head(左上)時,會產生更精細的結果(右上)。

類似的採樣問題在計算機圖形學中已經研究幾十年了。例如,一個渲染器將一個模型(例如,一個3D網格)映射到一個柵格化的圖像,即一個規則的像素網格。當輸出在規則網格上時,計算並不是均勻地分配到網格上的。相反,一種常見的圖形策略是計算圖像平面上自適應選擇點的不規則子集上的像素值。以Turner Whitted提出的經典subdivision技術為例,生成一個類似四叉樹的採樣模式,該模式可以有效地渲染一個抗鋸齒的高分辨率圖像。

本研究的中心思想是將圖像分割看作一個渲染問題,並採用計算機圖形學中的經典思想來有效地“渲染”高質量的標籤圖(見圖1,左下)。我們基於這個計算思想提出一個新的神經網絡模塊,稱為PointRend,它使用subdivision策略自適應地選擇一組非均勻的點來計算標籤。

PointRend可以被合併到流行的元架構中,用於實例分割(如Mask R-CNN)和語義分割(如FCN)。它的subdivision策略使用的浮點運算比直接的密集計算要少一個數量級,從而可以有效地計算高分辨率分割圖。

PointRend是一個通用模塊,允許多種可能的實現。從抽象的角度來看,PointRend模塊接受一個或多個定義在常規網格上的典型CNN特徵圖,並在一個更細的網格上輸出高分辨率預測。與對輸出網格上的所有點進行過度預測不同,PointRend只對精心選擇的點進行預測。為了進行這些預測,它通過對f進行插值來提取所選點的點向特徵表示,並使用一個小的point head子網絡來預測點向特徵的輸出標籤。

我們將介紹一個簡單而有效的PointRend實現。

我們使用COCO和Cityscapes基準來評估PointRend在實例分割和語義分割任務上的性能。定性地說,PointRend可以有效地計算出對象之間的邊界,如圖2和圖8所示。

我們也觀察到定量上的改進。PointRend顯著改進了Mask RCNN和DeepLabV3模型。


何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖2:使用帶標準mask head的Mask R-CNN(左)與使用帶PointRend的Mask R-CNN(右)的示例結果對比。可以看到,PointRend以更精細的細節來預測masks。


方法:用於推理和訓練的Point Selection

PointRend架構可以應用於實例分割(如Mask R-CNN)和語義分割(如FCNs)任務。對於實例分割,對每個區域應用PointRend。它通過對一組選定的點進行預測,從粗到精地計算mask(如圖3所示)。對於語義分割,可以將整個圖像視為一個區域。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖3:將PointRend應用於實例分割

用於推理和訓練的Point Selection

該方法的核心思想是在圖像平面中靈活、自適應地選擇點(points)來預測分割標籤。直觀上,這些點應該更密集地位於高頻區域附近,例如對象邊界,類似於光線追蹤中的抗鋸齒問題(anti-aliasing,也譯為邊緣柔化、消除混疊等)。我們推理和訓練階段應用了這一想法。


推理:

我們的推理選擇策略是受到計算機圖形學中經典的自適應細分技術(adaptive subdivision)的啟發。該技術被用來有效地渲染高分辨率的圖像(例如,通過光線追蹤),只計算在該值與相鄰值有顯著差異的位置;對於所有其他位置,通過對已計算的輸出值(從粗網格開始)進行插值來獲得值。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖4:一個自適應細分步驟的示例。採用雙線性插值的方法對4×4網格的預測進行2×上採樣。然後,PointRend對N個最模糊的點(黑點)進行預測,以恢復更精細網格上的細節。重複此過程,直到達到所需的網格分辨率。

訓練:

在訓練期間,PointRend還需要選擇訓練點來構造 point-wise features,以訓練point head。原則上,點的選擇策略可以類似於推理中使用的細分策略。但是, subdivision 引入了順序步驟,這對使用反向傳播訓練的神經網絡不太友好。相反,對於訓練,我們使用基於隨機採樣的非迭代策略。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖5:訓練期間的點採樣

實驗和結果:實例分割和語義分割均優於基線方法

實例分割

我們將PointRend與表1中Mask R-CNN中默認的4×conv head進行比較。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

表1:PointRend與Mask R-CNN的默認4×conv mask head的對比。PointRend在數量和質量上都優於標準的4×conv mask head。

PointRend在兩個數據集上的性能都優於默認的head。即使輸出分辨率相同,PointRend的性能也優於baseline。從直觀上看,邊界質量也差異明顯,如圖6所示。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖6:具有不同輸出分辨率的PointRend推理。高分辨率 masks 與對象邊界更好地對齊了。

細分推理允許PointRend產生高分辨率的224×224預測,使用的計算(FLOPs)和內存是默認的4×conv head輸出相同分辨率所需的30倍以上,見表2。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

表2:224×224輸出分辨率mask的FLOP(multiply-adds)和激活計數。

PointRend通過忽略一個對象的某些區域(例如,遠離對象邊界的區域)來實現Mask R-CNN框架下的高分辨率輸出。

表3顯示了不同輸出分辨率和在每個細分步驟中選擇的點數的PointRend細分推斷。以更高的分辨率預測掩模可以改進結果。雖然AP飽和,但從較低(如56×56)分辨率輸出到較高(如224×224)分辨率輸出時,視覺效果仍有明顯改善,見圖7。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

表3:細分推理參數。更高的輸出分辨率提高了AP。雖然隨著每個細分步驟中採樣點的數量的增加,改進會很快達到飽和(在下劃線處的值),但對於複雜的對象,定性結果可能會繼續改進。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖7:使用PointRend進行抗鋸齒


語義分割

DeeplabV3。在表6中,我們將DeepLabV3與帶有PointRend的DeepLabV3進行了比較。通過使用res4階段的擴展卷積,推理階段輸出分辨率也可以提高2倍。相比兩者,PointRend具有更高的mIoU。定性改進也很明顯,見圖8。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

表6:在Cityscapes數據集,帶有PointRend的DeeplabV3語義分割的性能優於基線DeepLabV3。在推理過程中對res4階段進行擴展會產生更大,更準確的預測,但計算和存儲成本要高得多。仍然不如使用PointRend。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖8:Cityscapes上的實例分割和語義分割結果。在實例分割中,較大的對象更容易從PointRend能力中獲得高分辨率的輸出。而在語義分割方面,PointRend可以恢復小的對象和細節。

通過自適應採樣點,僅對32k點進行預測, PointRend可以達到1024×2048分辨率(即2M點),如圖9所示。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

圖9:語義分割的PointRend推斷。

SemanticFPN。表7顯示,具有PointRend的SemanticFPN優於沒有PointRend的8×和4×輸出步長變體。

何愷明團隊又出神作:將圖像分割視作渲染問題,性能顯著提升

Cityscapes中,帶有PointRend的SemanticFPN語義分割性能優於基線SemanticFPN


分享到:


相關文章: