Update SPCF checkpoint to iter110k (online 75.57). Replace bundled checkpoint_best.pkl and README scores to match final submission.
Update SPCF checkpoint to iter110k (online 75.57).
Replace bundled checkpoint_best.pkl and README scores to match final submission.
三阶段点云降噪管线:VM → CVM → SPCF。训练阶段对每样本随机采样 10k / 30k / 50k 点(multires),推理阶段对测试集全图 50k 点降噪。
conda activate jittor # 见下方环境配置 # 1. 解压测试集到项目根目录 -> ./dataset_test_noisy/ unzip dataset_test_noisy.zip # 2. 推理并打包 bash scripts/pack_submission.sh # 产出: output/predictions/ 与 submission.zip
等价命令:
python run.py --task configs/task/predict.yaml --seed 123 cd output/predictions && zip -r ../../submission.zip shapenet/
默认加载 checkpoints/spcf/checkpoint_best.pkl(线上全流程 75.57 分)。换权重只需改 configs/task/predict.yaml 中的 load_ckpt,或:
checkpoints/spcf/checkpoint_best.pkl
configs/task/predict.yaml
load_ckpt
CKPT=checkpoints/spcf/checkpoint_best.pkl bash scripts/pack_submission.sh
依赖:Python 3.9 · GCC/G++ ≤ 10 · CUDA · Jittor
conda create -n jittor python=3.9 -y conda activate jittor conda install -c conda-forge gcc=10 gxx=10 libgomp -y cd /path/to/CG python -m pip install -r requirements.txt pip install point-cloud-utils
路径默认为项目根目录下的相对路径,可按需修改 configs/data/ 中对应 yaml。
configs/data/
./dataset_train/
configs/data/train_{vm,cvm,spcf}.yaml
./dataset_test_noisy/
configs/data/predict.yaml
训练集目录结构:
dataset_train/shapenet/<synset_id>/<model_id>/models/model_normalized.obj
测试集目录结构:
dataset_test_noisy/shapenet/<synset_id>/<model_id>/noisy.npy
数据列表:datalist/train.txt、validate.txt、test.txt。
datalist/train.txt
validate.txt
test.txt
checkpoints/ ├── vm/checkpoint_99.pkl # VM 续训起点(可选) ├── vm/checkpoint_299.pkl # Stage 1 输出 ├── cvm/checkpoint_best.pkl # Stage 2 输出 └── spcf/checkpoint_best.pkl # Stage 3 定稿(推理默认)
checkpoints/vm/checkpoint_299.pkl
checkpoints/cvm/checkpoint_best.pkl
统一设置:export CUDA_VISIBLE_DEVICES=0,--seed 123。
export CUDA_VISIBLE_DEVICES=0
--seed 123
三阶段按顺序执行;后一阶段 yaml 中的 vm_ckpt / cvm_ckpt 指向前一阶段输出。
vm_ckpt
cvm_ckpt
python run.py --task configs/task/train_vm.yaml --seed 123 python run.py --task configs/task/train_cvm.yaml --seed 123 python run.py --task configs/task/train_spcf.yaml --seed 123
configs/task/train_vm.yaml
checkpoints/vm/
configs/task/train_cvm.yaml
checkpoints/cvm/
configs/task/train_spcf.yaml
checkpoints/spcf/
VM 续训说明:默认从 checkpoint_99.pkl 续到 epoch 299。若要从头训练 VM,删除 load_ckpt 并将 trainer.start_epoch 设为 0。
checkpoint_99.pkl
trainer.start_epoch
0
submission.zip └── shapenet/ └── <synset_id>/ └── <model_id>/ └── denoised.npy # float32, shape (N, 3)
CG/ ├── run.py ├── checkpoints/ # 预训练权重 ├── configs/ │ ├── task/ # train_{vm,cvm,spcf}.yaml, predict.yaml │ ├── data/ │ ├── model/ │ ├── system/ # vm / cvm / spcf(训练), infer(推理) │ └── transform/ ├── datalist/ ├── scripts/pack_submission.sh └── src/
configs/system/vm.yaml
configs/system/infer.yaml
Q: 没有 GPU / 没装训练数据,能复现提交吗?可以。只需测试集 + predict.yaml(或 pack_submission.sh),使用仓库内 checkpoints/spcf/checkpoint_best.pkl。
predict.yaml
pack_submission.sh
Q: 训练报找不到 mesh?确认 dataset_train/ 已解压,或修改 configs/data/train_*.yaml 中的 input_dataset_dir。
dataset_train/
configs/data/train_*.yaml
input_dataset_dir
Q: 推理报找不到 noisy.npy?确认 dataset_test_noisy/ 已解压,或修改 configs/data/predict.yaml。
dataset_test_noisy/
Q: 随机种子?定稿实验使用 --seed 123。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Point Cloud Denoising
三阶段点云降噪管线:VM → CVM → SPCF。训练阶段对每样本随机采样 10k / 30k / 50k 点(multires),推理阶段对测试集全图 50k 点降噪。
Quick Start(推理 + 提交)
等价命令:
默认加载
checkpoints/spcf/checkpoint_best.pkl(线上全流程 75.57 分)。换权重只需改configs/task/predict.yaml中的load_ckpt,或:环境配置
依赖:Python 3.9 · GCC/G++ ≤ 10 · CUDA · Jittor
数据准备
路径默认为项目根目录下的相对路径,可按需修改
configs/data/中对应 yaml。./dataset_train/configs/data/train_{vm,cvm,spcf}.yaml./dataset_test_noisy/configs/data/predict.yaml训练集目录结构:
测试集目录结构:
数据列表:
datalist/train.txt、validate.txt、test.txt。预训练权重
checkpoints/vm/checkpoint_299.pklcheckpoints/cvm/checkpoint_best.pklcheckpoints/spcf/checkpoint_best.pkl训练(可选)
统一设置:
export CUDA_VISIBLE_DEVICES=0,--seed 123。三阶段按顺序执行;后一阶段 yaml 中的
vm_ckpt/cvm_ckpt指向前一阶段输出。configs/task/train_vm.yamlcheckpoints/vm/configs/task/train_cvm.yamlcheckpoints/cvm/configs/task/train_spcf.yamlcheckpoints/spcf/VM 续训说明:默认从
checkpoint_99.pkl续到 epoch 299。若要从头训练 VM,删除load_ckpt并将trainer.start_epoch设为0。提交格式
定稿结果
目录结构
配置说明
configs/system/vm.yaml**:VM 训练循环与 checkpoint 保存路径。configs/system/infer.yaml**:推理专用 runtime(predict 模式),与 VM 训练配置分离,避免歧义。configs/task/predict.yaml**:默认推理入口,指向checkpoints/spcf/checkpoint_best.pkl。常见问题
Q: 没有 GPU / 没装训练数据,能复现提交吗?
可以。只需测试集 +
predict.yaml(或pack_submission.sh),使用仓库内checkpoints/spcf/checkpoint_best.pkl。Q: 训练报找不到 mesh?
确认
dataset_train/已解压,或修改configs/data/train_*.yaml中的input_dataset_dir。Q: 推理报找不到 noisy.npy?
确认
dataset_test_noisy/已解压,或修改configs/data/predict.yaml。Q: 随机种子?
定稿实验使用
--seed 123。