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