Repolode
cvg

cvg/FlexGlue

희소 키포인트, 밀집 그리드 또는 키포인트 없이 두 이미지의 대응점을 찾고, 서로 닮은 이미지 쌍을 판별하는 기능이 내장된 특징 매칭기입니다.

스타
243
포크
13
열린 이슈
1
마지막 커밋
4일 전

어떤 프로젝트인가요?

FlexGlue는 이미지 매칭이나 3D 재구성 같은 컴퓨터 비전 파이프라인을 위한 Python 특징 매칭기입니다. 각 이미지를 DINOv3-ConvNeXt 백본으로 stride 8 특징 맵으로 인코딩하고, 트랜스포머로 두 맵을 정제한 뒤 상관관계를 이용해 각 쿼리 포인트에 대응하는 다른 이미지의 위치를 찾습니다. 사용자가 제공한 키포인트(예제에서는 LightGlue의 ALIKED 검출기를 사용), 샘플링한 포인트의 밀집 그리드, 또는 키포인트 없이 매칭을 수행할 수 있습니다.

매칭 외에도 FlexGlue는 공가시성 점수, 즉 두 이미지가 같은 장소를 보여줄 확률을 예측합니다. 이를 통해 반복되는 건물 외관처럼 서로 닮은 이미지 쌍을 제외할 수 있으며, 조기 종료를 사용하면 제외된 쌍에 필요한 계산 대부분을 건너뜁니다. 매칭기는 배치로 실행하거나 torch.compile로 컴파일할 수 있고, torch.hub를 통해 불러오거나 ONNX로 내보내 PyTorch 없이 ONNX Runtime에서 실행할 수 있습니다.

프로젝트에는 데모 노트북, 사전 학습된 가중치, RoMa v2를 사용한 선택적 서브픽셀 정제 기능이 포함되어 있습니다. 코드는 MIT 라이선스를 따르지만, DINOv3 백본 가중치는 사용 제한이 있는 별도의 라이선스로 배포됩니다.

핵심 기능

  • 01사용자 제공 키포인트, 밀집 샘플링 그리드 또는 키포인트가 없는 이미지의 매칭을 지원합니다.
  • 02공가시성 점수를 예측해 반복되는 외관처럼 서로 닮은 이미지 쌍을 제외합니다.
  • 03크기가 서로 다른 이미지 쌍을 배치 추론으로 처리할 수 있습니다.
  • 04RoMa v2 정제기를 사용한 선택적 서브픽셀 정제 기능을 제공합니다.
  • 05ONNX로 내보내 PyTorch 없이 ONNX Runtime에서 사용할 수 있습니다.

활용 사례

  • 사진 간 대응점을 설정해 structure-from-motion 또는 재구성 파이프라인에 활용합니다.
  • 기하 검증이나 위치 추정 전에 반복 구조가 있는 이미지 쌍을 걸러냅니다.
  • ONNX 내보내기를 통해 C++ 또는 비Python 환경에서 특징 매칭을 실행합니다.
  • 임의의 키포인트 검출기와 함께 작동하는 매칭기를 벤치마크하거나 비교합니다.

빠른 시작

  1. 1

    저장소를 클론하고 해당 디렉터리로 이동합니다

    git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue
  2. 2

    pip를 사용해 FlexGlue를 editable 모드로 설치합니다

    python -m pip install -e .
  3. 3

    키포인트 검출기를 사용하려면 LightGlue의 최신 커밋을 설치합니다(선택 사항)

    python -m pip install git+https://github.com/cvg/LightGlue.git
  4. 4

    Colab 또는 로컬 환경에서 데모 노트북을 실행합니다

사용 전 알아둘 점

  • 매처 예제를 실행하려면 CUDA GPU가 필요합니다.
  • 최고의 정확도를 내려면 더 높은 해상도와 처리 비용이 추가되는 선택 사항인 RoMa v2 리파이너가 필요합니다.
  • 이 프로젝트는 최근 공개된 연구 결과물이므로 API가 변경될 수 있습니다.

포함된 컬렉션

토픽

자주 묻는 질문

FlexGlue은(는) 무엇인가요?
희소 키포인트, 밀집 그리드 또는 키포인트 없이 두 이미지의 대응점을 찾고, 서로 닮은 이미지 쌍을 판별하는 기능이 내장된 특징 매칭기입니다. FlexGlue는 이미지 매칭이나 3D 재구성 같은 컴퓨터 비전 파이프라인을 위한 Python 특징 매칭기입니다. 각 이미지를 DINOv3-ConvNeXt 백본으로 stride 8 특징 맵으로 인코딩하고, 트랜스포머로 두 맵을 정제한 뒤 상관관계를 이용해 각 쿼리 포인트에 대응하는 다른 이미지의 위치를 찾습니다. 사용자가 제공한 키포인트(예제에서는 LightGlue의 ALIKED 검출기를 사용), 샘플링한 포인트의 밀집 그리드, 또는 키포인트 없이 매칭을 수행할 수 있습니다.
FlexGlue은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
FlexGlue은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
FlexGlue은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. FlexGlue의 마지막 커밋은 2026년 11월 3일입니다.
FlexGlue은(는) 어디에 사용할 수 있나요?
사진 간 대응점을 설정해 structure-from-motion 또는 재구성 파이프라인에 활용합니다. 기하 검증이나 위치 추정 전에 반복 구조가 있는 이미지 쌍을 걸러냅니다. ONNX 내보내기를 통해 C++ 또는 비Python 환경에서 특징 매칭을 실행합니다. 임의의 키포인트 검출기와 함께 작동하는 매칭기를 벤치마크하거나 비교합니다.
FlexGlue는 어떻게 설치하나요?
저장소를 클론하고 해당 디렉터리로 이동합니다: git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue pip를 사용해 FlexGlue를 editable 모드로 설치합니다: python -m pip install -e . 키포인트 검출기를 사용하려면 LightGlue의 최신 커밋을 설치합니다(선택 사항): python -m pip install git+https://github.com/cvg/LightGlue.git Colab 또는 로컬 환경에서 데모 노트북을 실행합니다
FlexGlue은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/cvg/FlexGlue

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트