Robbyant/lingbot-map — [ECCV 2026 Best Paper Award Candidate] LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction
LingBot-Map — 실시간 스트리밍 3D 재구성을 위한 기하학적 컨텍스트 트랜스포머
LingBot-Map은 연속된 영상에서 3D 장면과 카메라 자세를 스트리밍 방식으로 재구성하는 feed-forward 모델입니다. 기하 정보를 통합하는 구조와 paged KV cache를 적용해 518×378 해상도에서 약 20 FPS로 1만 프레임이 넘는 시퀀스를 처리하며, 장면 시각화와 오프라인 렌더링 도구도 제공합니다.
- 주제
AI 요약
LingBot-Map은 영상 프레임을 순차적으로 입력받아 3D 기하와 카메라 움직임을 추정하는 스트리밍 3D 재구성 모델입니다. 반복 최적화 대신 feed-forward 추론을 사용하면서, 좌표 기준점 설정과 밀집 기하 정보, 긴 시퀀스에서 생기는 누적 오차 보정을 하나의 구조로 묶습니다. 프로젝트는 이 구조를 Geometric Context Transformer(GCT)라고 부르며, anchor context와 pose-reference window, trajectory memory를 사용합니다.
스트리밍 추론과 메모리 관리
저장소는 paged KV cache attention을 활용해 긴 영상에서도 추론을 이어갑니다. FlashInfer 백엔드를 권장하며, PyTorch의 SDPA로도 실행할 수 있습니다. 프로젝트 설명에 따르면 518×378 해상도에서 약 20 FPS를 내고, 10,000프레임이 넘는 시퀀스도 처리합니다. 다만 학습에는 video RoPE 기준 320개 뷰를 사용했으므로, KV cache에 320개보다 많은 뷰를 저장하면 성능이 저하될 수 있습니다. --keyframe_interval을 설정하면 일부 프레임만 캐시에 키프레임으로 저장하면서 다른 프레임의 예측은 계속 생성합니다.
기본 추론은 상태를 초기화하지 않으므로, 학습 데이터에서 본 가장 긴 거리보다 더 긴 범위에서는 상태 초기화가 필요할 수 있습니다. 자세가 무너지는 경우에는 --mode windowed를 사용해 슬라이딩 윈도로 추론합니다. 각 윈도에서 KV cache를 초기화하고, --overlap_keyframes로 앞뒤 윈도 사이에 키프레임 문맥을 겹쳐 자세 정렬을 돕습니다. 저장소에는 128 슬롯 윈도와 키프레임 간격을 조합해 장시간 영상을 처리하는 오프라인 렌더링 예제가 포함되어 있습니다.
실행 환경과 도구
기본 설치는 Python 3.10과 PyTorch 2.8.0, CUDA 12.8을 기준으로 안내합니다. Kaolin은 배치 렌더링에서 사용하며, 이 조합에는 미리 빌드된 wheel이 제공됩니다. 모델 실행은 demo.py로 시작하고, 브라우저 기반 viser 뷰어에서 점군을 확인합니다. 영상이 길어 대화형 뷰어에 맞지 않으면 demo_render/batch_demo.py로 추론과 MP4 렌더링을 한 번에 실행합니다. 카메라 경로는 YAML 설정으로 follow, birdeye, static, pivot 모드를 구성하며, 시퀀스별 결과와 실행 설정도 저장할 수 있습니다.
평가 자료와 재현성
저장소는 KITTI와 Oxford Spires 평가 스크립트를 공개했고, VBR, Droid-W, TUM-D, 7-scenes, ETH3D, Tanks and Temples, NRGBD 데이터셋도 지원 목록에 올렸습니다. README는 기존 스트리밍 방식과 반복 최적화 방식보다 여러 벤치마크에서 성능이 높다고 설명하지만, 자동 추출된 본문에는 구체적인 비교 수치가 포함되어 있지 않습니다. 데모 스크립트와 실내·실외 장시간 영상 예제, 체크포인트도 제공하며 Apache License 2.0으로 배포합니다.
원문: GitHub / 번역·요약: Trawling