The official code repository for the CVPR 2025 paper "SuperPC: A Single Diffusion Model for Unified Point Cloud Processing".
[Option 1] Install via conda environment YAML file (CUDA 11.6).
# Create the environment
conda env create -f env.yml
# Activate the environment
conda activate dpm-pc-genOur model only depends on the following commonly used packages, all of which can be installed via conda.
| Package | Version |
|---|---|
| PyTorch | ≥ 1.6.0 |
| h5py | not specified (we used 4.61.1) |
| tqdm | not specified |
| tensorboard | not specified (we used 2.5.0) |
| numpy | not specified (we used 1.20.2) |
| scipy | not specified (we used 1.6.2) |
| scikit-learn | not specified (we used 0.24.2) |
| open3d | not specified (we used 0.15.2) |
We have removed the EMD module due to GPU compatability issues. The legacy code can be found on the emd-cd branch.
If you have to compute the EMD score or compare our model with others, we strongly advise you to use your own code to compute the metrics. The generation and decoding results will be saved to the results folder after each test run.
Use the scripts (RGB2PointCloud.py, briefly_view_PtsCloud.py, and PtsCloud_process_save_as_hdf5.py) in the PtsDataFunc folder
# Train the model (default: in hospital environment)
python train_ae.py You may specify the value of arguments. Please find the available arguments in the script.
Note that --categories can take all (use all the categories in the dataset), airplane, chair (use a single category), or airplane,chair (use multiple categories, separated by commas). {!!Only hospital and hospitalRGB available now!!}
- Enter the specific folder (
AE_****_**_**__**_**_**) and.ptfile name (ckpt_********_******.pt) in thelogs_aefolder as part of the path below:
# Test the model in hospital environment
python test_ae.py --ckpt ./logs_ae/AE_****_**_**__**_**_**/ckpt_********_******.pt --categories hospitalRGBUse tensorboard (recommand) to view or check the plot_save folder.
Use ./plot_point_cloud.py file to visualize the outputs.
- Enter the specific folder (
AE_Ours_hospitalRGB_**********) in theresultsfolder as part of the path below: - Enter the test frame (
**) you want to view (defual is18; from 0 to the max test frame you used in the data processing, eg.: 0, 2, ..., 10, 11, ...)
# View the output
python plot_point_cloud.py --outputDir AE_Ours_hospitalRGB_********** --frameNum **The codebase is built upon: MinkowskiEngine, PCUP, DifussionPC. We appreciate the authors' excellent work.
@inproceedings{du2025superpc,
title={SuperPC: a single diffusion model for point cloud completion, upsampling, denoising, and colorization},
author={Du, Yi and Zhao, Zhipeng and Su, Shaoshu and Golluri, Sharath and Zheng, Haoze and Yao, Runmao and Wang, Chen},
booktitle={Proceedings of the Computer Vision and Pattern Recognition Conference},
pages={16953--16964},
year={2025}
}