pretrained(5,800h) 체크포인트로 실로봇 DROID 장면에서 depth 생성·언프로젝션robocasa_sft는 sim 전용이라 실사엔 OOD → 대신 pretrained(5,800h) 범용 base를 다운로드해 사용.X-WAM은 멀티뷰 RGB로부터 미래 4D 관측(video+depth)을 joint 생성하는 모델이다. 이전(260623)까지 depth의 3D consistency는 RoboCasa 시뮬레이션(in-distribution)에서만 검증했다. 이번 목표는 "X-WAM의 depth 예측이 실사(real-world) 도메인에서도 유효한가"를 DROID(실로봇 Franka, RGB-only)에 inference해서 3D로 확인하는 것.
robocasa_sft는 RoboCasa sim 전용 파인튜닝 — depth branch도 sim z-buffer로 학습돼 실사엔 강한 OOD. (2) DROID엔 GT depth도, 카메라 intrinsic/extrinsic도 없음(표준 lerobot 변환).
체크포인트 — HF sharinka0715/X-WAM-checkpoints의 3종(각 38.9GB) 중 범용 pretrained를 택함. DROID(대형 실로봇 데이터)가 5,800h pretraining 코퍼스에 포함됐을 가능성 → in-distribution 기대. 함정: pretrained/config.yaml엔 dataset: 블록·통계가 없어(bare 학습 config), gen 시 video_size=[256,320]·crop_ratio=0.95·action_num=4를 주입.
데이터 — 공유 HF 캐시의 IPEC-COMMUNITY/droid_lerobot(Franka, 3뷰 exterior_1/exterior_2/wrist, 180×320)에서 ep7·17의 3뷰를 hf_hub_download로 개별 다운로드. 함정: DROID lerobot mp4는 AV1 코덱이라 decord가 못 읽음 → imageio.v3(ffmpeg7+libdav1d)로 해결.
생성 tmp/gen_droid_rgbd.py — 첫 프레임 3뷰 RGB → resize/center-crop [256,320] → proprio=zeros(DROID proprio는 다른 world frame OOD; depth는 RGB conditioning 지배) → forward(run_depth=True, cfg=2.0) → RGB+depth latent VAE decode → 뷰별 분리 저장.
3D lift tmp/viz_droid_3d.py — GT/calibration 없으므로 assumed pinhole(FOV_x=70°) + normalized depth[0,1]→상대거리 z=z_near+(z_far−z_near)·(1−gen)(RoboCasa에서 관측한 "높은 gen값=近" 규칙). 뷰별 카메라프레임 단일 클라우드(cross-view fuse 불가). static PNG + viser + PLY export.
두 에피소드 모두 정상 생성: gen_rgb(3,9,256,320,3), gen_depth(3,9,256,320). depth에 실제 구조 존재(collapse 아님) — 전체 std ep17=0.197 / ep7=0.210, 프레임0 뷰별 std 0.11~0.24, p5–p95 spread 0.05~0.85.
robocasa_sft 한정이었음.
X-WAM의 depth 예측 능력이 sim(RoboCasa)을 넘어 실사(DROID)에서도 유효함을 정성 확인. 범용 pretrained가 진짜 4D world 사전학습의 이점을 보여줌 — 처음 보는 실사 장면에서 RGB 재구성 + 구조적으로 타당한 depth를 동시 생성. calibration 없는 실사 데이터용 재사용 가능한 depth→3D 파이프라인 확보.
| 항목 | 내용 |
|---|---|
| metric + fusion | DROID 원본 RLDS의 Zed intrinsic/extrinsic 확보 시 metric scale + 3뷰 world fusion 가능(현재 뷰별 단일 클라우드). |
| viser 인터랙티브 | static scatter는 노이즈로 가독성 낮음 → viser로 회전/줌 확인(PLY 6개 이미 export). |
| 시간 일관성 | 미래 프레임(t=1..8) depth의 시간적 3D 일관성 미검증. |
| 일반성 | 현재 ep7·17만 — 더 많은 에피소드 + FOV/sign/near-far 튜닝. |
질문: intrinsic/extrinsic이 없으면 3D 정합이 되는지 검증 자체가 불가능하다 (맞음). → 실제 calibration을 확보해 RoboCasa처럼 world fusion + 정합 정량화.
gs://gresearch/robotics/droid_raw)의 trajectory_im128.h5(1.3MB) 하나가 프레임별 intrinsic(3×3)+3뷰 extrinsic(6-vec, camera→robot-base)을 담고, MP4(1280×720 RGB)와 함께 있어 scene 하나가 자체완결 — 크로스-데이터셋 매칭 불필요.
방법: MP4 frame0 → X-WAM depth. adjust_K(1280×720→256×320 전파) + pose6→4×4(euler xyz, OpenCV cam frame). 상대 depth→metric은 전역 (a,b) 2개만 ext1↔ext2 정합으로 fit(per-view/크로스뷰 최적화 아님 → 비순환). KAIST/CLVR 3 scene.
| Scene | ext1↔ext2 median NN | 장면 크기 | 비율 |
|---|---|---|---|
| 2023-06-25 | 4.4 cm | 0.45×0.77×0.30 m | ~6% |
| 2023-06-06 | 5.3 cm | 0.67×0.91×0.51 m | ~7% |
| 2023-05-17 | 8.0 cm | 0.79×1.22×0.45 m | ~8% |
a<0(inverse depth)로 RoboCasa와 동일 컨벤션.
PointWorld-DROID-restored/depth_320x180/<uuid>_depth.h5 = Zed 센서 metric depth(180×320 uint16 mm). 내 3 CLVR scene 모두 존재. (공유 경로는 읽기 전용으로만 접근.)
발견 1 — X-WAM depth는 inverse-depth(disparity)류: metric 선형 fit 시 GT-vs-X-WAM 산점도가 S-커브(far 포화). disparity 공간(1/GT≈a·gen+b)에서 fit하니 y=x에 붙음.
| 뷰 | median 오차 | 상대 | mean(MAE) |
|---|---|---|---|
| ext1 | 2.7~7.4 cm | 10~15% | 7.8~19 cm |
| ext2 | 2.2~10 cm | 12~17% | 23~31 cm |
| wrist | 6.6~9.3 cm | 18~24% | 10~15 cm |
X-WAM↔GT 클라우드 대칭 median NN = 2.0 / 3.3 / 3.7 cm (3 scene).