EgoExo4D Adoption + LGM Redesign Sources

VGGRPO — Research Notes

260406-260412 · multi-camera adaptation of single-cam baseline

Source Refs3
Datasets2
Decisions4
Open Q5

Research Question

VGGRPO는 원래 단일 카메라 시퀀스(temporal parallax)에서 동작하는데, 우리는 로봇 도메인의 multi-camera 데이터(wrist + exo)를 활용하고 싶다. Multi-camera를 어떻게 single-camera baseline에 자연스럽게 통합할 수 있는가? 그리고 DROID 외에 EgoExo4D를 같은 LGM 구조로 처리하려면 어떤 차이를 흡수해야 하는가?

Related Work / Source 분석

VGGRPO 논문 (재해석)

핵심 기여: 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로 합치는 것이 가장 자연스러움.

VIST3A (Pre-upsample 방식)

핵심: latent space에서 trilinear temporal upsample을 먼저 수행 → 16ch 단계에서 처리 → Conv3d(1024ch). 우리와의 차이점: 기존 우리 connector는 Conv3d → interpolate 순서로, 1024ch에서 upsample. 메모리 비효율 + 정보 손실.

채택 이유: 16ch에서 upsample하면 메모리 사용량이 64배 적고, Conv3d가 원본 temporal 해상도에서 동작 → 정보 손실 최소.

DROID vs EgoExo4D 데이터셋 비교

항목DROIDEgoExo4D
Ego 카메라Wrist (ZED, 로봇 손목)Aria glasses (1인칭 머리)
Exo 카메라1~2대 고정 (ZED)4대 고정 (GoPro)
TrajectoryEuler XYZ ~20HzQuaternion 1000Hz
Depth GTZED stereo (노이즈, NaN 多)❌ 없음
IntrinsicsZED 직접 제공KANNALABRANDTK3 (어안)
Caption없음 (VLM 필요)이미 존재
규모3,162 에피소드5,035 takes / 2,792 클립 (전처리)
도메인로봇 테이블 조작다양 (요리, 자전거, 축구)
프레임/단위49 / 에피소드81 / 클립 (전처리), 수천 / 원본

Our Approach

VGGRPO baseline에 두 가지 변형을 가한다:

  1. 카메라별 독립 VAE encode: z_exo, z_wrist를 따로 인코딩. 이후 같은 connector(가중치 공유)를 두 latent에 따로 통과시킴. Any4D에 모든 view(98)를 합쳐서 한 번에 입력.
  2. EgoExo4D 옵션 추가: 같은 connector 구조에 EgoExo4D 데이터 로더만 갈아끼움. caption.txt가 이미 있어서 텍스트 conditioning은 무료. 단 Aria 어안 보정이 추가 작업.

차별점 (가설): 단일 카메라 temporal parallax만으로는 로봇 wrist의 작은 motion을 잘 못 잡는다. 고정 exo가 reference 좌표계를 anchor해주면 wrist의 6DOF 변화가 더 안정적으로 추정될 것이다.

Technical Decisions

결정 1 — exo_t0를 reference view로

Any4D 입력의 첫 view가 자동으로 reference (identity pose). 고정 카메라(exo)를 reference로 두면 좌표계가 안정적이고, wrist의 6DOF는 모두 exo_t0 기준 상대 포즈로 계산. 대안: wrist_t0를 reference. 그러면 매 episode마다 reference 카메라가 다른 6DOF를 가져서 학습 불안정.

결정 2 — 모든 프레임 사용 (선택 X)

49 frames/cam × 2 cameras = 98 views를 그대로 Any4D에 입력. 대안: 4 frames/cam만 선택. 메모리는 절약되지만 temporal 정보 손실, 그리고 처음에 이 방식 때문에 design bug가 생긴 것이 직접적 트라우마.

결정 3 — Aria 어안 처리는 일단 raw로

EgoExo4D Aria(fx=150)가 Any4D 학습 분포 밖이지만, undistort 자체도 frame-level 비용이 큼. 일단 raw로 한 번 학습해보고 결과 보고 결정. 대안: Pow3R / Fisheye3R로 다른 모델 사용. 추가 의존성과 호환성 검증 비용이 크다.

결정 4 — Depth scale alignment 보류

Any4D relative depth와 DROID metric depth의 scale이 다르지만, Phase A는 pseudo-label 매칭이라 scale 일치 불필요. Phase B에서 reward 계산 때 SSIM 등 scale-invariant metric으로 우회.

Open Questions

References