S23DR_solution_2026 / README.md
donquicode's picture
Upload folder using huggingface_hub
f2e158e verified
|
Raw
History Blame Contribute Delete
3.14 kB
# S23DR 2026 — Iterating on the Baseline (5th place)
Solution for the [S23DR 2026](https://huggingface.co/spaces/usm3d/S23DR2026)
structured 3D wireframe reconstruction challenge. Private leaderboard:
**0.5388 HSS, 5th place**, with a single 8.85M-parameter Perceiver.
The submitted entry is the **raw 8k Perceiver**: a learned segment model over a
fused, priority-sampled COLMAP/depth point cloud, with no hand-crafted
post-processing. The repository also contains the hand-crafted pipeline and the
classifier-gated hybrid that we used earlier in the competition, and the
training/repro scripts behind them. See the accompanying write-up for the full
account.
## Run inference
```bash
pip install -r requirements.txt
python script.py
```
The challenge harness provides `params.json`, downloads the dataset, runs
`script.py`, and reads the resulting `submission.json`
(`{order_id, wf_vertices, wf_edges}` per scene). `script.py` loads
`checkpoint_8192.pt` and runs the raw 8k model (`CONF_THRESH=0.5`, no seam,
no augments).
## Layout
```
script.py raw 8k inference (the submitted entry)
Writeup.pdf method write-up (full account of the solution)
checkpoint_8192.pt 8k Perceiver weights (the 5th-place model)
checkpoint.pt organizers' 4k Perceiver (curriculum start point)
solution.py hand-crafted geometric pipeline
edge_classifier.py PointNet edge classifier (hybrid augment)
vertex_refiner.py PointNet vertex classifier (hybrid augment)
pnet_class_2026.pth edge classifier weights
vertex_refiner.pth vertex classifier weights
s23dr_2026_example/ model + training package (Perceiver, tokenizer, losses, train.py)
configs/ training config (base.json)
REPRODUCE.md recipe for the resolution curriculum (2k -> 4k -> 8k)
training/ data-generation and training scripts (see below)
experiments/ptv3/ the Point Transformer V3 encoder experiment
(negative result; trained model + logs + code)
```
## Reproducing
**The 8k model.** Follow `REPRODUCE.md`: train the Perceiver from scratch at
2048 points, then fine-tune at 4096 and 8192 points on the organizers' released
sampled point clouds. Our contribution is the 4k→8k stage; the released 4k
checkpoint (`checkpoint.pt`) is the starting point.
**Classifier augments.** `training/gen_edge_dataset.py` and
`training/gen_vertex_dataset.py` build the per-candidate patch datasets from the
hand-crafted pipeline's predictions; `training/train_edge_classifier_2026.py`
and `training/train_vertex_refiner_2026.py` train the PointNet classifiers.
**Router (negative result).** `training/train_routing_gbt.py` with
`training/oracle_sources_{train,validation}.json` reproduces the gradient-boosted
per-scene router; it recovered only 4.5% of the per-scene oracle ceiling.
Some scripts under `training/` contain absolute paths from the original training
environment and expect the repository root on `PYTHONPATH`
(e.g. `PYTHONPATH=. python training/train_edge_classifier_2026.py`); adapt the
paths to your setup.