Skip to content

Releases

45-run study and checkpoints

Choose a tag to compare

@chu-jiaming chu-jiaming released this 14 Oct 12:22
33568fe

First public release of the PoseGuard-NeRF study: 45 controlled NeRF training runs on Lego under camera-pose noise, with a Sim(3) diagnostic that separates reconstruction quality from global coordinate drift. See the README for the findings and docs/EXPERIMENTS.md for the protocol.

Checkpoints

Seven final checkpoints (step 29,999, Nerfstudio 1.1.5, seed 42), enough to reproduce the full GT-condition alignment table and the T5 comparison in the README without training.

File Condition Method Test PSNR (raw)
poseguard_lego_SV100-GT_fixed_step29999.ckpt GT poses Fixed cameras 27.12
poseguard_lego_SV100-GT_naive_step29999.ckpt GT poses Naive 17.91
poseguard_lego_SV100-GT_camp_step29999.ckpt GT poses CamP-style 19.90
poseguard_lego_SV100-GT_naive-warmup_step29999.ckpt GT poses Naive + warm-up 22.71
poseguard_lego_SV100-GT_camp-warmup_step29999.ckpt GT poses CamP-style + warm-up 21.08
poseguard_lego_SV100-T5_fixed_step29999.ckpt 5% translation noise Fixed cameras 14.14
poseguard_lego_SV100-T5_naive-warmup_step29999.ckpt 5% translation noise Naive + warm-up 22.68

Verify downloads with shasum -a 256 -c SHA256SUMS (macOS) or sha256sum -c SHA256SUMS (Linux).

Loading a checkpoint

Each checkpoint pairs with the config.yml archived in the repository:

Checkpoint Config Place the checkpoint at <output_dir>/…
GT fixed artifacts/experiments/baseline/fixed/SV100-GT/config.yml lego_sv100/vanilla-nerf/2026-09-30_141114/nerfstudio_models/step-000029999.ckpt
GT naive artifacts/experiments/pose_optimization/naive/SV100-GT/config.yml SV100-GT/poseguard-naive/run/nerfstudio_models/step-000029999.ckpt
GT camp artifacts/experiments/pose_optimization/camp/SV100-GT/config.yml SV100-GT/poseguard-camp/run/nerfstudio_models/step-000029999.ckpt
GT naive + warm-up artifacts/experiments/warmup/naive/SV100-GT/config.yml SV100-GT/poseguard-naive/run/nerfstudio_models/step-000029999.ckpt
GT camp + warm-up artifacts/experiments/warmup/camp/SV100-GT/config.yml SV100-GT/poseguard-camp/run/nerfstudio_models/step-000029999.ckpt
T5 fixed artifacts/experiments/baseline/fixed/SV100-T5/config.yml lego_sv100_tnoise_5pct/vanilla-nerf/2026-10-01_013952/nerfstudio_models/step-000029999.ckpt
T5 naive + warm-up artifacts/experiments/warmup/naive/SV100-T5/config.yml SV100-T5/poseguard-naive/run/nerfstudio_models/step-000029999.ckpt
  1. Copy the config, then edit output_dir (your checkpoint root) and the dataparser data path (your nerf_synthetic/lego; the test split is the same GT for every condition). The configs record the original server paths.
  2. Rename the checkpoint to step-000029999.ckpt and place it at the path in the table, under your output_dir. Use a separate output_dir per checkpoint, since some share a relative path.
  3. For the pose-optimization runs, register the project methods from a repository checkout:
    export PYTHONPATH=/path/to/PoseGuard-NeRF
    export NERFSTUDIO_METHOD_CONFIGS='poseguard-naive=poseguard.methods:naive,poseguard-camp=poseguard.methods:camp'
  4. Evaluate with ns-eval --load-config path/to/config.yml --output-path metrics.json.

This follows Nerfstudio 1.1.5's standard checkpoint layout, which is how the original evaluation loaded these files; the steps have not yet been re-run on a fresh machine. Reported test metrics use Nerfstudio's inference behavior (near reset to 0, far 6); see docs/EXPERIMENTS.md.

Scope

Single scene (Lego), single seed (42). The full aligned evaluation covers the GT condition only. CamP-style is a controlled re-implementation of the preconditioning idea, not the original CamP code.