--- a/forgebench/README.md +++ b/forgebench/README.md @@ -10,13 +10,15 @@ |---|---| | `code/eval/eval_final.py` | **final evaluator** (FORGE3DBench-150, OmniObject3D-300, Toys4K-300); writes per-object `results.json`, `results.csv` and `summary.json` | | `code/eval/appeval/` | renderer, metrics and geometry used by the evaluator. `render.py` has the far-clip fix (section 2.5). `geometry.py` adds extent-relative keys and leaves the original keys unchanged | -| `code/eval/heldout_index/` | held-out (novel-view) camera lists: `fb150.json`, `omni300.json`, `omni300_bad_frame_objects.txt` | +| `code/eval/heldout_index/` | held-out (novel-view) camera lists: `fb150.json`, `omni300.json`, `omni300_bad_frame_objects.txt`, `heldout_rest658.json` (rest-658, all 20 non-input cams + vis/px) | +| `code/eval/eval_rest658_wrapper.py` (new) | `eval_final.py` wrapper for `--dataset rest658` (FB150 protocol, NV = vis >= 0.20 & px >= 400); see `README_rest658_heldout.md` | | `code/eval/heldout/` | `prepare_heldout.py` (how the held-out views were materialised) and `eval_heldout.py` (reference implementation; `eval_final.masked_view` equals it) | | `code/eval/tests/` | unit tests (section 8) | | `code/eval/align_v2.py`, `cammap_pixal3d.py`, `cammap_fb150_recenter.py` | placement of baseline meshes into the GT frame (section 3) | | `code/ours/` | FORGE3D inference. Final path: `ours_combined_cell_batched.sh` | | `code/baselines/` | baseline drivers (see `code/SETUP.md` for the official repos, commits and envs) | | `data/fb150_heldout.tar` (new) | FORGE3DBench-150 held-out views: `fb150_heldout/{inputs,renders}` (2867 views; NV uses the 2798 with visibility >= 0.20) | +| `data/rest658_heldout.tar.gz.part00`, `.part01` (new) | FORGE3DBench rest-658 held-out views: `rest658_heldout/{inputs,renders}` (12,604 views; NV uses the 12,224 with visibility >= 0.20 and >= 400 px). `cat parts \| tar -xzf -`. See `README_rest658_heldout.md` | | `data/omni3d300_heldout_saved.tar` (new) | OmniObject3D-300 held-out saved views `top, top2, bottom, bottom2` -> `omni3d300_rand/{inputs,renders}`; extract next to `omni3d300_4v_inputs.tar` | | `todo_final/` | **what must be generated**: `missing___.{json,txt}` (+ `.selection.json` subsets) and `SUMMARY.json` | | `results/` | `summary.json` and `results.csv` of every cell scored with the final protocol | @@ -278,8 +280,9 @@ ## 9. Other material in this folder (unchanged from the previous upload) - `todo/`, `build_rest658.py`, `views_4v.json`: the remaining 658 objects of the full 808-object FORGE3DBench (same builder as - FB150), meant for generation on other servers. Held-out views for those objects are not built. To score them with the final - protocol, build them with `code/eval/heldout/prepare_heldout.py`. + FB150), meant for generation on other servers. Their held-out views are now built + (`data/rest658_heldout.tar.gz.part*`, `code/eval/heldout_index/heldout_rest658.json`). Score them with + `code/eval/eval_rest658_wrapper.py --dataset rest658` (FB150 protocol), see `README_rest658_heldout.md`. - `code/omni_vggt/`: the experimental OmniObject3D real-capture VGGT-Omega seed ablation. It is not part of the main protocol. The OpenDataLab keys are read only from the `OPENXLAB_AK` / `OPENXLAB_SK` environment variables and no credential is in this folder. - `code/baselines/pixal3d_ours/batch_pixal3d_mv_cropK.py` is superseded on FB150 by the re-centre driver.