Repolode
cvg

cvg/FlexGlue

Um matcher de features que encontra correspondências entre duas imagens usando keypoints esparsos, grids densos ou nenhum keypoint, com verificação integrada para detectar pares de imagens parecidas.

Estrelas
243
Forks
13
Issues abertas
1
Último commit
há 4 dias

O que é?

FlexGlue é um matcher de features em Python para pipelines de visão computacional, como correspondência de imagens e reconstrução 3D. Ele codifica cada imagem com um backbone DINOv3-ConvNeXt, gerando um mapa de features com stride 8, refina os dois mapas com um transformer e localiza a correspondência de cada ponto de consulta na outra imagem por correlação. Pode fazer matching de keypoints fornecidos pelo usuário (os exemplos usam o detector ALIKED do LightGlue), de grids densos de pontos amostrados ou executar sem nenhum keypoint.

Além do matching, o FlexGlue prevê uma pontuação de covisibilidade, que representa a probabilidade de duas imagens mostrarem o mesmo lugar. Isso permite rejeitar pares parecidos, como fachadas repetidas de edifícios, e, com early stopping, evita a maior parte do processamento nos pares rejeitados. Os matchers podem ser executados em batches, compilados com torch.compile, carregados via torch.hub ou exportados para ONNX e executados com ONNX Runtime sem PyTorch.

O projeto oferece um notebook de demonstração, pesos pré-treinados e refinamento opcional em nível subpixel usando RoMa v2. O código é licenciado sob MIT, enquanto os pesos do backbone DINOv3 são distribuídos sob uma licença separada com restrições de uso.

Recursos principais

  • 01Faz matching de keypoints fornecidos pelo usuário, grids densos de pontos amostrados ou imagens sem keypoints.
  • 02Prevê uma pontuação de covisibilidade para rejeitar pares parecidos, como fachadas repetidas.
  • 03Oferece inferência em batches com pares de imagens de tamanhos diferentes.
  • 04Oferece refinamento opcional em nível subpixel com os refinadores RoMa v2.
  • 05Exporta para ONNX para uso com ONNX Runtime sem PyTorch.

Casos de uso

  • Estabelecer correspondências entre fotos para pipelines de structure-from-motion ou reconstrução.
  • Filtrar pares de imagens com estruturas repetidas antes da verificação geométrica ou localização.
  • Executar matching de features em um ambiente C++ ou sem Python por meio da exportação para ONNX.
  • Avaliar ou comparar matchers que funcionam com detectores de keypoints arbitrários.

Início rápido

  1. 1

    Clone o repositório e entre nele

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

    Instale o FlexGlue com pip no modo editável

    python -m pip install -e .
  3. 3

    Instale o commit mais recente do LightGlue para usar seus detectores de pontos-chave (opcional)

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

    Execute o notebook de demonstração no Colab ou localmente

Antes de usar

  • O exemplo do matcher requer uma GPU CUDA.
  • Para obter a melhor precisão, é necessária uma resolução mais alta e o refinador RoMa v2 opcional, que aumenta o custo.
  • O projeto é uma publicação recente de pesquisa e sua API pode mudar.

Em coleções

Tópicos

Perguntas frequentes

O que é FlexGlue?
Um matcher de features que encontra correspondências entre duas imagens usando keypoints esparsos, grids densos ou nenhum keypoint, com verificação integrada para detectar pares de imagens parecidas. FlexGlue é um matcher de features em Python para pipelines de visão computacional, como correspondência de imagens e reconstrução 3D. Ele codifica cada imagem com um backbone DINOv3-ConvNeXt, gerando um mapa de features com stride 8, refina os dois mapas com um transformer e localiza a correspondência de cada ponto de consulta na outra imagem por correlação. Pode fazer matching de keypoints fornecidos pelo usuário (os exemplos usam o detector ALIKED do LightGlue), de grids densos de pontos amostrados ou executar sem nenhum keypoint.
FlexGlue é gratuito? Qual é a licença?
FlexGlue é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
FlexGlue ainda é mantido?
Manutenção ativa. O último commit de FlexGlue foi em 3 de nov. de 2026.
Para que posso usar FlexGlue?
Estabelecer correspondências entre fotos para pipelines de structure-from-motion ou reconstrução. Filtrar pares de imagens com estruturas repetidas antes da verificação geométrica ou localização. Executar matching de features em um ambiente C++ ou sem Python por meio da exportação para ONNX. Avaliar ou comparar matchers que funcionam com detectores de keypoints arbitrários.
Como instalar FlexGlue?
Clone o repositório e entre nele: git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue Instale o FlexGlue com pip no modo editável: python -m pip install -e . Instale o commit mais recente do LightGlue para usar seus detectores de pontos-chave (opcional): python -m pip install git+https://github.com/cvg/LightGlue.git Execute o notebook de demonstração no Colab ou localmente
Onde consigo FlexGlue?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/cvg/FlexGlue

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados