gmberton/vismatch
Wrapper of 50+ image matching models with a unified interface
vismatch – 图像匹配模型的统一 Python 库
🎯 功能简介
vismatch 提供了一个单一、易于使用的 Python API(以及一个小型 CLI),封装了 50 多种图像匹配方法——从经典的 SIFT 等关键点检测器到现代的深度学习匹配器,如 LoFTR、SuperPoint‑LightGlue、DeDoDe、SphereGlue 等。该库处理:
- 自动下载模型权重(通过 Hugging Face 或作者发布)。
- 加载和预处理图像(可选调整大小)。
- 运行匹配(生成关键点对应关系、单应矩阵、内点数量、置信度分数)。
- 提取原始关键点和描述符。
- 可视化结果,使用现成的
plot_matches和plot_keypoints辅助函数。
所有这些都通过一个函数 get_matcher(name, device=…) 暴露,因此您可以用一行代码切换模型。
🛠️ 快速开始
# 推荐:uv(快速安装器)——pip 也可以
pip install uv # 如果没有 uv,请先安装
uv venv # 创建虚拟环境
source .venv/bin/activate # 激活虚拟环境
uv pip install vismatch # 安装库
可选:为需要额外依赖的模型安装额外依赖(例如 torch‑geometric、tensorflow):
uv pip install "[all]" # 或 pip install .[all]
💻 快速代码示例
from vismatch import get_matcher
from vismatch.viz import plot_matches
# 选择任意 50 多种匹配器——这里使用 GPU 上的 SuperPoint‑LightGlue
matcher = get_matcher("superpoint-lightglue", device="cuda")
# 加载图像,可选调整大小
img0 = matcher.load_image("vismatch/assets/example_pairs/outdoor/montmartre_close.jpg", resize=512)
img1 = matcher.load_image("vismatch/assets/example_pairs/outdoor/montmartre_far.jpg", resize=512)
# 运行匹配
result = matcher(img0, img1)
# result 包含键,如:num_inliers, H, all_kpts0, all_kpts1, matched_kpts0, …
# 可视化匹配结果
plot_matches(img0, img1, result, save_path="plot_matches.png")
相同的工作流程也适用于通过 matcher.extract(img) 和 plot_keypoints 进行关键点提取。
📦 命令行界面(CLI)
该包附带小型辅助脚本,安装后可直接调用:
# 匹配两张图像
vismatch-match \
--matcher superpoint-lightglue \
--out-dir outputs/sp-lg \
--input img0.jpg img1.jpg
# 从文件夹提取关键点
vismatch-extract \
--matcher superpoint-lightglue \
--out-dir outputs/sp-lg \
--input path/to/images/
CLI 接受单个图像、目录或列出图像对的文件。
📚 模型目录
该库将支持的方法分为三个系列:
- 密集 – 例如
roma、tiny-roma、duster。 - 半密集 – 例如
loftr、eloftr、matchformer。 - 稀疏 – 经典和现代基于关键点的流水线,如
sift-lightglue、superpoint-lightglue、disk-lightglue、dedode、sphereglue、zippypoint等。
包含运行时、设备支持、源代码仓库和许可证详细信息的完整列表位于 模型详情 文档页面。
🤝 贡献 / 扩展
如果您有新的匹配器,仓库提供了 CONTRIBUTING 指南。设计遵循 PyTorch 的“可用性优先于性能”原则:目标是提供干净、一致的 API,而不是榨取每一毫秒。
📖 文档与资源
- ReadTheDocs – https://vismatch.readthedocs.io/en/latest/
- Colab 演示 – README 中链接的即用笔记本。
- Hugging Face 模型中心 – 所有封装的权重都托管在
vismatch组织下。 - 下载统计 – 实时跟踪器显示每日 HF 模型下载量。
📜 引用
如果您在研究中使用 vismatch,请按照 README 中的说明引用随附的 EarthMatch 论文(CVPR 2024 研讨会)。
TL;DR
vismatch 是一个真实的、生产就绪的 Python 包,它将大量图像匹配算法统一到单一、对初学者友好的界面后面,使得实验、基准测试或集成最先进的视觉对应方法变得轻而易举。
相关
- 项目
- 项目
- 项目
- 项目
- 项目