1. 程式人生 > >Mesh R-CNN 論文翻譯(原理部分)

Mesh R-CNN 論文翻譯(原理部分)

畢設做Mesh R-CNN的實現,在此翻譯一下原論文。原論文https://arxiv.org/pdf/1906.02739.pdf。

 


摘要

二維感知的快速發展使得系統能夠準確地檢測真實世界影象中的物體。然而,這些系統在2D中進行預測,卻忽略了世界的3D結構。與此同時,三維形狀預測的進展主要集中在合成基準(synthetic benchmarks)和孤立目標(isolated objects)。我們結合這兩個領域的進步。我們提出了一個能夠檢測真實世界影象中的物體並生成一個給出該物體的完整三維形狀的三角形網格的系統。我們稱之為Mesh R-CNN,它用一個網格預測分支來增強Mask R-CNN,它輸出具有不同拓撲結構的網格,首先預測物體的粗體素表示,這些粗體素表示被轉換成網格,然後用一個圖卷積網路對網格的頂點和邊進行細化。我們在ShapeNet上驗證了我們的網格預測分支,超越了之前關於單影象形狀預測的工作。然後我們在Pix3D上部署完整的Mesh R-CNN,在那裡我們聯合檢測物體並預測它們的3D形狀。


 1.介紹

在過去的幾年裡,二維物體識別取得了飛速的發展。我們現在建立的系統可以在雜亂的真實世界影象中準確識別物體,用邊界框或者掩碼定位物體,預測2D關鍵點。儘管這些系統的表現令人印象深刻,但它們忽略了一個重要的事實:世界和影象中的目標是延伸到XY平面之外。

與此同時,三維形狀理解與深層網路方面也取得了重大進展。各種各樣的網路架構已經被開發出來3D形狀表示,例如voxels,point-clouds,meshes;這些表示法各有千秋。然而,這種多樣化和創造性的技術主要是在合成基準上開發的,例如ShapeNet,由獨立呈現的目標組成,比用於2D目標識別的自然影象基準(ImageNet ,COCO)要簡單得多。

我們認為,將這些迄今為止截然不同的研究方向結合起來的時機已經成熟。我們應該努力構建這樣的系統,即(像當前的2D感知方法)能夠在不受約束的真實世界影象上執行,其中包含許多目標、遮擋和不同的照明條件,但(像當前的3D形狀預測方法)不會忽略世界豐富的3D結構。

在本文中,我們朝著這個目標邁出了第一步。我們利用最先進的二維感知和三維形狀預測方法來建立這樣的系統:輸入真實世界的RGB影象,檢測影象中的目標,並輸出一個類別標籤,分割掩碼,和一個三維三角形網格,給出每個被檢測目標的完整三維形狀。

我們的方法,稱為Mesh R-CNN,建立在2D識別的最先進的方法Mask R-CNN上,用網格預測分支增強它,輸出高解析度的三角形網格。

我們預測的網格必須能夠捕獲各種真實物體的三維結構。因此,預測網格應該根據不同的視覺刺激動態地改變其複雜性、拓撲結構和幾何形狀。然而,先前利用深度網路的網格預測工作由於限定拓撲結構的網格模板而被迫變形[23,56,68]。如圖1所示,我們通過利用多個3D形狀表示來克服這個限制:我們首先預測粗體素化的目標表示,這些表示被轉換成網格並進行細化,以提供高度精確的網格預測。如圖2所示,這種混合方法是允許Mesh R-CNN輸出任意拓撲的網格,同時捕獲精細的目標結構。

 

                                                                       

                                                                                    圖1                                                                     圖2

我們在兩個資料集上對我們的方法進行基準測試。首先,我們在ShapeNet[4]上評估我們的網格預測分支,我們的體素預測和網格細化的混合方法在很大程度上優於之前的工作。其次,我們部署我們完整的Mesh R-CNN在最近Pix3D資料集[59],該資料集將395個宜家傢俱模型與真實世界的影象進行了匹配,這些影象具有不同的場景、雜亂和遮擋。迄今為止,Pix3D主要用於評估在ShapeNet上訓練的形狀預測模型,而ShapeNet使用完美剪裁,無遮擋的影象片段[40,59,72],或Pix3D模型的合成渲染影象[75]。相比之下,我們是第一個使用Mesh R-CNN在Pix3D上訓練系統的,該系統可以聯合檢測所有類別的目標並估計其完整的3D形狀。


2.相關工作

我們的系統輸入一個RGB影象並輸出一組檢測到的目標例項,每個目標都有一個三角形網格。我們的工作與最近在二維目標檢測和三維形狀預測方面的進展最直接相關。我們還從其他3D感知任務中獲得了更廣泛的靈感。

2D物體識別 二維目標識別的方法在每個目標所預測的資訊型別和整個系統架構上各不相同。目標檢測器輸出每個目標的邊界框和類別標籤;Mask R-CNN 額外輸出例項分割掩碼。我們的方法擴充套件了這一流水線的工作,以輸出每個目標的一個完整的3D網格。

單一檢視形狀預測 最近的方法使用多樣的形狀表示法對單幅影象進行三維重建。一些方法預測已知形狀的朝向或3D姿態。其他方法預測新的三維形狀,如3D點集、patches 或 geometric primitives;另一些使用深度網路來建模符號距離函式(簡稱SDF,有興趣可以查一下)。這些方法可以靈活地表示覆雜的形狀,但依賴於後處理來提取水密網格輸出。

  一些方法預測規則體素網格;然而直觀,縮放到高解析度輸出需要複雜的八叉樹[49,61]或巢狀的形狀架構[48]。

  其他的直接輸出三角形網格,但被限制從固定的[55,56,68]或檢索的[50]網格模板變形,限制了他們可以表示的拓撲。

  我們的方法使用了體素預測和網格變形的混合,使高解析度的輸出形狀可以靈活地表示任意拓撲。

  一些方法在沒有3D標註的情況下重建3D圖形[23, 25, 47, 67, 74]。這是一個重要的研究方向,但目前我們只考慮完全監督的情況,因為我們成功地對二維感知進行了強有力的監督。

多檢視形狀預測 在物體和場景的多檢視重建方面有一個廣泛的研究方向,經典的雙目立體視覺到使用形狀先驗,和現代學習技術。在這項工作中,我們專注於單影象形狀重建。

3D輸入 我們的方法輸入二維影象,預測語義標籤和三維形狀。由於深度感測器的可用性越來越高,人們對從三維輸入(RGB-D影象,點雲)中預測語義標籤的方法越來越感興趣。我們預計,將3D輸入納入我們的方法可以提高形狀預測的保真度(fidelity)。

資料集 二維感知的進步得益於大規模的註釋資料集如 ImageNet 和 COCO 。三維形狀預測資料集與二維形狀預測資料集相比存在較大的差距,主要原因是三維形狀預測資料集難以採集。ShapeNet 是一個大型的CAD模型資料集,它可以被渲染成合成影象。宜家資料集將宜家目標的CAD模型和現實世界的影象匹配;Pix3D 將這一思想擴充套件到更大的影象和模型集。Pascal3D 將CAD模型與真實世界的影象匹配,但由於其訓練集和測試集共享相同的小模型集,因此不適用於形狀重構。KITTI 註釋戶外街景3D邊界框,但不提供形狀註釋。


 3.方法 

我們的目標是設計一個系統,輸入一張單一的影象,檢測所有的目標,並輸出一個類別標籤,邊界框,分割掩碼和每一個被檢測的目標的3D三角形網格。我們的系統必須能夠處理雜亂的現實世界的影象,並且必須能夠端到端地訓練。為了適應現實世界各種複雜的目標,我們的輸出網格不應該被限制到一個固定的拓撲。我們通過結合最先進的2D感知和3D形狀預測來實現這些目標。

具體來說,我們建立在 Mask R-CNN 上,一個最先進的2D感知系統。Mask R-CNN是一種端到端的基於區域的目標檢測器。它輸入一個RGB影象併為每個檢測到的目標輸出一個邊界框、類別標籤和分割掩碼。影象首先通過一個主幹網路(e.g. ResNet-50-FPN [34]),接著是區域提議網路(RPN),該RPN網路給出了用目標分類和掩碼預測分支處理的目標建議。

Mask R-CNN的成功部分歸功於RoIAlign,它從影象特徵中提取區域特徵,同時保持輸入影象與最終預測分支中使用的特徵之間的對齊。我們的目標是在預測三維形狀時保持相似的特徵對齊。我們使用一種新的網格預測器來推斷三維形狀,該預測器包括一個體素分支和一個網格細分分支。體素分支首先估計物件的粗3D體素化,然後將其轉換為初始三角形網格。然後網格細分分支使用一系列操作在網格邊緣上的圖卷積層來調整初始網格的頂點位置。

體素分支和網格細化分支與Mask R-CNN現有的box和mask分支是同源的。所有分支均採用與RPN建議相對應的影象對齊的特性作為輸入。將下面詳細描述的體素和網格損失新增到邊界框和掩碼損失後,對整個系統進行端到端的訓練。輸出是一組邊界框以及它們的預測目標得分、掩碼和三維形狀。我們將系統稱為Mesh R-CNN,如圖3所示。

 

圖3

 

 我們現在詳細描述我們的網格預測器,包括體素分支和網格細化分支,以及它們的相關損失。

 3.1網格預測

我們的系統的核心是一個網格預測器,它接收到與一個目標的邊界框對齊的卷積特徵,並預測一個給出該目標完整3D形狀(full 3D shape)的三角形網格。與Mask R-CNN類似,在所有處理階段,我們通過區域和針對於頂點的對齊操作(即RoIAlign 和 VertAlign)來維持輸入圖片與特徵圖之間的相關性。我們的目標是捕獲一個影象中所有目標的特定於例項的3D形狀。因此,每個預測的網格必須具有特定於例項的拓撲(種類,頂點數,面,連線元件)和幾何(頂點位置)。

我們通過展開一系列的形狀推斷操作來預測不同的網格拓撲。首先,體素分支對每個目標的形狀進行自底向上的體素化預測,類似於Mask R-CNN的Mask分支。這些預測被轉換成網格,並通過網格細化頭進行調整,給出最終的預測網格。

對於每個物體,網格預測器的輸出是一個三角形網格$T=(V,F)$。$V = {v_i∈R^3}$是一組頂點位置,$F⊆V×V×V$是一組三角形面。

3.1.1體素分支

體素分支預測一個體素佔用概率網格,給出每個被探測目標的3D形狀。可以把它看作是 Mask R-CNN 的mask預測分支的3D模擬:我們不是預測$M×M$網格給出影象平面上物體的形狀,而是預測$G×G×G$網格給出物體的完整三維形狀。

  與Mask R-CNN一樣,我們通過在RoIAlign生成的輸入特徵圖上應用一個小的全卷積網路[38]來維持輸入特徵與預測體素之間的對應關係。該網路生成一個帶有$G$通道的特徵圖,為輸入中的每個位置提供一個體素佔用分數列。

  在3D中,保持影象和我們的預測之間的畫素對應是很複雜的,因為當物體遠離時,它們會變得更小。如圖4所示,我們通過使用相機的(已知的)固有矩陣來預測體素。

 

圖4

(預測體素在接收面的位置需要一個不規則形狀的體素網格。我們通過在由攝像機(已知)固有矩陣$K$變換的空間中進行體素預測來實現這一效果。

應用$K^{−1}$將我們的預測轉換回世界空間。結果在世界空間中形成了平截體形(frustum-shaped)體素。)

CuBify: Voxel to Mesh 體素分支產生一個三維網格的佔用概率,給出一個物體的粗糙形狀。為了預測更精細的3D形狀,我們希望將這些體素預測轉換為一個三角形網格,該三角形網格可以傳遞給網格細分分支(mesh refinement branch)。

  我們用一種叫做cubify的操作來填補這個空白。它輸入體素佔用概率和體素佔用的二值化閾值。每個被佔據的體素被一個長方體三角形網格替換,它有8個頂點,18條邊和12個面。合併相鄰已佔用體素之間的共享頂點和邊,並消除共享的內部面。這樣就形成了一個水密網格,其拓撲結構依賴於體素預測。

  Cubify必須是高效和批量的。這不是小事,我們在附錄中提供了實現這一點的技術實現細節。或者,移動立方體(marching cubes)[39]可以從體素網格中提取等值面,但是要複雜得多。

Voxel Loss 體素分支被訓練來最小化預測體素佔用概率和真實體素佔用之間的二元交叉熵。

3.1.2網格細分分支

來自體素分支的cubified網格只提供了一個粗糙的3D形狀,它不能精確地建模椅子腿這樣的精細結構。網格細分分支處理這個初始的cubified網格,用一系列細分階段細化其頂點位置。與Pixel2Mesh[68]類似,每個細化階段包括三個操作:頂點對齊,提取頂點的影象特徵;圖卷積層,沿網格邊緣傳播資訊;頂點細化,更新頂點位置。網路的每一層為每個網格頂點維護一個三維位置$v_i$和一個特徵向量$f_i$。

頂點對齊(Vertex Alignment) 為每個網格頂點生成與影象對齊的特徵向量。我們使用相機的固有矩陣將每個頂點投影到影象平面上。給定一個特徵圖,我們在每個投影頂點位置計算一個雙線性插值影象特徵。在網格細分分支的第一階段,VertAlign輸出每個頂點的初始特徵向量。在隨後的階段中,VertAlign輸出的是與前一階段的頂點特徵連線起來的特徵向量。

圖卷積層(Graph Convolution) [28]沿著網格邊緣傳播資訊。給定輸入頂點特徵,$f_i$它計算更新的特徵$f_i'=ReLU(W_0 f_i+\sum\nolimits_{j\in N(i)}W_1 f_j)$,其中$N(i)$給出網格中第i個頂點的鄰居,$W_0$和$W_1$是學習過的權值矩陣。網格細分分支的每個階段都使用幾個圖卷積層來在區域性網格區域上聚合資訊。

頂點細化(Vertex Refinement) 計算更新的頂點位置$v_i'=v_i+tanh(W_{vert}[f_i;v_i])$,其中$W_{vert}$是一個學習過的權值矩陣。這使得保持其拓撲固定的同時,更新網格的幾何形狀。網格細分分支的每個階段都以頂點細分結束,生成一箇中間網格輸出,在下一階段進一步細分。

Mesh Loss 定義在三角形網格上本地操作的損失是具有挑戰性的,所以我們使用定義在有限點集上的損失函式。我們通過密集取樣點雲的表面來表示一個網格。因此,點雲損失近似於形狀上的損失。與[56]類似,我們使用可微分網格取樣從網格表面均勻地取樣點(及其法向量)。為此,我們實現了一種高效的批量取樣器;詳見附錄。我們使用這個操作從ground-truth網格中取樣點雲$P^{gt}$,從我們的模型中每個中間網格預測中取樣點雲$P^i$。

  給定兩個點雲$P$,$Q$和法向量,令$\Lambda_{P,Q}=\{(p,arg min_q||p-q||):p\in P\}$為一組資料對$(p,q)$集,其中 $q$ 是 $Q$ 中 $p$ 的最近鄰居,令 $u_p$ 是點 $p$ 的法向量。點雲$P$與$Q$之間的倒角距離為 

$L_{cham}(P,Q)=|P|^{-1}\sum\limits_{(p,q)\in \Lambda_{P,Q}}||p-q||^2+|Q|^{-1}\sum\limits_{(q,p)\in \Lambda_{Q,P}}||q-p||^2$

而(絕對)法向距離為

$L_{norm}(P,Q)=-|P|^{-1}\sum\limits_{(p,q)\in \Lambda_{P,Q}}|u_p\cdot u_q|-|Q|^{-1}\sum\limits_{(q,p)\in \Lambda_{Q,P}}|u_q\cdot u_p|$

倒角和法線距離懲罰兩個點雲之間的不匹配位置和法線,但是僅僅最小化這些距離就會導致退化網格(見圖5所示 )。高質量的網格預測需要額外的形狀調整器:為此(To this end),我們使用邊緣損失 $L_{edge}(V,E)=\frac{1}{|E|}\sum\nolimits_{(v,v')\in E}||v-v'||^2$,其中 $E\subseteq V\times V$ 是預測網格的邊。另外,拉普拉斯損失[7]也施加平滑約束。

  第i級的網格損失為 $L_{charm}(P^i,P^{gt})$,$L_{norm}(P^i,P^{gt})$,$L_{edge}(V,E)$ 的加權和。網格細分分支被訓練來最小化所有細分階段的平均損失。


&n