Dataloaders
This directory contains scripts to generate Simulated datasets for training and testing.
It uses functionalities from tools folder to:
generate_dataset
- load and downsample data
- compute normals if needed
- apply random transformations
- add augmentations (noise, outliers and occlusion)
- save point clouds
Note: Two input point clouds must have same length.
generate_dataset_dict
- save generated dataset in dictionaries suitable to train models (following Learning3d requirments)
- checks dimensions (to meet Learning3d requirments)
combine_dataset_dict
- shuffle and combine all generated dictionaries into one
- split train and test sets
How to generate datasets?
Modify the args.txt file to contain the correct paths and other specifications e.g. downsampling rate, noise level, etc. Other default arguments in data_dict_generator.py can also be changed.
- Generate transformed target point clouds + GT transforms
Change
--action in dataloader/args.txttogenerate_datasetand run:
python dataloader/data_dict_generator.py @dataloader/args.txt
Generate train/test .pkl dicts Change
--action in dataloader/args.txttogenerate_dataset_dict, then run the above script again.Combine multiple object dicts Set
--action combine_dataset_dictand run again to get train and testdict.pklfiles.
Manual Run (without args.txt)
Optinally you can manually run:
python dataloader/data_dict_generator.py \
--pcdPath /path/to/source_scan.pcd \
--cadPath /path/to/object.stl \
--name teeth \
--action generate_dataset \
--every_k_points 100 \
--num_transformation 50 \
--angles 0 90 180 \
--translation_range -1 1 \
--index 0 \
--noise_level 0 \
--outlier_level 0 \
--outlier_bounds -0.05 0.05 \
--occ_level 0 \
--save_path data/simulators
then:
python dataloader/data_dict_generator.py \
--pcdPath /path/to/source_scan.pcd \
--cadPath /path/to/object.stl \
--name teeth \
--action generate_dataset_dict \
--dataset_size 50 \
--index 0 \
--save_path data/simulators