Index
2026-04-10 — Progress

Viser Exo Frame Option + Variable Rename

visualize_depth_pointcloud.py — exo 로컬 좌표계 렌더링 지원

TL;DR

1 배경 / 목적

기존에는 ego/exo 포인트 클라우드를 항상 world 좌표계에서만 렌더링. ego-exo relative alignment나 exo 로컬 프레임에서의 depth 품질 확인이 불가능했음.

또한 카메라 외부 파라미터 변수명이 T_cw로 되어 있어 "world-from-cam"처럼 읽히지만 실제 값은 w2c(world→cam)라서 혼동 유발.

2 작업 내용

exo frame 옵션

depth_to_pointcloud(..., T_target_w2c=None) → world로 리프트 후, T_target_w2c가 있으면 R_t @ p_world + t_t로 target 프레임 변환 cam_pose_in_frame(T_w2c, T_target_w2c=None) → 카메라 중심 -R^T t 와 회전 R^T를 target 프레임으로 함께 변환 CLI: --frame {world,exo} (default: world) GUI: viser 사이드바 Frame dropdown → update_scene 재호출

변수명 리네임

T_cwT_w2c, exo_T_cwexo_T_w2c, ego_T_cwego_T_w2c. 값의 의미(w2c 3x4/4x4)는 동일, 네이밍만 명시화.

3 결과

문법 체크(python -m ast) 통과.

기존 동작 보존: world 렌더링 결과는 before=after. 로직 변경 없이 옵션만 추가.

4 Takeaway

exo 로컬 프레임에서 depth/extrinsic 정합을 바로 눈으로 확인할 수 있게 됨. EgoExo4D 외부 파라미터의 w2c 컨벤션이 변수명에 드러나서 앞으로 헷갈릴 여지가 줄었음.

5 Next Steps

임의 타깃(ego frame 등)으로 확장하려면 --frame ego 추가 + target_T_w2c frame별 계산. GUI 프레임 전환 시 viser 카메라 리셋도 옵션.