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