Flow2Surf is a Jittor implementation of continuous-flow point cloud denoising.
It predicts alpha-conditioned velocities on local patches and aggregates them
while integrating from noisy to clean.
Flow2Surf was developed for the 3D Point Cloud Denoising track of the Sixth
Jittor Artificial Intelligence Challenge. It ranked first on both the A and B
leaderboards, scoring 85.16 and 82.10, respectively.
Features
Continuous-alpha velocity training independent of inference discretization.
XYZ-gated feature neighborhoods combining content and HPE positional edges
through an exact factorized projection.
Alpha-conditioned AdaLN-Zero transformer trunk with offset attention and
SwiGLU feed-forward networks.
Center-weighted fusion of overlapping patch velocities at each reverse-flow
integration step.
Rotationally invariant Gaussian and Laplace noise with matched covariance.
Installation
See docs/setup.md for environment and dataset setup. Create the
single maintained environment with:
logs/train_<time>.log
<checkpoint_dir>_<time>/epoch_*.pkl
<checkpoint_dir>_<time>/epoch_*_optim.pkl
<checkpoint_dir>_<time>/epoch_*_ema.pkl # when EMA is enabled
<checkpoint_dir>_<time>/best_ep*.pkl
<checkpoint_dir>_<time>/best_mini_ep*.pkl
<checkpoint_dir>_<time>/train_state.json
When EMA is enabled, validation, mini-validation, and best checkpoints use
averaged weights. Periodic resume checkpoints pair the raw model and optimizer
with the corresponding EMA state.
Flow2Surf: Continuous-Flow Point Cloud Denoising
Flow2Surf is a Jittor implementation of continuous-flow point cloud denoising. It predicts alpha-conditioned velocities on local patches and aggregates them while integrating from noisy to clean.
Flow2Surf was developed for the 3D Point Cloud Denoising track of the Sixth Jittor Artificial Intelligence Challenge. It ranked first on both the A and B leaderboards, scoring 85.16 and 82.10, respectively.
Features
Installation
See docs/setup.md for environment and dataset setup. Create the single maintained environment with:
Data
Dataset descriptors and manifests define exact splits. The included descriptors expect:
datasets/A.yamlpreserves the original A split.datasets/B.yamluses the official B manifests.Training
Train with the default config:
Select B without changing the model config:
Resume from a checkpoint:
Each run writes logs and timestamped checkpoints:
When EMA is enabled, validation, mini-validation, and best checkpoints use averaged weights. Periodic resume checkpoints pair the raw model and optimizer with the corresponding EMA state.
Training and inference options are documented inline in configs/default.yaml.
Prediction
Run inference on the test set.
--modelis required:Package a submission zip. The config defaults to
configs/default.yamland must match the checkpoint architecture; the output name is optional:Predictions are written as:
The submission helper also creates:
Evaluation
Score a checkpoint on the fixed family-scale validation grid:
This writes
eval_<config>_<time>.jsonwith protocol, architecture, inference, and aggregate metrics by family and noise level.Project Structure