常用 3D 数据集的数据加载器
ShapeNetCore
ShapeNet 是一个包含 3D CAD 模型的数据集。ShapeNetCore 是 ShapeNet 数据集的一个子集,可以从 https://www.shapenet.org/ 下载。ShapeNetCore 有两个版本:v1(55 个类别)和 v2(57 个类别)。
PyTorch3D 的 ShapeNetCore 数据加载器 继承自 torch.utils.data.Dataset
。它接收 ShapeNetCore 数据集在本地存储的路径,并加载数据集中的模型。ShapeNetCore 类加载并返回模型及其 categories
、model_ids
、vertices
和 faces
。ShapeNetCore
数据加载器还具有一个自定义的 render
函数,该函数使用 PyTorch3D 的可微渲染器根据指定的 model_ids (List[int])
、categories (List[str])
或 indices (List[int])
渲染模型。
加载的数据集可以与 PyTorch3D 的自定义 collate_fn
:pytorch3d.dataset.utils
模块中的 collate_batched_meshes
一起传递给 torch.utils.data.DataLoader
。模型的 vertices
和 faces
用于构建一个表示批处理网格的 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 原渲染相同的方位渲染模型。