CVPR 2020最佳學生論文分享回顧:通過二叉空間分割(BSP)生成緊湊3D網格

機器之心發佈

機器之心編輯部

在近日舉行的 CVPR 2020 大會上,最佳論文、最佳學生論文等獎項悉數公佈。加拿大西蒙弗雷澤大學陳之欽(Zhiqin Chen )等人的「BSP-Net」相關研究獲得了最佳學生論文獎,他們的論文題目是《BSP-Net: Generating Compact Meshes via Binary Space Partitioning》。在最新一期的機器之心 CVPR 2020 線上論文分享中,西蒙弗雷澤大學 (SFU) 博士一年級學生陳之欽以第一作者的身份向我們分享了這篇最佳學生論文。

在這項研究中,西蒙弗雷澤大學和谷歌研究院的三位研究者提出了一種無監督方法,能夠通過 convex decomposition 生成緊湊的結構化多邊形網格。

  • 論文地址:https://arxiv.org/pdf/1911.06971.pdf

  • 項目地址:https://github.com/czq142857/BSP-NET-original

多邊形網格在數字 3D 領域無處不在,但它們在深度學習革命中僅扮演了配角。在學習形狀生成模型這一方向上,領先方法要依賴於隱函數,並且只有經過昂貴的 iso-surfacing 處理過程才能生成網格。爲了克服這些困難,該研究在 Binary Space Partitioning(BSP,計算機圖形學中的經典空間數據結構)的啓發下探討了促進 3D 學習的方法。

BSP 的核心是對空間進行遞歸細分以獲得 convex set。利用這一屬性,研究者設計了 BSP-Net,一個通過 convex decomposition 來學習 3D 形狀表徵的網絡。重要的是,BSPNet 是無監督的,因爲訓練過程中不需要 convex shape decomposition。

該網絡經過訓練,利用一組 convex 來重建一個形狀,這些 convex 來自構建在一組平面上的 BSPtree。由 BSPNet 推斷出的 convex 可被輕鬆提取以形成多邊形網格,而無需進行 iso-surfacing 處理。生成的網格是緊湊的(即 low-poly),非常適合表示尖銳的幾何形狀。此外,它們一定是水密的網格,並且可以輕鬆地被參數化。該研究還表明,BSP-Net 的重構質量可以媲美 SOTA 方法,且它使用的 primitive 要少得多。

方法詳解

該研究試圖找到一種既能訓練又可解釋的幾何圖形深度表徵。研究者們通過設計一種能提供可微分 BSP-tree 表徵的網絡架構來完成這個任務。由於這種表徵通過隱函數編碼幾何圖形,所以它們很容易訓練。此外,由於這些表徵的輸出是 convex polytope 的集合,所以它們是可解釋的。

研究者提出了 BSP-Net。該網絡學習一個隱式場:給定 n 個點的座標和一個形狀特徵向量作爲輸入,網絡輸出一些能夠指示這些點是在形狀內部還是外部的值。這個隱函數的構造如圖 2 所示,由三個步驟組成:1)平面方程的集合意味着空間的 p 個二叉分割的集合,參見圖 2(上);2)一個算子 T_{p×c}將這些分割結果分組,以創建一個包含 c 個 convex shape primitive/part 的集合;3)最後,合併這些 part 集合以生成輸出形狀的隱式場。

下圖 3 顯示了與以上三個步驟對應的網絡架構:

1)超平面提取。給定一個特徵向量 f,應用一個多層感知機獲取平面參數 P_{px4},其中 p 是平面的數量,即

對於任意點 ,乘積 是該點到每個平面的符號距離的向量。如果點 X 在內部,則第 i 個距離爲負值,反之爲正值。

2)超平面分組。爲了將超平面分爲若干組幾何 primitive,研究者利用了二進制矩陣 T_{p×c}。通過一個最大池化操作,他們聚合了輸入平面,以形成一組 c 個 convex primitive 組成的集合。

注意,在訓練期間,梯度只能通過一個最大(max)的平面。因此,爲了簡化訓練,研究者利用了一個用求和代替 max 的版本。

3)形狀組裝。該層通過最小池化對 convex 進行分組,以創建一個可能非凸的輸出形狀:

注意,此處用 C^+ 是有目的的。之所以避免使用 C^*,是因爲在 TensorFlow 1 中的算子實現內存不夠高效。

爲了促進學習,研究者通過使用(加權)求和來將梯度分配給所有的 convex:

實驗結果與評估

在一個 2D 形狀合成數據集上,研究者分析了 BSP-Net 的行爲。此外,他們還將 BSP-Net 與其他 SOTA 方法進行了比較,以評估該研究中的自編碼器以及單視圖重建效果。

2D 形狀自編碼

爲了說明 BSP-Net 效果如何,研究者構建了一個 2D 合成數據集。他們在幾個 64 × 64 的圖像上分別放置了一個菱形、一個十字以及一個空心菱形,如圖 4(a)所示。這三種形狀是有順序的,菱形總是在左邊,空心菱形總是在右邊,這是爲了模仿 ShapeNet 等形狀數據集的結構。

在第一階段的訓練之後,該研究的網絡已經實現了良好的近似 S^+ 重建,但是,通過查看 S^∗,研究者發現他們推斷的輸出還存在一些缺點。在第二階段進行了調整之後,該研究的網絡實現了近乎完美的重構。最後,使用 overlap 損失顯著提高了表示的緊湊性,減少了每部分的 convex 數量,如圖 4(d)所示。

圖 4:在 2D 合成數據集上的評估——自編碼器是在合成的 2D 數據集上訓練的。研究者展示了自編碼結果,並用紅色圈出了第一階段中存在的錯誤,這些錯誤在第二階段已改正。此外,研究者還展示了使用 overlap 損失的效果。注意,在可視化時,使用了不同的顏色來表示不同的 convex。

3D 形狀自編碼

對於 3D 形狀的自編碼,研究者將 BSP-Net 與其他一些 shape decomposition 網絡進行了比較,包括 Volumetric Primitives(VP)、Super Quadrics(SQ)以及 Branched Auto Encoders(BAE)。

表 2 給出了每種類別的分割結果。

BSP-Net 在保證高分割準確度的同時,也能顯著提高重構質量,如表 1 和圖 7 所示。

表 1:各個模型的表面重構質量和 3D 形狀自編碼結果對比。

圖 7:分割和重建 / 定性研究。

單視圖重建(SVR)

在單視圖重建任務上,研究者將 BSP-Net 與 AtlasNet、IMNET 和 OccNet 做了比較,表 3 和表 4 中給出了定量分析結果,在圖 8 中給出了定性結果。

表 3:單視圖重建,與 SOTA 方法的比較。

表 4:low-poly 分析——單視圖重建中的數據集平均指標。

圖 8:單視圖 3D 重建,該模型與 AtlasNet [16]、IM-NET [5]及 OccNet [28]的比較結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章