一般的な3Dデータセットのデータローダー
ShapeNetCore
ShapeNetは3D CADモデルのデータセットです。ShapeNetCoreはShapeNetデータセットのサブセットであり、https://www.shapenet.org/からダウンロードできます。ShapeNetCoreには、v1(55カテゴリ)とv2(57カテゴリ)の2つのバージョンがあります。
PyTorch3DのShapeNetCoreデータローダーは、torch.utils.data.Dataset
を継承しています。ローカルにShapeNetCoreデータセットが保存されているパスを受け取り、データセット内のモデルを読み込みます。ShapeNetCoreクラスは、モデルとそのカテゴリ
、モデルID
、頂点
、面
を読み込んで返します。ShapeNetCore
データローダーには、PyTorch3Dの微分可能なレンダラーを使用して、指定されたmodel_ids (List[int])
、categories (List[str])
、またはindices (List[int])
でモデルをレンダリングするカスタマイズされたrender
関数もあります。
読み込まれたデータセットは、PyTorch3Dのカスタマイズされたcollate_fn: pytorch3d.dataset.utils
モジュールのcollate_batched_meshes
を使用して、torch.utils.data.DataLoader
に渡すことができます。モデルの頂点
と面
を使用して、バッチ処理されたメッシュを表すMeshesオブジェクトが構築されます。このMeshes
表現は、PyTorch3Dの他の演算やレンダリングで容易に使用できます。
R2N2
R2N2データセットには、ShapeNetCore v.1データセットのサブセットである13個のカテゴリが含まれています。R2N2データセットには、各オブジェクトの独自の24レンダリングとボクセル化されたモデルも含まれています。こちらの手順に従って、R2N2データセットをダウンロードできます。
PyTorch3DのR2N2データローダーは、ShapeNetデータセットへのパス、R2N2データセットへのパス、およびR2N2のスプリットファイルへのパスを使用して初期化されます。ShapeNetCore
と同様に、pytorch3d.dataset.r2n2.utils
モジュールのカスタマイズされたcollate_fn: collate_batched_R2N2
を使用して、torch.utils.data.DataLoader
に渡すことができます。これは、ShapeNetCore
が返すすべてのデータと、さらにR2N2レンダリング(モデルごとに24ビュー)、カメラキャリブレーション行列、およびモデルごとのボクセル表現を返します。ShapeNetCore
と同様に、PyTorch3Dの微分可能なレンダラーを使用して指定されたモデルのレンダリングをサポートするカスタマイズされたrender
関数があります。さらに、R2N2の元のレンダリングと同じ方向でモデルをレンダリングすることもサポートしています。