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

2021-01-08 機器之心Pro

今日,TensorFlow 宣布推出 TensorFlow Graphics,該工具結合計算機圖形系統和計算機視覺系統,可利用大量無標註數據,解決複雜 3D 視覺任務的數據標註難題,助力自監督訓練。

GitHub 地址:https://github.com/tensorflow/graphics

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

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

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

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

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

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

可微圖形層

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

變換

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

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

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

建模攝像頭

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

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

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

材質

材質模型(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 卷積層和一個 3D 池化層,允許網絡在網格上執行語義部分分類(如下圖所示),更多信息參見該 Colab notebook:

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

TensorBoard 3d

視覺 debug 是評估實驗是否按正確方向運行的重要方式。因此,TensorFlow Graphics 配備有 TensorBoard 插件,以便交互式地查看 3d 網格和點雲。

開始項目

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

相關焦點

  • 基於TensorFlow的深度學習實戰
    毫不誇張得說,TensorFlow的流行讓深度學習門檻變得越來越低,只要你有Python和機器學習基礎,入門和使用神經網絡模型變得非常簡單。TensorFlow簡介如前所述,TensorFlow是一個深度學習庫,使用這一框架,可以用來構建和測試深度神經網絡。深度學習讓我們能夠以極高的準確性構建複雜的應用程式。
  • TensorFlow圖像分類教程
    雲棲君導讀:深度學習算法與計算機硬體性能的發展,使研究人員和企業在圖像識別、語音識別、推薦引擎和機器翻譯等領域取得了巨大的進步。
  • 【官方教程】TensorFlow在圖像識別中的應用
    但是這些任務對於計算機而言卻是一個大難題:它們之所以看上去簡單,是因為我們的大腦有著超乎想像的能力來理解圖像。在過去幾年裡,機器學習在解決這些難題方面取得了巨大的進步。其中,我們發現一種稱為深度卷積神經網絡的模型在困難的視覺識別任務中取得了理想的效果 —— 達到人類水平,在某些領域甚至超過。
  • 7種架構範例的深度學習,每個範例都提供了TensorFlow教程
    作為MIT的深度學習基礎系列課程的一部分,本文概述了7種架構範例的深度學習,每個範例都提供了TensorFlow教程的連結。 我們不久前介紹了 MIT 的深度學習基礎系列課程,由 MIT 學術研究員 Lex Fridman 開講,將介紹使用神經網絡解決計算機視覺、自然語言處理、遊戲、自動駕駛、機器人等領域問題的基礎知識。
  • MIT深度學習教程:一文看懂CNN、RNN等7種範例(TensorFlow教程)
    我們不久前介紹了 MIT 的深度學習基礎系列課程,由 MIT 學術研究員 Lex Fridman 開講,將介紹使用神經網絡解決計算機視覺、自然語言處理、遊戲、自動駕駛、機器人等領域問題的基礎知識。例如, image captioning 網絡可能有卷積編碼器 (用於圖像輸入) 和循環解碼器 (用於自然語言輸出)。Encoder-Decoder 架構的應用包括語義分割、機器翻譯等。TensorFlow 教程:請參閱駕駛場景分割的教程,該教程演示了針對自主車輛感知問題的最先進的分割網絡:
  • 深度學習基礎(九):CNN使用TensorFlow在開發圖像分類器
    卷積神經網絡在圖像和視頻識別,推薦系統和自然語言處理中具有廣泛的應用。神經網絡相關內容可參考本公眾號的文章:基於深度學習和神經網絡的重要基礎及方法概要本文相關內容目錄:計算機如何讀取圖像?為什麼不完全連接網絡?什麼是卷積神經網絡?
  • TensorFlow應用實戰 | TensorFlow基礎知識
    # -*- coding: UTF-8 -*-# 引入tensorflowimport tensorflow as tf# 設置了gpu加速提示信息太多了,設置日誌等級屏蔽一些import osos.environ['TF_CPP_MIN_LOG_LEVEL']='2'# 創建兩個常量 Tensor.第一個為
  • 可能是史上最全的Tensorflow學習資源匯總
    本篇文章將為大家總結Tensorflow純乾貨學習資源,非常適合新手學習,建議大家收藏。想要學習更多的Tensorflow知識,歡迎點擊上方藍字,關注我們的微信公眾號。 非常適合學習Tensorflow的小夥伴。
  • 從零開始搭建深度學習伺服器:TensorFlow + PyTorch + Torch
    本教程轉載於深度學習中文社區(studydl.com).在深度學習大行其道的今天,我們不應該停留於觀望的階段,我們應該多多上手進行實踐,下面將為大家介紹一下最簡單也是最基礎的內容,配置一個自己的深度學習伺服器.1.
  • MIT 深度學習基礎教程:七個基本框架TensorFlow代碼實戰
    專知以前介紹的MIT深度學習課程:作為麻省理工學院深度學習系列講座和GitHub教程的一部分,我們將介紹使用神經網絡解決計算機視覺、自然語言處理、遊戲、自動駕駛、機器人等領域問題的基礎知識。以下是麻省理工學院課程6.S094的深度學習基礎課程連結:https://deeplearning.mit.edu/代碼連結:https://github.com/lexfridman/mit-deep-learning深度學習是表徵學習:從數據中自動形成有用的表徵。
  • Tensorflow官方視頻課程-深度學習工具 TensorFlow入門
    課程首頁    https://cn.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187 你將學到什麼    課程 1 什麼是人工智慧和機器學習?
  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    讓我們看看這個問題在圖像分類的實際應用中的答案。在此之前,先介紹Keras和Tensorflow這兩個術語,幫助你在10分鐘內構建強大的圖像分類器。TensorflowTensorflow是開發深度學習模型最常用的庫。它是有史以來最好的庫,在日常實驗中被許多極客選擇。
  • 深度學習筆記7:Tensorflow入門
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 從Fashion-Mnist開始,入門Tensorflow與深度學習
    從今天開始,我們進行機器學習領域的最後一塊拼圖——深度學習的學習之旅,以及Tensorflow這個工具的使用。而基於多層級神經網絡的深度學習算法也正是如此。所以,從這個方面來說,深度學習的發展和興起很大程度上是源於人類對自身發展出的智能進行逆向開發的過程。既然人類擁有的我們所謂的智能,很自然的我們就會探索我們這種智能是如何產生的。如果這個過程可以量化並實體化成一套程序放入機器中運行,那麼很自然的,這樣的機器也會理論上和我們人類擁有同樣的智能。
  • 深度學習入門:Tensorflow實戰Digit Recognizer(一)
    我們在學習一門新的程式語言的時候,第一個項目都是「Hello word」。MNIST在圖像識別領域的地位正如「Hello world」在程式設計師心中的地位,本文將手把手教會大家利用Tensorflow實現一個簡單的Softmax回歸模型,快速完成Kaggle的入門賽Digit Recognizer。
  • GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
    來源:Github編輯整理:元子【新智元導讀】該項目是Jupyter Notebook中TensorFlow和PyTorch的各種深度學習架構本文搜集整理了Jupyter Notebook中TensorFlow和PyTorch的各種深度學習架構,模型和技巧,內容非常豐富,適用於Python 3.7,適合當做工具書。大家可以將內容按照需要進行分割,列印出來,或者做成電子書等,隨時查閱。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。
  • TensorFlow 安裝詳解
    機器學習是一種學科,一種類似數學的學科,交叉了數學、算法、計算機等多門學科。目的是讓機器(這裡指計算機)如何模擬或者實現人類的學習行為。就像我們讀小學,讀初中,讀高中... 讓機器學習的話可能需要 1 小時,因為機器效率很高。
  • 斯坦福深度學習課程第六彈:一起來學Tensorflow part1
    research的東西還是落地到工程應用上比較有價值,之前也手擼過一些toy project,不過這些實現要用在工程中,總是有那麼些虛的,畢竟穩定性和效率未必能夠保證。所幸的是,深度學習熱度持續升溫的大環境下,各種大神和各家大廠也陸續造福民眾,開源了一些深度學習框架,在這些開源框架的基礎上去搭建和實現自己想要的深度學習網絡結構就簡單和穩定得多了。
  • 教程| 沒有博士學位,照樣玩轉TensorFlow深度學習
    本項目的原文可參閱:https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#131、概述在 codelab 項目中,你將學習如何構建並訓練出能夠識別手寫數字的神經網絡。