Repolode
cvg

cvg/FlexGlue

一个图像特征匹配器,可在两张图片间寻找对应点,支持稀疏关键点、稠密网格或无关键点输入,并能识别外观相似的非共视图像对。

Star
266
Fork
13
未关闭 Issue
1
最近提交
23小时前

这是什么?

FlexGlue 是一个基于 Python 的图像特征匹配器,用于在两张图片之间寻找对应点,常见于图像匹配和三维重建等流程。它使用 DINOv3-ConvNeXt 骨干网络将图像编码为步长为 8 的特征图,再通过 Transformer 联合细化两张特征图,并通过相关性在另一张图中定位每个查询点的对应位置。它既可以匹配用户提供的关键点(示例中使用 LightGlue 的 ALIKED 检测器),也可以匹配稠密网格上的采样点,或者完全不依赖关键点。

除匹配外,FlexGlue 还会预测共视分数,即两张图像拍摄的是同一地点的概率。借此可以排除外观相似的图像对(例如重复的建筑立面),开启提前停止后,被拒绝的图像对可以跳过大部分计算。该项目支持批量推理、torch.compile 编译、torch.hub 加载,也可导出为 ONNX 并脱离 PyTorch 使用 ONNX Runtime 运行。

项目提供演示 notebook、预训练权重,并可选用 RoMa v2 进行亚像素级细化。代码采用 MIT 许可证,但 DINOv3 骨干网络权重遵循单独的许可证,使用上存在限制。

核心功能

  • 01支持匹配用户提供的关键点、稠密采样网格,或无关键点的图像。
  • 02预测共视分数,可排除重复立面等外观相似的图像对。
  • 03支持对不同尺寸的图像对进行批量推理。
  • 04可选用 RoMa v2 细化器实现亚像素级精度。
  • 05可导出为 ONNX,脱离 PyTorch 通过 ONNX Runtime 运行。

适用场景

  • 为运动恢复结构或三维重建流程建立照片间的对应点。
  • 在几何验证或定位前,过滤掉结构重复的图像对。
  • 通过 ONNX 导出模型,在 C++ 或其他非 Python 环境中运行特征匹配。
  • 配合任意关键点检测器进行匹配效果的评测或对比。

快速上手

  1. 1

    克隆仓库并进入目录

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

    使用 pip 以可编辑模式安装 FlexGlue

    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 精修器,会增加计算开销。
  • 该项目是较新的研究版本,接口可能会变化。

收录于专题

标签

常见问题

FlexGlue 是什么?
一个图像特征匹配器,可在两张图片间寻找对应点,支持稀疏关键点、稠密网格或无关键点输入,并能识别外观相似的非共视图像对。 FlexGlue 是一个基于 Python 的图像特征匹配器,用于在两张图片之间寻找对应点,常见于图像匹配和三维重建等流程。它使用 DINOv3-ConvNeXt 骨干网络将图像编码为步长为 8 的特征图,再通过 Transformer 联合细化两张特征图,并通过相关性在另一张图中定位每个查询点的对应位置。它既可以匹配用户提供的关键点(示例中使用 LightGlue 的 ALIKED 检测器),也可以匹配稠密网格上的采样点,或者完全不依赖关键点。
FlexGlue 可以免费使用吗?用的什么许可证?
FlexGlue 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
FlexGlue 还在维护吗?
活跃维护中。FlexGlue 最近一次提交是在 2026年11月6日。
FlexGlue 适合用来做什么?
为运动恢复结构或三维重建流程建立照片间的对应点。 在几何验证或定位前,过滤掉结构重复的图像对。 通过 ONNX 导出模型,在 C++ 或其他非 Python 环境中运行特征匹配。 配合任意关键点检测器进行匹配效果的评测或对比。
FlexGlue 怎么安装和运行?
克隆仓库并进入目录: git clone https://github.com/cvg/FlexGlue.git && cd FlexGlue 使用 pip 以可编辑模式安装 FlexGlue: 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目