cvg/GeoCalib
GeoCalib: Learning Single-image Calibration with Geometric Optimization (ECCV 2024)
GeoCalib – 단일 이미지 기반 카메라 캘리브레이션
기능 – GeoCalib은 단일 RGB 이미지를 입력으로 받아 카메라의 내부 파라미터(초점 거리, 선택적 왜곡)와 장면 내 중력 방향(즉, 상방 벡터)을 예측합니다. 깊은 신경망을 통해 기하학적 특징을 추출하고, 가벼운 기하 최적화 단계를 결합함으로써, 이전의 학습 중심 방법보다 더 정확한 결과를 제공합니다.
주요 기능
- 여러 전통적인 카메라 모델 지원:
pinhole,simple_radial,radial,simple_divisional(魚眼). - 알려진 초점 거리 또는 알려진 중력 방향과 같은 부분적인 사전 지식을 사용할 수 있음.
- 동일한 카메라로 촬영된 이미지 배치를 처리할 수 있으며, 공통된 중력 방향을 공유하는 여러 개의 강체로 고정된 카메라 리그도 처리 가능.
- 최소한의 종속성(파이썬 ≥ 3.9, PyTorch)을 가진 추론 전용 파이썬 패키지(
geocalib) 제공. - Gradio 웹 데모, Colab 노트북, 실시간 웹캠 데모 포함.
설치 및 빠른 시작
# 추론 패키지 클론 및 설치
git clone https://github.com/cvg/GeoCalib.git && cd GeoCalib
python -m pip install -e . # 또는 리포지토리 URL에서 직접 설치
import torch
from geocalib import GeoCalib
model = GeoCalib().to('cuda' if torch.cuda.is_available() else 'cpu')
img = model.load_image('my_picture.jpg').to(model.device)
result = model.calibrate(img)
print('camera intrinsics →', result['camera'])
print('gravity direction →', result['gravity'])
패키지는 torch.hub를 통해도 사용 가능:
model = torch.hub.load('cvg/GeoCalib', 'GeoCalib', trust_repo=True)
데모 및 인터랙티브 사용
- Colab 노트북 – 브라우저에서 전체 파이프라인을 실행 가능.
- Gradio 데모 – https://veichta-geocalib.hf.space 에 호스팅되어 있으며, 이미지를 업로드하고 추정된 수평선, 상방 벡터, 선택적 시각화(그리드, 가상 상자 등)를 확인 가능.
- 웹캠 데모 –
python -m geocalib.interactive_demo --camera_id 0명령어로 실시간 창을 열 수 있음; 키 입력으로 시각화를 전환하고 카메라 모델을 전환 가능.
학습 및 평가
- 핵심 학습 코드는 보조 라이브러리
siclib에 있음.pip install -e siclib로 설치 가능. - 사전 학습된 모델은 OpenPano에서 학습됨. OpenPano는 약 2.8k개의 HDR 파노라마(약 37k개의 투시 투영 이미지로 변환)로 구성된 최신 출시된 데이터셋.
- 평가 스크립트는 여러 벤치마크(LaMAR, MegaDepth, TartanAir, Stanford2D3D)를 커버.
python -m siclib.eval.lamar2k --conf geocalib-pinhole --tag geocalib와 같은 명령어로 전체 테스트를 실행하고 결과를outputs/results/에 저장. - README의 결과 표에서는 GeoCalib이 모든 언급된 데이터셋에서 롤, 피치, 시야각 오차에 대한 최고의 AUC 점수를 기록하며, DeepCalib, ParamNet, UVP를 모두 상회함.
데이터셋 – OpenPano
- HDRMAPS, PolyHaven, Laval 실내 HDR 컬렉션의 HDR 파노라마를 통합.
- 스크립트(
siclib.datasets.utils.download_openpano)로 공개 파노라마를 다운로드; 다른 스크립트로 HDR 이미지에 대한 선택적 톤 매핑을 포함한 학습 분할 생성. - 처리 후 약 37k개의 학습 이미지와 각각 약 2k개의 검증 및 테스트 이미지 확보.
왜 중요한가 단일 이미지에서 정확한 내부 파라미터와 중력 방향 추정은 3D 재구성, AR/VR 정렬, 로봇 내비게이션, 다중 시점 데이터 없이 장면 방향을 추론해야 하는 모든 응용 분야에 유용합니다. GeoCalib의 학습과 전통적 최적화의 조합은 왜곡을 처리할 수 있는 유연성과 정밀도를 동시에 제공합니다.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 추가 기능은 추측되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트