常見 3D 資料集的資料載入器
ShapeNetCore
ShapeNet 是一個 3D CAD 模型的資料集。ShapeNetCore 是 ShapeNet 資料集的一個子集,可以從 https://www.shapenet.org/ 下載。ShapeNetCore 有兩個版本:v1(55 個類別)和 v2(57 個類別)。
PyTorch3D 的 ShapeNetCore 資料載入器 繼承自 torch.utils.data.Dataset
。它會接收 ShapeNetCore 資料集在本機儲存的路徑,並載入資料集中的模型。ShapeNetCore 類別會載入並傳回模型及其 類別
、模型 ID
、頂點
和 面
。ShapeNetCore
資料載入器還有一個自訂的 render
函式,可以使用 PyTorch3D 的可微分渲染器,透過指定的 模型 ID (List[int])
、類別 (List[str])
或 索引 (List[int])
來渲染模型。
載入的資料集可以透過 PyTorch3D 的自訂 collate_fn:pytorch3d.dataset.utils
模組中的 collate_batched_meshes
傳遞給 torch.utils.data.DataLoader
。模型的 頂點
和 面
會用於建構一個 Meshes 物件,表示批次處理的網格。這種 Meshes
表示法可以輕鬆地與 PyTorch3D 中的其他操作和渲染一起使用。
R2N2
R2N2 資料集包含 13 個類別,是 ShapeNetCore v.1 資料集的一個子集。R2N2 資料集還包含每個物件的 24 個渲染圖和體素化模型。可以按照 這裡 的說明下載 R2N2 資料集。
PyTorch3D 的 R2N2 資料載入器 使用 ShapeNet 資料集、R2N2 資料集和 R2N2 的分割檔案的路徑進行初始化。就像 ShapeNetCore
一樣,它可以透過自訂的 collate_fn:pytorch3d.dataset.r2n2.utils
模組中的 collate_batched_R2N2
傳遞給 torch.utils.data.DataLoader
。它會傳回 ShapeNetCore
傳回的所有資料,此外,它還會傳回 R2N2 渲染圖(每個模型 24 個視圖)以及相機校正矩陣和每個模型的體素表示。與 ShapeNetCore
類似,它有一個自訂的 render
函式,支援使用 PyTorch3D 可微分渲染器渲染指定的模型。此外,它還支援以與 R2N2 原始渲染圖相同的方位渲染模型。