CVPR 2019 | 基於骨架表達的單張圖片三維物體重建方法
現有的單視角三維物體重建方法通過採用不同的幾何形狀表達方式取得了不同程度的成功,但它們都難以重建出拓撲復雜的物體形狀。為此,華南理工大學,香港中文大學(深圳)以及微軟亞研院聯合提出一種 以骨架(meso-skeleton)為橋樑融合多種形狀表達方式優點的深度學習演算法 ,非常有效地解決了這一難題。
為了能夠準確地抓住物體的拓撲結構,本文引入了骨架做為橋樑,因其具有保護拓撲而又易於學習的優點。為了能夠從圖片中準確地推斷出對應物體的骨架,他們設計了一個全新的骨架合成網路架構,利用平行雙分支結構分別合成曲線狀和曲面狀骨架。
同時,他們採用了分階段學習的方式以融合多種形狀表達方式(體素,點雲,三角網格)各自的優點。影象的多階段層級利用有助於減小各階段學習時累計的預測誤差。實驗結果表明,這一方法在定量和視覺化對比均優於現有的重建方法。 這項工作受到會議評審者的一致好評,三位評審者均給出了強烈接(Strong Accept)的意見,已收錄為 CVPR 2019 Oral 論文。

論文連結: PaperWeekly
Introduction
從單張圖片恢復出三維物體形狀這一研究課題在許多應用中扮演著重要的角色,例如增加現實,影象編輯。但是由於物體的拓撲結構複雜多變,這一課題也頗具挑戰性。目前,基於體素表達的方法受限於三維卷積網路計算和記憶體的限制而難以得到高解析度的輸出。基於點雲表達的方法又很難生成平滑而又幹淨的表面。
三角網格表達對物體形狀提供了一種更有效,更自然的離散化逼近方式。最近的一些方法嘗試直接從輸入影象中恢復物體的網格表達。這些方法本質上是在對一個給定拓撲連線關係的初始網格變形,比較有代表性的初始網格有單位平面,球。儘管它們有一定的效果,但是仍然難以恢復具有複雜拓撲結構的物體表面,例如圖 1 所表示的具有細長的杆的椅子。

因此, 本文提出了一種基於骨架表達的分階段學習方法,來實現從單張圖片恢復物體表面網格表達 ,對於重構桌子椅子這些具有細長結構的物體效果尤為顯著。他們引入了骨架,因其能很好地保護拓撲,而且相比於複雜的表面更易於學習。
他們的方法具體分為以下三個階段:
第一階段是從輸入影象中學習生成骨架點雲。為此他們設計了平行的雙分支網路架構,被命名為 CurSkeNet 和 SurSkeNet,分別用於曲線狀和曲面狀骨架點雲的合成。為了 CurSkeNet 和 SurSkeNet 的訓練,他們針對 ShapeNet 的物體模型處理了骨架資料集來當做 ground truth 用於訓練。
在第二個階段,他們通過將合成的骨架點雲體素化,然後用三維卷積網路對粗糙的骨架體素進行修復提取出一個初始網格。此處為了減小高清體素輸出時的網路複雜度,採取了用全域性結構引導分塊體素修復的方式。
最後一個階段使用圖卷積神經網路來對前面獲得的初始網格進行變形以得到最後表面網格表達。
Approach

Overview
圖 2 展示了他們方法的整個流程圖。輸入物體的單視角影象 I , 本文的目標是重構出網格表達的完整物體形狀,同時能正確地抓住三維物體的拓撲結構。為了解決這一難題, 本文基於骨架表達,提出了以下分三個階段的物體重構過程。
在第一階段,他們採用編碼器-解碼器的網路結構從輸入圖片 I 學習出對應的骨架 K,它本質上是一個更簡潔緊湊的點雲表達。
在第二個階段,他們把獲得的骨架 K 先轉成一個粗糙的體素表達的 Vk,然後用三維卷積神經網路對其進行修復,得到一個更精細化的體素 V。
在最後一個階段,他們先從體素 M 中提取出一個粗糙的初始網格 Mb,然後再用圖神經網路對網格的頂點位置進一步優化,得到最後的輸出網格 M。每個階段都有一個影象編碼器來提取所各自需要的資訊,因此輸入圖片 I 引導著三個階段的學習過程。
Learning of Meso-Skeleton
CurSkeNet 和 SurSkeNet: 給定輸入影象 I,他們採用 ResNet-18 做為編碼器將提取的特徵對映成高維空間的向量,然後設計譯碼器同於生成骨架點雲,而譯碼器的網路架構是基於 CurSkeNet 和 SurSkeNet 的平行雙分支結構。
這樣的設計方法,可使曲線狀和曲面狀的骨架區域的合成得以獨立完成,互不干擾。SurSkeNet 通過對一些 2D 平面進行變形,來逼近曲面狀骨架。CurSkeNet 對一些 1D 直線進行變形,通過實施仿射變換來形成曲線,然後學習如何將這些曲線聚整合曲線狀的骨架部分。
Network Training: 本文用曲線狀和曲面狀的骨架點雲分別去訓練 CurSkeNet 和 SurSkeNet,所以採用 Chamfer Distance(CD 距離)做為損失函式的一部分,其定義如下:

為了保證變形的區域性一致性,防止出現過大的變形,他們還在骨架學習過程中加上了拉普拉斯平滑正則化項。它被定義為:

From Skeleton to Base Mesh

Sub-volume Synthesis with Global Guidance: 為了保護骨架 K 所抓住的拓撲結構以及得到粗糙的初始網格,他們需要將 K 進行修復以得到一個高解析度的體素表達。
具體地做法如下,先把骨架K體素化,得到兩種解析度下的體素表達,被記做 ,解析度為
。
如圖 3 所示,他們採用兩個三維卷積網路用於骨架體素的全域性結構和區域性子塊合成。全域性結構合成網路用於對 的修復,產生一個解析度為
的骨架體素表達。區域性子塊合成網路用從
中均勻切割出來的
子塊做輸入,對這些子塊獨立地進行修復。當修復每個子塊的時候,全域性網路的輸出
中對應的
對應的子塊也被一起輸入,使得每個子塊修復後的結果仍然保持全域性一致性。

Image-guided Volume Correction: 為了糾正在骨架生成階段時的預測誤差,我們再次利用輸入影象 I,從中學習一個低解析度 的骨架體素表達,將其整合到我們前面提到的全域性結構合成網路,得到一個更準確的全域性結構 。這最終將有助於我們得到一個更好的修復結果 V。如圖 4 所示,影象 I 的使用大大提高了修復後的骨架體素 V 的效果。
Base Mesh Extraction: 得到修復後的體素 V 後,我們用 Marching Cubes 演算法來產生初始網格 Mb,它仍然保留著和骨架 K 一樣的拓撲結構。為了減輕後續的計算負擔,我們對 Mb 進行了簡化。
Mesh Refinement

到目前為止他們獲得了抓住潛在物體拓撲結構的初始網格 Mb,但是還缺乏物體表面的細節。他們利用圖卷積神經網路結合輸入影象對粗糙的初始網格進行變形,達到在 Mb 的表面處補充細節的目的。
圖 5 所示是他們的網格變形網路。本文的圖神經卷積網路由一些圖卷積層組成,每個層對 Mb 的每個頂點以及其區域性鄰域實施空間濾波操作。圖卷積層的定義如下:

與 Pixel2Mesh 類似,我們也將從影象 I 提取出來的特徵結合到對應的頂點位置上來促進學習過程。關於損失函式選擇,此階段再次使用了 CD 距離來訓練。同時加上了平滑正則項來規範網格變形過程。一個是 edge regularization,用於防止邊長過長,避免大的變形,造成形狀畸變。另外一個是 normal loss,用於保證輸出物體表面的平滑。
Experiments
Single-view Reconstruction
為證明所提出方法在單視角重構這個任務上的有效性,本文挑選了 ShapeNet 中有代表性的五個物體種類(plane, bench, chair, table, firearm)來進行實驗說明。
Qualitative results

圖 6 展示了我們方法與現有方法的視覺對比結果。 可以看出,我們的方法(f)已經超過了其他方法(b-e),因為我們生成的是完整的物體形狀網格表達,而且能抓住正確的拓撲結構,以及刻畫更多的細節。
Quantitative Results
通過使用網格上採出具有 10000 個點的點雲,本文采用 CD 和 EMD 來評估重建質量。表 1 展示了與其他方法量化對比的結果。

Generalization on real images
圖 7 所示是我們的方法在三張真實圖片上的重構結果。 可以看到重建結果的質量與合成圖片的結果十分相似。特別是圖 7(a) 所示,該圖片雖然與 ShapeNet 無關,但是我們仍然能將看不到的細杆很好地重構出來。這一結果也證明了我們方法優秀的泛化能力。

Evaluation on Skeleton Inference
在這一節,我們對我們骨架學習方法的幾個變種進行比較,用此來說明我們最後所選用的模型是最優的。
它們是:1)“Point-only fitting”方式直接採用PointSetGeneration 去迴歸骨架點座標;2)“Line-only fitting”方式移除了我們方法中的面擬合分支,只通過對多根直線變形來逼近骨架;3)“Square-only fitting”方式則移除了線擬合分支,只通過對多個平面變形來逼近骨架 ;4)“Line-and-Square fitting”則是隻用一個 MLP 來同時學習線和麵的變形;5)“Ours w/o laplacian”代表我們的模型但沒有加拉普拉斯平滑項。
Quantitative Results

由表 2 可以看出我們最終的骨架學習模型比其它的幾個變種方法更優。另外一個發現是我們的拉普拉斯正則化項有助於骨架預測得更加準確。
Qualitative Results

圖 8 用一個例子展示了這些骨架學習方法的視覺對比結果。由此圖可以觀察到利用雙平行預測分支用於曲線狀和曲面狀骨架獨立合成這一設計方法和拉普拉斯平滑項的有效性。
總結
從單個視角恢復一個物體的三維形狀是計算機視覺領域中一項基礎性而又具有挑戰性的任務。本文提出的框架將這一任務分成三個階段,它首先恢復點雲表達的 3D 骨架,然後這些骨架點被轉為體素表達,通過三維卷積網絡合成一個更可靠的體素用於提取粗糙的初始網格。最後,一個圖神經網路被用於學習網格變形來產生表面細節。
正如文中的實驗所示,這一方法在視覺化和量化上均優於現有其他方法。但是這也有兩個將來可以改進的方向:1)如何將全部流程整合成一個端到端訓練的網路;2)在骨架學習,體素生成,網格變形每個過程嘗試使用對抗學習,以更一步提高最後輸出結果的質量。
#投 稿 通 道#
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢? 答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是 最新論文解讀 ,也可以是 學習心得 或 技術乾貨 。我們的目的只有一個,讓知識真正流動起來。
:memo: 來稿標準:
• 稿件確係個人 原創作品 ,來稿需註明作者個人資訊(姓名+學校/工作單位+學歷/職位+研究方向)
• 如果文章並非首發,請在投稿時提醒並附上所有已釋出連結
• PaperWeekly 預設每篇文章都是首發,均會新增“原創”標誌
:mailbox_with_mail: 投稿方式:
• 方法一:在PaperWeekly知乎專欄頁面點選“投稿”,即可遞交文章
• 方法二:傳送郵件至: [email protected] ,所有文章配圖,請單獨在附件中傳送
• 請留下即時聯絡方式(微信或手機),以便我們在編輯釋出時和作者溝通
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選 「交流群」 ,小助手將把你帶入 PaperWeekly 的交流群裡。
加入社群: http://paperweek.ly
微信公眾號:PaperWeekly
新浪微博:@PaperWeekly