Robbyant/lingbot-map
[ECCV 2026 Best Paper Award Candidate] LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction
LingBot‑Map: 스트리밍 재구성용 피드포워드 3D 기반 모델
무엇인가요
LingBot‑Map은 연구용 피드포워드 신경망으로, 동영상(또는 이미지 폴더)을 스트리밍 중에 3D 장면으로 재구성합니다. 일반적으로 NeRF 스타일 파이프라인에서 별도로 다루는 세 가지 아이디어를 통합합니다.
- 기하학적 맥락 트랜스포머 – 카메라 자세, 밀도 있는 기하학, 장거리 드리프트를 함께 고려하는 트랜스포머. 저자들이 제안한 앵커 맥락, 자세 기반 창문, 궤적 메모리 세 가지 메커니즘을 통해 구현.
- 페이지 기반 KV 캐시 어텐션 (FlashInfer 라이브러리 사용) – 과거 프레임의 압축된 메모리를 유지해 수만 프레임의 스트림에서도 추론 속도를 유지(518×378 이미지 기준 약 20fps).
- 스트리밍 우선 설계 – 모델은 단일 포워드 패스로 작동하며, 이전 프레임을 다시 방문하는 반복 최적화 루프가 없습니다.
결과적으로 실시간 브라우저에서 시각화 가능한 3D 포인트 클라우드 재구성이 가능합니다.
누구에게 적합한가요
- 이동 중 카메라에서 즉시 장면 맵핑이 필요한 로봇공학 / AR 개발자.
- 전통적인 최적화 기반 SLAM 또는 NeRF 파이프라인과 비교해 스트리밍 재구성 방법을 연구하는 연구자.
- 무거운 후처리 없이 긴 워크스루 동영상을 3D 포인트 클라우드로 변환하고 싶은 콘텐츠 제작자.
빠른 시작 (README에서)
- conda 환경 생성 후, 프로젝트가 추천하는 정확한 PyTorch 버전( torch 2.8.0 + CUDA 12.8)을 설치. NVIDIA Kaolin 렌더링 웨어는 이 버전용으로 빌드되었기 때문에 버전이 중요합니다.
- 패키지 설치
pip install -e . - (선택 사항) FlashInfer 설치 – 빠른 페이지 기반 KV 캐시를 제공. 생략 시 PyTorch의 내장 SDPA 어텐션으로 대체됩니다.
- HuggingFace 또는 ModelScope 링크에서 체크포인트 다운로드 (예:
robbyant/lingbot-map). - 제공된 장면 중 하나에서 데모 실행:
python demo.py --model_path /path/to/lingbot-map.pt \ --image_folder example/courthouse --mask_skyhttp://localhost:8080에서 Visor 뷰어가 열리며 실시간 포인트 클라우드 재구성을 확인할 수 있습니다.
주요 기능 (README에 설명됨)
| 기능 | 기능 설명 | 사용 및 조정 방법 |
|---|---|---|
| 기하학적 맥락 트랜스포머 | 좌표 기준화, 밀도 있는 기하학적 신호, 드리프트 보정을 통합. | 내부 처리. 체크포인트 선택만 하면 됨. |
| 페이지 기반 KV 캐시 (FlashInfer) | 선택된 키프레임만 메모리에 유지해 10,000프레임 이상의 스트림을 약 20fps로 처리 가능. | --keyframe_interval N (N번째 프레임마다 저장). 최고 성능을 위해 --backend flashinfer 사용. |
| 윈도우 기반 추론 | 시퀀스가 학습 범위(~320프레임)를 초과하면 고정 크기의 메모리 윈도우를 슬라이딩. | --mode windowed --window_size 128 --overlap_keyframes 8. |
| 스카이 마스킹 | ONNX 스카이 세그멘테이션 모델을 사용해 하늘 점을 제거해 실외 재구성 품질 향상. | onnxruntime 설치 후 --mask_sky 추가 (모델 자동 다운로드). |
| 카메라 자세 개선 | 프레임별로 자세를 반복적으로 개선. 기본 4회 반복. | 속도 우선 시 --camera_num_iterations 1로 줄임. |
| 오프라인 렌더링 파이프라인 | 매우 긴 동영상에 대해 재구성된 포인트 클라우드의 헤드리스 MP4 생성. | demo_render/batch_demo.py를 YAML 설정 파일 또는 명시적 플래그로 실행. |
| 시각화 옵션 | 포인트 크기, 신뢰도 임계값, 다운샘플링, 포트 등. | --point_size, --conf_threshold 등의 플래그로 조정. |
리포지토리 예시 사용 사례
- 실내 워크스루: 25,000프레임(13분)을 슬라이딩 윈도우 설정으로 오프라인 렌더링.
- 동적 시퀀스 (Droid-W): 움직이는 물체 처리 가능. 스카이 마스킹과 stride-2 샘플링을 시연.
- 루프 클로저 트랙: 루프 장면에서 명시적 최적화 없이 루프를 닫을 수 있음.
설치 시 주의할 점
- 오프라인 렌더러에서 사용하는 사전 컴파일된 Kaolin 웨어는 정확한 PyTorch 2.8.0 + CUDA 12.8 빌드가 필요. 더 새로운 PyTorch는 인터랙티브 데모에는 가능하지만 Kaolin은 소스에서 빌드해야 함.
- FlashInfer는 순수 Python 패키지로, 첫 사용 시 JIT 컴파일로 CUDA 커널을 생성. 첫 실행은 수초 소요될 수 있음.
- 스카이 마스킹 모델 (
skyseg.onnx)은 HuggingFace에서 자동 다운로드됨. 인터넷 연결을 확보하거나 수동으로 파일을 배치해야 함. - GPU 메모리 제약이 있는 시스템에서는
--offload_to_cpu(기본값)로 프레임별 예측을 GPU 외부로 이동.--num_scale_frames(기본값 8)을 줄여 초기 활성화 피크 축소.
더 많은 정보 찾는 방법
- 논문 (컨퍼런스 버전) – README 상단 배지에 링크.
- 기술 보고서 (arXiv) – 알고리즘 세부 사항을 완전히 설명.
- 프로젝트 웹사이트 – 추가 동영상 및 벤치마크 포함.
- 평가 스크립트 –
benchmark/디렉터리에 있으며 KITTI, Oxford Spires 등에 대응.
TL;DR
LingBot‑Map은 스트리밍 우선 3D 재구성 트랜스포머로, 실시간으로 작동하며 페이지 기반 KV 캐시를 통해 매우 긴 동영상 스트림을 지원. 데모 스크립트, 사전 학습된 체크포인트, 오프라인 렌더러를 함께 제공. AI 기반 3D 재구성 분야의 진정한 연구 프로젝트입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트