gmberton/vismatch
Wrapper of 50+ image matching models with a unified interface
vismatch – 이미지 매칭 모델을 위한 통합 Python 라이브러리
🎯 기능 소개
vismatch는 50개 이상의 이미지 매칭 방법(고전적인 SIFT와 같은 키포인트 검출기부터 LoFTR, SuperPoint‑LightGlue, DeDoDe, SphereGlue와 같은 최신 딥러닝 매처까지)을 래핑하는 단일하고 사용하기 쉬운 Python API(및 작은 CLI)를 제공합니다. 라이브러리는 다음을 처리합니다:
- 모델 가중치 자동 다운로드 (Hugging Face 또는 저자의 릴리스를 통해).
- 이미지 로드 및 전처리 (선택적 크기 조정).
- 매칭 실행 (키포인트 대응, 호모그래피, 인라이어 수, 신뢰도 점수 생성).
- 원시 키포인트 및 디스크립터 추출.
- 결과 시각화 – 준비된
plot_matches및plot_keypoints헬퍼 사용.
이 모든 것은 단일 함수 get_matcher(name, device=…)를 통해 노출되므로 한 줄로 모델을 전환할 수 있습니다.
🛠️ 시작하기
# 권장: uv (빠른 설치 프로그램) – pip도 가능
pip install uv # uv가 없으면 설치
uv venv # 가상 환경 생성
source .venv/bin/activate # 가상 환경 활성화
uv pip install vismatch # 라이브러리 설치
선택 사항: 추가 종속성이 필요한 모델을 위해 추가 종속성을 설치합니다 (예: torch‑geometric, tensorflow):
uv pip install "[all]" # 또는 pip install .[all]
💻 빠른 코드 예제
from vismatch import get_matcher
from vismatch.viz import plot_matches
# 50개 이상의 매처 중 선택 – 여기서는 GPU에서 SuperPoint‑LightGlue 사용
matcher = get_matcher("superpoint-lightglue", device="cuda")
# 이미지 로드, 선택적으로 크기 조정
img0 = matcher.load_image("vismatch/assets/example_pairs/outdoor/montmartre_close.jpg", resize=512)
img1 = matcher.load_image("vismatch/assets/example_pairs/outdoor/montmartre_far.jpg", resize=512)
# 매칭 실행
result = matcher(img0, img1)
# result에는 num_inliers, H, all_kpts0, all_kpts1, matched_kpts0 등과 같은 키가 포함됩니다.
# 매칭 결과 시각화
plot_matches(img0, img1, result, save_path="plot_matches.png")
동일한 워크플로는 matcher.extract(img) 및 plot_keypoints를 통한 키포인트 추출에도 적용됩니다.
📦 명령줄 인터페이스 (CLI)
패키지에는 설치 후 직접 호출할 수 있는 작은 헬퍼 스크립트가 포함되어 있습니다:
# 두 이미지 매칭
vismatch-match \
--matcher superpoint-lightglue \
--out-dir outputs/sp-lg \
--input img0.jpg img1.jpg
# 폴더에서 키포인트 추출
vismatch-extract \
--matcher superpoint-lightglue \
--out-dir outputs/sp-lg \
--input path/to/images/
CLI는 단일 이미지, 디렉토리 또는 이미지 쌍을 나열한 텍스트 파일을 허용합니다.
📚 모델 카탈로그
라이브러리는 지원되는 방법을 세 가지 패밀리로 그룹화합니다:
- 밀집 – 예:
roma,tiny-roma,duster. - 반밀집 – 예:
loftr,eloftr,matchformer. - 희소 – 고전적 및 현대적 키포인트 기반 파이프라인 (예:
sift-lightglue,superpoint-lightglue,disk-lightglue,dedode,sphereglue,zippypoint등).
런타임, 장치 지원, 소스 저장소 및 라이선스 세부 정보가 포함된 전체 목록은 모델 세부 정보 문서 페이지에 있습니다.
🤝 기여 / 확장
새로운 매처가 있다면 저장소에 CONTRIBUTING 가이드가 제공됩니다. 디자인은 PyTorch의 "성능보다 사용성" 원칙을 따릅니다. 목표는 깨끗하고 일관된 API를 제공하는 것이지 마지막 밀리초를 짜내는 것이 아닙니다.
📖 문서 및 리소스
- ReadTheDocs – https://vismatch.readthedocs.io/en/latest/
- Colab 데모 – README에서 연결된 즉시 실행 가능한 노트북.
- Hugging Face 모델 허브 – 모든 래핑된 가중치는
vismatch조직 아래에 호스팅됩니다. - 다운로드 통계 – 라이브 트래커가 일일 HF 모델 다운로드 수를 표시합니다.
📜 인용
연구에서 vismatch를 사용하는 경우 README에 표시된 대로 첨부된 EarthMatch 논문(CVPR 2024 워크숍)을 인용하십시오.
TL;DR
vismatch는 많은 이미지 매칭 알고리즘을 단일 초보자 친화적인 인터페이스 뒤에 통합한 실제 프로덕션 준비가 된 Python 패키지로, 최첨단 시각적 대응 방법을 실험, 벤치마킹 또는 통합하는 것을 간단하게 만듭니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트