Skip to content

leon5678/image-matching-webui

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues


Image Matching WebUI
find matches between 2 images

Description

This simple tool efficiently matches image pairs using multiple famous image matching algorithms. The tool features a Graphical User Interface (GUI) designed using gradio. You can effortlessly select two images and a matching algorithm and obtain a precise matching result. Note: the images source can be either local images or webcam images.

Here is a demo of the tool:

imw.mp4

The tool currently supports various popular image matching algorithms, namely:

How to use

HuggingFace

Just try it on HF Open in OpenXLab

or deploy it locally following the instructions below.

Requirements

git clone --recursive https://github.com/Vincentqyw/image-matching-webui.git
cd image-matching-webui
conda env create -f environment.yaml
conda activate imw

Run demo

python3 ./app.py

then open http://localhost:7860 in your browser.

Add your own feature / matcher

I provide an example to add local feature in hloc/extractors/example.py. Then add feature settings in confs in file hloc/extract_features.py. Last step is adding some settings to matcher_zoo in file common/utils.py.

Contributions welcome!

External contributions are very much welcome. Please follow the PEP8 style guidelines using a linter like flake8 (reformat using command python -m black .). This is a non-exhaustive list of features that might be valuable additions:

  • add webcam support
  • add line feature matching algorithms
  • example to add a new feature extractor / matcher
  • ransac to filter outliers
  • add rotation images options before matching
  • support export matches to colmap (#issue 6)
  • add config file to set default parameters
  • dynamically load models and reduce GPU overload

Adding local features / matchers as submodules is very easy. For example, to add the GlueStick:

git submodule add https://github.com/cvg/GlueStick.git third_party/GlueStick

If remote submodule repositories are updated, don't forget to pull submodules with git submodule update --remote, if you only want to update one submodule, use git submodule update --remote third_party/GlueStick.

Resources

Acknowledgement

This code is built based on Hierarchical-Localization. We express our gratitude to the authors for their valuable source code.

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • CSS 0.1%