-
Notifications
You must be signed in to change notification settings - Fork 1
Usage and Examples
PCC-HAUS operates in three main steps: preprocessing, inference, and postprocessing. At least one point cloud completion framework must be installed in the system in order to perform the inference step. In addition, a configuration file must be prepared, based on one of the provided presets. Example usage scenarios are provided at the bottom of this page.
Each preset file follows a standard JSON structure and contains parameters for both the external point cloud completion framework and the PCC-HAUS framework. It is recommended to choose a preset preconfigured for your preferred model and only modify the root path under fullRootDir.
Parameters related to the point cloud completion framework:
"type": name of the framework and the dataset used for training
"fullRootDir": path to the root directory to the framework
"runDir": subdirectory used for running the inference commands
"inferenceCommand": bash command used to start the inferencing process
"directoriesToClear": paths to subdirectories which will be cleared before inferencing
"partialDir": path to the subdirectory with input partial data
"completeDir": path to the subdirectory with reference complete data
"datasetConfigDir": path to subdirectory with configuration files used for ShapeNet-55 models
"outputsDir": path to the subdirectory with the point cloud completion results
Parameters related to PCC-HAUS processing:
"create_variants": repeat the partitioning process with four extra offsets
"skipMerging": disable the leaf node merging step during preprocessing
"prefix": prefix for files with partitioned data
"copiedOutputsDir": directory inside <temp_results_dir> to which the point cloud completion results will be copied
"optimal_points": the exact number of points required for performing point cloud completion
"max_points": check the paper for "maximum value"
"remove_duplicates": remove redundant points which occupy virtually the same coordinates as their neighbors
"max_outlier_distances": values used for outlier removal; each result will be saved to a separate file
"partitioningType": the partitioning scheme used; default is "QUADTREE", can also be set to "GRID"
"gridDensity": number of divisions on the X and Y axes, used only if the "GRID" partitioning is selected
This step prepares the partitioned data.
python pcc-haus.py sf_preproc <input_dir> <temp_results_dir> <preset_file> \
[--reference_dir <dir>]-
input_dir: Path to the directory with partial point clouds. -
temp_results_dir: Path to the directory which will contain partitioned data. -
preset_file: Path to the preset JSON file. -
--reference_dir(optional): Path to the directory with ground-truth data.
This step executes the chosen point cloud completion model. PCC-HAUS automatically copies all necessary input and output files.
python pcc-haus.py sf_inference <temp_results_dir> <preset_file>-
temp_results_dir: Path to the directory with partitioned data. -
preset_file: Path to the preset JSON file.
Note: If processing appears stuck, you can interrupt the process and run the inference command directly to diagnose the issue.
This step handles the final merging and outlier removal.
python pcc-haus.py sf_postproc <input_dir> <temp_results_dir> <preset_file> \
[--merge]-
input_dir: Path to the directory with point cloud completion results. -
temp_results_dir: Path to the directory with partitioned data. -
preset_file: Path to the preset JSON file. -
--merge(optional): Path to the directory with the partial data, used to merge final results with the input point clouds.
Both scenarios assume that input data is in partial_data/, ground-truth is in reference_data/, and results will be saved to processing_results/.
- Create partitioned data:
python pcc-haus.py sf_preproc partial_data processing_results _Presets/SeedFormer-SN55.json --reference_dir reference_data- Run inference:
python pcc-haus.py sf_inference processing_results _Presets/SeedFormer-SN55.json- Perform postprocessing:
python pcc-haus.py sf_postproc processing_results/predicted processing_results _Presets/SeedFormer-SN55.json --merge partial_data- Create partitioned data:
python pcc-haus.py sf_preproc partial_data processing_results _Presets/AdaPoinTr-PCN.json --reference_dir reference_data- Run inference:
python pcc-haus.py sf_inference processing_results _Presets/AdaPoinTr-PCN.json- Perform postprocessing:
python pcc-haus.py sf_postproc processing_results/predicted processing_results _Presets/AdaPoinTr-PCN.json --merge partial_data