$\color{red}{\textnormal{图像匹配 WebUI}}$
识别两幅图像之间的匹配点
描述
这个简单的工具采用多种著名的图像匹配算法高效地匹配图像对。该工具具有使用 gradio 设计的图形用户界面 (GUI)。您可以轻松选择两幅图像和一个匹配算法,并获得精确的匹配结果。 注意:图像来源可以是本地图像或网络摄像头图像。
这里是一个工具演示:
该工具当前支持多种流行的图像匹配算法,分别是:
- MASt3R,CVPR 2024
- DUSt3R,CVPR 2024
- OmniGlue,CVPR 2024
- XFeat,CVPR 2024
- RoMa,CVPR 2024
- DeDoDe,3DV 2024
- Mickey,CVPR 2024
- GIM,ICLR 2024
- DUSt3R,arXiv 2023
- LightGlue,ICCV 2023
- DarkFeat,AAAI 2023
- SFD2,CVPR 2023
- IMP,CVPR 2023
- ASTR,CVPR 2023
- SEM,CVPR 2023
- DeepLSD,CVPR 2023
- GlueStick,ICCV 2023
- ConvMatch,AAAI 2023
- LoFTR,CVPR 2021
- SOLD2,CVPR 2021
- LineTR,RA-L 2021
- DKM,CVPR 2023
- NCMNet,CVPR 2023
- TopicFM,AAAI 2023
- AspanFormer,ECCV 2022
- LANet,ACCV 2022
- LISRD,ECCV 2022
- REKD,CVPR 2022
- CoTR,ICCV 2021
- ALIKE,TMM 2022
- RoRD,IROS 2021
- SGMNet,ICCV 2021
- SuperPoint,CVPRW 2018
- SuperGlue,CVPR 2020
- D2Net,CVPR 2019
- R2D2,NeurIPS 2019
- DISK,NeurIPS 2020
- Key.Net,ICCV 2019
- OANet,ICCV 2019
- SOSNet,CVPR 2019
- HardNet,NeurIPS 2017
- SIFT,IJCV 2004
如何使用
HuggingFace / Lightning AI
或按照以下说明在本地部署。
要求
git clone --recursive https://github.com/Vincentqyw/image-matching-webui.git
cd image-matching-webui
conda env create -f environment.yaml
conda activate imw
或使用 docker:
docker pull vincentqin/image-matching-webui:latest
docker run -it -p 7860:7860 vincentqin/image-matching-webui:latest python app.py --server_name "0.0.0.0" --server_port=7860
运行演示
python3 ./app.py
然后在浏览器中打开 http://localhost:7860。
添加您自己的特性/匹配器
我提供了一个在 hloc/extractors/example.py 添加本地特性的示例。然后在 hloc/extract_features.py 文件中的 confs
添加特性设置。最后一步是在 ui/config.yaml 文件中的 matcher_zoo
添加一些设置。
欢迎贡献!
非常欢迎外部贡献。请使用类似 flake8 的代码格式器遵循 PEP8 风格指南(使用命令 python -m black .
重新格式化)。以下是可能有价值的补充特性非详尽列表:
- 添加 CPU CI
- 添加摄像头支持
- 添加 线特性匹配 算法
- 添加新特性提取器/匹配器的示例
- 过滤异常值的 RANSAC
- 添加匹配前 旋转图像 选项
- 支持将匹配导出到 colmap (#issue 6)
- 添加配置文件以设置默认参数
- 动态加载模型并减少 GPU 过载
将本地特性/匹配器作为子模块添加非常容易。例如,添加 GlueStick:
git submodule add https://github.com/cvg/GlueStick.git third_party/GlueStick
如果远程子模块库已更新,请不要忘记使用 git submodule update --remote
拉取子模块,如果只想更新一个子模块,请使用 git submodule update --remote third_party/GlueStick
。
贡献者
资源
致谢
这段代码基于 Hierarchical-Localization 构建。我们对作者提供的宝贵源代码表示感谢。