Repolode
cvg

cvg/FlexGlue

Un matcher de características para encontrar correspondencias entre dos imágenes, con puntos clave dispersos, cuadrículas densas o sin puntos clave, y una comprobación integrada de pares de imágenes parecidas.

Estrellas
243
Forks
13
Issues abiertos
1
Último commit
hace 3 días

¿Qué es?

FlexGlue es un matcher de características en Python para flujos de trabajo de visión por computadora, como la correspondencia entre imágenes y la reconstrucción 3D. Codifica cada imagen con un backbone DINOv3-ConvNeXt en un mapa de características con stride 8, refina ambos mapas con un transformer y localiza la correspondencia de cada punto de consulta en la otra imagen mediante correlación. Puede emparejar puntos clave proporcionados por el usuario (los ejemplos usan el detector ALIKED de LightGlue), cuadrículas densas de puntos muestreados o imágenes sin puntos clave.

Además de encontrar correspondencias, FlexGlue predice una puntuación de covisibilidad: la probabilidad de que dos imágenes muestren el mismo lugar. Esto le permite descartar pares de imágenes parecidas, como fachadas repetidas, y, con la detención anticipada, omite la mayor parte del cálculo en los pares descartados. Los matchers se pueden ejecutar en lotes, compilar con torch.compile, cargar mediante torch.hub o exportar a ONNX y ejecutar con ONNX Runtime sin PyTorch.

El proyecto incluye un notebook de demostración, pesos preentrenados y un refinamiento subpíxel opcional con RoMa v2. El código tiene licencia MIT, mientras que los pesos del backbone DINOv3 se distribuyen con una licencia aparte que impone restricciones de uso.

Funciones clave

  • 01Empareja puntos clave proporcionados por el usuario, cuadrículas densas de puntos muestreados o imágenes sin puntos clave.
  • 02Predice una puntuación de covisibilidad para descartar pares de imágenes parecidas, como los que contienen fachadas repetidas.
  • 03Permite ejecutar inferencias por lotes con pares de imágenes de distintos tamaños.
  • 04Ofrece refinamiento subpíxel opcional con los refinadores de RoMa v2.
  • 05Se exporta a ONNX para usarlo con ONNX Runtime sin PyTorch.

Casos de uso

  • Establecer correspondencias entre fotos para flujos de trabajo de estructura a partir del movimiento o de reconstrucción.
  • Filtrar pares de imágenes con estructuras repetidas antes de la verificación geométrica o la localización.
  • Ejecutar el matching de características en un entorno C++ o ajeno a Python mediante la exportación a ONNX.
  • Evaluar o comparar matchers compatibles con detectores de puntos clave arbitrarios.

Inicio rápido

  1. 1

    Clona el repositorio y accede a él

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

    Instala FlexGlue con pip en modo editable

    python -m pip install -e .
  3. 3

    Instala el último commit de LightGlue para usar sus detectores de puntos clave (opcional)

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

    Ejecuta el notebook de demostración en Colab o en local

Antes de usarlo

  • El ejemplo del matcher requiere una GPU CUDA.
  • Para obtener la máxima precisión se necesita una resolución más alta y el refinador RoMa v2 opcional, que aumenta el coste.
  • El proyecto es una publicación de investigación reciente y su API puede cambiar.

En colecciones

Temas

Preguntas frecuentes

¿Qué es FlexGlue?
Un matcher de características para encontrar correspondencias entre dos imágenes, con puntos clave dispersos, cuadrículas densas o sin puntos clave, y una comprobación integrada de pares de imágenes parecidas. FlexGlue es un matcher de características en Python para flujos de trabajo de visión por computadora, como la correspondencia entre imágenes y la reconstrucción 3D. Codifica cada imagen con un backbone DINOv3-ConvNeXt en un mapa de características con stride 8, refina ambos mapas con un transformer y localiza la correspondencia de cada punto de consulta en la otra imagen mediante correlación. Puede emparejar puntos clave proporcionados por el usuario (los ejemplos usan el detector ALIKED de LightGlue), cuadrículas densas de puntos muestreados o imágenes sin puntos clave.
¿FlexGlue es gratuito? ¿Qué licencia tiene?
FlexGlue es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿FlexGlue sigue mantenido?
Mantenimiento activo. El último commit de FlexGlue fue el 3 nov 2026.
¿Para qué puedo usar FlexGlue?
Establecer correspondencias entre fotos para flujos de trabajo de estructura a partir del movimiento o de reconstrucción. Filtrar pares de imágenes con estructuras repetidas antes de la verificación geométrica o la localización. Ejecutar el matching de características en un entorno C++ o ajeno a Python mediante la exportación a ONNX. Evaluar o comparar matchers compatibles con detectores de puntos clave arbitrarios.
¿Cómo se instala FlexGlue?
Clona el repositorio y accede a él: git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue Instala FlexGlue con pip en modo editable: python -m pip install -e . Instala el último commit de LightGlue para usar sus detectores de puntos clave (opcional): python -m pip install git+https://github.com/cvg/LightGlue.git Ejecuta el notebook de demostración en Colab o en local
¿Dónde consigo FlexGlue?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/cvg/FlexGlue

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados