To integrate these datasets with our code, download them using the links below:
- ModelNet40
- ShapeNetCore
- ScanObjectNN
(Ensure you agree to the terms of use by filling out this form before downloading.)
After downloading, extract the contents of each dataset into the same parent directory for easy access.
For the ModelNet40-C dataset, you can directly download the corrupted version from this Zenodo link. To generate the same corruptions for ShapeNetCore or ScanObjectNN (if required), run the following command:
python ./datasets/create_corrupted_dataset.py --main_path <path/to/dataset/parent/directory> --dataset <dataset_name>
Replace <dataset_name>
with either scanobjectnn
or shapenet
, as appropriate.
Note: The corruptions "occlusion" and "lidar" require model meshes and are computed using the Open3D library.
Once the corrupted versions of the datasets and their labels are prepared, organize them into the following folder structure under the data root directory:
data/
├── modelnet40_c/
│ ├── data_background_5.npy
│ ├── data_cutout_5.npy
│ ├── ...
│ ├── label.npy
├── shapenet_c/
│ ├── data_background_5.npy
│ ├── data_cutout_5.npy
│ ├── ...
│ ├── label.npy
├── scanobjectnn_c/
│ ├── data_background_5.npy
│ ├── data_cutout_5.npy
│ ├── ...
│ ├── label.npy
Ensure each dataset's corrupted version is placed in its corresponding folder (modelnet40_c
, shapenet_c
, scanobjectnn_c
) within the data
root directory.