當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

機器之心發表於2019-05-10
  • GitHub 地址:https://github.com/tensorflow/graphics

近幾年,一種可以插入神經網路架構中的新型可微圖形層(differentiable graphics layer)開始興起。從空間變換器(spatial transformer)到可微圖形渲染器,這些新型網路層利用多年的計算機視覺和圖形學研究知識來構建更高效的新網路架構。將幾何先驗和約束顯式建模到神經網路中,為能夠以自監督的方式進行穩健、高效訓練的架構開啟了大門。

從高階層面來說,計算機圖形管道需要 3D 物體及其在場景中的絕對位置、材質描述、光和攝像頭。然後,渲染器利用該場景描述生成合成渲染。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

相比之下,計算機視覺系統從影像開始,推理場景的引數,對場景中的物體及其材質、三維位置和方向進行預測。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

訓練能夠解決這些複雜 3D 視覺任務的機器學習系統通常需要大量資料。由於標註資料的過程既昂貴又複雜,因此設計能夠理解三維世界且訓練時無需太多監督的機器學習模型非常重要。

結合計算機視覺計算機圖形學技術後,我們得以利用大量可用的無標註資料。如下圖所示,這可以通過合成分析(analysis by synthesis)來實現:視覺系統抽取場景引數,圖形系統基於這些引數渲染影像。

如果渲染影像結果與原始影像匹配,則說明視覺系統準確地抽取了場景引數。在該設定中,計算機視覺計算機圖形學攜手合作,形成了一個類似自編碼器的機器學習系統,該系統能夠以自監督的方式進行訓練。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

可微圖形層

接下來,我們將探索 TensorFlow Graphics 的一些可用功能。更多詳情,參見 GitHub 專案。

變換

物體變換控制物體在空間中的位置。如下圖所示,利用軸角度旋轉立方體。旋轉軸指向上方,旋轉方向為逆時針,使得立方體逆時針旋轉。以下 Colab 示例展示瞭如何在神經網路中訓練旋轉形式,該神經網路被訓練用於預測觀測物體的旋轉和平移。

  • 地址 https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/6dof_alignment.ipynb

這項任務是很多應用的核心,包括聚焦於與其環境進行互動的機器人。在這些場景中,用機械臂抓取物體需要精確估計這些物體相對於機械臂的位置。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

建模攝像頭

攝像頭模型在計算機視覺領域中非常重要且基礎,因為它們對三維物體投影到影像平面上的外觀有極大影響。如下圖所示,該立方體看起來可以放大和縮小,但是事實上這些變化僅僅是由於焦距產生的變化。

想了解攝像頭模型的詳情,以及如何在 TensorFlow 中使用它們的具體示例,可以檢視:

  • https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/intrinsics_optimization.ipynb

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

材質

材質模型(material model)定義光與物體的互動過程,從而提供物體的外觀。例如,一些材質(如石膏)在各個方向對光進行反射,而鏡面等材質會對光進行鏡面反射。

在以下互動式 Colab notebook 中,你可以瞭解如何使用 Tensorflow Graphics 生成如下渲染。你還可以試驗不同的材質和光的引數,更充分地瞭解其互動過程。

  • 地址:https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/reflectance.ipynb

準確地預測材質屬性是很多工的基礎。例如,它可以讓使用者在自己的環境中放置虛擬傢俱,室內環境搭配傢俱的場景非常逼真,從而讓使用者準確地感知到這件傢俱的外觀。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

幾何——3D 卷積和池化

近年來,以點雲或網格形式輸出三維資料的感測器逐漸成為我們日常生活的一部分,包括智慧手機深度感測器、自動駕駛汽車雷達等等。由於其結構不規則,在這些表徵上執行卷積要比在規則網格結構上困難得多。

TensorFlow Graphics 提供兩個 3D 卷積層和一個 3D 池化層,允許網路在網格上執行語義部分分類(如下圖所示),更多資訊參見該 Colab notebook:

  • https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/mesh_segmentation_demo.ipynb

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

TensorBoard 3d

視覺 debug 是評估實驗是否按正確方向執行的重要方式。因此,TensorFlow Graphics 配備有 TensorBoard 外掛,以便互動式地檢視 3d 網格和點雲。

當計算機圖形學遇上深度學習,針對3D影像的TensorFlow Graphics面世

開始專案

TensorFlow Graphics 與 TensorFlow 1.13.1 及以上版本相容。API 和安裝說明參見:

  • https://www.tensorflow.org/graphics

原文連結:https://medium.com/tensorflow/introducing-tensorflow-graphics-computer-graphics-meets-deep-learning-c8e3877b7668

相關文章