Title:PointRend: Image Segmentation as Rendering
Code :PyTorch
From:arxiv
Note data:2020/02/27
Abstract:提出了PointRend(基於點的渲染)神經網絡模塊,該模塊基於迭代細分算法在自適應選擇的位置執行基於點的分段預測。
目錄
Abstract
論文提出一種基於點渲染的分割方法PointRend;
網絡結構:PointRend(基於點的渲染)神經網絡模塊,該模塊基於迭代細分算法在自適應選擇的位置執行基於點的分段預測;
創新:從採樣過程出現的問題出發將分割問題看做圖像渲染問題,已解決現有方法出現的過採樣和欠採樣問題;
動機:解決分割任務中採樣過程出現的問題。
我們提出了一種新的方法來對物體和場景進行有效的高質量圖像分割。通過將經典的計算機圖形方法模擬爲有效渲染,以解決像素標記任務面臨的過採樣和欠採樣問題,我們開發了一種獨特的視角,將圖像分割視爲渲染問題。從這個角度出發,我們提出了PointRend(基於點的渲染)神經網絡模塊:該模塊基於迭代細分算法在自適應選擇的位置執行基於點的分段預測。通過在現有最新模型的基礎上構建,PointRend可以靈活地應用於實例和語義分割任務。儘管可以實現該總體思想的許多具體實現,但我們表明,簡單的設計已經可以實現出色的結果。定性地,PointRend在先前方法過度平滑的區域中輸出清晰的對象邊界。從數量上講,PointRend
在實例分割和語義分割方面,COCO和Cityscapes均獲得了顯着收益。 PointRend的效率可以實現與現有方法相比在內存或計算方面不可行的輸出分辨率。
1 Introduction
在現有的語義分割/實例分割模型中,模型一般會輸出一個原圖1/8或1/16大小的預測圖,而後通過雙線性插值來補齊最後的8x/16x分辨率,儘管還有膨脹卷積等來替換上採樣層以獲得更高的精度, 但其需要的內存和計算量往往較大。
本文的中心思想是將圖像分割視爲一個渲染問題,並使計算機圖形學中的經典思想適應有效地“渲染”高質量的標籤圖。將此計算思想封裝在一個稱爲PointRend的新神經網絡模塊中,該模塊使用細分策略來自適應地選擇要在其上計算標籤的一組非均勻點。對於實例分割和語義分割,可以將PointRend合併到流行的元體系結構中。
存在的問題:
過採樣( oversample ):對於圖片中低頻區域( 屬於同一個物體 ),沒必要使用 太多的採樣點,卻使用太多采樣點造成過採樣;
欠採樣( undersample ) :對於圖片中高頻區域( 靠近物體邊界 ),如果這些區域的採樣過於稀疏,導致分割出的邊界過於平滑,不大真實。
論文給出的解決方案:
- PointRend使用細分策略在需要計算標籤的區域選擇一組非均勻的採樣點,而後爲其預測類別。、
- PointRend是一個通用模塊,可以有多種形式的實現。它接受一個或多個典型的CNN feature map,然後輸出高分辨率預測。
- PointRend不會對輸出網格上的所有點進行過多預測,而只會對精心選擇的點(不確定性較強的點)進行預測。
- PointRend通過插值操作來提取選中點的點級特徵,並使用一個小的point head子網絡根據逐點特徵來預測輸出feature map
2 Related Work
渲染:計算機圖形學中的渲染算法輸出規則的像素網格。 但是它們通常在一組非均勻點上計算這些像素值。 像細分和自適應採樣這樣的有效程序可以在像素值具有較大方差的區域中完善粗光柵化。 光線跟蹤渲染器通常使用過採樣,該技術會比輸出網格更密集地採樣某些點,以避免混疊效果。
非均勻網格表示: 規則網格上的計算是2D圖像分析的主要範例,但其他視覺任務卻並非如此。 在3D形狀識別中,由於三次縮放,大型3D網格是不可行的。 大多數基於CNN的方法都不會超出粗略的64x64x64網格。 相反,最近的工作考慮了更有效的非均勻表示,PointRend可以在任何點計算分段值。PointRend專注於在輸出上進行非均勻採樣。 儘管目前尚無關於實例分割的證明,但可以將兩種方法結合起來使用。
在現有的語義分割/實例分割模型中,模型一般會輸出一個原圖1/8或1/16大小的預測圖,而後通過雙線性插值來補齊最後的8x/16x分辨率,儘管還有膨脹卷積等來替換上採樣層以獲得更高的精度, 但其需要的內存和計算量往往較大。
3 Method
將CV中的圖像分割問題建模成計算機圖形學中的圖像渲染問題。
渲染:渲染器將模型(如 3D 網格)映射到點陣圖像,即像素的規則網格。
計算機圖形學的思路:對圖像平面中被自適應選擇點的不規則子集計算出像素值。從而高效渲染出抗鋸齒的高分辨率圖像。
圖像分割,同樣可以視作底層連續實體的佔用圖,然後從中輸出預測標籤的矩形網格。類比計算機圖形學的思路,使用細分策略來自適應地選擇一組非均勻點,進而計算標籤。
圖像分割步驟
- 使用輕量級的分割頭,對每個檢測到的對象(紅框)進行粗略的mask預測。
- 選擇一組點(紅色點),用小規模的多層感知器(MLP)爲每個點進行獨立預測。
- 對這樣的細分算法進行迭代,以從粗到細的方式計算mask。
1.Point Selection(點選擇)
PointRend的核心思想是,在圖像平面中自適應地選擇預測分割標籤的點。那麼這些點主要分佈在哪裏呢?理論上講,這些點應該在高頻區域分佈較廣(比如說圖像的邊緣)。
推斷:用於推斷的點選擇策略受到計算機圖形學中自適應細分(adaptive subdivision)這一經典技術的啓發。該技術通過計算與其近鄰的值顯著不同的位置,來高效渲染高分辨率圖像(如通過光線追蹤);其他位置的值則通過內插已經計算好的輸出值來獲得(從粗糙網格開始)。
訓練:在訓練過程中,PointRend 還需要選擇點來構建訓練 point head 所需的逐點特徵。原則上,點選擇策略類似於推斷過程中使用的細分策略。但是,細分策略使用的順序步驟對於利用反向傳播訓練神經網絡不那麼友好。因此,訓練過程使用基於隨機採樣的非迭代策略。
2.逐點表示
PointRend通過組合低層特徵 (fine-grained features) 和高層特徵 (coarse prediction),在選定的點上構造逐點特徵。在細粒度特徵(fine-grained features)方面,爲了讓PointRend呈現出精細的分割細節,研究人員爲CNN特徵圖中的每個採樣點提取了特徵向量。
細粒度特徵雖然可以解析細節,但也存在兩方面的不足:
(1)不包含特定於區域的信息,對於實例分割任務,就可能在同一點上預測出不同的標籤。比如兩個重疊的實例中的一點具有相同的細粒度特徵,故該點只會被預測到其中一個實例中。
(2)用於細粒度特徵的特徵映射,可能僅包含相對較低級別的信息。受通過哪張feature map提取細粒度特徵的影響,提取到的細粒度特徵可能只包含low level的特徵,相比之下具有更多上下文和語義信息的feature map會更有價值。
基於上述討論,第二種特徵是從網絡中抽取一個粗的分割預測,比如對每個點,預測一個k維的向量用來對應表示k個類別各自的概率。這種粗預測特徵,類似現有的語義分割結構,同樣使用與現有模型相同的監督方式進行監督。比如對實例分割,粗預測特徵可以使用Mask R-CNN輸出的輕量級7*7 mask head。再比如對於語義分割,它可以是預測一個原圖下采樣16倍的feature map.
這就需要粗略分割預測 (coarse prediction) 來進行補充,提供更多全局背景。
這樣的粗略預測類似於現有架構的輸出。以實例分割爲例,coarse prediction可以是Mask R-CNN中 7×7 輕量級mask head的輸出。
3.Point Head
對於每個選定點的逐點特徵表示,PointRend使用簡單的多層感知器進行逐點分割預測。
多層感知器在所有點(所有區域)上共享權重。
並且,由於多層感知器會針對每個點預測分割標籤,可以通過特定任務的分割損失進行訓練。