X-WAM 컨버터에서 손목 카메라를 crop만 하고 rectify하지 않기로 잠정 결정했는데, 사용자로부터 두 가지 타당한 반박이 나왔다: (a) 펴는 각도/방향은 하이퍼파라미터로 조절 가능한 것 아닌가, (b) intrinsic은 저자에게 요청하면 되는 것 아닌가. crop이라는 선택이 "안 해봐서" 내린 결론인지 "해봐도 안 되는" 결론인지 구분해야 했다.
undistortion에는 intrinsics(fx,fy,cx,cy) + distortion coeff(KB4 k1..k4 등)가 필요하다. repo 전체 파일 구성을
재확인(mp4 2,388 / parquet 1,194 / json 1,194 / README / .gitattributes / _SUCCESS 398) —
URDF·CAD·mesh·캘리브레이션 전무. info.json / modality.json에도 없음.
rectilinear 투영은 r = f·tan(θ)이고 θ→90°에서 발산하므로,
200° full FOV(half-angle 100°)는 평면에 원리적으로 표현 불가 — 부분 창(sub-window)만 펼 수 있다.
핵심 관찰: 손 카메라는 손에 강체 고정돼 있고, 반대쪽 손의 6D pose를 3mm 정확도로 이미 알고 있다. 게다가 hand frame 원점이 README상 "at the fingertip"이므로, 반대쪽 손 프레임의 원점 자체가 이미지에서 그 fingertip만 검출하면 미지의 물체 구조 없이 3D↔2D 대응이 바로 생긴다.
head_main은 더 어렵다 — head pose가 export되지 않아 3D 대응을 바로 못 만든다. 양손 fingertip 2점의 3D 상대 배치는 알므로 프레임별 head pose와 K를 joint BA로 풀 수는 있으나(원 논문의 SLAM을 재현하는 셈) 비용이 크다. 손 카메라부터 하는 것이 맞다.
chunk-0000, 478,810 프레임 전체에서 양손 간 거리와 상대 각도를 측정했다.
K, D, T_hc가 확보되면 임의의 가상 핀홀 뷰를 렌더할 수 있다: fisheye 픽셀 → (D⁻¹) 단위 광선
→ R_v 회전 → K_v 투영. 사전계산한 map으로 cv2.remap 한 번, 프레임당 비용 무시 가능.
T_hc가 나오면 가상 카메라를 그리퍼 프레임 기준으로 정의할 수 있다 — 이는 로봇 손목 카메라를
규정하는 방식과 정확히 같으므로, "대상 로봇 손목 카메라에 맞춘다" = R_v, FOV_v를 그 장착 자세·렌즈로 두는 것이 된다.
하나의 fisheye 프레임에서 여러 가상 뷰를 뽑을 수 있어 200°는 오히려 view augmentation 자산이 된다.
HF dataset Community에 4개 스레드로 문의했다. simple-world-lab HF org는 models 0개, datasets 1개.
논문(arXiv:2607.25895, 2026-07-28, 교신 Minglei Li)에 GitHub 링크·"code available" 문구 없음 — 가중치/학습
코드는 미공개 상태.
| # | 요청 | 저자 답변 |
|---|---|---|
| 1 (07-31) | URDF | "end-effector frame이 fingertip에 정의돼 있어 full URDF가 꼭 필요하지 않다" — 미제공 |
| 2 (08-07) | intrinsics/extrinsics, CAD | "디바이스마다 다르고 샘플별 정확한 값을 주기 어렵다" — 미제공 |
| 3 (08-11) | distortion 파라미터 | "暂时没有哦 (현재 없음)" |
| 4 (08-11) | head pose, 카메라 사양 | "head-camera trajectory는 이번 배치에 미포함" — 단 HFoV는 답변 |
| 원본 | →90° | →120° | →144° |
|---|---|---|---|
| head 144° | 42% | 72% | 100% |
| hand 200° | 25% | 43% | — |
gripper_angle_rad가 손가락당 회전각임이 확정됨.
"캘리브레이션이 없으니 fisheye는 못 편다"는 결론은 절반만 맞다. 저자로부터 직접 받을 수는 없지만, 데이터셋 자체가 self-calibration에 필요한 재료(반대쪽 손의 정확한 6D pose, fingertip 원점 정의)를 이미 포함하고 있다. 즉 "정보를 잃는다"는 프레이밍을 뒤집을 수 있다 — crop은 버리는 게 아니라 어느 25~43%를 남길지 고르는 것이고, 가상 카메라 경로가 확보되면 그 선택 자체가 다운스트림 목적(policy 배포용 대상 로봇 손목 카메라 매칭)에 맞춰 조정 가능한 하이퍼파라미터가 된다.
다만 지금 X-WAM 컨버터는 self-calibration을 파일럿조차 하지 않은 상태에서 crop(0.7673, 144°)으로 갔다 — 저자가 확인해준 HFoV 수치 덕분에 "무료 옵션"으로 정당화됐을 뿐, self-calibration 경로 자체는 아직 미실행이다. 그리퍼 외형 domain gap(§4의 다른 카드 참조)에 대한 완화 수단(반대쪽 지향 가상 카메라, 고정 마스크, cross-painting)도 self-calibration 없이는 열리지 않는다.
self-calibration은 아직 파일럿조차 안 한 제안 단계다. fingertip 검출기 정확도, 화각 가장자리 fisheye 왜곡이 검출 정확도에 미치는 영향, per-recording 캘리브레이션 편차(디바이스마다 다르다는 저자 언급과 일치)가 전부 미검증. head_main은 head pose 미제공으로 별도 joint BA가 필요해 hand보다 훨씬 비싸다.
순서: ① 저자에 디바이스 단위 intrinsics 근사값 + shard→디바이스 매핑 재요청(비용 0, 병행) — "샘플별 정확한 값"은 거절했지만 "디바이스별 근사"는 거절하지 않았다. ② fingertip 검출 기반 self-calibration을 1 shard로 파일럿 (①이 오면 대조 검증, 안 와도 진행 가능). ③ K,D,T_hc 확보 후 가상 카메라 sweep(FOV×pitch) — 다운스트림 지표로 선택. ④ 그리퍼 마스킹 여부 ablation. ①②가 실패해도 손실은 파일럿 비용뿐이고, 성공하면 RoboTwin cross-embodiment 경로(다른 카드 참조)에서 "막혔다"고 판정한 시각 domain gap 완화 수단 상당수가 열린다.