2026-07-22 の G1 4 scene sweep で bicycle baseline (Phase I recipe 流用、refine.stop_iter=15000, capacity=1.5M) が post-hoc COLMAP eval で <strong>PSNR 15.549 dB (25 views)</strong> と Kerbl 2023 paper 25.25 dB 比 <strong>-9.7 dB</strong> の大 gap を示した。残り 3 scene の同 recipe 走行は ROI 低と判断して中断、bicycle 1 scene に絞って <strong>tuned recipe (refine.stop_iter=25000, capacity=3M)</strong> で re-run。before / after pair により <strong>recipe 依存性</strong>を数値で切り分け、卒論 §5.5 に measurement-driven な narrative を確立する。tuned 実測値は TBD (2026-07-22 執筆時点で training 稼働中、~2-3h)。
G1 Mip-NeRF 360 実写 3-way Pareto の initial baseline (bicycle 30k) は post-hoc COLMAP eval で PSNR 15.549 dB、Kerbl 2023 paper 25.25 dB 比 -9.7 dB の大 gap。tuned recipe (refine.stop_iter=25000, capacity=3M、2 変数のみ isolated) で re-run した結果 15.603 dB (Δ +0.054 dB = noise 圏)、splats +55% を追加しても PSNR 動かず。bottleneck は refine schedule / capacity ではなく、より深い layerと確定 (Case b scope-out)。§5.4 の MCMC 5 連敗と同 pattern の measurement-driven negative finding。
bicycle baseline (Phase I recipe 流用) = 15.549 dB (min 12.567 / median 15.602 / max 18.683 / splats 311k / 1h 49m)。tuned (refine.stop_iter=25000, capacity=3M、他は同一) = 15.603 dB (min 12.353 / median 15.571 / max 19.298 / splats 483k / 1h 42m)。Δ = +0.054 dB (実質 noise 圏、seed variance ±0.1 dB 内)、splats +55% を追加しても PSNR 動かず。Kerbl 2023 比 gap は baseline -9.70 → tuned -9.65 とほぼ不変。Case (b) scope-out 確定: recipe の 2 変数 (refine.stop_iter / capacity) は Mip-NeRF 360 実写での bottleneck ではない。より深い layer (opacity reset cadence / grad threshold / unbounded outdoor scene 特有の handling) が原因と推定される。§5.4 の MCMC 5 連敗 pattern と一貫、卒論 §5.5 の narrative は「Apple Silicon native 実装の scope 境界は synthetic + object-centric に留まる、実写 Mip-NeRF 360 は future work として refine schedule の本質的再設計または MCMC 系 densification の再挑戦が必要」で確定。
| metric | value | 備考 |
|---|---|---|
| config | `2026-07-22-bicycle-30k.toml` | Phase I recipe を実写に流用 (synthetic tuning のまま) |
| reflect.stop_iter | 15,000 | 30k の 50%、synthetic の Phase H sweet spot 値を流用 |
| trainer.capacity | 1,500,000 | M4 Max 36GB での保守的 cap |
| MCMC | OFF | G3 5 連敗確定済 (`p1-mcmc-fix3-negative`) |
| gt_convention | WhiteBg (legacy) | COLMAP は α=1.0 hardcode なので premultiplied と等価 |
| train iterations | 30,000 | 完走 |
| train wallclock | 1h 49m | M4 Max, 169 train views, 25 eval views |
| final splats | 311,259 | capacity 1.5M cap の 20.75% 使用 |
| final loss (train) | 3.03e-1 | iter 30000 の training loss |
| **post-hoc PSNR (val 25 views)** | **15.549 dB** | **A-1.5 で追加した splat eval --format colmap の実測 mean** |
| min PSNR | 12.567 dB | |
| median PSNR | 15.602 dB | |
| max PSNR | 18.683 dB | |
| Kerbl 2023 paper 公称値 | 25.25 dB | Table 4, bicycle @ A6000 GPU, 標準 3DGS-CUDA |
| **Δ vs Kerbl 2023** | **-9.70 dB** | **大 gap、recipe 依存性を tuned で切り分ける根拠** |
| parameter | baseline | tuned | 変更理由 |
|---|---|---|---|
| `refine.stop_iter` | 15,000 | **25,000** | 実写 unbounded scene は synthetic より collapse が遅い、refine を最後 5k iter 前まで継続 |
| `trainer.capacity` | 1,500,000 | **3,000,000** | Kerbl 2023 の bicycle 実装は 3M+ splats、baseline 311k は capacity 20% 使用で growth 制約なし |
| `refine.every` | 100 | 100 | 据え置き、cadence 変数は isolate |
| `refine.opacity_reset_every` | 3,000 | 3,000 | 据え置き |
| MCMC | OFF | OFF | G3 5 連敗確定済で撤退 |
| Adam lr | (same) | (same) | 据え置き、synthetic と同一 recipe を維持 |
| loss / λ / SSIM | l1_ssim / 0.20 / 7x1 | 同上 | 据え置き |
| seed | 42 | 42 | 同一 seed で variance を除去 |
| metric | value | 備考 |
|---|---|---|
| config | `2026-07-22-bicycle-tuned-3m.toml` | tuned recipe (2 変数のみ変更) |
| train iterations | 30,000 | 完走 |
| train wallclock | 1h 42m 17s | M4 Max, baseline 1h 49m から -7 min (splats +55% を吸収して同等) |
| final splats | 483,019 | capacity 3M cap の 16.1% 使用 (依然 growth 制約なし)、baseline 311k から +55% |
| final loss (train) | 2.68e-1 | iter 30000 の training loss、baseline 3.03e-1 から微改善 |
| **post-hoc PSNR (val 25 views)** | **15.603 dB** | **A-1.5 の splat eval --format colmap の実測 mean** |
| min PSNR | 12.353 dB | |
| median PSNR | 15.571 dB | |
| max PSNR | 19.298 dB | |
| **Δ baseline → tuned** | **+0.054 dB** | **noise 圏 (seed variance ±0.1 dB 内)、2 変数調整は bottleneck ではない** |
| **Δ vs Kerbl 2023** | **-9.65 dB** | baseline -9.70 とほぼ同 gap |
| **splats efficiency** | **PSNR/splat = 3.23e-5 dB/splat (tuned) vs 5.00e-5 dB/splat (baseline)** | **tuned は splat を +55% 追加したが PSNR/splat 効率が -35%、over-densification の萌芽 (§5.4.3 opacity decay で観測した無駄 splat と同族)** |
splat/configs/2026-07-22-bicycle-30k.tomlsplat/configs/2026-07-22-bicycle-tuned-3m.tomlsplat/runs/bicycle-mipnerf-30k/result.toml (psnr=0.0、post-hoc で 15.549 dB) + final.ply (73 MB, 311k splats)runs-logs/bicycle-mipnerf-30k-20260722-070637.logruns-logs/bicycle-tuned-3m-20260722-094055.logsplat/crates/splat-cli/src/cmd/eval.rs + src/main.rs (A-1.5)splat/scripts/harvest-mipnerf-4scene.shdocs/strategy/make_pareto_v2_12scene.py (現状は 4 scene 用、bicycle 2 点対応に修正予定)docs/findings/p1-axis1-phase-i-scene-adaptive.tomldocs/findings/p1-msplat-baseline-spike.tomldocs/findings/p1-mcmc-fix3-negative.tomldocs/strategy/2026-07-execution-plan.mddocs/strategy/2026-07-final-tasklist.mdこの finding が観測された / 言及している実験 run。