260406-260412 · multi-camera adaptation of single-cam baseline
VGGRPO는 원래 단일 카메라 시퀀스(temporal parallax)에서 동작하는데, 우리는 로봇 도메인의 multi-camera 데이터(wrist + exo)를 활용하고 싶다. Multi-camera를 어떻게 single-camera baseline에 자연스럽게 통합할 수 있는가? 그리고 DROID 외에 EgoExo4D를 같은 LGM 구조로 처리하려면 어떤 차이를 흡수해야 하는가?
핵심 기여: Wan 비디오 생성 → VAE encode → LGM connector → DINOv2 remaining → Any4D tail → geometry reward 흐름. 입력은 단일 카메라 비디오(multi-camera가 아님). 프레임 간 시간 차이 = 시점 차이(temporal parallax). VAE latent에 시간 정보가 있어야 함(T_lat ≫ 1).
우리와의 차이점: 우리는 multi-camera(wrist+exo)를 한 LGM에서 처리하고 싶음 → 카메라별 독립 VAE encoding 후 Any4D에 합치는 변형 필요. 채택 이유: Any4D 자체가 "multi-view를 같은 좌표계에 배치"하는 능력이 있어, 카메라별 VAE 후 view sequence로 합치는 것이 가장 자연스러움.
핵심: latent space에서 trilinear temporal upsample을 먼저 수행 → 16ch 단계에서 처리 → Conv3d(1024ch). 우리와의 차이점: 기존 우리 connector는 Conv3d → interpolate 순서로, 1024ch에서 upsample. 메모리 비효율 + 정보 손실.
채택 이유: 16ch에서 upsample하면 메모리 사용량이 64배 적고, Conv3d가 원본 temporal 해상도에서 동작 → 정보 손실 최소.
| 항목 | DROID | EgoExo4D |
|---|---|---|
| Ego 카메라 | Wrist (ZED, 로봇 손목) | Aria glasses (1인칭 머리) |
| Exo 카메라 | 1~2대 고정 (ZED) | 4대 고정 (GoPro) |
| Trajectory | Euler XYZ ~20Hz | Quaternion 1000Hz |
| Depth GT | ZED stereo (노이즈, NaN 多) | ❌ 없음 |
| Intrinsics | ZED 직접 제공 | KANNALABRANDTK3 (어안) |
| Caption | 없음 (VLM 필요) | 이미 존재 |
| 규모 | 3,162 에피소드 | 5,035 takes / 2,792 클립 (전처리) |
| 도메인 | 로봇 테이블 조작 | 다양 (요리, 자전거, 축구) |
| 프레임/단위 | 49 / 에피소드 | 81 / 클립 (전처리), 수천 / 원본 |
VGGRPO baseline에 두 가지 변형을 가한다:
z_exo, z_wrist를 따로 인코딩. 이후 같은 connector(가중치 공유)를 두 latent에 따로 통과시킴. Any4D에 모든 view(98)를 합쳐서 한 번에 입력.차별점 (가설): 단일 카메라 temporal parallax만으로는 로봇 wrist의 작은 motion을 잘 못 잡는다. 고정 exo가 reference 좌표계를 anchor해주면 wrist의 6DOF 변화가 더 안정적으로 추정될 것이다.
Any4D 입력의 첫 view가 자동으로 reference (identity pose). 고정 카메라(exo)를 reference로 두면 좌표계가 안정적이고, wrist의 6DOF는 모두 exo_t0 기준 상대 포즈로 계산. 대안: wrist_t0를 reference. 그러면 매 episode마다 reference 카메라가 다른 6DOF를 가져서 학습 불안정.
49 frames/cam × 2 cameras = 98 views를 그대로 Any4D에 입력. 대안: 4 frames/cam만 선택. 메모리는 절약되지만 temporal 정보 손실, 그리고 처음에 이 방식 때문에 design bug가 생긴 것이 직접적 트라우마.
EgoExo4D Aria(fx=150)가 Any4D 학습 분포 밖이지만, undistort 자체도 frame-level 비용이 큼. 일단 raw로 한 번 학습해보고 결과 보고 결정. 대안: Pow3R / Fisheye3R로 다른 모델 사용. 추가 의존성과 호환성 검증 비용이 크다.
Any4D relative depth와 DROID metric depth의 scale이 다르지만, Phase A는 pseudo-label 매칭이라 scale 일치 불필요. Phase B에서 reward 계산 때 SSIM 등 scale-invariant metric으로 우회.
/home/nas_main/kinamkim/DATA/EgoX/EgoX_input/81f_100k