FaceBook開源PyTorch3D:基於PyTorch的新3D計算機視覺庫

2020-12-04 機器之心Pro

機器之心報導

參與:一鳴、Jamin

PyTorch 進軍三維計算機視覺了,專用庫已出爐。

3D 計算機視覺是一個重要的課題,如何選擇合適的框架進行計算,使得處理效果更好、更高效?近日,FaceBook 博客更新了一篇新的文章,介紹了團隊開發的針對 3D 計算機視覺的框架——PyTorch3D。這是一個基於 PyTorch 的庫,在 3D 建模,渲染等多方面處理操作上有更好的表現。

項目地址:https://github.com/facebookresearch/pytorch3d

基於 PyTorch 的 3D 計算機視覺處理庫

據項目介紹,PyTorch3d 是一個高效、可復用的 3D 計算機視覺庫。在這一項目中,開發者實現了以下新特性:

1. 他們提出了新的 3D 數據結構——Meshes,這種數據結構可以更好地存儲和修改三角網格的數據;

2. 高效處理三角網格的算子,如投影變換、圖卷積、採樣、損失函數等;

3. 一個可微分的網格生成器;

由於是基於 PyTorch 的,這個框架主要面向的是深度學習方面的模型。項目目標是將 3D 計算機視覺和深度學習結合,用於對三維數據的預測和計算。在 PyTorch3D 中,所有的算子都:

1. 使用 PyTorch 的算子;

2. 可以使用異構的批數據;

3. 可微分;

4. 能夠使用 GPU 加速;

這樣一來,PyTorch3D 吸收了深度學習框架的優勢,同時能夠專門針對 3D 建模渲染等進行計算,有著很好的性能和應用優勢。

主要特性

PyTorch3D 主要有三個值得注意的新特性,這些特性在 FaceBook 的博客中進行了介紹。

3D 網格數據的新格式:Meshes

由於三維網格包含頂點坐標以及面的索引這兩者的集合,因此在批量處理不同尺寸的三維網格時會需要進行一些調整。為了解決這個問題,研究者們提出了 Meshes,一種在深度學習應用中可以批量處理異構網絡的數據結構。

Mesh 的數據結構。

這種數據結構使得研究人員很容易將底層的網格數據轉換為合適的格式,從而讓相應的算子能夠匹配到最高效的數據表示。Pytorch3D 為用戶提供了在不同的表示視圖間高效切換的方法,同時還可以獲得不同數據表示的屬性,具有很好的靈活性。

對 3D 數據的高效處理

團隊已經完成了部分工作,如優化一些常用運算符、優化三維數據的損失函數,以及支持異構批數據輸入等。

這說明,用戶可以在 Pytorch3D 中直接導入這些算子,以便於更快的進行實驗。這些算子包括倒角損失(chamfer loss),它是一種用於比較兩組點雲的方法,可以用作三維網格的損失函數。開發團隊還使用 CUDA 內核為這個損失函數創建了一個算力資源密集型的最近鄰計算優化方法。

通過對倒角損失等進行收斂,從而建模。

可微的圖像渲染方法

將 3D 模型渲染為 2D 圖像是這一領域的核心部分。這種渲染採用的思路是將 3D 的場景屬性轉換為 2D 圖像的像素點信息。傳統的渲染方法一般是不可微的,因此無法和深度學習結合。可微的渲染方法是一個新的研究領域,而研究者希望通過 PyTorch3D 來實現。

將 3D 模型轉換為 2D 圖像的過程。

在項目中,研究者採用了高效、模塊化且可微的渲染器(renderer)。而且,這些都是可以擴展的,用戶可以很容易地進行定製,比如在渲染的時候改變光影效果。而在計算密集的模型轉像素點階段,計算可以在 PyTorch、C++和 CUDA 上並行化,還能夠全面地進行測試,驗證其準確性。和其他 PyTorch3D 的算子一樣,渲染器也是支持異構批量數據的。

使用教程

除了在博客中介紹了項目之外,項目研究者還提供了四個相關教程。

將球形點雲分解為海豚: https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/deform_source_mesh_to_target_mesh.ipynb

渲染帶有材質的點云:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/render_textured_meshes.ipynb

網格調整:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/bundle_adjustment.ipynb

相機視角優化:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/camera_position_optimization_with_differentiable_rendering.ipynb

相關焦點

  • 讓3D深度學習更快更靈活,Facebook開源PyTorch3D
    Facebook AI 已經推出了用於 3D 深度學習的開源工具包,PyTorch3D。顧名思義,PyTorch3D 是一個基於 PyTorch 的高度模塊化,且經過優化的庫。旨在通過 PyTorch 簡化 3D 深度學習。PyTorch3D 帶有常用的 3D 運算符和用於 3D 數據的損失函數,以及模塊化可微渲染API。
  • Facebook 開源 3D 深度學習函數庫 PyTorch3D
    原標題:Facebook開源3D深度學習函數庫PyTorch3D來源:開源中國Facebook近日開源了將PyTorch用於3D深度學習的函數庫PyTorch3D,這是一個高度模塊化且經過優化的庫,具備獨有的功能,旨在通過PyTorch簡化3D深度學習。
  • PyTorch實現,GitHub 4000星:這是微軟開源的計算機視覺庫
    機器之心報導編輯:魔王、陳萍本文介紹了微軟開源的計算機視覺庫,它囊括了計算機視覺領域的最佳實踐、代碼示例和豐富文檔。近年來,計算機視覺領域突飛猛進,在人臉識別、圖像理解、搜索、無人機、地圖、半自動和自動駕駛方面得到廣泛應用。而這些應用的核心部分是視覺識別任務,如圖像分類、目標檢測和圖像相似度。
  • 微軟開源計算機視覺庫!PyTorch實現,GitHub 獲 4000星
    而這些應用的核心部分是視覺識別任務,如圖像分類、目標檢測和圖像相似度。在各種計算機視覺模型和應用層出不窮的當下,如何把握髮展脈絡,跟進領域前沿發展呢?微軟創建了一個庫,提供構建計算機視覺系統的大量示例和最佳實踐指導原則。
  • Kornia開源可微分計算機視覺庫,基於Pytorch
    Kornia 是一個基於 PyTorch 的可微分的計算機視覺庫,實現了可微的基礎計算機視覺算子和可微的數據增廣。該項目在 Github 上已經收穫了 3k 星。PyTorch 的可微分的計算機視覺 (differentiable computer vision) 開源庫,在 Github 上已經有了 3000 星。
  • Facebook開源了可簡化PyTorch實驗的框架
    > Source: https://medium.com/@rankjay0101/introduction-to-deep-learning-with-pytorch-from-facebook-udacity-facebook-pytorch-scholarship
  • 硬剛Tensorflow 2.0,pytorch 1.3 今日上線!
    例如計算機視覺和自然語言處理任務。更多關於 PyTorch 移動端:http://pytorch.org/mobile量化支持開發 ML 應用程式時,有效利用伺服器端和設備上的計算資源非常重要。為了支持在伺服器和邊緣設備上進行更有效的部署,PyTorch 1.3 現在支持使用常見的 eager 模式進行 8 位模型量化。
  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    年初公開的目標檢測平臺,包含了大量業內最具代表性的目標檢測、圖像分割、關鍵點檢測算法,該框架主要基於 python 和 caffe2 實現,開源項目已獲得了超 2.2w 的星標數。Detectron 2 與之前的 detectron 不同,它並非在原版基礎上進行改寫,而是徹底重寫的全新版本。新版目標檢測平臺 Detectron 2 則基於 PyTorch 框架,以 maskrcnn 基準測試作為起點。通過全新的模塊化設計,Detectron2 變得更靈活且易於擴展,它能夠在單個或多個 GPU 伺服器上提供更快速的訓練速度。
  • Facebook發布PyTorch 1.1,開源AI模型優化簡化工具BoTorch & Ax
    在此次開發者大會期間,Facebook開源了簡化模型優化的工具——BoTorch和Ax,還發布了Pytorch 1.1。Facebook F8 大會主要面向圍繞該網站開發產品和服務的開發人員及企業家,大會通常包括主題演講以及 Facebook 新產品、新工具的發布。其名稱源自 Facebook 的 8 小時黑客馬拉松競賽。
  • PyTorch實現,GitHub4000星:微軟開源的CV庫
    機器之心報導編輯:魔王、陳萍本文介紹了微軟開源的計算機視覺庫,它囊括了計算機視覺領域的最佳實踐、代碼示例和豐富文檔。而這些應用的核心部分是視覺識別任務,如圖像分類、目標檢測和圖像相似度。在各種計算機視覺模型和應用層出不窮的當下,如何把握髮展脈絡,跟進領域前沿發展呢?微軟創建了一個庫,提供構建計算機視覺系統的大量示例和最佳實踐指導原則。
  • PyTorch實現,GitHub4000星:微軟開源的CV庫
    機器之心報導編輯:魔王、陳萍本文介紹了微軟開源的計算機視覺庫,它囊括了計算機視覺領域的最佳實踐、代碼示例和豐富文檔。微軟創建了一個庫,提供構建計算機視覺系統的大量示例和最佳實踐指導原則。項目地址:https://github.com/microsoft/computervision-recipes這個庫旨在構建一個全面的集合,涵蓋利用了計算機視覺算法、神經架構和系統運行方面近期進展的工具和示例。
  • ​關於深度學習、NLP和計算機視覺的30個頂級Python庫
    那麼,廢話少說,下面是就是由KDnuggets員工精心挑選出來,可用於深度學習、自然語言處理和計算機視覺的30個頂級Python庫。它具備著全面綜合的、靈活的工具、庫和社區資源生態系統,可以幫助研究人員去推動機器學習先進的技術的發展,並讓開發人員可以輕鬆地構建和部署基於機器學習的應用程式。2.
  • Facebook開源多款AI工具,支持遊戲、翻譯
    Facebook 內部使用的庫和模型。GitHub 地址:https://github.com/facebookresearch/visdom▌庫 & 模型1)視覺(Vision)DetectronDetectron 是一個用於目標檢測的高性能代碼庫,可以輸出邊界框和目標實例分割的結果
  • Kornia開源可微分計算機視覺庫,基於Pytorch,GitHub 3000星
    Kornia 是一個基於 PyTorch 的可微分的計算機視覺庫,實現了可微的基礎計算機視覺算子和可微的數據增廣。該項目在 Github 上已經收穫了 3k 星。PyTorch 的可微分的計算機視覺 (differentiable computer vision) 開源庫,在 Github 上已經有了 3000 星。
  • 匯總|基於雷射雷達的3D目標檢測開源項目&數據集
    包含了最火最熱的KITTI到當前研究前沿的多模態,時序融合等的新數據集。分類方法如下,首先按照場景可以將數據集劃分為室內和室外數據集。然後分別介紹目前3D目標檢測室內和室外的一些常用數據集;然後介紹一些做研究容易上手的項目,並做一些簡單的異同總結。
  • PyTorch 深度學習官方入門中文教程 pdf 下載|PyTorchChina
    PyTorch是一個基於Torch的Python開源機器學習庫,用於自然語言處理等應用程式。它主要由Facebookd的人工智慧小組開發,不僅能夠 實現強大的GPU加速,同時還支持動態神經網絡,這一點是現在很多主流框架如TensorFlow都不支持的。
  • 《PyTorch中文手冊》來了
    今天我們強烈推薦一本中文 PyTorch 書籍 ——PyTorch 中文手冊 (pytorch handbook),並附上試讀。這是一本開源的書籍,目標是幫助那些希望和使用 PyTorch 進行深度學習開發和研究的朋友快速入門,其中包含的 Pytorch 教程全部通過測試保證可以成功運行。
  • PyTorch 1.0 正式版發布了!
    GitHub 地址:https://github.com/pytorch/pytorch/releases/tag/v1.0.0PyTorch 1.0 同時面向產品化 AI 和突破性研究的發展,「我們在 PyTorch1.0 發布前解決了幾大問題,包括可重用、性能、程式語言和可擴展性。」
  • 深度學習新應用:在PyTorch中用單個2D圖像創建3D模型
    本文試著將深度學習擴展到單個 2D 圖像的 3D 重建任務中,這是 3D 計算機圖形學領域中最重要也是最有意義的挑戰之一。任務單個圖像只是 3D 對象在 2D 平面的投影,所以一些高維空間的數據一定會在低維表徵中丟失。因此,單視角 2D 圖像中並沒有足夠的數據來構建其 3D 組件。
  • Torch7 開源 PyTorch:Python 優先深度學習框架
    Torch7 團隊開源了 PyTorch。據官網介紹,PyTorch 是一個 Python 優先的深度學習框架,能夠在強大的 GPU 加速基礎上實現張量和動態神經網絡。