Phase B는 논문 reward 2개를 VGGT-Omega 출력에 매핑: r_motion(카메라 궤적 smoothness, pose) + r_geo(3D self-consistency, depth+pose). 3 뷰 = exo좌·exo우·wrist(1인칭)로 시점차가 극단이다.
첫 sanity(coherent / 시간셔플 / 공간노이즈 비디오):
| video | r_motion | r_geo (v1 depth-L1) |
|---|---|---|
| coherent | 0.9916 | 0.845 |
| shuffled | 0.8526 | 0.848 |
| noise | 0.9762 | 0.878 (최고 ← 거꾸로) |
vibes 대신 후보 4신호를 coherent/shuffled/noise에서 판별력 측정 (tmp/probe_geo_signals.py, VGGT-Ω joint window forward). inverse-warp photometric은 tgt 픽셀을 depth로 unproject→world→src로 project→src RGB 샘플→tgt RGB와 L1. flat depth는 잘못된 warp→높은 error라 gaming 방지.
| signal | coherent | shuffled | noise | coherent/noise |
|---|---|---|---|---|
| conf (native) | 7.457 | 7.902 | 2.221 | 3.4× (shuffled>coherent 이상) |
| exo_photo (exo↔exo) | 0.091 | 0.093 | 0.293 | 3.2× ✅ |
| temporal_photo (within-cam) | 0.013 | 0.052 | 0.276 | 21× ✅✅✅ |
| allpair_depthL1 (v1) | 0.183 | 0.179 | 0.145 | 거꾸로 ❌ |
r_geo = temporal within-cam photometric(주, w=0.6) + exo↔exo photometric(부, 0.4). exo↔wrist는 완전 제외(극단 baseline/occlusion). conf는 shuffled 이상 + 정규화 필요로 탈락. 교훈: cross-view 시점차가 극단이면 hand-crafted geometric residual(depth-L1·photometric 모두)이 occlusion에 지배됨 → small-baseline(temporal) + 겹치는 쌍(exo↔exo)에만 photometric 적용.
reward = w_geo·1/(1+geo_err) + w_motion·r_motion (tmp/verify_reward.py, 14B 생성 비디오 + 손상):
| video | total | r_geo | r_motion | geo_err (temporal / exo) |
|---|---|---|---|---|
| coherent | 0.9746 | 0.9576 | 0.9916 | 0.044 (0.013 / 0.091) |
| shuffled | 0.8943 | 0.9361 | 0.8526 | 0.068 (0.052 / 0.093) |
| noise | 0.8780 | 0.7798 | 0.9762 | 0.282 (0.276 / 0.293) |
Phase C: FF GRPO 배선 — reward_model: "src.cosmos_ff.rewards.vggt_omega_reward.VGGTOmegaReward" python-path 등록 + scripts/cosmos_ff/train_grpo.sh + 1-step smoke(reward 비-상수, advantage std>0). off-by-one(num_inference_steps=len(scheduler.timesteps)) 정렬.
튜닝(Phase D): w_geo/w_motion(0.5/0.5), geo_temporal_w(0.6), window(12; 검증 4). 비용: K=64 × 윈도우 × VGGT-Ω forward → async_reward + batch 작게 + bf16. 2차: exo↔wrist를 depth_conf gate로 부분 활용, window간 sim3 anchor.