渲染是計算機圖形學中的核心內(nèi)容,它可將 3D 模型轉(zhuǎn)換為 2D 圖像。這也是在 3D 場景屬性(scene properties)和 2D 圖像像素之間建立橋接的常規(guī)手段。不過傳統(tǒng)渲染引擎無法進行微分,因此它們不能被合并至深度學習工作管道中。PyTorch3D 內(nèi)置模塊化的可微分渲染器,能用來處理可微分的 3D 數(shù)據(jù)。
Facebook 近日開源了將 PyTorch 用于 3D 深度學習的函數(shù)庫 PyTorch3D,這是一個高度模塊化且經(jīng)過優(yōu)化的庫,具備獨有的功能,旨在通過 PyTorch 簡化 3D 深度學習。PyTorch3D 為 3D 數(shù)據(jù)提供了一組常用的 3D 運算符和快速且可微分的損失函數(shù)(loss function),以及模塊化的可微分渲染 API。通過上述的功能,研究人員可以立即將這些函數(shù)導入至當前最先進的深度學習系統(tǒng)中。
研究人員和工程師可以利用 PyTorch3D 進行各種 3D 深度學習研究(無論是 3D 重構(gòu)、集束調(diào)整,乃至 3D 推理),以及改進在二維空間下的識別任務。
對三維空間的認知,在人工智能與真實世界的互動過程中扮演著十分重要的角色。例如機器人在物理空間中的導航、改進虛擬現(xiàn)實體驗,以及識別 2D 內(nèi)容中被遮擋的物體等。不過即便有豐富深度學習技術(shù)積累的 Facebook,在面對 3D 的深度學習問題時依然會被困擾。Facebook 表示,之所以深度學習技術(shù)較少用于 3D 場景,是因為缺乏足夠的工具和資源來支撐神經(jīng)網(wǎng)絡與 3D 數(shù)據(jù)結(jié)合使用的復雜性,這種場景要求更多的內(nèi)存與更高的算力,不像 2D 圖像可以使用張量表示,而且許多傳統(tǒng)圖形運算符不可微分,因此 3D 深度學習技術(shù)的研究受到了限制。
為此,F(xiàn)acebook 構(gòu)建了 PyTorch3D 函數(shù)庫以推動 3D 深度學習研究,與 PyTorch 為 2D 識別任務提供高度優(yōu)化的函數(shù)庫一樣,PyTorch3D 通過提供批處理以及對 3D 運算符和損失函數(shù)的支持來優(yōu)化訓練和推理。為了簡化 3D 模型批處理的復雜度,F(xiàn)acebook 創(chuàng)建了 Meshes 格式,這是一種專為深度學習應用程序設(shè)計,用于批處理的異構(gòu)網(wǎng)格模型數(shù)據(jù)結(jié)構(gòu)。
這種數(shù)據(jù)結(jié)構(gòu)可以讓研究人員輕松地將基礎(chǔ)網(wǎng)格模型數(shù)據(jù)快速轉(zhuǎn)換成不同的視圖,以使運算符與數(shù)據(jù)的最有效表示方式相匹配。更重要的是,PyTorch3D 為研究人員和工程師提供了能夠靈活地在不同的表示視圖之間進行有效切換的方式,并訪問不同的網(wǎng)格屬性。
渲染是計算機圖形學中的核心內(nèi)容,它可將 3D 模型轉(zhuǎn)換為 2D 圖像。這也是在 3D 場景屬性(scene properties)和 2D 圖像像素之間建立橋接的常規(guī)手段。不過傳統(tǒng)渲染引擎無法進行微分,因此它們不能被合并至深度學習工作管道中。所以,F(xiàn)acebook 在 PyTorch3D 內(nèi)置了高度模塊化的可微分渲染器,能用來處理可微分的 3D 數(shù)據(jù)。此功能的實現(xiàn)由可組合單元組成,允許用戶輕松擴展渲染器以支持自定義照明或陰影效果。
Facebook 將這些功能打包成工具包,并提供了運算符、異構(gòu)批處理功能和模塊化可微分的渲染 API 等,幫助研究人員進行復雜的 3D 神經(jīng)網(wǎng)絡應用研究。
查看PyTorch3d文檔:https://pytorch3d.org/docs/why_pytorch3d.htm