Biblioteca de visión artificial diferenciable basada en PyTorch, con procesamiento de imágenes, geometría, aumentación y operadores de correspondencia de características optimizados para GPU.
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
Clona el repositorio y accede a él
git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue - 2
Instala FlexGlue con pip en modo editable
python -m pip install -e . - 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
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
Ultralytics YOLOv5 es un kit de herramientas de visión artificial basado en PyTorch para detectar objetos, segmentar instancias y clasificar imágenes, con funciones de entrenamiento y exportación.
Implementación oficial en PyTorch de BiRefNet, un modelo de deep learning para la segmentación dicotómica de imágenes de alta resolución, usado habitualmente para eliminar fondos.
Libro gratuito y de código abierto en chino, con código complementario, para aprender PyTorch desde los fundamentos hasta aplicaciones de CV, NLP y LLM, y su despliegue.
Pipeline generalista de Structure-from-Motion y Multi-View Stereo, con interfaces gráfica y de línea de comandos para reconstruir escenas 3D a partir de imágenes.
Herramienta de programación visual de código abierto basada en nodos para fotogrametría: convierte fotos en modelos 3D, permite hacer seguimiento de cámara y crear imágenes HDR.