Image Matching WebUI: A Comprehensive Guide
Description
Image Matching WebUI is a straightforward tool designed to match pairs of images using diverse renowned algorithms. This user-friendly tool is equipped with a Graphical User Interface (GUI) crafted using gradio. It allows users to effortlessly select two images, choose a matching algorithm, and obtain accurate matching results. The images can originate from local files or webcams.
Users can explore the tool through platforms like Hugging Face or Lightning AI Studio.
Supported Algorithms
The tool incorporates a variety of well-known image matching algorithms, including but not limited to:
- EfficientLoFTR (CVPR 2024)
- MASt3R (CVPR 2024)
- DUSt3R (CVPR 2024)
- OmniGlue (CVPR 2024)
- XFeat (CVPR 2024)
- RoMa (CVPR 2024)
- ... and many more.
How to Use
Trying Out Online
The Image Matching WebUI can be tried on Hugging Face or Lightning AI Studio without any local setup.
Local Deployment
To deploy locally, follow these steps:
- Clone the repository and set up the environment:
git clone --recursive https://github.com/Vincentqyw/image-matching-webui.git cd image-matching-webui conda env create -f environment.yaml conda activate imw
- Alternatively, use Docker for deployment:
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
Railway Deployment
To deploy on Railway, set up a Custom Start Command
in the Deploy section:
python -m api.server
Running the Demo
Run the demo by executing:
python3 ./app.py
Then, open http://localhost:7860 in your browser to begin using the GUI.
Adding Features or Matchers
Users can add their custom features or matchers. An example on adding a local feature can be found in hloc/extractors/example.py. Following steps include configuring feature settings and adding the custom matcher in the appropriate configuration files.
Contributions
The project is open to contributions, and external contributors are encouraged to adhere to PEP8 style guidelines. Additional valuable features desired include webcam support, RANSAC for outlier filtering, and more flexible configurations.
Contributors and Acknowledgment
The project is developed by a community of contributors whose efforts are visually represented through the contributors page. The code is largely based on Hierarchical-Localization, with gratitude expressed towards its authors.
For further exploration related to image matching, check out resources such as Image Matching: Local Features & Beyond and Long-term Visual Localization.