VGGRPO Phase 4(RL fine-tuning) reward function의 핵심은 "diffusion 생성 비디오의 3D geometry quality를 평가하는 신호"다. 이를 위해 depth/geometry FM을 reward backbone으로 써야 하는데, 어떤 모델을 선택하느냐가 reward 신뢰도를 결정한다.
Phase 2에서 LGM connector(VAE latent → depth) 경로를 설계했지만, 260512 결정으로 reward path를 DA3 backbone direct-RGB 방식으로 전환했다. 이후 4-way 비교(Any4D/DA3/VGGT/VGGT-Ω) 정량 eval(260624)과 viser 정성 분석(260629)을 종합해 최종 backbone을 선택.
세 가지 분석을 순차로 진행해 backbone 결정 근거를 쌓았다.
scripts/eval_backbones_rgb.py — 4개 FM을 off-the-shelf RAW RGB 입력으로 동일 RoboCasa held-out에서 비교droid_full_processed) → 3-cam(LeRobot exterior_image_1/2 + wrist) 확장| Model | AbsRel ↓ | RMSE ↓ | δ<1.25 ↑ | δ<1.25² ↑ | δ<1.25³ ↑ | scale |
|---|---|---|---|---|---|---|
| VGGT-Ω | 0.296 | 0.168 | 0.747 | 0.873 | 0.920 | 1.36 |
| VGGT | 0.386 | 0.188 | 0.711 | 0.830 | 0.885 | 1.40 |
| Any4D | 0.699 | 0.351 | 0.617 | 0.771 | 0.835 | 0.59 |
| DA3 | 0.776 | 0.324 | 0.596 | 0.755 | 0.830 | 1.31 |
| Model | scale 범위 | 판정 |
|---|---|---|
| VGGT-Ω | 0.93~1.11 | ✅ 안정 (≈1.0) |
| VGGT | 0.93~1.11 | ✅ 안정 |
| Any4D | 0.77~1.02 | ⚠️ 약간 변동 |
| DA3 | 0.36~1.12 | ❌ 불안정 (3× 변동) |
근거 3가지 (전부 일치):
VGGT 2순위 백업. VGGT-Ω가 접근 불가하거나 속도 문제 시 대체.
정량 AbsRel 0.776 (최하위)도 문제지만, sim3 scale 0.36~1.12가 더 치명적이다. reward로 쓰려면 같은 에피소드 내에서 "frame 1이나 frame 30이나 동일한 depth quality 기준"이어야 하는데, DA3는 윈도우마다 scale 기준점이 달라져 reward 신호가 노이즈에 휩쓸릴 가능성이 높다. 단순 정량 순위 이상으로 reward에 부적합.
src/reward/vggt_omega_reward.py 구현tmp/eval_backbones_rgb/eval_metrics.json에서 task별 강약 파악